Skip to content

Allow simultaneous planning and execution #3562

@Hugal31

Description

@Hugal31

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions