在ABB机器人中,位置的表示与存储是通过 robtarget 数据类型来实现的。robtarget是用于定义机器人与机器人附加轴的移动指令中的位置的。当机器人能够以多种不同的方式达到相同位置时,同时规定轴配置。这次我们着重来剖析一下,轴配置的含义。
一、我们首先回顾一下robtarget数据的组成
CONST robtarget p10 := [ [600, 300, 225.3], [1, 0, 0, 0], [1, 1,0, 0], [ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
如上边举例所示,robtarget型数据由四部分组件构成:
trans(translation)组件:
用mm来表示工具中心点的位置(x、y和z)。规定相对于当前目标坐标系的位置,包括程序位移。如果未规定任何工件,则为世界坐标系。上例中,X坐标是600,Y坐标是300,Z坐标是225.3。
rot(rotation)组件:
工具方位以四元数的形式表示(q1、q2、q3和q4)。规定相对于当前目标坐标系的方位,包括程序位移。如果未规定任何工件,则为世界坐标系。上例中q1是1,q2、q3、q4都是0。
robconf(robot configuration)组件:
机械臂的轴配置(cf1、cf4、cf6和cfx)。以轴1、轴4和轴6当前四分之一旋转的形式进行定义。将一个正四分之一旋转0到90°定义为0。组件cfx的含义取决于机械臂类型。上例中,cf1是1,cf4是1,cf6是0,cfx是0。这四个数的具体含义这次会在下面详细剖析。
extax(external axes)组件:
附加轴的位置。上例中没有附加轴。
二、下面我们正式解释一下轴配置中的四个数据的含义
以常见的6轴串联机器人为例,我们先来学习一下两个机器人中的基本概念——旋转轴与摆动轴。
机器人中的2轴、3轴、5轴属于摆动轴,摆动轴的运动范围在机械结构上是有限制的,原理上不能无限旋转。
机器人中的1轴、4轴、6轴属于旋转轴,旋转轴的运动范围在机械结构上是没有限制,原理上可以无限旋转。那么“轴配置参数”这个概念就是针对旋转轴的这一特性是发明的。这也就是为什么轴配置由cf1、cf4、cf6组成,它们其实就是代表着轴1、4、6的相关属性。那还有一个cfx呢?别着急,接着往下看。
上面说了,旋转轴理论上是可以无限旋转的,那就有可能在旋转的时候超过一圈。以ABB机器人的6轴为例,它的活动范围是-400度~+400度。那么当六轴旋转到10度的时候,怎么区分他是旋转了10度还是370度呢?因为他们所对应的机械位置是一样的。就是说如果我想让六轴转到10度的位置,那我是让它正转10度呢?还是正转370度呢?为了表述这个问题,我们为机器人轴的活动范围划分了象限。接着往下看。
三、关节旋转角四等分象限
如上图所示,我们将旋转轴的活动范围通过划分象限来进行约束。如果一个的活动范围是-360度~+360度,那他的象限划分是这样的。
正转的时候:
在0~90度的时候对应象限0;
在90~180度的时候对应象限1;
在180~270度的时候对应象限2;
在270~360度的时候对应象限3.
反转的时候:
在0~-90度的时候对应象限-1;
在-90~-180度的时候对应象限-2;
在-180~-270度的时候对应象限-3;
在-270~-360度的时候对应象限-4.
上面的象限名称就对应着轴配置里面的数。假设一个机器人的cf1值为2,那么就代表当机器人运行到这个点的过程中,他们轴运动范围只能是180度~270度。哈哈,是不是一下子理解了呢?