Very Short Overview of OMPL (Open Motion Planning Library)

June 11, 2023
This article briefly outlines some characteristics of OMPL which is one of the most well known motion planning library. From this writing, I hope you can get an overview before starting OMPL

This article is devoted to provide a quick overview before you dive into OMPL.

1. OMPL as starter of your motion planning project

Reliability

OMPL is a very stable baseline for your motion planning development.

Since 2010, from Lydia Kavraki (opens in a new tab)'s Algorithmic Robotics class, OMPL has been actively developed and widely used by robotics researchers (opens in a new tab) over a decade. Its proven reliability led it to be used from famous open-source projects such as moveit (opens in a new tab).

As can be seen here (opens in a new tab), it shows effectiveness across diverse robot systems including robotic arms (moveit!), humanoid (opens in a new tab), and mobile robot (opens in a new tab).

Flexibility by abstraction

When you saw OMPL in many pages (opens in a new tab), you might think that OMPL has its own environmental representation such as mesh or distance field. But it doesn't. Whatever you saw, they are all just wrappers (such as OMPL.app (opens in a new tab))

In OMPL, user might have to define the belows to reflect their mission setup:

2. "Sampling-based" motion planning library

Three categories of motion planning algorithms

Except for reinforcement learning (RL), most motion planning algorithms take one of the three approaches:

  • Graph-search planners such as A* and Dijkstra algorithm (opens in a new tab). They are often used when the solution domain is predefined before computing motions (e.g., all path points are expected on a grid).
  • Sampling based planners such as RRT, RRT*, PRM (opens in a new tab). This group randomly samples a feasible configuration (e.g., safe positions) after planning is triggered. In general, the planner tries to connect any two configurations by either simple interpolation or control dynamics.
  • Optimization based planners such as CHOMP (opens in a new tab) and LQRs (opens in a new tab). They use gradient-based numerical optimization to minimize costs such as integral of acceleration to generate smooth motion, observing some constraints.

Among these, OMPL only supports the second category.

Implementations of sampling based planners

State space vs control space

Before beginning, we should distinguish two terms: state ss vs control uu.

snext=f(scurrent,ucurrent)s_{next} = f(s_{current}, u_{current})

State is the result of previous control. For example, the pose of end-effector of a robotic arm can be seen as a state in OMPL, while velocities of the joints as an input.

Two types of planners

As can been seen from this documentation (opens in a new tab), OMPL provides two sub-groups:

  • Geometric planners: try to connect two sampled configurations in state space (such as interpolations).
  • Control-based planners: try to connect two sampled configurations by control domain (opens in a new tab). This requires propagate user-implementation to let OMPL know they can reach next state with in control limits.