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
- OMPL 1.6.0 has been released! This release includes new planners, multilevel planning, bug fixes, and more.
- The Evaluating Motion Planning Performance workshop was hosted at IROS 2022 in Kyoto, Japan. This workshop brought together interested professionals in academia and industry to discuss motion planner evaluation. Videos of talks are available.
- Robowflex, a tool for motion planning researchers using OMPL through MoveIt was nominated for best paper for industrial robotics research with real-world applications at IROS 2022.
- HyperPlan, a tool for automatically configuring motion planners, is now available open source. Given a training dataset, this tool can optimize motion planning performance by tuning parameters, such as range, which projection to use, and so on.
- MotionBenchMaker, a motion planning dataset and tool to make datasets is now available. The pre-fabricated dataset contains 8 different problem with 5 different robots, for 40 challenging motion planning problems total.