Navigation · Theory · M1
M1-T3 — Robot Motion Models for Navigation
A planner can only produce paths the robot can drive. The motion model says which those are.
A mobile robot cannot go anywhere it likes. A wheeled robot cannot slide sideways, and a car cannot turn on the spot. Those restrictions are not details to fix in the controller. They shape which paths exist, and a planner that ignores them returns routes nobody can drive. This lesson writes down the standard models and the one idea, nonholonomy, that makes them interesting.
Learning objectives
After this lesson, you should be able to:
- Write the unicycle and bicycle models and the relation between wheel speeds and (v, ω).
- Explain nonholonomic and holonomic motion, and what a nonholonomic constraint forbids.
- Compute the turning radius of a car-like robot from its wheelbase and steering limit.
- Integrate a model over a time step exactly, and say when a simple Euler step is good enough.
The intuition
Push a shopping trolley sideways and the front wheels fight you. A trolley can reach any place on the floor, but only by driving forwards and backwards and turning, never by sliding. That is a nonholonomic robot: it has three degrees of freedom (x, y and heading θ) but only two things you can command (how fast to roll and how fast to turn).
An office chair with swivel casters is the opposite: it slides in any direction. A robot with omnidirectional wheels is like that, and it is called holonomic because every direction of motion is available at once.
| Model | You command | Can it spin on the spot? | Typical robots |
|---|---|---|---|
| Unicycle / differential drive | Forward speed v, turn rate ω (or the two wheel speeds) | Yes | Vacuum robots, most indoor delivery robots, warehouse shuttles |
| Bicycle / Ackermann | Speed v, steering angle δ | No: it has a minimum turning radius | Cars, golf carts, tuggers with steered wheels |
| Omnidirectional (holonomic) | Velocity in x, in y and a turn rate | Yes, and it can slide sideways | Mecanum or swerve platforms |
The mathematics
The unicycle
The pose is (x, y, θ). The robot moves along its heading at speed v and turns at rate ω.
The nonholonomic constraint says the robot cannot move sideways: the velocity component perpendicular to the heading is zero.
A differential-drive robot with wheel speeds vR and vL and track width b (the distance between the wheels) has
The bicycle
Collapse the two front wheels into one steerable wheel at steering angle δ and the two rear wheels into one, a distance L (the wheelbase) behind. With the pose taken at the rear axle,
The rear axle follows a circle of radius R. Because the steering angle is limited to δmax, the robot cannot turn tighter than Rmin. A path with a tighter bend is impossible for it, however good it looks on the map.
Integrating a step exactly
If v and ω stay constant for a time step Δt, the robot drives along a circular arc of radius v/ω, and the exact new pose is
- v, ω
- forward speed (m/s) and turn rate (rad/s), held constant over the step.
- b
- track width: the distance between the two drive wheels.
- L, δ
- wheelbase and steering angle of the bicycle model.
- R
- radius of the circle the reference point follows.
The simple Euler step moves along the old heading for the whole step: x′ = x + v cos θ Δt, y′ = y + v sin θ Δt. It is right to first order and wrong in the second, because the heading changed during the step.
Limits belong to the model
Real robots also have limits on speed and acceleration: for example |v| ≤ 1.2 m/s, |ω| ≤ 1.5 rad/s, and acceleration limits on both. A path is drivable only if it can be followed within them, which is why planners and trajectory generators (modules 4 and 5) take them as input.
A worked example
One step, two ways. A unicycle starts at the origin facing along x (θ = 0) and drives at v = 0.5 m/s while turning at ω = 0.4 rad/s for Δt = 1 s.
The position error after one 1-second step is √(0.0132² + 0.0987²) = 0.0996 m, about 10 cm, because Euler pretends the robot kept facing straight ahead. The heading is correct in both. Repeating the same command for 10 steps, the exact pose is (−0.946, 2.067) and Euler’s is (−0.520, 2.229): 0.456 m apart. With a step of 0.1 s the error after 10 s falls to about 0.045 m. Euler is a fair approximation only when Δt is small compared with how fast the heading changes.
A car-like robot. A tug has wheelbase L = 0.5 m and steers at δ = 0.3 rad. Its turning radius is R = 0.5 / tan 0.3 = 0.5 / 0.3093 = 1.616 m. At v = 1 m/s its turn rate is ω = v tan δ / L = 0.619 rad/s, so a full circle takes 2π / 0.619 = 10.2 s. If its steering limit is 35° (0.611 rad), Rmin = 0.5 / tan 35° = 0.714 m, and no path with a tighter bend can be driven.
A differential-drive robot. With track width b = 0.4 m, wheel speeds vR = 0.6 and vL = 0.4 m/s give v = 0.5 m/s and ω = (0.6 − 0.4)/0.4 = 0.5 rad/s, a circle of radius v/ω = 1.0 m. Setting vR = −vL gives v = 0 and a spin on the spot.
Engineering implications and limitations
Pick the simplest model that is right enough
A kinematic model, which ignores forces, mass and slip, is fine for indoor robots at walking speed. It gets worse with speed, payload and slippery floors. If the model is wrong, planned paths are still collision-free on the map but the robot drifts off them, and the controller spends its effort correcting the model’s mistakes.
Skid steering and slip
A four-wheel skid-steer robot turns by dragging its wheels sideways. Its effective track width is larger than the wheel spacing and depends on the floor, so the turn rate from the wheel speeds has to be calibrated from measured data.
The model decides the planner
For a robot that can spin on the spot, a grid planner followed by a path follower works well. For a car-like robot with a large Rmin the planner itself must respect the turning limit, which is what Hybrid A* and Reeds-Shepp curves do in module 4.
Update rates and time steps
If a controller and its model use a time step that is large compared with how quickly the heading changes, the exact arc matters. Using the exact step costs two calls to sine and cosine and removes a systematic error.
Common misconceptions
“A differential-drive robot can move in any direction.”
It can reach any pose, but only by turning first and then driving, or by following curves. It cannot move sideways, and it takes time to turn to a new direction.
“Turning on the spot means the turning radius is not a constraint.”
It removes the minimum radius, but the swept circle still needs space, and the turn rate is limited by the wheels and by acceleration limits.
“Euler integration is exact if the time step is small.”
It is accurate to first order only. It always moves along the old heading, so the error shrinks with the step size but never vanishes.
“The bicycle model is only for cars.”
Any robot with a steered wheel and a fixed wheel, such as a tug with a steerable front wheel, behaves this way.
Engineering takeaways
- A nonholonomic robot has more pose degrees of freedom than commands: it cannot slide sideways.
- Differential drive: v = (vR + vL)/2 and ω = (vR − vL)/b. Bicycle: ω = v tan δ / L and R = L / tan δ.
- A steering limit gives a minimum turning radius, and paths with tighter bends are not drivable.
- Integrate a step exactly along the arc, or accept an error that grows with step size and turn rate.
- Choose the simplest model that is accurate enough, and write its limits down.
References and further reading
Standard textbooks on mobile robot kinematics.
- R. Siegwart, I. Nourbakhsh and D. Scaramuzza, Introduction to Autonomous Mobile Robots, 2nd ed., MIT Press, 2011, chapter 3.
- A. Kelly, Mobile Robotics: Mathematics, Models, and Methods, Cambridge University Press, 2013.
- R. Rajamani, Vehicle Dynamics and Control, 2nd ed., Springer, 2012 (the bicycle model).
- S. LaValle, Planning Algorithms, Cambridge University Press, 2006, chapter 13 (differential models).
Knowledge check
Three conceptual questions. Write an answer, then reveal the explanation. Your answers stay in your browser.
Question 1
A robot has wheelbase 0.8 m and its steering is limited to 25°. What is its minimum turning radius, and can it follow a corridor corner whose inside radius is 1.0 m?
Explanation
Rmin = 0.8 / tan 25° = 0.8 / 0.4663 = 1.72 m. A path bend of radius 1.0 m is tighter than Rmin, so it cannot follow it in one forward motion. It needs a wider corner, a reversing manoeuvre, or a different robot.
Question 2
Why does an Euler step push the simulated robot to the wrong side of the true arc, and what makes the error larger?
Explanation
Euler moves along the heading at the start of the step for the whole step, so it ignores that the heading rotated during it. The robot ends up outside the arc it really followed. The error grows with the turn rate and with the time step, which is why the exact arc formula is better for large steps.
Question 3
Two wheels of a differential-drive robot turn at the same speed in opposite directions. What are v and ω, and why is that useful for a planner?
Explanation
v = (vR + vL)/2 = 0 and ω = (vR − vL)/b ≠ 0, so the robot spins on the spot. A planner can use it to face a new direction without any forward motion, which makes tight corridors and turning around in place possible for this robot but not for a car-like one.
What’s next
Next: the coordinate frames and the footprint that every planner and costmap relies on.
Related content
Nothing below is required to finish this lesson.
- BeforeM1-T2: The Navigation Stack at a Glance
Name the parts of a navigation stack (costmaps, global planner, local planner, controller, recovery) and the information each hands to the next.
- LabM1-L2: Drive the Robot: Unicycle and Car-Like Models
Simulate a unicycle and a car-like robot from the same commands, then work out the tightest turn each can make.
Get notified when the next lesson and new labs are released.
One email per new lesson or lab.