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 Hong Kong, China, Page(s): 3042 - 3049
[2] imu_tk (ROS)