imu_tk
的使用流程
- 本篇博客不含有编译的过程,只是记录一下流程备忘。一共三篇分别记录
imu_utils
,kalibr_allan
和imu_tk
的使用过程,本篇是03篇imu_tk
。 - IMU需要标定的参数主要是确定性误差和随机误差,确定性误差主要标定bias,scale和misalignment,随机误差主要标定noise和random walk,
imu_tk
是用于求取确定性误差的开源工具。
使用步骤 step-by-step
- 原生的
imu_tk
是纯c++版本的 [1] ,后来有高手贡献了一个ROS
的版本 [2],如果使用原生版本,需要将imu
的数据转成mat
文件,我们这里以ROS
版本为例记录步骤。 - 录制
bag
数据,录制的基本步骤见imu_utils
的使用流程1~2,这里录制的要求按照一个流程来:
- Left the IMU static for 50 seconds.
- Rotate the IMU and then lay it in a different attitude.
- Wait for at least 1 seconds.
- Have you rotated the IMU 36 ~ 50 times ? If not, go back to step 2.
- Done - 这就个步骤简单小结就是先静止50秒,然后拿起来转一下,停一下,再转一下,停一下,转的方向随意,停的时候尽量停稳个1~2秒,大概重复几十次就可以,没什么特别的要求。
- 使用
ros
版本的imu_tk
的节点来计算misalignment
,scale
和bias
,命令为$ rosrun imu_tk imu_calib_node xx.bag /imu
该命令的参数是bag
名称和topic
名称rosrun imu_tk imu_calib_node [BAG] [IMU_TOPIC]
- 最后,根据上述步骤,利用手头的
Xsens
的IMU
标定了一波,参数如图所示。 - 加速度计的确定性误差
- 陀螺仪的确定性误差
参考
[1] imu_tk (C++) 原文 D. Tedaldi, A. Pretto and E. Menegatti, “A Robust and Easy to Implement Method for IMU Calibration without External Equipments”. In: Proceedings of the IEEE International Conference on Robotics and Automation (ICRA 2014), May 31 - June 7, 2014 *, China, Page(s): 3042 - 3049
[2] imu_tk (ROS)