Design & Selection · Module 08
Sensor placement for perception
Where a sensor sits decides what it cannot see. Compute the blind zones before drilling holes.
Assumptions: Numbers in the examples are illustrative and the code is executed by the site’s tests. Facts taken from a cited source are marked; other statements are general engineering knowledge and must be confirmed on the datasheet of the part you use.
1. Engineering problem
A LiDAR mounted high sees far and misses the floor near the robot; mounted low it sees low obstacles and is blocked by the body. Cameras overlap only beyond some distance. These blind zones are geometry and can be computed from the datasheet field of view.
2. When is this needed?
- Choosing mounting positions for a new robot.
- When the robot hits low obstacles it never detected.
- When fusing two cameras or a camera and a LiDAR.
3. Selection and design decisions
For a sensor at height h whose lowest beam points a degrees below the horizontal, the floor is first hit at h ÷ tan(a); inside that radius the floor and low objects are invisible. For two parallel cameras a baseline b apart with horizontal field of view H, their fields overlap from b ÷ (2·tan(H/2)).
| Concern | Design question | Computation |
|---|---|---|
| Ground blind zone | How close can a low obstacle be before it is seen? | h ÷ tan(lowest beam angle) |
| Self-occlusion | Which angles does the robot body block? | Draw the body in the sensor frame |
| Camera overlap | From what distance do two cameras see the same point? | b ÷ (2·tan(HFOV/2)) |
| Vertical coverage | Do overhangs and low obstacles fall in the field? | Plot beams or camera frustum at the height of interest |
| Shared mounts | Does vibration or flex move the sensor? | Stiffness and calibration after mounting |
4. Advantages and disadvantages
- High mounting gives range and a clear view, with a larger ground blind zone.
- Low mounting sees small obstacles and suffers from body occlusion.
- Several sensors cover each other’s blind zones at the cost of calibration and compute.
5. Requirements and constraints
- Every region the robot must sense (for example 0.2 m ahead of the bumper at floor height) is covered by at least one sensor.
- Mounts are rigid and keep the calibration.
- Cables and connectors have access and strain relief.
6. Architecture
side view: LiDAR at height h ─ lowest beam at angle a ─ hits the floor at h ÷ tan(a)
floor inside that radius is a blind zone; add a low sensor or a tilted second sensor7. Implementation
- List the objects and distances the robot must detect, including the lowest and closest.
- Compute blind radii and overlap distances (below).
- Draw each sensor’s field in the robot frame, including the body.
- Add or move sensors until required regions are covered.
- Mount rigidly and check the field with a real object at the boundary.
import math
def ground_blind_radius(h, lowest_beam_deg):
return h / math.tan(math.radians(abs(lowest_beam_deg)))
for h, a in ((0.3, 15), (0.5, 15), (1.0, 15), (1.0, 25)):
print(f"mount height {h} m, lowest beam {a} deg below horizontal: ground not seen within {ground_blind_radius(h, a):.2f} m")
def overlap_start(baseline, hfov_deg):
return baseline / (2 * math.tan(math.radians(hfov_deg / 2)))
print(f"two parallel cameras 0.3 m apart, 90 deg HFOV: fields overlap from {overlap_start(0.3, 90):.2f} m")Printed (checked by the site’s tests):
mount height 0.3 m, lowest beam 15 deg below horizontal: ground not seen within 1.12 m
mount height 0.5 m, lowest beam 15 deg below horizontal: ground not seen within 1.87 m
mount height 1.0 m, lowest beam 15 deg below horizontal: ground not seen within 3.73 m
mount height 1.0 m, lowest beam 25 deg below horizontal: ground not seen within 2.14 m
two parallel cameras 0.3 m apart, 90 deg HFOV: fields overlap from 0.15 mReading it: a LiDAR 0.5 m up with a lowest beam 15° below horizontal does not see the floor within 1.87 m; at 1.0 m the blind radius is 3.73 m, and a lowest beam at 25° reduces it to 2.14 m. Two parallel cameras 0.3 m apart with a 90° horizontal field of view overlap from 0.15 m. The numbers are illustrative: use the sensor datasheet’s vertical field of view.
8. Real examples
- AMR with a high 3D LiDAR: a low 2D LiDAR or ultrasonic sensors cover the near floor zone.
9. Failure scenarios
- Assuming 360° coverage and having the robot’s mast block a sector.
- Mounting two cameras so far apart that stereo matching has no overlap at the working distance.
- A bracket that flexes and shifts the calibration.
10. Troubleshooting
- Test with a low object at the predicted boundary distance.
- Record and view the cloud from the robot’s own geometry.
- Re-check calibration after mounting changes.
11. Validation
- The example prints the lines shown (executed by the site tests).
- Objects at every required position are detected in a test.
12. Engineering checklist
13. Further references
- Vertical and horizontal field-of-view figures come from the datasheet of the sensor you choose; the geometry here is elementary trigonometry.