2.3.4. Tool Configuration
A tool, for example a gripper or a suction cup, is mounted to the robot flange. To move the tool correctly and to take its load into account, the tool must be configured. This chapter describes which tool parameters can be configured in the voraus.core, where they can be configured, and which of them are shared with the robot controller.
Which tool information is shared with the robot controller depends on the robot manufacturer. Therefore, read the section Interaction with the Robot Controller for your robot type before you configure a tool.
Tool Parameters
A tool in the voraus.core is described by the parameters listed in Table 4.
Parameter |
Description |
|---|---|
Tool transformation |
Pose of the Tool CS relative to the robot flange, also referred to as TCP offset. The pose follows the convention described in Cartesian Pose Representation. |
Mass properties |
Mass of the tool, position of its center of mass relative to the robot flange, and moments of inertia |
Collision model |
Collision volumes that approximate the tool structure, and collision pairs between the tool and the robot structure. The voraus.core monitors these collision pairs cyclically and before executing a motion, see Collision Model of the Tool. |
States and commands |
States of the digital inputs and outputs that describe the tool, for example open and closed, and commands that set the digital outputs. States and commands are available only for the voraus.core in a virtual environment. |
Options to Configure a Tool
The tool can be configured at the following locations:
voraus.operator settings: Create and edit tools in the tool settings of the voraus.operator, see Configure Tool. This option is available for all robot types.
Tool Command: Set a TCP offset, a payload, or a tool command within a program, see Tool Command. This option is available only for the voraus.core in a virtual environment.
Robot controller: Configure the tool on the teach pendant of the robot controller according to the manufacturer’s documentation. Depending on the robot type, this configuration is required in addition to the configuration in the voraus.core, see Interaction with the Robot Controller.
Tool configuration file: Define all tool parameters, including the collision model, in the tool configuration file of the voraus Robot Control, see Tool Configs.
Interaction with the Robot Controller
The voraus.core and the robot controller maintain their own, separate models of the configured tool. The two systems are not fully synchronized. It is therefore important to understand which tool information is shared with the robot controller and which is not.
The tool transformation is not transmitted to the robot controller for any robot type, because the voraus.core controls the robot at joint level. The tool transformation is applied exclusively within the voraus.core. Tool data configured in the robot controller is not reported back to the voraus.core either.
The robot controller requires the mass properties for its internal functions, such as dynamic model calculations and load monitoring. Only for KUKA robots, the voraus.core transmits the mass properties to the robot controller. Table 5 gives an overview for each robot type.
The limited data exchange does not restrict the operation of the robot. The voraus.core takes the configured tool into account in its own motion planning and monitoring, so that the robot operates reliably, also with different loads. A further exchange of tool data with the robot controller has not been necessary so far. Only the requirements for the respective robot type described below must be met, for example, the configuration of the mass properties in the Yaskawa robot controller.
Tool data |
FANUC |
KUKA |
Yaskawa |
|---|---|---|---|
Tool transformation transmitted to the robot controller |
No |
No |
No |
Mass and center of mass transmitted to the robot controller |
No |
Yes, while RSI is running |
No |
Moments of inertia transmitted to the robot controller |
No |
No |
No |
Tool data read from the robot controller |
No |
No |
No |
Tool selection in the robot controller |
A tool must be selected. All its values can be set to 0. |
The voraus.core selects the tool with the ID |
A tool must be selected. All its values can be set to 0. |
Tool data changeable by the voraus.core during operation |
No |
Yes, while RSI is running |
No |
Note
As a consequence, the Cartesian poses reported by the voraus.core and the Cartesian poses displayed on the robot controller (for example on a FANUC, KUKA, or Yaskawa teach pendant) can differ.
When comparing Cartesian poses between the voraus.core and the robot controller, this difference in reference points must be taken into account. The poses only coincide when the tool transformation selected in the robot controller matches the tool transformation configured in the voraus.core, for example, when no tool transformation is configured in both systems, i.e., when the TCP is identical to the robot flange.
For FANUC and Yaskawa robots, the poses differ even if the tool transformations match, because the robot controller uses axis 2 as the origin of its base coordinate system, whereas the voraus.core uses the robot’s mounting point, see Robot Coordinate System.
The following sections describe the behavior for each robot type in detail.
Tool Configuration with FANUC Robots
The tool configured in the voraus.core is not transmitted to the FANUC robot controller. This applies to the tool transformation and to the mass properties. The mass properties are used only within the voraus.core.
A tool must always be selected in the FANUC robot controller. Its tool transformation and its mass properties can be set to 0.
The tool data in the FANUC robot controller can only be changed on the FANUC teach pendant. This is also possible in AUTO mode. The voraus.core cannot change the tool data in the robot controller.
The tool transformation configured in the voraus.core has no effect on the Cartesian poses displayed on the FANUC teach pendant. The Cartesian poses of both systems differ, even if the tool transformation is configured identically in both systems, see the note below Table 5.
Tool Configuration with KUKA Robots
As soon as the RSI program
voraus_rsi.srcis running, the voraus.core selects the KUKA tool with the ID16. This tool ID is defined by the variableVORAUS_TOOL_IDduring the setup of the RSI interface. The tool is selected even if another tool or no tool was selected on the KUKA smartPAD before.While the
voraus_cell.subscript is running, the voraus.core cyclically writes the mass and the center of mass of the configured tool to the KUKA tool with the ID16. This is possible in all KUKA operating modes, as long as RSI is running.The tool transformation and the moments of inertia are not written by the voraus.core. They keep the values configured on the KUKA smartPAD, by default 0. If the tool transformation on the KUKA smartPAD differs from the one in the voraus.core, the Cartesian poses displayed on the KUKA smartPAD differ from the poses reported by the voraus.core.
The voraus.core does not read any tool data from the KUKA robot controller.
If the configured mass exceeds the maximum payload of the robot, an error is reported.
Note
As soon as the voraus.core is set to READY and RSI is running again, the mass and the center of
mass on the KUKA smartPAD are overwritten by the values configured in the voraus.core.
Tool Configuration with Yaskawa Robots
The tool configured in the voraus.core is not transmitted to the Yaskawa robot controller. The tool can only be configured on the Yaskawa teach pendant. The voraus.core cannot change the tool data in the robot controller, neither in AUTO mode nor in any other mode.
The tool data configured in the Yaskawa robot controller is not reported back to the voraus.core.
A tool must always be selected in the Yaskawa robot controller. If no tool is mounted, a tool with all values set to 0 can be selected, for example a tool named NoTool.
The tool data in the Yaskawa robot controller can affect motions commanded by the voraus.core, for example, if the collision detection of the Yaskawa robot controller is triggered by the tool. Therefore, also configure a collision model for the tool in the voraus.core, see Collision Model of the Tool. The voraus.core then takes the tool into account in its own collision monitoring. It rejects motions that would lead to a collision before their execution and reacts before the collision detection of the robot controller is triggered. Without a collision model of the tool, the voraus.core plans and executes motions without taking the tool into account.
The tool transformation configured in the voraus.core has no effect on the Cartesian poses displayed on the Yaskawa teach pendant. The Cartesian poses of both systems differ, even if the tool transformation is configured identically in both systems, see the note below Table 5.
Warning
For Yaskawa robots, the tool’s mass properties cannot be transmitted to the robot controller. Therefore, its mass and center of mass must be configured identically and directly in the Yaskawa robot controller in addition to the configuration in the voraus.core. Otherwise, the robot controller’s internal functions, such as dynamic model calculations and load monitoring, operate with incorrect load information. For HC robots, for example the HC10, the tool matching the mounted tool, including its mass, must always be selected.