Visual SLAM
Uses cameras to construct a map of the environment. Does feature matching, see ORB-SLAM
Tesla kind of does SLAM by creating a bird-eyes view from multiple camera views.
Other resources:
- https://www.kudan.io/blog/camera-basics-visual-slam/
- SLAM Textbook
- https://faculty.cc.gatech.edu/~afb/classes/CS7495-Fall2014/presentations/visual_slam.pdf
You basically try to figure out where the features align.
Implementation
- https://github.com/openxrlab/xrslam
- This guy’s student implementation of SLAM might be good https://github.com/MiguelAngelCalveraUnizar/Mini-SLAM_student
Concepts
Classical Visual SLAM Stack
Typical Visual SLAM Workflow
A typical visual SLAM workflow includes the following steps:
- Sensor data acquisition. (cameras, and optionally motor encoders, IMUs, etc).
- Visual Odometry (frontend): VO’s task is to estimate the camera movement between adjacent frames (ego-motion) and generate a rough local map.
- Backend filtering/optimization (backend). Receives poses from VO and loop closing, and then applies optimization to generate a fully optimized trajectory and map through Bundle Adjustment
- Loop Closing. Determines whether the robot has returned to its previous position in order to reduce the accumulated drift. If a loop is detected, it will provide information to the backend for further optimization.
- Reconstruction (optional). It constructs a task-specific map based on the estimated camera trajectory.
frontend more relevant to computer vision topics (image feature extraction and matching) backend state estimation research area
SLAM Formalization
See SLAM Formalization.
Other
I think Sachin showed me this image instead