姚 钢
(湖南网络工程职业学院,湖南 长沙 410004)
视觉引导技术是指利用摄像机代替人眼、计算机代替大脑[1],通过处理相机获取的图像对目标物体进行测量、检测和识别,引导工业机器人完成拾取、分拣等任务[2]。实际应用中,根据视觉系统(称为眼)与工业机器人(称为手)的位置关系,通常有Eye-to-Hand(眼在手外)和Eye-in-Hand(眼在手上)[3]两种形式。工业生产中常见的工作方式是将两种视觉引导方式与流水线作业相结合,为工业机器人的拾取作业提供实时引导。不同拾取方式下工业机器人作业的工艺过程有所差别,为合理设计规划工业机器人程序和运动过程,通常使用仿真软件进行模拟,合理配置规划生产资源,评价智能生产线的可行性及潜在问题[4]。为此,本文采用RobotStudio机器人仿真软件[5],以某矩形零件为例,以Eye-to-Hand和Eye-in-Hand两种视觉引导方式对工业机器人零件拾取转运工作站进行建模与仿真。
基于眼在手上视觉引导的工业机器人工作站通常实现零件的静态拾取,其主要构成如图1所示。其中,工业机器人为ABB-IRB2600,相机与吸嘴工具共同安装在机器人第六轴法兰盘上,物料台上放置零件。
1-工业机器人;2-相机与吸嘴工具;3-流水线;4-长方体零件;5-物料台
RobotStudio软件中进行生产过程仿真的实质是使用Smart组件功能模块将各类子对象组件按照工艺要求进行逻辑关联,从而实现系统的整体功能。
1.2.1 零件沿流水线运动
通过Smart组件输入信号Start来启动仿真系统,使Random生成随机数,经VectorConverter向量转换后赋予Source生成随机位姿的零件拷贝件,并放入队列Queue,Queue与LinearMover直线运动绑定,实现随机生成的拷贝件沿流水线直线运动。Smart组件I/O信号如表1所示。
表1 Smart组件I/O信号
1.2.2 零件到位停止
零件拷贝件运动中被平面传感器PlaneSensor检测到后停止,Smart组件向机器人发出信号Callrobot,触发机器人启动。
1.2.3 相机拍照定位
通过PositionSensor子件对零件位置进行监控,获取零件表面中心点与拍照点相对位置(Position)与角度(Orientation)差值。
拍照点与拾取点坐标系如图2所示,设置工作站机器人在拍照点P1坐标系与零件无旋转时表面中心点P2坐标系方向一致,当零件以随机状态到达拍照点,通过PositionSensor子件即可获取点P2相对于P1的位置与角度偏差。
图2 拍照点与拾取点坐标系 图3 随机零件位置情况及相对位置参数 图4 RapidVariable子件数据传送
图3为随机零件位置情况及相对位置参数,在相应的PositionSensor子件属性中,Position参数中显示X为44 mm、Y为0、Z为-155 mm,转角(Orientation)为-64.51°,表征零件到位停止后中心点P2相对于拍照等待点P1在X正向偏离量为44 mm、Z负向偏离量为155 mm、绕Z轴负向旋转了64.51°。
1.2.4 位置信息传送至机器人
Smart组件中,RapidVariable子件的主要功能是设置或者获得RAPID程序中的变量值,可用于模拟工作站将相机获取的零件位置信息发送至机器人的控制过程。图4为将随机零件X偏移量值和旋转数据rz通过RapidVariable子件向机器人程序变量进行传送的情况,其中Variable中X、rz是Rapid程序中的变量。
1.2.5 完成抓取放置动作
机器人根据RapidVariable子件传送的数据运动,在到达抓取和放置位置时发出信号,触发Smart组件中的Attacher和Detacher动作,实现随机零件的准确抓取和放置。
表2为Smart组件各子件按照工艺过程进行逻辑连接的情况。
表2 Smart组件各子件的逻辑连接
1.3.1 目标点设置
根据工艺过程,设置3个机器人运行目标点,如图5所示。其中,pHome为机器人作业开始等待点,pWait为机器人等待拍照点,pTarget为零件最终放置的位置。实际上,机器人在运行过程中还有零件拾取点、过渡点等关键点,这些点位可通过RelTool等指令进行偏移旋转获得。
图5 机器人目标点设置
1.3.2 I/O信号设置
仿真中机器人通过I/O信号与Smart组件关联,机器人信号共有3个,见表3。
表3 机器人I/O信号
机器人I/O信号与Smart组件I/O信号通过RobotStudio仿真软件中的工作站逻辑功能模块进行关联,对接关系如表4所示。
表4 机器人与Smart组件I/O信号对接关系
1.3.3 机器人程序编制
机器人实施零件拾取时要按照相机获取的位置偏差数据调整工具的位姿,这就需要考虑机器人工具坐标系与零件所在坐标系之间的关系。
图6为机器人工具坐标系与拾取点坐标系,机器人工具Tool_Eye_in_hand与零件之间X、Y、Z轴分别平行,X轴相差180°、Y轴方向一致、Z轴相差180°,工具与零件绕Z轴旋转正方向相反,相应的机器人程序语句如下:
图6 机器人工具坐标系与拾取点坐标系
MoveJ RelTool(pWait,-x*1000,y*1000,-z*1000 Rz:=
-rz/pi*180), v2500, fine, Tool_Eye_in_ handWObj:=
Workobject_1;
程序语句中,设置num型变量x、y、z、rz用来接收相机获取的X、Y、Z轴方向偏差以及绕Z轴的偏转角度。根据前述分析的坐标关系,程序中RelTool指令的x、z、rz值需要取负值。机器人主程序如下:
PROC main()
InitAll; !调用初始化程序,机器人复位
WHILE TRUE DO
PICK; !调用拾取零件程序
PUT; !调用放置零件程序
ENDWHILE
ENDPROC
PROC InitAll()
x:=0; !变量数据清零
y:=0; !变量数据清零
z:=0; !变量数据清零
rz:=0; !变量数据清零
Reset pick; !拾取信号复位
Reset put; !放置信号复位
MoveL pHome, v1000, z100, Tool_Eye_in_hand
WObj:=Workobject_1; !机器人返回HOME点ENDPROC
基于眼在手上视觉引导的工作站作业过程如图7所示。由图7可知,工作站机器人能够准确获取随机零件的位置及角度偏差,并依此引导机器人工具在零件中心进行拾取,较好地模拟了基于眼在手上的视觉引导方式下机器人的作业过程。
图7 基于眼在手上视觉引导的工作站作业过程
图8为眼在手外视觉引导的仿真工作站。眼在手外视觉引导的工业机器人工作站与眼在手上视觉引导的工业机器人工作站相比较,整体布局、Smart组件构成、机器人程序等大体相同,区别在于:①相机调整至流水线固定位置;②Smart组件中的传感器调整至流水线相机位置,零件触发传感器后不停止运动;③机器人实现零件动态拾取。
图8 眼在手外视觉引导的仿真工作站 图9 拍照点随机零件与拾取等待点位置关系
图9为拍照点随机零件与拾取等待点位置关系。当传感器检测到零件到达拍照点时触发相机拍照,获取其与机器人拾取等待点的位置与姿态偏差,仿真系统通过Smart组件的PositionSensor子件获取拍照点随机零件中心点P2与机器人等待点P1的相对位置(Position)及角度(Orientation)差值,相对位置偏差分别为ΔX、ΔY和ΔZ。设流水线速度为v1,机器人速度为v2,则有:
t1=ΔY/v1.
(1)
(2)
Δt=t1-t2.
(3)
其中:t1为零件从拍照点运行至机器人等待点的时间;t2为吸嘴工具从等待点运行到等待点位置所用时间;Δt为拍照后机器人等待启动的时间间隔,即零件触发传感器拍照后经Δt机器人开始运动去拾取零件。
机器人程序结构与前述基本相同,下面简要说明动态拾取Pick子程序:
PROC Pick()
MoveL Pwait,v2500,z100, Tool_Eye_to_handWObj:=Workobject_1;
!机器人移至等待点
WaitDI start,1; !机器人启动
t2:= Sqrt(Pow(x,2)+ Pow(z,2))/2.5; !计算时间t2
WaitTime 0.5; !等待0.5 s
t1:= y/0.2; !计算时间t1
WaitTime 0.5; !等待0.5 s
t:=t1-t2-1; !计算机器人启动时间t
WaitTime t; !机器人等待时间t
MoveJ reltool(Pwait,x*1000,y*1000,-z*1000Rz:=-
zj/pi*180),v2500,fine, Tool_Eye_to_handWObj:=Workobject_1;
!机器人移动至拾取点
WaitTime 0.1;
Set pick;
WaitTime 0.1;
Reset pick;
MoveJ reltool(Pwait,x*1000,y*1000, 0Rz:=-zj/pi*180),v2500,fine,
Tool_Eye_to_handWObj:=Workobject_1;
!机器人移动拾取点上方
ENDPROC
基于眼在手外视觉引导的工作站作业过程如图10所示。由图10可知,工作站机器人能够模拟零件动态拾取过程,动态拾取方案可行。
图10 基于眼在手外视觉引导的工作站作业过程
基于视觉引导的零件拾取作业是工业生产各领域进一步提升作业效率和精度的重要途径,本文依托RobotStudio仿真软件较为详细地阐述了眼在手上与眼在手外两种视觉引导方式下零件静态与动态拾取作业的仿真工作站方案,仿真运行显示两个工作站均能较好地反映相应作业过程、实现作业要求,为工程应用中相关作业工艺工程规划及机器人设置提供了有益的参考。