Simulating the robot
The simulations use Newton, a physics engine for robotics built on NVIDIA Warp (Data Curation for Machine Lear, n.d.). The robot consists of rigid links connected by joints. Its collision shapes have a friction coefficient . Each wheel is a link on a revolute joint. Its motor tracks a commanded angular speed. The floor is a plane. The simulation has no built-in knowledge of or the no-slip condition. The chassis moves because friction at each contact pushes on the wheels. The helpers below run a simulation at 60 frames per second. They command the wheel speeds at each frame and record the chassis pose and the wheel angles. The body twist is measured from the recorded poses using the definition above. You can also record each run for the Rerun viewer. It draws the robot, paths and signals on a timeline that you can scrub.Nonholonomic robots
A conventional wheel cannot slide sideways. Suppose the chassis frame is at the midpoint of the axle between two conventional wheels. The chassis origin then never moves along : This is a Pfaffian constraint with . It restricts velocities. You cannot integrate it into a constraint on the configuration, an equation that relates , and alone. This property is called nonholonomic. At any instant, the body twist is limited to . By maneuvering, the robot can still reach any configuration , much as a driver parallel parks. Three standard models share this constraint:- Unicycle. A single upright wheel steered about its vertical axis. This is the simplest model with inputs and . The other two models reduce to it.
- Differential drive. Two independently driven wheels of radius sit at distance on either side of the chassis origin. A passive caster provides balance. Turning the left wheel at and the right wheel at gives and inverting gives the wheel speeds for a desired : and .
- Car. A car has its chassis frame at the midpoint of the rear axle. With wheelbase and steering angle , it turns at . Because is bounded, the car has a minimum turning radius . The differential-drive robot has no such limit.

The differential-drive robot on ice. The blue line is the kinematic model’s path and the green line the path on a grippy floor; the orange line traces the robot as it skids. The right-hand panel shows .
Odometry
Odometry estimates the chassis configuration by integrating wheel motion. Every wheeled robot can measure this motion with encoders. Between two readings, let and be the changes in the wheel angles. If the wheels turn at constant speed over the interval, the chassis moves at a constant body twist per unit time. The matrix exponential gives the exact displacement in from integrating a constant twist for one unit of time. Rotate this displacement by the current heading, then add it to the current estimate to get the next estimate. Thedisplace function above performs this calculation. The odometry estimate below uses the same function.
Odometry errors accumulate because each step adds a new error to the previous ones. Some errors are systematic. Examples include a wheel radius or track width that differs from its nominal value. Calibration can remove these errors. Other errors, such as slip, are invisible to the encoders.
The experiment below begins by calibrating the effective wheel radius from a straight run. It then calibrates the effective half track from a steady circle. Both runs use the speed of the test drive. A wheel pressed into the floor rolls on a slightly smaller radius than its nominal one. It also touches the floor across the width of its tread. As a result, neither value matches the drawing. The robot then drives a long, winding path. The experiment compares the true path with three odometry estimates: nominal parameters on a grippy floor, calibrated parameters on the same floor, and calibrated parameters on ice.
For each odometry update, you apply the discrete integration on SE(2), as described in calculus on Lie groups.

The winding drive on the grippy floor. The orange line is the true path and the blue line the calibrated odometry estimate; the right-hand panel shows their distance over time.
Further topics
Chapter 13 of Lynch and Park also covers the controllability of nonholonomic robots, including why a car can parallel park even though it cannot move sideways. It discusses motion planning under nonholonomic constraints, including shortest paths for a car with a minimum turning radius. It also treats feedback control for tracking a reference trajectory and mobile manipulation, where an arm is mounted on a wheeled base. The planning lectures in this course cover path planning for mobile robots.References
- Kevin M. Lynch, F. (2017). Modern Robotics.
- (n.d.). Data Curation for Machine Learning.
Found an error on this page? Report an issue.

