IMU Data Interpretation and ORB-SLAM3 Initialization Issue
Hello,
I am struggling to understand what the algorithm (and the calibration tool Kalibr) expects as "IMU data."
I am using ORB-SLAM3 with a monocular camera and an IMU. However, I am having trouble passing the IMU initialization stage. I have already tried many suggestions, such as checking/aligning timestamp synchronization, initializing the IMU with large movements and rotations, ...but without success.
My concern now is whether the IMU data (i.e., orientation, angular_velocity, linear_acceleration, and their respective covariances) are being correctly interpreted. Specifically, I am using:
Pixhawk 6X which in my Rev has ICM-20649, ICM-42688-P, ICM-42670-P IMUs
I obtain the following data when transfered to ROS (which uses NED FRD to ENU FLU):
Orientation: Provided as a quaternion in the ENU (East-North-Up) coordinate frame.
Angular velocity: Provided in the FLU (Front-Left-Up) coordinate frame.
Linear acceleration: Represents the real acceleration of the drone (not apparent acceleration), and includes gravity as an apparent acceleration. It is again FLU.
Observed Behavior of Linear Acceleration
The behavior of the linear acceleration concerns me the most. Here are some key values I observe:
Flat IMU: (x, y, z) = (0, 0, 9.81) m/s²
Flat IMU accelerating forward:
The x component becomes positive; accelerating backward makes it negative.
Flat IMU accelerating left:
The y component becomes positive; accelerating right makes it negative.
Steady IMU rolled positively (rotating about the x-axis): The y acceleration increases positively, and the z component decreases.
Steady IMU pitched positively (rotating about the y-axis): The x acceleration becomes negative, and the z component decreases.
My Interpretation
To me, this behavior suggests that the linear acceleration reflects the movement of the internal IMU mass, inverted. This means the acceleration is reported in the opposite direction to the actual movement. It seems there is already some compensation applied to extract the real acceleration, not the apparent one.
However, gravity is included as an apparent acceleration in this data, which confuses me. While the acceleration due to motion is apparent and should be inverted to obtain the real acceleration of the object, gravity is not apparent. Apart from the interpretation, what truly matters to me are the following practical questions:
Questions
Is this behavior the standard way IMUs output their data?
Is this the format that ORB-SLAM3 and Kalibr expect for IMU input?
IMU Data Interpretation and ORB-SLAM3 Initialization Issue
Hello,
I am struggling to understand what the algorithm (and the calibration tool Kalibr) expects as "IMU data."
I am using ORB-SLAM3 with a monocular camera and an IMU. However, I am having trouble passing the IMU initialization stage. I have already tried many suggestions, such as checking/aligning timestamp synchronization, initializing the IMU with large movements and rotations, ...but without success.
My concern now is whether the IMU data (i.e.,
orientation
,angular_velocity
,linear_acceleration
, and their respective covariances) are being correctly interpreted. Specifically, I am using:Pixhawk 6X which in my Rev has ICM-20649, ICM-42688-P, ICM-42670-P IMUs
I obtain the following data when transfered to ROS (which uses NED FRD to ENU FLU):
Observed Behavior of Linear Acceleration
The behavior of the linear acceleration concerns me the most. Here are some key values I observe:
Flat IMU:
(x, y, z) = (0, 0, 9.81)
m/s²Flat IMU accelerating forward:
The
x
component becomes positive; accelerating backward makes it negative.Flat IMU accelerating left:
The
y
component becomes positive; accelerating right makes it negative.Steady IMU rolled positively (rotating about the x-axis):
The
y
acceleration increases positively, and thez
component decreases.Steady IMU pitched positively (rotating about the y-axis):
The
x
acceleration becomes negative, and thez
component decreases.My Interpretation
To me, this behavior suggests that the linear acceleration reflects the movement of the internal IMU mass, inverted. This means the acceleration is reported in the opposite direction to the actual movement. It seems there is already some compensation applied to extract the real acceleration, not the apparent one.
However, gravity is included as an apparent acceleration in this data, which confuses me. While the acceleration due to motion is apparent and should be inverted to obtain the real acceleration of the object, gravity is not apparent. Apart from the interpretation, what truly matters to me are the following practical questions:
Questions