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 Panda as your quick-start robot.


All tutorials referencing the Panda have only been tested with ROS Kinetic. For earlier versions of ROS (eg. indigo) See the ROS Indigo tutorials with the PR2 here

To follow along with these tutorials you will need a ROBOT_moveit_config package. This tutorial will use the Panda robot from Franka Emika. To get a working panda_movit_config package you can install from source, create your own, or install from Debian. We will walk through each method in the following tutorial:

Getting Started with MoveIt! and RViz

MoveGroup - ROS Wrappers in C++ and Python

The simplest way to get started with MoveIt! is through the move_group_interface. The interface gives you unified access to many of the features MoveIt! provides and is ideal for beginners.

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