Optimization on Scheduling

Hi all,

I’ve messaged Leo in private, but I would like to bring this up to see if others have the same thoughts or better ideas.

I think the current scheduling logic can use some improvement. Based on the observation, right now at the time of RoboTarget startup, it will search for the 1st eligible & priority-sorted target at that moment, and run that target until it’s finished or becomes ineligible. This post some issues as the “high priority” target is likely not getting its deserved prio. For example if in the beginning of the night I only have one very low prio target eligible, but that one is eligible throughout the night, then it will never come to other targets for the whole night.

I would think a better way to ensure high-prio targets getting their time would be:

  • At the time of RoboTarget startup, allocate time slot to highest-prio target (TargetA) based on its criteria
  • After that, allocate time slot to the 2nd highest-prio target (TargetB) based on its criteria & the remaining time windows; Minimum sequence duration still apply.
  • Moving on based on priority list

This way I can ensure that even if my high-prio targets were not available in the beginning, I can still hit on it once it becomes eligible. Otherwise right now I would have to manually stop the Robotarget and re-start, when my preferred target becomes eligible.

Let me know what your thoughts are, or if there is a better way handling this under current structure.



I agree that this could be an improvement to the logic. Maybe a parallel agent checking conditions whilst any target is running and triggering the main agent to recheck.
Maybe this could be achieved already by having RoboTarget run in between series of shots rather than when a target is finished or past its conditions? Keeping the shot series short would ensure RoboTarget ran more often?


1 Like

Thank for feedback and for reporting this.

Like I said this is only the default scheduler, idea is to add more scheduler with different logic like a select box in the RoboTarget configuration.

My idea is to create another level of priority called “skip ahead” , in this case when a target with this level become elegible it stop target with lower priority running and start immediately. Also Roberto idea is a solution.

Architecture of RoboTarget its really flexible, the only delicate task is the creation of ephemeris, this can be a long task but is needed only one time so probably can be optimized.

Another task I’ve in mind is the travelling salesman algorithm solution where all is decide for the night.

Anyway, use the maximum time for sequence to span time between targets. This is a powerful way to see the things.

Object of Beta now is in order to solve bugs,consolidate things, add the functionalities to manage the operation like report and statistic and finally introduce new features.

All the best


As I understand it, schedular currently picks high priority targets over low priority targets and if there are two eligible targets of the same priority, it will favour the oldest entered target. If you want to restrict the time spent on a particular target in any one night you can do so with time on target limits or using hour angle constraints. If you particularly want schedular to run as your example of two targets, you can either raise their priorities or disable other targets. I would understand that other schedular plans are likely in the future favouring for instance highest altitude at meridian.

I am going through the teething pains of some equipment changes so have only had the chance to run advanced over a few sessions but my takeaway is that it is a different concept of imaging. I have more than a decade of imaging, at most, a couple of targets a night over at most a handful of sessions and out will pop a couple of completed targets throwing away sub par frames in processing. That’s not Advanced forte. Load it up with targets, put constraints in that mean targets will only be imaged under the best conditions at the best location in the sky and run it over weeks or even months. That is a major change in habit and that’s going to take time to get used to. It should mean better data, fewer throwaways but a lot of targets that are work in progress.

My only observation is that there is no visible way of seeing priority or age of targets in the RoboTarget list. Making a target high priority, for instance, to force schedular to add some time to it on one night is easily forgotten. I’d like to see targets in sets further separated by priority, or colour coded, and then sorted by age. You also need to be mindful of the oldest target first when entering targets as a target may be oldest by a few seconds. You also need the help of external ephemeris sources like Telescopius to plan targets that will be available over a full night especially at this time of year here, where most narrowband targets are crossing the meridian soon after dusk.

1 Like

I was going to make a similar query to the OP.

I think your “Skip ahead” priority logic idea could be great as it would allow for “Fill in” targets to be set up with a reduced priority, knowing that the scheduler would change over to a higher priority target should it’s constraints be met while the lower priority target is running.

1 Like

This is such a great question - I don’t have an answer, I am still learning how to apply the new tools - here is my early perception of the scheduling optimisation (some of which is algorithmic, some of which is human managed).

Like an operating system scheduler I agree that there are different algorithms required for different goals eg: real-time schedulers have a different set of goals to “fair share” schedulers, it’s rare to be able to satisfy both goals without creating a compromise. (eg: a supernova survey vs “pretty picture” imaging)

My sense is that Voyager users generally value image integration time & data quality over “shot counts” - this is something like what AstroGabe was working on but a much harder problem as somewhere the Scheduler would need to track “what shots do I need to collect to allow this imager to finish their project to their satisfaction?”

All of this makes me think the solution to optimisation is actually one step above it, which is the PLANNING phase and there are some big questions then;

  • what am I trying to accomplish this month/season? (targets that rise this month/90 days)
  • for a given target, especially lower altitude ones (so only a small window to capture) what compromises am I prepared to make compared to another target (this helps me prioritise overall)
  • what’s my policy (and experience with this equipment & location) for moon up vs down
  • I am sure all of this changes for portable vs permanent setups

I imagine optimising the scheduling is directly related to the imager’s goals and the business rules for obtaining that goals - eg: getting to a certain number of hours/subs for a given target, some of which should only be collected while the moon is down, some of which you don’t care what the moon is doing so long as it’s >45’ away from the camera.

The reason I say this, I also learned that this also relates to how the work is packaged and my definition of “optimum” for the schedule.

eg: as the moon is now up in my night sky, my rule of SQM >21 meant that all of my LHaRGB targets have stopped running, even though I should be able to collect great Ha data for all of them.

So now I split the Ha/NB data & LRGB in separate sets for the same Target (ie: as there are more imaging days available for NB when the moon is up) - the goal being that NB data should only be collected during moonlit nights unless there’s nothing left to do that night OR if it’s a high priority NB target

But I am also guessing that makes the optimisation of the Scheduler even harder. Plus you also get a lot of targets you need to manage (my RoboTarget Manager is already full of Sets as I load up my year’s worth of imaging goals).

I don’t imagine the above helps much but I felt the need to write out my thoughts as I start to wrap my brain around the opportunities that the new tools bring us.

Probably the problem is full fill the scheduler with targets for all year.
Using a parking set disabled to prevent scheduler to use the targets inside, leave enable only the sets where you have reasonable targets, divide set by narrow and broad.

If you want to do specific objects for first use high priority do not use so many targets for scheduler, use large constraints.

If you want to obtain best of data for target, use tight constraints and be patient because time is needed. After some weeks you will have plenty of finished targets.

If you want to do so many targets use constraints in max time shot for night, this will spread data acquisition between so many targets.

Do not mix narrow and broad band this will not have sense. Constraints are for target.
I hope this helps.

This is my personal management after 2 months of Advanced Running on Voyager official Observatory:

Each target have from 10 to 20 hours of shots.

All the best


Hi Leo,

How do you turn the finished targets to green? Mine stays the same.

Hi Yizhou,

with Beta12 in 2.3.5e of RoboTarget Manager , now we are at 2.3.5f.
Please update your installation to the last version of Voyager in Daily Build communicated with the Mailing List.

All the best

Ohhhh sweet. That helps. Yeah I saw it now on 2.3.5e. Thanks!

Yes - how to break down the groups and sets is a critical part of how you setup. Maybe @Rowland_Archer this might be a good topic for a Blog post - Advanced reminds me a little bit of getting a nice new drill or saw from the hardware store, I OWN the tools, but HOW to use them is a different thing!

1 Like

Hi Leo,

Where can I set the maximum time for a sequence? I cannot find where to specify this contain.



Hi José,


here in Target definition.

All the best

1 Like

Do we still have plan to improve the optimization/prioritization part? Apart from setting the maximum time for a sequence (which forces refocusing, etc.), I still think there is room to better arranging the scheduling so that the higher priority targets do get selected even if lower prio targets span across the night.



Not at now Yizhou , when the first release will be out we will add more scheduler really fast.

All the best

Is there a way to see what order my schedule will run in? In other solutions I’ve been able to see roughly what order the schedule will run each task and the if I didn’t like it, go and tweak my settings to accomplish my imaging goals.

If the feature is there I haven’t figured it out.

Hi Paul,

I suggest you to use the normal DragScript Sequence organizations instead of Scheduler if you need to know exactly the target will be runned.

Not sure running preview will be introduced in Voyager, sorry.

All the best

Thanks - I’ve been thinking about going back to my old DragScript for that very reason, so that might be the best option.

I think it would be It would be cool if the ephemeris view was visible while planning targets instead of only once it starts running - I sometimes get a nice “surprise” that something I wasn’t expecting has a higher priority than I realised and I have to stop and start again, all of this only happens once the night has started of course.

This might be what @AstroGabe is/was working on, so perhaps I just need to wait :slight_smile:

I don’t like to mention other tools but the nice thing about the old Ekos scheduler is you could “simulate” your plan before it runs to help fine tune the plan

The scheduler is something that replaces the user’s actions. It is based on what you ask him, if you feel the need to check and change things every time you are probably asking him the wrong things or you don’t need a scheduler, this is my answer to your question.

What others do is something that I have never followed as a philosophy, otherwise we make clones of things that already exist

Fine tune the plan is something fight with concept of scheduler Voyager !

I agree with the principal that it replaces the user’s interaction, it’s one of the things I think is great about the scheduler.

I recognise that I am asking for something that I am not capable le of coding myself, this might be super hard - I have no idea and so submit this feedback humbly.

Since using the scheduler, I find I sometimes wake up to find that, for whatever reason, the targets that were executed that night were not what I expected, based on what I thought the priorities were, and it’s hard to determine why - especially without being able to check how my settings affect the plan.

Here is a simple example of where a planner would help me avoid a mistake: if I were to request 24 hours of moonless data for 3-4 targets with the roughly the same RA +/- 3 hours of zenith, it’s highly likely that I would miss at least one target (for a year) due to my mistake, especially if it starts to compete with other targets later that month with a high priority.

A quick visualisation of the plan would help me see this and I would be able to decide what is more important, more data for one target or more targets and less data.

Being able visualise and then adjust a schedule’s priority settings & constraints to fine-tune objectives is expected in the professional astro world https://core.ac.uk/download/pdf/56362807.pdf for example (figure 39).

https://www-sop.inria.fr/orion/Publications/Articles/spie02.pdf (figure 1)

Voyager Advanced’s automated scheduler is a critical next step in what is a solid piece of software, but my view is probably best summarised by the quote, “The importance of automated planning and scheduling for the space enterprise has become increasingly clear” - it’s great to have a scheduler AND a planner. Keeping people in the loop to help plan and guide the scheduler is equally important.

I also don’t think this is far from the roadmap for Voyager - at some point I imagine plan visulisation will be needed to deliver the Rental feature - where the schedule constraints are a special case of extremely prescriptive constraints (start & end time) and the planning part is nearly entirely manual (as people choose exactly what and when they want to image), but unless you can see the free slots how can you know what you are buying?

I’ll say no more on the matter as I don’t want to upset anyone and I don’t have the skills to write my own software!

Grazi Leo.

1 Like