MoveIt Tutorials

These tutorials will step you through using and learning the MoveIt Motion Planning Framework.


In these tutorials, the Franka Emika Panda robot is used as a quick-start demo. Alternatively, you can easily use any robot that has already been configured to work with MoveIt - check the list of robots running MoveIt to see whether MoveIt is already available for your robot. Otherwise, you can setup MoveIt to work with your custom robot in the tutorial section “Integration with a New Robot”, below.


You are on the ROS Melodic version of the tutorials, which is the recommended for beginners but requires Ubuntu 18.04. For the latest, actively developed version of the tutorials see the master version.

For older systems running ROS Kinetic on Ubuntu 16.04 see the MoveIt Kinetic tutorials. For even older systems running ROS Indigo on Ubuntu 14.04 see the MoveIt Indigo tutorials based on the PR2.

Getting Started with MoveIt and RViz

MoveGroup - ROS Wrappers in C++ and Python

The simplest way to use MoveIt through scripting is using the move_group_interface. This interface is ideal for beginners and provides unified access to many of the features of MoveIt.

Using MoveIt Directly Through the C++ API

Building more complex applications with MoveIt often requires developers to dig into MoveIt’s C++ API. As an added plus, using the C++ API directly skips many of the ROS Service/Action layers resulting in significantly faster performance.

Integration with a New Robot

Before attempting to integrate a new robot with MoveIt, check whether your robot has already been setup (see the list of robots running MoveIt). Otherwise, follow the tutorials in this section to integrate your robot with MoveIt (and share your results on the MoveIt mailing list)


Major contributors to the MoveIt tutorials are listed in chronological order: Sachin Chitta, Dave Hershberger, Acorn Pooley, Dave Coleman, Michael Gorner, Francisco Suarez, Mike Lautman. Help us improve these docs and we’ll be happy to include you here also!

The tutorials had a major update in 2018 during a code sprint sponsored by Franka Emika in collaboration with PickNik (Check out the blog post!)


Open Source Feedback

See something that needs improvement? Please open a pull request on this GitHub page