中航工业北京航空制造工程研究所数字化制造技术航空科技重点实验室 姚艳彬
北京航空航天大学 毕树生
机器人制孔系统由于灵活性好,适应性强且效率高,在国外飞机装配中已得到广泛的研究和应用[1-3]。由于制造误差等原因,实际加工的飞机零部件与三维数模之间存在偏差,仅根据数模难以保证机器人的制孔精度。机器人制孔系统工作时,需利用视觉系统对制孔位置精确定位,这是实现飞机零部件精确制孔的关键。目前,国外的机器人制孔系统均采用高精度的视觉系统,国内用于机器人制孔的视觉系统的研发尚不成熟。
根据视觉传感器不同,机器人视觉系统分为激光视觉系统以及摄像机视觉系统。激光视觉系统主要依靠激光跟踪仪等设备进行机器人的导航,定位精度高,但系统设备昂贵且易受外部环境的干扰。摄像机视觉系统主要采用工业相机进行机器人的导航,具有灵活性高、成本低且不易受外界干扰等优点。根据飞机平面壁板类组件的制孔需求以及机器人制孔系统的特点,本文开发了一套用于制孔位置精确定位的机器人手眼视觉系统。该视觉系统采用单个工业相机,且将相机安装于制孔末端执行器上。机器人制孔定位试验表明,该视觉系统的定位精度高于0.3mm,且具有运算效率高、操作简单等优点,可以用于平面壁板类组件的精确制孔。
相机安装在制孔末端执行器上,末端执行器安装在机器人末端,因此需要标定出相机坐标系与机器人坐标系的相对位置关系。机器人制孔系统工作时,需保证刀具与工件表面垂直。此时在二维平面内,通过机械安装,也可保证相机光轴垂直于工件表面,因此只需要求得平面两轴方向上相机相对于TCP(Tool Center Point,刀具中心点)的偏移量即可在工件表面进行二维视觉导航,图1为二维平面内机器人“手眼”关系的标定方法示意图。
图1中P点为末端执行器上的TCP点也是工具坐标系的原点,xw,yw分别为在世界坐标系下以标定模板平面建立的工件坐标系两轴方向。x′、o′、y′为相机成像坐标系,根据小孔成像原理以及弱透视模型可知在相机拍摄距离一定时,图像所对应的拍摄区域的范围也是固定的。因此,与相机成像坐标系x′、o′、y′相对应可以建立一个景物坐标系x、o、y。p1、p2分别为被拍摄平面内景物坐标系x、o、y中的两个景物点,可设其坐标分别为(x1,y1)与(x2,y2)。p′1与p′2分别是p1与p2在相机成像坐标系x′、o′、y′中的对应点,可以得到其坐标分别为(x′1,y′1)与 (x′2,y′2)。图像中p1与p2连线与x′轴的夹角,由于相机成像坐标系与景物坐标系为比例放大关系,因此两个坐标系相互平行,p1与p2连线与x所成夹角也为γ。标定时通过TCP分别与p1和p2进行示教对点,通过工具坐标系到世界坐标系的转换可以从工业机器人系统中得到p1与p2连线的距离以及连线与xw轴的夹角θ,由此可以算出景物坐标系相对于世界坐标系的转角为,同时可以算出在此拍摄距离下的比例系数为成像坐标系内两点间联线距离的像素值,为景物坐标系中两点连线的实际距离)。于是有,也就求出了p1与p2在景物坐标系x、o、y中的具体坐标值。拍摄时TCP在世界坐标系中的位置以及对点时TCP的位置都可以从工业机器人的系统中得到,由此可以算出TCP从拍摄位置到对点时的距离‖pp1‖以及pp1与世界坐标系xw轴的夹角δ,由于景物坐标系相对于世界坐标系的转角φ已经由前面算出,因此可以得到pp1与景物坐标系x轴的夹角ω=δ-φ。将‖pp1‖在景物坐标系得两轴方向上分解可以得到D=‖pp1‖cosω,H=‖pp1‖sinω。通过求出的p1在景物坐标系中的坐标值(x1,y1)可以算出TCP在景物坐标系中的坐标,即图1中P点的坐标为:
因为景物坐标系与相机成像坐标系的比例关系已经得到,由此通过景物坐标系便间接地建立了TCP与相机成像坐标系的关系,即为所求手眼关系。
图1 机器人二维“手眼”标定方法示意图
根据实际需求,机器人视觉系统的相机采用加拿大PointGrey公司的型号为GRAS-20S4M-C的200万像素黑白工业数字相机,该相机的数据接口为IEEE 1394接口。镜头采用日本Myutron公司的FV2520固定25mm焦距镜。光源选择Ose公司生产的型号为RINP-116R的高亮环形散射光源。
视觉定位程序作为一个功能模块被嵌入到上位机主程序中,它与其他功能模块一起配合实现机器人制孔系统的运行,视觉系统的工作流程如图2所示。
利用Halcon软件编写视觉定位程序,视觉定位程序分为标定模块和定位模块两个功能模块:
(1) 标定模块由7个函数模块组成,分别是:
a.Open Window(int*WindowAccess, double Row):此函数用于图像显示窗口的设置。
b.System Initial(int WindowAccess, int *CameraAccess):此函数的功能是用于相机及视觉系统各项参数的初始化。
c.Close_Camera(int CameraAccess):此函数用于退出软件时将相机关闭。CameraAccess为相机的入口参数。
图2 视觉系统工作流程图
d.Vertical(int WindowAccess,int CameraAccess, bool *IsOK):此函数的功能是判断相机是否能够清晰成像。
e.Dist_Caculate (int WindowAccess, int CameraAccess,double *GraphicsDistance):此函数的功能是算图像中两点的距离与所成直线角度,并且得到第一点圆心在图像中的坐标位置。
f.Magnificate(double ActualValue, double PixelValue):此函数具有double型的返回值,功能是用来计算放大率。
g.Calibration(double RobotAngle, double GraphicsAngle,double *TPositionX):此函数功能是在前几个函数实现的基础上进行机器人手眼标定从而得到相机图像坐标系与机器人标定棒尖点之间的关系。
(2) 定位模块在标定模块实现的基础上只需要一个函数即可完成:
Point Location(double TPositionX, double TPositionY, double*RobotDistX):此函数是标定过程的反解,功能是通过目标点在图像坐标系中的位置得到目标点相对于标定棒针尖点的位置关系。
以某军机钛合金下壁板为应用对象,对机器人视觉系统进行试验和验证,如图3所示。
图3 机器人视觉定位试验现场
为了测试视觉系统的定位精度,采取先钻孔后定位的方式,即先利用三维数模中的数据进行钻孔,然后再利用手眼视觉定位已加工孔的位置,并将最终得到孔位置数据与数模中的数据进行比较,从而得到定位精度。最终得到试验数据如表1所示。
从以上数据中可以看出机器人视觉系统的定位精度在0.3mm以内,可以用于飞机壁板类组件的制孔。
表1 手眼视觉定位试验结果
本文设计了一套用于飞机平面壁板类组件制孔的机器人视觉系统,现场试验结果表明本系统的定位精度在0.3mm以内。该视觉系统具有操作简单、定位精度高等优点,能够满足飞机平面壁板类组件制孔精度需求。
[1] Atkinson J, Hartmann J, Jones S,et al. Robotic drilling system for 737 aileron.Aerospace Manufacturing and Automated Fastening Conference & Exhibition,Los Angeles,2007.
[2] DeVlieg R, Feikert E. One-Up Assembly with Robot. Aerospace Manufacturing and Automated Fastening Conference &Exhibition, North Charlesten, 2008.
[3] Carlos C A E , Luis G T. Design of a robotic orbital driller for assembling aircraft structures. Metatronics,2014(24)∶533-545.