Difference between revisions of "Work Space Limits"

From SoftMC-Wiki
Jump to: navigation, search
(new page)
 
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{Languages|Work_Space_Limits}}
 
==Description==
 
==Description==
Each robot work's environment contains several frames, which has different definitions and limitations. The purpose of the '''work Space''' commands is to defined each frame limitations, and combine them under all of the constraints. <br>  
+
Each robot work's environment contains several frames, which has different definitions and limitations. The purpose of the '''Work Space Limits''' commands is to define each frame limitations, and combine them under all of the constraints. <br>
 +
 
 
==Definitions==
 
==Definitions==
 
The frames are defined as:  
 
The frames are defined as:  
Line 8: Line 10:
 
* MachineTable - #{X,Y,Z,y,p,r}
 
* MachineTable - #{X,Y,Z,y,p,r}
 
* WorkPiece - #{X,Y,Z,y,p,r}
 
* WorkPiece - #{X,Y,Z,y,p,r}
When '''#''' represent Cartesian point coordinate.<br>
+
When '''#''' represents Cartesian point coordinate.<br>
  
  
The robot '''SetPoint''' parameter defined as the edge point of the robot's tool. When all frames are set to #{0,0,0,0,0,0}, the [[MC-Basic:robot.SETPOINT|robot.SetPoint]] command will show: '''SetPoint = P<sub>b</sub>''', when '''P<sub>b</sub>''' is the vector to the robot edge  relative to it's base ('''NOT''' the tool edge). <br>  
+
The robot '''SetPoint''' parameter defined as the edge point of the robot's tool. When all frames are set to #{0,0,0,0,0,0}, the [[MC-Basic:robot.SETPOINT|robot.SetPoint]] command will show: '''SetPoint = P<sub>b</sub>''', where '''P<sub>b</sub>''' is the vector to the robot edge  relative to it's base ('''NOT''' the tool edge). <br>  
  
 
In general, the [[MC-Basic:robot.SETPOINT|robot.SetPoint]] parameter is calculated as follows: <br>  
 
In general, the [[MC-Basic:robot.SETPOINT|robot.SetPoint]] parameter is calculated as follows: <br>  
 
'''SetPoint = WorkPiece<sup>-1</sup>:MachineTable<sup>-1</sup>:Base:P<sub>b</sub>:Tool''' <br>
 
'''SetPoint = WorkPiece<sup>-1</sup>:MachineTable<sup>-1</sup>:Base:P<sub>b</sub>:Tool''' <br>
The relations between the frames and the P<sub>b</sub>  vector shown here: <br>  
+
The relations between the frames and the P<sub>b</sub>  vector are shown here: <br>  
 
[[Image: ws_1.png | 250px]] [[Image: ws_2.png | 650px]]
 
[[Image: ws_1.png | 250px]] [[Image: ws_2.png | 650px]]
  
==Work Space definition==
+
==Work Space Limits definition==
As each frame has it's self limitations, and to define them you should use '''<Frame>.''command''''', for example:  
+
Each frame has its own limitations. In order to define them, one should use '''<Frame>.''command''''', for example:  
 
<pre>Base.Xmax = 150
 
<pre>Base.Xmax = 150
 
?MachineTable.Zmin
 
?MachineTable.Zmin
Tool.zmax = 1230</pre>
+
Tool.Zmax = 1230</pre>
  
  
Line 31: Line 33:
  
 
For example: <br>  
 
For example: <br>  
 +
 +
 
[[Image: ws_3.png | 750px]]
 
[[Image: ws_3.png | 750px]]
 +
 +
 +
 +
Another example: <br>
 +
 +
 +
[[Image: ws_4.png| 750px]]
  
 
==Limits Examination==
 
==Limits Examination==
 
In order to examine if a certain point is inside the allowed working area, the [[MC-Basic:robot.SETPOINT|robot.SetPoint]] should be transformed into each frame, and then it should be checked that the transformed point is inside the limits of the frame.
 
In order to examine if a certain point is inside the allowed working area, the [[MC-Basic:robot.SETPOINT|robot.SetPoint]] should be transformed into each frame, and then it should be checked that the transformed point is inside the limits of the frame.
  
The transformations for each frame calculate by the next table: <br>  
+
The transformations for each frame are calculated as follows: <br>  
  
 
{| border="1" cellpadding="2" cellspacing="0"
 
{| border="1" cellpadding="2" cellspacing="0"
Line 76: Line 87:
  
  
The check protocol start with '''World frame <big><big>→</big></big> Base frame <big><big>→</big></big> MachineTable frame <big><big>→</big></big> WorkPiece frame <big><big>→</big></big> Tool frame''',<br>  When each frame coordinates checked from '''Xmax <big><big>→</big></big> Xmin <big><big>→</big></big> Ymax <big><big>→</big></big> Ymin <big><big>→</big></big> Zmax <big><big>→</big></big> Zmin '''
+
The check protocol starts with '''World frame <big><big>→</big></big> Base frame <big><big>→</big></big> MachineTable frame <big><big>→</big></big> WorkPiece frame <big><big>→</big></big> Tool frame''',<br>  Where the check order in each frame is '''Xmax <big><big>→</big></big> Xmin <big><big>→</big></big> Ymax <big><big>→</big></big> Ymin <big><big>→</big></big> Zmax <big><big>→</big></big> Zmin '''
  
 
{{Note|In case that the movement command isn't valid in any parameter, the program will stop checking, and raise an '''Error Message'''}}
 
{{Note|In case that the movement command isn't valid in any parameter, the program will stop checking, and raise an '''Error Message'''}}
  
 +
==Examples==
  
==Example==
+
==6 Degree Of Freedom (DOF) Robot==
{| border="1" cellpadding="5" cellspacing="0"  
+
 
 +
{| border="1" cellpadding="5" cellspacing="0" style="text-align: center"
  
 
!width = "100" bgcolor = A9A9A9| '''Frame'''
 
!width = "100" bgcolor = A9A9A9| '''Frame'''
Line 96: Line 109:
 
| -200, 200
 
| -200, 200
 
| -200, 200
 
| -200, 200
 
  
 
|-
 
|-
Line 104: Line 116:
 
| 0, 400
 
| 0, 400
 
| 0, 800
 
| 0, 800
 
  
 
|-
 
|-
Line 112: Line 123:
 
| -1000, 1000
 
| -1000, 1000
 
| 0, 1000
 
| 0, 1000
 
 
  
 
|-
 
|-
Line 122: Line 131:
 
| -200, 200
 
| -200, 200
  
   
+
  |-
|-
 
 
|World
 
|World
 
|None
 
|None
Line 133: Line 141:
  
  
Assume that the desired SetPoint is:  #{100,100,0,0,0,0} and that P<sub>b</sub>,0 is: #{100,100,900,-45,90,0} - '''Is it in the work area of the limits?'''
+
Assume that the desired SetPoint is:  #{100,100,0,0,0,0} and that P<sub>b,0</sub> is: #{100,100,900,-45,90,0} - '''Is it in the work area of the limits?'''
  
  
  
{| border="1" cellpadding="2" cellspacing="0"
+
{| border="1" cellpadding="2" cellspacing="0" style="text-align: center"
  
 
!width = "100" bgcolor = A9A9A9| '''Frame'''
 
!width = "100" bgcolor = A9A9A9| '''Frame'''
Line 174: Line 182:
  
 
|}
 
|}
 +
 +
 +
==4 Degree Of Freedom (DOF) Robot==
 +
 
 +
{| border="1" cellpadding="5" cellspacing="0" style="text-align: center"
 +
 +
!width = "100" bgcolor = A9A9A9| '''Frame'''
 +
!width = "250" bgcolor = A9A9A9| '''Value'''
 +
!width = "100" bgcolor = A9A9A9| '''Xmin, Xmax'''
 +
!width = "100" bgcolor = A9A9A9| '''Ymin, Ymax'''
 +
!width = "100" bgcolor = A9A9A9| '''Zmin, Zmax'''
 +
 +
|-
 +
|WorkPiece
 +
|#{100, 50, 0, 0}
 +
| -100, 250
 +
| -300, 30
 +
| -200, 200
 +
 +
|-
 +
|MachineTable
 +
|#{320, 120, 350, 0}
 +
| 0, 700
 +
| 0, 500
 +
| 0, 500
 +
 +
|-
 +
|Base
 +
|#{0, 0, 0, 0}
 +
| -1000, 1000
 +
| -1000, 1000
 +
| 0, 1000
 +
 +
|-
 +
|Tool
 +
|#{0, 20, 40, 25}
 +
| -30, 20
 +
| -30, 20
 +
| -30, 20
 +
 +
|-
 +
|World
 +
|None
 +
| -1500, 1500
 +
| -1500, 1500
 +
| 0, 2000
 +
 +
|}
 +
 +
 +
Assume that the desired SetPoint is:  #{380 , -150 , -310 , 25} and that P<sub>b,0</sub> is: #{780, -50, 0, 0} - '''Is it in the work area of the limits?'''
 +
 +
 +
 +
{| border="1" cellpadding="2" cellspacing="0" style="text-align: center"
 +
 +
!width = "100" bgcolor = A9A9A9| '''Frame'''
 +
!width = "750" bgcolor = A9A9A9| '''Formula'''
 +
!width = "150" bgcolor = A9A9A9| '''In Limits?'''
 +
 +
|-
 +
|WorkPiece
 +
|CheckPoint = SetPoint = :  #{380 , -150 , -310 , 25}
 +
|'''No - Xmax and Zmin'''
 +
 +
 +
|-
 +
|MachineTable
 +
|CheckPoint = WorkPiece:SetPoint = #{480 , -100 , -310 , 25}
 +
 +
|'''No - Ymin and Zmin'''
 +
 +
|-
 +
|Base
 +
|CheckPoint = Base<sup>-1</sup>:MachineTable:WorkPiece:SetPoint = #{800, 20, 40, 0}
 +
|'''Yes'''
 +
 +
 +
|-
 +
|Tool
 +
|CheckPoint = Tool<sup>-1</sup>:P<sub>b,0</sub><sup>-1</sup>:Base<sup>-1</sup>:MachineTable:WorkPiece:SetPoint = #{111.762 , 3.05356 , 0 , 0}
 +
 +
|'''No - Xmax'''
 +
 +
 +
|-
 +
|World
 +
|CheckPoint = MachineTable:WorkPiece:SetPoint = #{800, 20, 40, 0}
 +
|'''Yes'''
 +
 +
|}
 +
 
==See Also==
 
==See Also==
<span style="color:#ff0000">'''Links to the commands'''<span>
+
 
 +
* [[Robot Working Frames|Robot Working Frames]]
 +
* [[MC-Basic:robot.BASE|robot.BASE]]
 +
* [[MC-Basic:robot.WORKPIECE|robot.WorkPiece]]
 +
* [[MC-Basic:robot.MACHINETABLE|robot.MACHINETABLE]]
 +
* [[MC-Basic:robot.TOOL|robot.Tool]]
 +
* [[MC-Basic:robot.BASE.XMAX|robot.BASE.XMAX]]
 +
* [[MC-Basic:robot.BASE.XMIN|robot.BASE.XMIN]]
 +
* [[MC-Basic:robot.BASE.YMAX|robot.BASE.YMAX]]
 +
* [[MC-Basic:robot.BASE.YMIN|robot.BASE.YMIN]]
 +
* [[MC-Basic:robot.BASE.ZMAX|robot.BASE.ZMAX]]
 +
* [[MC-Basic:robot.BASE.ZMIN|robot.BASE.ZMIN]]
 +
* [[MC-Basic:robot.WORKPIECE.XMAX|robot.WORKPIECE.XMAX]]
 +
* [[MC-Basic:robot.WORKPIECE.XMIN|robot.WORKPIECE.XMIN]]
 +
* [[MC-Basic:robot.WORKPIECE.YMAX|robot.WORKPIECE.YMAX]]
 +
* [[MC-Basic:robot.WORKPIECE.YMIN|robot.WORKPIECE.YMIN]]
 +
* [[MC-Basic:robot.WORKPIECE.ZMAX|robot.WORKPIECE.ZMAX]]
 +
* [[MC-Basic:robot.WORKPIECE.ZMIN|robot.WORKPIECE.ZMIN]]
 +
* [[MC-Basic:robot.MACHINETABLE.XMAX|robot.MACHINETABLE.XMAX]]
 +
* [[MC-Basic:robot.MACHINETABLE.XMIN|robot.MACHINETABLE.XMIN]]
 +
* [[MC-Basic:robot.MACHINETABLE.YMAX|robot.MACHINETABLE.YMAX]]
 +
* [[MC-Basic:robot.MACHINETABLE.YMIN|robot.MACHINETABLE.YMIN]]
 +
* [[MC-Basic:robot.MACHINETABLE.ZMAX|robot.MACHINETABLE.ZMAX]]
 +
* [[MC-Basic:robot.MACHINETABLE.ZMIN|robot.MACHINETABLE.ZMIN]]
 +
* [[MC-Basic:robot.TOOL.XMAX|robot.TOOL.XMAX]]
 +
* [[MC-Basic:robot.TOOL.XMIN|robot.TOOL.XMIN]]
 +
* [[MC-Basic:robot.TOOL.YMAX|robot.TOOL.YMAX]]
 +
* [[MC-Basic:robot.TOOL.YMIN|robot.TOOL.YMIN]]
 +
* [[MC-Basic:robot.TOOL.ZMAX|robot.TOOL.ZMAX]]
 +
* [[MC-Basic:robot.TOOL.ZMIN|robot.TOOL.ZMIN]]

Latest revision as of 08:29, 5 November 2017

Language: English  • 中文(简体)‎

Description

Each robot work's environment contains several frames, which has different definitions and limitations. The purpose of the Work Space Limits commands is to define each frame limitations, and combine them under all of the constraints.

Definitions

The frames are defined as:

  • World - universal frame
  • Base - #{X,Y,Z,y,p,r}
  • Tool - #{X,Y,Z,y,p,r}
  • MachineTable - #{X,Y,Z,y,p,r}
  • WorkPiece - #{X,Y,Z,y,p,r}

When # represents Cartesian point coordinate.


The robot SetPoint parameter defined as the edge point of the robot's tool. When all frames are set to #{0,0,0,0,0,0}, the robot.SetPoint command will show: SetPoint = Pb, where Pb is the vector to the robot edge relative to it's base (NOT the tool edge).

In general, the robot.SetPoint parameter is calculated as follows:
SetPoint = WorkPiece-1:MachineTable-1:Base:Pb:Tool
The relations between the frames and the Pb vector are shown here:
ws 1.png ws 2.png

Work Space Limits definition

Each frame has its own limitations. In order to define them, one should use <Frame>.command, for example:

Base.Xmax = 150
?MachineTable.Zmin
Tool.Zmax = 1230


NOTE-Info.svgNOTE
If these parameters are referred to without a frame, the parameters are set for the WORLD frame

When a move command is issued, an examination is made to check if the point doesn’t exceed the defined limits.
For Moves and Circle commands, the examination checks that the entire path doesn’t exceed the defined limits. For a Move command, only the final point is examined.

For example:


ws 3.png


Another example:


ws 4.png

Limits Examination

In order to examine if a certain point is inside the allowed working area, the robot.SetPoint should be transformed into each frame, and then it should be checked that the transformed point is inside the limits of the frame.

The transformations for each frame are calculated as follows:

Frame Formula
WorkPiece CheckPoint = SetPoint = WorkPiece-1:MachineTable-1:Base:Pb:Tool


MachineTable CheckPoint = WorkPiece:SetPoint = MachineTable-1:Base:Pb:Tool


World CheckPoint = MachineTable:WorkPiece:SetPoint = Base:Pb:Tool


Base CheckPoint = Base-1:MachineTable:WorkPiece:SetPoint = Pb:Tool


Tool CheckPoint = Tool-1:Pb,0-1:Base-1:MachineTable:WorkPiece:SetPoint=Tool-1:Pb,0-1:Pb:Tool


NOTE-Info.svgNOTE
For the Tool frame, the absolute limits are defined relative to Pb at the time that the Tool frame limits were defined. This position is defined as Pb,0 .


The check protocol starts with World frame Base frame MachineTable frame WorkPiece frame Tool frame,
Where the check order in each frame is Xmax Xmin Ymax Ymin Zmax Zmin

NOTE-Info.svgNOTE
In case that the movement command isn't valid in any parameter, the program will stop checking, and raise an Error Message

Examples

6 Degree Of Freedom (DOF) Robot

Frame Value Xmin, Xmax Ymin, Ymax Zmin, Zmax
WorkPiece #{20,70,150,0,90,-90} -200, 200 -200, 200 -200, 200
MachineTable #{400,100,0,0,0,0} 0, 400 0, 400 0, 800
Base #{300,200,1000,0,180,180} -1000, 1000 -1000, 1000 0, 1000
Tool #{50,0,0,90, 45, 0} -200, 200 -200, 200 -200, 200
World None -1500, 1500 -1500, 1500 0, 2000


Assume that the desired SetPoint is: #{100,100,0,0,0,0} and that Pb,0 is: #{100,100,900,-45,90,0} - Is it in the work area of the limits?


Frame Formula In Limits?
WorkPiece CheckPoint = SetPoint = : #{100,100,0,0,0,0} Yes


MachineTable CheckPoint = WorkPiece:SetPoint = #{20,-30,50,0,90,-90} No - Ymin
Base CheckPoint = Base-1:MachineTable:WorkPiece:SetPoint = #{120,130,950,0,90,90} Yes


Tool CheckPoint = Tool-1:Pb,0-1:Base-1:MachineTable:WorkPiece:SetPoint = #{30,100,20,0,0,0} Yes


World CheckPoint = MachineTable:WorkPiece:SetPoint = #{420,70,50,0,90,-90} Yes


4 Degree Of Freedom (DOF) Robot

Frame Value Xmin, Xmax Ymin, Ymax Zmin, Zmax
WorkPiece #{100, 50, 0, 0} -100, 250 -300, 30 -200, 200
MachineTable #{320, 120, 350, 0} 0, 700 0, 500 0, 500
Base #{0, 0, 0, 0} -1000, 1000 -1000, 1000 0, 1000
Tool #{0, 20, 40, 25} -30, 20 -30, 20 -30, 20
World None -1500, 1500 -1500, 1500 0, 2000


Assume that the desired SetPoint is: #{380 , -150 , -310 , 25} and that Pb,0 is: #{780, -50, 0, 0} - Is it in the work area of the limits?


Frame Formula In Limits?
WorkPiece CheckPoint = SetPoint = : #{380 , -150 , -310 , 25} No - Xmax and Zmin


MachineTable CheckPoint = WorkPiece:SetPoint = #{480 , -100 , -310 , 25} No - Ymin and Zmin
Base CheckPoint = Base-1:MachineTable:WorkPiece:SetPoint = #{800, 20, 40, 0} Yes


Tool CheckPoint = Tool-1:Pb,0-1:Base-1:MachineTable:WorkPiece:SetPoint = #{111.762 , 3.05356 , 0 , 0} No - Xmax


World CheckPoint = MachineTable:WorkPiece:SetPoint = #{800, 20, 40, 0} Yes

See Also