IEEE Robotics & Automation Magazine - March 2012 - 18

ROS TOPICS

*

MoveIt!
By Sachin Chitta, Ioan Sucan, and Steve Cousins

R

obots are increasingly finding
applications in domains where
they have to work in close
proximity to humans. Industrial robotic applications are starting to
examine the possibility of robots and
humans as coworkers, sharing tasks
and workspace. Autonomous robotic
cars operating on crowded streets and
freeways have to share space with
pedestrians and cyclists in addition to
other vehicles. Domestic robots, in
particular mobile manipulation systems, will be confronted with cluttered,
messy environments where obstacles
exist at every corner, and people are
continuously moving in and out of the
workspace of the robots.
Robots working in human environments clearly have to be aware of their
surroundings and must actively attempt
to avoid collisions with humans and
other obstacles. MoveIt! is a set of software packages integrated with the
Robot Operating System (ROS) and
designed specifically to provide such
capabilities, especially for mobile
manipulation. MoveIt! will allow robots
to build up a representation of their
environment using data fused from
three-dimensional (3-D) and other sensors, generate motion plans that effectively and safely move the robot around
in the environment, and execute the
motion plans while constantly monitoring the environment for changes.
Ground Work
MoveIt! is an evolution of the arm_ navigation software in ROS. The arm_navigation packages were designed for
Digital Object Identifier 10.1109/MRA.2011.2181749
Date of publication: 26 March 2012

18

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

motion planning, trajectory generation,
and environment monitoring for the
robot arms of the PR2 robot. Sensor
data from the laser and stereo sensors
on the PR2 robot was fused to generate
a consistent model of the environment.
The environment model can handle
occlusions from parts of the robot's
body and also the significant noise in
3-D sensor data. The environment was
represented as a mixture of two formats:
1) a voxel grid that represented most of
the obstacles in the environment and
2) geometric primitives and mesh models to represent objects that had been
recognized and registered in the environment by object detection routines.
The environment model was built upon
the Octomap package [1], an octreebased probabilistic representation,
allowing for efficient representation of
large cluttered scenes. The environment
model served as the primary input to
fast motion planners that could quickly
generate collision-free motion plans in
fairly cluttered environments. A generic
ROS interface for geometric planning
allowed multiple motion planners to be
integrated, including randomized planners from the Open Motion Planning
Library (OMPL) [2], search-based planners from the Search-Based Planning
Library (SBPL) [3], and trajectory optimization libraries including CHOMP
[4] and stochastic trajectory optimization for motion planning (STOMP) [5].
Some of the motion planners were capable of dealing with geometric constraints, e.g., an orientation constraint
specifying that a glass of water should
stay upright. Path smoothers and trajectory generators were used to parameterize the planned paths so that smooth
trajectories could be executed on the

MARCH 2012

robot. A custom analytical kinematics
solver for the PR2 allowed for fast inverse
kinematics solutions. An execution component called move_arm formed the
primary interface to this set of capabilities, exposing an interface that allowed
users to specify Cartesian and joint space
goals that the robot needed to reach. A
trajectory monitoring component kept
an eye on the motion of the robot,
actively servoing the sensors if necessary,
to track the motion of the arm, and
respond to changes in the environment.
The arm_navigation software was a key
component of the grasping pipeline (subject of a previous "ROS Topics" column),
allowing the generation of collision-free
trajectories to execute, pick, and place
actions, obeying the geometric constraints imposed by the task.
Evolution
The evolution of the arm_navigation
software to MoveIt! is the result of an
effort to package the core algorithmic
capabilities in the arm_navigation
software separately from the middleware (ROS), allowing for easier code
reuse. Lightweight ROS bindings and
wrappers will allow ROS users to
easily configure and interface with the
components of MoveIt!. Advanced
users and application developers will
be able to directly incorporate the core
capabilities in MoveIt! through libraries without needing to depend on a
large part of ROS. MoveIt! builds on
new features in ROS, including the
ability to use the ROS message generation infrastructure as a standalone
capability. MoveIt! also integrates the
Fast Collision Library (FCL) [6],
which provides distance-checking
capabilities that should allow for the



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

IEEE Robotics & Automation Magazine - March 2012 - Cover1
IEEE Robotics & Automation Magazine - March 2012 - Cover2
IEEE Robotics & Automation Magazine - March 2012 - 1
IEEE Robotics & Automation Magazine - March 2012 - 2
IEEE Robotics & Automation Magazine - March 2012 - 3
IEEE Robotics & Automation Magazine - March 2012 - 4
IEEE Robotics & Automation Magazine - March 2012 - 5
IEEE Robotics & Automation Magazine - March 2012 - 6
IEEE Robotics & Automation Magazine - March 2012 - 7
IEEE Robotics & Automation Magazine - March 2012 - 8
IEEE Robotics & Automation Magazine - March 2012 - 9
IEEE Robotics & Automation Magazine - March 2012 - 10
IEEE Robotics & Automation Magazine - March 2012 - 11
IEEE Robotics & Automation Magazine - March 2012 - 12
IEEE Robotics & Automation Magazine - March 2012 - 13
IEEE Robotics & Automation Magazine - March 2012 - 14
IEEE Robotics & Automation Magazine - March 2012 - 15
IEEE Robotics & Automation Magazine - March 2012 - 16
IEEE Robotics & Automation Magazine - March 2012 - 17
IEEE Robotics & Automation Magazine - March 2012 - 18
IEEE Robotics & Automation Magazine - March 2012 - 19
IEEE Robotics & Automation Magazine - March 2012 - 20
IEEE Robotics & Automation Magazine - March 2012 - 21
IEEE Robotics & Automation Magazine - March 2012 - 22
IEEE Robotics & Automation Magazine - March 2012 - 23
IEEE Robotics & Automation Magazine - March 2012 - 24
IEEE Robotics & Automation Magazine - March 2012 - 25
IEEE Robotics & Automation Magazine - March 2012 - 26
IEEE Robotics & Automation Magazine - March 2012 - 27
IEEE Robotics & Automation Magazine - March 2012 - 28
IEEE Robotics & Automation Magazine - March 2012 - 29
IEEE Robotics & Automation Magazine - March 2012 - 30
IEEE Robotics & Automation Magazine - March 2012 - 31
IEEE Robotics & Automation Magazine - March 2012 - 32
IEEE Robotics & Automation Magazine - March 2012 - 33
IEEE Robotics & Automation Magazine - March 2012 - 34
IEEE Robotics & Automation Magazine - March 2012 - 35
IEEE Robotics & Automation Magazine - March 2012 - 36
IEEE Robotics & Automation Magazine - March 2012 - 37
IEEE Robotics & Automation Magazine - March 2012 - 38
IEEE Robotics & Automation Magazine - March 2012 - 39
IEEE Robotics & Automation Magazine - March 2012 - 40
IEEE Robotics & Automation Magazine - March 2012 - 41
IEEE Robotics & Automation Magazine - March 2012 - 42
IEEE Robotics & Automation Magazine - March 2012 - 43
IEEE Robotics & Automation Magazine - March 2012 - 44
IEEE Robotics & Automation Magazine - March 2012 - 45
IEEE Robotics & Automation Magazine - March 2012 - 46
IEEE Robotics & Automation Magazine - March 2012 - 47
IEEE Robotics & Automation Magazine - March 2012 - 48
IEEE Robotics & Automation Magazine - March 2012 - 49
IEEE Robotics & Automation Magazine - March 2012 - 50
IEEE Robotics & Automation Magazine - March 2012 - 51
IEEE Robotics & Automation Magazine - March 2012 - 52
IEEE Robotics & Automation Magazine - March 2012 - 53
IEEE Robotics & Automation Magazine - March 2012 - 54
IEEE Robotics & Automation Magazine - March 2012 - 55
IEEE Robotics & Automation Magazine - March 2012 - 56
IEEE Robotics & Automation Magazine - March 2012 - 57
IEEE Robotics & Automation Magazine - March 2012 - 58
IEEE Robotics & Automation Magazine - March 2012 - 59
IEEE Robotics & Automation Magazine - March 2012 - 60
IEEE Robotics & Automation Magazine - March 2012 - 61
IEEE Robotics & Automation Magazine - March 2012 - 62
IEEE Robotics & Automation Magazine - March 2012 - 63
IEEE Robotics & Automation Magazine - March 2012 - 64
IEEE Robotics & Automation Magazine - March 2012 - 65
IEEE Robotics & Automation Magazine - March 2012 - 66
IEEE Robotics & Automation Magazine - March 2012 - 67
IEEE Robotics & Automation Magazine - March 2012 - 68
IEEE Robotics & Automation Magazine - March 2012 - 69
IEEE Robotics & Automation Magazine - March 2012 - 70
IEEE Robotics & Automation Magazine - March 2012 - 71
IEEE Robotics & Automation Magazine - March 2012 - 72
IEEE Robotics & Automation Magazine - March 2012 - 73
IEEE Robotics & Automation Magazine - March 2012 - 74
IEEE Robotics & Automation Magazine - March 2012 - 75
IEEE Robotics & Automation Magazine - March 2012 - 76
IEEE Robotics & Automation Magazine - March 2012 - 77
IEEE Robotics & Automation Magazine - March 2012 - 78
IEEE Robotics & Automation Magazine - March 2012 - 79
IEEE Robotics & Automation Magazine - March 2012 - 80
IEEE Robotics & Automation Magazine - March 2012 - 81
IEEE Robotics & Automation Magazine - March 2012 - 82
IEEE Robotics & Automation Magazine - March 2012 - 83
IEEE Robotics & Automation Magazine - March 2012 - 84
IEEE Robotics & Automation Magazine - March 2012 - 85
IEEE Robotics & Automation Magazine - March 2012 - 86
IEEE Robotics & Automation Magazine - March 2012 - 87
IEEE Robotics & Automation Magazine - March 2012 - 88
IEEE Robotics & Automation Magazine - March 2012 - 89
IEEE Robotics & Automation Magazine - March 2012 - 90
IEEE Robotics & Automation Magazine - March 2012 - 91
IEEE Robotics & Automation Magazine - March 2012 - 92
IEEE Robotics & Automation Magazine - March 2012 - 93
IEEE Robotics & Automation Magazine - March 2012 - 94
IEEE Robotics & Automation Magazine - March 2012 - 95
IEEE Robotics & Automation Magazine - March 2012 - 96
IEEE Robotics & Automation Magazine - March 2012 - 97
IEEE Robotics & Automation Magazine - March 2012 - 98
IEEE Robotics & Automation Magazine - March 2012 - 99
IEEE Robotics & Automation Magazine - March 2012 - 100
IEEE Robotics & Automation Magazine - March 2012 - 101
IEEE Robotics & Automation Magazine - March 2012 - 102
IEEE Robotics & Automation Magazine - March 2012 - 103
IEEE Robotics & Automation Magazine - March 2012 - 104
IEEE Robotics & Automation Magazine - March 2012 - 105
IEEE Robotics & Automation Magazine - March 2012 - 106
IEEE Robotics & Automation Magazine - March 2012 - 107
IEEE Robotics & Automation Magazine - March 2012 - 108
IEEE Robotics & Automation Magazine - March 2012 - 109
IEEE Robotics & Automation Magazine - March 2012 - 110
IEEE Robotics & Automation Magazine - March 2012 - 111
IEEE Robotics & Automation Magazine - March 2012 - 112
IEEE Robotics & Automation Magazine - March 2012 - 113
IEEE Robotics & Automation Magazine - March 2012 - 114
IEEE Robotics & Automation Magazine - March 2012 - 115
IEEE Robotics & Automation Magazine - March 2012 - 116
IEEE Robotics & Automation Magazine - March 2012 - 117
IEEE Robotics & Automation Magazine - March 2012 - 118
IEEE Robotics & Automation Magazine - March 2012 - 119
IEEE Robotics & Automation Magazine - March 2012 - 120
IEEE Robotics & Automation Magazine - March 2012 - 121
IEEE Robotics & Automation Magazine - March 2012 - 122
IEEE Robotics & Automation Magazine - March 2012 - 123
IEEE Robotics & Automation Magazine - March 2012 - 124
IEEE Robotics & Automation Magazine - March 2012 - 125
IEEE Robotics & Automation Magazine - March 2012 - 126
IEEE Robotics & Automation Magazine - March 2012 - 127
IEEE Robotics & Automation Magazine - March 2012 - 128
IEEE Robotics & Automation Magazine - March 2012 - Cover3
IEEE Robotics & Automation Magazine - March 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