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

imu_utils的使用流程

  • 本篇博客不含有编译的过程,只是记录一下流程备忘。一共三篇分别记录imu_utilskalibr_allanimu_tk的使用过程,本篇是01imu_utils
  • IMU需要标定的参数主要是确定性误差随机误差,确定性误差主要标定biasscalemisalignment,随机误差主要标定noiserandom walkimu_utils是用于求取随机误差的开源工具。

使用步骤 step-by-step

一、连接IMU到电脑
  • 输入命令 $ ls /dev/ttyUSB*
  • 一般只有一个USB连接的话,输出 /dev/ttyUSB0则连接正确,串口已识别。
二、录制 ROS_bag
  • 打开一个 terminal,打开 ROS主节点:$ roscore

  • 打开一个 terminal,进入所对应IMU提供的SDK的包内查看节点,我们使用了Xsens提供的官方ROS驱动,输入命令 $ roscd xsens_driver/launch,查看文件 $ ls

  • launch下有一个文件xsens_driver.launch,打开查看文件内容,输入命令$ gedit xsens_driver.launch ,一般不需要修改,如果打开节点遇到timeout问题,可以适当将timeout default改大一点。在这里插入图片描述

  • 打开节点,输入命令$ roslanuch xsens_driver.launch,看到输出没有报错,节点启动成功。在这里插入图片描述

  • 打开一个 terminal,输入命令$ rostopic list查看所有话题,正常情况下会看到6个话题:
    /imu/data
    /imu/mag
    /imu_data_str
    /rosout
    /rosout_agg
    /velocity

  • 查看输出数据,输入命令$ rostopic echo /imu/data,看到节点正确输出IMU数据即可。在这里插入图片描述

  • 为存放bag数据新建一个文件夹,位置随意,并进入这个文件夹打开一个 terminal,输入命令$ rosbag record /imut/data -o test_imu_2020,这时输出命令类似如下。在这里插入图片描述

  • 查看文件夹,会看到test_imu_2020_20xx-xx-xx-xx-xx-xx.bag.active这个文件,就是正在录制的bag,静止不动,录制两个小时以上,录制完毕后ctrl + C停止即可。

三、使用imu_utils计算allan方差
  • 打开一个 terminal,进入之前编译好的imu_utils文件夹下xsens.launch文件查看相关设置$ gedit xsens.launch 在这里插入图片描述

  • 这里有一个max_time_min表示使用bag数据的最大时长,单位是分钟,默认是120分钟,程序会在最大时间截断读取数据,然后终端下输入命令roslaunch imu_utils xsens.launch,先放着不要执行。

  • 之前录制bag的终端不要关闭,由于我们在编译imu_utils时肯定会加载环境变量,因此在任何终端都可以调用ROS下的函数,在bag包存放的路径下使用rosbag提供的快速回放命令,rosbag play -r 200 test_imu_2020_20xx-xx-xx-xx-xx-xx.bag,也不要执行,先放着。

  • 这一步是关键,在执行上上步roslaunch imu_utils xsens.launch之后,程序会进入等待话题的状态。
    在这里插入图片描述

  • 尽快执行rosbag play -r 200 test_imu_2020_20xx-xx-xx-xx-xx-xx.bag,程序进入bag读取,并计算allan方差。当bag包加速回放完毕后,执行launch的窗口仍然会显示wait for imu data.,等待一段时间计算,计算完毕后会显示计算结果。
    在这里插入图片描述

  • 显示done之后,在catkin_ws/src/imu_utils/data这个文件夹下会出现一系列的data文件,打开xsens_imu_param.yaml这个文件,会看到计算出来的噪声和随机游走的系数值。在这里插入图片描述在这里插入图片描述

四、绘制allan方差曲线
  • /catkin_ws/src/imu_utils/scripts这个文件夹,有一些matlab的脚本,用于绘制allan方差曲线。需要修改data文件存放的路径和名字,但这些脚本没有提供计算函数,只是绘图,根据5个斜率值 [1] 可以从曲线计算出yaml文件对应的项目。
  • Matlab中具体的参数读取参考这个博主即可,写得很好 [2]
参考资料

[1] 厉宽宽, 陈允芳, 程敏, et al. MEMS-IMU随机误差的Allan方差分析[J]. 全球定位系统, 2016, 41(006):102-106.
[2] waihekor,CSDN博客, IMU噪声参数辨识-艾伦方差

  • 13
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值