ROS摄像机的标定(这里很好的一点就是给出了标定结果的各个参数的含义...

ROS摄像机的标定(这⾥很好的⼀点就是给出了标定结果的各个参数的含义,这个很多都没讲)
这⾥很好的⼀点就是给出了标定结果的各个参数的含义,这个很多都没讲
ROS摄像机的标定
2016-04-11 21:06:07 8418
分类专栏:
1.准备⼯作
⾸先,请在下载标定板。教程中使⽤的是8X6,边长为108mm的棋盘标定板。由于标定过程使⽤的是棋盘内部的⾓点进⾏,所以实际上我们使⽤的是9格X7格的棋盘标定板
请确保标定环境拥有⼀个5m×5m的⽆遮挡环境
1.1.编译
运⾏以下指令
$ rosdep install camera_calibration
$ rosmake camera_calibration
1.2.订阅摄像头信息
使⽤
$ rostopic list
来查阅当前发布的topic信息,请确认topic的列表中存在
/camera/camera_info
/camera/image_raw
如果不存在,请检查你的摄像头驱动是否正确安装
TIP:如果当前电脑连接了多个摄像头,或者你使⽤了⾃⼰编写的⼀些摄像头驱动,显⽰的信息可能会有⼀些不同
2.运⾏标定结点
2.1.运⾏结点
输⼊口红管
$ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/camera/image_raw camera:=/camera
来运⾏标定结点的python脚本,其中
–size 8x6 为当前标定板的⼤⼩
–square 0.108为每个棋盘格的边长
根据标定板的不同,可以按照需求更改这两个参数智能商用豆浆机
image:=/camera/image_raw标定当前订阅图像来源⾃名为/camera/image_raw的topic
camera:=/camera为摄像机名
之后,将会出现如下图所⽰的UI
如果没有出现如图所⽰的UI,请使⽤
--no-service-check
来检查服务结点是否⼯作
如果没有看到如图所⽰的彩⾊点,请确认–size参数是否正确,尤其注意是否将size设置为了棋盘格数⽽⾮其标定⾓点的数⽬
2.1.1多个标定板
从Damondback版本开始,ROS就⽀持使⽤多个标定板来进⾏标定了,如果你使⽤多个标定板进⾏标定,请输⼊复数个–size和–square 参数来说明各个标定板的⼤⼩
2.2.移动标定板
为了达到良好的标定效果,你需要在摄像机周围移动标定板,并完成以下基本需求:
移动标定板到画⾯的最左、右,最上、下⽅
移动标定板到视野的最近和最远处
移动标定板使其充满整个画⾯
保持标定板倾斜状态并使其移动到画⾯的最左、右,最上、下⽅
当标定板移动到画⾯的最左、右⽅时,此时,UI的x会达到最⼩或满值
同理,y指⽰标定板的在画⾯的上下位置,size表⽰标定板在视野中的距离
测绘工具每次移动之后,请保持标定板不动直到UI出现⾼亮提⽰
当calibration按钮亮起时,代表你已经有⾜够的数据进⾏摄像头的标定,此时请按下calibration并等待⼀分钟左右
2.3取得标定结果
完成标定之后,你可以使⽤UI的滚动条来改变矫正后图像的尺⼨,0.0表⽰//todo
D =  [-0.33758562758914146, 0.11161239414304096, -0.00021819272592442094, -3.029195446330518e-05]
K =  [430.21554970319971, 0.0, 306.6913434743704, 0.0, 430.53169252696676, 227.22480030078816, 0.0, 0.0, 1.0] R =  [1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0]
P =  [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0]
# oST version 5.0 parameters
[image]
width
640
height
480
[narrow_stereo/left]
camera matrix
430.215550 0.000000 306.691343
0.000000 430.531693 227.224800
0.000000 0.000000 1.000000
distortion
-0.337586 0.111612 -0.000218 -0.000030 0.0000
rectification
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
projection
1.000000 0.000000 0.000000 0.000000
圈套器0.000000 1.000000 0.000000 0.000000
0.000000 0.000000 1.000000 0.000000
3.创建yml参数⽂件
使⽤camera_calibration_parsers来创建⼀个标定参数的yaml⽂件
运⾏
$ rosrun camera_calibration_parsers convert in-file out-file
完成yaml转换
4.标定参数的意义
ROS中的camera_calibration包,其代码实现主要使⽤了OpenCV中的calibration模块
⼀般来说,它包含以下内容
image_width: 2448
image_height: 2050
camera_name: prosilica
camera_matrix:
rows: 3
cols: 3
data: [4827.94, 0, 1223.5, 0, 4835.62, 1024.5, 0, 0, 1] distortion_model: plumb_bob
distortion_coefficients:
rows: 1
cols: 5
data: [-0.41527, 0.31874, -0.00197, 0.00071, 0] rectification_matrix:
rows: 3
cols: 3
data: [1, 0, 0, 0, 1, 0, 0, 0, 1]
projection_matrix:
rows: 3
cols: 4
data: [4827.94, 0, 1223.5, 0, 0, 4835.62, 1024.5, 0, 0, 0, 1, 0]
image_width、image_height代表图⽚的长宽
camera_name为摄像头名
camera_matrix规定了摄像头的内部参数矩阵
510669distortion_model指定了畸变模型十二水磷酸氢二钠
distortion_coefficients指定畸变模型的系数rectification_matrix为矫正矩阵,⼀般为单位阵projection_matrix为外部世界坐标到像平⾯的投影矩阵

本文发布于:2024-09-25 14:31:36,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/295054.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:标定   参数   摄像头
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议