1.安装依赖
sudo apt-get install libdw-dev
2.下载安装code_utils
创建一个catkin_ws空文件再创建src,在src目录下打开终端输入:
git clone https://github.com/gaowenliang/code_utils
cd ..
catkin_make
编译时报错:fatal error: backward.hpp: No such file or directory
2 | #include "backward.hpp"
solution:
在code_utils下面找到sumpixel_test.cpp,修改#include "backward.hpp"为 #include “code_utils/backward.hpp”。
编译时报错:error: ‘CV_LOAD_IMAGE_XXXXX’was not declared in this scope
error: ‘CV_LOAD_IMAGE_UNCHANGED’ was not declared in this scope
error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
solution:将CV_LOAD_IMAGE_修改为cv::IMREAD_。
编译时报错:rror: ‘CV_MINMAX’ was not declared in this scope; did you mean ‘CV_MMX’?
solution:将CV_MINMAX修改为CV_MMX。
3.下载安装imu_utils
cd src
git clone https://github.com/gaowenliang/imu_utils
cd ..
catkin_make
4.录制bag
- 首先运行自己的imu,如果是相机内置imu则启动相机。用rostopic list查看imu的话题(例如:/imu/sensor_msgs/Imu)
- 将imu静置两个小时,录bag:rosbag record -O imu.bag /imu/sensor_msgs/Imu #注:-O表示生成的bag名字不带时间戳
5.标定
1.更改launch文件
进入PATH/src/imu_utils/launch文件内,复制A3.launch,改名为imu_launch,修改其中内容
<launch>
<node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
<param name="imu_topic" type="string" value= "/imu/sensor_msgs/Imu"/>
<param name="imu_name" type="string" value= "imu"/>
<param name="data_save_path" type="string" value= "/home/alex/work/Camera/imu_calibrate_ws/yaml_Data/"/>
<param name="max_time_min" type="int" value= "120"/>
<param name="max_cluster" type="int" value= "100"/>
</node>
</launch>
imu_topic: 表示自己录制的imu话题的名字,其value需要修改成自己的imu话题名
imu_name: 自己的imu名字,可以随便取,最后标定数据的结果也会根据这个保存
data_save_path: 最后结果的存放的目录,在文件下找到相应的yaml即可查看标定的结果
max_time_min: 取数据的时长,一般默认120分钟,程序会在最大时间截断读取数据
2.开始标定
roslaunch imu_utils imu.launch
rosbag play -r 200 imu.bag
标定的结果在data_save_path下,yaml的内容形式如下:
3.与相机联合标定的yaml文件
根据标定出的yaml文件可以编写相机和imu联合标定需要的imu的yaml文件,只需要平均值,不需要每个轴单独的值。
联合标定imu的yaml文件格式如下:
#Accelerometers
accelerometer_noise_density: 1.4329894548292574e-02 #Noise density (continuous-time)
accelerometer_random_walk: 7.7006237707661935e-04 #Bias random walk
#Gyroscopes
gyroscope_noise_density: 1.2969951672102680e-03 #Noise density (continuous-time)
gyroscope_random_walk: 3.8676356188505408e-05 #Bias random walk
rostopic: /imu #the IMU ROS topic
update_rate: 200.0 #Hz (for discretization of the values above)