机器人远程控制与自适应抓取研究

2020-12-25 12:31黄家才施昕昕
机械设计与制造 2020年12期
关键词:服务器端位姿运动学

舒 奇,黄家才,林 健,施昕昕

(南京工程学院,江苏 南京 210000)

1 引言

随着科技的不断进步,将机器人应用于各行各业的趋势已经势不可挡,尤其在工业生产中,机器人将改变整个劳动密集型产业的格局[1-2]。UR 机器人是丹麦UNIVERSAL ROBOTS 公司生产的通用型机器人,其具有轻松编程、快速安装和设置、重新部署灵活、人机协作和安全等特点,机械臂有反向驱动功能,可以直接牵引机械臂编程示教;可以通过设置安全参数,并经过安全评估,在不增加安全围栏条件下满足人机协作应用需求。

机器人远程控制基本思想就是让数据在客户机与服务器间传输,机器人作为客户机,工控机作为服务器,常用两种方式进行实时数据交换:①用户报文协议(UDP);②传输控制协议(TCP)。主机用于负责系统的管理、通讯、运动学和动力学计算,并向客户机发送指令信息;作为客户机,各关节实现给定的运动,并向主机反馈信息。针对机器人自适应抓取的需求,文献[3]通过增加欠驱动自由度设计柔性更高的末端执行器,文献[4]则通过柔性材料增强适应度;还有的研究致力于在末端执器中增加传感器,如增加触觉反馈[5]、改进末端执行器控制[6]等。

通过研究UR 机器人机械结构与远程通信,实现对UR 机器人的TCP/IP 远程控制,可以保护操作人员,在离开危险的操作环境同时,也避免了UR 机器人的损坏,极大程度上提高了机器人的生产稳定性和工作精度。在给机器人能够在复杂的环境中完成多功能任务提供基础条件后,再加入自适应抓取功能,使得机器人具备更高的自主性,对于外界环境的变化,能够做出智能的反应。

2 UR5 机械结构

UR5 型机器人是Universal Robots 公司开发的六关节工业机器人,如图1 所示。

图1 UR5 实体图Fig.1 UR5 Entity Map

其拥有6 个旋转关节,关节从下到上分别命名为:基座,肩部,肘部,腕部1,腕部2 和腕部3。基座即为机器人的固定处,确定了机器人在使用环境中的安装位置。腕部3 是机器人末端,可以连接不同的工具来满足各种各样的需求[7]。在这6 个旋转关节中,前三个关节主要控制了机器人末端的位置,而后三个关节主要控制机器人末端的姿态。UR5 型机器人的具体参数,如表1 所示。

表1 UR5 机器人参数Tab.1 UR5 Robot Parameters

要研究机器人的运动,就必须为机器人建立运动学模型,然后再通过运动学模型进行机器人正逆解[8]。为UR5 机器人建立D-H 模型,首先标识出机器人各个旋转关节的旋转轴,然后依据选装轴找到连杆坐标系中各个连杆的原点,坐标系的轴与原点,如图2 所示。得到各个连杆的轴与原点后,推导出各个连杆坐标系,UR5 机器人的连杆坐标系,如图3 所示。

图2 连杆轴与原点Fig.2 Connecting Rod Shaft and Origin

图3 连杆坐标系Fig.3 Link Coordinate System

根据已经建立的连杆坐标系,参考上述的D-H 参数定义,可以得到UR5 型机器人的D-H 参数,如表2 所示。

所谓机器人运动学逆解,就是在已知机器人末端执行器相对于参考基坐标系的位姿以后,逆向求出各个关节的运动学参数。从现实中的工程应用角度来看,人们要控制机器人完成点到点的准确运动,这时就需要用到对机器人的运动学逆解来求出各个关节如何变换,最终通过每个关节的变换协作实现机器人末端执行器的位移和旋转,即达到目标位姿[9-11]。

表2 D-H 参数Tab.2 D-H Parameter

在这里对于UR5 型机器人的运动学逆解使用的方法使牛顿迭代法。首先需要做的就是为牛顿迭代法构建出必要的方程组。对于每一次迭代后的近似解θ 都可以得到一个更接近于最终矩阵的近似矩阵经过多次的迭代直到此时的θ 便是要求得到的最终逆解。如此便可建立出关键方程(1):

将方程中的每一项展开即可获得一个包含12 个方程的方程组,根据此方程组可以得到方程的雅可比矩阵,然后运用牛顿迭代公式,即可得到,如式(2)所示。

式中:雅可比矩阵J—12×6 的矩阵,只能求其伪逆,所以公式演变为(3):

利用此公式可以对UR5 机器人进行运动学逆解,逆解流程图,如图4 所示。程序要求输入机器人的各关节的初始角θori以及要求到达的末端位姿矩阵,经过运算最终输出到达要求位姿时的各关节旋转角θ。

图4 逆解程序流程图Fig.4 Reverse Solution Flow Chart

假设起始关节角θ1,θ2,θ3,θ4,θ5,θ6都为0,逆解结果为θ=[0,-90,0,-90,0,180]T。但是考虑到机器人逆解存在多解的情况,该目标矩阵应该存在多解,于是改变起始关节角θ2=-80,θ4=80,其他为0,得出运行结果为θ=[0,-90,0,-90,0,0]T,由此可见由于迭代法虽然运算简单快速,但是最终只能获得一组解,在多解的情况下可能没法得到预期的解,需要调整不同的起始关节角才能获得其他解。

3 自适应抓取

自适应抓取的本质就是通过改变二夹指的夹持行程来适应不同尺寸工件的抓取。自适应包括两个方面:一方面工件处于摄像机可视范围的任意位置任意姿势,都可以进行工件的识别定位;另一方面当识别工件的大小形状发生改变时,通过改变二夹指的夹持参数可以进行自适应性抓取[12]。

二指夹持器是为工业应用而设计的机器人外部设备,可以快速挑选、放置和处理不同尺寸和形状的零件。采用的是加拿大Robotiq 自适应二指夹持器(85mm 开口规格),如图5 所示。二夹指可进行平行抓握或包围式抓握,主要针对长方体工件实现平行抓握的控制,2 指85 夹持器的具体参数,如表3 所示。

图5 二夹指实物图Fig.5 Two Clips Physical Map

表3 二夹指参数表Tab.3 Two Pin Index Table

由于相机固定在UR5 机器人的腕部,根据机器人的设定,机器人每完成一次抓取任务都会回到相同的初始位置,因此相机的高度是固定不变的,在这种情况下,为匹配工件与二夹指开合程度提供了基础。

硬币放置图,如图6 所示。假设硬币实际大小为x,工件实际大小为y,硬币图像大小为x~,工件图像大小y~,根据摄像机的成像原理,图像中的工件大小与实际工件大小会产生一个成像比例k,那么可以得到下式:

因此通过采集已知规格参数物体的图像获取成像比例,然后通过计算得到未知抓取工件的实际大小,这样传输的数据就能准确的控制二夹指的夹持行程,完成自适应抓取任务。

由于选取的参照物要能够很好的适应环境要求,并且不能影响工件正常的识别和图像处理,因此选取了日常生活中常见的一元硬币,标准大小为25mm。硬币的颜色为银白色,放置在黄色木块上较为明显,很容易识别并通过图像处理获取其图像中硬币大小。

图6 工件放置硬币Fig.6 Workpiece Placement Coin

首先,采集的图像需要进行阈值分割,根据灰度值的差别分割出较为明显的硬币区域,但是分割出来的图像,如图7 所示。不能完全包含硬币区域,通过HALCON 中smallest_circle 算子确定硬币区域的最小环绕圆,并计算出其中心点坐标和半径,这样就可以获取到硬币的图像大小,并通过计算得到此时的成像比例。

图7 分割出的硬币区域Fig.7 Split Coin Area

获得成像比例之后,在HALCON 图像处理软件中实现对工件的图像处理,首先通过阈值分割得到工件区域,然后对分割后的区域进行连通操作获取感兴趣区域,通过亚像素边缘提取获得工件亚像素轮廓,最后通过矩形轮廓拟合获取工件的中心坐标与图像大小。结合成像比例,通过计算就可以得到工件的实际大小。

UR5 机器人上的二夹指并不是以尺寸大小作为开和程度的指标,而是将开合程度换算成百分比,当二夹指完全闭合时,参数显示为100%;当二夹指完全打开时,参数显示为0。为了获取实际的开合百分比,以参照物一元硬币为例,通过机器的夹取操作,获得了25mm 时的开合百分比为62%。通过实际操作发现当二夹指完全闭合时参数显示为87%。通过这两组参数的计算得出每1mm 开合的百分比为1%,这样当工件的大小发生变化时,通过换算就可以得到二夹指开合百分比,通过改变此数据大小控制二夹指开合完成自适应抓取任务。Robotiq 自适应二指夹持器设有压力传感器,当二夹指之间的压力超过预设值时,将停止动作,这为夹取产生的误差提供了一定的容错率。由于二夹指指端的海绵垫的存在,误差可以在±0.5%内进行调试,这样极大的增加了稳定抓取成功的概率。

4 通信控制

控制系统中,以装有HALCON 软件的计算机为服务器端,UR5 机器人的控制柜为客户端,通过两者之间的Socket 连接与通信,将HALCON 中工件定位和二夹指开合程度相关数据发送给机器人以控制机器人的移动与抓取。

首先,建立Halcon 服务器端的Socket 半相关,即确定Halcon服务器端的协议、本地地址和本地端口。通过open_socket_connect算子在计算机上打开一个连接客户端的套接字,并进入监听状态。

open_socket_connect(URIP,Port,GenParamName,Socket)

open_flag:=socket_open("192.168.0.101",30002)

连接是由UR 机器人客户端发起的,在建立自己的Socket半相关后,通过上面的程序向服务器端发起连接。其中,URIP 为192.168.0.180,端口号为30002,工控机IP 为192.168.0.101。

open_socket_accept(Port,GenParamName,GenParamValue:AcceptingSocket)

socket_accept_connect(AcceptingSocket,‘auto’,SockUR)

服务器端在检测到连接后,通过open_socket_accept 算子打开一个接受传入连接请求的套接字。套接字监听由UR 机器人服务器端口提供的端口号的传入连接请求,通过tuple_regexp_match算子判断协议,协议相同无误后,通过socket_accept_connect 算子自动连接,调用socket_accept_connect 获得最终通信的套接字,用来接收传入的“TCP”连接请求,这样就建立起一个完整的的Socket 连接。

Socket 连接完成后,通过使用套接字交换数据,只能使用send_data 和receive_data 来进行数据传输。通用参数“timeout”可用于设置此操作的超时。HALCON 将工件定位和二夹指开合程度相关数据分别转化为数组,通过Socket 通信传输到UR5 机器人中,UR5 机器人接收数据数组并读取,通过对数据的判断,控制机器人进行不同状态下的抓取任务,即完成所设计的自适应抓取。完整的Halcon 与UR5 机器人Socket 通信过程,如图8 所示。

图8 Halcon 与UR5 机器人Socket 通信Fig.8 Halcon and UR5 Robot Socket Communication

5 综合控制平台实验结果

综合测试平台中的计算机配置为:Intel(R)Core(TM)i5-4690 cpu@3.5GHz,内存12G,在windows 环境下利用MATLAB 实现运动学正逆解,利用HALCON 12 实现图像处理与通信部分。整个硬件平台主要由黑色工作台、工业摄像机、6 自由度机械手臂以及手爪组成。实验过程中对UR5 共进行了10 组位姿测试,结果表明所建立的模型与实际物体的模型完全一致,根据该模型得到的末端位姿与图形控制界面所展示的位姿数据吻合。抽取的两组位姿仿真结果,如表4 所示。

表4 仿真位姿对比图Tab.4 Simulation Pose Comparison Chart

整个实验过程,提供两种规格的长方体木块用于自适应抓取操作,路径规划主要是依靠UR5 自带的MOVEJ 函数完成,其功能是从一个设置路径点到另一个设置路径点。首先通过一个移动指令将机器人移动到初始位置,也就是等待抓取的地方,此时目标物置于相机视野处,如图9 所示。

图9 机器人初始位置Fig.9 Initial Position of the Robot

第二步是完成图像处理部分,发送夹爪开合指令命令机器人的手抓打开,并控制机器人从初始位置移动到工件坐标处,如图10 所示。

图10 机器人等待抓取Fig.10 The Robot is Waiting to Grab

机器人在完成自适应抓取任务后可以根据示教路径完成搬运和放置的动作,如图11 所示。再最后回到初始位置,等待下一个任务指令。此时机器人完成一次工作循环。

图11 完成自适应抓取Fig.11 Complete Adaptive Crawling

6 结论

旨在改变传统机器人示教编程抓取控制,采用一个较为新颖和智能化的视觉集成的方式来控制机器人抓取操作,实现了对UR5 的远程控制与抓取。通过视觉标定、图像处理、工件定位和Socket 通信一系列的程序设计与算子处理,逐步实现自适应抓取的功能。实验操作简单、快速,且具有良好跨平台性。

猜你喜欢
服务器端位姿运动学
融合二维图像和三维点云的相机位姿估计
Linux环境下基于Socket的数据传输软件设计
船舶清理机器人定位基准位姿测量技术研究
基于MATLAB的6R机器人逆运动学求解分析
工业机器人在MATLAB-Robotics中的运动学分析
优化ORB 特征的视觉SLAM
基于D-H法的5-DOF串并联机床运动学分析
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于运动学原理的LBI解模糊算法