git clone https://github.com/ceres-solver/ceres-solver
cd ceres
mkdir build
cd build
cmake ..
make
sudo make install
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_utils和imu_utils有先后顺序,不能放在一起编译.
cd ~/catkin_ws/src
git clone https://github.com/gaowenliang/imu_utils.git
cd ~/catkin_ws
catkin_make
修改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。
先打开终端启动roscore,再开个终端运行下面命令,运行这个节点就生成了一个bag,这个bag就是模拟的IMU采集数据。
source devel/setup.bash
rosrun vio_data_simulation vio_data_simulation_node
如下图所示生成了imu_test.bag数据包
在catkin_ws/src/imu_utils/launch目录下,我这里复制修改成test.launch,打开test.launch,主要修改imu_topic(和代码中要一致),imu_name(随便取个名)
在~/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绘制结果如下