视觉传感器能直观反映物体的外部信息,但单个摄像头只能获得物体的二维图像,立体视觉虽能提供三维信息,但对于外形相同,仅深度有差别的物体难以识别(如有孔物体、阶梯状物等) ,且对环境光线有一定的要求. 由于超声传感器具有对光线、物体材料等不敏感,结构简单,能直接获取待测点至传感器的距离等特点,因此本文采用视觉与超声测量相结合的方法,将二维图像信息与超声波传感器获取的深度信息进行融合推断,对待装配工件进行自动识别与空间定位,并确定机械手末端执行器的空间位置与姿态,使其能在合适的部位准确抓取工件.
1 系统原理与结构
系统由机械手、CCD 视觉传感器和超声波传感器及相应的信号处理单元等构成. CCD 安装在机械手末端执行器上,构成手眼视觉,超声波传感器的接收和发送探头也固定在机器人末端执行器上,由CCD 获取待识别和抓取物体的二维图像,并引导超声波传感器获取深度信息. 系统结构如图1 所示.
图像处理主要完成对物体外形的准确描述,包括以下几个步骤:a. 图像边缘提取;b. 周线跟踪;c. 特征点提取; d. 曲线分割及分段匹配;e. 图形描述与识别.在提取物体图像边缘后, 采用周线跟踪进行边缘细化,去除伪边缘点及噪声点,并对组成封闭曲线的边缘点进Freeman 编码,记录每一条链码方向和曲线上各点的X-Y 坐标值,便于进一步对物体的几何特性进行分析. 本研究对传统的周线跟踪算法中边缘点的搜索方向与顺序进行了改进,并在搜索过程中采取了及时消除冗余点的方法,减小了数据量与运算时间,而且具有较好的降噪及平滑效果. 在提取图像特征点时,将多边形近似法与计算曲率的方法相结合, 可克服多边形近似法易产生伪特征点和计算曲率法计算量过大的缺点.CCD 获取的物体图像经处理后,可提取对象的某些特征,如物体的形心坐标、面积、曲率、边缘、角点及短轴方向等. 根据这些特征信息,可得到对物体形状的基本描述,在图像处理的基础上,由视觉信息引导超声波传感器对待测点的深度进行测量,获取物体的深度(高度) 信息,或沿工件的待测面移动,超声波传感器不断采集距离信息,扫描得到距离曲线,根据距离曲线分析出工件的边缘或外形[1 ] . 计算机将视觉信息和深度信息融合推断后,进行图像匹配、识别,并控制机械手以合适的位姿准确地抓取物体.
2. 1 工件图像边缘的提取
复杂工件反映在图像上常常不止一个灰度等级,仅利用一个灰度阈值无法提取有意义的边缘.
若采用多阈值的方法,必然会增加计算时间和图像处理的复杂程度. 对于类别方差自动门限法,增加门限值不仅会提高数据处理复杂程度,而且当阈值多于2 个时,算法的可靠性就会受到影响. 为此采用了直接从灰度图像提取边缘的方法.图像边缘一般发生在灰度函数值不连续处,可用灰度函数的一阶或二阶导数求得. 经典的利用一阶导数提取边缘的方法有Robert s 算子、So2bel 算子等, 利用二阶导数提取边缘的方法有Laplacian 算子和Marrs2Hilderth 算子等. 通过对几种算法的分析比较,认为Sobel 算子不仅实现容易、运算速度快,而且可提供最精确的边缘方向估计.Sobel 算子由两个3 ×3 相差90°的算子构成,由这两个算子同图像卷积, 可得到图像的边缘及其方向. 对于数字图像{ f ( i , j ) } , Sobel 算子可表示为:
Gx ( i , j) = f ( i - 1 , j - 1) +2 f ( i - 1 , j) + f ( i - 1 , j + 1) - f ( i + 1 ,j - 1) - 2 f ( i + 1 , j) - f ( i + 1 , j + 1) ;
Gy ( i , j) = f ( i - 1 , j - 1) +2 f ( i , j - 1) + f ( i + 1 , j - 1) - f ( i - 1 ,j + 1) - 2 f ( i , j + 1) - f ( i + 1 , j + 1) .
采用G1 = | Gx | + | Gy| 得到梯度幅值后,为减少所抽取的边缘数目,可设置一个幅度门限,即只考虑对应灰度变化较大的那些边缘. 再利用边缘点具有局部幅度最大的特点,将边缘细化.利用Sobel 算子提取边缘后, 为了得到工件表面的尺寸信息, 还必须提取图像的角点[2 ] , 以便计算工件的边长等特征信息.