利用imu_utils标定imu参数

一.安装imu_utils

1.因为之前的装好了ros和一些其他依赖,除了依赖code_utils,所以先在ros的工作空间下安装code_utils。

mkdir -p ROS_WORKSPACE/vio_imudata/src #创建一个ros工作空间
git clone https://github.com/gaowenliang/code_utils 
cd ..
catkin_make #编译这个空间

但是在编译的时候遇到了一个问题,说找不到backward.hpp这个头文件,有三种方法可以进行修复:

方法1:
把src/code_utils/CMakeList.txt中,添加路径:include_directories("include/code_utils")
方法2:
把src/code_utils/src/sumpixel_test.cpp中的#include "backward.hpp"改为#include "code_utils/backward.hpp"
方法3:
把src/code_utils/include/backward.hpp文件扔到src/code_utils/src中

2. 安装imu_utils

cd ROS_WORKSPACE/vio_imudata/src
git clone https://github.com/gaowenliang/imu_utils
cd ..
catkin_make #编译imu_utils

二.imu仿真数据的产生

按照上一篇博客的步骤,编译好贺博的代码,并进行仿真数据的产生,为了方便管理文件,我又重新编译了一遍,把它也放在了ROS_WORKSPACE/vio_imudata/src空间下。有两种方法可以用来运行此代码:

方法1:
cd ROS_WORKSPACE/vio_imudata/devel/lib/vio_data_simulation #进入目标文件夹
./vio_data_simulation_node #产生的数据在用户根目录下
当然也可以修改vio_data_simulation/src/gener_alldata.cpp中bag.open("./imu.bag", rosbag::bagmode::Write);的路径来更换存储路径
方法2(利用ros):
roscore #打开ros的master
打开另外一个终端
cd ~/ROS_WORKSPACE/vio_imudata/devel/lib/vio_data_simulation
rosrun vio_data_simulation vio_data_simulation_node

三.进行标定

需要先对imu_utils中添加imu.luanch文件,并且进行重新编译:

cd ~/ROS_WORKSPACE/vio_imudata/src/imu_utils/launch/ #进行该路径
touch imu.launch #新建该文件
vim imu.launch #在其中添加









重新编译:

cd ~/ROS_WORKSPACE/vio_imudata
catkin_make
source ./devel/setup.bash

四.Allan方差的生成

利用rosbag来回放imu.bag中的imu数据,然后利用roslaunch来进行抓取标定

rosbag play -r 200 ~/imu.bag
打开另外一个终端
source ~/ROS_WORKSPACE/vio_imudata/devel/setup.bash 
roslaunch imu_utils imu.launch

运行完之后,会在imu_utils/data文件夹下生产多个txt文件。

利用MATLAB和这几个txt文件便可以画出了Allan方差图

sudo /usr/local/MATLAB/R2016b/bin/matlab #需要用sudo,不然一直卡在启动界面

打开draw_allan.m,并对里面的文件路径进行修改,便可画出Allan方差图了。

                                     利用imu_utils标定imu参数_第1张图片

你可能感兴趣的:(SLAM)