基于HALCON的机械手视觉抓取应用研究

2015-01-22 20:14卢泉奇苗同升汪地杨浩宗殿栋
光学仪器 2014年6期
关键词:机器视觉图像处理

卢泉奇+苗同升+汪地+杨浩+宗殿栋

摘要: 介绍一种特定的抓取式机械手的机械结构,利用HALCON图像处理软件中单目视觉ETH(EyetoHand)系统手眼标定函数对机械手与摄像机系统进行手眼标定实验。利用获得的标定数据进行HALCON的图像处理,并将图像处理程序整合进VS2010平台与其它软件联合完成机械手视觉抓取系统的二次开发。最后用机械手视觉抓取实验来验证研究结果。

关键词: HALCON; 机器视觉; 手眼标定; 图像处理

中图分类号: TH 74文献标志码: Adoi: 10.3969/j.issn.10055630.2014.06.006

引言根据摄像机与机器人的相互位置的不同,机器人视觉系统可分为EyeinHand 系统和EyetoHand 系统。EyeinHand 系统的摄像机安装在机器人手部末端,在机器人工作过程中随机器人一起运动。EyetoHand 系统的摄像机安装在机器人本体外的固定位置,在机器人工作过程中不随机器人一起运动[1]。视觉处理项目中的关键技术是摄像机的手眼标定与图像处理。HALCON是德国MVtec 公司开发的图像处理软件,具有完善的综合标准软件库和机器视觉集成开发环境,并提供了丰富的函数库,包括blob 分析、形态学、模式匹配、测量、三维目标识别和立体视觉等。它支持Windows、Linux和Solaris 操作环境,整个函数库可以用C,C++,C#,Visual Basic和Delphi等多种普通编程语言开发,有效提高了开发效率,并且执行速度快,具有良好的跨平台移植性[2]。因此,其中的算法可以很好地完成摄像机手眼标定与图像处理的任务。运动控制器方面,选用GALIL公司推出的具有Ethernet/RS232通信接口的独立型数字运动控制器DMC21x3/DMC21x2系列产品,特别适合于那些对价格及安装空间特别苛求的应用领域。所提供的通信驱动库支持当前所有Windows版本、DOS、Linux等操作系统,可以很方便地进行二次开发。1机械手工作原理机器人本体采用本实验室自主研制的非线性机器人。该机器人的底座关节和手腕关节是由空心杯电机经减速器减速后带动关节运动,而另外的四个关节则采用了一种非线性驱动结构,也就是通过电机的旋转带动与之相连的丝杆产生直线运动,进而驱动作为支点的螺母以改变相应关节角度。如果暂时不考虑电机关节驱动机构,根据DH方法[3]可建立机器人手臂的各连杆的参考坐标系,如图1所示。研制的六自由度工业机器人各关节的DH参数见表1。2视觉系统标定

2.1HALCON中的摄像机标定对摄像机进行标定就是为了获取摄像机的内部参数[4],而参数的精确性直接影响后续的结果。HALCON软件内部已经封装了这类标定算子,只要调用camera_calibration(::NX,NY,NZ,NRow,NCol,StartCamParam,NStartPose,EstimateParams:CameraParam,NFinalPose,Errors)并输入所需的入口参数就能得到摄像机内部参数。其具体过程如下:(1)采集一定数量图片,一般为8~15幅图片(图中需含有标定板)。(2)输入标准标定板参数(200 mm边长49点阵),代码为:CalTabFile:='caltab_200 mm.descr';caltab_points(CalTabFile,X,Y,Z)标定板中各个黑点的位置是以标定板正中心为参考原点。(3)输入初始相机内部参数(参数为不准确的预估值),代码为:CameraParam:[Focus,Kappa,Sx,Sy,Cx,Cy,ImageWidth,ImageHeight](4)采集图片中的标定板位姿信息。(5)进行相机标定算法,代码为:camera_calibration(X,Y,Z,NRow,NCol,StartCamParam,StartPoses,'all',CamParam,NFinalPose,Errors)。(6)输出标定后相机内部参数,代码为:write_cam_par(CamParam,DataNameStart+'tu_campar.dat')。

2.2机器人的手眼标定使用HALCON软件进行机器人手眼标定目的是为了得到机器人基准坐标系相对于摄像头坐标系的位姿。该位姿参数的精确性也会直接影响到机械手对目标点的定位精度。在HALCON中实现手眼标定的算子是hand_eye_calibration(NX,NY,NZ,NRow,NCol,NumPoints,RobotPoses,CamParam,'nonlinear','error_pose',CameraPose,CalibrationPose,PoseError),其输入输出参数有:X,Y,Z,Row,Col,NumPoints。在进行手眼系统的标定时,必须提供标定板中所有黑色圆点的三维坐标值及其对应的图像像素值。在每幅标定图像中,还必须提供黑色圆点的三维坐标值,对应的像素值以及三维点的个数。 RobotPoses:每幅图片中已知的机器人的位姿,在此为机器人末端在机器人坐标系中的位姿。 CameraParam:相机的内部参数。 Method:手眼系统标定所使用的方法,默认为nonlinear。QualityType:所得结果的评价类型。CameraPose:计算得出的机器人基准坐标系相对于相机坐标系的的位姿。CalibrationPose:计算得出的标定物在机器人基准坐标系中的位姿。Quality:输出结果的评价。

2.3标定板特征信息的提取在两个标定过程中,标定板特征信息的提取都是必不可少的。本课题采用HALCON提供的高精度标定板,其外观如图2所示。标定板在一个黑色方框内包含7行7列共49个相同的圆靶,以每个圆心作为标定点,定义世界坐标系原点在正中央圆心处,z 轴垂直标定板向上,坐标系方向可由位于黑框左上角的三角块唯一确定[5]。使用摄像机对放置在检测平面上不同位置的标定板拍照,且摄像机位置固定,在保证内部参数和相对位姿参数不变的前提下,继续拍照得到若干张图像。具体标定算法流程如图3所示,其步骤为:(1)读取由摄像机采集到的彩色图片;(2)将彩色图片转化为灰度图片;(3)通过find_caltab()函数找到标定板的区域;(4)find_marks_and_pose()函数可提取标定板中的标定点的坐标。标定过程中得到的结果如图4所示。

2.4机器人位姿的获取在进行手眼标定时,对每幅标定图片都需要提供相对应的机器人的位姿,并且机器人位姿的精度对整个手眼系统的标定精度至关重要。在测得各关节运动角度后,通过机器人运动学正解公式,得到机器人末端位姿,再使用HDevelop例程handeye_creat_robot_poses.hdev即可写出对应的机器人位姿文件。其具体实现是调用input_pose_type()确定机器人位姿的类型,如图5所示;调用input_pose()输入末端的位姿,如图6所示,则创建完成HALCON可直接读取的dat文件。

有很多种输入的形式,最常用的是xyz的输入形式,它表示机械手末端坐标系相对于世界坐标系(此即为机器人基准坐标系)的坐标点与三轴旋转角度。同时考虑以下几点:(1)三轴旋转角度的参考系一直是世界坐标系,不是绕某个轴运动之后的坐标系,且旋转正方向以右手螺旋取得。(2)相机的xyz轴是被默认规定的,即z轴方向延镜头向外,x轴方向为垂直z方向向图片的正右方,y轴方向以右手螺旋定则确定。(3)机械手基坐标(即世界坐标系)的选取中x轴方向须与摄像头的x轴方向一致,否则结果会产生一定偏差,同时也不利于标定结果的验证。然后按照此流程重复多遍,得到多组机器人的位姿文件。在HDevelop中对机器人位姿文件的读取可直接调用read_pose函数来实现。3HALCON图像处理程序该程序是在HALCON软件中编译完成并测试通过后,再将其转化为MFC中的C++程序。这样相当于在HALCON中进行了预编程,不仅能简化C++的编程过程,还能直接对错误的结果进行改正,减轻了很大的工作量。以下是采集到目标工件图像后进行的图像处理过程。

3.1读取标定数据首先,标定数据可直接由文件中读取,其中相机的参数可通过read_cam_par函数读取相机参数文件,相机坐标系与机器人坐标系的关系可由read_pose函数来读取。另外,由于齐次矩阵更便于计算,在此还要把姿态转换为齐次矩阵,该变换在HALCON中可直接通过pose_to_hom_mat3d函数实现。读取和变换标定数据的代码如下:

3.2确定参考坐标系由于本实验只使用了单个相机,在未知目标工件三维模型的情况下,无法获取目标物体在相机光轴方向上的深度信息。这就需要在此引入参考坐标系,且让该参考坐标系与目标物体的坐标系是处在同一个平面上。这样就能通过标准的标定板信息引入所需的深度信息。其实际的操作过程为:在放置目标物体的平面上放置一HALCON标定板,并获取一幅图像,通过调用define_reference_coord_system函数,将该标定板坐标系定义为参考坐标系,代码如下:

3.3提取抓取区域与目标轮廓对含有目标物体的图像,首先将其进行灰度化处理,然后选取可抓取的区域范围,再进行阈值化处理,最后进行区域填充与形状选择,从而得到目标物体(银白色长方形铁块)。得到目标物体后进行简单的blob分析,其边界就被转化为XLD轮廓,代码如下:

3.4抓取姿态的求取有了抓取点的像素坐标值,并且已知了参考坐标系在图中的位置就可以用image_points_to_world_plane算子提取抓取点在参考坐标系中的三维坐标,代码如下:

image_points_to_world_plane(CamParam,PoseRef,CornersRow,CornersCol,'m',CornersX_ref,CornersY_ref)

CenterPointX_ref:=sum(CornersX_ref)*0.25; CenterPointY_ref:=sum(CornersY_ref)*0.25由于抓取物体就放置在参考平面上,所以抓取点在参考坐标系中的姿态,就是要考虑物体绕参考坐标系中Z轴的旋转。在抓取时,机器人末端的抓爪收拢的方向应与工件的边缘垂直,那么两个抓取点的连线的倾斜角度就是抓爪应该旋转的角度。

4实验结果

4.1摄像机标定结果为了得到更加精确的相机参数,本课题采集了差异度较大的23幅图片,在HALCON软件中得到测量结果如下:镜头焦距foc:3.52 mm;径向畸变系数kappa:938.631;相机芯片每单元格的宽度Sx:5.490×10-6 m;相机芯片每单元格的高度Sy:5.500×10-6 m;图像中心的x坐标Cx:244.471;图像中心的y坐标Cy:327.320;图像宽度:480 pixel;图像高度:640 pixel。

4.2系统手眼标定结果

为了得到较为精确的测量结果,本课题采集了10幅机械手末端图片,并计算了每幅图片对应的机械手表2系统手眼标定结果

Tab.2The results of handeye calibration

标定变量标定结果标定变量标定结果X坐标-0.032 33 mX轴旋转角185.449°Y坐标-0.771 23 mY轴旋转角2.846°Z坐标0.644 75 mZ轴旋转角0.462°

末端位姿。最后经过标定在HALCON软件中得出机械手基座标系相对于摄像机坐标系的位姿,标定结果如表2所示。

4.3机器人综合控制平台调试结果按实验流程进行实验。首先,根据已获取的该手眼系统的标定信息和在工件平面上定义的参考坐标系,实时地采集图像,并逐步得出工件在参考坐标系中的位置,工件上的抓取点坐标,机器人的抓取位姿。该过程对应的图像处理结果如图9所示,其中图9(a)为所定义的参考坐标系,图9(b)为显示了目标物体和参考坐标系,图9(c)显示了目标物体上的抓取点,图9(d)显示机器人抓取时工件所对应的位姿。在完成以上处理之后,就可得出工件目标相对于机器人基准坐标系位姿:(0.045 03 m,-0.670 38 m,0.287 66 m,115.377°,21.540°,348.155°)

本文将HALCON图像采集与处理程序、运动学逆解程序以及最后的当量判断与发送程序集成开发,得到了机器人综合控制平台应用软件。该软件在已知机器人目标位姿的情况下,按照运动学逆问题的求解过程依次得到各运动关节所对应的角度、各推杆在目标位姿时对应的杆长,将其与初始杆长之差乘以比例系数,即得出每个电机所需的运动当量。而后将运动当量以运动指令形式经以太网发送至运动控制卡中,则机器人获得运动指令,运动到目标位姿,并进行抓取。本实验室研制的机器人是根据实时采集的图像信息来对目标工件进行抓取,机器人抓取实物图如图10所示。5结论本实验系统根据采集到的视觉信息,经过图像处理得到机器人的目标位姿,并由此转化为机器人各关节的控制信号,完成机器人驱动,实现对目标工件的抓取。以上的实验流程切实可行,且实验结果达到了预期的要求。由此证明本课题所构建的基于单目视觉的机器人控制系统具有较强的实用价值。

参考文献:

[1]徐德.机器人视觉测量与控制[M].2版.北京:国防工业出版社,2011.

[2]闫霞,牛建强.基于HALCON软件的摄像机标定[J].数字技术与应用.2010(11):112113.

[3]蔡自兴.机器人学[M].北京:清华大学出版社,2000.

[4]李洪海,王敬东.摄像机标定技术研究[J].光学仪器,2007,29(4):712.

[5]刘源泂,孔建益,王兴东,等.双目立体视觉系统的非线性摄像机标定技术[J].计算机应用研究,2011,28(9):3398

2.4机器人位姿的获取在进行手眼标定时,对每幅标定图片都需要提供相对应的机器人的位姿,并且机器人位姿的精度对整个手眼系统的标定精度至关重要。在测得各关节运动角度后,通过机器人运动学正解公式,得到机器人末端位姿,再使用HDevelop例程handeye_creat_robot_poses.hdev即可写出对应的机器人位姿文件。其具体实现是调用input_pose_type()确定机器人位姿的类型,如图5所示;调用input_pose()输入末端的位姿,如图6所示,则创建完成HALCON可直接读取的dat文件。

有很多种输入的形式,最常用的是xyz的输入形式,它表示机械手末端坐标系相对于世界坐标系(此即为机器人基准坐标系)的坐标点与三轴旋转角度。同时考虑以下几点:(1)三轴旋转角度的参考系一直是世界坐标系,不是绕某个轴运动之后的坐标系,且旋转正方向以右手螺旋取得。(2)相机的xyz轴是被默认规定的,即z轴方向延镜头向外,x轴方向为垂直z方向向图片的正右方,y轴方向以右手螺旋定则确定。(3)机械手基坐标(即世界坐标系)的选取中x轴方向须与摄像头的x轴方向一致,否则结果会产生一定偏差,同时也不利于标定结果的验证。然后按照此流程重复多遍,得到多组机器人的位姿文件。在HDevelop中对机器人位姿文件的读取可直接调用read_pose函数来实现。3HALCON图像处理程序该程序是在HALCON软件中编译完成并测试通过后,再将其转化为MFC中的C++程序。这样相当于在HALCON中进行了预编程,不仅能简化C++的编程过程,还能直接对错误的结果进行改正,减轻了很大的工作量。以下是采集到目标工件图像后进行的图像处理过程。

3.1读取标定数据首先,标定数据可直接由文件中读取,其中相机的参数可通过read_cam_par函数读取相机参数文件,相机坐标系与机器人坐标系的关系可由read_pose函数来读取。另外,由于齐次矩阵更便于计算,在此还要把姿态转换为齐次矩阵,该变换在HALCON中可直接通过pose_to_hom_mat3d函数实现。读取和变换标定数据的代码如下:

3.2确定参考坐标系由于本实验只使用了单个相机,在未知目标工件三维模型的情况下,无法获取目标物体在相机光轴方向上的深度信息。这就需要在此引入参考坐标系,且让该参考坐标系与目标物体的坐标系是处在同一个平面上。这样就能通过标准的标定板信息引入所需的深度信息。其实际的操作过程为:在放置目标物体的平面上放置一HALCON标定板,并获取一幅图像,通过调用define_reference_coord_system函数,将该标定板坐标系定义为参考坐标系,代码如下:

3.3提取抓取区域与目标轮廓对含有目标物体的图像,首先将其进行灰度化处理,然后选取可抓取的区域范围,再进行阈值化处理,最后进行区域填充与形状选择,从而得到目标物体(银白色长方形铁块)。得到目标物体后进行简单的blob分析,其边界就被转化为XLD轮廓,代码如下:

3.4抓取姿态的求取有了抓取点的像素坐标值,并且已知了参考坐标系在图中的位置就可以用image_points_to_world_plane算子提取抓取点在参考坐标系中的三维坐标,代码如下:

image_points_to_world_plane(CamParam,PoseRef,CornersRow,CornersCol,'m',CornersX_ref,CornersY_ref)

CenterPointX_ref:=sum(CornersX_ref)*0.25; CenterPointY_ref:=sum(CornersY_ref)*0.25由于抓取物体就放置在参考平面上,所以抓取点在参考坐标系中的姿态,就是要考虑物体绕参考坐标系中Z轴的旋转。在抓取时,机器人末端的抓爪收拢的方向应与工件的边缘垂直,那么两个抓取点的连线的倾斜角度就是抓爪应该旋转的角度。

4实验结果

4.1摄像机标定结果为了得到更加精确的相机参数,本课题采集了差异度较大的23幅图片,在HALCON软件中得到测量结果如下:镜头焦距foc:3.52 mm;径向畸变系数kappa:938.631;相机芯片每单元格的宽度Sx:5.490×10-6 m;相机芯片每单元格的高度Sy:5.500×10-6 m;图像中心的x坐标Cx:244.471;图像中心的y坐标Cy:327.320;图像宽度:480 pixel;图像高度:640 pixel。

4.2系统手眼标定结果

为了得到较为精确的测量结果,本课题采集了10幅机械手末端图片,并计算了每幅图片对应的机械手表2系统手眼标定结果

Tab.2The results of handeye calibration

标定变量标定结果标定变量标定结果X坐标-0.032 33 mX轴旋转角185.449°Y坐标-0.771 23 mY轴旋转角2.846°Z坐标0.644 75 mZ轴旋转角0.462°

末端位姿。最后经过标定在HALCON软件中得出机械手基座标系相对于摄像机坐标系的位姿,标定结果如表2所示。

4.3机器人综合控制平台调试结果按实验流程进行实验。首先,根据已获取的该手眼系统的标定信息和在工件平面上定义的参考坐标系,实时地采集图像,并逐步得出工件在参考坐标系中的位置,工件上的抓取点坐标,机器人的抓取位姿。该过程对应的图像处理结果如图9所示,其中图9(a)为所定义的参考坐标系,图9(b)为显示了目标物体和参考坐标系,图9(c)显示了目标物体上的抓取点,图9(d)显示机器人抓取时工件所对应的位姿。在完成以上处理之后,就可得出工件目标相对于机器人基准坐标系位姿:(0.045 03 m,-0.670 38 m,0.287 66 m,115.377°,21.540°,348.155°)

本文将HALCON图像采集与处理程序、运动学逆解程序以及最后的当量判断与发送程序集成开发,得到了机器人综合控制平台应用软件。该软件在已知机器人目标位姿的情况下,按照运动学逆问题的求解过程依次得到各运动关节所对应的角度、各推杆在目标位姿时对应的杆长,将其与初始杆长之差乘以比例系数,即得出每个电机所需的运动当量。而后将运动当量以运动指令形式经以太网发送至运动控制卡中,则机器人获得运动指令,运动到目标位姿,并进行抓取。本实验室研制的机器人是根据实时采集的图像信息来对目标工件进行抓取,机器人抓取实物图如图10所示。5结论本实验系统根据采集到的视觉信息,经过图像处理得到机器人的目标位姿,并由此转化为机器人各关节的控制信号,完成机器人驱动,实现对目标工件的抓取。以上的实验流程切实可行,且实验结果达到了预期的要求。由此证明本课题所构建的基于单目视觉的机器人控制系统具有较强的实用价值。

参考文献:

[1]徐德.机器人视觉测量与控制[M].2版.北京:国防工业出版社,2011.

[2]闫霞,牛建强.基于HALCON软件的摄像机标定[J].数字技术与应用.2010(11):112113.

[3]蔡自兴.机器人学[M].北京:清华大学出版社,2000.

[4]李洪海,王敬东.摄像机标定技术研究[J].光学仪器,2007,29(4):712.

[5]刘源泂,孔建益,王兴东,等.双目立体视觉系统的非线性摄像机标定技术[J].计算机应用研究,2011,28(9):3398

2.4机器人位姿的获取在进行手眼标定时,对每幅标定图片都需要提供相对应的机器人的位姿,并且机器人位姿的精度对整个手眼系统的标定精度至关重要。在测得各关节运动角度后,通过机器人运动学正解公式,得到机器人末端位姿,再使用HDevelop例程handeye_creat_robot_poses.hdev即可写出对应的机器人位姿文件。其具体实现是调用input_pose_type()确定机器人位姿的类型,如图5所示;调用input_pose()输入末端的位姿,如图6所示,则创建完成HALCON可直接读取的dat文件。

有很多种输入的形式,最常用的是xyz的输入形式,它表示机械手末端坐标系相对于世界坐标系(此即为机器人基准坐标系)的坐标点与三轴旋转角度。同时考虑以下几点:(1)三轴旋转角度的参考系一直是世界坐标系,不是绕某个轴运动之后的坐标系,且旋转正方向以右手螺旋取得。(2)相机的xyz轴是被默认规定的,即z轴方向延镜头向外,x轴方向为垂直z方向向图片的正右方,y轴方向以右手螺旋定则确定。(3)机械手基坐标(即世界坐标系)的选取中x轴方向须与摄像头的x轴方向一致,否则结果会产生一定偏差,同时也不利于标定结果的验证。然后按照此流程重复多遍,得到多组机器人的位姿文件。在HDevelop中对机器人位姿文件的读取可直接调用read_pose函数来实现。3HALCON图像处理程序该程序是在HALCON软件中编译完成并测试通过后,再将其转化为MFC中的C++程序。这样相当于在HALCON中进行了预编程,不仅能简化C++的编程过程,还能直接对错误的结果进行改正,减轻了很大的工作量。以下是采集到目标工件图像后进行的图像处理过程。

3.1读取标定数据首先,标定数据可直接由文件中读取,其中相机的参数可通过read_cam_par函数读取相机参数文件,相机坐标系与机器人坐标系的关系可由read_pose函数来读取。另外,由于齐次矩阵更便于计算,在此还要把姿态转换为齐次矩阵,该变换在HALCON中可直接通过pose_to_hom_mat3d函数实现。读取和变换标定数据的代码如下:

3.2确定参考坐标系由于本实验只使用了单个相机,在未知目标工件三维模型的情况下,无法获取目标物体在相机光轴方向上的深度信息。这就需要在此引入参考坐标系,且让该参考坐标系与目标物体的坐标系是处在同一个平面上。这样就能通过标准的标定板信息引入所需的深度信息。其实际的操作过程为:在放置目标物体的平面上放置一HALCON标定板,并获取一幅图像,通过调用define_reference_coord_system函数,将该标定板坐标系定义为参考坐标系,代码如下:

3.3提取抓取区域与目标轮廓对含有目标物体的图像,首先将其进行灰度化处理,然后选取可抓取的区域范围,再进行阈值化处理,最后进行区域填充与形状选择,从而得到目标物体(银白色长方形铁块)。得到目标物体后进行简单的blob分析,其边界就被转化为XLD轮廓,代码如下:

3.4抓取姿态的求取有了抓取点的像素坐标值,并且已知了参考坐标系在图中的位置就可以用image_points_to_world_plane算子提取抓取点在参考坐标系中的三维坐标,代码如下:

image_points_to_world_plane(CamParam,PoseRef,CornersRow,CornersCol,'m',CornersX_ref,CornersY_ref)

CenterPointX_ref:=sum(CornersX_ref)*0.25; CenterPointY_ref:=sum(CornersY_ref)*0.25由于抓取物体就放置在参考平面上,所以抓取点在参考坐标系中的姿态,就是要考虑物体绕参考坐标系中Z轴的旋转。在抓取时,机器人末端的抓爪收拢的方向应与工件的边缘垂直,那么两个抓取点的连线的倾斜角度就是抓爪应该旋转的角度。

4实验结果

4.1摄像机标定结果为了得到更加精确的相机参数,本课题采集了差异度较大的23幅图片,在HALCON软件中得到测量结果如下:镜头焦距foc:3.52 mm;径向畸变系数kappa:938.631;相机芯片每单元格的宽度Sx:5.490×10-6 m;相机芯片每单元格的高度Sy:5.500×10-6 m;图像中心的x坐标Cx:244.471;图像中心的y坐标Cy:327.320;图像宽度:480 pixel;图像高度:640 pixel。

4.2系统手眼标定结果

为了得到较为精确的测量结果,本课题采集了10幅机械手末端图片,并计算了每幅图片对应的机械手表2系统手眼标定结果

Tab.2The results of handeye calibration

标定变量标定结果标定变量标定结果X坐标-0.032 33 mX轴旋转角185.449°Y坐标-0.771 23 mY轴旋转角2.846°Z坐标0.644 75 mZ轴旋转角0.462°

末端位姿。最后经过标定在HALCON软件中得出机械手基座标系相对于摄像机坐标系的位姿,标定结果如表2所示。

4.3机器人综合控制平台调试结果按实验流程进行实验。首先,根据已获取的该手眼系统的标定信息和在工件平面上定义的参考坐标系,实时地采集图像,并逐步得出工件在参考坐标系中的位置,工件上的抓取点坐标,机器人的抓取位姿。该过程对应的图像处理结果如图9所示,其中图9(a)为所定义的参考坐标系,图9(b)为显示了目标物体和参考坐标系,图9(c)显示了目标物体上的抓取点,图9(d)显示机器人抓取时工件所对应的位姿。在完成以上处理之后,就可得出工件目标相对于机器人基准坐标系位姿:(0.045 03 m,-0.670 38 m,0.287 66 m,115.377°,21.540°,348.155°)

本文将HALCON图像采集与处理程序、运动学逆解程序以及最后的当量判断与发送程序集成开发,得到了机器人综合控制平台应用软件。该软件在已知机器人目标位姿的情况下,按照运动学逆问题的求解过程依次得到各运动关节所对应的角度、各推杆在目标位姿时对应的杆长,将其与初始杆长之差乘以比例系数,即得出每个电机所需的运动当量。而后将运动当量以运动指令形式经以太网发送至运动控制卡中,则机器人获得运动指令,运动到目标位姿,并进行抓取。本实验室研制的机器人是根据实时采集的图像信息来对目标工件进行抓取,机器人抓取实物图如图10所示。5结论本实验系统根据采集到的视觉信息,经过图像处理得到机器人的目标位姿,并由此转化为机器人各关节的控制信号,完成机器人驱动,实现对目标工件的抓取。以上的实验流程切实可行,且实验结果达到了预期的要求。由此证明本课题所构建的基于单目视觉的机器人控制系统具有较强的实用价值。

参考文献:

[1]徐德.机器人视觉测量与控制[M].2版.北京:国防工业出版社,2011.

[2]闫霞,牛建强.基于HALCON软件的摄像机标定[J].数字技术与应用.2010(11):112113.

[3]蔡自兴.机器人学[M].北京:清华大学出版社,2000.

[4]李洪海,王敬东.摄像机标定技术研究[J].光学仪器,2007,29(4):712.

[5]刘源泂,孔建益,王兴东,等.双目立体视觉系统的非线性摄像机标定技术[J].计算机应用研究,2011,28(9):3398

猜你喜欢
机器视觉图像处理
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
Bayesian-MCMC算法在计算机图像处理中的实践
改进压缩感知算法的图像处理仿真研究
全自动模拟目标搜救系统的设计与实现
基于机器视觉的自动浇注机控制系统的研究
大场景三维激光扫描仪在研究生实践教学培养中的应用
基于机器视觉技术的动态“白带”常规检测系统的开发
机器视觉技术在烟支钢印检测中的应用
基于图像处理的定位器坡度计算