Difference between revisions of "Element Coordination/zh-hans"
| (3 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | {{Languages}} | + | {{Languages|Element_Coordination}} |
| − | = | + | =全局坐标概念 = |
| − | + | 对于使用不同点类型的''全局坐标概念''的机器人已经被定义。 这允许以一种常见的独特格式给予机器人位置,以独立地观察机器人具有多少轴。 这里使用的关键属性是机器人的[[MC-Basic:robot.BASE|base]]变换,如[[Robot Working Frames|Robot_Working_Frames]]所述 | |
| − | + | == 基坐标系属性 == | |
| + | 机器人有两个笛卡尔坐标系:世界(机器人)坐标系和基坐标系。 | ||
| − | + | === 世界(机器人)坐标系 === | |
| − | + | 在由''q = (q<sub>1</sub>,q<sub>2</sub>,q<sub>3</sub>, .... , q<sub>n</sub>)''定义的机器人姿势中,n是机器人的NDOF。 世界(机器人)参考坐标由下式定义: | |
| + | <center>'''''p<sub>world</sub> = DirectKinematics (q)'''''</center> | ||
| + | 其中p可以是:p =(x,y,z,偏航,俯仰,滚动)取决于机器人运动学。 | ||
| − | {{Note | + | {{Note|为了简化讨论,我们假定该'''''工具'''''包含在正运动学计算中。这里省略了工件和工作台的坐标系。}} |
| − | + | === 基坐标系 === | |
| + | 基坐标系是由[[MC-Basic:robot.BASE|robot.base]]属性移动的世界(机器人)坐标系: | ||
| − | + | p<sub>base</sub> = base:p<sub>world</sub> | |
| + | 其中''':'''是复合运算符。 | ||
| − | + | == 全局基坐标属性(全局坐标) == | |
| − | + | 所有用户输入(目标运动指令点,运动参考坐标等)都在基座坐标系中给出。 然而,这些系统可以与机器人不同(例如,R1具有XYZR和R2具有XYZYPR)。 因此,我们假设一个共同的(全局)基坐标系,将所有机器人转换到一个系统: | |
| − | == | + | p<sup>1</sup><sub>global</sub> = '''R1.glbalbase''':R1.base:R1.DirectKinemaitcs(R1.pcmd) <br> |
| + | p<sup>2</sup><sub>global</sub> = '''R2.glbalbase''':R2.base:R2.DirectKinemaitcs(R2.pcmd) <br> | ||
| + | p<sup>3</sup><sub>global</sub> = '''R3.glbalbase''':R3.base:R3.DirectKinemaitcs(R3.pcmd) <br> | ||
| + | ...<br> | ||
| + | p<sup>m</sup><sub>global</sub> = '''Rm.glbalbase''':Rm.base:Rm.DirectKinemaitcs(Rm.pcmd) <br> | ||
| − | + | 假设系统有''m''个机器人 | |
| − | + | 这是通过添加始终与实际机器人点类型无关的[[MC-Basic:robot.GLOBALBASE|<robot>.globalbase]]位置来实现的,在XYZYPR系统中给出 | |
| − | |||
| − | + | <div style="background-color:yellow;"> | |
| + | '''为了使全局坐标系尽可能的使用,运动命令(MOVE,MOVES,MOVESKD,CIRCLE ...)的扩展方式除了目前仅允许的机器人点类型的位置之外,还可以接受XYZYPR点类型的位置。 | ||
| + | ''' | ||
| + | </div> | ||
| − | |||
| − | + | {{Note|给定的扩展适用于最多6个NDOF(不超过6个)的机器人。}} | |
| − | |||
| − | |||
| − | |||
| − | {{Note| | + | {{Note| 如果机器人点类型已经是XYZYPR,则全局和基本属性具有绝对相同的功能,可以相互添加。 他们都可以使用,但我们强烈建议只使用一个(而另一个保留为零),以减少混乱。}} |
| − | |||
| − | |||
| − | |||
| − | + | 与此同时,还有两个新的属性: | |
| + | * [[MC-Basic:robot.GLOBALSETPOINT|<robot>.globalsetpoint]]类似于常规[[MC-Basic:robot.SETPOINT|<robot>.setpoint]] | ||
| + | * [[MC-Basic:robot.GLOBALHERE|<robot>.globalhere]] 类似于常规[[MC-Basic:robot.HERE|<robot>.here]] | ||
| − | + | == 例子 == | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | 给定SCARA和PUMA机器人在同一个生产单元中,SCARA机器人在PUMA机器人的上方: | ||
| − | |||
| − | + | [[File:Global Frames.png]] | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | === 使用全局坐标系 === | ||
| − | + | 执行以下运动命令: | |
| + | '''Move scara target<br> | ||
| + | '''Move puma target<br> | ||
| + | 其中目标是点类型XYZYPR的位置<br> | ||
| + | 将其转移到每个机器人的基本坐标系中: | ||
| − | + | <u>对Scara:</u> | |
| + | |||
| + | target<sup>scara</sup><sub>B</sub> ← scara.gbase<sup>-1</sup>:target | ||
| + | |||
| + | 其中 "←" 表示仅复制X,Y,Z和旋转坐标 | ||
| + | |||
| + | |||
| + | <u>对Puma:</u> | ||
| + | |||
| + | target<sup>puma</sup><sub>B</sub> = puma.gbase<sup>-1</sup>:target | ||
| + | |||
| + | 这里我们有"=" 符号,因为puma和全局坐标系具有相同的点类型 | ||
| + | |||
| + | ==== 数字示例 ==== | ||
| + | |||
| + | <pre> | ||
| + | Move scara #{100,100,700,0,0,50} | ||
| + | Move puma #{100,100,700,0,0,50} | ||
| + | </pre> | ||
| + | |||
| + | 有: | ||
| + | |||
| + | <pre>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} | ||
| + | </pre> | ||
| + | |||
| + | 我们获得'''SCARA'''的本地目标位置(在SCARA的基坐标系中): | ||
| + | |||
| + | |||
| + | <nowiki>#</nowiki>{0,100,700,0,0,0}<sup>-1</sup> : #{100,100,700,0,0,50}为 #{'''100''' , '''0''' , '''0''' , 0 , 0 ,''' 50'''},可以写为:<br> | ||
| + | <nowiki>#</nowiki>{100,0,0,50}← #{0,100,700,0,0,0}<sup>-1</sup> : #{100,100,700,0,0,50} | ||
| + | 表示目标点在SCARA的基坐标系是: '''<u>#{100,0,0,50}</u>''' | ||
| + | |||
| + | '''PUMA'''机器人本地目标点以类似的方法计算: | ||
| + | |||
| + | <nowiki>#</nowiki>{200,100,0,0,0,0}<sup>-1</sup> : #{100,100,700,0,0,50}为 #{'''-100''' , '''0''' , '''700''' , 0 , 0 ,''' 50'''}, which we can write as:<br> | ||
| + | <nowiki>#</nowiki>{-100,0,700,0,0,50}← #{200,100,0,0,0,0}<sup>-1</sup> : #{100,100,700,0,0,50} | ||
| + | 表示目标点在PUMA机器人基坐标系上为: '''<u>#{-100,0,700,0,0,50}</u>''' | ||
| + | |||
| + | |||
| + | |||
| + | {{Note| PUMA运动学中的GBASE和BASE表示相同的事情,尽管可以给出不同的值(然后使用组合gbase:base),但强烈建议仅使用一个,另一个保留为零,即:#{0,0,0,0,0,0} }} | ||
| + | |||
| + | === 使用基于机器人的运动参考系 === | ||
| + | |||
| + | 可以使用基于机器人的运动参考系实现相同的功能示例。 | ||
| + | |||
| + | 我们假设PUMA机器人是主机器人: | ||
| + | |||
| + | common shared MF as Moving Frame of XYZR | ||
| + | |||
| + | <pre> | ||
| + | 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 | ||
| + | </pre> | ||
| + | |||
| + | 现在发行:<br> | ||
| + | |||
| + | Move puma target<br> | ||
| + | ''和''<br> | ||
| + | Moves MF.zero<br> | ||
| + | |||
| + | 将puma和scara移动到同样的位置(目标)。<br> | ||
Latest revision as of 03:27, 31 May 2017
| 语言: | 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移动到同样的位置(目标)。
