Difference between revisions of "SCARA robot"

From SoftMC-Wiki
Jump to: navigation, search
m (Axis setup)
(Added to Category:Robot Models)
Line 1: Line 1:
{{Languages|SCARA_robot}}
+
{{Languages|SCARA_robot}}  
=SCARA robot=
+
= SCARA robot =
  
 
== Kinematics setup ==
 
== Kinematics setup ==
 +
 
The kinematics parameters of SCARA robot are defined by:
 
The kinematics parameters of SCARA robot are defined by:
* L<sub>1</sub> – length of the first link (See [[MC-Basic:robot.LINK|Link[1][1]]]).
 
* L<sub>2</sub> – length of the second link (See [[MC-Basic:robot.LINK|Link[2][1]]]).
 
<br>
 
[[File:DH_SCARA1.JPG| SCARA DH]]
 
  
World coordinates are defined according to the following picture:<br>
+
*L<sub>1</sub> – length of the first link (See [[MC-Basic:robot.LINK|Link[1][1]]]).
[[File:SCARATOP.PNG|SCARA top view]]
+
*L<sub>2</sub> – length of the second link (See [[MC-Basic:robot.LINK|Link[2][1]]]).
 +
 
 +
<br/> [[File:DH SCARA1.JPG|SCARA DH]]
 +
 
 +
World coordinates are defined according to the following picture:<br/> [[File:SCARATOP.PNG|SCARA top view]]
  
 +
&nbsp;
  
 
=== Z coordinate ===
 
=== Z coordinate ===
The Z coordinate starts from the upper z-shaft position and increases downwards. This means it is an up-side-down XYZ system. Direction is determined by [[MC-Basic:robot.AXIS|Axis[3][3]]]<br>
+
 
[[File:SCARAWORKSPACE.PNG|SCARA workspace]]
+
The Z coordinate starts from the upper z-shaft position and increases downwards. This means it is an up-side-down XYZ system. Direction is determined by [[MC-Basic:robot.AXIS|Axis[3][3]]]<br/> [[File:SCARAWORKSPACE.PNG|SCARA workspace]]
  
 
=== Tool, configuration ===
 
=== Tool, configuration ===
* The SCARA '''configuration''' (LEFTY/RIGHTY) is defined as a group’s property (See: [[MC-Basic:robot.ARMCMD|'''ACMD''']] and it is outside the point data structure.
 
  
* The '''roll''' axis is defined as the rotation angle (around Z-axis) of the end-effector frame (X<sub>ee</sub>, Y<sub>ee</sub>, Z<sub>ee</sub>) relative to the base frame.<br> ''So there is a difference between world-frame roll axis and the joint-frame roll axis.'' This feature actually enables keeping constant orientation angles during straight-line motions.<br>
+
*The SCARA '''configuration''' (LEFTY/RIGHTY) is defined as a group’s property (See: [[MC-Basic:robot.ARMCMD|'''ACMD''']] and it is outside the point data structure.
 +
 
 +
*The '''roll''' axis is defined as the rotation angle (around Z-axis) of the end-effector frame (X<sub>ee</sub>, Y<sub>ee</sub>, Z<sub>ee</sub>) relative to the base frame.<br/> ''So there is a difference between world-frame roll axis and the joint-frame roll axis.'' This feature actually enables keeping constant orientation angles during straight-line motions.  
  
* Zero values of J<sub>1</sub> and J<sub>2</sub> give the place of '''X''' axis. (e.g. cartesina coordinates of the tool-tip will be '''#{L<sub>1</sub> + L<sub>2</sub>, 0}'''
+
*Zero values of J<sub>1</sub> and J<sub>2</sub> give the place of '''X''' axis. (e.g. cartesina coordinates of the tool-tip will be '''#{L<sub>1</sub> + L<sub>2</sub>, 0}'''  
  
 
<!-- [[File:SCARACOO.PNG|SCARA coordinates]] -->
 
<!-- [[File:SCARACOO.PNG|SCARA coordinates]] -->
Line 29: Line 32:
  
 
== Axis setup ==
 
== Axis setup ==
The SCARA robot is modeled as a group of four axes:
+
 
a<sub>1</sub>- first rotary axis
+
The SCARA robot is modeled as a group of four axes: a<sub>1</sub>- first rotary axis a<sub>2</sub> – second rotary axis a<sub>3</sub> – third rotary motor axis (the roll axis) a<sub>4</sub> – fourth linear motor axis (the Z axis) The third and fourth axes are coupled together, it means that a movement of the third motor axis results in a movement of the physical Z axis, resulting the following default directions - positive = UP, negetive = DOWN.
a<sub>2</sub> – second rotary axis
 
a<sub>3</sub> – third rotary motor axis (the roll axis)
 
a<sub>4</sub> – fourth linear motor axis (the Z axis)
 
The third and fourth axes are coupled together, it means that a movement of the third motor axis results in a movement of the physical Z axis, resulting the following default directions - positive = UP, negetive = DOWN.
 
  
 
== Motion commands ==
 
== Motion commands ==
  
There are three motion commands incorporating SCARA kinematics:  
+
There are three motion commands incorporating SCARA kinematics:
* [[MC-Basic:MOVES| MOVES ]]
+
 
* [[MC-Basic:CIRCLE|CIRCLE]]
+
*[[MC-Basic:MOVES|MOVES]]  
* [[MC-Basic:MOVESKD|MOVESKD ]]
+
*[[MC-Basic:CIRCLE|CIRCLE]]  
<br>
+
*[[MC-Basic:MOVESKD|MOVESKD]]  
All of them implement trajectories in world space coordinates (XYZR). The roll axis is proportionally interpolated with the XYZ motion, this means the roll motion starts and ends at the same time as XYZ motion.
+
 
<br>
+
<br/> All of them implement trajectories in world space coordinates (XYZR). The roll axis is proportionally interpolated with the XYZ motion, this means the roll motion starts and ends at the same time as XYZ motion.<br/> There are two sets of properties one for translation and one for rotation. Command kinematics parameters as velocity, jerk, acceleration can be defined separately for rotation and translation. These specify the kinematics parameters of the generated motion. Also there is a maximum property of each value. Maximums limit the possible excessive motion definitions and are determined by the user or automatically using the axis limits of each motor. The command values define the motion property of each movement and can be given nodal or modal. To summarize we have the following table of properties:
There are two sets of properties one for translation and one for rotation. Command kinematics parameters as velocity, jerk, acceleration can be defined separately for rotation and translation. These specify the kinematics parameters of the generated motion. Also there is a maximum property of each value. Maximums limit the possible excessive motion definitions and are determined by the user or automatically using the axis limits of each motor. The command values define the motion property of each movement and can be given nodal or modal. To summarize we have the following table of properties:
 
  
 +
&nbsp;
  
{|border="1" width="80%"
+
{| border="1" width="80%"
!width="100"|
+
|-
!width="100" colspan="2"|Maximum(Modal)
+
! width="100" | &nbsp;
!width="250" colspan="2"|Command (Modal/Nodal)
+
! colspan="2" width="100" | Maximum(Modal)
 +
! colspan="2" width="250" | Command (Modal/Nodal)
 
|-
 
|-
|Rotary
+
| Rotary
|VelocityMaxRot, AccelerationMaxRot, JerkMaxRot
+
| VelocityMaxRot, AccelerationMaxRot, JerkMaxRot
|
+
|  
Units:
+
Units: deg/sec deg/sec2deg/sec3
deg/sec
+
 
deg/sec2deg/sec3
+
|  
|
+
VelocityRot, VelocityFinalRot, AccelerationRot, DecelerationRot, JerkRot
VelocityRot, VelocityFinalRot, AccelerationRot, DecelerationRot, JerkRot
+
 
|
+
|  
Units:
+
Units: mm/sec mm/sec2 mm/sec3
mm/sec
+
 
mm/sec2
 
mm/sec3
 
 
|-
 
|-
|Translation
+
| Translation
|VelocityMaxTrans, AccelerationMaxTrans, JerkMaxTrans
+
| VelocityMaxTrans, AccelerationMaxTrans, JerkMaxTrans
|
+
|  
Units:
+
Units: deg/sec deg/sec2deg/sec3
deg/sec
+
 
deg/sec2deg/sec3
+
| VelocityTrans, VelocityFinalTrans, AccelerationTans, DecelerationTrans, JerkTrans
|VelocityTrans, VelocityFinalTrans, AccelerationTans, DecelerationTrans, JerkTrans
+
|  
|
+
Units: mm/sec mm/sec2 mm/sec3
Units:
+
 
mm/sec
 
mm/sec2
 
mm/sec3
 
 
|}
 
|}
  
Initially (using the [[MC-Basic:CONFIGGROUP|ConfigGroup]] command) maximum motion parameters are set to theoretically maximum values:
+
Initially (using the [[MC-Basic:CONFIGGROUP|ConfigGroup]] command) maximum motion parameters are set to theoretically maximum values:
 
 
  
 +
&nbsp;
  
* For translation component (VelocityMaxRot, AccelerationMaxRot, JerkMaxRot):
+
*For translation component (VelocityMaxRot, AccelerationMaxRot, JerkMaxRot):  
  
 
<math>V_{max} = sqrt({[v_{max1} * (link_1 + link_2)]^2 +[v_{max2} * link_2]^2 + v_{max4}^2 })</math>
 
<math>V_{max} = sqrt({[v_{max1} * (link_1 + link_2)]^2 +[v_{max2} * link_2]^2 + v_{max4}^2 })</math>
Line 91: Line 86:
 
<math>A_{max} = sqrt({[a_{max1} * (link_1 + link_2)+ a_{max2}*link_2]^2 +[V_{max} /(link_1+link_2)]^2 + a_{max4}^2 })</math>
 
<math>A_{max} = sqrt({[a_{max1} * (link_1 + link_2)+ a_{max2}*link_2]^2 +[V_{max} /(link_1+link_2)]^2 + a_{max4}^2 })</math>
  
<math>J_{max}/A_{max} = 15 Hz</math>  
+
<math>J_{max}/A_{max} = 15 Hz</math>
  
 +
&nbsp;
  
 +
*For rotational component (VelocityMaxTrans, AccelerationMaxTrans, JerkMaxTrans):
  
* For rotational component (VelocityMaxTrans, AccelerationMaxTrans,  JerkMaxTrans):
 
 
<math>V_{max} = max(v_{max1},v_{max2},v_{max3})</math>
 
<math>V_{max} = max(v_{max1},v_{max2},v_{max3})</math>
  
Line 101: Line 97:
  
 
<math>J_{max} = max(j_{max1},j_{max2},j_{max3})</math>
 
<math>J_{max} = max(j_{max1},j_{max2},j_{max3})</math>
 +
 +
[[Category:Robot Models]]

Revision as of 05:31, 8 April 2022

Language: English  • 中文(简体)‎

SCARA robot

Kinematics setup

The kinematics parameters of SCARA robot are defined by:

  • L1 – length of the first link (See Link[1][1]).
  • L2 – length of the second link (See Link[2][1]).


SCARA DH

World coordinates are defined according to the following picture:
SCARA top view

 

Z coordinate

The Z coordinate starts from the upper z-shaft position and increases downwards. This means it is an up-side-down XYZ system. Direction is determined by Axis[3][3]
SCARA workspace

Tool, configuration

  • The SCARA configuration (LEFTY/RIGHTY) is defined as a group’s property (See: ACMD and it is outside the point data structure.
  • The roll axis is defined as the rotation angle (around Z-axis) of the end-effector frame (Xee, Yee, Zee) relative to the base frame.
    So there is a difference between world-frame roll axis and the joint-frame roll axis. This feature actually enables keeping constant orientation angles during straight-line motions.
  • Zero values of J1 and J2 give the place of X axis. (e.g. cartesina coordinates of the tool-tip will be #{L1 + L2, 0}


SCARA configurations

Axis setup

The SCARA robot is modeled as a group of four axes: a1- first rotary axis a2 – second rotary axis a3 – third rotary motor axis (the roll axis) a4 – fourth linear motor axis (the Z axis) The third and fourth axes are coupled together, it means that a movement of the third motor axis results in a movement of the physical Z axis, resulting the following default directions - positive = UP, negetive = DOWN.

Motion commands

There are three motion commands incorporating SCARA kinematics:


All of them implement trajectories in world space coordinates (XYZR). The roll axis is proportionally interpolated with the XYZ motion, this means the roll motion starts and ends at the same time as XYZ motion.
There are two sets of properties one for translation and one for rotation. Command kinematics parameters as velocity, jerk, acceleration can be defined separately for rotation and translation. These specify the kinematics parameters of the generated motion. Also there is a maximum property of each value. Maximums limit the possible excessive motion definitions and are determined by the user or automatically using the axis limits of each motor. The command values define the motion property of each movement and can be given nodal or modal. To summarize we have the following table of properties:

 

  Maximum(Modal) Command (Modal/Nodal)
Rotary VelocityMaxRot, AccelerationMaxRot, JerkMaxRot

Units: deg/sec deg/sec2deg/sec3

VelocityRot, VelocityFinalRot, AccelerationRot, DecelerationRot, JerkRot

Units: mm/sec mm/sec2 mm/sec3

Translation VelocityMaxTrans, AccelerationMaxTrans, JerkMaxTrans

Units: deg/sec deg/sec2deg/sec3

VelocityTrans, VelocityFinalTrans, AccelerationTans, DecelerationTrans, JerkTrans

Units: mm/sec mm/sec2 mm/sec3

Initially (using the ConfigGroup command) maximum motion parameters are set to theoretically maximum values:

 

  • For translation component (VelocityMaxRot, AccelerationMaxRot, JerkMaxRot):

 

  • For rotational component (VelocityMaxTrans, AccelerationMaxTrans, JerkMaxTrans):