Skip to content
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

[refactor] Modular tasks #32

Open
Yadunund opened this issue Aug 17, 2021 · 1 comment
Open

[refactor] Modular tasks #32

Yadunund opened this issue Aug 17, 2021 · 1 comment
Labels
enhancement New feature or request priority:high High-priority item

Comments

@Yadunund
Copy link
Member

Currently, rmf_task::Request is used to define a bunch of requests (loop, delivery, clean, chargebattery) that are later converted into rmf_fleet_adapter::Task within the fleet adapter. Each rmf_fleet_adapter::Task is composed of a string of phases present in src/rmf_fleet_adapter/phases. The definitions of these requests/tasks are rigid and the process of introducing new tasks is fairly involved.

The proposal is to move some of the Phases into the public API in rmf_task. These would serve as building blocks to describe tasks. Hence requests would be described as a collection of these phases. Each phase/block would also inherit from an error handling class that dictates how errors during the phase should be resolved. Similarly for when the phase is cancelled. Each phase would also have invariant_duration and estimate_finish methods to allow the task planner to estimate the duration of the phase and the state of the agent at the end of it.

@Yadunund
Copy link
Member Author

See open-rmf/rmf_ros2#107 for implementation details

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority:high High-priority item
Projects
None yet
Development

No branches or pull requests

1 participant