|
Robot Device Modules |
5/6-Axis Puma Robot Device Module (Standard and Enhanced)
The standard PUMA robot device module (PUM) controls a 5 or 6 degree-of-freedom PUMA-type robot. A PUMA robot usually consists of six revolute axes. The first three axes roughly correspond to a torso, shoulder, and elbow rotation. The last three axes implement a standard roll, pitch, roll wrist. This module permits the fourth axis (wrist roll) to be omitted, resulting in a pitch-roll wrist. (No other axes may be disabled.)
The Enhanced PUMA module (EPU) is identical to the standard module except that it also supports linear compensation on motors 1, 2 and 3.
For details on installing the device module, see the Device Modules Overview.
Module Specifications
Minimum V+ compatibility:
standard 10.2 (some features need a later version, see text)
enhanced 11.2 (edit P5 or later)
V+ License Requirements:
standard Kinematics License
enhanced Enhanced Kinematics LicenseIf you install either module without the appropriate license, the message *Option not installed* will be displayed when you restart your system.
Device module name:
standard PUM
enhanced EPU
Device module ID number:
The ID number is displayed with the robot serial and model number after the system boots up and whenever the ID monitor command is issued.
standard: 14
enhanced: 28
Default startup message:
The following startup message is displayed just after the system boots up.
standard: “5/6-Axis PUMA Robot”
enhanced: “Enhanced 5/6-Axis PUMA Robot”
Default joint configuration (for V+ 11.0 and later):
Joint
Axis
Board/Channel
1
1 (“torso”)
1/1
2
2 ("shoulder")
1/2
3
3 ("elbow")
1/3
4
4 (roll)
1/4
5
5 (pitch)
2/1
6
6 (roll wrist)
2/2
With multiple robots, it will be necessary to correct the joint configuration from the SPEC.V2 program to avoid conflicts. When using the MI6 motion interface board (which has six channels), you will need to change the board/channel assignments for joints 5 and 6.
Robot Option Word
Bit 2: Motor 1/2/3 Linear Compensation Option (Enhanced module only)
In V+ 11.2 (edit P5) and later, a linear-compensation feature may be enabled on motors 1, 2, and 3. This requires use of the Enhanced PUMA module (EPU).
If bit 2 is enabled in the non-enhanced PUMA module, an error will be generated when V+ is initialized, that is when the system is turned on (booted).
When the compensation option is enabled, linear compensation is provided on motors 1, 2, and 3. That is, the linear compensation must be specified in units of encoder counts, not joint angles. This was done so that compensation could be applied to correct non-linearities in the drive train even for robots with coupling between joints 2 and 3.
When the compensation option is enabled, the HERE command, instruction, and function no longer return the position specified by the encoder counters. Instead, they return the robot position specified by the joint set point buffer.
The number of elements in the linear compensation tables and their definitions are the same as the linear compensation provided with the Enhanced Gantry (EGN) and Enhanced XYZT (EXY) robots. See Appendix B. (Unlike some other V+ enhanced kinematic modules, the EPU module does not support backlash compensation.)
Bit 4: Joint 6 Multi-turn Option
In V+ 11.0 and later, Joint 6 has a multi-turn option. If bit 4 (option word value 8) is set, joint 6 operates in multi-turn mode. The maximum number of turns is determined by the resolution of the Joint 6 encoder. V+ uses a 24-bit position register which rolls over at 8,388,607 encoder counts. For typical encoder resolutions, this is equivalent to at least 100 turns. If bit 4 is not set, Joint 6 is limited to +/– 359 degrees.
Bit 9: Software Motor Limits
The robot option word determines whether software limits on motor motion (in addition to the standard limits on joint motion) are to be used. If bit 9 (option word value 256) is set, then software limits on motor motion are used. See the AdeptMotion VME Developer’s Guide for details on setting the robot option word. Motor motion limits are in units of encoder counts and can be set from the “Motor Motion Parameters” menu in SPEC.V2.
Axis Configuration
Joint 1 is a revolute axis that rotates about the world Z axis.
- A positive change of joint angle corresponds to a positive rotation about the world Z axis.Joint 2 is a revolute joint that rotates about a horizontal axis.
- When joint 1 is positioned at zero degrees, the axis of rotation of joint 2 will be parallel with the world Y axis. In this position, a positive change in joint angle corresponds to a positive rotation about the world Y axis.
- When joint 2 is positioned at –90 degrees, the inner link of the robot will point vertically in the direction of the positive world Z axis.Joint 3 is a revolute joint that rotates about a horizontal axis which is parallel with the axis of rotation of joint 2.
- As with joint 2, when joint 1 is positioned at zero degrees, the axis of rotation of joint 3 will be parallel with the world Y axis. In this position, a positive change in joint angle corresponds to a positive rotation about the world Y axis.
- When joint 2 is positioned at –90 degrees and joint 3 is positioned at +90 degrees (the “straight-up” position), the inner link of the robot will be vertical and the outer link will be approximately vertical.
- The reason that the outer link may be slightly off vertical in some PUMA robots is because, for some models, the axis of rotation of joint 4 does not intersect the axis of rotation of joint 3. When joint 2 is positioned at –90 degrees and joint 3 is positioned at +90 degrees, the axis of rotation of joint 4 must be vertical. If joint 4 does not intersect joint 3, the outer link will appear to be slightly tilted.Joint 4 is a revolute (roll) wrist axis. When joints 2 and 3 are in their straight-up positions, the axis of rotation of joint 4 will be parallel to the world Z axis.
- A positive rotation of this joint turns the robot's end effector in a positive direction relative to the world Z axis.
- This joint is omitted in the 5-axis configuration.Joint 5 is a revolute (pitch) joint. The axis of rotation of joint 5 is perpendicular to the axis of joint 4.
- When joints 2 and 3 are in their straight-up positions and joint 4 is positioned at zero degrees, the axis of rotation of joint 5 will be parallel to the world Y axis. In this position, a positive change in joint angle corresponds to a positive rotation about the world Y axis.Joint 6 is a revolute (roll) axis whose axis of rotation defines the nominal Z axis of the robot's tool frame of reference. That is, if a NULL tool is defined, the Z axis of the tool frame will be collinear with the axis of rotation of joint 6.
- The axis of rotation of joint 6 is perpendicular to the axis of rotation of joint 5. Furthermore, the axes of rotation of joints 4, 5, and 6 intersect at a point in the center of the wrist.
- When joints 2 and 3 are in their straight-up positions and joints 4 and 5 are positioned at zero degrees, the axis of rotation of joint 6 will be parallel to the world Z axis. In this position, a positive change in joint angle corresponds to a positive rotation about the world Z axis.As with all robot modules, the standard V+ BASE and TOOL transformations can be used in combination with the geometric model to specify and compute the end point of the robot relative to the world coordinate frame.
Maximum Operating Range Of Rotational Joints
This module has five or six rotary joints. Their maximum operating range, in degrees, is as follows. See also sections 12.2 and 12.10.
Joint 1: -359.9 to +359.9 (V+ 11.2 edit J, and later)
-179.9 to +179.9 (V+ 10.2 through 11.1)
Joint 5: -179.9 to +179.9
Joints 2, 3: total range not to exceed 359.9
Joints 4, 6: -359.9 to +359.9
(See section 12.2 for description of Joint 6 Multi-turn Option)Warning
Be sure to set the software joint limits properly before attempting to move the robot in a V+ program. If the limits are improperly set, a revolute axis can rotate unexpectedly in order to stay in range.Variations in Axis Configuration
The PUM and EPU modules may be configured as a 5 or 6 axis robot. When configured for five axes, joint four is disabled. All other joints are always enabled.
The 5-axis robot can be thought of as a 6-axis robot with joint 4 always positioned at 0 (zero) degrees (and joints 5 & 6 renumbered to 4 & 5).
All other features of the 6-axis PUMA modules are supported in the 5-axis configuration (e.g., extended joint 1 travel, applicability of the OVERLAP/NOOVERLAP test, link shoulder offsets, etc.)
Geometric Dimensional Constants for V+ version 11 only
A number of dimensional constants must be specified in order for this module to operate properly. See Figure 1 for definitions. The “Tool Z-offset distance” is described in the AdeptMotion VME Developer’s Guide.
Link Dimension Parameters for PUMA Robot (V+ 11.0 and later)
Parameter
Description
Units
Value
Tool Z-offset distance
mm
Link dimension value #1
Shoulder forward offset
mm
a1
Link dimension value #2
Inner link
mm
a2
Link dimension value #3
Elbow forward offset
mm
a3
Link dimension value #4
Outer link
mm
s4
Link dimension value #5
Horizontal offsets
mm
s2 + s3
Note:
Link dimension a1 is not shown in the following figure. a1 is located between the first and second axes, and is parallel to a2. Most “PUMA-style” robots do not use this offset. Any offsets not required for your robot should be set to zero.
Figure 1. Link Definitions and Dimensions for the PUMA Robot
Geometric Dimensional Constants for V+ version 10 only
For V+ 10.2 to 10.5 only, link dimension values #1 through #11 must be specified in order for this module to operate properly. See also Figure 1 and section 12.12.
Link Dimension Parameters for PUMA Robot (V+ 10.2 to 10.5 only)
Parameter
Description
Units
Value
Tool Z-offset distance
mm
Link dimension value #1
Inner link
mm
a2
Link dimension value #2
Elbow offset
mm
a3
Link dimension value #3
Outer link
mm
s4
Link dimension value #4
Horizontal offsets
mm
s2 + s3
Link dimension value #5
mm
(s2 + s3)2
Link dimension value #6
mm
Link dimension value #7
mm
a22 + a32 + s42
Link dimension value #8
mm
4a22(a32 + s42)
Link dimension value #9
degrees
Tan–1 (a3 /s4)
Link dimension value #10
mm
a2 /s4
Link dimension value #11
mm
a3 /s4
Interpretation of Cartesian Rotation Parameters
This module employs a general six degree-of-freedom Cartesian rotation interpolator to control the change in orientation of the tool during straight line motions. This interpolator utilizes two angles to characterize the rotational change: a first angle that controls the direction of the tool Z axis and a second angle that controls the orientation of the tool about its Z axis. During a motion, the first angle moves the Z axis of the tool along a great circle from its initial to its final orientation, while the second axis rotates the tool about its primary axis.
For a NULL tool, the first Cartesian angle is generated by a combination of joints 4 and 5 while the second angle is generated by joint 6. Normally, the rotational speed and acceleration time parameters for the first Cartesian rotation angle should be set to be commensurate with the slower of joints 4 or 5, and the parameters for the second Cartesian rotation angle should be set to the same as joint 6.
During a Cartesian (straight-line) motion, the speed of the first Cartesian angle will be determined by the rotational speed factor (an optional parameter of the V+ SPEED instruction) and by the “1st Cartesian rotation speed”. The speed of the second Cartesian angle will be determined by the rotational speed factor and by the “2nd Cartesian rotation speed”.
The parameters for the 3rd Cartesian rotation are not used by this device module.
Coupling Between Robot Joints and Motors
A PUMA-style robot’s “roll”, “pitch”, “roll” wrist is implemented with mechanical coupling between the motor rotations and the wrist joint movements. (The five-axis mode implements a “pitch”, “roll” wrist.)
• When configured for 6 axes, this device module uses a full 3-by-3 coupling matrix to describe the coupling scheme between the motions of the last three motors and the three wrist joints.
• When configured for 5 axes, this device module uses a 2 by-2 coupling matrix to describe the coupling between the motions of the last two motors and the two wrist joints.
• The coupling is defined by entering appropriate values for the encoder-to-motor scaling factors. The SPEC.V2 utility program will prompt you for the required number of values.
• You will need to enter accurate encoder scaling values for your mechanism. The default values are for test purposes only. (The default values assume you are using the 6-axis mode.)
Most PUMA-style robot do not have any motor coupling between the first three axes. Thus, in V+ version 10.2 to 10.5, three simple scale factors define the angular relationship between the first three motors and the positions of the first three joints.
In V+ version 11.0 and later, this device module supports optional motor coupling between joints two and three. A simple scale factor defines the angular relationship between the first motors and the first joint. A 2 -by-2 coupling matrix is used to specify the joint to motor scaling factors for joints/motors 2 and 3.
For example, when entering the encoder scaling factors for joint 2, the utility program SPEC.V2 will prompt for a scaling factor for both encoder 2 and encoder 3. If there is no coupling, a zero (0) value should be entered as appropriate. (For most PUMA-style robots, including the 560, 760, and RX-90, motors 2 and 3 are not kinematically coupled.)
Robot Configuration Control Program Instructions
The following robot configuration control program instructions are utilized to specify the range of motion for joints 2, 3, and 5:
ABOVE, BELOW, LEFTY, RIGHTY, FLIP, NOFLIP
(For 5-axis robots, the FLIP/NOFLIP configuration instructions are ignored since the FLIP/NOFLIP state is implicitly specified by the robot's tool orientation.)
In addition, the following configuration program instructions affect the range of motion for joints 4 and 6:
SINGLE, MULTIPLE
If SINGLE is in effect, when a transformation is converted to joint angles, values for the angular position of joints 4 and 6 are restricted to the range –180 to +180 degrees. When MULTIPLE is in effect, the full range of motion for joints 4 and 6 will be utilized.
See the V+ Reference Guide for more information on the above instructions.
In V+ 11.1 and later, the following configuration program instructions affect the operation of joints 1, 4 and 6:
NOOVERLAP, OVERLAP
Additional Restrictions
None.
Notes for Users Upgrading from V+ Version 10.X
NOTE: This section applies only to users familiar with V+ 10.2 to 10.5, when upgrading to use V+ 11.0 or later. This section compares the old and new versions of the PUMA device module. See also section 12.7.
The kinematic model was enhanced in V+ 11.0 to allow an offset (a1) between the axis of joint 1 and the axis of joint 2. When the shoulder is moved forward, a1 is a positive number. That is, when joint 1 is at its zero position, if the shoulder is shifted along the positive world X axis, a1 will be a positive number. For “standard” PUMA-style robots, including the 560, 760, and RX-90, the value of a1 should be zero.
Users familiar with V+ 10.2 to 10.5 will note that the dependent (computed) link dimensions are no longer entered by the user. They are now computed internally. For example, formerly, S2+S3 and (S2+S3)2 had to be entered via SPEC.V2. In V+ 11.0 and later, you only need to define S2+S3.
The new list of link dimensions is as follows:
New index
Old index
Symbolic name
1
none
a1
2
1
a2
3
2
a3
4
3
s4
5
4
s2+s3
not used
5 to 11
see section 12.7
Another enhancement in V+ 11.0 and later supports optional motor coupling between joints two and 3. A 2 by 2 matrix must now be defined to specify the joint to motor scaling factors for joints/motors 2 and 3:
• For example, when entering the encoder scaling factors for joint 2, SPEC.V2 will prompt for a scaling factor for both encoder 2 and encoder 3. If there is no coupling, a zero (0) value should be entered as appropriate.
• If you are loading a data file created by SPEC.V2 version 10 (that is, from V+ 10.5 or earlier), it will contain an insufficient number of values for joints 2 and 3, and encoder scaling factors from joints 4 and 5 will be incorrectly imported into joints 2 and 3. You will need to manually re-enter the correct encoder scaling factors for joints 2 through 6. If your data file was created on V+ 11.0, 11.1, 11.2, or a later version, you will not have to make this conversion.
• For most PUMA-style robots, including the 560, 760, and RX-90, motors 2 and 3 are not kinematically coupled.
|
Last modified on:
01/25/2006
|
|
|