Overview
The IMU namespace provides data structures and classes for handling inertial measurements in ORB-SLAM3’s visual-inertial mode. It includes raw IMU measurements, bias estimation, calibration, and preintegration. Header:ImuTypes.h
Namespace: ORB_SLAM3::IMU
Constants
IMU::Point
Represents a single IMU measurement with accelerometer and gyroscope data.Structure
Constructors
acc_x, acc_y, acc_z- Accelerometer readings in m/s²ang_vel_x, ang_vel_y, ang_vel_z- Gyroscope readings in rad/stimestamp- Measurement timestamp in seconds
Acc- Accelerometer vectorGyro- Gyroscope vectortimestamp- Measurement timestamp
Usage Example
IMU::Bias
Represents IMU biases for accelerometer and gyroscope.Structure
Constructors
b_acc_x, b_acc_y, b_acc_z- Accelerometer bias componentsb_ang_vel_x, b_ang_vel_y, b_ang_vel_z- Gyroscope bias components
Methods
Stream Operator
Usage Example
IMU::Calib
IMU calibration including extrinsic transform and noise parameters.Structure
Constructors
Tbc- Transform from IMU body frame to camera frameng- Gyroscope noise density (rad/s/√Hz)na- Accelerometer noise density (m/s²/√Hz)ngw- Gyroscope random walk (rad/s²/√Hz)naw- Accelerometer random walk (m/s³/√Hz)
Methods
Usage Example
IMU::IntegratedRotation
Integration of a single gyroscope measurement.Structure
Constructor
angVel- Angular velocity measurementimuBias- Current IMU bias estimatetime- Integration time step
IMU::Preintegrated
Preintegrated IMU measurements between keyframes.Key Members
Constructors
Core Methods
Initialize
Integrate Measurement
acceleration- Accelerometer reading (m/s²)angVel- Gyroscope reading (rad/s)dt- Time step since last measurement
Reintegrate
Merge
Update Bias
Delta Computation
Get preintegrated values with bias correction:b_- Bias to use for correction
Original Values
Get values computed with original bias:Updated Values
Get values with current updated bias:Bias Access
Copy
Usage Example
Lie Algebra Functions
Utility functions for SO(3) operations:Integration in SLAM Pipeline
- Initialization: Create
Preintegratedwith initial bias from previous keyframe - Tracking: Integrate IMU measurements between frames using
IntegrateNewMeasurement - Keyframe Creation: Store preintegrated measurements in keyframe
- Optimization: Update bias estimates, recompute using
SetNewBias - Prediction: Use deltas to predict next frame pose