目录
一、常用开源IMU标定工具包汇总
kalibr_allan
imu_tk
imu_utils
imu_tk与imu_utils的区别
二、使用kalibr_allan计算imu误差
参考:
下载:
安装:
ROS操作:生成imu的.m文件
MATLAB操作:计算imu误差(高斯白噪声,随机游走偏置)
一、常用开源IMU标定工具包汇总
本文主要记录allan工具包的使用,其他2个包的使用请参考给出的链接文章。
kalibr_allan
https://github.com/rpng/kalibr_allan
https://gitee.com/fsswl/kalibr_allan/
https://www.it610.com/article/1281582656869384192.htm
https://blog.csdn.net/weixin_43247057/article/details/101695977
This has some nice utility scripts and packages that allow for calculation of the noise values for use in both kalibr and IMU filters.
The dataset of the manufacture can find the "white noise" values for the system, but the bias noises need to be found through experimental tests.
The gyroscope_random_walk
and accelerometer_random_walk
values can normally be found on the IMU datasheet as either angular random walk or velocity random walk, respectively.
imu_tk
https://github.com/Kyle-ak/imu_tk
https://blog.csdn.net/learning_tortosie/article/details/89889853?utm_medium=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-1.nonecase&dist_request_id=&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-1.nonecas
The C++ IMU-TK Library (Inertial Measurement Unit ToolKit) provides simple functions and data structures to calibrate MEMS-based inertial navigation units, and to process and display IMU data.
IMU-TK implements a multi-position calibration method that does not require any parameter tuning and simply requires the sensor to be moved by hand and placed in a set of different,
automatically detected, static positions. IMU-TK also provides a collection of functions for data integration.
imu_utils
imu_tk与imu_utils的区别
参考: 用imu_utils和imu_tk标定imu的确定性误差和随机误差
1、imu_utils:标定不确定性误差?
在imu_utils文件下的data文件目录下生成一个imutest_imu_param.yaml的文件,文件中有16个数据,表示陀螺仪和加速度计的高斯白噪声和随机游走误差,到现在随机误差标定结束
2、imu_tk:标定确定性误差?
成功之后会生成两个文件imu_acc.calib和imu_gyro.calib. 其中的参数分别表示加速度计和陀螺仪的非对齐误差、biase、scale。
二、使用kalibr_allan计算imu误差
参考:
以下步骤在 使用kalibr标定imu中都有说到,我就是参考这篇博客完成了以下步骤
我的电脑配置为:ubuntu18.04, ROS melodic
下载:
(1)matlab2018a
(2)kalibr_allan
下载kalibr_allan后,其包含了:
(1)bagconvert ROS包用于将imu原始数据.bag转换成.m matlab文件。
(2)matlab为在matlab中运行的脚本文件
安装:
1、ubuntu中安装matlab
2、安装bagconvert ROS包
直接将bagconvert放到ROS工作空间中用catkin_make编译即可,生成bagconvert节点
ROS操作:生成imu的.m文件
rosrun bagconvert bagconvert /media/chenlu/pegasus_navigation/data/imu_raw_data_rosbag/xsens_raw_imu_static_2h.bag /imu/data
MATLAB操作:计算imu误差(高斯白噪声,随机游走偏置)
1、执行SCRIPT_allan_matparallel.m文件,生成imu误差结果.m文件
2小时的imu数据,计算过程约要20分钟(电脑风扇呼呼的高速转动起来了。。。)
注意!需要修改几个文件路径,包括:allan功能函数的路径,imu bag路径,生成结果保存的路径,如下图
计算结果:
2、绘制allan方差曲线图
我使用的imu为xsens mti-g-710带GPS的(与allan包自带的案例imu同一型号)
执行SCRIPT_process_results.m,将使用上步生成的.m文件来绘制曲线图。
同样需要修改几个路径:
最终绘制的Imu误差曲线图:
加速度计的bias没有被成功计算出来(原因待查?)
与kalibr_allan自带的已标定好的xsens imu结果(下图)对比:
(1)可见,陀螺仪的误差结果比较接近(但结果也稍差),但加速计误差明显比手册上的差很多
(2)或许是由于imu用了一段时间后就会导致与出厂标定结果逐渐偏离,建议定期标定?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)