UAV Systems Engineering · Interactive simulation · M3-L4
Sensor Fusion Simulator
Four estimators on the same flight: see how fast inertial navigation drifts, what each aiding sensor buys, and whether the filter’s uncertainty can be trusted.
What you are looking at
One ground-truth flight (a figure-eight) generates noisy, biased IMU data and odometry measurements. The estimators are: IMU-only (strapdown dead reckoning), visual odometry (dead reckoning from visual velocity and yaw rate), VIO (a 9-state EKF fusing the IMU with visual velocity, estimating accelerometer bias, gyro bias and visual scale), and LiDAR-IMU (the same filter driven by LiDAR odometry).
The plots show trajectories, position error over time, the filter’s own 1σ position uncertainty against its actual error (a consistent filter keeps the error inside its band), and the error as a percentage of distance flown.
Try this
- Set both IMU biases to zero. How much of the IMU-only error disappears, and how much remains from noise? Then put the accelerometer bias back to 15 mg. The error grows much faster than for any aided estimator, but it is not a clean t²: the bias is fixed in the body frame and the figure-eight keeps rotating the body, so part of it cancels (in lesson M2-T8 the bias is fixed in the world frame, which is the worst case).
- Start a vision outage at 30 s lasting 40 s. Visual odometry holds still (no information) while VIO coasts on the IMU: compare their errors.
- Make the LiDAR geometry degenerate. The forward direction becomes unobservable: what happens to the LiDAR-IMU error and to its reported uncertainty?
- Set the visual scale error to +10%. Pure visual odometry inherits it; VIO’s scale state estimates and removes most of it.
- Raise visual noise to 0.5 m/s and watch whether VIO’s error stays inside its 1σ band.
Model and its limits
Included: a real EKF (explicit Jacobians, Joseph-form covariance update), IMU bias random walks, body-frame velocity and yaw-rate measurements, a visual scale state, measurement dropouts and optional degenerate geometry.
Not included: a 3-D attitude (the model is planar and the platform is level), IMU preintegration, feature-level or scan-level measurements (the sensors are abstracted as odometry), time offsets, and loop closure. The filter is loosely coupled. The relative accuracy of the estimators here depends entirely on the noise parameters you choose and must not be read as a benchmark of real VIO or LiDAR-inertial systems; in particular, position and yaw are unobservable without a global reference, so every estimate still drifts.
Saved in this browser and synced to your account when you are signed in.