-
Notifications
You must be signed in to change notification settings - Fork 984
Description
Is your feature request related to a problem? Please describe.
We have long planning times and we'd like to have them hidden in the background while the robot is doing something else. Instead of having for instance 10 seconds of execution and then 4 seconds of planning and so on, we want to have 10 seconds of execution while the planning is done, followed directly by another execution.
Currently this is not native to MoveIt, since the move_group only run the ros spinner in one thread and the MoveActionCapability and the MoveGroupExecuteTrajectoryAction are blocking on planning and execution.
Describe the solution you'd like
Allow one to call /move_group/goal for a planning request at the same time as /execute_trajectory/goal for an execution request.
What we tried
For now, we implemented an alternative to MoveActionCapability that runs planning request in its own callback queue via an async spinner. It works ok but wasn't easy to implement and we still have some issues with the trajectory execution manager not receiving the last state of the robot due to the PlanningSceneMonitor's CurrentStateMonitor being blocked by the PlanningSceneMonitor mutex. I'll open an issue about that.