Difference between revisions of "Element Coordination/Global Coordinates"
(Created page with "= Universal Coordinates Concept = For working with robots of different point type's ''universal coordinates concept'' has been defined. This allows giving robot position in one…") |
(→Universal Coordinates Concept) |
||
Line 2: | Line 2: | ||
For working with robots of different point type's ''universal coordinates concept'' has been defined. This allows giving robot position in one common unique format for independently how many axes the robot has. The key property used here is the robot's [[Axystems:MC-Basic:robot.BASE|base]] transformation as described in:[[Axystems:Robot_Working_Frames|Robot_Working_Frames]] | For working with robots of different point type's ''universal coordinates concept'' has been defined. This allows giving robot position in one common unique format for independently how many axes the robot has. The key property used here is the robot's [[Axystems:MC-Basic:robot.BASE|base]] transformation as described in:[[Axystems:Robot_Working_Frames|Robot_Working_Frames]] | ||
+ | |||
+ | == BASE == | ||
+ | |||
+ | There are two cartesian coordinate system associated with a robot: World Frame and Base Frame | ||
+ | |||
+ | === World Frame === | ||
+ | |||
+ | Having a robot in a pose defined by ''q = (q<sub>1</sub>,q<sub>2</sub>,q<sub>3</sub>, .... , q<sub>n</sub>)'' where n is the NDOF of the robot. The world frame coordinates are defined by: | ||
+ | |||
+ | <center>'''''p<sub>world</sub> = Inverse Kinematics (q)'''''</center> | ||
+ | |||
+ | where p can be: p = (x,y,z, yaw, pitch,roll) depending on robot kinematics. | ||
+ | |||
+ | {{Note|For the sake of simplicity of this discussion we assume the '''''tool''''' is included in Inverse Kinematics calculation.<br> Frames of WorkPiece and MachineTable are omitted here.}} | ||
+ | |||
+ | |||
+ | === Base Frame === | ||
+ | |||
+ | |||
+ | Base Frame is the World Frame moved by the [[Axystems:MC-Basic:robot.BASE|robot.base]] propert: | ||
+ | |||
+ | p<sub>base</sub> = base:p<sub>world</sub> | ||
+ | |||
+ | where ''':''' is the compound operator. | ||
+ | |||
+ | == Universal Coordinates == | ||
+ | |||
+ | All user inputs (target points of motion commands , moving frame coordinates, etc.) are given in base coordinate system. However thse systems can differe from robot to robot (e.g. R1 has XYZR and R2 has XYZYPR). Therefore we assume one common base coordinate system that will transform all robots into one system by: | ||
+ | |||
+ | p<sup>1</sup><sub>base</sub> = R1.base:R1.InverseKinemaitcs(R1.pcmd) <br> | ||
+ | p<sup>2</sup><sub>base</sub> = R2.base:R2.InverseKinemaitcs(R2.pcmd) <br> | ||
+ | p<sup>3</sup><sub>base</sub> = R3.base:R3.InverseKinemaitcs(R3.pcmd) <br> | ||
+ | ... | ||
+ | p<sup>m</sup><sub>base</sub> = Rm.base:Rm.InverseKinemaitcs(Rm.pcmd) <br> | ||
+ | |||
+ | Assuming system of ''m''-robots. | ||
+ | |||
+ | This is achieved by: | ||
+ | <robot>.base can assigned in two ways: | ||
+ | * classical assignment by location of same point type: R1.base = #{100,200,0} | ||
+ | * ''universal coordinates'' - assignment by location of XYZYPR point type R1.base = #{100,200,0,0,180,0} | ||
+ | |||
+ | In both cases the <robot>.base coordinate will be kept internally as XYZYPR point. | ||
+ | |||
+ | Also all IverseKinemaitcs(.) function results will be embedded into ''universal coordinates'' (i.e. XYZYPR) by adding '''zeros''' on cartesian coordinates that are not included in robot kinematics. |
Revision as of 07:59, 7 June 2012
Contents
Universal Coordinates Concept
For working with robots of different point type's universal coordinates concept has been defined. This allows giving robot position in one common unique format for independently how many axes the robot has. The key property used here is the robot's base transformation as described in:Robot_Working_Frames
BASE
There are two cartesian coordinate system associated with a robot: World Frame and Base Frame
World Frame
Having a robot in a pose defined by q = (q1,q2,q3, .... , qn) where n is the NDOF of the robot. The world frame coordinates are defined by:
where p can be: p = (x,y,z, yaw, pitch,roll) depending on robot kinematics.
NOTE | |
For the sake of simplicity of this discussion we assume the tool is included in Inverse Kinematics calculation. Frames of WorkPiece and MachineTable are omitted here. |
Base Frame
Base Frame is the World Frame moved by the robot.base propert:
pbase = base:pworld
where : is the compound operator.
Universal Coordinates
All user inputs (target points of motion commands , moving frame coordinates, etc.) are given in base coordinate system. However thse systems can differe from robot to robot (e.g. R1 has XYZR and R2 has XYZYPR). Therefore we assume one common base coordinate system that will transform all robots into one system by:
p1base = R1.base:R1.InverseKinemaitcs(R1.pcmd)
p2base = R2.base:R2.InverseKinemaitcs(R2.pcmd)
p3base = R3.base:R3.InverseKinemaitcs(R3.pcmd)
...
pmbase = Rm.base:Rm.InverseKinemaitcs(Rm.pcmd)
Assuming system of m-robots.
This is achieved by: <robot>.base can assigned in two ways:
- classical assignment by location of same point type: R1.base = #{100,200,0}
- universal coordinates - assignment by location of XYZYPR point type R1.base = #{100,200,0,0,180,0}
In both cases the <robot>.base coordinate will be kept internally as XYZYPR point.
Also all IverseKinemaitcs(.) function results will be embedded into universal coordinates (i.e. XYZYPR) by adding zeros on cartesian coordinates that are not included in robot kinematics.