Viam KUKA Module
This is a Viam module for KUKA's family of industrial arms. This module provides a general framework for operating any compatible Kuka arm. This includes Kuka arm/controllers that use a TCP client connection and Kuka's EKI Manager.
This viam-kuka module is particularly useful in applications that require a Kuka arm to be operated in conjunction with other resources (such as cameras, sensors, actuators, CV) offered by the Viam Platform and/or separate through your own code.
As an example, a recent demo was created utilizing a Kuka Arm, an intelrealsense RGB-D camera, a modbus connection to a PLC and computer vision (YOLOv8) to create a mobile, face-tracking robot on the lookout for PPE equipment violators.
[!NOTE]
For more information on modules, see Modular Resources.
[!NOTE]
Before configuring your Kuka Arm, you must add a machine.
Navigate to the CONFIGURE tab of your machine’s page in the Viam app. Click the + icon next to your machine part in the left-hand menu and select Component. Select the arm
type, then search for and select the arm / viam-kuka
model. Click Add module, then enter a name or use the suggested name for your arm and click Create.
On the new component panel, copy and paste the following attribute template into your arm’s attributes field:
{
"ip_address": "0.0.0.0",
"port": 1234,
"model": "S1",
"safe_mode": true,
"joint_speed": 10
}
Edit the attributes as applicable.
[!NOTE]
For more information, see Configure a Machine.
Attributes
The following attributes are available:
Name |
Type |
Inclusion |
Description |
ip_address |
string |
Required |
The IP address of the KUKA device. |
port |
int |
Optional |
The port on the device to form the required TCP connection. The default port is 54610. |
model |
string |
Optional |
The baudrate model of KUKA device to be communicated to. This is also used in order to load the proper URDF file for geometric and kinematic data. The default model is KR10 R900-2. |
joint_speed |
float64 |
Optional |
Sets the speed of the joints. A value from (1-100). The default speed is 6.28 |
safe_mode |
bool |
Optional |
A bool that, if true, will ping the KUKA device to check connection before running any motion actions. The default is safe_mode turned off. |
Known Supported Hardware
Support for the following Arms has been confirmed. Additional arms that operate via KUKA's Robot Language (KRL) can be supported given the proper URDF file.
Devices |
Mac OSX |
Linux |
KR10r900-2 |
X |
X |
Next steps
Further Work
To request additional features or models be added, please create a GitHub Issue or reach out to us on our Discord channel.