欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ros --- 录制imu bag包 和 imu标定

程序员文章站 2022-04-18 16:46:41
...

ros --- base notes ( tf ...)

1. ros 录制imu bag包

rosbag 指令

  • rosbag record -a
  • rosbag record /topic1 /topic12
  • rosbag play
  • rosbag play -r 3 <your bagfile name> # 表示以3倍原始速率发布话题
  • rosbag info <your bagfile name>
  • rosbag play -l <bagfile> # -l == --loop 循环播放
 rosbag record /imu
 # 指定名字 
 rosbag record -o imu_test /imu 

2. imu标定

使用此工具: imu_utils
https://github.com/gaowenliang/imu_utils.git
参照readme 安装,先下载 code_utils 安装

https://github.com/gaowenliang/code_utils.git
编译会出现的问题:

  1. sumpixel_test.cpp 文件中的 #include “backward.hpp” 找不到此文件
    改为:#include “code_utils/backward.hpp”

  2. opencv版本问题,我的opencv版本 > 4.0
    CV_LOAD_IMAGE_UNCHANGED CV_LOAD_IMAGE_GRAYSCALE 出现未定义问题,将其分别修改:

CV_LOAD_IMAGE_UNCHANGED  = -1 ( = cv::IMREAD_UNCHANGED),
CV_LOAD_IMAGE_GRAYSCALE 	= 0  ( = cv::IMREAD_GRAYSCALE),
CV_LOAD_IMAGE_COLOR     	= 1  ( = cv::IMREAD_COLOR),
CV_LOAD_IMAGE_ANYDEPTH   = 2  ( = cv::IMREAD_ANYDEPTH),
  1. error: aggregate ‘std::ofstream out_t’ has incomplete type and cannot be defined
    添加 #include <sstream>
    #include <fstream>
mkdir imu_utils
cd imu_utils/
mkdir src
cd src /
git clone https://github.com/gaowenliang/code_utils.git
cd . .
catkin_make
cd src/
git clone https://github.com/gaowenliang/imu_utils.git
cd . .
catkin_make
echo  "source  ~/visual_slam/imu_utils/devel/setup.bash">>~/.bashrc

创建 launch 文件

参数 max_time_min表示标定时长,单位为分钟,当imu数据大于这个时间,标定才结束,程序中默认是10,为10分钟; 本文只做测试,设置为 1 分钟 (时间太短,效果不好)

创建 imu_test.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= "my_test_imu"/>
        <param name="data_save_path" type="string" value= "$(find imu_utils)/data/"/>
        <param name="max_time_min" type="int" value= "1"/>
        <param name="max_cluster" type="int" value= "100"/>
    </node>
</launch>
roslaunch imu_utils imu_test.launch

rosbag play -r 100  2020-08-18-16-57-29.bag  # 不能循环播放 imu bag,程序中有时间判断

输出的 yaml 文件 :
ros --- 录制imu bag包 和 imu标定
取 :
gyr_n: 1.1492916733916777e-03
gyr_w: 1.5149990825893628e-04

acc_n: 4.9409665167450302e-02
acc_w: 1.1666042788323885e-02

相关标签: slam imu 标定