ORB_SLAM3 icon indicating copy to clipboard operation
ORB_SLAM3 copied to clipboard

IMU fails to initialize in Monocular-Inertial mode

Open abubakarijaz10 opened this issue 6 months ago • 2 comments

Hello, I am facing an issue in ORB_SLAM3 where my Monocular-Inertial setup does not seem to be working as intended. I am using the following hardware:

  • Raspberry Pi 5
  • Raspberry Pi Cam V3 (rolling shutter)
  • MPU6050 IMU

I have performed allan variance and calculated the noise of the IMU sensor for around 12 hours at around 355Hz.

I am not performing hardware synchronization and in my capture script I assign the current timestamp for when I receive the frame and the IMU sample.

I run the IMU at around 350Hz and capture around 30 FPS.

I performed Kalibr camera-IMU calibration and got the following report:

mono_imu_timestamp_fix-report-imucam_old.pdf

However, when I use the parameters after adding them to an ORB_SLAM3 compatible YAML file and run ORB_SLAM3, my IMU fails to initialize and I keep losing tracking. I momentarily do see frames but the IMU never seems to initialize.

Can anyone please guide me on what could be the issue?

I can provide more information if needed.

abubakarijaz10 avatar Jul 02 '25 09:07 abubakarijaz10

I have the same problem! Do the camera and IMU have to be integrated together?

DavidHydroneWang avatar Jul 15 '25 07:07 DavidHydroneWang

If the camera and IMU are not hardware synchronized so there is no guarantee they capturing at the same time which is an essential reason for initialization failure, and in your report it appears that the time shift between camera and IMU is -10ms which big number, in my case where my sensors are hardware synced it about 5ms, you can try ROS message filter approximate Policy (https://wiki.ros.org/message_filters ) to try syncing you messages(camera frames and IMU frames) based on their ROS timestamps

khshmt avatar Jul 16 '25 07:07 khshmt