Installation
Requirements
Hardware:
KUKA LBR iiwa cobot
KUKA Sunrise Cabinet (controller for KUKA’s LBR iiwa cobot)
External workstation (Linux or Windows)
Software:
KUKA Sunrise.Workbench for creating and synchronizing Sunrise projects
KUKA Sunrise.Servoing extension
Installation and setup
The installation and setup is divided into two parts:
The Sunrise project to be installed in the KUKA Sunrise Cabinet (programmed in JAVA)
The external packages that communicates with the Cabinet via TCP/IP
Sunrise project
In the Sunrise.Workbench, create a new project or load the existing project from the controller (default IP:
172.31.1.147
)Open the
StationSetup.cat
file and enable SmartServo extensions (in theSoftware
tab)
Copy library files (
.java
files) fromlibiiwa/java/src/application
to<sunrise_project>/src/application
folder
Edit the ProcessData configuration (
<sunrise_project>/src/RoboticsAPI.data.xml
file) and overwrite the content with the following configuration
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<RoboticsAPIData version="3">
<world>
<gravitation x="0.0" y="0.0" z="9.81"/>
</world>
<objectTemplates>
</objectTemplates>
<processDataContainer>
<processData dataType="java.lang.Boolean" defaultValue="false" displayName="Communication: Use double precision" editableOnHmi="true" id="communication_double_precision" value="false"/>
<processData dataType="java.lang.String" defaultValue="172.31.1.25" displayName="Controller: IP Address" editableOnHmi="true" id="controller_ip" value="172.31.1.25"/>
<processData dataType="java.lang.Integer" defaultValue="12225" displayName="Controller: Port" editableOnHmi="true" id="controller_port" max="65535" min="1024" value="12225"/>
<processData dataType="java.lang.Boolean" defaultValue="false" displayName="Log to SmartPad: Info" editableOnHmi="true" id="verbose_info" value="false"/>
<processData dataType="java.lang.Boolean" defaultValue="true" displayName="Log to SmartPad: Warning" editableOnHmi="true" id="verbose_warn" value="true"/>
<processData dataType="java.lang.String" defaultValue="" displayName="Robot: Tools" editableOnHmi="false" id="tools" value=""/>
</processDataContainer>
</RoboticsAPIData>
Data |
Default |
Description |
---|---|---|
Communication: Use double precision |
|
Whether to use double precision (64 bits) in both the request and the response (default: float precision (32 bits)) |
Controller: IP Address |
|
External control workstation IP address |
Controller: Port |
|
External control workstation port |
Log to SmartPad: Info |
|
Whether to display information about received commands or any other data on the smartHMI. The excessive use of the message display could degrade the application performance and the smartHMI operation |
Log to SmartPad: Warning |
|
Whether to display warning messages on the smartHMI. The excessive use of the message display could degrade the application performance and the smartHMI operation |
Robot: Tools |
|
List of tool names separated by commas |
Install the
StationSetup.cat
(wait for Cabinet reset) and synchronize the project
External packages
The following steps describe how to install the available control workflows
Note
Only one, the python module or the ROS or ROS2 node, can be in use at a time.
Python
The Python module is cross-platform, where the only dependencies are numpy and scipy. These dependencies can be installed as follows:
pip install numpy scipy
To use the Python module you only need to download the libiiwa.py
file and place it in the PYTHONPATH
or any other reachable location during import (e.g. together with the main code)
Python module |
Visit Python class to get started with the Python module
ROS/ROS2
Download and unzip the following packages in a ROS/ROS2 workspace, according to the version of the distribution. Make sure to source the ROS/ROS2 distribution and build the workspace
Note
Since the libiiwa.py
Python module may undergo more frequent updates, it is not included in any of the ROS/ROS2 packages although it is necessary for their operation. Download the libiiwa.py
file (see previous section) and place it together with the node.py
script according to the target distribution.
ROS:
libiiwa_ros/scripts
ROS2:
libiiwa_ros2/libiiwa_ros2
Warning
The message packages for both the ROS and ROS2 distributions have the same name. Be sure to use the correct one according to the target disto.
Package |
ROS |
ROS2 |
---|---|---|
LibIiwa node |
||
LibIiwa message definitions |
Visit ROS & ROS2 to get started with the ROS/ROS2 nodes
Troubleshooting
Bug detection and/or correction, feature requests and everything else are more than welcome. Come on, open a new issue!
https://github.com/Toni-SM/libiiwa/issues
Changelog
# Changelog
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [0.1.1] - 2023-10-08
### Added
- Control display of warning messages on the smartPAD
- Cartesian impedance controller with overlaid force oscillation
- Attach/detach tools
- Use ROS/ROS2 node namespace as topic and service name to avoid naming conflicts
### Fixed
- Missing logging method in ROS `FollowJointTrajectory` class
## [0.1.0-beta] - 2023-02-20
### Added
- Initial release