Kalibr标定Intel D435i相机
系统环境:ubuntu16.04+roskinetic
需要的基础知识基础:ROS基本知识(如何使当前终端生效,roslaunch文件的编写)
源码安装:kalibr https://github.com/ethz-asl/kalibr.git
Realsense SDK: https://github.com/IntelRealSense/librealsense.git
realsense-ROS: https://github.com/IntelRealSense/realsense-ros.git
1、相机标定
(1)realsense d435i可以直接读取相机的内参
roslaunch realsense2_camera rs_camera.launch //打开相机节点
rostopic echo /camera/color/camera_info //查看相机内参
可以根据官网提供的相机内参验证自己的标定结果。
具体标定流程:
a、准备标定板和标定板的参数文件(以棋盘格标定为例)
具体可参考https://github.com/ethz-asl/kalibr/wiki/downloads
下载Checkerboard 7×6 0.5×0.5m(unscaled)的pdf以及yaml文件。
b、录制camera标定数据:rosbag
为了查看录制照片的好坏,可以通过ROS中的Rviz界面查看具体命令如下:分别在两个终端实现。
roslaunch realsense2_camera rs_camera.launch//打开相机节点
rviz,选camera_link,add topic->camera->color->image_raw//打开可视化窗口
将图像频率降低为4HZ,这里可以用throttle方法,不会出错,并发布新的topic,不会修改原topic:
rosrun topic_tools throttle messages /camera/color/image_raw 4.0 /color
开始录制rosbag包,最好新建一个文件夹,然后在当前终端输入以下命令:
mkdir bagfiles
cd bagfiles
rosbag record -O camd435i /color
其中-O表示设置的bag包名字,/color为录制的话题的名称。
ctrl+c结束录制,bag文件会自动保存到录制时所在的目录。
c、标定相机
注意:在使用之前对kalibr_workspace source一下,就是之前我提到的需要的基础知识。
单个相机标定(测试成功)
kalibr_calibrate_cameras --target /home/sunshine/d435ibagfiles/checkerboard_7x6_50x50cm.yaml --bag /home/sunshine/d435ibagfiles/camd435i.bag --bag-from-to 26 100 --models pinhole-radtan --topics /color --show-extraction
具体参数解释:
--target //棋盘格yaml参数文件路径
--bag //录制rosbag包路径
--models //相机模型
--topics //话题名称
多个相机联合标定(没有测试)
kalibr_calibrate_cameras --target src/kalibr/checkerboard.yaml --bag src/kalibr/bag/fisheye_2019-07-15-21-52-12.bag --models pinhole-radtan pinhole-radtan --topics /image_raw1_th /image_raw2_th
可能遇到的问题,在启动这个命令的时候可能遇到缺少一些库ÿ