使用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。

使用imu_utils工具生成IMU的Allan方差标定曲线_第1张图片

5.生成imu数据包

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

source devel/setup.bash
rosrun vio_data_simulation vio_data_simulation_node

 

使用imu_utils工具生成IMU的Allan方差标定曲线_第2张图片

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

使用imu_utils工具生成IMU的Allan方差标定曲线_第3张图片

6.将launch文件复制写一个

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


    
        
        
        
        
        
    

使用imu_utils工具生成IMU的Allan方差标定曲线_第4张图片

7.回放数据和运行

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

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

使用imu_utils工具生成IMU的Allan方差标定曲线_第5张图片

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

rosbag play -r 200 imu_test.bag

使用imu_utils工具生成IMU的Allan方差标定曲线_第6张图片

等待结果,如下图

使用imu_utils工具生成IMU的Allan方差标定曲线_第7张图片

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

使用imu_utils工具生成IMU的Allan方差标定曲线_第8张图片

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

使用imu_utils工具生成IMU的Allan方差标定曲线_第9张图片

修改测试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绘制结果如下

使用imu_utils工具生成IMU的Allan方差标定曲线_第10张图片

你可能感兴趣的:(VIO)