使用kalibr标定imu

这种方法需要在ubuntu中安装matlab,本人只标定的imu,没有和摄像头联合标定,方法和imu_utils类似,先用ros记录imu数据,在通过kalibr来计算随机游走误差和高斯白噪声误差。
1.首先记录imu的数据,在ros中打开imu,用一下命令记录。

rosbag record topic名字 -o imu.bag

我这里记录imu数据的时间也是在两个小时以上,(其实就是在用 imu_utils标定的时候记录的bag)
2.对了要安装matlab,我安装了一次2017版的,在执行bagconvert的时候出现了段错误。换成了2018版本就没有了。
matlab安装教程
matlab2018下载链接
3.安装kalibr_allan,
kalibr_allan下载地址
安装的时候,在/kalibr_allan-master/bagconvert/cmake目录下找到FindMatlab.cmake文件,更改matlab的地址。

find_program(MATLAB_EXE_PATH matlab
    PATHS /usr/local/MATLAB/R2018a/bin)

把 /usr/local/MATLAB/R2018a/bin更换成自己matlab的地址(一般默认安装地址是这个)
4.生成mat文件

rosrun bagconvert bagconvert bag名字 topic名字

成功的话会生成一个mat文件,和bag在同一个目录。
5.计算
在kalibr_allan-master/matlab目录下,先在matlab中执行SCRIPT_allan_matparallel.m这个文件,这个文件需要第4步生成的mat文件,要对SCRIPT_allan_matparallel.m文件的mat路径做一下修改。执行之后会生成一个新的mat。用SCRIPT_process_results.m文件去操作这个新生成的mat文件,当然也要修改一下mat的路径。这样就能计算出误差了,同时会画出Allan曲线。

你可能感兴趣的:(imu标定)