Differential Drive Kinematics
差速驱动运动学CommonThe equations relating the left and right wheel speeds of a two-wheeled base to its forward speed and turning rate.
Differential drive is the most common mobile-base layout: an independently motor-driven wheel on the left and one on the right, plus caster wheels to keep it from tipping, steering purely by making the two wheels turn at different speeds, with no separate steering mechanism needed. Its kinematics comes down to just two equations: linear velocity v = (v_R + v_L)/2 and angular velocity ω = (v_R − v_L)/b, where v_R and v_L are the right and left wheel's linear speeds (wheel angular speed times wheel radius r) and b is the distance between the wheels. Run in reverse, a desired v and ω give the speed each wheel should turn at. This makes the chassis behave, in the plane, like a point that can only move forward and spin in place — the unicycle model — and it can't move directly sideways; a speed limitation like this is called a nonholonomic constraint. ROS's diff_drive_controller uses exactly these two equations to convert a cmd_vel command into left/right wheel commands, and to reconstruct odometry from wheel feedback.
ExampleFor a robot vacuum to turn left in place, the right wheel drives forward at speed u and the left wheel drives backward at the same speed u: v = 0, ω = 2u/b, so the body spins in place about the midpoint between the two wheels.
- Also called
- Unicycle Model, Differential Drive Model
- Related
- Nonholonomic Constraint · Differential Drive Base · Wheel Odometry · cmd_vel Topic (geometry_msgs/Twist velocity command) · Mobile Base (Chassis) · Forward Kinematics (FK)
- Sources
- Differential wheeled robot - Wikipedia
ros2_control: diff_drive_controller 文档 (Chinese)