Differential Drive Calculator — Robot Angular Velocity
Solve the classic differential-drive angular velocity relation ω = (vR − vL) / L for yaw rate, right wheel velocity, left wheel velocity, or wheelbase — with a live top-down robot diagram, a rotation-arc indicator, ICC/turn-radius visualization, and companion body-motion metrics.
Only the difference matters — never the sum
The relation ω = (vR − vL) / L shows that rotation depends only on the difference between the two wheel velocities. Adding the same amount to both wheels (vR + a, vL + a) leaves ω unchanged — the robot speeds up but keeps the same turn rate. This is the key decomposition of differential drive: the sum (vR + vL)/2 gives translation, the difference (vR − vL)/L gives rotation. The two are completely orthogonal and can be controlled independently.
Wheelbase scales the response inversely
Doubling the wheelbase halves the angular velocity for the same wheel-speed difference. A robot with L = 0.15 m turns twice as fast as one with L = 0.30 m under identical wheel commands. This is why small indoor robots can spin very quickly while large warehouse AMRs with 0.6–0.8 m wheelbases need substantially larger wheel-speed differences to achieve the same yaw rate. In the formula, ω = Δv / L is a hyperbolic relationship in L.
Equal wheel speeds give ω = 0 — always
When vR = vL the numerator of the relation is exactly zero, so ω = 0 regardless of how fast the robot is moving. In the turn-radius formula R = v / ω, this becomes finite / 0 → ∞, meaning the path is a straight line. Conversely, when vR = −vL (equal magnitude, opposite sign), the body velocity is zero but ω is maximal — the robot spins in place around its own center. These two cases (straight and spin-in-place) bracket all possible differential-drive motions.
The instantaneous center of curvature traces the arc
At every instant, the robot is rotating about a single point — the Instantaneous Center of Curvature (ICC) — located perpendicular to the heading at distance R = v/ω from the axle midpoint. As the robot moves, this ICC can change, but at each instant it defines the local radius of curvature. When the wheels are equal, the ICC is at infinity (straight path). When the wheels are opposite, the ICC coincides with the robot's own center (spin-in-place). The magnitude of ω is what determines how fast the heading rotates around this center.
How to Use This Calculator
The differential-drive angular velocity relation links four quantities: ω, vR, vL, and L. Pick which one you want the tool to solve, then fill in the others.
1. Choose what to solve for
Pick ω (angular velocity), vR (right wheel), vL (left wheel), or L (wheelbase) from the toggle. The calculator rearranges ω = (vR−vL)/L for whichever variable you choose, and always reports the companion body velocity and turn radius.
2. Start from a turn preset
Presets cover the full range: straight (ω = 0), very slow left, gentle left/right, sharp left/right, spin in place (left and right), pivot around one wheel, and a tight spin using a small wheelbase. Each is calibrated for realistic wheel velocities.
3. Remember the sign convention
Positive ω means a counter-clockwise (left) turn — the robot's heading rotates toward its left side. This happens when vR > vL. Negative ω is a clockwise (right) turn, when vR < vL. The magnitude of ω gives how fast the heading is changing in rad/s.
4. Watch the singularity when solving for L
If you're solving for L and ω = 0, the relation L = (vR−vL)/ω divides by zero. This happens only when the wheels are equal — the robot goes straight, and the wheelbase cannot be inferred from wheel velocities alone. The calculator flags this case explicitly.
5. Read the result and verdict
The result card shows the solved value with the companion body velocity v, turn radius R, and wheel-speed difference Δv. A colour-coded verdict classifies the yaw rate from "straight" through "gentle curve", "sharp turn", "spin in place", and "extreme" — with separate badges for pivot and spin.
6. Switch to Advanced for depth
Advanced mode adds charts of ω vs. Δv, ω vs. L (hyperbolic), and Δθ vs. Δt, a sensitivity panel showing the effect of ±1% on each input, and a companion metrics panel including distance travelled, heading change, curvature, ICC offset, and path arcs.
What This Tool Offers
Built around the classic differential-drive angular velocity relation ω = (vright − vleft) / L, the fundamental link between wheel-speed difference and the yaw rate of a two-wheeled robot.
Four-way solving
Solve for angular velocity, right wheel velocity, left wheel velocity, or wheelbase. The calculator rearranges the relation for whichever variable you choose and flags the singular case ω = 0 when solving for L.
Rotation-focused diagram
A top-down robot with a live rotation arc around its center (with arrowhead and direction), wheel velocity arrows, body velocity arrow, trajectory arc, and the instantaneous center of curvature (ICC) marked at distance R.
Yaw-rate verdict
Each result is classified from "straight" through "gentle", "moderate", "sharp", "very sharp", up to "spin in place" — with clear colour coding and separate handling for the pivot and spin cases.
Companion turn metrics
Every result includes the body velocity v, turn radius R = v/ω, path curvature κ = 1/R, and the position of the instantaneous center of curvature. These complete the planar-motion picture alongside ω.
Time-integrated metrics
Enter Δt to compute the heading change Δθ = ω·Δt, distance travelled s = v·Δt, and the arc lengths along each wheel path (vR·Δt, vL·Δt) — the full motion description over a control cycle.
Reference tables
Typical wheelbase and yaw-rate values by robot class, a companion ω lookup grid for common wheel-speed differences, unit conversions, and a full variable reference.
Reference Tables & Conversions
Angular-velocity and speed converters, a companion ω lookup grid, and typical yaw-rate values by robot class.
Angular-velocity & speed converter
Angular Velocity Lookup — ω = Δv / L
Computed for the wheel-speed differences and wheelbases shown. Values in rad/s.
| Δv (m/s) \ L (m) | 0.15 | 0.30 | 0.50 | 0.80 | 1.20 | 2.00 |
|---|
Typical Yaw-Rate Values by Robot Class
Representative maximum and typical yaw rates. Real robots also have actuator saturation and joint limits.
| Class | Wheelbase L | Top speed | Max Δv | Max |ω| | Typical use |
|---|---|---|---|---|---|
| Small indoor hobby (TurtleBot 2) | 0.23 m | 0.65 m/s | 1.3 m/s | 5.65 rad/s | Education, research |
| Small indoor service (TurtleBot 3) | 0.16 m | 0.22 m/s | 0.44 m/s | 2.75 rad/s | ROS learning, prototyping |
| Medium indoor (Ridgeback) | 0.50 m | 1.3 m/s | 2.6 m/s | 5.2 rad/s | Research, indoor delivery |
| Warehouse AMR (Kiva) | 0.60 m | 1.4 m/s | 1.5 m/s | 2.5 rad/s | Order fulfilment |
| Heavy indoor (MiR 500) | 0.72 m | 1.2 m/s | 1.2 m/s | 1.67 rad/s | Industrial cart pulling |
| Wheelchair conversion | 0.55 m | 1.5 m/s | 1.5 m/s | 2.73 rad/s | Mobility |
| Hospitality robot (Temi) | 0.40 m | 0.8 m/s | 0.8 m/s | 2.0 rad/s | Guiding, telepresence |
| Large outdoor (Husky) | 0.55 m | 1.0 m/s | 0.8 m/s | 1.45 rad/s | Field robotics, research |
Variable Reference
| Symbol | Meaning | Typical range | Units |
|---|---|---|---|
| ω | Angular velocity (yaw rate) | −10 – +10 | rad/s |
| vR | Right wheel linear velocity | −3 – +3 | m/s |
| vL | Left wheel linear velocity | −3 – +3 | m/s |
| L | Wheelbase (track width) | 0.05 – 3 | m |
| Δv | Wheel-speed difference = vR − vL | −6 – +6 | m/s |
| v | Body linear velocity (companion) | −3 – +3 | m/s |
| R | Turn radius = v/ω | 0 – ∞ | m |
| κ | Curvature = 1/R | −∞ – +∞ | 1/m |
| Δθ | Heading change over Δt | — | rad or ° |
What Does ω = (vR − vL) / L Measure?
The angular velocity relation gives the yaw rate of a differential-drive robot's body, in terms of the two wheel speeds and the wheelbase. It is the companion to the linear velocity relation v = (vR + vL)/2 — together they fully describe the planar motion of a differential-drive robot at any instant. The linear velocity comes from the average of the two wheels; the angular velocity comes from their difference divided by the wheelbase. The two are orthogonal: adding a constant to both wheels changes v without affecting ω; adding and subtracting an equal amount changes ω without affecting v.
This decoupling is what makes differential drive so intuitive to control. You can independently specify how fast the robot moves forward and how fast it turns, and the two wheel velocities that produce this behaviour are computed directly: vR = v + L·ω/2 and vL = v − L·ω/2. There is no iteration, no coupling, no approximation — just two linear equations that can be evaluated in microseconds on any microcontroller. Every differential-drive robot in the world runs on this pair of relations.
Angular Velocity Formula
The defining relation is:
Rearranged to solve for the other three quantities:
vL = vR − ω · L
L = ( vR − vL ) / ω [singular when ω = 0]
Companion relations that follow from the same geometry:
Turn radius: R = v / ω
Path curvature: κ = 1 / R = ω / v
Heading change: Δθ = ω · Δt
Distance travelled: s = v · Δt
Right wheel path arc: sR = vR · Δt
Left wheel path arc: sL = vL · Δt
The instantaneous center of curvature (ICC) is the point in the plane about which the robot is effectively rotating at any given instant. Its position is perpendicular to the robot's heading, at distance R = v/ω from the axle midpoint, on the side the robot is turning toward. When Δv = 0 (equal wheels), R → ∞ and the ICC is at infinity. When v = 0 and Δv ≠ 0 (spin in place), R = 0 and the ICC coincides with the robot's center.
Angular Velocity Variables
| Symbol | Meaning | Notes |
|---|---|---|
| ω | Angular velocity (yaw rate) | Rate of change of heading; positive = counter-clockwise (left turn) |
| vR | Right wheel velocity | Positive = forward, negative = reverse |
| vL | Left wheel velocity | Positive = forward, negative = reverse |
| L | Wheelbase (track width) | Distance between wheel contact points; must be strictly positive |
| Δv | Wheel-speed difference | Δv = vR − vL; drives the rotation |
| v | Body velocity (companion) | v = (vR + vL)/2; independent of ω |
| R | Turn radius | R = v/ω; ∞ for straight motion, 0 for spin in place |
| κ | Path curvature | κ = 1/R = ω/v; zero for straight motion |
How Each Variable Affects the Angular Velocity
The angular velocity is linear in the wheel-speed difference Δv and inversely proportional to the wheelbase L. Doubling Δv doubles ω; doubling L halves ω. Unlike the linear velocity relation (which is symmetric in vR and vL), the angular velocity relation is antisymmetric: swapping vR and vL flips the sign of ω but leaves its magnitude unchanged. This is why the direction of turning is encoded in the sign of Δv, not in the individual wheel velocities.
In practice, the wheelbase is a fixed design parameter once the robot is built, so the only way to change ω is to change Δv. This puts a natural limit on how sharply the robot can turn: the maximum |ω| is set by the maximum wheel-speed difference, which in turn is set by the motor speeds and the wheel radii. Small wheelbases allow very fast turning (which is why small robots can spin very quickly), while large wheelbases require large Δv to achieve even modest yaw rates.
When the wheels are equal (Δv = 0), the robot goes straight and the yaw rate is zero. When they are opposite (vR = −vL), the body velocity is zero but ω is maximum for that speed magnitude: ω = 2·vR/L. This is the "spin in place" mode — the only differential-drive motion that combines zero translation with nonzero rotation, and one of the most useful motions for reorienting the robot without moving it. It is also the configuration where the turn radius R = v/ω is exactly zero, meaning the robot's own center is the instantaneous center of curvature.
Angular Velocity Calculation Examples
ω = (0.60 − 0.40) / 0.30 = 0.20 / 0.30 = 0.6667 rad/s (left turn)
In °/s: 0.6667 × 180/π = 38.20 °/s
vR = ω·L + vL = 1.0 × 0.30 + 0.40 = 0.70 m/s
vL = vR − ω·L = 0.60 − 0.30 = 0.30 m/s
L = (0.50 − 0.20) / 0.5 = 0.30 / 0.5 = 0.60 m
ω = 0 / L = 0 rad/s
R = v/ω = 0.50 / 0 = ∞ (straight line)
Δv = 0.80 m/s
ω = 0.80 / 0.30 = 2.667 rad/s = 152.8 °/s
v = (0.40 + (−0.40))/2 = 0
R = v/ω = 0 (ICC at robot center)
Δv = 0.50 m/s
ω = 0.50 / 0.30 = 1.667 rad/s = 95.5 °/s
v = 0.25 m/s
R = 0.25 / 1.667 = 0.150 m (= L/2, as expected for pivot around one wheel)
Δθ = ω · Δt = 0.6667 × 2 = 1.333 rad = 76.39°
With v = 0.50 m/s: s = 0.50 × 2 = 1.00 m
Frequently Asked Questions
Because the robot's reference point is the midpoint of the axle, and adding a constant to both wheel velocities translates that midpoint without changing the difference between the wheels. The two wheels share the same axle, so their difference is what creates the torque that rotates the body; their sum is what moves the midpoint forward. The two contributions are independent by linearity of the kinematic relations — increasing both wheels by 0.1 m/s raises v by 0.1 m/s but leaves ω completely unchanged. This is what makes the sum/difference decomposition so natural for differential drive: you can think of the robot's motion as the superposition of a "translation" from the average wheel speed and a "rotation" from the wheel-speed difference.
If ω = 0 the wheels must be equal (vR = vL), because the wheelbase L is a strictly positive physical quantity. Dividing by zero gives no information about L. The relation L = (vR − vL)/ω is mathematically singular whenever the numerator is zero and the denominator is zero, and physically the wheelbase simply cannot be inferred from wheel velocities when the robot is going straight. In practice this is never an issue: the wheelbase is a design parameter that you measure once with a ruler, not a quantity to be solved for from kinematic data.
The standard robotics convention is that positive ω corresponds to counter-clockwise rotation (a left turn), when viewed from above with the x-axis forward and the y-axis to the left. Under this convention, positive ω happens when the right wheel is faster than the left (vR > vL). Some textbooks and some robot firmware use the opposite convention (positive = clockwise), so always check the documentation of the specific system you are working with. The magnitude is unaffected by the convention — only the interpretation of the sign changes.
The turn radius R is the radius of the circular arc traced by the robot's axle midpoint. It is given by R = v/ω, where v is the body velocity and ω is the yaw rate. When ω = 0 (straight line) the radius is infinite. When v = 0 (spin in place) the radius is zero. The curvature κ = 1/R = ω/v tells you how tightly the path bends per unit length of travel. Together, (v, ω) and (R, κ) are two equivalent parameterisations of the same local motion — the choice between them is a matter of convenience. For path following, R and κ are often more natural; for motor control, (v, ω) is often more natural.
Yes — the wheelbase is central to the entire kinematic model. It appears in the inverse relation vR = v + L·ω/2 and vL = v − L·ω/2, which converts a desired (v, ω) into wheel speeds. It also determines the physical turn radius achievable at a given speed: for a fixed wheel-speed limit, smaller wheelbases allow tighter turns. And it influences stability: large wheelbases resist yaw rotation, which is one reason long vehicles feel more stable but turn less sharply. In the pure angular-velocity relation ω = Δv / L, the wheelbase is the only geometric parameter that appears, and it acts as a simple scaling factor on the wheel-speed difference.
The maximum spin-in-place yaw rate is set by the maximum wheel velocity magnitude the motors can sustain, divided by half the wheelbase: ωmax = 2·vmax/L, where vmax is the maximum forward speed of one wheel and the other wheel runs at −vmax. For a 0.30 m wheelbase and wheels that can do 0.50 m/s, that gives ωmax = 2×0.50 / 0.30 = 3.33 rad/s, or about 191 °/s — the robot can complete a full rotation in under 2 seconds. Small indoor robots with 0.15 m wheelbases can spin twice as fast, which is why they feel so agile.
Use the inverse relations: vR = v + L·ω/2 and vL = v − L·ω/2. Given a desired straight-line speed v and a desired yaw rate ω, these two equations give the wheel speeds that will produce them. Because the relations are linear and unconstrained (any (v, ω) pair produces a unique wheel-speed pair, and vice versa), there is no solution space to search — the calculation is direct. This is what a differential-drive motor controller does on every control cycle: takes the commanded (v, ω), computes the wheel speeds, and commands each motor individually.
Not directly in the ω formula — the relation is expressed in linear wheel velocities (m/s), not angular wheel rotations. However, in a real robot the motor commands are angular velocities (rad/s at the motor shaft), which are converted to linear wheel velocities by multiplying by the wheel radius r: vwheel = ωmotor · r. So the wheel radius does enter the complete system, but it acts on both wheels symmetrically and does not change the fundamental relation ωbody = (vR − vL)/L. When specifying motors, larger wheels give higher top speed but lower torque; the wheelbase L remains the only geometric parameter that scales the yaw-rate response.
Variables
| Symbol | Quantity | Unit |
|---|---|---|
| omega | Robot angular velocity | rad/s |
| v_right, v_left | Velocities of the right and left wheels | m/s |
| L | Distance between the two wheels (wheelbase) | m |
What it means
The angular velocity (ω) of a differential drive robot is proportional to the difference in wheel speeds divided by the distance between wheels (L). This formula is the counterpart to linear velocity. It is used to compute the robot’s turning rate, which is essential for heading estimation and for generating turning motions. In odometry, it integrates to yield orientation change. In control, it is used for trajectory tracking and point‑to‑point navigation. Understanding this is critical for designing and programming differential drive robots.
Worked example
Differential Drive Angular Velocity – Two Detailed Examples
Real‑World| Parameter | Value |
|---|---|
| v_right (m/s) | 1 |
| v_left (m/s) | 0 |
| L (m) | 0.5 |
| Parameter | Value |
|---|---|
| v_right | 3 |
| v_left | 1 |
| L | 0.4 |
Common mistakes
- Differential drive angular velocity: ω = (v_right − v_left) / L – where L is the wheelbase (distance between wheels).
- Sign: Positive rotation counter‑clockwise (right wheel faster).
- Units: v in m/s, L in m → ω in rad/s.
- Wheelbase: Measured between the contact points of the wheels – not the robot width.
- Assumes: No slipping and the robot is in a planar motion.
Applications
Differential drive robot angular velocity, ω = (v_right − v_left)/L, where L is the wheelbase, relates the difference in wheel speeds to the turning rate. This is critical for controlling the robot's orientation. Engineers use this to calculate the required wheel speed commands for desired turning rates, enabling smooth turns and path following. In odometry, it updates the heading angle. This formula is also used in more complex kinematic models for non‑holonomic robots. By combining linear and angular velocity control, robots can follow arbitrary trajectories. Understanding this relation is essential for mobile robot navigation and control.
- Heading control and turning for mobile robots
- Path generation for curved trajectories
- Odometry heading updates for localisation
- Implementation of control laws for autonomous vehicles
- Simulation and analysis of mobile robot dynamics
Related calculators · Kinematics
Recently updated formulas
Suggest an improvement
Found a mistake? Have a better example? Let us know.
You may send up to 3 suggestions per 24 hours.