IEEE Robotics & Automation Magazine - December 2012 - 75

●

Local Planner: When planning with controls, the local
planner is a mean of computing the evolution of the
robotic system forward (and sometimes backward) in
time. When planning solely under geometric constraints, the local planner often performs interpolation
between states in the state space.

Software Packages for Motion Planning
Several other packages for motion planning are available.
Some, such as the Motion Strategies Library (MSL, http://msl.
cs.uiuc.edu), the Motion Planning Kit (MPK, http://robotics.
stanford.edu/~mitul/mpk), and VIZMO++ [19] are no longer maintained. KineoWorks (http://www.kineocam.com)
provides commercial motion planning software for academic
research and industrial applications. In 2007, our group
released the Object-Oriented Programming System for
Motion Planning (OOPSMP) [20], which is also no longer
maintained.
Another software package that is complementary to
OMPL is OpenRAVE [21]. OpenRAVE is open source,
actively developed, and it is widely used. It is important to
understand the difference in design philosophy behind
OMPL and OpenRAVE. OpenRAVE is designed to be a complete package for robotics. It includes, among other things,
geometry representation, collision checking, grasp planning,
forward and inverse kinematics for several robots, controllers,
motion planning algorithms, simulated sensors, and visualization tools. OMPL, on the other hand, was designed to
focus completely on sampling-based motion planning with a
clear mapping between theoretical concepts in the literature
and abstract classes in the implementation. This high level of
abstraction makes it easy to integrate OMPL with a variety of
front-ends and other libraries. Some integration examples are
described in section describing the integration with other
robotics software. To some extent, the integration with ROS
[17] gives a user many of OpenRAVE's features that are purposefully not included in OMPL. It may also be possible to
use OMPL as a motion planning plug-in in OpenRAVE. As a
result of the narrower focus in OMPL, we have been spending
more resources on implementing a much broader variety of
sampling-based algorithms than what is currently available in
OpenRAVE, as well as benchmarking capabilities to facilitate
a thorough comparison of existing and future sampling-based
motion planners.
Relationship with Other Robotics Software
There have also been many efforts to create robot simulators such as Player/Stage [22], Player/Gazebo [23], Webots
[24], and MORSE [25]. Microsoft Robotics Developer
Studio [26] also contains a robot simulator. Typically, such
simulators do not include motion planning algorithms, but
they can provide a controlled simulated environment to test
motion planners in various environments, on various
robots with different sensing and communication capabilities. They often simulate the dynamics of the world (including the robots themselves) using physics engines such as

Bullet (http://bulletphysics.org) and the open dynamics
engine (ODE, http://ode.org), among others.
Hardware platforms typically require complex software
configurations and use various forms of middleware to accommodate this requirement
(e.g., ROS [17], Orocos
Many of the core concepts
(http: //www.orocos.org),
OpenRTM-aist [27],
in sampling-based motion
OPRoS [28], Yarp [29]).
Such software systems
planning are relatively
typically include their own
visualization system, collieasy to explain, but
sion checking, etc. OMPL
fits naturally and easily
implementing samplinginto such systems as it
only provides samplingbased motion planning
based motion planning
and its abstract interface
algorithms in a generic way
should accommodate a
variety of low-level
is nontrivial.
implementations.
Conceptual Overview
of OMPL
OMPL is intended for use in research and education, as well
as in industry. For this reason, the main design criteria for
OMPL were as follows:
1) Clarity of Concepts: OMPL was designed to consist of a set
of components as indicated in Figure 2, such that each
component corresponds to known concepts in samplingbased motion planning.
2) Efficiency: OMPL has been implemented entirely in C++
and is thread-safe.
3) Simple Integration with Other Software Packages: To
facilitate the integration with other software libraries,
OMPL offers abstract interfaces that can be implemented by the "host" software package. Furthermore,
the dependencies of OMPL are minimal: only the Boost
C++ libraries are required. Optionally, OMPL can be
compiled with Python bindings, which facilitates integration with Python modules.
4) Straightforward Integration of External Contributions:
We strive for minimalist API constraints for planning
algorithms, so that new contributions can be easily
integrated.
As opposed to all other existing motion planning software libraries, OMPL does not include a representation of
workspaces or of robots; as a result, it also does not include a
collision checker or any means of visualization. OMPL is
reduced to only motion planning algorithms. The advantage
of this minimalist approach is that it allows us to design a
library that can be used for generic search in high-dimensional continuous spaces subject to complex constraints.
Instead of defining valid states as collision-free, which would
require a specific geometric representation of the environment and robot as well as support for a specific collision
december 2012

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

75


http://www.bulletphysics.org http://www.ode.org http://msl http://cs.uiuc.edu http://robotics http://www.stanford.edu/~mitul/mpk http://www.kineocam.com

Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - December 2012

IEEE Robotics & Automation Magazine - December 2012 - Cover1
IEEE Robotics & Automation Magazine - December 2012 - Cover2
IEEE Robotics & Automation Magazine - December 2012 - 1
IEEE Robotics & Automation Magazine - December 2012 - 2
IEEE Robotics & Automation Magazine - December 2012 - 3
IEEE Robotics & Automation Magazine - December 2012 - 4
IEEE Robotics & Automation Magazine - December 2012 - 5
IEEE Robotics & Automation Magazine - December 2012 - 6
IEEE Robotics & Automation Magazine - December 2012 - 7
IEEE Robotics & Automation Magazine - December 2012 - 8
IEEE Robotics & Automation Magazine - December 2012 - 9
IEEE Robotics & Automation Magazine - December 2012 - 10
IEEE Robotics & Automation Magazine - December 2012 - 11
IEEE Robotics & Automation Magazine - December 2012 - 12
IEEE Robotics & Automation Magazine - December 2012 - 13
IEEE Robotics & Automation Magazine - December 2012 - 14
IEEE Robotics & Automation Magazine - December 2012 - 15
IEEE Robotics & Automation Magazine - December 2012 - 16
IEEE Robotics & Automation Magazine - December 2012 - 17
IEEE Robotics & Automation Magazine - December 2012 - 18
IEEE Robotics & Automation Magazine - December 2012 - 19
IEEE Robotics & Automation Magazine - December 2012 - 20
IEEE Robotics & Automation Magazine - December 2012 - 21
IEEE Robotics & Automation Magazine - December 2012 - 22
IEEE Robotics & Automation Magazine - December 2012 - 23
IEEE Robotics & Automation Magazine - December 2012 - 24
IEEE Robotics & Automation Magazine - December 2012 - 25
IEEE Robotics & Automation Magazine - December 2012 - 26
IEEE Robotics & Automation Magazine - December 2012 - 27
IEEE Robotics & Automation Magazine - December 2012 - 28
IEEE Robotics & Automation Magazine - December 2012 - 29
IEEE Robotics & Automation Magazine - December 2012 - 30
IEEE Robotics & Automation Magazine - December 2012 - 31
IEEE Robotics & Automation Magazine - December 2012 - 32
IEEE Robotics & Automation Magazine - December 2012 - 33
IEEE Robotics & Automation Magazine - December 2012 - 34
IEEE Robotics & Automation Magazine - December 2012 - 35
IEEE Robotics & Automation Magazine - December 2012 - 36
IEEE Robotics & Automation Magazine - December 2012 - 37
IEEE Robotics & Automation Magazine - December 2012 - 38
IEEE Robotics & Automation Magazine - December 2012 - 39
IEEE Robotics & Automation Magazine - December 2012 - 40
IEEE Robotics & Automation Magazine - December 2012 - 41
IEEE Robotics & Automation Magazine - December 2012 - 42
IEEE Robotics & Automation Magazine - December 2012 - 43
IEEE Robotics & Automation Magazine - December 2012 - 44
IEEE Robotics & Automation Magazine - December 2012 - 45
IEEE Robotics & Automation Magazine - December 2012 - 46
IEEE Robotics & Automation Magazine - December 2012 - 47
IEEE Robotics & Automation Magazine - December 2012 - 48
IEEE Robotics & Automation Magazine - December 2012 - 49
IEEE Robotics & Automation Magazine - December 2012 - 50
IEEE Robotics & Automation Magazine - December 2012 - 51
IEEE Robotics & Automation Magazine - December 2012 - 52
IEEE Robotics & Automation Magazine - December 2012 - 53
IEEE Robotics & Automation Magazine - December 2012 - 54
IEEE Robotics & Automation Magazine - December 2012 - 55
IEEE Robotics & Automation Magazine - December 2012 - 56
IEEE Robotics & Automation Magazine - December 2012 - 57
IEEE Robotics & Automation Magazine - December 2012 - 58
IEEE Robotics & Automation Magazine - December 2012 - 59
IEEE Robotics & Automation Magazine - December 2012 - 60
IEEE Robotics & Automation Magazine - December 2012 - 61
IEEE Robotics & Automation Magazine - December 2012 - 62
IEEE Robotics & Automation Magazine - December 2012 - 63
IEEE Robotics & Automation Magazine - December 2012 - 64
IEEE Robotics & Automation Magazine - December 2012 - 65
IEEE Robotics & Automation Magazine - December 2012 - 66
IEEE Robotics & Automation Magazine - December 2012 - 67
IEEE Robotics & Automation Magazine - December 2012 - 68
IEEE Robotics & Automation Magazine - December 2012 - 69
IEEE Robotics & Automation Magazine - December 2012 - 70
IEEE Robotics & Automation Magazine - December 2012 - 71
IEEE Robotics & Automation Magazine - December 2012 - 72
IEEE Robotics & Automation Magazine - December 2012 - 73
IEEE Robotics & Automation Magazine - December 2012 - 74
IEEE Robotics & Automation Magazine - December 2012 - 75
IEEE Robotics & Automation Magazine - December 2012 - 76
IEEE Robotics & Automation Magazine - December 2012 - 77
IEEE Robotics & Automation Magazine - December 2012 - 78
IEEE Robotics & Automation Magazine - December 2012 - 79
IEEE Robotics & Automation Magazine - December 2012 - 80
IEEE Robotics & Automation Magazine - December 2012 - 81
IEEE Robotics & Automation Magazine - December 2012 - 82
IEEE Robotics & Automation Magazine - December 2012 - 83
IEEE Robotics & Automation Magazine - December 2012 - 84
IEEE Robotics & Automation Magazine - December 2012 - 85
IEEE Robotics & Automation Magazine - December 2012 - 86
IEEE Robotics & Automation Magazine - December 2012 - 87
IEEE Robotics & Automation Magazine - December 2012 - 88
IEEE Robotics & Automation Magazine - December 2012 - 89
IEEE Robotics & Automation Magazine - December 2012 - 90
IEEE Robotics & Automation Magazine - December 2012 - 91
IEEE Robotics & Automation Magazine - December 2012 - 92
IEEE Robotics & Automation Magazine - December 2012 - 93
IEEE Robotics & Automation Magazine - December 2012 - 94
IEEE Robotics & Automation Magazine - December 2012 - 95
IEEE Robotics & Automation Magazine - December 2012 - 96
IEEE Robotics & Automation Magazine - December 2012 - 97
IEEE Robotics & Automation Magazine - December 2012 - 98
IEEE Robotics & Automation Magazine - December 2012 - 99
IEEE Robotics & Automation Magazine - December 2012 - 100
IEEE Robotics & Automation Magazine - December 2012 - 101
IEEE Robotics & Automation Magazine - December 2012 - 102
IEEE Robotics & Automation Magazine - December 2012 - 103
IEEE Robotics & Automation Magazine - December 2012 - 104
IEEE Robotics & Automation Magazine - December 2012 - 105
IEEE Robotics & Automation Magazine - December 2012 - 106
IEEE Robotics & Automation Magazine - December 2012 - 107
IEEE Robotics & Automation Magazine - December 2012 - 108
IEEE Robotics & Automation Magazine - December 2012 - 109
IEEE Robotics & Automation Magazine - December 2012 - 110
IEEE Robotics & Automation Magazine - December 2012 - 111
IEEE Robotics & Automation Magazine - December 2012 - 112
IEEE Robotics & Automation Magazine - December 2012 - Cover3
IEEE Robotics & Automation Magazine - December 2012 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com