Instructions for Adept Utility Programs
SPEC, Edit Joint, Link, Cartesian, General, S-curve, Collision
File Name Program Name File Type Description SPEC.V2
a.spec
B
Robot specification utility
Edit joint motion specs
The following parameters can be adjusted for each joint of the robot.
COARSE nulling tolerance (cts)
Choose these items to change the positioning tolerances used at the end of any motion that requires nulling.
NOTE: Do not modify the positioning tolerances unless you have a good understanding of how they are used by the V+ system. Refer to the descriptions of the COARSE and FINE program instructions in the V+ Language Reference Guide.
The motion limits for the individual robot joints can be changed from their standard settings to limit robot joint travel.
Edit link parameters
Tool and Link Dimensions
The device modules supplied by Adept Technology have been generalized so that they do not contain dimensional data for each link. This allows you to use the same device module for different sizes of the same robot.
Because the link dimensions are not defined in the device module, you must specify them for mechanisms where they are required. The Tool and Link Dimensions Menu allows you to create the tool and link dimension specification. The options that appear on the menu are determined by the device module assigned to your mechanism.
When you select a menu option, the following information is provided on-screen:
Instructions for the specified option
Current value
Value range for the parameter, if applicable
NOTE: It is important that the values supplied be as accurate as possible. Deviations in these values from the actual dimensions of the device will result in inaccurate conversions between tool tip locations and joint angles.
Menu Options
Tool Z-Offset Distance
For robots which have a bending wrist, the tool offset distance defines the distance from the center of the wrist to the tool mounting flange. For example, in a five-axis AdeptOne robot, the tool offset length is the distance from the intersection of axes 4 and 5 to the center of the joint 5 mounting flange.
Another application of the tool offset distance is to change the apparent height of a robot's tool flange. For example, with the X/Y/Z/Theta module, the Z-coordinate is initially considered 0 when the joint is at its 0 position (often fully-retracted). This causes the robot's Z-coordinate to go negative as the Z-axis is extended. The tool offset distance can be adjusted to keep the Z-coordinate positive throughout robot's range of motion.
Refer to the device module documentation that is supplied with each device module for more specific information on the Tool Z-Offset distance.
Link Dimension Value #n
These specifications define the exact length of the robot's links and any other key dimensional factors which may be required. For some mechanisms (such as an X/Y/Z/Theta robot), no such dimensions need to be specified. In general, the number of values required to define the robot's size and their exact interpretation is a function of the robot's geometry and of the software implementation.
The SPEC utility prompts for the correct number of required dimensions, but you must use your device module documentation to see how to answer these prompts.
Edit Cartesian Motion specs
The number of specifiable Cartesian rotation speed and acceleration parameters depends on the device module type. For example, an XYZT device module has only one possible rotation (roll about the Z-axis), while a 6-axis articulated robot would have three possible rotations. See your device module documentation for the meaning of the Cartesian rotation speeds for your mechanism.
The Adept SmartMotion system allows a mechanism to move in a Cartesian reference frame by coordinating the motion of several axes. From the manual control pendant, the robot can move in the modes called WORLD and TOOL which moves in an XY-Z frame referenced to the robot base and the end of the arm, respectively. From within a program, the motion instructions MOVES (pronounced "move S"), APPROS, and DEPARTS accomplish the same thing. The Cartesian Motion Specifications Menu allows you to specify values for the parameters used to control this type of motion.
When a menu option is selected, the following information is provided on the screen:
Instructions for the specified option
Current value
Value range for the parameter if applicable
Menu Options
Cartesian Speed and Acceleration
These parameters define various speeds and accelerations for Cartesian motion along a straight line path as commanded by the MOVES program instruction.
The number of specifiable Cartesian rotation speed and acceleration parameters depends on the device module type. For example, an XYZT device module has only one possible rotation (roll about the Z-axis), while a 6-axis articulated robot would have three possible rotations.
Cartesian translation speed at SPEED 100
The maximum speed for the robot's tool tip during a Cartesian translation at SPEED 100. This value must be greater than 0.
Cartesian rotation speed at SPEED 100
The maximum speed at which the tool tip will rotate about a specified axis during a Cartesian motion at a rotational SPEED 100.
Translation acceleration at SPEED 100
The maximum tool tip acceleration that can be achieved when ACCEL 100. This value must be greater than 0.
Accel for # rotation at ACCEL 100
The maximum rotational acceleration that can be achieved about a Cartesian axis when ACCEL 100 is specified.
Max WORLD/TOOL pendant translation speed
Max WORLD/TOOL pendant rotation speed
Time to reach max WORLD/TOOL pendant speed
Min WORLD/TOOL pendant translation increment
Min WORLD/TOOL pendant rotation increment
These parameters determine the speed and acceleration settings that are used when a robot is moved manually using the pendant.
If the SLOW button on the pendant is pressed and the speed pot is pressed close to its center (minimum plus or minus speed), the robot will move the smallest specified increment and then stop. If the speed is increased, the robot will begin to move at a continuous rate equal to five times the smallest incremental motion per second. As the commanded speed is increased, the robot's speed will increase linearly until the robot is moving at 25% of the maximum specified speed. If the SLOW button is turned off, the robot's speed will be linearly interpolated between zero and the maximum specified speed.
![]()
In addition to the speed specifications, a parameter is provided which defines the manual control acceleration/deceleration rate.
Edit general motion specs
The general motion specifications establish the motion speed and acceleration limits as well as the start-up values for these parameters. The maximum allowable values help prevent users from placing excessive demands on the system. The default start-up values allow you to control accelerations and acceleration profiles used until user override.
When you select a menu option, the following information is provided on screen:
Instructions for the specified option
Current value
Value range for the parameter if applicable
Menu Options
Maximum allowable acceleration
Limits the maximum percent acceleration that the user is allowed to specify via the ACCEL instruction. Normally, this limit is set to 100%. However, there may be instances where 100% is routinely specified within robot programs, but higher values are permitted for special circumstances.
Maximum allowable deceleration
Limits the maximum deceleration that the user is allowed to specify via the ACCEL instruction. Normally, this limit is set to 100%. However, there may be instances where 100% is routinely specified within robot programs, but higher values are permitted for special circumstances.
Maximum allowable program speed
Limits the maximum % speed that the user is able to specify via the SPEED program instruction (the SPEED monitor command is always limited to 100%). Given that the inertia of the robot is usually quite variable, the maximum %speed is normally set well above 100%.
Max rate of change of monitor speed
During the execution of a robot program, the monitor SPEED command can be used to change the overall speed of robot motions. This change takes affect immediately, even if the robot is currently executing a motion. To limit the acceleration jerk that the robot would experience if a large change in speed was applied instantaneously, any requested monitor SPEED change is distributed over several trajectory evaluation cycles. This parameter specifies the rate at which changes in the monitor SPEED are applied to the robot. For instance, if a value of 20 is specified, it would take 3 seconds for a change from SPEED 40 to SPEED 100 to be fully applied.
Minimum execution time for joint motions
The minimum motion execution times should be set long enough to provide adequate time for the motion planner to plan the next motion before the current motion completes execution. If these values are too short, CP will break unnecessarily. If these values are too long, quick, high speed motions will not be possible. In essence, these values define the lower limit for the DURATION instruction for the current robot. As a convenience, if these values are set to 0, the minimum motion time will be set equal to the configured V+ trajectory cycle time.
Minimum execution for Cartesian motions
The minimum motion execution times should be set long enough to provide adequate time for the motion planner to plan the next motion before the current motion completes execution. If these values are too short, CP will break unnecessarily. If these values are too long, quick, high speed motions will not be possible. In essence, these values define the lower limit for the DURATION instruction for the current robot. As a convenience, if these values are set to 0, the minimum motion time will be set equal to the configured V+ trajectory cycle time.
Default S-curve profile at system startup
Specifies the S-curve trajectory profile that will be selected by default when the controller is first booted. If the specified profile is not defined, profile 0 (a square wave acceleration) will be selected.
Default acceleration at system startup
This value specifies the default % acceleration that will be asserted when the controller is first booted.
Default deceleration at system startup
Specifies the default % deceleration that will be asserted when the controller is first booted.
Default BASE offsets
Specifies the default BASE transform used to modify the base transformation. That transformation is used to offset the world reference frame relative to the X/Y/Z coordinate system, and rotate the world reference frame about the Z axis.
Normally, the default BASE offsets are set to 0 and the world reference frame is assumed to be fixed in space such that the X-Y plane is at the robot mounting surface, the positive X axis points along the center of joint 1 when at zero degrees (or millimeters) and the Z axis coincides with the joint-1 axis. For additional information, see the BASE monitor command and the BASE program instruction.
Upper Speed Limit for SCALE.ACCEL
Defines the limit below which SCALE.ACCEL scales motion acceleration and deceleration values in proportion to the program speed. For example, if this value is set to 100% and a program speed of 50% is specified, the desired acceleration and deceleration will be internally set to half of what the user has specified. But, if the program speed is higher than 100%, the user specified acceleration and deceleration will be used without modification.
If the SCALE.ACCEL limit value is set to a large number, SCALE.ACCEL will always scale the acceleration and deceleration. For example, in this case, a speed of 200% would double the commanded acceleration and deceleration.
Edit S-curve trajectory
This menu allows you to create custom acceleration profiles to control motion. After a profile is defined, you can specify its use with a number of V+ instructions and commands, including ACCEL, SPEED, and SCALE.ACCEL. If no profiles are defined, the default square-wave acceleration profile is used.
When you select a menu option, the following information is provided on screen:
Instructions for the selected option
Current value
Value range for the parameter if applicable
Menu Options
Enable and edit a profile
Allows you to select a profile and edit the acceleration and deceleration values for that profile to smooth out robot motion.
For each robot, there can be as many as nine different profiles. Profile 0 is always defined to be a square-wave acceleration curve with all four ramp times set to zero. Profiles 1 through 8 are defined by the robot manufacturer and are a function of the mechanical design of the manipulator and the applications for which the robot was designed. For instance, the manufacturer might define a general purpose profile that has all of the ramp times set equal to a nominal value for the mechanism. This profile could be used whenever smooth performance throughout the motion was more important than minimum cycle time.
In instances where cycle time is more important, a profile with high jerk values during the acceleration and low jerk values during the deceleration might be more appropriate. If you are using SPEC to set up a mechanism that you have built, then you are the "robot manufacturer" and should choose ramp times to suit the capabilities of your mechanism.
Disable a profile
If you don't want to use a profile, choose this option to disable it. If all the profiles are disabled, the default is used: Profile 0 is always defined to be a square-wave acceleration curve with all four ramp times set to zero.
Details
While there are many different motion profiles that can be characterized as "S-curves", in V+ an S-curve is a trajectory that has a trapezoidal acceleration profile, giving an S-shaped velocity profile. V+ also supports a square-wave acceleration profile, which gives a trapezoidal velocity profile.
The benefit of a trapezoidal acceleration profile is that the rate of change of acceleration (the "jerk") can be controlled. (By comparison, the magnitude of the jerk for a square-wave acceleration profile is always infinite.) For many mechanisms, controlling the jerk is significant because high jerk values can cause the mechanical structure of the robot to vibrate. Minimizing structural vibrations is especially important at the end of a motion since such oscillations can adversely affect the settling time of the robot. This can affect the cycle. However, for stiff, strong mechanisms, a square-wave profile may result in shorter cycle times.
For a general trapezoidal profile, there are four acceleration values that can be specified, as shown in S-Curve (Trapezoidal Acceleration) Profile: the ramp up to maximum acceleration, the ramp down from maximum acceleration, the ramp up to maximum deceleration, and the ramp down to zero acceleration. In V+ each of these four acceleration values can be individually specified, and a set of the four values defines a specific acceleration "profile".
For a given motion, the duration of the motion and the characteristics of the acceleration profile depend on several parameters. These parameters are controlled by a number of V+ instructions and commands, including ACCEL, SPEED, and SCALE.ACCEL (see the V+ Language Reference Guide).
Edit motor stop-on-force specs
(This option is not currently available for Adept SmartMotion systems)
Edit collision detection specs
This menu item allows you to edit the parameters for detecting, and thus preventing, collisions between the robot end-effector and objects in the workcell. The menu shown in User-Defined Obstacle Definition Screen is displayed. This menu allows you to define obstacles that represent objects or volumes in the workcell.
Each obstacle is defined by its shape, location, and size. The shape of an obstacle can be a box, a cylinder, a sphere, or a frustum. The location of each obstacle is defined with respect to the base reference frame of the robot when its BASE transformation is null, ( that is, relative to the physical base of the robot).
There are two classes of obstacles: avoidance obstacles and containment obstacles.
Avoidance Obstacles
Avoidance obstacles define volumes that the robot tool tip must avoid. During operation, the path of the robot tool tip is automatically tested to ensure that it does not collide with these objects under the circumstances described below.
Containment Obstacles
Containment obstacles define volumes that must contain the robot tool tip and tool mounting flange. (This effectively defines all points outside of the containment obstacles as avoidance obstacles.) During operation, the path of the robot tool tip is automatically tested to ensure that it does not leave these volumes under the circumstances described below.
The workspace of the Quattro robot is defined by a containment obstacle. This is done because, unlike other robots, joint limits are not meaningful in defining the workspace. The V+ version that supports the Quattro defines a cone-like shape (a frustum) as a containment obstacle. This is actually the work envelope. Other obstacles can be defined within this obstacle.
![]()
CAUTION: Because the collision detection references the tool point of the robot, which is typically at the center of the tooling, you generally should add 1/2 of the diameter of the robot's end-of-arm tooling to each surface of the actual obstacle being modeled.
Consideration of Obstacles During Robot Motion
During operation, the path of the robot tool tip is automatically tested to ensure that it does not violate an obstacle definition under the following conditions:
When the robot is being moved in WORLD or TOOL manual control mode.
When the destination of each motion is being planned.
While straight-line motions are being performed.
In addition, if the associated bit is set in Robot Option Word #1, obstacles are considered:
When the robot is being moved in JOINT manual control mode.
While joint-interpolated motions are being performed.
Note, however, that the consideration of obstacles during joint-interpolated motions significantly increases the computational burden for the motions, and could affect the performance of the motions.
![]()
User-Defined Obstacle Definition Screen
Choose one of the user-defined obstacles:
![]()
Sample Collision Detection Options for Box Shape
Enter the desired value for the object shape, position, and size. The list of shape parameters will vary depending on the type of object selected (box, cylinder, sphere, or frustum). All dimensions are in millimeters.
Box requires X, Y, and Z lengths.
Cylinder requires diameter and height, in Z.
Sphere requires diameter.
Frustum requires Base diameter, height, in Z, and Top diameter.
Sample Collision Detection Options for Box Shape shows an example of a completed screen. You can repeat the previous steps for up to four objects in the robot workcell.
Related Utilities
Submit comments to: techpubs@adept.com
Last modified on: 4/1/2010
Copyright © 2006 - 2009. Adept Technology, Inc.
