Framework for controlling the execution of tasks
From what I see, SMACH seems to be the standard framework for managing the execution of tasks. However, I am unsure if SMACH is an appropriate tool, given my requirements. I would appreciate advice.
Requirements are:
- Must be able to run a sequence of tasks (SMACH's Sequence container seems to be made for this).
- User should be able to pause and resume the sequence of tasks at any time (possibly through a ROS service call).
- User should be able to switch to any task within the sequence of tasks at any time (possibly through a ROS sevice call).
- User should be able to replace the existing sequence of tasks with another sequence of tasks, which can either be hardcoded, or programatically generated.
Given the above requirements, is SMACH a good fit? Or are there alternatives I should take a look at?
Thank you in advance.