Lost IMU msgs: 6, Frame time delta = 0.033387 [s], drop ratio = 100.000000 [%]

These are my Isaac Ros VSlam parameters. I am getting the below error and the odometry drifts or the robot suddenly teleports to some other place. I am using nvblox and running the nvblox_realsense example launch file.

/visual_slam_node:
ros__parameters:
accel_noise_density: 0.002
accel_random_walk: 0.0035
base_frame: base_footprint
calibration_frequency: 200.0
camera_optical_frames:
- camera0_infra1_optical_frame
- camera0_infra2_optical_frame
debug_dump_path: /tmp/cuvslam
debug_imu_mode: false
enable_debug_mode: false
enable_ground_constraint_in_odometry: true
enable_ground_constraint_in_slam: true
enable_image_denoising: false
enable_imu_fusion: true
enable_landmarks_view: false
enable_localization_n_mapping: true
enable_observations_view: false
enable_request_hint: true
enable_slam_visualization: false
gyro_noise_density: 0.0003
gyro_random_walk: 2.0e-05
image_buffer_size: 10
image_jitter_threshold_ms: 40.0
image_qos: SYSTEM_DEFAULT
image_qos_depth: 0
img_mask_bottom: 0
img_mask_left: 0
img_mask_right: 0
img_mask_top: 0
imu_buffer_size: 50
imu_frame: camera0_gyro_optical_frame
imu_jitter_threshold_ms: 200.0
imu_qos: SYSTEM_DEFAULT
imu_qos_depth: 0
invert_map_to_odom_tf: false
invert_odom_to_base_tf: false
load_map_folder_path: /home/nvidia/shared/vslam
localize_on_startup: false
localizer_angular_step: 0.1745000034570694
localizer_horizontal_radius: 1.5
localizer_horizontal_step: 0.5
localizer_vertical_radius: 0.5
localizer_vertical_step: 0.25
map_frame: map
min_num_images: 2
multicam_mode: 1
num_cameras: 2
odom_frame: odom
override_publishing_stamp: false
path_max_size: 200
publish_map_to_odom_tf: true
publish_odom_to_base_tf: true
qos_overrides:
/parameter_events:
publisher:
depth: 1000
durability: volatile
history: keep_last
reliability: reliable
/tf:
publisher:
depth: 100
durability: volatile
history: keep_last
reliability: reliable
/tf_static:
publisher:
depth: 1
history: keep_last
reliability: reliable
rectified_images: true
save_map_folder_path: /home/nvidia/shared/vslam
slam_max_map_size: 300
slam_throttling_time_ms: 500
sync_matching_threshold_ms: 5.0
use_sim_time: false
verbosity: 2

[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033391 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033391 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033392 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033390 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 4, Frame time delta = 0.033392 [s], drop ratio = 66.666672 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 1, Frame time delta = 0.033384 [s], drop ratio = 16.666668 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033384 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033385 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 1, Frame time delta = 0.033383 [s], drop ratio = 16.666668 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033384 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 3, Frame time delta = 0.033387 [s], drop ratio = 50.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033388 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 2, Frame time delta = 0.033388 [s], drop ratio = 33.333336 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 2, Frame time delta = 0.033389 [s], drop ratio = 33.333336 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033386 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033387 [s], drop ratio = 100.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 3, Frame time delta = 0.033386 [s], drop ratio = 50.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 3, Frame time delta = 0.033385 [s], drop ratio = 50.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 3, Frame time delta = 0.033386 [s], drop ratio = 50.000000 [%]
[component_container_mt-5] [WARNING] Lost IMU msgs: 6, Frame time delta = 0.033387 [s], drop ratio = 100.000000 [%]

Hi @shrujanus

Thank you for your post. Which camera are you using?

Best,
Raffaello

I am using the intel D435i camera with Nvidia Jetson Orin AGX

Hi @shrujanus

Would you provide the commands you were using to get the error?

Best,
Ahung

I was running the realsense example launch file.

ros2 launch nvblox_examples_bringup realsense_example.launch.py

Hi @shrujanus

I tried this command on AGX Orin with D455. Isaac ROS version is 3.2.
The lost imu log only appeared at the beginning while the demo was just launched.

Pasted my imu related paramsters FYR.
debug_imu_mode: false
enable_imu_fusion: true
imu_buffer_size: 50
imu_frame: camera0_gyro_optical_frame
imu_jitter_threshold_ms: 10.0
imu_qos: SENSOR_DATA
imu_qos_depth: 0

Did the Lost IMU msg happen all the time to you?
What’s your setup? Could you try with other usb 3.0 qualified cable? And try to remove usb hub if used.

Best,
Ahung

Hi @Ahung
I have encountered the same issue: coordinate drift caused by lost IMU messages.

[component_container_mt-2] [ERROR] Lost IMU msgs: 3, Frame time delta = 0.022250 [s], drop ratio = 75.000000 [%]
[component_container_mt-2] [ERROR] Lost IMU msgs: 3, Frame time delta = 0.022252 [s], drop ratio = 75.000000 [%]
[component_container_mt-2] [ERROR] Lost IMU msgs: 3, Frame time delta = 0.022251 [s], drop ratio = 75.000000 [%]
[component_container_mt-2] [ERROR] Lost IMU msgs: 2, Frame time delta = 0.022252 [s], drop ratio = 50.000000 [%]
[component_container_mt-2] [ERROR] Lost IMU msgs: 2, Frame time delta = 0.022251 [s], drop ratio = 50.000000 [%]
[component_container_mt-2] [ERROR] Lost IMU msgs: 1, Frame time delta = 0.022250 [s], drop ratio = 25.000000 [%]

My camera is using the D455 on the NX Orin.
I have tried using the parameters mentioned above, but IMU messages are still being lost.

Here are my testing steps:

  1. ros2 launch nvblox_examples_bringup realsense_example.launch.py
  2. Block the camera’s field of view while the camera is stationary.
  3. After that, the “lost IMU msgs” will continuously appear, and the coordinates will keep drifting, even when the camera’s field of view is no longer obstructed.

Here is my speculation:
When I block the camera’s field of view, VSLAM uses IMU data as a supplement due to the loss of features.
However, the lost IMU messages cause problems with localization.
But when I checked the ros2 topic hz /camera/imu, it was still maintaining 200Hz.

What could be causing the lost IMU messages?
Thank you very much.

I believe I’ve identified the issue—there seems to be a problem with angular velocity data from the RealSense IMU. Specifically, the yaw velocity never shows any readings when using the RealSense ROS2 node. I’m not sure if this is the case with other interfaces, but for now, I plan to disable the built-in IMU and instead use the EKF filter to fuse data from the RealSense camera IMU (for linear acceleration), an external IMU (for angular velocity), and wheel odometry to compute the odom → base_footprint transform.

Now, I’m encountering a new issue with Visual SLAM localization.
When I call the /visual_slam/localize_in_map service, localization completes successfully using the provided hint. However, the result does not seem to update the /visual_slam/tracking/vo_pose_covariance topic as expected.
Screenshot from 2025-05-02 17-52-18