ROS-Industrial aims to bring ROS to the industrial world. Path and motion planning, as provided by OMPL, are critical component of that. Below is brief overview of ROS-Industrial.
Below is a video illustrating the results of using OMPL to plan footsteps for a humanoid. The work is described in detail in:
Nicolas Perrin and Olivier Stasse and Florent Lamiraux and Young J. Kim and Dinesh Manocha, Real-time footstep planning for humanoid robots among 3D obstacles using a hybrid bounding box, in Proc. IEEE Conf. on Robotics and Automation, 2012.
The focus is not so much on OMPL, but rather a new hybrid bounding box that allows the robot to step over obstacles.
An example of using OMPL to plan for a robotic system simulated with ODE. The goal is for the yellow car to reach the location of the green box without hitting the red box. The computation is performed using KPIECE. For each computed motion plan, a representation of the exploration data structure (a tree of motions) is also shown.
Below are some rigid body motion planning problems and corresponding solutions found by OMPL.app.
The “cubicles” environment. An L-shaped robot has to fly through a number of rooms and the “basement” to reach the goal state:
The “Twistycool” environment. A twisted shape has to make a complex maneuver to move through a narrow passage:
In Fall 2010 OMPL was used for the first time in Lydia Kavraki's Algorithmic Robotics class. Students completed several projects. For their last project they could choose from several options. Linda Hill and Yu Yun worked on path optimization. The different optimization criteria considered they considered were path length and sum of discrete path curvature sum. Minimizing the former in shorter paths, minimizing the second results in smoother paths. They used two optimization techniques specific to paths / curves: B-spline interpolation and path hybridization. Path smoothing using B-spline interpolation is shown below on the left. In path hybridization a set of (approximate) solutions to a motion planning problem is given as input, cross-over points are computed, and a new optimized path composed of path segments is found. An example of path hybridization to minimize path length is shown below on the right. In both cases the paths were in SE(3); the figures show simply the R3 component.