General Tips

General Tips

This section covers the following topics:

   How to Calibrate a Tool (TCP)

   How to Calibrate a Reference Frame

   Tips for Collision Detection

   Tips Importing STEP or IGES files

   How to change the Simulation Speed

   How to calculate the Cycle Time of a program

Calibrate TCP

The robot Tool Center Point (or TCP) is the point used for robot positioning in any robot program that involves targets defined in the Cartesian space. The TCP is defined as a transformation from the robot flange. Defining the right TCP is important in any robot application either if it involves Offline Programming or not.

Follow these steps to calibrate a robot tool (Tool Center Point, or TCP):

1.    Select UtilitiesGeneral - Image 1 Calibrate Tool Frame (TCP)

2.    Select the Tool to calibrate.   
Alternatively, right click a tool and select General - Image 2 Calibrate TCP.

3.    Select the method:

a.    Touching a point with the tip of the TCP, using different tool orientations (Calib XYZ by point)

b.    Touching a plane with the TCP, using different tool orientations (Calib XYZ by plane). The TCP can be a point or a sphere.

General - Image 3

Note: Touching the same point using different orientations (first method) is the same method most robot controllers have available on the teach pendant. Use RoboDK to get a better idea of the TCP errors.

Note: If the center of a sphere needs to be calculated it is recommended to use a plane to calibrate the TCP. This method automatically retrieves the center of the touch probe.

4.    TCP calibration using joint values is the default setting. Change it to poses if you have the Cartesian targets.

Important: If the TCP is calibrated using poses, the position of the robot flange must be provided as a pose (position and orientation), with respect to the robot base or a reference frame. More information on how to provide these values in the Reference Frames section.

Tip: It is possible to use more than 3 or 4 configurations to calibrate the TCP. This allows obtaining a more accurate result and provides a good estimate of the TCP error. It is recommended to use 8 points or more to define a TCP accurately, or 3 points if accuracy is not important.

5.    Select the robot if more than one robot is available.

6.    Adjust the number of points that you would like to use to calibrate the TCP. This value can also be modified later.

7.    Start filling the table with the measured configurations (joint values or position and orientation of the flange).

Tip: The list of configurations can be filled manually or by using the copy/paste buttons (on the right of each line).

Important: It is recommended to provide each joint value with at least 4 decimals (when providing joint values). The allowed number of decimal values can be changed in ToolsOptionsAccuracyMax Decimals.

Tip: It is also possible to select Get p1 to get the current joint values from the real robot to RoboDK. If the robot driver has properly been set up you can easily obtain this position on the PC. More information available in the Robot Drivers Section.

Important: It is recommended to keep a separate copy of the values being provided. Select Copy data and Paste data to copy/paste all the contents.

General - Image 4

8.    Finally, select Update to update the TCP in the RoboDK Station. The TCP error will be updated to 0 mm.

Note: The Calibrated TCP is calculated automatically once the values have been entered.

Tip: Some useful error statistics are provided as the mean error, standard deviation (std) and maximum error. Select Show errors to display a graphic with the errors for each point against the calculated average. Since this method involves a lot of manual operations it is common to introduce errors in specific points. To isolate these errors, we can iteratively delete the points that shows a larger error compared to the average.

As an example, the following image shows the errors before point 6 was deleted by selecting the Remove p6 button.

General - Image 5

Calibrate Reference Frame

A Reference Frame can define the location of an object with respect to a robot, with a given position and orientation. All Offline Programming applications require defining a reference frame to locate an object with respect to a robot. More information about reference frames is available in the Getting Started Section.

Important: Properly calibrate the TCP before identifying the reference frame. This is very important if the Reference Frame is identified using robot joint values or the points are taken from the robot teach pendant. Any errors coming for the TCP calibration will be transferred to the identification of the reference frame.

Follow these steps to identify a reference frame with respect to the robot:

1.    Select UtilitiesGeneral - Image 6 Calibrate Reference

2.    Select the Reference Frame to calibrate.      
Alternatively, right click a Reference Frame and select General - Image 7 Calibrate Reference Frame.

3.    Select the method:

a.    3-point method (with the 3rd point crossing the Y+ axis)

b.    3-point method (with the 1st point being the origin of the reference frame)

c.     6-point

d.    The Turntable Calibration option allows locating the reference frame on a turntable, having the turntable axis properly aligned

General - Image 8

Note: Robot controllers usually accept defining reference frames using one of the listed 3-point from the teach pendant.

4.    Joint values are used as the default setting. Change it to points if you have the XYZ position of each point with respect to the robot base frame.

5.    Select the robot if more than one robot is available.

6.    Start filling the table with the measured points (joint values or points).

Tip: The list of configurations can be filled manually or by using the copy/paste buttons (on the right of each line).

Important: It is recommended to provide each joint value with at least 4 decimals (when providing joint values). The allowed number of decimal values can be changed in ToolsOptionsAccuracyMax Decimals.

Tip: It is also possible to select Get p1 to get the current joint values from the real robot to RoboDK. If the robot driver has properly been set up you can easily obtain this position on the PC. More information is available in the Robot Drivers Section.

Important: It is recommended to keep a separate copy of the values being provided. Select Copy data and Paste data to copy/paste all the contents.

General - Image 9

7.    Finally, select Update to update the Reference Frame in the RoboDK Station. The Frame error will be updated to 0 mm.

Note: The Reference Frame is calculated automatically once the values have been entered.


 

Align object with reference

This section explains how the reference frame of an object can be aligned with respect to its own geometry. This section allows replacing the reference frame of an object to a location that can be identified in a real setup.

Note: It is not required to follow this procedure if the reference frame of an object is already placed in a location that can be probed by the robot TCP.

Follow these steps to virtually align the reference frame of an object according to specific points of the object geometry:

1.    Load the object

2.    Select the active General - Image 10 Station

3.    Select ProgramGeneral - Image 11 Add Reference Frame.                    
Make sure the reference frame is directly attached to the station root (not to other Reference Frames).

4.    Right click the reference frame and select General - Image 12Calibrate Reference Frame.           
The procedure is very similar to the previous section. The main difference is that we must select the points of the virtual object instead of the real object.

5.    Select the desired calibration method.          
For example: The 3-point method (with the 3rd point crossing the Y+ axis).

6.    Select Calibrate using points

7.    Select Tools➔Measure to open the Measurement Tool

8.    Select the Absolute button in the Measurement Tool so that the points are measured with respect to the Station (absolute reference)

9.    Select the 3 points on the virtual object (one by one) and enter them in the Reference Frame calibration window

Tip: copy/paste the XYZ coordinates using the corresponding buttons.

10.  Select Update. The reference frame should appear at the desired location.

11.  Right click the object and select Change support. Then, select the new reference frame. The absolute position of the object will not change. However, the relative position of the object with respect to the new reference frame will be properly defined.

12.  The object and its own reference are ready for Offline Programming: Drag and drop the new reference frame to the robot reference frame.

Important: It is important have the reference frame directly attached to the station root so that we can use absolute measurements using the Measurement Tool.

Tip: It might be easier to create a new station on the side (select FileNew Station) and align the object with the reference frame separately. Then, copy/paste only the object to the main RoboDK Station.

General - Image 13

Align robot references

This section explains how two or more robots can be programmed offline while sharing a common reference frame.

In a typical offline programming application, the position of the object is updated with respect to the robot. However, when two or more robots are used for the same application, the position of each robot must be updated with respect to one common reference (a reference object or a common reference frame).

Follow these steps to update the position of two or more robots with respect to a reference frame:

1.    Make sure the robot reference frames and the object reference frame do not depend on each other. If there is a dependency we should place the reference frames attached to the station item.

2.    Add a new reference frame attached to each of the robot base frames as if you were going to define a new individual reference frame for each robot (Real Ref. A and Real Ref. B).      
This reference frame will represent the real location of the part with respect to each robot.

3.    Calibrate each of these reference frames (Real Ref. A and Real Ref. B), separately, using the standard Reference Calibration procedure (3-point method for example)

At this point we will see 3 reference frames that should be coincident, but they are not. The reference frame of each robot must be updated to fix this issue:

4.    Double click one of the robot references, such as Robot A Base to open the reference frame window

5.    Copy the position of the robot base reference with respect to the calibrated reference of that robot (Real Ref. A), by selecting the copy button

6.    In the same window, change the Reference position with respect to (dropdown) to the Reference Object

7.    Paste the copied position. The robot will be moved and the Real Ref. A will be coincident with the Reference Object frame

8.    Repeat steps 4-7 of this procedure for the other robots, if any

At the end of this procedure all reference frames should match and the relationship between all the calibrated references and the Reference Object should be the same.

General - Image 14

Collision Detection

Select ToolsGeneral - Image 15 Check collisions to activate/deactivate collision detection. If collision detection is activated, all programs and robot movements will be stopped when a collision is detected. This is the default behavior and it can be changed in the ToolsOptionsMotion menu (uncheck the option Stop robot movements when a collision is detected).

By default, RoboDK checks collisions between all moving objects in the station, including all robot links, objects and tools. As an exception, consecutive robot joints are not checked for collisions as they are always in contact.

It is possible to specify if the interaction between each pair of objects is checked for collisions by selecting ToolsGeneral - Image 16 Collision map. This will open a new window displaying all the relationships and the check state. Double click each cell to activate or deactivate collision checking. Select Set default selection to automatically set up a conservative selection.

Tip: Double click the case in the diagonal to check/uncheck collisions for a specific object against all the other objects.

Tip: If the simulation slows down because of collision checking it is recommended to reduce the number of checks to use less computer power for collision checking.

General - Image 17


 

Importing STEP and IGES files

STEP and IGES files are two different formats of 3D files supported by RoboDK.

If importing STEP or IGES files takes longer than usual it is possible to improve the time it takes to import these files in the ToolsOptionsCAD menu and select Fast Import Settings.

This option will update the default settings to import these parametric files much faster. On the other hand, curve edges will not be imported and the accuracy of the surfaces might not be as accurate.

Tip: Increase the Linear/Angular accuracy of the surface to import files faster. Decrease these values to improve the accuracy of the imported objects.

More information available regarding import settings in the CAD menu.

Tip: Importing large 3D files might slow down the simulation. To improve the simulation speed, select: ToolsOptionsDisplay, and select Best Performance. Also Selecting Use GPU arrays will be faster with dedicated graphic cards.

General - Image 18


 

Simulation Speed

The simulation speed (or the simulation ratio) is how fast RoboDK simulates a real motion. A simulation ratio of 1 means that a movement that takes 1 second on a real robot will take 1 second to simulate.

RoboDK simulates 5 times faster than real time by default. That means that a program that takes 5 seconds to execute on the real robot it will be simulated in 1 second. Speeding up the simulation increases this ratio to 100. Normal and fast simulation speeds can be changed in the ToolsOptionsMotion menu.

Tip: Select ProgramGeneral - Image 19 Fast simulation to speed up the simulation (or hold the space bar). This option is also available in the toolbar. Alternatively, hold the spacebar to simulate with the fast simulation speed.

Tip: Select the Backspace key or ProgramGeneral - Image 20 Pause program to pause the program so that it can be resumed from the same location.

Cycle Time

RoboDK can accurately calculate the cycle time assuming the robot makes accurate point to point movements, without smoothing corners.

Some parameters need to be considered to accurately calculate cycle time in RoboDK. It is important to note that with speeds and accelerations close to the robot limits, the real speeds and acceleration will highly depend on the robot payload and position of the robot, therefore, the cycle time software calculation will be an estimate.

The robot speed and acceleration are important as they are robot dependent. The robot speed and accelerations (linear and joint speed/acceleration) must be provided as an instruction or in the robot parameters menu. For example, you can change the speed in a program using ProgramSet Speed Instruction. RoboDK assumes that the robot has a uniform acceleration up to when it reaches the maximum speed, then, uniform deceleration. By default, RoboDK uses joint speed and joint acceleration for joint moves and linear speed and linear acceleration for linear moves. This setting can be changed (in ToolsOptionsMotionMove time calculation).

General - Image 21

Note: In the Motion settings section (ToolsOptionsMotion tab) it is possible to specify how the joint/linear speeds/accelerations are applied to joint and linear movements, with the right timing, and calculate the cycle time accurately. For example, Universal Robots use Linear speeds and accelerations for linear movements and joint speeds and accelerations for joint movements (default setting in RoboDK). Other robot controllers might apply the strictest constrain. Other robot manufacturers might not allow providing numeric acceleration values.

Note: As stated in the Simulation Time section, RoboDK simulates 5 times faster than real time by default. This setting can be changed in ToolsOptionsMotion menu.

Synchronize external axes

It is possible to synchronize a robot arm with external axes. External axes can be simply used as a positioner or they can also be synchronized with the same robot controller. When external axes are synchronized, the robot and the axes can move at the same time while keeping accurate linear movements relative to the programed path. Not all robot controllers support the synchronization of the robot arm with external axes.

To synchronize a robot arm with external axes:

1.    Build a RoboDK station placing the robot and axes/mechanisms in their location

Note: If a rail is used, it is required to place the robot attached to the rail, as shown in the following image.

Tip: If required, use additional reference frames to move objects with respect to each other.

2.    Select UtilitiesSynchronize External Axes

3.    Select the robot and the available turntable and/or linear track will be available to synchronize with the robot

4.    Select OK. A new robot panel will open showing the additional axes in blue

Targets related to this synchronized robot will show additional joint values in blue. It is possible to specify the preferred position of a positioner when a program is generated. Cartesian targets will keep the provided Cartesian position while moving the external axes along the path.

Any robot machining settings will show additional options to provide the preferred position of the external axes. Also, each movement exported through the post processor will include the position of the external axes.

Tip: Double click the robot axis limits in the robot panel to update the robot joint limits.

Tip: If the external axis is not available in the library. It is possible to model additional axes in the menu UtilitiesModel mechanism or robot.

General - Image 22