Overview
ORB-SLAM3 supports six different sensor modes, combining three camera types (monocular, stereo, RGB-D) with optional IMU integration. Each mode is optimized for different hardware configurations and use cases.Sensor Mode Enumeration
The sensor modes are defined ininclude/System.h:87-94:
Visual-Only Modes
- Monocular
- Stereo
- RGB-D
Monocular Mode
Single camera tracking without depth information.- Scale ambiguity: Map is computed up to an unknown scale factor
- Initialization: Requires sufficient parallax between first frames
- Use cases: Lightweight systems, drones, smartphones
Visual-Inertial Modes
Visual-inertial modes combine camera input with IMU measurements for enhanced robustness and accuracy.- IMU Monocular
- IMU Stereo
- IMU RGB-D
IMU-Monocular Mode
Single camera with inertial sensor (accelerometer + gyroscope).- Metric scale: IMU provides scale observability
- Fast motion: Handles rapid camera movements
- Initialization: 2-15 seconds for IMU initialization
- Gravity estimation: Estimates gravity direction and magnitude
IMU-Monocular achieves scale error < 5% after 2 seconds of initialization, refined to ~1% within 15 seconds.
IMU Data Structure
When using visual-inertial modes, IMU measurements are passed asIMU::Point objects defined in include/ImuTypes.h:46-59:
Comparison Matrix
| Feature | Monocular | Stereo | RGB-D | IMU-Mono | IMU-Stereo | IMU-RGBD |
|---|---|---|---|---|---|---|
| Metric Scale | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Initialization Time | Medium | Instant | Instant | 2-15s | Fast | 2-15s |
| Fast Motion | ⚠️ | ⚠️ | ⚠️ | ✅ | ✅ | ✅ |
| Hardware Cost | Low | Medium | Medium | Low | High | High |
| Outdoor Use | ✅ | ✅ | ❌ | ✅ | ✅ | ⚠️ |
| Computational Cost | Low | Medium | Medium | Medium | High | High |
Choosing the Right Mode
Lightweight & Portable
Monocular or IMU-Monocular for drones, smartphones, and resource-constrained devices.
High Accuracy
Stereo or IMU-Stereo for robotics applications requiring precise metric reconstruction.
Indoor Environments
RGB-D or IMU-RGBD for dense indoor mapping with depth sensors.
Fast Motion
Any IMU mode for aggressive motion, temporal occlusions, or challenging dynamics.
Best Practices
Image Preprocessing
Image Preprocessing
- Stereo: Images must be synchronized and rectified (for pinhole models)
- RGB-D: Depth must be registered to RGB frame
- All modes: RGB images are automatically converted to grayscale
- Input formats: RGB (
CV_8UC3) or grayscale (CV_8U)
IMU Integration
IMU Integration
- Provide all IMU measurements between consecutive frames
- Typical IMU rate: 100-200 Hz (much higher than camera frame rate)
- Ensure proper IMU-camera calibration (extrinsics and time offset)
- Configure noise parameters in settings file
Timing and Synchronization
Timing and Synchronization
- Use consistent timestamp units (typically seconds)
- For IMU modes, timestamps must be accurately synchronized
- Account for any time offset between sensors
Related Topics
Camera Models
Configure pinhole or fisheye lens models for your sensors
IMU Integration
Deep dive into IMU calibration and preintegration
Configuration Files
Set up YAML configuration for your sensor mode
Example Usage
See complete examples for each sensor mode