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

2023-05-16

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绘制结果如下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐