MoveIt Architecture

MoveIt connects a robot model, the current state of the robot, motion-planning algorithms, collision checking, and robot controllers. The central component is the move_group node. Applications normally send requests to move_group instead of calling planners or controllers directly.

Application, RViz or MoveItPy
              |
              v
          move_group
       /       |       \
Robot model  Planning   Planning pipeline
URDF + SRDF  scene      and planner plugins
       \       |       /
        Trajectory execution
                 |
                 v
        ros2_control controller
                 |
                 v
               Robot

Main components

Robot model

The URDF describes the links, joints, geometry, and physical structure of the robot. The SRDF adds information used for planning, including planning groups, end effectors, named poses, virtual joints, and allowed collisions.

Planning Scene Monitor

The Planning Scene Monitor combines the robot’s current joint state with its surroundings. It updates the planning scene from joint states, TF transforms, attached objects, collision objects, and optional 3D sensors. Motion plans are checked against this scene.

Planning pipeline

The planning pipeline sends a request to a planner plugin, such as OMPL or the Pilz Industrial Motion Planner. Request adapters can validate or modify the request and process the resulting trajectory.

Trajectory execution

After planning, MoveIt sends the trajectory to a compatible controller. For a typical arm, MoveIt uses a FollowJointTrajectory action provided by a joint_trajectory_controller. A gripper commonly uses a gripper action controller.

The moveit_config package

A robot-specific moveit_config package connects these components. It usually contains the SRDF, kinematics settings, joint limits, planner settings, controller mappings, and launch files. The MoveIt Setup Assistant generates a starting package, which can then be adjusted for the robot and application.

Official documentation