Perception · Theory · P5
P5-T6 — Occlusion, Sparse Measurements and Density Changes
A sensor sees fewer points on far objects and nothing behind near ones. Perception has to know the difference between empty and unseen.
A LiDAR’s beams fan out, so the number of points that land on an object falls with the square of its distance. Objects block the view of what is behind them. Dark or shiny surfaces return nothing. All of this limits what any detector can find, however good the algorithm, and it is predictable enough to calculate. This lesson derives the point-count formula, the range at which an object is no longer detectable, the size of the shadow behind an obstacle, and the practices that keep a robot honest about what it has not seen.
Learning objectives
After this lesson, you should be able to:
- Compute the number of points on an object of a given size at a given range, and the range at which it falls below a minimum.
- Compute the shadow (occluded region) behind an object and explain why unseen is not the same as free.
- List the causes of missing returns (dark, glossy, transparent surfaces, grazing angles, range limits) and their effect on detection.
- Choose remedies: accumulate frames, change viewpoint, higher resolution, other sensors, tracking and explicit unknown space.
The idea: the sensor sees a cone, not a scene
Every beam is a thin ray. At range r, adjacent beams are about rΔθ apart, so a patch of surface of area A catches roughly A/(rΔθ)² beams. Double the range and you get a quarter of the points; at the range where this falls below what a detector needs, the object is invisible to it, not because of an algorithm fault but because the data are not there.
A second effect is occlusion: a nearby object blocks the beams behind it, creating a shadow that the sensor knows nothing about. Anything may be in the shadow, including another object or a person.
Missing data are not evidence of emptiness. Every empty cell in the point cloud is either free space or unseen space, and the sensor cannot tell which.
Why returns go missing
| Cause | Physics | Effect | Remedy |
|---|---|---|---|
| Range | Beam spreading: density falls as 1/r²; return power falls with range | Few points far away; maximum range | Higher resolution, accumulate frames, track |
| Occlusion | Opaque objects block the beam | Shadows behind objects; partly visible objects | Change viewpoint, other sensors, treat as unknown |
| Dark surfaces | Low reflectivity returns too little light | Holes; objects appear smaller or missing | Longer exposure or higher power, other sensors |
| Glass, mirrors, water | Beam passes through or reflects away | No return, or a ghost point behind the glass | Fuse with camera or radar; mark known glass |
| Grazing angle | Surface at a shallow angle reflects little back and spreads points | Sparse, noisy returns from faces turned away | Cope with partial boxes; viewpoint change |
| Weather and dust | Scattering and absorption | Spurious points, reduced range | Filtering, radar, redundancy |
The mathematics: counts, limits and shadows
Points on an object
A beam grid with spacings Δθh and Δθv (radians) gives, on a flat target of area A facing the sensor at range r,
- A
- the area of the target’s cross-section facing the sensor, in m² (a person: about 0.5 × 1.7 = 0.85 m²).
- r
- the range to the target in metres.
- Δθ_h, Δθ_v
- the horizontal and vertical angular spacings of the beams, in radians.
- φ
- the angle between the surface normal and the line of sight: the tilted surface presents a smaller area to the sensor.
(This counts points on average; the actual number varies with the alignment of the beam grid with the object, by a point or two at low counts.)
Detection range
If a detector needs at least Nmin points, the maximum range for a target of area A is
Because of the square root, doubling the resolution (halving Δθ in both directions) multiplies the range by 2, not 4 and not 1.4: a fourfold increase in the number of beams in the field of view buys a doubling of range. Raising Nmin by a factor of four halves the range.
Shadows
An object of width w at range r blocks the beams behind it. The occluded region is a wedge: at a distance d beyond the object the shadow has width about
The shadow widens with distance, so a small object that is near the sensor hides a large region further away. A person (0.5 m) at 3 m hides a strip 2.8 m wide at a range of 17 m.
Representing what is unseen
The honest representation labels space as free (a beam passed through), occupied (a beam ended there) or unknown (no beam reached it). The shadow behind an object is unknown. A planner can then choose how cautiously to treat unknown space, and a perception stack can decide to move, slow down or request another viewpoint to reveal it.
A worked example: how far can the robot see a person?
A person presents about 0.5 m × 1.7 m = 0.85 m². Consider two LiDARs, one with 1.0° × 1.0° spacing and a better one with 0.4° × 0.4°.
| Range | Points, 1° × 1° | Points, 0.4° × 0.4° |
|---|---|---|
| 5 m | 111.6 | 698 |
| 10 m | 27.9 | 174 |
| 20 m | 7.0 | 44 |
| 30 m | 3.1 | 19 |
| 40 m | 1.7 | 11 |
At 10 m the coarse sensor gives about 28 points on the person, at 30 m only about 3: too few for most detectors, and the exact number varies from frame to frame with the alignment of the beams. With 0.4° spacing the person has about 19 points at 30 m.
The range at which each sensor still delivers 10 points:
The better sensor reaches 2.5 times as far (the ratio 1/0.4 = 2.5), and it has 6.3 times as many beams in the same field of view. Whether that is enough depends on the robot’s speed. At 15 m/s, braking at 6 m/s² needs 15²/(2 × 6) = 18.8 m plus the distance covered during the reaction time (about 7.5 m for half a second), 26 m in all. A sensor that gives 10 points on a person only out to 17 m cannot support that speed; the better sensor, at 42 m, can.
The shadow behind a pedestrian
A person 0.5 m wide stands 4 m ahead. At a distance of 8 m from the sensor (4 m behind the person) the shadow is 1.0 m wide: wide enough to hide a second person or a child. Even for a person-sized object the shadow reaches far. A robot approaching a parked truck 2.5 m wide at 8 m has a shadow of 5.6 m at 10 m behind it (18 m range), well wider than a lane. Anything in that strip is invisible until the robot moves.
Dark and glossy surfaces
A black car and a white car at the same range produce very different returns: the black one may return a fraction of the light and many points drop out. In a cloud this appears as a hole or a car that is half its real width. A detector trained or tuned on bright objects underestimates its range on dark ones. The same holds for glass walls: the cloud shows the room behind the window, or nothing, and the robot may try to drive through.
Engineering implications and limitations
Compute your detection range. From the beam spacing, the smallest object that must be detected and the point count your detector needs, calculate rmax and compare it with the stopping distance. This calculation is cheap and often shows the sensor is inadequate before any code is written.
Accumulate frames. Transforming several scans into a common frame (with motion compensation and accurate poses) multiplies the density of static surfaces. It does not help for moving objects unless they are tracked.
Track through gaps. An object seen at 20 m in one frame and not the next has probably not vanished. A tracker (Module 7) keeps it alive for a number of frames, at growing uncertainty, and uses prior detections to find it again.
Mark unknown space explicitly. Build an occupancy structure with free, occupied and unknown (Lesson P5-T1). Plan with a margin for unknown space near the robot’s path, slow down when approaching occlusions (corners, parked vehicles) and use a changed viewpoint to reveal them.
Know the surfaces. Characterise how your sensor responds to dark, shiny, glass and wet surfaces on your site, and decide how the robot behaves around them. Add another sensor (camera, radar, ultrasonic) for the cases that LiDAR misses.
Test at range and on partial objects. Evaluate the detector as a function of range, point count and visible fraction, as in the lab, and report it that way. A single average score hides the failure at distance.
Common misconceptions
“If there are no points there, the space is empty.”
It may be empty, occluded, dark, glass or beyond range. Only an explicit occupancy model with an unknown state can say.
“A better detector will see farther.”
Not beyond what the data contain. At 30 m a person may produce no returns in most frames; no algorithm can detect points that are not there.
“Doubling the resolution doubles the range.”
It doubles the range only if the resolution doubles in both directions (four times as many beams); for the same field of view that is four times the data.
“The shadow behind an object is small.”
It widens with distance: a person’s shadow is 0.5 m wide behind them and several metres wide further back.
Engineering takeaways
- The number of points on an object is N ≈ A cos φ / (r² Δθ_h Δθ_v): it falls as 1/r².
- Detection range for a minimum of Nmin points is √(A/(Nmin Δθ²)); halving the beam spacing doubles it.
- An object of width w at range r casts a shadow of width w(r + d)/r at a distance d beyond it; unseen is not free.
- Dark, glossy and transparent surfaces, grazing angles and weather remove returns without removing the object.
- Compute the detection range, accumulate frames, track through gaps, keep an explicit unknown state, and evaluate by range and visibility.
References and further reading
The formulas are standard geometry; the tables of point counts, ranges and shadows were computed for this lesson with an idealised, uniformly spaced beam grid.
- Thrun, S., Burgard, W. and Fox, D. (2005). Probabilistic Robotics. MIT Press: range-sensor models, occupancy grids with an unknown state.
- Carballo, A., Lambert, J., Monrroy, A. et al. (2020). LIBRE: the multiple 3D LiDAR dataset. IEEE Intelligent Vehicles Symposium: measured detection range and the influence of beam density and surface reflectivity across LiDARs.
- Hornung, A., Wurm, K. M., Bennewitz, M., Stachniss, C. and Burgard, W. (2013). OctoMap: an efficient probabilistic 3D mapping framework based on octrees. Autonomous Robots 34(3): free, occupied and unknown space.
- Hebel, M., Arens, M. and Stilla, U. (2013). Change detection in urban areas by object-based analysis and on-the-fly comparison of multi-view ALS data. ISPRS Journal of Photogrammetry and Remote Sensing 86: occlusion handling with voxel ray tracing in laser scan data.
Knowledge check
Three conceptual questions. Write an answer, then reveal the explanation. Your answers stay in your browser.
Question 1
A LiDAR has 0.2° × 0.2° spacing. How many points land on a 1 m × 1 m flat target facing the sensor at 20 m? At 60 m?
Explanation
Δθ = 0.2° = 0.00349 rad, Δθ² = 1.218 × 10⁻⁵. At 20 m: N = 1 / (400 × 1.218 × 10⁻⁵) = 205 points. At 60 m: 1 / (3600 × 1.218 × 10⁻⁵) = 22.8 points, one ninth as many because the range is three times as large.
Question 2
A truck 2.4 m wide is 6 m away. How wide is the shadow at 12 m from the sensor? Could a person stand in it unseen?
Explanation
The shadow width is w (r + d)/r = 2.4 × 12/6 = 4.8 m. A person (0.5 m) fits easily and cannot be seen by that sensor from that position until the robot moves.
Question 3
Your detector needs 15 points and your sensor has 0.5° × 0.5° beam spacing. What is the range limit for a 0.6 m × 1.0 m target? What changes if you need 30 points?
Explanation
A = 0.6 m²; Δθ² = (0.00873)² = 7.62 × 10⁻⁵. rmax = √(0.6 / (15 × 7.62 × 10⁻⁵)) = √524.9 = 22.9 m. For 30 points the range falls by √2, to about 16.2 m.
What’s next
That completes Module 5. Next: from geometry to meaning: what the objects are, with classification, detection and segmentation.
Related content
Nothing below is required to finish this lesson.
- BeforeP5-T5: Bounding Boxes and Geometric Object Properties
Compute axis-aligned and oriented boxes and the size, distance and heading of an object.
- LabP5-L3: Debug a Failed 3D Detection Pipeline
Repair range-dependent clustering and oriented boxes so distant and partially seen objects are found.
Get notified when the next lesson and new labs are released.
One email per new lesson or lab.