ubuntu18.04编译code_utils与imu_utils并标定imu内参
imu_utils由港科大推出,用于标定imu内参
1安装ceres,已安装忽略此步
GitHub - ceres-solver/ceres-solver: A large scale non-linear optimization library
2 创建ros工作空间
mkdir -p ~/imu_catkin_ws/src
cd ~/imu_catkin_ws/src
catkin_init_workspace
cd ~/imu_catkin_ws
catkin_make
source ~/imu_catkin_ws/devel/setup.bash
3 下载code_utils并编译
cd ~/imu_catkin_ws/
git clone https://github.com/gaowenliang/code_utils.git
cd ~/imu_catkin_ws/
catkin_make
4下载并编译imu_utils
cd ~/catkin_ws/src
git clone https://github.com/gaowenliang/imu_utils.git
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash
注意:先编译code_utils,再编译imu_utils,不能放在一起编译
5 写标定参数文件
linux中touch命令有两个功能
cd ~/imu_catkin_ws/src/imu_utils/launch
touch d435i_imu_calibration.launch
gedit d435i_imu_calibration.launch
文件内容如下
需要注意的是max_time_min代表的是标定时间,这里的单位是分钟,意思是填10就是代表10分钟,至少录十分钟
6 录制IMU数据包
插上相机
roscore
roslaunch realsense2_camera rs_camera.launch
让相机静止,不要动它
cd ~/imu_catkin_ws //等下录制到这个文件夹上
rosbag record -O imu_calibration /camera/imu
至少录制你刚刚设定的时间以上(max_time_min)
比如上面设定10,这里就要录足十分钟
录制完之后就按下ctrl+c,结束录制
你会发现当前目录有一个名为 imu_calibration.bag的文件
7 使用imu标定工具进行标定
source ~/imu_catkin_ws/devel/setup.sh
rosbag imu_utils d435i_imu_calibration.launch
source ~/imu_catkin_ws/devel/setup.sh
cd ~/imu_catkin_ws //数据包在这个文件夹下
rosbag play -r 200 imu_calibration.bag // -r 设置以多少倍的速率回放
标定完之后,看1)的terminal,会有一串东西产生,而且该terminal已经可以输入命令了(意味着标定进程已经结束),说明已经标定好了,这时候要看结果
cd ~/imu_catkin_ws/src/imu_utils/data
里面有一个文件:
d435i_imu_calibration_imu_param.yaml就是你想要的IMU标定结果啦
我们用的只有陀螺仪和加速度计 随机游走和 高斯白噪声的平均值(IMU噪声模型中的两种噪声)
参考:
Realsense D435i RGB+IMU标定_追-CSDN博客