【学习记录】IMU内参标定:Allan方差与代码

本文仅用于记录自己学习IMU内参标定过程中的一些总结。

参考

关于IMU参数:
死磕陀螺仪之(一)陀螺仪参数意义以及工程转换

关于Allan方差:
多传感器融合定位理论基础(三):惯性器件误差分析
IMU噪声参数辨识-艾伦方差

代码:imu_utils

https://github.com/gaowenliang/imu_utils

使用方法:

1. 录制rosbag数据
启动imu的节点发布imu数据,并用rosbag进行录制。录制过程中保证IMU静止不动。
录制时间建议>2h,否则辨识的不准确。数据量还行,我100hz的IMU录制给2小时只有不到300M。

2. 下载代码并编译
按照imu_utils的文档,下载 imu_utils 和作者依赖的代码 codes_utils,并一同放在同一个workspace下,进行编译。
自己编译时,遇到了如下两个错误:

“backward.hpp” No such file…
解决方法:修改头文件 “backward.hpp” -> “code_utils/backward”。详见 issue11

/usr/lib/x86_64-linux-gnu/libapr-1.so.0: undefined reference to `uuid_generate@UUID_1.0’
解决方法:修改bashrc,不激活anaconda,然后删掉build路径,重新编译。详见:解决libapr-1.so.0:对‘uuid_generate@UUID_1.0’未定义的引用

3. 修改配置文件
修改任意一个launch文件,主要修改:1. imu topic的名称;2. 持续时间(可以看代码中这个变量是干什么的,具体是时间戳达到这个值(单位为分钟)后,把接收到的数据进行分析。所以如果设定的时间比实际录制的长,则无法进入后续分析部分)在这里插入图片描述
4. 运行
首先打开标定launch,再播放录制的rosbag数据,可以用-r参数加速;

rosbag play -r 200 xxx.bag
roslaunch imu_utils A3.launch

5. 输出结果
最终标定结果在命令行以及data/路径生成yaml文件。

如果想绘制Allan曲线,可以运行scripts/draw_allan.m这个matlab脚本,运行时将所有路径的文件名替换成launch配置文件的"imu_name"参数即可。输出结果如下:
在这里插入图片描述

小结

整个过程还算顺利,一天搞定。感觉并不难,所有工具都做的不错。

20231103更新

再看Allan方差含义与曲线:
今天按照:《IMU Error Modeling Tutorial - INS state estimation with real-time sensor calibration》一文学习,有对照了上面附的知乎的帖子:IMU噪声参数辨识-艾伦方差,收获颇多。

自己的一些心得体会:
从功率谱的角度去思考allan方差:由于可以将噪声项视作相互独立的噪声源,因此每个谱代表了不同源的影响。
量化误差Q,角度随机游走(即角速度noise)N,零偏不确定性B,角速度随机游走K,以及速率斜坡RR。论文中只讨论了NBK三个的影响。

由于绘制的allan曲线,横轴是log(\tau),根据斜率与 τ = 1 \tau=1 τ=1 的交点,可以计算出NBK的具体值:
-1/2斜率与 τ = 1 \tau=1 τ=1的交点是 N;
0斜率的值是(近似的) 2 / 3 B 2/3B 2/3B(论文是0.664B);
1/2斜率与 τ = 1 \tau=1 τ=1的交点是 K / ( 3 ) K/\sqrt(3) K/( 3),也是1/2斜率与 τ = 3 \tau=3 τ=3的交点K。

对于噪声的状态空间,有不同的建模方式,例如只考虑NK的、考虑NBK的。但由于B,由于:
在这里插入图片描述
因此,对于B的不同建模(一阶/二阶),又有了Gauss-Markov模型,Cumulative模型等。

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值