Skip to content

Commit 84d8135

Browse files
Add KUKA LBR Med Setup Guide to Common Platforms Wiki (#266)
Adds a new Common Platforms wiki guide for integrating KUKA LBR Med with ROS 2 and wires it into discoverability/navigation. - initial bring-up and operation modes - Brake Test Monitor workflow - Sunrise Workbench package setup and project synchronization - FRI-based ROS 2 integration and connection-state behavior --------- Co-authored-by: liver121888 <liver121888@gmail.com>
1 parent 816b0a8 commit 84d8135

9 files changed

Lines changed: 83 additions & 0 deletions

File tree

_data/navigation.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ wiki:
5353
url: /wiki/common-platforms/husky-interfacing-and-communication/
5454
- title: Interfacing with the Nvidia Orin
5555
url: /wiki/common-platforms/interfacing-with-nvidia-orin/
56+
- title: Working with KUKA LBR Med
57+
url: /wiki/common-platforms/kuka/
5658
- title: Khepera 4
5759
url: /wiki/common-platforms/khepera4/
5860
- title: Kinova Arms
154 KB
Loading
155 KB
Loading

assets/images/common-platforms/lbr-fri-ros2.svg

Lines changed: 4 additions & 0 deletions
Loading
61 KB
Loading
78.8 KB
Loading
25.9 KB
Loading

wiki/common-platforms/index.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ We encourage contributions to further enhance the knowledge base in this section
3535
- **[Interfacing with the Nvidia Orin](/wiki/common-platforms/interfacing-with-nvidia-orin/)**
3636
A comprehensive guide to using the Nvidia Jetson AGX Orin for robotics. Covers power delivery, GPIO pinouts, high-speed interfaces like USB and Ethernet, and debugging tools for reliable sensor integration.
3737

38+
- **[Working with KUKA LBR Med](/wiki/common-platforms/kuka/)**
39+
Setup and integration guide for KUKA LBR Med with ROS 2, including Sunrise Workbench setup and FRI connection reliability notes.
40+
3841
- **[Husky Interfacing and Communication](/wiki/common-platforms/husky-interfacing-and-communication/)**
3942
Discusses how to set up communication with the Clearpath Husky robot, including hardware setup and localization using GPS, IMU, and odometry.
4043

wiki/common-platforms/kuka.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
# Jekyll 'Front Matter' goes here. Most are set by default, and should NOT be
3+
# overwritten except in special circumstances.
4+
# You should set the date the article was last updated like this:
5+
date: 2024-05-01 # YYYY-MM-DD
6+
# This will be displayed at the bottom of the article
7+
# You should set the article's title:
8+
title: Working with KUKA LBR Med
9+
# The 'title' is automatically displayed at the top of the page
10+
# and used in other parts of the site.
11+
---
12+
The LBR Med is a series of robots designed for medical diagnostics, treatment, and surgical interventions. To allow these functionalities, the manipulator is CB-certified, has comprehensive safety precautions, and is very accurate. We are using this device to build an assistive solution for Total Knee Arthroplasties (TKAs).
13+
14+
Being a proprietary device, there is very limited documentation about using the KUKA, with little to no community support. We spent a lot of time trying to figure out how to interface the KUKA with ROS. Hence, this article is written to guide you through the entire setup of the manipulator.
15+
16+
## Initial setup
17+
Before you start mounting the manipulator, it's important to keep in mind that you'll need a custom base plate and table for the purpose. We used a Vention table with a personalized design and a machined steel plate for the manipulator's mounting.
18+
19+
Once you have acquired these components, you can proceed with the mounting process. Refer to the manual for detailed instructions on connecting the controller, manipulator, and pendant. Following these instructions will ensure that the setup is done correctly and minimize any risk of damage or malfunction.
20+
21+
After completing the connection, you can test the setup by switching the pendant to T1 mode. To enable it, press the button, and then use the +/- button to jog the manipulator. You should note that the pendant has three modes of operation: T1, T2, and AUT.
22+
23+
In T1 and T2 modes, the robot will only function while the enable button is pressed. In T1 mode, the robot's speed is reduced by 25% of the maximum speed. Additionally, you can run various applications on the manipulator aside from jogging it. The AUT mode is solely for running these applications.
24+
25+
26+
### Brake test monitor
27+
During the initial setup, we spent a lot of time trying to debug why the manipulator would shut off if left idle for 15-20 mins. It would enter an error state, with a code not found on Google, and the only solution would be to restart the manipulator which is a 10-15 min activity. After struggling with it for a week, here’s what we learned: “CBTM” stands for Central Brake Test Monitor, and if you don't run a brake test ever so often, the manipulator will lock off and not function.
28+
29+
When you boot the controller, the pendant will be in a “warning” state and have an orange indicator in the software. Switch the mode to AUT, select SampleBrakeTestMonitor from the menu, and run it. Once it is completed, it will show you the status of the brakes of each joint. The orange indicator will turn green if the brakes in all the joints are working well.
30+
31+
### Sunrise Workbench
32+
Sunrise Workbench is the IDE for developing Java applications running on the KUKA. Along with the Sunrise Workbench installer, you should also be able to find the SunriseOS folder with ver X. In our case, we are using SunriseOS Med V.2.6.5, the OS version is important as we found out that OS V.1.1.5 to V.2.6.5 has a lot of breaking changes.
33+
34+
Once you installed the Workbench and started a project, you need to manually install the software packages in the SunriseOS folder. From Help->Install New software, you select local as installing source, and browse toward the packages you want to install.
35+
36+
![Sunrise Workbench](/assets/images/common-platforms/sunrise-install-software.png)
37+
38+
Once you have installed the packages, in our case it solved all the missing dependencies in our existing project.
39+
40+
Inside a project, StationSetup.cat is the file that defines the arm topology, what software should be installed into the control station, and the arm’s configuration like IP address and other parameters. The StationSetup should only be installed once, while project synchronization should be done every time you make modifications to the code.
41+
42+
![Synchronize Project Button](/assets/images/common-platforms/sunrise-workbench-synchronize.png)
43+
44+
Because the KUKA software is proprietary, it’s not easy to find documentation online. Thus it’s hard to understand what is the function of the code. Luckily when in code editor view, if you hover over a function, it will pop out the function definition. If you want to dive deeper into the function, you can select “open attached Javadoc in a browser” to open the Javadoc that comes with the packages.
45+
46+
![Open Javadoc Button](/assets/images/common-platforms/sunrise-workbench-javadoc.png)
47+
48+
### Fast Robot Interface
49+
Fast Robot interface can stream out robot data in real-time, and when connection quality is good, it can also command the robot.
50+
51+
![Software Architecture](/assets/images/common-platforms/lbr-fri-ros2.svg)
52+
53+
(In AUT Mode) Run the LBRServer.java application from the robot pendant, and run the corresponding ROS2 node on the PC. Then the robot should be connected.
54+
55+
The purpose of the LBRServer application is to talk over the controller PC’s Ethernet connection to another device. It can publish the current joint states, and accept goal joint values for the manipulator, which it will communicate to the controller PC, which will then move the manipulator. These messages can be decoded by the LBR_FRI package maintained by Kings College London, which provides an interface that talks to the LBRServer, and to ROS on your PC.
56+
57+
### Avoiding Connection Issues
58+
59+
Depending on the network quality, there might be issues that come up with using the LBR FRI connection issues. If the connection quality drops below a certain threshold, the ROS side of the system will kill the connection for safety reasons and crash the application. Based on the network quality, the application defines certain states, as shown below.
60+
61+
![Representation of the network connection states](/assets/images/common-platforms/fri-quality.png)
62+
63+
The system will let you monitor the state of the robot and control it as long as the connection is classified as “Good” or “Excellent”. The behavior tree based on the connection status is as follows. You can get information about the robot’s joints if the status is MONITORING_READY, and you can give it goal values if the status is COMMANDING_ACTIVE.
64+
65+
![System behavior tree based on the connection status](/assets/images/common-platforms/fri-state.png)
66+
67+
If the connection status is below “GOOD” anytime, The application will shut. We had this issue happen to us during our demo. To avoid that happening in the future, we intend to modify the ROS Client to allow the robot to stay connected even if the connection is lost for a second, and we’ll implement our manipulation code in a manner to handle these situations.
68+
69+
## Summary
70+
In this wiki we covered most of the setup and usage of Kuka arm with ROS2 interface. We talked about the ROS side of the system and the java application side of the system. Hope this guide can help you quickly set up the Kuka arm.
71+
72+
## References
73+
- [LBR FRI ROS 2 GitHub Repository](https://github.com/lbr-stack/lbr_fri_ros2_stack)
74+
- [LBR FRI ROS 2 GitHub Online Document](https://lbr-stack.readthedocs.io/en/latest/)

0 commit comments

Comments
 (0)