Element Coordination/zh-hans

From SoftMC-Wiki
< Element Coordination
Revision as of 03:27, 31 May 2017 by Chi (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
语言: English  • 中文(简体)‎

全局坐标概念

对于使用不同点类型的全局坐标概念的机器人已经被定义。 这允许以一种常见的独特格式给予机器人位置,以独立地观察机器人具有多少轴。 这里使用的关键属性是机器人的base变换,如Robot_Working_Frames所述

基坐标系属性

机器人有两个笛卡尔坐标系:世界(机器人)坐标系和基坐标系。

世界(机器人)坐标系

在由q = (q1,q2,q3, .... , qn)定义的机器人姿势中,n是机器人的NDOF。 世界(机器人)参考坐标由下式定义:

pworld = DirectKinematics (q)

其中p可以是:p =(x,y,z,偏航,俯仰,滚动)取决于机器人运动学。

NOTE-Info.svgNOTE
为了简化讨论,我们假定该工具包含在正运动学计算中。这里省略了工件和工作台的坐标系。


基坐标系

基坐标系是由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-Info.svgNOTE
给定的扩展适用于最多6个NDOF(不超过6个)的机器人。


NOTE-Info.svgNOTE
如果机器人点类型已经是XYZYPR,则全局和基本属性具有绝对相同的功能,可以相互添加。 他们都可以使用,但我们强烈建议只使用一个(而另一个保留为零),以减少混乱。


与此同时,还有两个新的属性:

例子

给定SCARA和PUMA机器人在同一个生产单元中,SCARA机器人在PUMA机器人的上方:


Global Frames.png


使用全局坐标系

执行以下运动命令:

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-Info.svgNOTE
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移动到同样的位置(目标)。