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

More from Engineering

Other simulators in this category — or see all 31.

View category →
NewUniversity / research

Holonomic 2D Hovercraft MPC (MPPI)

Planar double integrator with ‖u‖₂ thrust cap: sampling-based MPPI steers to a draggable goal while soft-penalizing circular obstacles — rollout fan and best predicted path drawn live.

Launch Simulator
NewUniversity / research

3-Link 3D Arm Inverse Kinematics (CCD)

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.

Launch Simulator
NewUniversity / research

Bicycle Model & Stanley Controller

Kinematic bicycle (rear-axle): δ = θ_e + atan2(k_e·e, v) Stanley path-following law. Pick oval, race-track, lemniscate, sine-road or S-curve and tune k_e, v, L; live cross-track e(t) and steering δ(t).

Launch Simulator
NewSchool

Stress–Strain & Hooke’s Law

Qualitative σ–ε curve: elastic Hooke region, yield, strain hardening, necking, and fracture. Drag strain and tune E, σ_y, σ_u.

Launch Simulator
NewSchool

Quadcopter 2D (Pitch)

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

Launch Simulator
NewSchool

Watt Governor (schematic)

Flyballs and sleeve vs RPM; steam throttle gap — speed feedback cartoon.

Launch Simulator
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

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

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 °

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.