MoveIt Servo (realtime arm servoing)
MoveIt Servo(实时伺服模块)AdvancedMoveIt 2's realtime servoing module: it takes a continuous stream of velocity or pose commands and drives the arm safely.
MoveIt Servo is the realtime servoing module built into MoveIt 2 (ROS package moveit_servo, formerly known as Jog Arm). Regular MoveIt takes a goal, plans a full trajectory, and then executes it; Servo instead consumes a steady stream of small commands and works out the next joint positions or velocities every cycle, usually handing them to a ros2_control controller. The official docs list three input types — individual joint velocities, an end-effector velocity, and a target end-effector pose (the Humble docs cover only the first two) — and they can come from a gamepad, a 3D mouse, or closed-loop software such as a visual servoing controller. Servo converts end-effector commands into joint commands with an inverse Jacobian or an IK plugin, slows down (and stops if necessary) as the arm nears a singularity or an obstacle, and enforces joint position and velocity limits. The catch: commands need fresh timestamps and must keep arriving — stale ones are ignored and the arm comes to a stop.
ExampleRun the official Panda gamepad demo: joystick readings become end-effector velocity commands streamed to Servo, and the arm follows in real time; steer it toward the table collision objects in the scene and it slows down, then stops.
- Also called
- moveit_servo, Jog Arm
- Related
- MoveIt Motion Planning Framework · Visual Servoing · Teleoperation · Singular Configuration (Kinematic Singularity) · Collision Checking · ros2_control
- Sources
- Realtime Servo(MoveIt 2 文档) (Chinese)
Realtime Arm Servoing(MoveIt 2 Humble 文档) (Chinese)
Introducing MoveIt Servo in ROS 2(MoveIt 博客) (Chinese) - As of
- 2026-10