Loading...
Searching...
No Matches
Integration of OMPL in Other Systems

OMPL provides a high level of abstraction to make it easier to integrate it into larger robot software systems. By design, the core OMPL library does not include any code for representing geometry and kinematics. However, to solve motion planning problems, we do need to pick a particular representation for robots and the environment. Below we have listed a number of projects that have done this in very different ways.

MoveIt

MoveIt2 provides motion planning functionality in ROS. Robots are described by URDF files, which describe the robot's geometry, kinematics, and additional robot information. MoveIt2 can load such files, create appropriate state spaces for user-defined joint groups (e.g., “left arm,” “right leg,” “upper body,” “whole body,” etc.), and call OMPL planners to find feasible paths. There is support for inverse kinematics, which makes is possible to, e.g, include end-effector constraints. The paths produced by OMPL are translated by MoveIt2 into dynamically feasible trajectories. The MoveIt2 setup wizard will automatically discover self-collisions in a pre-processing phase. The environment can either be provided in the form of collection of geometric objects (triangles, spheres, cylinders, etc.), a point cloud (obtained from a RGBD sensor), or a combination of both. The adjacent video is a montage of MoveIt2's capabilities in 2020.

Flightmare

Flightmare is a flexible quadrotor simulator composed of two main components: a configurable rendering engine built on Unity and a flexible physics engine for dynamics simulation. Those two components are totally decoupled and can run independently from each other. Flightmare comes with several desirable features: (i) a large multi-modal sensor suite, including an interface to extract the 3D point-cloud of the scene; (ii) an API for reinforcement learning which can simulate hundreds of quadrotors in parallel; and (iii) an integration with a virtual-reality headset for interaction with the simulated environment. Flightmare can be used for various applications, including path-planning, reinforcement learning, visual-inertial odometry, deep learning, human-robot interaction, etc. See Flightmare's Motion Planning page for details on how to configure OMPL.

PyBullet Industrial Path Planner

PyBullet Industrial Path Planner is a modular Python package for sampling-based path planning with industrial robots in PyBullet environments. It integrates OMPL and provides tools to define, execute, and validate motion plans under geometric constraints. This repository extends the PyBullet Industrial (PBI) simulation library, which was developed to integrate process modeling into robotic simulations for industrial applications. A key feature is the simulation of additive and subtractive processes performed by multi-axis robots. The PBI Path Planner extension enhances these functionalities by enabling the planning of transitional movements such as tool changes and part handling, which are essential for creating complete, executable process sequences. In several example scenarios, planned paths are evaluated in simulation and parameterized through integrated numerical control (NC) code modules for deployment on physical robots.

RoboGen / Genesis AI

RoboGen is a self-guided and generative robotic agent that autonomously proposes new tasks, generates corresponding environments, and acquires new robotic skills continuously. RoboGen is powered by Genesis, a multi-material multi-solver generative simulation engine for general-purpose robot learning. Genesis is still under active development and will be released soon. RoboGen combines OMPL with PyBullet for generation and learning of rigid manipulation. See their code (or the upstream repo on which it is based) for an example of how to integrate OMPL with Pybullet.

CoppeliaSim

CoppeliaSim is a modular, generic and general purpose robot simulation framework that offers various tools related to robotics (4 physics engines, collision detection, minimum distance calculation, proximity sensor simulation, vision sensor simulation, full FK/IK kinematic solver, etc.), with various kinds of interfaces (ROS, remote API, plug-ins, add-ons) and language support: C/C++, Python, Java, Matlab, Octave, Lua. It is built on a distributed control architecture, allowing virtually any number of scripts running in parallel and controlling various aspects of a simulation. The OMPL interface for CoppeliaSim was implemented via a plug-in wrapping the OMPL functionality, and offering that functionality via scripting functions. This allows to quickly test various scenarios, without the need to recompile/load test code over and over again. In combination with CoppeliaSim's kinematic functionality, complex movement sequences can easily be computed: e.g. CoppeliaSim can also quickly compute several valid robot configurations for a desired end-effector pose.

The NTNU Fish Otter Project

The NTNU Fish Otter Project has combined OMPL's planners with a geospatial database that contains information from standardized electronic navigational charts (ENC). A paper in Ocean Engineering describes the approach and includes simulations for challenging scenarios. The implemented system provides collision-free paths for maritime navigation, includes a graphical user interface, and is incorporated to a system for autonomous surface vehicles. Simulations show that the implementation supports multiple planning algorithms in generating valid paths in four representative large-scale maritime environments: a cluttered archipelago, a river inlet, a peninsula, and a fjord transit. Their code can be downloaded via the supplementary material link in the paper linked above.

The Kautham Project

The Kautham Project is a software tool used at the Institute of Industrial and Control Engineering (IOC-UPC) for teaching and research in robot motion planning. The tool can plan and simulate systems ranging from simple two degrees of freedom free-flying robots to multi-robot scenarios with mobile manipulators equipped with anthropomorphic hands.

VEROSIM

VEROSIM is a 3D simulation system which aims at implementing the core idea of “eRobotics,” i.e., to design, program, control and optimize complex automated systems in detailed 3D simulations of their prospective working environments (space, open landscapes, forests, cities, buildings, factories etc), before commissioning the real system. At the University of Southern Denmark (SDU), Christian Schlette works on the integration of OMPL into VEROSIM for conventional robot motion planning as well as examining the transferability of sampling-based planners to new (robotic) applications. The adjacent video shows an example by RWTH Aachen University, where the integration of VEROSIM and OMPL support non-roboticists with automated motion planning in cluttered workcells.

EXOTica

The EXOTica library is a generic Optimization Toolset for Robotics platforms, written in C++. Its motivation is to provide a more streamlined process for developing algorithms for such tasks as Inverse-Kinematics and Trajectory Optimisation. Its design advocates modularity, extensibility, and integration with ROS. The library itself consists of two major specifications, both of which are abstract classes. The first is the Problem Solver which defines the way optimization should proceed: current implementation include iLQG, AICO, Jacobian pseudo-inverse IK, and a range of sampling based solvers from the OMPL library. The other is the Task Definition which describes the task itself by providing two necessary functions to compute the forward map from Configuration space (say joint angles in IK) to Task space (say end-effector positions in IK). The tasks themselves can describe a complete trajectory. Using the library then involves passing in an initial state and requesting a solution to the problem, which may consist of a single configuration or complete trajectory.

SIMS

The Kavraki lab has applied motion planning algorithms to the problem of characterizing protein flexibility and conformational changes. A better understanding of protein structure and flexibility is critical to understanding their function. Proteins can be modeled as long kinematic chains. Instead of collisions, state validity is determined by molecular energy. We have developed a conformational sampling framework called the Structured Intuitive Move Selector (SIMS). It uses Rosetta for modeling protein structures and computing their biophysical feasibility. The SIMS software is still very much under development, but will be released at some point in the near future.