sparkfun / SparkFun_ICM-20948_ArduinoLibrary

Arduino support for ICM_20948 w/ portable C backbone
Other
169 stars 74 forks source link

Drift in ICM20948 IMU. #143

Open abhilashv-ign opened 5 months ago

abhilashv-ign commented 5 months ago

I'm using ICM20948 IMU. This is the driver used

Expected output The visualization should remain stationary when the IMU is at rest. Actual output The visualization is rotating about z-axis even when the IMU is at rest.

abhilashv-ign commented 5 months ago

I'm using the ICM20948 IMU for getting the angular rotation of a robot. I'm using complementary filter for calculating the q values and the viasualization is done using rviz2. The accurracy of the IMU sensor seems to be on point. When i rotate the IMU 90 degrees I'm getting 90degree rotation in visualization as well. The deviation in performance is when I'm keeping the IMU at rest. The visualization is supposed be stable and not moving. But the output that I'm getting is a slight drift. i.e the visualization rotates about z-axis over time. The rate of rotation is minute but over the course of a minute a significant drift is visible. I have tried adjusting the sensitivity as well. The DMP is disabled and the sampling mode is set to continuous mode.

Thank you for the suggestions.

nemccarthy commented 5 months ago

Did you have any luck with this issue?

timonkobusch commented 5 months ago

Maybe I understand something incorrectly, but the gyrosensor will always have a drift see: https://electronics.stackexchange.com/questions/445787/what-actually-causes-gyroscope-drift-in-imu I am not sure about calibrating the hardware, but for the project of my bachelor thesis, we programmed a kalman Filter (also sperate Particle Filter) in combination with the acceleration sensor to cancel out the drift. I think it is the common approach to handle the gyrosensor drift.

timonkobusch commented 5 months ago

For more Information about the topic and parts of an IMU see: https://headtracker.gitbook.io/head-tracker/getting-started/imu-calibration-and-drift