The latest Noetic release of MoveIt brought some very useful new features:
- Ruckig jerk-limited trajectory smoothing
- Parallel planning with OMPL
We’re especially excited about the parallel planning feature. It allows you, for example, to plan a path with RRTConnectk in parallel with the Pilz Cartesian planner. The Pilz planner is very fast and it finds a straight-line path (if one exists). If Pilz succeeds, the solution is accepted. If Pilz does not succeed, then RRTConnectk is likely to find a meandering alternative (if one exists). This reduces the “arm flailing” that is a common RRTConnectk complaint.
This is just an example; you can use other planners besides RRTConnectk and Pilz. You can also use more than two planners. There is a tutorial for MoveIt2 here (MoveIt1 should be very similar): Running Multiple Planning Pipelines in Parallel with MoveItCpp — MoveIt Documentation: Rolling documentation
Unfortunately this change was API-breaking. Here’s a quick guide on how to update your source code:
PlanningComponent::PlanSolution
replace with planning_interface::MotionPlanResponse
plan_solution.trajectory
replace with plan_solution.trajectory_
Sorry for the breakage.