MoveIt! Tutorials

These tutorials will run you through how to use MoveIt! with your robot. It is assumed that you have already configured MoveIt! for your robot - check the list of robots running MoveIt! to see whether MoveIt! is already available for your robot. Otherwise, skip to the tutorial on Setting up MoveIt! for your robot. If you just want to test MoveIt!, use the PR2 as your quick-start robot.


All tutorials referencing the PR2 have only been tested with ROS Indigo but likely work with ROS Jade. See issue for more information.

Previous version of these tutorials: ROS Indigo


The primary user interface to MoveIt! is through the move_group_interface. You can use this interface both through C++ and Python. A GUI-based interface is available through the use of the MoveIt! Rviz Plugin. We will walk through each of these interfaces in detail:


This set of advanced tutorials is meant for developers who are using MoveIt!’s C++ API. Most users wanting to access MoveIt! in C++ or Python should use the move_group_interface (above).

Integration with 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)


The original MoveIt! tutorials were created by Sachin Chitta, Dave Hershberger, and Acorn Pooley at SRI International. Further improvements have been made by Dave Coleman, Michael Gorner, and Francisco Suarez. Please help us improve these docs!

Open Source Feedback

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