Engineering Guides · Module 02
Sensor combination: GNSS + IMU
GNSS gives absolute position at a low rate; the IMU fills the gaps and gives orientation. The standard outdoor pair.
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
GNSS is slow, noisy and unavailable at times; an IMU is fast and drifts. Together they give a continuous, bounded pose.
2. When is this needed?
- Outdoor robots, UAVs, agricultural vehicles.
- As the base of a GNSS-denied-capable estimator.
3. Selection and design decisions
What each sensor contributes
| Sensor | Contribution | Weakness the other covers |
|---|---|---|
| GNSS | Absolute position, no drift | Low rate, multipath, unavailable indoors |
| IMU | High rate motion, orientation | Drifts |
Fusion approaches
- EKF with a continuous local filter and a global filter (two-stage), as described for robot_localization.
- Factor-graph smoothing with GNSS factors (some LiDAR-inertial systems accept GNSS optionally, per their READMEs).
- An integrated GNSS/INS unit does this internally.
4. Advantages and disadvantages
- Gating GNSS protects against multipath bias but delays recovery.
- Heading from motion works only while moving; dual antennas give static heading.
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).
- Lever arm from antenna to base frame.
- Correct datum and axes (ENU vs NED).
- GNSS latency handled as a delayed measurement.
6. Architecture
GNSS (low rate, delayed) ─┐
├─▶ EKF / smoother ─▶ global pose
IMU (high rate) ──────────┘7. Implementation
- Measure and enter the antenna lever arm.
- Convert GNSS to a local frame consistently.
- Configure the fusion (see the robot_localization guide) and gate with innovation tests.
- Validate with a surveyed route.
Compare structures in the Sensor Fusion Architecture Builder.
8. Real examples
- An agricultural rover following rows.
9. Failure scenarios
- Wrong lever arm: position error that depends on heading.
- Multipath bias absorbed by the filter (see the GNSS-degradation guide).
- Heading ambiguity at rest.
10. Troubleshooting
- Compare GNSS with odometry on a straight segment.
- Check frames and datum.
- Log reported accuracy against observed scatter.
11. Validation
- Position error against a surveyed route within the requirement.
- No jumps through a deliberate GNSS dropout.
- Heading stable at rest.
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
- GPS-Denied Localization SLAM · Lesson