PhysSandbox
Classical MechanicsWaves & SoundElectricity & MagnetismOptics & LightGravity & OrbitsLabs
🌙Astronomy & The Sky🌡️Thermodynamics🌍Biophysics, Fluids & Geoscience📐Math Visualization🔧Engineering🧪Chemistry

Related simulators

Continue with similar topics in this category — or all 48 in Engineering.

View category →
NewSchool

Two-Link Arm IK (2R)

Launch Simulator

Planar 2R manipulator: mouse goal, elbow-up / elbow-down inverse kinematics; joint angles live.

NewSchool

Cam & Follower

Launch Simulator

Eccentric circular cam and knife-edge follower: lift and estimated velocity.

NewUniversity / research

3-Link 3D Arm Inverse Kinematics (CCD)

Launch Simulator

Continuation of two-link-arm-ik into 3D: 3 revolute joints (yaw + 2 pitches) solved with constrained Cyclic Coordinate Descent. Drag target in 3D or follow a helix / lemniscate / figure-8 trajectory.

NewSchool

Quadcopter 2D (Pitch)

Launch Simulator

Side view: two rotors, PD on thrust split vs pitch — whiteboard quad slice.

NewSchool

Four-Bar Linkage

Launch Simulator

Crank–rocker geometry with coupler-curve trace; link lengths and crank speed.

School

Gear Train

Launch Simulator

Connect gears, adjust teeth count, see speed and torque ratios.

PhysSandbox

Interactive physics, chemistry, and engineering simulators for students, teachers, and curious minds.

Physics

  • Classical Mechanics
  • Waves & Sound
  • Electricity & Magnetism

Science

  • Optics & Light
  • Gravity & Orbits
  • Astronomy & The Sky

More

  • Thermodynamics
  • Biophysics, Fluids & Geoscience
  • Math Visualization
  • Engineering
  • Chemistry

© 2026 PhysSandbox. Free interactive science simulators.

PrivacyTermsContact
Home/Engineering/Differential Drive Odometry

Differential Drive Odometry

ω_L, ω_R → v, ω with two-wheel kinematics; integrate pose and watch dead-reckoning drift from biased wheel radii / track and noisy rate readings.

Differential drive

0.1 m
0.1 m
0.32 m

Presets drive both wheels automatically; switch to Manual to set ω_L and ω_R yourself.

Odometry error model

2.5 %
-1.5 %
1.2 %
0.04 rad/s
2026

Truth integrates commanded ω with nominal r and L. Dead reckoning uses per-step noisy ω̃ and biased radii/track in the same kinematic map — error grows without exteroceptive correction.

Shortcuts

  • •Drive mode chooses time profiles for ω_L, ω_R; Manual uses the two wheel sliders.
  • •Reset pose clears trails and re-seeds wheel noise from the RNG seed.

Measured values

v (truth)0.000 m/s
ω (truth)0.000 rad/s
v (odometry)0.000 m/s
ω (odometry)0.000 rad/s
Position error |Δr|0.000 m
Heading error Δθ0.00 °

About this model

A planar differential drive robot has two wheels on a common axle separated by track L with radii r_L and r_R. Assuming pure rolling and a rigid chassis, the instantaneous forward speed at the wheelbase midpoint and the yaw rate are v = (r_R ω_R + r_L ω_L)/2 and ω = (r_R ω_R − r_L ω_L)/L. Integrating ẋ = v cos θ, ẏ = v sin θ, θ̇ = ω gives the pose in the world frame; this simulator uses an exact circular-arc increment when |ω| is not tiny so constant-(v, ω) steps stay on circles instead of drifting with naive Euler. Ground truth integrates the commanded wheel rates with the nominal geometry you set. Dead-reckoning odometry applies the *same* kinematic map to noisy per-step wheel-rate readings and to mis-calibrated radii and track inside the formulas—systematic scale errors and slip-like noise are the usual reasons open-loop pose drifts without GPS, visual odometry, or loop closure. Preset drive modes exercise arcs, weaves, and pivot turns; Manual exposes ω_L and ω_R directly.

Who it's for: Intro robotics and mobile-robotics labs after unicycle models: students mapping wheel encoders to motion and seeing why calibration and fusion matter.

Key terms

  • Differential drive
  • Unicycle model
  • Wheel odometry
  • Dead reckoning
  • Track width
  • Wheel radius calibration
  • Gaussian process noise

How it works

Differential drive: wheel rates ω_L, ω_R map to body v and ω; integrate to pose. Compare ground truth (nominal geometry) with dead reckoning that uses noisy wheel readings and wrong r, L — the classic way odometry drifts without loop closure.

Key equations

v = (r_R ω_R + r_L ω_L) / 2,  ω = (r_R ω_R − r_L ω_L) / L

World frame: ẋ = v cos θ, ẏ = v sin θ, θ̇ = ω — integrated here with an exact circular-arc step when |ω| ≫ 0.

Frequently asked questions

Why does heading error sometimes grow faster than position error?
A wrong track L or unequal radius bias injects error directly into ω, which rotates subsequent velocity vectors—small orientation errors integrate into large cross-track displacement over time even when instantaneous v is well estimated.
Is this a full dynamic slip model?
No—noise on ω is a phenomenological stand-in for slip, uneven floor friction, and encoder jitter. A tire–terrain model would couple normal load, friction limits, and lateral forces.
Why two different radii r_L and r_R?
Real robots rarely have perfectly identical effective rolling radii (wear, inflation, payload shift). The simulator lets you set both the true radii and separate percent calibration errors in the odometry branch so you can mimic asymmetric bias.
Does the green trail include sensor noise?
No. The green path is ground truth from commanded ω_L, ω_R and your nominal r_L, r_R, L. The amber trail is the odometry integrator’s estimate.