Skip to main content
Open In Colab A nonholonomic robot has conventional wheels that cannot slide sideways. The wheeled robots overview introduces the wheel types, the chassis configuration q=(θ,x,y)q = (\theta, x, y) and the body twist Vb\mathcal{V}_b used below. You will derive the kinematic model of a differential-drive robot, test its no-slip assumption on a grippy floor and on ice, and use the model for wheel odometry. This section follows chapter 13, Wheeled Mobile Robots, of Kevin Lynch and Frank Park, Modern Robotics: Mechanics, Planning, and Control (Cambridge University Press, 2017) (Kevin M. Lynch, 2017).

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 μ\mu. 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 H(0)H(0) 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 (θ,x,y)(\theta, x, y) 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 y^b\hat{y}_b: vby=−sin⁡θ x˙+cos⁡θ y˙=0.v_{by} = -\sin\theta\, \dot x + \cos\theta\, \dot y = 0 . This is a Pfaffian constraint A(q)q˙=0A(q)\dot q = 0 with A(q)=[0−sin⁡θcos⁡θ]A(q) = \begin{bmatrix} 0 & -\sin\theta & \cos\theta \end{bmatrix}. It restricts velocities. You cannot integrate it into a constraint on the configuration, an equation that relates θ\theta, xx and yy alone. This property is called nonholonomic. At any instant, the body twist is limited to Vb=(ω,v,0)\mathcal{V}_b = (\omega, v, 0). By maneuvering, the robot can still reach any configuration (θ,x,y)(\theta, x, y), 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 ω\omega and vv. The other two models reduce to it.
  • Differential drive. Two independently driven wheels of radius rr sit at distance dd on either side of the chassis origin. A passive caster provides balance. Turning the left wheel at uLu_L and the right wheel at uRu_R gives ω=r2d(uR−uL),v=r2(uL+uR),\omega = \frac{r}{2d}(u_R - u_L), \qquad v = \frac{r}{2}(u_L + u_R), and inverting gives the wheel speeds for a desired (ω,v)(\omega, v): uL=(v−d ω)/ru_L = (v - d\,\omega)/r and uR=(v+d ω)/ru_R = (v + d\,\omega)/r.
  • Car. A car has its chassis frame at the midpoint of the rear axle. With wheelbase ℓ\ell and steering angle ψ\psi, it turns at ω=vtan⁡ψ/ℓ\omega = v \tan\psi / \ell. Because ∣ψ∣|\psi| is bounded, the car has a minimum turning radius ℓ/tan⁡ψmax⁡\ell / \tan\psi_{\max}. The differential-drive robot has no such limit.
The simulation below checks the differential-drive model. The robot drives straight, turns left, then turns right. It first runs on a floor with friction coefficient μ=1\mu = 1, then on a floor with μ=0.05\mu = 0.05, like ice. Each turn is a half circle of radius 0.6 m at 1 m/s. This motion needs a sideways acceleration of about 1.7 m/s21.7\ \text{m/s}^2. The grippy floor can supply up to μg≈9.8 m/s2\mu g \approx 9.8\ \text{m/s}^2 through friction. Ice can supply only about 0.5 m/s20.5\ \text{m/s}^2.
Output from cell 5 On the grippy floor, vbyv_{by} stays near zero through both turns. Friction enforces the no-slip constraint assumed by the model, and the simulated path has the same shape as the model path. The turns are slightly tighter than the model’s because the effective wheel radius and track width differ a little from their nominal values. The odometry section measures these differences. On ice, friction cannot supply the sideways force needed for the turns. The chassis skids outward, vbyv_{by} grows, and the robot ends up far from the predicted position. The no-slip assumption no longer holds.
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 vbyv_{by}.

Odometry

Odometry estimates the chassis configuration by integrating wheel motion. Every wheeled robot can measure this motion with encoders. Between two readings, let ΔφL\Delta\varphi_L and ΔφR\Delta\varphi_R 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 Vb=F[ΔφLΔφR],F=r[−1/(2d)1/(2d)1/21/200],\mathcal{V}_b = F \begin{bmatrix} \Delta\varphi_L \\ \Delta\varphi_R \end{bmatrix}, \qquad F = r \begin{bmatrix} -1/(2d) & 1/(2d) \\ 1/2 & 1/2 \\ 0 & 0 \end{bmatrix}, per unit time. The matrix exponential gives the exact displacement in {b}\{b\} 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. The displace 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 dd 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 Xk=Xk−1⊕τk\mathcal{X}_k = \mathcal{X}_{k-1} \oplus \tau_k on SE(2), as described in calculus on Lie groups.
Output from cell 9 With nominal parameters, the error grows steadily. Each wheel revolution is converted to distance with a slightly incorrect radius. Each turn is converted to heading with a slightly incorrect track width. Calibration reduces this systematic error substantially, but some error remains. A single pair of values for rr and dd cannot match every part of a winding drive. On ice, the calibrated estimate fails again. The wheels turn, but the chassis does not move as their motion indicates. No choice of rr and dd can account for this slip. Robots therefore combine odometry, which is accurate over short times, with sensors whose errors do not accumulate. These may include range sensors, cameras or GPS. An estimator such as a Kalman filter combines the measurements. The state estimation and mapping chapter develops these methods.
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.