6-Axis 4-Bar Articulated Robot Module

This module controls a 6-Axis robot that consists of all rotary actuators.  This configuration is a variation of the standard "Articulated" robot geometry where the 2nd, 3rd, and 4th axes are parallel and form a classic kinematic 4-bar chain.  The first axis rotates the robot about the World Z-axis.  The next three axes are parallel and rotate the inner and outer links and wrist about horizontal axes.  The combination of the first four axes positions the wrist at a desired X, Y, Z location and pitch angle.  The final two rotary wrist axes in combination with the pitch, as determined by the first four axes, controls the orientation of the tool flange.

Articulated robots are used when all 6 degrees-of-freedom are required to move to arbitrary positions with the full range of orientation.  These 6-axis robots perform a wide range of applications including parts handling and parts assembly.  This 4-bar variation is interesting in that its wrist is degenerate when the gripper is horizontal and axes 2, 3, 4, and 6 are parallel.  This avoids a singularity that can occur with other articulated geometries during vertical operations.

Kinematics Module Number and Required Software License

Module number to be entered into the "Robot type" (DataID 116):  19

Required software kinematic license (entered using the web interface panel Utilities > Controller Options if not already installed):   Complex Kinematics.

Kinematic Model

Axis Optional Max Range Description

1: q1

No

+/- 359.9°

Rotary axis that rotates the robot about the World Z-axis.  A positive change in this axis angle results in a positive rotation about the World Z-axis. The center of this axis' travel can be arbitrarily set, although it is typically centered about 0, 180 or -180 degrees.

2: q2

No

+/- 359.9°

Rotary axis that rotates the links of the robot about a horizontal axis.  When q1 is zero, a positive change in this axis angle results in a positive rotation about the direction of the World Y-axis. The center of this axis' travel can be arbitrarily set, e.g. 0 or 45 or 180 or -135 degrees.

3: q3

No

+/- 359.9°

Rotary axis that rotates the outer link about a horizontal axis.  When q1 is zero, a positive change in this axis angle results in a positive rotation about the direction of the World Y-axis.  The center of this axis' travel can be arbitrarily set, e.g. 0 or 45 or 180 or -135 degrees.

4: q4

No

+/- 359.9°

Rotary axis that rotates the wrist about a horizontal axis.  When q1 is zero, a positive change in this axis angle results in a positive rotation about the direction of the World Y-axis.  The center of this axis' travel can be arbitrarily set, e.g. 0 or 45 or 180 or -135 degrees.

5: q5

No

+/- 359.9°

Rotary axis that rotates (flips) the Tool orientation relative to the orientation of axes 2/3/4.  When all of the axes are at their 0 positions, a positive change in this axis angle results in a positive rotation about the direction of the World Z-axis.  The center of this axis' travel can be arbitrarily set, e.g. 0 or 45 or 180 or -135 degrees.

6: q6

No

Unlimited but typically set to +/- 359.9°

Rotary axis that rotates the end-effector about the Tool Z-axis. A positive change in this axis angle results in a positive rotation about the Tool Z-axis. The center of this axis' travel can be arbitrarily set, although it is typically centered about 0, 180 or -180 degrees.

Parameter Database Values

The following table describes the Parameter Database values that are utilized to configure the kinematic module. Standard motion control parameters such as servo tuning values, limit stops, the homing specification, etc are not included in the table.

Parameter Database ID Parameter Name Description

2000

Number of axes

Must be set to 6.

2001

Split-axis mask

Not applicable.

2003

Axis mask

Not applicable.

2005

Motor linearity compensation

Not supported.

2006

Robot type special option flags

Not applicable.

2701 / 2703

100% Cartesian speeds and accels

Value 1:  Cartesian 100% linear speed and acceleration of the robot's end-effector measured along any vector in X, Y and Z.

Value 2:  Cartesian 100% rotation speed and acceleration of the Tool orientation about the Tool Z-axis.  This is normally set to be equal to the joint control values for the 6th axis.

Value 3:  Cartesian 100% rotation speed and acceleration of the Tool's yaw and pitch orientation.  This is normally set to the lesser of the joint control values for the 4th and 5th axes.

Values 4-n:  Not used.

16050

Kinematic dimensional constants

Value 1 (S1):  Vertical (Z) offset from the Z=0 plane of the World coordinate system to the height of the axis of rotation of the second rotary axis (q2).  Can be arbitrary set by the robot designer to establish the base of the World coordinate system.

Value 2 (a1): Horizontal offset of the second axis of rotation (q2) relative to the first axis of rotation (q1) measured in a World Z plane.  This is the shortest distance between the first and second axes of rotation of the robot. 

Value 3 (S2): Horizontal offset of the second (q2) axis.  This is the horizontal and shortest distance from a1 to a2.

Value 4 (a2): Length of the inner link measured from the axis of q2 to that of q3.

Value 5 (S3): Horizontal offset of the third (q3) axis.  This is the horizontal distance from a2 to a3.

Value 6 (a3): Length of the outer link measured from the axis of q3 to that of q4.

Value 7 (S4): Horizontal offset of the fourth (q4) axis.  This is the horizontal distance from a3 to S5

NOTE: Any offset from the center of the wrist (the intersection of q5 and q6) to the Tool mounting flange or gripper must be specified as part of the robot's Tool property.

Value 8 (S5): Length of the wrist offset measured from the intersection of q4 and q5 to the center of the wrist (the intersection of q5 and q6).

Values 9-n: Not used.

16051

Tool set at restart

When the controller is restarted, this specifies the initial value for the position and orientation of the robot's tool center point relative to the intersection of the wrist joints, q5 and q6. For most simple tools, only the length of the tool needs to be defined by setting this parameter to:  0, 0, tool_length, 0, 0, 0.

NOTE: Any offset from the center of the wrist to the Tool mounting flange or gripper must be specified as part of the "tool_length" value.

16052

Base set at restart

When the controller is restarted, this defines how the base of the robot is positioned relative to the World coordinate system.  Normally, this parameter is set to 0, 0, 0, 0, 0, 0.

Robot Configuration ("Config") Parameters

This kinematic module makes use of the following Location Config property flags to control how Cartesian positions and orientations are converted to joint angles since multiple sets of joint angles are possible: 

GPL_Righty, GPL_Lefty, GPL_Above, GPL_Below, GPL_Flip, GPL_NoFlip, GPL_Single.

For this kinematic module, the Righty/Lefty setting indicates the configuration of the robot's shoulder when the wrist is in front of the robot.  The Above/Below indicates if the elbow (q3) appears to be above or below the inner and outer links.  The Flip/NoFlip indicates how q5 has oriented the Tool Z and q6 axes.

Special Compensation

This kinematic module does support "Continuous Turn Axes" for the the last rotary axis:  q6.

This kinematic module does support "Motor Coupling" to compensate for mechanical coupling that may exist between the axes.  The first motor is uncoupled and the second and third motors are coupled by a 2x2 matrix.  Finally, the fourth, fifth and six motors are coupled by a 3x3 matrix.

This kinematic module does not support "Linearity Compensation" or "Split-Axis Control".

This kinematic module does support a subset of the full "Dynamic Feedforward" compensation (DFF).  For this robot, the DFF compensation only provides position independent gravity compensation and it does not generate feedforward terms to counteract dynamic effects due to accelerations and velocities.

The following diagram and table illustrate how the DFF constants are defined for this robot. 

Parameter Database ID Parameter Name Values

16066

Dynamic feedforward enable

1

16067

Dynamic feedforward mass, kg

M1, M2, M3, M4, M5, M6, Mp

16068

Dynamic feedforward COM l1, mm

l11, l12, l13, l14, l15, 0, 0

16069

Dynamic feedforward COM l2, mm

l21, l22, l23, 0, l25, l26, l2P

16070

Dynamic feedforward rated torque, N-m

<filled in based on axis drives>

16071

Dynamic feedforward default %payload

Any value from 0 to 100

16072

Dynamic feedforward motor/gear inertia, kg-mm^2

Not utilized

Mp and l2p define the maximum mass of the payload and the position of this mass relative to the q5 axis.  M6 and l26 represent both the tool mounting flange and the tool.

Additional Considerations

This kinematic module does not utilize the Custom Kinematic Parameters accessed by Robot.Custom.

This kinematic module does not have any extra, independent axes so Move.Extra has no affect.