VIO 中 IMU 的标定流程 (3/3) - imu_tk 使用备忘

时间:2024-05-31 16:33:16

imu_tk的使用流程

  • 本篇博客不含有编译的过程,只是记录一下流程备忘。一共三篇分别记录imu_utilskalibr_allanimu_tk的使用过程,本篇是03imu_tk
  • IMU需要标定的参数主要是确定性误差随机误差,确定性误差主要标定biasscalemisalignment,随机误差主要标定noiserandom walkimu_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的节点来计算misalignmentscalebias,命令为$ rosrun imu_tk imu_calib_node xx.bag /imu该命令的参数是bag名称和topic名称rosrun imu_tk imu_calib_node [BAG] [IMU_TOPIC]
  • 最后,根据上述步骤,利用手头的XsensIMU标定了一波,参数如图所示。
  • 加速度计的确定性误差
    VIO 中 IMU 的标定流程 (3/3) - imu_tk 使用备忘
  • 陀螺仪的确定性误差
    VIO 中 IMU 的标定流程 (3/3) - imu_tk 使用备忘
  • VIO 中 IMU 的标定流程 (3/3) - imu_tk 使用备忘

参考

[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)