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

kalibr_allan 的使用流程

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

使用步骤 step-by-step

  • 连接IMU到录制bag数据都参考01imu_utils使用流程一和二

  • 利用kalibr_allan提供的bag转换工具,将bag数据转换为matlabmat数据,进入之前录制bag的文件夹,确认之前录制的bag名称。利用命令$ rosbag info xx.bag来查看话题,如图所示。
    在这里插入图片描述

  • 使用命令$ rosrun bagconvert bagconvert xx.bag/imu0,该命令的解释是$ rosrun bagconvert bagconvert [bag名字] [topic名字],这里如果topic输入不正确,可能会得到一个177kb的错误mat文件,一定保证topic正确,如上图中我录制的bagtopic就不是/imu0

  • 报错处理,在转换bag数据的时候,报出了一个错误*** Error in `/home/jqf/catkin_ws/devel/lib/bagconvert/bagconvert': free(): invalid pointer: 0x00000000020a41a8 ***但是最后确实生成了mat文件,并且有一定大小。

  • 我们用命令进入$ roscd bagconvert/然后修改src里面的main.cpp,在最后的return语句前面加一句输出ROS_INFO("The kalibr_allan is finished!");然后重新编译工作空间$ catkin_make测试报错是否只是在结束matlab程序时的内存问题。

  • 果然,如图所示只是在退出程序时出现了内存的错误,而新加入的那句已经输出了,就先不深究这个问题。在这里插入图片描述

  • 使用kalibr_allan内部提供的matlab脚本来绘制allan方差曲线,并提取相应的系数。这一步骤参考这篇即可,写得很详细 [1]

参考

[1] $南山种豆$, CSDN博客,VIO标定IMU随机误差:Allan方差法

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值