利用imu_utils标定imu参数
程序员文章站
2022-04-18 12:47:39
...
一.安装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 #在其中添加
<launch>
<node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
<param name="imu_topic" type="string" value= "/imu"/>
<param name="imu_name" type="string" value= "imutest"/>
<param name="data_save_path" type="string" value= "$(find
imu_utils)/data/"/>
<param name="max_time_min" type="int" value= "120"/>
<param name="max_cluster" type="int" value= "100"/>
</node>
</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方差图了。
上一篇: ***BAT机器学习面试1000题系列
下一篇: javascript运行时中的堆栈和队列
推荐阅读