# lbr_fri_ros2_stack
[](https://github.com/lbr-stack/lbr_fri_ros2_stack/tree/jazzy?tab=Apache-2.0-1-ov-file#readme)
[](https://lbr-stack.readthedocs.io/en/latest/?badge=latest)
[](https://joss.theoj.org/papers/c43c82bed833c02503dd47f2637192ef)
[](https://github.com/psf/black)
ROS 2 packages for the KUKA LBR, including communication to the real robot via the Fast Robot Interface ([FRI](https://github.com/lbr-stack/fri)) and [Gazebo](http://gazebosim.org/) simulation support. Included are the `iiwa7`, `iiwa14`, `med7`, and `med14`.
| LBR IIWA 7 R800 |
LBR IIWA 14 R820 |
LBR Med 7 R800 |
LBR Med 14 R820 |
|
|
|
|
## Status
| OS | ROS Distribution | FRI Version | Build Status |
| :------------- | :--------------- | :---------- | :----------- |
| `Ubuntu-24.04` | `jazzy` | `1.11` | [](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions/workflows/build-ubuntu-24.04-fri-1.11.yml) |
| `Ubuntu-24.04` | `jazzy` | `1.14` | [](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions/workflows/build-ubuntu-24.04-fri-1.14.yml) |
| `Ubuntu-24.04` | `jazzy` | `1.15` | [](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions/workflows/build-ubuntu-24.04-fri-1.15.yml) |
| `Ubuntu-24.04` | `jazzy` | `1.16` | [](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions/workflows/build-ubuntu-24.04-fri-1.16.yml) |
| `Ubuntu-24.04` | `jazzy` | `2.5` | [](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions/workflows/build-ubuntu-24.04-fri-2.5.yml) |
| `Ubuntu-24.04` | `jazzy` | `2.6` | [](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions/workflows/build-ubuntu-24.04-fri-2.5.yml) |
| `Ubuntu-24.04` | `jazzy` | `2.7` | [](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions/workflows/build-ubuntu-24.04-fri-2.7.yml) |
## Documentation
Full documentation available on [Read the Docs](https://lbr-stack.readthedocs.io/en/latest).
## Quick Start
1. Install ROS 2 development tools
```shell
sudo apt install ros-dev-tools
```
2. Create a workspace, clone, and install dependencies
```shell
source /opt/ros/jazzy/setup.bash
export FRI_CLIENT_VERSION=1.15
mkdir -p lbr-stack/src && cd lbr-stack
git clone https://github.com/lbr-stack/lbr_fri_ros2_stack.git -b jazzy src/lbr_fri_ros2_stack
vcs import src < src/lbr_fri_ros2_stack/lbr_fri_ros2_stack/repos-fri-${FRI_CLIENT_VERSION}.yaml
rosdep install --from-paths src -i -r -y
```
> [!NOTE]
> FRI client is cloned from [fri](https://github.com/lbr-stack/fri) and must be available as branch, refer [README](https://github.com/lbr-stack/fri?tab=readme-ov-file#contributing).
3. Build
```shell
colcon build --symlink-install
```
4. In terminal 1, launch a mock setup via
```shell
source install/setup.bash
ros2 launch lbr_bringup mock.launch.py \
model:=iiwa7 # [iiwa7, iiwa14, med7, med14]
```
> [!TIP]
> List all arguments for the launch file via `ros2 launch lbr_bringup mock.launch.py -s`
5. In terminal 2, visualize the setup via
```shell
source install/setup.bash
ros2 launch lbr_bringup rviz.launch.py \
rviz_cfg_pkg:=lbr_bringup \
rviz_cfg:=config/mock.rviz
```
Now, run the [demos](https://lbr-stack.readthedocs.io/en/latest/lbr_fri_ros2_stack/lbr_demos/doc/lbr_demos.html). To get started with the real robot, checkout the [Hardware Setup](https://lbr-stack.readthedocs.io/en/latest/lbr_fri_ros2_stack/lbr_fri_ros2_stack/doc/hardware_setup.html).
## Repositories Using This Project
- [KUKA ROS 2 Controllers](https://github.com/idra-lab/kuka_lbr_control): A repository for controlling KUKA LBR IIWA and Med robots using various control algorithms.
| Kinematics Control |
Gravity Compensation |
Impedance Control |
|
|
|
## Citation
If you enjoyed using this repository for your work, we would really appreciate ❤️ if you could leave a ⭐ and / or cite it, as it helps us to continue offering support.
```
@article{Huber2024,
doi = {10.21105/joss.06138},
url = {https://doi.org/10.21105/joss.06138},
year = {2024},
publisher = {The Open Journal},
volume = {9},
number = {103},
pages = {6138},
author = {Martin Huber and Christopher E. Mower and Sebastien Ourselin and Tom Vercauteren and Christos Bergeles},
title = {LBR-Stack: ROS 2 and Python Integration of KUKA FRI for Med and IIWA Robots},
journal = {Journal of Open Source Software}
}
```
## Acknowledgements
### Open Source Contributors
We would like to acknowledge all contributors 🚀
**lbr_fri_ros2_stack**
[](https://github.com/lbr-stack/lbr_fri_ros2_stack/graphs/contributors)
**fri**
[](https://github.com/lbr-stack/fri/graphs/contributors)
### Organizations and Grants
We would further like to acknowledge following supporters:
| Logo | Notes |
|:--:|:---|
|
| This work was supported by core and project funding from the Wellcome/EPSRC [WT203148/Z/16/Z; NS/A000049/1; WT101957; NS/A000027/1]. |
|
| This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No 101016985 (FAROS project). |
|
| Built at [RViMLab](https://rvim.online/). |
|
| Built at [CAI4CAI](https://cai4cai.ml/). |
|
| Built at [King's College London](https://www.kcl.ac.uk/). |