-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support tasks that have indefinite/permanent duration #42
Comments
|
Since it's difficult to spot and a very important point, I'll highlight it here:
|
One caveat with this approach is the need to rework the I was discussing with @arjo129 and felt a simpler approach could be to implement the Another way to do this could be to assign any arbitrary finish time for such requests. And we have a large |
There may be "tasks" that need to run indefinitely or permanently. For example, a patrolling task or a continuous delivery task (where we expect a new delivery to always be ready to go as soon as the previous delivery is finished).
In these cases, it's best to assign the continuous task to one robot, and then exclude the robot from being assigned any further tasks until the indefinite task is canceled or terminates some other way. (Note that we'll assume these indefinite tasks will be responsible for having battery recharging phases)
For the planner, we could indicate that a task is indefinite by changing
Estimate::finish_state
to return astd::optional<State>
where astd::nullopt
value means that it will run indefinitely (as opposed toTask::Model::estimate_finish
where returningstd::nullopt
means that the task cannot be performed).When a branch in the planner assigns an indefinite task to a robot, that branch cannot assign any more tasks to that robot.
The text was updated successfully, but these errors were encountered: