FixTheRobot Explore Robotics / Systems Engineering / Design & Selection / Module 10

Design & Selection · Module 10

Comparing VIO and LIO

VIO starves without light or texture; LIO starves without geometric structure. List your sites and see where both are at risk.

  • Intermediate
  • Module 10: Visual-Inertial SLAM & LiDAR-Inertial Integration
  • Written for ROS 2 Jazzy where ROS 2 is used
  • Sources checked 2026-11-06

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

Both approaches fuse an IMU with an exteroceptive sensor, and they fail in different places. Comparing them by benchmark scores from other data hides the difference that matters: which of your sites each can handle.

2. When is this needed?

  • Choosing between VIO and LIO for a robot.
  • Planning where a robot may operate.
  • Deciding whether to fuse both.

3. Selection and design decisions

Facts from the READMEs (read 2026-11-06): VINS-Fusion states VIO heavily relies on hardware quality and recommends global-shutter cameras and hardware synchronisation; FAST-LIO is a tightly coupled iterated EKF lidar-inertial odometry package that does not need feature extraction and supports spinning and solid-state LiDARs; LIO-SAM requires per-point time and ring information and a 9-axis IMU. Beyond these, the comparison below is general engineering reasoning.

Overview
AspectVIOLIO
LightNeeds light and exposure controlIndependent of light
Texture and structureNeeds visual textureNeeds geometric structure
Cost, weight, powerLow (camera and IMU)Higher (LiDAR)
ScaleMetric with an IMU (stereo or inertial); monocular needs excitationMetric from range
Failure signTracking lost, drift in featureless areasSliding along corridors and fields
Dynamic scenesMoving features corrupt trackingMoving objects add outliers

4. Advantages and disadvantages

  • Fusing both covers each other’s weak sites and adds sync, calibration and compute.
  • Choosing one is simpler and limits where the robot works.
  • Add a safe fallback for the failing case.

5. Requirements and constraints

  • Every site in the ODD is covered by at least one working method.
  • Sites where both are at risk have an extra constraint (markers, GNSS, odometry) or are excluded.
  • Each method is tested in its weakest site.

6. Architecture

site conditions ─▶ VIO risk? LIO risk? ─▶ one, both, or add constraint

7. Implementation

  1. List the sites and their conditions: light, texture, structure.
  2. Mark VIO and LIO risks per site (below).
  3. Choose a method or fusion so each site has a working method.
  4. For sites at risk for both, add a constraint or exclude them.
  5. Test in the weakest sites.
sites = {"dark warehouse aisle": {"low_light"},
         "plain-wall hall with furniture": {"low_texture"},
         "open grass field": {"low_structure"},
         "long textured corridor": {"low_structure"},
         "glass atrium at night": {"low_light", "low_structure"}}
VIO_RISK = {"low_light", "low_texture"}          # conditions that starve a camera of features
LIO_RISK = {"low_structure"}                      # conditions that leave a scan match under-constrained
for name, cond in sites.items():
    vio = "RISK" if cond & VIO_RISK else "ok"
    lio = "RISK" if cond & LIO_RISK else "ok"
    print(f"{name:32s} VIO {vio:4s} LIO {lio:4s}", "<- both at risk" if vio == lio == "RISK" else "")

Printed (checked by the site’s tests):

dark warehouse aisle             VIO RISK LIO ok   
plain-wall hall with furniture   VIO RISK LIO ok   
open grass field                 VIO ok   LIO RISK 
long textured corridor           VIO ok   LIO RISK 
glass atrium at night            VIO RISK LIO RISK <- both at risk

Reading it: a dark aisle and a plain-wall hall are risky for VIO and fine for LIO; an open field and a long corridor are the reverse; a glass atrium at night is risky for both and needs another constraint. The site list and rules are illustrative.

8. Real examples

  • Facility with a dark warehouse and a bright atrium: LIO in the warehouse, VIO or fused in the atrium.

9. Failure scenarios

  • Choosing from a benchmark in a different environment.
  • Assuming a LiDAR works in open space.
  • Assuming a camera works at night.

10. Troubleshooting

  1. If both fail on one site, add a global reference (markers, GNSS, map).
  2. If one fails intermittently, log its health signal against the place.

11. Validation

  • The risk table prints the lines shown (executed by the site tests).
  • Each site has a method that passes its test.

12. Engineering checklist

13. Further references

Related on FixTheRobot