UAV Systems Engineering · Interactive simulation · M2-L3
Visual Odometry Simulator
See every step of a feature-based visual odometry pipeline, then break it with noise, blur, bad matches and a camera dropout.
What you are looking at
A synthetic camera looks straight down at a textured ground plane from a known height. For each pair of consecutive frames the pipeline detects corners (blue), matches them, draws the optical flow of each match, rejects wrong matches with RANSAC (green = inlier, orange = rejected), and solves for the rotation and translation that best explain the inlier flow. Composing these frame-to-frame motions gives the trajectory.
The left panel pair shows the two consecutive frames; the plots show the estimated and true path and the position error over the flight.
Try this
- Raise “wrong matches” to 60%. RANSAC still finds the motion: watch the inlier count. At 70% it starts to fail. Why does RANSAC tolerate a majority of outliers?
- Set the assumed height error to +20%: the path keeps its shape but is the wrong size. This is the scale problem of a monocular camera in miniature.
- Lower the texture density to 0.1 landmarks per m² and then raise the corner threshold. Count the frames in which tracking is lost, and see the error grow with every lost frame.
- Raise speed to 10 m/s with motion blur 2. Why do fewer features survive at higher speed?
- Start a camera dropout at frame 100 for 30 frames and compare the final error with a run without dropout.
Model and its limits
Included: a real pinhole projection, pixel noise, detection by corner strength, blur-dependent dropouts, matching with a configurable outlier rate, a RANSAC estimator on the ground plane, a least-squares refit on the inliers, and pose composition.
Not included: actual image pixels (landmarks carry a corner strength; detection and matching are simulated, but their statistics are explicit parameters), full 6-DoF motion (the camera moves in a plane at fixed height with yaw), lens distortion, rolling shutter, and descriptor matching. Real monocular VO uses epipolar geometry (essential matrix) and cannot observe scale without extra information; this simulator removes the depth ambiguity by assuming a known height. Treat the numbers as illustrations of behaviour, not benchmarks.
Saved in this browser and synced to your account when you are signed in.