IMU使用系列------imu_util标定imu的方法及wait for imu data 的bug解决

该篇参考港科大的github: https://github.com/gaowenliang/imu_utils
https://blog.csdn.net/fang794735225/article/details/92804030

  1. 安装依赖项
sudo apt-get install libdw-dev
  1. 下载imu_utils和code_utils
    imu_utils下载地址为:https://github.com/gaowenliang/imu_utils

code_utils下载地址为: https://github.com/gaowenliang/code_utils

也有整合成一个仓库的:https://gitcode.net/mirrors/gaowenliang/imu_utils?utm_source=csdn_github_accelerator

在编译之前我们先注意三个问题,避免入坑

(1)全局安装ceres库,code_imu依赖ceres。

(2)不要同时把imu_utils和code_utils一起放到src下进行编译。

由于imu_utils 依赖 code_utils,所以先把code_utils放在工作空间的src下面,进行编译。然后再将imu_utils放到src下面,再编译。

否则会报如下错误:

Could not find a package configuration file provided by "code_utils" with

any of the following names:

code_utilsConfig.cmake

code_utils-config.cmake

Add the installation prefix of "code_utils" to CMAKE_PREFIX_PATH or set

"code_utils_DIR" to a directory containing one of the above files.  If "code_utils" provides a separate development package

 or SDK, be sure it has been installed.

(3)编译报错:

code_utils-master/src/sumpixel_test.cpp:2:24: fatal error: backward.hpp:No such file or directory

填坑: 在code_utils下面找到sumpixel_test.cpp,修改#include "backward.hpp"为 #include “code_utils/backward.hpp”,再编译。

  1. 编译
    把code_utils放在工作空间的src下面,然后编译。
cd catkin_ws
catkin_make

编译成功以后,再把imu_utils放到工作空间的src下面,进行编译。

cd catkin_ws
catkin_make

4.录制imu.bag
让IMU静止不动两个小时,录制IMU的bag.

cd MYNT-EYE-D-SDK
source wrappers/ros/devel/setup.bash
roslaunch mynteye_wrapper_d display.launch
rosbag record /mynteye/imu/data_raw -O imu.bag

两个小时以后按Ctrl+C完成录制。

  1. 标定IMU
rosbag play -r 200 imu_utils/imu.bag (这里要写你录制的包的路径)
cd imu_ws
source ./devel/setup.bash
roslaunch imu_utils mynt_imu.launch 

注意这里的launch文件,我用的是小觅相机,所以imu.launch的内容为:

<launch>
    <node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
        <param name="imu_topic" type="string" value= "/mynteye/imu/data_raw"/>    #imu topic的名字
        <param name="imu_name" type="string" value= "mynteye"/>   
        <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>

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

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

sudo /usr/local/MATLAB/R2016b/bin/matlab #需要用sudo,不然一直卡在启动界面
打开draw_allan.m,并对里面的文件路径进行修改,便可画出Allan方差图了。

错误解决方案:

wait for imu data.
  1. 首先检查launch文件中的imu_topic是否与bag包中的topic一致。两种方法查看bag包中的topic name:
    1.1 rosbag play XXXX.bag; 然后另开一个终端 rostopic list,检查输出的topic name;
    1.2 rosbag info XXXX.bag; 会直接给出bag包里的信息,包括包的时长等信息;
  2. 根据时长信息修改launch文件里的max_time_min参数值
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值