Robots Atlas>ROBOTS ATLAS
OMPL (Open Motion Planning Library)

Motion planning · Control & Planning

OMPL (Open Motion Planning Library)

OMPL 1.7·Rice University

Active Open source API available
CATEGORYMotion planning · Control & Planning
READINESSTRL 9
ADOPTION SCALEIndustry Standard
LICENSESBSD-3-Clause
FIRST RELEASE2010

OMPL (Open Motion Planning Library) is the flagship open-source library of sampling-based motion planning algorithms, developed since 2008 at the Kavraki Lab, Rice University in Houston. Creators: Ioan Şucan, Mark Moll, and Lydia Kavraki (one of the pioneers of probabilistic motion planners — co-author of the PRM algorithm from 1996). BSD-3-Clause license.

OMPL implements over a dozen planner families: RRT and its variants (RRT-Connect, RRT*, RRT#, Informed RRT*, BIT*, AIT*), PRM (Probabilistic Roadmap), EST (Expansive Space Trees), KPIECE, SBL (Single-query Bidirectional Lazy), SST, FMT*, and dynamic planners (KPIECE with controls). The library is agnostic about robot representation — it only requires the user to provide a collision-checker, state sampler, and forward propagation function.

OMPL sits under the hood of most motion planning frameworks: MoveIt (as the default planning engine), OpenRAVE, Drake (one of the available backends), and many academic projects. Bindings: Python (official), C# (community). Active quarterly releases, ~30 commits/month on the main branch.

Type & Roles
Software types
Motion Planning Library
API Library

An API Library is a software package that exposes programmatic interfaces for communicating with a device, service, or system. In robotics it typically forms a lightweight integration layer built on top of the manufacturer's official API or an open-source project, abstracting low-level protocol details and providing language-native bindings (Python, C++, Java, etc.).

Select an item to see its description.
Main category
Control & PlanningSDKs
Roles in robotics ecosystem
Motion PlanningAPI AccessDeveloper Enablement
Software family
Family
Motion Planning

A family of open-source libraries for motion planning (RRT, PRM, Lazy-PRM), inverse kinematics, rigid-body dynamics, and trajectory optimization: MoveIt, OMPL, Pinocchio, Drake, RBDL, TrajOpt, KDL, Bullet, iDynTree.

Maturity & Adoption
9 / 9
Proven in operational conditions
ResearchPrototypeProduction
Adoption scaleIndustry Standard
Maintenance statusActively Maintained
First release2010
Deployments

MoveIt (default planner), OpenRAVE, Drake, NASA JPL Mars Rovers (Curiosity, Perseverance — offline arm planning variant), Toyota Research Institute, DARPA Robotics Challenge, plus hundreds of academic papers each year. Built into 90%+ of ROS manipulation tutorials.

Community

github.com/ompl/ompl ~830★, ompl.kavrakilab.org with Doxygen documentation + tutorials, ompl-users mailing list (>2k subscribers), > 2000 publications citing OMPL (Şucan et al., IEEE RAM 2012).

ROS supportCompatibility with ROS / ROS 2 ecosystem
Official ROS 2 PackagePakiet dostępny w oficjalnym rejestrze ROS 2 przez rosdep / apt (packages.ros.org)
Official ROS 1 PackagePakiet dostępny w oficjalnym rejestrze ROS 1 (packages.ros.org)
ROS 2 MoveIt 2 PluginPlugin do frameworka MoveIt 2 dla ROS 2
System capabilities
Open source
Source code is publicly available under an open-source license — enables security audits, custom modifications, and integration without licensing barriers.
Real-time capable
Designed with timing-determinism guarantees — meets the requirements of control loops, safety systems, and tasks demanding low, predictable latency.
×
⟨/⟩
API available
The software exposes a programmable interface (REST, gRPC, SDK, or language bindings) that enables automation and integration with other systems.
📦
Pre-built / binary
Distributed as ready-to-use binary packages, container images, or installers — no need to build from source.
Programming languages
C++Python
Operating systems
Ubuntu 22.04Ubuntu 20.04DebianmacOSWindows
Minimum hardware requirements
Minimum hardware requirements
CPUQuad-core x86-64 ≥ 2 GHz or ARM64 — algorithms are CPU-bound and single-threaded (except PRM*).
RAM (GB)2
GPUNot required — OMPL runs on CPU.
Disk (GB)1

Purely algorithmic library; integration with a robot requires a collision checker (e.g. FCL).

Packaging & distribution
Package managers
apt / debSource – CMake / ament_cmakepip / PyPIconda / mambaGitHub Releases / GitHub Actions Artifacts
CPU architectures
x86_64 (AMD64)ARM64 / AArch64NVIDIA Jetson – AArch64 (JetPack)Apple Silicon – AArch64 (macOS)
Installation difficulty
LevelModerate
Protocols and interfaces
Communication protocols
Shared Memory (POSIX / mmap)
Hardware interfaces
Ethernet 1000BASE-T (Gigabit Ethernet)
Latency classes
Soft Real-Time (100–500 ms)Zmienna (workload-dependent)Batch / Offline (> 1 min)
Deployment types
Local WorkstationOn RobotEdge
Supported simulators
Gazebo Harmonic
MuJoCo
Webots
Official Docker images
moveit/moveit2ros:humble-desktop
Licenses
BSD-3-ClauseBSD 3-Clause Licensev3-Clause

License family: Permissive

ModificationDistributionCommercial useSublicensingPrivate useROS-compatibleOSI approvedFSF Free/LibreRequires attribution
Version history
OMPL 1.7Apr 2024

C++20 support, improved Python bindings (pybind11).

OMPL 1.6Mar 2022

New SST planner (Stable Sparse Tree), C++17 fixes.

OMPL 1.5Feb 2020

State API refactor, Python 3 bindings.

OMPL 1.4Jun 2018

Support for Informed RRT*, BIT*, AIT*.

OMPL 1.0Sept 2014

Stable API, full integration with MoveIt.

OMPL 0.10May 2010

First public open-source release.