Engineering Guides · Module 02
Sensor combination: camera + LiDAR
The camera says what something is; the LiDAR says where it is. Fusing them gives labelled 3D objects.
Assumptions: General fusion guidance. Named algorithms appear only where their READMEs were checked (see the SLAM Selection Guide). No performance figures are given.
1. Engineering problem
A camera detects and classifies but cannot measure distance directly; a LiDAR measures distance but has little appearance information. Perception needs both, aligned in space and time.
2. When is this needed?
- Obstacle detection and classification.
- Colouring maps.
- Object-level perception for planning.
3. Selection and design decisions
What each sensor contributes
| Sensor | Contribution | Weakness the other covers |
|---|---|---|
| Camera | Classification, texture, colour | No direct range; light needed |
| LiDAR | Accurate 3D position of the surface | Sparse at range, no appearance |
Fusion approaches
- Project LiDAR points into the image and attach detections to 3D clusters (early or object-level fusion).
- Detect in 3D and verify with the image (late fusion).
- Depth completion or learned fusion (needs training data).
4. Advantages and disadvantages
- Early fusion uses more information and is sensitive to calibration; object-level fusion is robust and loses detail.
- Needs tight camera–LiDAR extrinsics and time alignment.
5. Requirements and constraints
- Time synchronisation to within what the estimator tolerates (use the Sensor Time Synchronization Simulator).
- Calibrated extrinsics between every fused pair, with the transform direction documented (see the frame-conventions guide).
- Extrinsics validated with a reprojection check.
- Time offset small relative to platform motion (use the sync simulator).
- Intrinsics and distortion calibrated.
6. Architecture
camera ─▶ 2D detections ─┐
├─▶ association (project / cluster) ─▶ labelled 3D objects
LiDAR ─▶ clusters ───────┘7. Implementation
- Calibrate intrinsics, then camera–LiDAR extrinsics; document the direction (see the frame guide).
- Validate by projecting LiDAR points onto a target.
- Synchronise or measure the time offset.
- Associate detections with clusters and measure association accuracy.
Compare structures in the Sensor Fusion Architecture Builder.
8. Real examples
- An autonomous shuttle that labels pedestrians with distances.
9. Failure scenarios
- Extrinsic error: points miss the object (see the misalignment diagnostic).
- Time offset: alignment only fails when moving.
- Occlusion: the camera sees what the LiDAR cannot, and vice versa.
- Glass and reflective surfaces appear in one sensor only.
10. Troubleshooting
- Use the Camera–LiDAR Projection Visualizer to identify the error pattern.
- Turn the robot in place to test time offset.
- Check intrinsics at the image edges.
11. Validation
- Projected points land on a target within your pixel tolerance at three distances.
- Alignment holds while turning at the maximum rate.
- Association accuracy measured on labelled data.
12. Engineering checklist
13. Further references
- Class-level guidance written from general engineering knowledge; it contains no product specifications. Product-specific numbers must come from the manufacturer’s datasheet for the exact model and operating mode.
- ROS 2 message types: sensor_msgs (jazzy branch).
Related on FixTheRobot
- Coordinate Alignment and Timestamps Perception · Lesson
- Early Fusion, Late Fusion and Object-Level Fusion Perception · Lesson
- Projection and Reprojection Errors Perception · Lesson