摄像头驱动安装
编写摄像头启动usb-camlaunch文件
usb_cam功能包中的参数
usb_cam功能包中的话题
消息中各个域的含义如下:
启动摄像头
如果使用的是带内置USB摄像头的笔记本,此时摄像头应当已经启动了:
查看摄像头图像
内参属于摄像头自身参数,外参是指和机械臂之间的位置关系。标定内参是为了消除图像的畸变,再做后面的识别。ROS提供了标定功能包,直接命令行安装:
安装后启动摄像头和标定功能程序:
将标定板摆放不同的位置和角度,直到 CALIBRATE 变为绿色,点击,即可完成摄像头内参标定。
点击SAVE,程序将标定文件写入磁盘保存。
解压后会得到一系列标定过程中获得的和一个yaml标定文件,这个标定文件即包含了摄像头的内参,可直接在usb_cam功能包中使用。
得到标定文件后,在开头的usb_camlauch文件中加入tag:
再次启动摄像头后获得的图像即为标定后的图像了。如果启动过程中有警告:does not match name narrow_stereo in file,可尝试将yaml文件中的camera_name修改为 head_camera 后再重新启动。
在ROS中使用OpenCV,可以通过CvBridge功能包来实现ROS图像消息和OpenCV图像数据结构间的转换:
在ROS中进行OpenCV物体识别开发一般经过如下的流程:
启动后将看到标注人脸(如果有)的视频流,终端会打印检测到人脸的数目:
相机标定中所要确定的几何模型参数分为内参和外参两种类型。
求解参数(内参、外参、畸变参数)的过程就称之为相机标定(或摄像机标定)。
机器视觉应用中常用的有两种不同类型的镜头:普通镜头和远心镜头。将摄像机与普通镜头的组合称为针孔摄像机模型(默认为面阵图像传感器),摄像机与远心镜头的组合为远心摄像机模型。
相机内参的作用是确定相机从三维空间到二维图像的投影关系。
对于针孔摄像机模型,该投影是透视投影:
相机内参共有6个参数(f,κ,Sx,Sy,Cx,Cy),其中:
f为焦距;
k为径向畸变量级(k<0为桶形畸变;k>0为枕形畸变);
Sx,Sy为缩放比例因子(对于针孔摄像机表示图像传感器水平和垂直方向相邻像素之间的距离);
Cx,Cy是图像的主点(对于针孔相机表示投影中心在成像平面上的垂直投影,也是径向畸变中心)。
相机外参也称为摄像机位姿的作用是确定相机坐标与世界坐标系之间相对位置关系。
摄像机外参共有6个参数(α,β,γ,Tx,Ty,Tz),其中:
R =R(α,β,γ)是旋转矩阵,分别为绕绕x,y,z轴旋转角度;
T= (Tx,Ty,Tz)是平移向量
从世界坐标系到摄像机坐标系的变换属于刚性变换(由平移和旋转组成),相机坐标Pc与世界坐标Pw的关系可以表述为:Pc= RPw + T
畸变(distortion)是对直线投影(rectilinear projection)的一种偏移。直线投影是场景内的一条直线投影到上也保持为一条直线。畸变就是由于某种原因(如镜头)一条直线投影到上不能保持为一条直线了,这是一种光学畸变(optical aberration)。
在视觉测量中,首先需要定义三个坐标系,即 世界坐标系、摄像机坐标系 、 图像坐标系。
目标物体位置的参考系,用来描述三维空间中的物体和相机之间的坐标位置。
以相机的光心作为原点,Zc轴与光轴重合,并垂直于成像平面,且取摄影方向为正方向,Xc、Yc轴与图像物理坐标系的u、v轴平行。世界坐标系下的物体需先经历刚体变化转到摄像机坐标系(旋转和平移),然后再和图像坐标系发生关系。
是以图像的左上角为原点的图像坐标系(u,v),以像素为单位。用于指定物体在照片中的位置
张正友相机标定流程
1 打印棋盘标定纸,附加到一个平坦的表面上;
2 通过移动相机或者平面拍摄标定板各种角度的,一般拍摄20张;
3 检测中的特征点;
4 计算5个内部参数和所有的外部参数;
5 通过最小二乘法先行求解径向畸变系数;
6 通过求最小参数值,优化所有参数;
张正友的平面标定方法是介于传统标定方法和自标定方法之间的一种方法,它既避免了传统方法设备要求高, *** 作繁琐等缺点,又较自标定方法精度高,符合通用的桌面视觉系统(DVS)的标定要求。该方法的缺点是确定模板上点阵的物理坐标以及图像和模板之间的点的匹配,专业性要求比较高。
以上就是关于ROS机械臂开发:机器视觉应用全部的内容,包括:ROS机械臂开发:机器视觉应用、机器视觉-相机标定、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)