机器人技术:ZED 双目相机内参标定方法



登龙web

这是个人第 111 篇原创算法

今天在家总结了下标定 ZED 相机的步骤,方便开学后直接开整。
编程

1、准备工做

  • 一个 8x6 的棋盘标定板,边长 10.8 cm,由于标定用的是内部角点,因此实际打印出是 9x7 大小
  • 保证一个 5m X 5m 的无遮挡环境
  • 一个发布了左右图像到 ROS 中的双目相机
  • 标定板连接:
  • http://wiki.ros.org/camera_calibration/Tutorials/StereoCalibration?action=AttachFile&do=view&target=check-108.pdf

2、编译和安装驱动

# rosdep 用来安装指定包的依赖项
rosdep install camera_calibration

#
 编译 ROS 标定工具
rosmake camera_calibration

3、发布图像主题

确保双目相机图片主题已经发布到 ROS 中,使用下面的命令查看:微信

rostopic list

查看是否有 ZED 的 left 和 right 的 image_raw 主题:app

/my_stereo/left/camera_info
/my_stereo/left/image_raw
/my_stereo/right/camera_info
/my_stereo/right/image_raw
/my_stereo_both/parameter_descriptions
/my_stereo_both/parameter_updates
/my_stereo_l/parameter_descriptions
/my_stereo_l/parameter_updates
/my_stereo_r/parameter_descriptions

4、启动 ROS 标定工具

键入启动指令运行 Python 标定脚本,添加标定板和图像主题参数:编辑器

rosrun camera_calibration cameracalibrator.py --approximate 0.1 --size 8x6 --square 0.108 right:=/my_stereo/right/image_raw left:=/my_stereo/left/image_raw right_camera:=/my_stereo/right left_camera:=/my_stereo/left

参数解释以下:工具

  • --approximate:摄像机校准器能够处理时间戳不彻底相同的图像,当前设置为 0.1 秒,意思是只要时间戳差小于 0.1 秒,标定程序就能够正常运行。
  • --size:标定板内角点大小 8x6
  • --square:标定板边长 0.108,单位 m
  • right:右相机图像主题
  • left:左相机图像主题
  • right_camera:右相机
  • left_camera:左相机

启动界面以下,把棋盘格放到相机视野中,标定过程当中 X,Y,Size 会不断变化:flex

5、开始标定

5.1 水平拿着标定板

确保手拿着标定板长的这一边,不要拿反了:url

5.2 移动标定板

为了获得好的标定结果,须要在相机视野里面移动标定板,标定板位置以下:spa

  • X 轴标定:移动到视野的最左边,最右边
  • Y 轴标定:移动到视野的最上方,最底部
  • 倾斜标定:改变标定板的角度,斜着拿
  • Size 标定:移动标定板充满整个相机视野
  • X,Y 和 Size 一块儿标定:保持标定板倾斜启动到视野的最左,最右,最上,最下

一些标定画面以下:

5.3 标定结果

当你移动标定板使得标定程序有了足够的数据计算标定矩阵时,程序中的标定按钮「CALIBRATE」就会变亮,而后点击便可生成标定结果:

侧边栏会出现标定精度和尺寸:

  • epi 为标定精度,当前为 0.16 像素
  • dim 为标定尺寸,当前为 0.108 米

在终端会生成左右图像的标定矩阵,这里截取左右相机的内参矩阵 K 和畸变矩阵 distortion:

Left:
K =  [425.19601412158482, 0.0, 308.29689772295882, 0.0, 426.02702697756899, 223.53789948448997, 0.0, 0.0, 1.0]

Right:
K =  [425.18741896821433, 0.0, 323.8787136811938, 0.0, 426.46867413824884, 226.19589833365407, 0.0, 0.0, 1.0]

[narrow_stereo/left]
distortion
-0.314202 0.091935 0.001295 -0.001620 0.0000

[narrow_stereo/right]
distortion
-0.305505 0.082701 0.001967 -0.001641 0.0000

而后点击侧边栏的「SAVE」按钮保存标定结果到 /tmp/calibrationdata.tar.gz,至此双目相机内参标定完成!



厦大研一工科男,与你分享编程,AI 算法等技术干货!精品文章创做不易,谢谢关注,欢迎在看。


点击阅读原文,查看更多优质文章!

本文分享自微信公众号 - 登龙(DLonngv)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索