Formula & Calculator
Differential Drive Robot Linear Velocity
Calculates the forward linear velocity of a differential-drive mobile robot from its two independent wheel velocities.
Interpretation
v = (v_right + v_left)/2. Average of two wheel speeds. Used for odometry and motion control of differential drive robots.
Variables
| Symbol | Quantity | Unit |
|---|---|---|
| v | Robot linear (forward) velocity | m/s |
| v_right, v_left | Velocities of the right and left wheels | m/s |
What it means
In a differential drive robot, the linear velocity of the robot body is the average of the velocities of the two wheels (assuming no slipping). This formula is used to compute the robot’s forward speed from wheel encoder readings. It is essential for odometry (dead‑reckoning) and for velocity control. The linear velocity is a component of the robot’s state. Together with angular velocity (see next formula), it completely describes the robot’s motion. Understanding this helps in implementing motion control algorithms and in simulation of mobile robots.
Worked example
Differential Drive Linear Velocity – Two Detailed Examples
Real‑World| Parameter | Value |
|---|---|
| v_right (m/s) | 1 |
| v_left (m/s) | 1 |
| Parameter | Value |
|---|---|
| v_right | 0.5 |
| v_left | 1.5 |
Common mistakes
- Differential drive linear velocity: v = (v_right + v_left) / 2 – average of two wheel speeds.
- Units: v in m/s – both wheel speeds must be in the same units.
- Assumes: Wheels are non‑slipping and the robot is rigid.
- Sign: Positive forward – if one wheel is negative, the robot turns.
- Wheel velocity: This is the linear speed of the wheel contact point – not the angular speed (convert using radius).
Applications
Differential drive robot linear velocity, v = (v_right + v_left)/2, gives the speed of the robot's centre in the forward direction. This is a fundamental model for wheeled mobile robots with two independently driven wheels. Robotics engineers use it to plan and control the motion of mobile platforms, from small educational robots to autonomous vehicles. By controlling the wheel speeds, the robot can move straight (equal speeds) or turn (speed difference). This formula is used in odometry, path tracking, and navigation algorithms such as pure pursuit and PID control. Understanding this relation is essential for mobile robot localisation and motion control.
- Mobile robot motion control and path tracking
- Odometry and dead‑reckoning for localisation
- Autonomous navigation in warehouses and factories
- Design of differential drive robots for competitions and research
- Implementation of control algorithms (e.g., PID, MPC) for mobile bases
Frequently Asked Questions
The forward linear velocity of a differential‑drive robot is the average of the two wheel velocities: v = (v_right + v_left) / 2. This assumes the wheels are not slipping and the robot is moving on a plane.
Using a single wheel's velocity directly instead of averaging both wheels, which misrepresents the robot's true forward speed when turning.
The angular velocity is ω = (v_right – v_left) / L, where L is the wheel separation (track width). Positive ω means turning left (counter‑clockwise).
The ICR is the point about which the robot rotates. Its location depends on the wheel speeds: if both wheels move at the same speed, the ICR is at infinity (straight motion). If one wheel is stopped, the ICR is at the stopped wheel.
Given v and ω over a time step Δt, the change in heading is Δθ = ω·Δt. The displacement is Δx = v·cosθ·Δt, Δy = v·sinθ·Δt. Update the pose: x += Δx, y += Δy, θ += Δθ.
Common in mobile robots, wheelchairs, and automated guided vehicles (AGVs). It is simple and allows for zero‑radius turns (by spinning in place).
Requires wheel encoders for odometry; slip can cause errors. It cannot move sideways (non‑holonomic). Turning in place is possible but may cause wear on wheels.
Use a controller (e.g., PID) to adjust v and ω to minimise the error between the current pose and the desired path. Typically, a pure pursuit or Stanley controller is used.
Given desired v and ω, solve for v_right = v + (ω·L)/2 and v_left = v – (ω·L)/2. These are then mapped to motor speeds (e.g., PWM or RPM).
If wheel velocities are given in angular speed (rad/s), the linear velocity of each wheel is v_i = ω_i · r, where r is the wheel radius. The robot's v and ω are then computed from these linear speeds.