Large Discrepancy in Odometry Output Position Compared to Raw IMU Data
I am experiencing a significant discrepancy between the raw IMU data and the final odometry output from the LIO-SAM mapping module. My setup uses a Unitree B2 robot and a Robosense Helios 32 LiDAR、ROS2 humble.
Configuration
The relevant topic configurations from my parameter file are: pointCloudTopic: "/rslidar_points_converted" imuTopic: "/dog_imu_raw" odomTopic: "odometry/imu" gpsTopic: "odometry/gpsz"
Observed Data
-
Raw IMU Data (topic: /dog_imu_raw): The linear acceleration data from the IMU appears stable and shows small, plausible changes in position, consistent with the robot's movement on a relatively flat surface (note the Z-axis acceleration is close to gravity, ~9.8 m/s²).
x: 0.014365210197865963 y: 0.1041477769613266 z: 9.740509986877441
x: 0.014365210197865963 y: 0.1041477769613266 z: 9.740509986877441
x: 0.03232172131538391 y: 0.13198037445545197 z: 9.807847023010254
-
LIO-SAM Odometry Output (topic: /lio_sam/mapping/odometry): The pose position from the final odometry topic shows enormous and unrealistic values.
x: -27.7979679107666 y: 1.8861989974975586 z: 0.05000000074505806
x: -33.032894134521484 y: -3.063706398010254 z: 0.05000000074505806
x: -39.27899169921875 y: -9.487403869628906 z: 0.05000000074505806
x: -45.427345275878906 y: -18.16677474975586 z: 0.05000000074505806
Problem
The estimated position from /lio_sam/mapping/odometry drifts massively compared to the stable input from the IMU. The values jump to tens of meters, which is not physically possible for the robot's movement.
Questions
- What could be causing this massive drift in the odometry output?
- Could the issue be related to the coordinate frame transformations or the configuration of the IMU/LiDAR parameters (e.g., extrinsics, noise models)?
Any insights or suggestions for debugging this issue would be greatly appreciated.
Environment: • Robot: Unitree B2
• LiDAR: Robosense Helios 32
- ROS2 humble
The robot dog was stationary at the time.