IMU integration

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

IMU integration

dinossht
Hi,

I want to integrate IMU sensor into my current SLAM sensor package. I have manually found the extrinsics wrt. the sensor package frame. However, when IMU data is added to the SLAM system, the system jitters more. I am unsure how the IMU measurements are used in RTAB-Map? Is it used as complementary measurements to estimate pose (rotation and translation)? Furthermore, should the IMU output the linear acceleration (gravity acceleration removed) or acceleration data with gravity. I am struggling to both incorporate and tune the parameters to integrate the measurement in a good way. Any tips here? And can anyone suggest readings on what kind of IMU measurements the system expects?
Reply | Threaded
Open this post in threaded view
|

Re: IMU integration

dinossht
Also, how can I tune the IMU? Is it as simple as tweaking the covariance matrices that are being published along with the IMU data? Or are there any other configs in RTAB-Map?
Reply | Threaded
Open this post in threaded view
|

Re: IMU integration

matlabbe
Administrator
dinossht wrote
I want to integrate IMU sensor into my current SLAM sensor package. I have manually found the extrinsics wrt. the sensor package frame. However, when IMU data is added to the SLAM system, the system jitters more. I am unsure how the IMU measurements are used in RTAB-Map? Is it used as complementary measurements to estimate pose (rotation and translation)? Furthermore, should the IMU output the linear acceleration (gravity acceleration removed) or acceleration data with gravity. I am struggling to both incorporate and tune the parameters to integrate the measurement in a good way. Any tips here? And can anyone suggest readings on what kind of IMU measurements the system expects?
IMU is used in map's graph to align the map with gravity. We assume that the quaternion is computed accordingly to gravity. See Madgwick or Complementary filters, so linear acceleration should include gravity to correctly estimate that quaternion.

IMU is used for visual odometry in a similar way, the gravity constraints are added in local bundle adjustment. The IMU orientation is also used to predict better where the features should be in next frame (so for better features tracking/matching). Rtabmap's VO is not a tightly VIO approach, it is primarily stereo/rgb-d VO with IMU constraints. Because of that, we don't need well calibrated imu's noise estimate (actually we don't use it) like tightly fused VIO approaches would require. However, we don't estimate position with IMU-only, so if there are not enough visual features to track, the odometry will be lost right away instead of relying only on IMU if camera cannot see anything for some time. For example, if you have an ARCore or ArKit compatible phone, you will see that if you block the camera, the VIO approach is still estimating the pose... for some time. It may drift more during that time and may stop estimating if the camera doesn't see again.

dinossht wrote
Also, how can I tune the IMU? Is it as simple as tweaking the covariance matrices that are being published along with the IMU data? Or are there any other configs in RTAB-Map?
If you need to estimate the noise of your IMU for some thight VIO approaches , you may check Kalibr or read the prerequisites of the approach you selected:
https://github.com/ethz-asl/kalibr/wiki/IMU-Noise-Model