Navigation · Theory · M7
M7-T1 — Stopping Distance and Speed Limits
A speed limit is not a preference. It is the answer to “how far will I travel before I stop, and can I see that far?”
Scout can brake as hard as its motors allow, and it still rolls on after it sees a trolley. The sensor takes time, the software takes time, the brake takes time, and then the wheels slow down at a finite rate. Add those up and you get the one number every speed limit must respect: the distance needed to stop. This lesson derives it, inverts it into a speed limit, and says plainly what it leaves out.
Learning objectives
After this lesson, you should be able to:
- Compute stopping distance from speed, deceleration and latency.
- Solve for the highest speed that stops within a given sight distance.
- Explain why halving the speed shortens the braking distance fourfold but the latency distance only twofold.
- List what changes the deceleration and the latency, and why the limit must assume the worst of them.
The intuition
Driving a car, you leave a gap that depends on speed. At a walking pace you can stop within a step. At motorway speed the gap is the length of a few cars. The reason is that stopping has two stages. First comes the reaction: from the moment the hazard appears until the brakes bite, the vehicle carries on at full speed. Then comes the braking: the vehicle slows at a roughly constant rate until it stops.
A robot has the same two stages, with different names. Its “reaction” is the latency of the whole chain: the sensor’s sample and processing delay, the costmap update, the planner or controller cycle, the command to the motor driver, and the time the brake or the motor current takes to act. At 1.2 m/s, 0.3 s of latency is 0.36 m of travel before anything happens.
The second stage is why speed matters so much. Doubling the speed doubles the reaction distance but quadruples the braking distance, because the energy to remove grows with the square of the speed. A limit set for a quiet corridor is dangerous in a crowded one only because the distance you can see is different, and the curve below shows how to read that off.
The mathematics
Stopping distance
Assume the robot moves at speed v in a straight line, a command to stop takes effect after a latency t, and the robot then decelerates at a constant rate a.
- v
- speed when the hazard is detected, in m/s.
- t
- total latency from the hazard being in front of the sensor to the first braking effect, in s.
- a
- deceleration the robot can actually achieve on this floor and with this load, in m/s². Positive number.
- d
- sight distance: the distance within which the robot can be sure the path is clear.
The braking term comes from the work–energy balance ½ m v² = m a s, or from v² = 2 a s for uniform deceleration. The time to stop is t + v/a.
The speed limit
The robot may only go as fast as it can stop within what it can see. Set the stopping distance equal to the sight distance and solve for the speed. With s = v / a the equation becomes a quadratic in s:
With no latency this reduces to v = sqrt(2 a d). The latency term always lowers the limit.
Anything that moves
If the hazard approaches at speed u, for example a person walking towards the robot, both bodies keep moving until the robot has stopped, and the budget becomes sstop + u (t + v/a) + margin ≤ d (lab M7-L1, stage 3). A hazard that is stationary needs only sstop ≤ d − margin.
| Quantity | What sets it | What changes it |
|---|---|---|
| Latency t | Sensor rate and processing, costmap update, controller period, motor driver, brake response | Software load, network hops, a slower sensor mode, a backed-up queue |
| Deceleration a | Motor torque, brake, wheel grip, mass | Wet or polished floor, ramps, payload, worn tyres, battery sag |
| Sight distance d | Sensor range and mounting, geometry of the space | Blind corners, doors, dust, glass, a high payload blocking the view |
| Margin | Clearance that must remain at standstill | Policy, people nearby, the standard being followed |
A worked example
Scout’s numbers. Take a = 0.8 m/s², latency t = 0.3 s and a top speed of 1.5 m/s.
From 1.2 m/s the robot needs 1.26 m. Halving the speed to 0.6 m/s needs 0.405 m, a third of that: braking falls by a factor 4 and the latency part only by 2.
The limit for 2.5 m of sight.
Ignoring the latency gives sqrt(2 · 0.8 · 2.5) = 2.0 m/s, 13% too high. With 1.5 m of sight, as at a blind corner, the limit is 1.33 m/s; with 1.0 m it is 1.05 m/s.
What a wet floor does. After mopping, a falls to 0.5 m/s². Braking from 1.2 m/s now needs 1.2 · 0.3 + 1.44/(2 · 0.5) = 0.36 + 1.44 = 1.80 m instead of 1.26 m, and the limit for 2.5 m of sight falls from 1.77 to 1.44 m/s. A limit that does not depend on the floor is a limit for one floor.
A person coming the other way. At a gap of 4.0 m with a porter walking at 1.4 m/s and a 0.5 m margin, the highest speed is 1.12 m/s (lab M7-L1). Check: the robot travels 0.3 · 1.12 + 1.12²/1.6 = 1.12 m, the porter 1.4 · (0.3 + 1.12/0.8) = 2.38 m, and 1.12 + 2.38 + 0.5 = 4.0 m.
Engineering implications and limitations
Measure, do not assume
Command a stop from several speeds on the real floor, with the real payload, and record where the robot comes to rest. Fit t and a from the data. The nameplate deceleration of the motor is an upper bound, not a measurement. Repeat on the slipperiest surface and with the heaviest load the robot will carry, and use those values.
Latency is a budget
Write the latency down as a sum: sensor, driver, costmap, controller, command filter, motor. A single 0.1 s delay added by an overloaded computer takes 0.12 m at 1.2 m/s. Monitor the age of the data that the controller uses and treat an old scan as a shorter sight distance (lesson M7-T4).
Where the limit is applied
Nav2-style stacks apply speed limits in several places: a maximum speed in the controller, speed-limit zones in a map filter, and a collision monitor that slows or stops when something enters a protective polygon. A limit that exists in only one of them can be bypassed by another.
This is not a safety case
The formula is the engineering core of a stopping-distance argument and nothing more. Whether a robot is safe to run among patients and staff is decided by a hazard analysis, a design built to the standards that apply, and evidence. For an automated industrial vehicle that is the ISO 3691-4 family; for a personal-care robot it is ISO 13482; the safety-related control functions are developed with functional-safety methods such as IEC 61508 or ISO 13849. This track teaches the engineering concepts, and neither the lessons nor the labs replace a safety case or a certifying body.
Common misconceptions
“The robot stops instantly when it sees something.”
It stops after the latency and the braking distance. Both are computed from numbers that must be measured.
“Slowing down a little makes little difference.”
Braking distance goes with the square of the speed, so 20% less speed shortens it by 36%.
“The motor’s rated deceleration is the robot’s deceleration.”
Wheel grip, load, slope and battery set the real value, and it is lowest exactly when the floor is wet or the cart is full.
“The sensor range is the sight distance.”
Geometry decides: a blind corner, a half-open door or a tall payload can leave a robot with a metre of sight and a ten-metre sensor.
Engineering takeaways
- Stopping distance is v·t + v²/(2a): reaction at full speed, then uniform braking.
- A speed limit comes from the sight distance: vmax = a(−t + sqrt(t² + 2d/a)), capped at the robot’s maximum.
- Speed enters twice, linearly and squared, so a modest reduction buys a large distance.
- Latency, deceleration and sight distance all change with the place and the load, and the limit must assume the worst.
- The calculation is an engineering input to a safety case, not a substitute for one.
References and further reading
Standards are named for orientation; they are not summarised here and must be bought and read for real work.
- ISO 3691-4, “Industrial trucks — Safety requirements and verification — Part 4: Driverless industrial trucks and their systems”.
- ISO 13482, “Robots and robotic devices — Safety requirements for personal care robots”.
- IEC 61508, “Functional safety of electrical/electronic/programmable electronic safety-related systems”.
- Nav2 documentation, “Collision Monitor” and “Speed Filter”, docs.nav2.org.
Knowledge check
Three conceptual questions. Write an answer, then reveal the explanation. Your answers stay in your browser.
Question 1
Scout travels at 1.2 m/s with a = 0.8 m/s² and a latency of 0.3 s. How far does it travel from detection to standstill?
Explanation
0.36 m during the latency plus 1.2² / (2 · 0.8) = 0.90 m of braking: 1.26 m.
Question 2
The same robot can see 2.5 m ahead. Without latency the limit would be 2.0 m/s. Why is the correct limit lower, and what is it?
Explanation
During the latency the robot still moves at speed, which uses up part of the sight distance. Solving v t + v²/(2a) = 2.5 gives 0.8 · (−0.3 + sqrt(0.09 + 6.25)) = 1.77 m/s.
Question 3
The floor is mopped and a falls to 0.5 m/s². With the same sight distance, must the speed limit rise, fall or stay?
Explanation
It must fall. The braking distance v²/(2a) grows when a falls, and the sight distance has not grown, so only a lower speed keeps the stopping distance inside it.
What’s next
Next: a safety filter, which lets the planner propose anything and corrects only the commands that would break a safety rule.
Related content
Nothing below is required to finish this lesson.
- LabM7-L1: Size the Safety Margin
Scout rounds a blind corner at full speed: compute the speed at which it can always stop in time.
Get notified when the next lesson and new labs are released.
One email per new lesson or lab.