ORBSLAM2 (Stereo Camera)
Related Work
- Points can be reliably triangled if their depth is less than ~40 times the stereo baseline.
- modern stereo SLAM: keyframe-based & Local BA
- stereo LSD SLAM
direct method: performance could be severely degraded by unmodeled effects like rolling shutter or non-lambertian reflectance.
Structure
- INPUT
Frame > - TRACKING
pre-process > pose prediction(motion model) OR relocalization > track local map > new keyframe decision > - LOCAL MAPPING
keyframe insertion > recent mappoints culling > new points creation > local BA > local keyframe culling > - LOOP CLOSING
querying DB > compute SE3 > loop fusion > opt essential graph > - FULL BA
full BA > update map
Tracking.preprocess: ORBExtractor (left & right rectified images) > stereo matching > stereo & mono keypoints
ORB-SLAM2
- tracking: localize the camera with every frame by finding feature matches to the local map and minimizing the reprojection error applying motion-only BA
- local mapping: local BA
- loop closing: detect large loops & correct drifts
Notice: place recognition module based on DBoW2 for relocalization, reinitialization and loop detection.
use the same ORB features for tracking, mapping and place recognition tasks.
system handles mono & stereo keypoints (close OR far)
A. stereo point
close: associated depth < 40 times the stereo/RGBD baseline
far: > 40 times (accurate rotation, but weak scale & translation), triangulate when supported by multiple views
monocular point
- on the left image and stereo match could not be found OR invalid depth value
B. bootstrapping:
- keyframe with the first frame, its pose to the origin, and create initial map with all stereo keypoints
C. BA with mono & stereo constraints
- motion-only BA R,t, minimizing reprojection error
- Local BA covisible frame and others (remain fixed in optimization)
- full BA all key frames & points in the map
D. loop closing and full BA
- detected and validated
- corrected
stereo/depth info makes scale observable and geometric validation and the pose-graph opt based on rigid body transformation instead of similarity
IF a new loop is detected while opt, opt aborted and close the loop, which will launch a full BA again.
FROM updated to non-updated: spanning tree
E. keyframe insertion
- inserted if num of the tracked close points drops below T1 and up T2
F. localization mode
- lightweight in well mapped areas
loop closing deactivated, camera is continuously localized by tracking. VO matches ORB & 3D points