Element Coordination/zh-hans
语言: | English • 中文(简体) |
---|
Contents
全局坐标概念
对于使用不同点类型的全局坐标概念的机器人已经被定义。 这允许以一种常见的独特格式给予机器人位置,以独立地观察机器人具有多少轴。 这里使用的关键属性是机器人的base变换,如Robot_Working_Frames所述
基坐标系属性
机器人有两个笛卡尔坐标系:世界(机器人)坐标系和基坐标系。
世界(机器人)坐标系
在由q = (q1,q2,q3, .... , qn)定义的机器人姿势中,n是机器人的NDOF。 世界(机器人)参考坐标由下式定义:
其中p可以是:p =(x,y,z,偏航,俯仰,滚动)取决于机器人运动学。
NOTE | |
为了简化讨论,我们假定该工具包含在正运动学计算中。这里省略了工件和工作台的坐标系。 |
基坐标系
基坐标系是由robot.base属性移动的世界(机器人)坐标系:
pbase = base:pworld
其中:是复合运算符。
全局基坐标属性(全局坐标)
所有用户输入(目标运动指令点,运动参考坐标等)都在基座坐标系中给出。 然而,这些系统可以与机器人不同(例如,R1具有XYZR和R2具有XYZYPR)。 因此,我们假设一个共同的(全局)基坐标系,将所有机器人转换到一个系统:
p1global = R1.glbalbase:R1.base:R1.DirectKinemaitcs(R1.pcmd)
p2global = R2.glbalbase:R2.base:R2.DirectKinemaitcs(R2.pcmd)
p3global = R3.glbalbase:R3.base:R3.DirectKinemaitcs(R3.pcmd)
...
pmglobal = Rm.glbalbase:Rm.base:Rm.DirectKinemaitcs(Rm.pcmd)
假设系统有m个机器人
这是通过添加始终与实际机器人点类型无关的<robot>.globalbase位置来实现的,在XYZYPR系统中给出
为了使全局坐标系尽可能的使用,运动命令(MOVE,MOVES,MOVESKD,CIRCLE ...)的扩展方式除了目前仅允许的机器人点类型的位置之外,还可以接受XYZYPR点类型的位置。
NOTE | |
给定的扩展适用于最多6个NDOF(不超过6个)的机器人。 |
NOTE | |
如果机器人点类型已经是XYZYPR,则全局和基本属性具有绝对相同的功能,可以相互添加。 他们都可以使用,但我们强烈建议只使用一个(而另一个保留为零),以减少混乱。 |
与此同时,还有两个新的属性:
例子
给定SCARA和PUMA机器人在同一个生产单元中,SCARA机器人在PUMA机器人的上方:
使用全局坐标系
执行以下运动命令:
Move scara target
Move puma target
其中目标是点类型XYZYPR的位置
将其转移到每个机器人的基本坐标系中:
对Scara:
targetscaraB ← scara.gbase-1:target
其中 "←" 表示仅复制X,Y,Z和旋转坐标
对Puma:
targetpumaB = puma.gbase-1:target
这里我们有"=" 符号,因为puma和全局坐标系具有相同的点类型
数字示例
Move scara #{100,100,700,0,0,50} Move puma #{100,100,700,0,0,50}
有:
scara.gbase = #{0,100,700,0,0,0} scara.base = #{100,100,0,0} puma.gbase = #{0,0,0,0,0,0} puma.base = #{200,100,0,0,0,0}
我们获得SCARA的本地目标位置(在SCARA的基坐标系中):
#{0,100,700,0,0,0}-1 : #{100,100,700,0,0,50}为 #{100 , 0 , 0 , 0 , 0 , 50},可以写为:
#{100,0,0,50}← #{0,100,700,0,0,0}-1 : #{100,100,700,0,0,50}
表示目标点在SCARA的基坐标系是: #{100,0,0,50}
PUMA机器人本地目标点以类似的方法计算:
#{200,100,0,0,0,0}-1 : #{100,100,700,0,0,50}为 #{-100 , 0 , 700 , 0 , 0 , 50}, which we can write as:
#{-100,0,700,0,0,50}← #{200,100,0,0,0,0}-1 : #{100,100,700,0,0,50}
表示目标点在PUMA机器人基坐标系上为: #{-100,0,700,0,0,50}
NOTE | |
PUMA运动学中的GBASE和BASE表示相同的事情,尽管可以给出不同的值(然后使用组合gbase:base),但强烈建议仅使用一个,另一个保留为零,即:#{0,0,0,0,0,0} |
使用基于机器人的运动参考系
可以使用基于机器人的运动参考系实现相同的功能示例。
我们假设PUMA机器人是主机器人:
common shared MF as Moving Frame of XYZR
MF.MSource = puma.setppoint MF.OBJECTLOC = #{0,0,0,0} MF.BASE = Inverse(#{0,100,700,0,0,0}) scara.MasterFrame = MF scara.slave = 5
现在发行:
Move puma target
和
Moves MF.zero
将puma和scara移动到同样的位置(目标)。