Difference between revisions of "SCARA robot"

From SoftMC-Wiki
Jump to: navigation, search
(Added the value of Axis[3][3]=-1 to change Z direction.)
(Added the common shared <robot> as group commands)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{Languages|SCARA_robot}}  
 
{{Languages|SCARA_robot}}  
 +
  
 
= SCARA robot =
 
= SCARA robot =
 +
 +
The softMC has two kinematic models of the SCARA robot. The default model is of type XYZR, and the second model is of type XYZ, i.e. without the fourth rotational axis. The robots are configured using:
 +
 +
*common shared <robot> as group Axnm = A1 Axnm = A2 Axnm = A3 Axnm = A4 model = 4 of xyzr
 +
*common shared <robot> as group Axnm = A1 Axnm = A2 Axnm = A3 model = 4 of xyz
  
 
For detailed instruction on configuring a SCARA robot using the softMC Configurator, see the [[4-Axis_Scara_robot_Setup|4 Axis Scara robot Setup]] page.
 
For detailed instruction on configuring a SCARA robot using the softMC Configurator, see the [[4-Axis_Scara_robot_Setup|4 Axis Scara robot Setup]] page.
Line 18: Line 24:
 
&nbsp;
 
&nbsp;
  
 +
&nbsp;
  
 
=== Z coordinate ===
 
=== Z coordinate ===
  
 
The Z coordinate starts from the upper z-shaft position and increases downwards by default. This means it is an up-side-down XYZ system. To change the direction of Z, set&nbsp;[[MC-Basic:robot.AXIS|Axis[3][3]]]=-1.<br/> [[File:SCARAWORKSPACE.PNG|SCARA workspace]]
 
The Z coordinate starts from the upper z-shaft position and increases downwards by default. This means it is an up-side-down XYZ system. To change the direction of Z, set&nbsp;[[MC-Basic:robot.AXIS|Axis[3][3]]]=-1.<br/> [[File:SCARAWORKSPACE.PNG|SCARA workspace]]
 +
 +
&nbsp;
  
 
=== 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 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.  
 
*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 joints J<sub>1</sub> and J<sub>2</sub> give the place of '''X''' axis. (e.g. X Y Cartesian&nbsp;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 36: Line 45:
  
 
&nbsp;
 
&nbsp;
 
  
 
== Axis setup ==
 
== Axis setup ==
  
 
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 linear motor axis (the Z axis), a<sub>4</sub> – fourth rotary motor axis (the roll 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 linear motor axis (the Z axis), a<sub>4</sub> – fourth rotary motor axis (the roll axis).
 +
 +
&nbsp;
  
 
=== Axis coupling ===
 
=== Axis coupling ===
  
In some kinematic models of the SCARA robot, the third and fourth axes are coupled together by a coupling factor p. This means that a movement of the fourth motor axis results in a movement of the physical Z axis according to the following relation: positive rotation = Z moves UP, negative rotation = Z moves DOWN. This coupling relation is configured using the [[MC-Basic:group.CPLG|coupling matrix]]:
+
In some kinematic models of the SCARA robot, the third and fourth axes are coupled together by a coupling factor p. This means that a movement of the fourth motor axis results in a movement of the physical Z axis according to the following relation: positive rotation = Z moves UP, negative rotation = Z moves DOWN, assuming p is positive. This coupling relation is configured using the [[MC-Basic:group.CPLG|coupling matrix]]:
  
 
cplg[1][1] = 1
 
cplg[1][1] = 1

Latest revision as of 05:34, 13 April 2022

Language: English  • 中文(简体)‎


SCARA robot

The softMC has two kinematic models of the SCARA robot. The default model is of type XYZR, and the second model is of type XYZ, i.e. without the fourth rotational axis. The robots are configured using:

  • common shared <robot> as group Axnm = A1 Axnm = A2 Axnm = A3 Axnm = A4 model = 4 of xyzr
  • common shared <robot> as group Axnm = A1 Axnm = A2 Axnm = A3 model = 4 of xyz

For detailed instruction on configuring a SCARA robot using the softMC Configurator, see the 4 Axis Scara robot Setup page.

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 by default. This means it is an up-side-down XYZ system. To change the direction of Z, set Axis[3][3]=-1.
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 joints J1 and J2 give the place of X axis. (e.g. X Y Cartesian 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 linear motor axis (the Z axis), a4 – fourth rotary motor axis (the roll axis).

 

Axis coupling

In some kinematic models of the SCARA robot, the third and fourth axes are coupled together by a coupling factor p. This means that a movement of the fourth motor axis results in a movement of the physical Z axis according to the following relation: positive rotation = Z moves UP, negative rotation = Z moves DOWN, assuming p is positive. This coupling relation is configured using the coupling matrix:

cplg[1][1] = 1

cplg[2][2] = 1

cplg[3][3] = 1

cplg[3][4] = p

cplg[4][4] = 1

which relates the robot joints to the robot axes according to [J1,J2,J3,J4]T = cplg*[a1,a2,a3,a4]T. Note that the <robot>.coupled flag must be set to TRUE after setting the coupling matrix. Note too that the joint limits <robot>.J[i].pmin and <robot>.J[i].pmax for i=1,...,4 should take the axis limits into account.

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):