Submitted by: Raghavender Sahdev, York University
One of this year’s Google Summer of Code Projects (GSoC) was the project, “Adding motion planning support for motion planners in MoveIt!”. This project, with coordination with PickNik Consulting, Open Source Robotics Foundation (OSRF), Dave Coleman, and Mark Moll, has been developed for the purpose of improving and extending the currently existing planners in MoveIt!. An existing concept of planning adapters in MoveIt! was used to have a pipeline of two planners running sequentially to provide robust solutions.
Prior to summer 2018, MoveIt! only had a single stable motion planning library as its core motion planner, i.e. OMPL. As a part of this GSoC project, motion planning support was extended by making other motion planners (CHOMP) more stable and porting STOMP also to be a part of the MoveIt! motion planners family. The MoveIt! part of STOMP was ported from the ros-industrial/industrial_moveit repository into the moveit/motion planners. Furthermore, the benchmarking package was made to work with other motion planners in addition to OMPL and its tutorials were added. This package provides user the option to visualize quantitatively different parameters (time taken, trajectory length, solved status, etc.) for different motion planners (OMPL, CHOMP, STOMP) in a common environment (with/without obstacles) and make a decision on which planner the user might want to use.
The concept of Planning Request Adapters was used to implement the usage of multiple planning algorithms to be used together in MoveIt. This enables the user to use motion planning algorithms in a pipeline to produce better trajectories in different situations. For instance the user could specify a start and a goal location in RViz and then 2 motion planners could be run in a sequence like OMPL followed by CHOMP implying the usage of a CHOMP Optimization planning adapter. So OMPL would produce an initial motion plan which is then used as an initial trajectory guess for CHOMP to further optimize. Likewise, other motion planning pipelines that are possible by using the Planning Request Adapters concept in MoveIt include: (i) CHOMP + STOMP, (ii) OMPL + STOMP; (iii) STOMP + CHOMP; (iv) OMPL + CHOMP. The first 2 of these involve using the STOMP Smoothing Planning Request Adapter and the later two use the CHOMP Optimization Adapter. The way these planning request adapters can be used is straightforward and is documented in the Planning Request Adapters tutorials page in moveit_tutorials repository.
A video description of different Motion Planners, planning adapters and benchmarking motion planners can be viewed here.
See the full blog post for more details.