OMPL, the Open Motion Planning Library, consists of many state-of-the-art sampling-based motion planning algorithms. OMPL itself does not contain any code related to, e.g., collision checking or visualization. This is a deliberate design choice, so that OMPL is not tied to a particular collision checker or visualization front end. The library is designed so it can be easily integrated into systems that provide the additional needed components.
OMPL.app, the front-end for OMPL, contains a lightweight wrapper for the FCL and PQP collision checkers and a simple GUI based on PyQt / PySide. The graphical front-end can be used for planning motions for rigid bodies and a few vehicle types (first-order and second-order cars, a blimp, and a quadrotor). It relies on the Assimp library to import a large variety of mesh formats that can be used to represent the robot and its environment.
The Open Motion Planning Library (OMPL) consists of a set of sampling-based motion planning algorithms. The content of the library is limited to these algorithms, which means there is no environment specification, no collision detection or visualization. The library is designed so it can be easily integrated into systems that provide the additional needed components. For examples of complete systems using OMPL, see OMPL.app and MoveIt. We have also developed an educational module on motion planning that is centered around OMPL.app. We are looking for educational partners to use and further develop the material. Please contact us for more information.
OMPL is intended to be efficient, thread safe, easy to use, easily extensible and freely available (visit this project on Github).
Library Contents
- OMPL contains implementations of many sampling-based algorithms such as PRM, RRT, EST, SBL, KPIECE, SyCLOP, and several variants of these planners. See available planners for a complete list.
- All these planners operate on very abstractly defined state spaces. Many commonly used state spaces are already implemented (e.g., SE(2), SE(3), Rn, etc.).
- For any state space, different state samplers can be used (e.g., uniform, Gaussian, obstacle-based, etc.).
- API overview.
- Documentation for just the OMPL core library (i.e., without the “app” layer).
Getting Started
- The OMPL primer provides a brief background on sampling-based motion planning, and an overview of OMPL.
- Download and install OMPL.
- Learn how to use the OMPL.app GUI.
- Demos and tutorials.
- Frequently Asked Questions.
- Learn how to integrate your own code with OMPL's build system.
- Learn more about how OMPL is integrated within other systems (such as MoveIt, V-REP, OpenRAVE, and MORSE).
- If interested in using Python, make sure to read the documentation for the Python bindings.
Other Resources
- OMPL for education.
- Gallery of example uses of OMPL.
- If you use ROS, the recommended way to use OMPL is through MoveIt.
- Third-party contributions. (Contribute your own extensions!)
News & Events
- At ROSCON 2013, Sachin Chitta gave a presentation about MoveIt, the new software framework for motion planning in ROS. It provides a common interface to motion planning libraries (including OMPL). The old ROS arm_navigation stack is now deprecated and all ROS users are encouraged to switch to MoveIt.
- ICRA 2013 Tutorial on Motion Planning for Mobile Manipulation: State-of-the-art Methods and Tools. Both OMPL and MoveIt were heavily featured in this tutorial.
- OMPL has won the 2012 Open Source Software World Grand Challenge!
- An article about OMPL has been accepted for publication in IEEE's Robotics & Automation Magazine! It will appear in the December 2012 issue.
- At ROSCON 2012, Sachin Chitta and Ioan Șucan gave a talk about MoveIt, the new motion planning stack in ROS. It provides a common interface to motion planning libraries in ROS (including OMPL). It will eventually replace the arm navigation stack.
- IROS 2011 Tutorial on Motion Planning for Real Robots. This hands-on tutorial described how to use the ROS and OMPL, but it also provided some background on sampling-based motion planning.