摘要:针对SCARA机器人末端在做直线运动" title="直线运动">直线运动时难以判定是否到达极限位置的问题,提出一种基于几何学的求解算法,用于精确计算出任意末端位置与可变工作空间条件下的直线运动极限点" title="极限点">极限点位置坐标值。并分别在左、右手系下通过MATLAB理论仿真与VC实际开发相对应的方式验证了该算法的正确性和可行性。
关键词:SCARA机器人; 直线运动; 极限点; MATLAB; VC
1. 引 言
SCARA机器人(Selective Compliance Assembly Robot Arm,选择顺应性装配机器手臂)是一种四轴" title="四轴">四轴机械手,它的第一、二、四轴具有转动特性,而第三轴具有线性移动特性,故其工作空间类似于一个扇形柱体区域。SCARA机器人主要用于完成搬运、装配等职能工作,目前广泛应用于汽车、电子、塑料、药品、食品等工业领域。
当SCARA机器人在流水线上进行往复运动时,其末端点经常会处于直线运动状态。由于末端位置与工作空间会随实际工况的要求而发生变化,预先确定末端在直线运动下的极限点坐标,并提前设定软件限位,对于防止过度驱动或错误操作下的机器人碰撞与损坏,具有非常重要的现实意义。因此,本文基于几何学理论,提出一种用于求解末端直线运动下的极限点位置坐标的算法。
2. 算法设计
假定SCARA机器人的基座安装在水平面内,依照从基座到末端的顺序,将其四个轴分别命名为X、Y、Z、R轴,且将R轴末端视为一个点(设为End),若在R轴末端安装夹具,则将夹具末端也视为一个点(设为Tip)。
2.1 前提条件
本算法的实现基于如下三个客观前提条件:
(1) 由于Z轴仅在竖直平面内做上下运动,并不会影响End点的水平面投影位置。而在不安装夹具的情况下,R轴的旋转运动也不会对此产生影响;再者,由于夹具没有附带对应的驱动装置,即使安装夹具也仅相当于将End点的水平面投影点在二维空间内相对平移了一个固定的矢量位置,扩展了一定的工作空间范围,但求解Tip点的直线运动极限点坐标的思想与End点完全一致。所以,Z轴和R轴的运动都不会影响到末端点的水平面投影位置。
(2) 由于SCARA机器人的工作空间是一个类似于扇形的柱体区域,将其投影在水平面上并不会使工作空间的边界发生改变。所以,End点的直线运动是否超出工作空间的范围仅与X、Y两轴的运动有关。
(3) 由于End点(或Tip点)在水平面二维空间下的直线运动有无穷多种可能的方向,而每种方向均与x-y直角坐标轴成一定角度,经旋转变换后都能归结到与坐标轴平行的方向上。所以,本算法只针对分别平行于x-y直角坐标轴的两种直线运动求解四个极限点坐标即可,其余运动方向上的极限点坐标可参照本算法旋转相应角度后求解。
2.2 设计过程" title="设计过程">设计过程
设基座位于x-y直角坐标系的原点O,SCARA机器人的大、小臂均完全展开时的姿态与x轴正向重合,为初始状态,规定两臂旋转的方向均取逆时针为正,顺时针为负,据此建立几何学模型。先由四条平面圆弧(设为C1~C4)确定水平面工作空间,同时给定末端当前点(设为Now)的坐标;再过点Now分别作两条坐标轴的平行线(设平行于x轴的直线为Line_H、平行于y轴的直线为Line_V),与边界圆弧相交;然后分别求出Line_H、Line_V与C1~C4的8个交点,若无交点则默认交点坐标为点Now的坐标值;接着判断交点中的有效点;最后确定出四个极限点(设为P1~P4)的位置坐标即为所求。
2.3 交点判定
从上述设计过程可知,所求的左、右极限点必然在Line_H与圆弧边界的交点之中,而上、下极限点必然在Line_V与圆弧边界的交点之中。所以,本算法的关键在于交点的判定。因为SCARA机器人在做直线运动时不会更换手系,所以可将左、右手系分开考虑。
在右手系下,圆弧C1~C4依次首尾相连围成一个封闭区域,如图1所示。其中,C1弧为小臂处于正向最大姿态且大臂自由运动时End点的轨迹,C2弧为小臂始终处于大臂的延长线上且大臂自由运动时End点的轨迹,C3弧为大臂处于正向最大姿态且小臂自由运动时End点的轨迹,C4弧为大臂处于负向最小姿态且小臂自由运动时End点的轨迹。Now点位于这个封闭区域内,P1~P4点的判定遵循如下原则:(1) P1、P2、P3、P4分别位于Now点的左、右、下、上方;(2) 各极限点在各自方位上均与Now点的直线距离最短;(3) 线段P1P2、P3P4均不穿过C1弧与坐标原点O围成的工作死区。
左手系与右手系类似,不再敖述。
3. 仿真与实现
本文采用MATLAB仿真与VC实现相对应验证的方式对算法加以说明。
3.1 MATLAB仿真
3.1.1 右手系
设最大工作空间取值范围如下:X轴为 ,Y轴为 ,当前末端点位置坐标为 ,最终所求的右手系下的4个极限点P1、P2、P3、P4的直角坐标值为(如图2所示):
3.1.2 左手系
左手系下的实现过程与右手系类似,如图3、图4所示。不同的只是Y轴的工作空间取值范围为 ,当前末端点位置坐标仍然取为 ,最终所求的左手系下的4个极限点P1、P2、P3、P4的直角坐标值为(如图4所示):
图3 左手系下的工作空间与当前点
图4 左手系下的极限点求解
需要说明的是,上述仿真示例只是给出了最大工作空间,在该工作空间内可选取任意子空间及包含其中的当前末端点进行仿真,仿真结果均表明,本算法能正确计算并确定SCARA机器人末端直线运动下的四个极限点坐标。
3.2 VC实现
采用VC开发软件封装功能函数,实现本算法。右、左手系下的界面分别如图5、图6所示。选取与上节MATLAB仿真示例中相同的工作空间与末端当前位置坐标等参数,求解出的四个极限点坐标与MATLAB结果完全对应相同。
3.2.1 右手系
3.2.2 左手系
图6 左手系下的算法实现
4. 结 论
本文提出了一种SCARA机器人直线运动极限点的求解算法,并通过MATLAB仿真与VC实现进行了对应验证。该算法能有效预测并解决实际操作中的安全问题,具有较强的实用价值。然而,考虑SCARA机器人的末端当前点正好位于工作空间的边界位置时,求解对应的极限点坐标,将是进一步研究的一个方向。