使用imu_utils工具生成IMU的Allan方差标定曲线

1.首先,安装ceres依赖项,然后下载编译安装ceres

git clone https://github.com/ceres-solver/ceres-solver
cd ceres
mkdir build
cd build
cmake ..
make
sudo make install

2.下载code_utils并编译

cd ~/catkin_ws/src
git clone https://github.com/gaowenliang/code_utils
cd ~/catkin_ws
catkin_make

这里会报错:fatal error: backward.hpp: 没有那个文件或目录

修改办法: 在code_utils的CMakeLists.txt中加入包含路径:

include_directories( "include/code_utils")

然后继续进行: catkin_make

注意:code_utilsimu_utils有先后顺序,不能放在一起编译.

3.下载imu_utils并编译

cd ~/catkin_ws/src
git clone https://github.com/gaowenliang/imu_utils.git
cd ~/catkin_ws
catkin_make

4.将贺博给的vio_data_simulation-ros_version放在~/catkin_ws/src中

修改main函数中数据的路径:

bag.open("/home/ubuntu/catkin_ws/src/imu_test.bag", rosbag::bagmode::Write);

这里或者是其他的路径,反正可以读写就可以了,下面进行编译vio_data_simulation

cd ~/catkin_ws
catkin_make

编译完后,生成一个节点vio_data_simulation_node。

5.生成imu数据包

先打开终端启动roscore,再开个终端运行下面命令,运行这个节点就生成了一个bag,这个bag就是模拟的IMU采集数据。

source devel/setup.bash
rosrun vio_data_simulation vio_data_simulation_node

 

如下图所示生成了imu_test.bag数据包

6.将launch文件复制写一个

在catkin_ws/src/imu_utils/launch目录下,我这里复制修改成test.launch,打开test.launch,主要修改imu_topic(和代码中要一致),imu_name(随便取个名)

<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= "mytest"/>
        <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>

7.回放数据和运行

在~/catkin_ws目录下,先source  devel/setup.bash

在~/catkin_ws/src目录下,roslaunch imu_utils test.launch

再执行命令,在~/catkin_ws/src目录下

rosbag play -r 200 imu_test.bag

等待结果,如下图

然后生成的数据在imu_utils/data/下.

接下来,去画出来这些方差图,在scripts下有很多matlab的脚本文件.

修改测试IMU仿真参数如下

(/home/ubuntu/catkin_ws/src/vio_data_simulation-ros_version/src/param.h)

// noise

double gyro_bias_sigma = 0.00001;  // 零偏稳定性,运行中缓慢变化

double acc_bias_sigma = 0.0001;     // 零偏稳定性,运行中缓慢变化

double gyro_noise_sigma = 0.025;    // rad/s  测量噪声

double acc_noise_sigma = 0.029;      // m/(s^2)  测量噪声

matlab绘制结果如下

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值