博主信息
哈
博文
291
粉丝
0
评论
0
访问量
218475
积分:0
P豆:618

kalibr标定realsenseD435i --多相机标定

2022年07月26日 15:05:54阅读数:350博客 /

镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

kalibr标定板(棋盘格)用师兄的(长这样)

file

步骤一:建立的ROS中的Kalibr的工作空间,建立一个名为:checkerboard.yaml的文件,内容为:

  1. target_type: 'checkerboard'
  2. targetCols: 11 //内角的个数
  3. targetRows: 8
  4. colSpacingMeters: 0.02
  5. rowSpacingMeters: 0.02

步骤二:启动关闭结构光

默认开始结构光时,双目图像会有很多点,这些点可能对标定有影响,所以使用时需要关闭结构光。

先在终端启动

  1. roslaunch realsense2_camera rs_camera.launch

新打开终端,运行

  1. rosrun rqt_reconfigure rqt_reconfigure

打开后将camera->stereo_module中的emitter_enabled设置为off(0)

步骤三:确定realsense D435i放在合适位置

新打开终端,运行rviz

  1. rviz

在rviz中将Global Option中的Fixed Frame后面选择camera_link

点击Add在topic中分别选择

/camera/color/image_raw、/camera/infra1/image_rect_raw、/camera/infra2/image_rect_raw,打开(双击camera)即添加成功。

之后对准标定板,尝试移动realsense D435i,同时要确保标定板一直在三个图像当中,如下图

file

步骤四:修改相机帧数(官方推荐是4Hz,尽管实际频率不完全准确,但是不影响结果)

kalibr在处理标定数据的时候要求频率不能太高,一般为4Hz,我们可以使用如下命令来更改topic的频率,实际上是将原来的topic以新的频率转成新的topic,实际测试infra1才是对应左目相机。

使用Ctrl+shift+T,打开新的终端,一个终端运行一个,分别运行

  1. rosrun topic_tools throttle messages /camera/color/image_raw 4.0 /color
  2. rosrun topic_tools throttle messages /camera/infra1/image_rect_raw 4.0 /infra_left
  3. rosrun topic_tools throttle messages /camera/infra2/image_rect_raw 4.0 /infra_right

步骤五:录制ROS数据包

使用Ctrl+shift+T,打开另一个新的终端运行:

  1. rosbag record -O multicameras_calibration /infra_left /infra_right /color

后面三个topic就是转换频率后的topic,我录制了3分钟,录的时候对着标定板移动,按下ctrl+c 结束录制,看到当前文件夹会出现multicameras_calibration.bag文件。

步骤六:使用Kalibr标定

先激活环境变量

  1. source ~/kalibr_workspace/devel/setup.bash

然后运行:

  1. kalibr_calibrate_cameras --target checkerboard.yaml --bag multicameras_calibration.bag --models pinhole-equi pinhole-equi pinhole-equi --topics /infra_left /infra_right /color --bag-from-to 10 100 --show-extraction --approx-sync 0.04

最后

最终得到的结果为三个文件:

camchain-multicameras_calibration.yaml

report-cam-multicameras_calibration.pdf

results-cam-multicameras_calibration.txt

file

注:可能会遇到的问题

1、kalibr_calibrate_cameras:未找到命令

file

解决方法:

重新进行编译:

  1. ~/kalibr_workspace$ catkin build -DCMAKE_BUILD_TYPE=Release -j8

再:

  1. source ~/kalibr_workspace/devel/setup.bash

2、

File”/home/lab/kalibr_workspace/src/kalibr/aslam_offline_calibration/kalibr/python/kalibr_common/ConfigReader.py”, line 234, in raiseError

  1. raise RuntimeError( "{0}{1}".format(header, message) )

RuntimeError: [CalibrationTargetConfig Reader]: Could not read configuration from ../checkerboard.yaml

file

解决方法:修改checkerboard.yaml文件为上面的内容(步骤一)。

原文链接:https://blog.csdn.net/weixin_45868890/article/details/123197364

版权申明:本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!

全部评论

文明上网理性发言,请遵守新闻评论服务协议

条评论