视觉SLAM | RealsenseD435i相机标定

在运行VINS-MONO、VINS-Fusion等SLAM方案的时候,需要很准确的相机参数,否则很容易漂移。本文是RealsenseD435i相机标定过程的记录,标定主要有三个步骤

  • IMU标定
  • 相机标定
  • IMU与相机联合标定

IMU标定

这里使用imu_utils标定imu,在安装imu_utils之前,要先安装ceres-solver和code_utils,ceres-solver安装见Installation – Ceres Solver,下面是code_utils的安装过程,注意要安装code_utils后再下载imu_utils

cd ~/catkin_ws/src
git clone https://github.com/gaowenliang/code_utils
cd ~/catkin_ws
catkin_make

编译时可能出现以下错误:

  • error 1
fatal error: backward.hpp:No such file or directory

解决方法:将sumpixel_test.cpp中的#include "backward.hpp"修改为#include “code_utils/backward.hpp"即可

  • error 2
code_utils/backward.hpp:216:30: fatal error: elfutils/libdw.h: No such file or directory

执行apt-get install libdw-dev 安装对应的库即可解决

接下来安装imu_utils

cd ~/catkin_ws/src
git clone https://github.com/gaowenliang/imu_utils
cd ~/catkin_ws
catkin_make

安装完成后开始标定,我没有采用录制imu话题再回放bag文件的方式,而是直接现场发布imu的话题,同时运行标定的节点。执行下面的命令可以发布带有imu的话题

roslaunch realsense2_camera rs_camera.launch unite_imu_method:="linear_interpolation"

编写一个标定的launch文件,命名为my_calibration_imu_d435i.launch,执行该launch文件,将RealsenseD435i静止摆放两个小时

<launch>
	<node pkg="imu_utils" type="imu_an" name="imu_an" output="screen">
        <param name="imu_topic" type="string" value= "/camera/imu"/>    #imu topic的名字
        <param name="imu_name" type="string" value= "d435i"/>   
        <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>

完成后就会生成d435i_imu_param.yaml文件

相机标定

相机的参数分为内参和外参,内参可以通过读取/camera/color/camera_info话题获得,但是外参就需要借助别的工具,这里我使用kalibr来获取相机的外参。

安装Kalibr

首先安装依赖项

sudo apt-get 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值