失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【学习记录】IMU内参标定:Allan方差与代码

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

时间:2022-10-28 19:45:22

相关推荐

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

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

参考

关于IMU参数:

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

关于Allan方差:

多传感器融合定位理论基础(三):惯性器件误差分析

IMU噪声参数辨识-艾伦方差

代码:imu_utils

/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.bagroslaunch imu_utils A3.launch

5. 输出结果

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

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

小结

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

如果觉得《【学习记录】IMU内参标定:Allan方差与代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。