Skip to content

Commit 72b5146

Browse files
authored
Merge pull request #147 from lbr-stack/dev-humble-launch
todo: - [ ] Update docs - [ ] Update launch files - [ ] Fix webhooks
2 parents 1cf5771 + 5a4fd86 commit 72b5146

File tree

210 files changed

+3533
-3371
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

210 files changed

+3533
-3371
lines changed

.github/workflows/black.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
name: Lint
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
lint:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v3
10+
- uses: psf/black@stable

.github/workflows/build.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
branches:
66
- humble
77
schedule:
8-
- cron: '0 0 * * 0'
8+
- cron: "0 0 * * 0"
99

1010
# ros 2 ci: https://github.com/marketplace/actions/ros-2-ci-action
1111
# doc: https://ubuntu.com/blog/ros-2-ci-with-github-actions
@@ -15,10 +15,11 @@ jobs:
1515
strategy:
1616
matrix:
1717
os: [ubuntu-latest]
18+
fri_version: [1.11, 1.14, 1.15, 1.16, 2.5]
1819
steps:
1920
- uses: ros-tooling/[email protected]
2021
- uses: ros-tooling/[email protected]
2122
with:
2223
package-name: lbr_fri_ros2_stack
2324
target-ros2-distro: humble
24-
vcs-repo-file-url: https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/repos.yaml
25+
vcs-repo-file-url: https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/dev-humble-launch/lbr_fri_ros2_stack/repos-fri-${{ matrix.fri_version }}.yaml

README.md

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,31 @@
11
# lbr_fri_ros2_stack
2-
![Build status](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions/workflows/build.yml/badge.svg?branch=humble) ![GitHub](https://img.shields.io/github/license/lbr-stack/lbr_fri_ros2_stack)
2+
[![Build status](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions/workflows/build.yml/badge.svg?branch=humble)](https://github.com/lbr-stack/lbr_fri_ros2_stack/actions)
3+
[![License](https://img.shields.io/github/license/lbr-stack/lbr_fri_ros2_stack)](https://github.com/lbr-stack/lbr_fri_ros2_stack/tree/humble?tab=Apache-2.0-1-ov-file#readme)
34
[![Documentation Status](https://readthedocs.org/projects/lbr-stack/badge/?version=latest)](https://lbr-stack.readthedocs.io/en/latest/?badge=latest)
4-
[![status](https://joss.theoj.org/papers/c43c82bed833c02503dd47f2637192ef/status.svg)](https://joss.theoj.org/papers/c43c82bed833c02503dd47f2637192ef)
5+
[![JOSS](https://joss.theoj.org/papers/c43c82bed833c02503dd47f2637192ef/status.svg)](https://joss.theoj.org/papers/c43c82bed833c02503dd47f2637192ef)
6+
[![Code Style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
57

68
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`.
79

810
<body>
911
<table>
1012
<tr>
11-
<th align="left" width="25%">LBR IIWA7 R800</th>
12-
<th align="left" width="25%">LBR IIWA14 R820</th>
13-
<th align="left" width="25%">LBR Med7 R800</th>
14-
<th align="left" width="25%">LBR Med14 R820</th>
13+
<th align="left" width="25%">LBR IIWA 7 R800</th>
14+
<th align="left" width="25%">LBR IIWA 14 R820</th>
15+
<th align="left" width="25%">LBR Med 7 R800</th>
16+
<th align="left" width="25%">LBR Med 14 R820</th>
1517
</tr>
1618
<tr>
17-
<td align="center"><img src="https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/doc/img/foxglove/iiwa7_r800.png" alt="LBR IIWA7 R800"></td>
18-
<td align="center"><img src="https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/doc/img/foxglove/iiwa14_r820.png" alt="LBR IIWA14 R820"></td>
19-
<td align="center"><img src="https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/doc/img/foxglove/med7_r800.png" alt="LBR Med7 R800"></td>
20-
<td align="center"><img src="https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/doc/img/foxglove/med14_r820.png" alt="LBR Med14 R820"></td>
19+
<td align="center"><img src="https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/doc/img/foxglove/iiwa7_r800.png" alt="LBR IIWA 7 R800"></td>
20+
<td align="center"><img src="https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/doc/img/foxglove/iiwa14_r820.png" alt="LBR IIWA 14 R820"></td>
21+
<td align="center"><img src="https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/doc/img/foxglove/med7_r800.png" alt="LBR Med 7 R800"></td>
22+
<td align="center"><img src="https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/doc/img/foxglove/med14_r820.png" alt="LBR Med 14 R820"></td>
2123
</tr>
2224
</table>
2325
</body>
2426

2527
## Documentation
26-
Full documentation available [here](https://lbr-stack.readthedocs.io/en/latest).
28+
Full documentation available on [Read the Docs](https://lbr-stack.readthedocs.io/en/latest).
2729

2830
## Quick Start
2931
1. Install ROS 2 development tools
@@ -35,20 +37,22 @@ Full documentation available [here](https://lbr-stack.readthedocs.io/en/latest).
3537
2. Create a workspace, clone, and install dependencies
3638

3739
```shell
40+
source /opt/ros/humble/setup.bash
41+
export FRI_CLIENT_VERSION=1.15
3842
mkdir -p lbr-stack/src && cd lbr-stack
39-
vcs import src --input https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/repos.yaml
43+
vcs import src --input https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/repos-fri-${FRI_CLIENT_VERSION}.yaml
4044
rosdep install --from-paths src -i -r -y
4145
```
4246

47+
> [!NOTE]
48+
> 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).
49+
4350
3. Build
4451

4552
```shell
46-
colcon build --symlink-install --cmake-args -DFRI_CLIENT_VERSION=1.15 --no-warn-unused-cli # replace by your FRI client version
53+
colcon build --symlink-install
4754
```
4855

49-
> [!NOTE]
50-
> FRI client is added as external CMake project via [fri_vendor](https://github.com/lbr-stack/fri_vendor) and must be available as branch, refer [README](https://github.com/lbr-stack/fri?tab=readme-ov-file#contributing).
51-
5256
4. Launch the simulation via
5357

5458
```shell
@@ -63,7 +67,7 @@ Full documentation available [here](https://lbr-stack.readthedocs.io/en/latest).
6367
> [!TIP]
6468
> List all arguments for the launch file via `ros2 launch lbr_bringup bringup.launch.py -s`
6569

66-
Now, run the [demos](https://lbr-fri-ros2-stack-doc.readthedocs.io/en/humble/lbr_fri_ros2_stack/lbr_demos/doc/lbr_demos.html). To get started with the real robot, checkout the [Documentation](https://lbr-stack.readthedocs.io/en/latest) above.
70+
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).
6771

6872
## Citation
6973
If you enjoyed using this repository for your work, we would really appreciate ❤️ if you could cite it, as it helps us to continue offering support.

docker/Dockerfile

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ FROM ros:humble-ros-base-jammy
33
# change default shell to bash
44
SHELL ["/bin/bash", "-c"]
55

6-
# set environment variables
7-
ARG FRI_CLIENT_VERSION=1.15
8-
96
# upgrade packages
107
RUN apt-get update
118
RUN apt-get upgrade -y
@@ -19,7 +16,7 @@ RUN rosdep install -i --from-paths src --rosdistro ${ROS_DISTRO} -y
1916

2017
# "--symlink-install" allows the code in the locally mounted volume ./src to be adjusted without rebuilding
2118
RUN source /opt/ros/${ROS_DISTRO}/setup.bash && \
22-
colcon build --symlink-install --cmake-args -DFRI_CLIENT_VERSION=${FRI_CLIENT_VERSION} --no-warn-unused-cli
19+
colcon build --symlink-install
2320

2421
# source the workspace
2522
RUN echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc

docker/container_build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ xhost +
33

44
docker rm lbr_stack_container
55

6-
docker build --build-arg FRI_CLIENT_VERSION=$1 -t lbr_stack_container .
6+
docker build -t lbr_stack_container .
77

88
docker run -it \
99
--network host \

docker/doc/docker.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Docker
1+
docker
22
======
33
To run the ``lbr_fri_ros2_stack`` in a Docker container, follow the instructions below.
44

@@ -12,16 +12,17 @@ To run the ``lbr_fri_ros2_stack`` in a Docker container, follow the instructions
1212

1313
.. code-block:: bash
1414
15+
export FRI_CLIENT_VERSION=1.15 # replace by your FRI client version
1516
mkdir -p lbr-stack/src && cd lbr-stack
16-
vcs import src --input https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/repos.yaml
17+
vcs import src --input https://raw.githubusercontent.com/lbr-stack/lbr_fri_ros2_stack/humble/lbr_fri_ros2_stack/repos-fri-${FRI_CLIENT_VERSION}.yaml
1718
1819
#. Copy the Dockerfile and the container scripts to the ``lbr-stack`` directory. Build and start the container
1920

2021
.. code-block:: bash
2122
2223
cp -r src/lbr_fri_ros2_stack/docker/* .
2324
chmod +x container_build.sh
24-
sudo ./container_build.sh 1.15 # replace by your FRI client version
25+
sudo ./container_build.sh
2526
2627
#. Inside the container, launch e.g. simulation via (might require re-launch after Gazebo launched first time)
2728

lbr_bringup/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ endif()
77

88
# find dependencies
99
find_package(ament_cmake REQUIRED)
10+
find_package(ament_cmake_python REQUIRED)
1011

1112
install(
1213
DIRECTORY config launch
1314
DESTINATION share/${PROJECT_NAME}
1415
)
1516

1617
# Launch mixins
17-
ament_python_install_package(${PROJECT_NAME})
18+
ament_python_install_package(launch_mixins)
1819

1920
ament_package()

lbr_bringup/doc/lbr_bringup.rst

Lines changed: 19 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,5 @@
1-
LBR Bringup
1+
lbr_bringup
22
===========
3-
The ``lbr_fri_ros2_stack`` is designed for research **and** deployment. It runs standalone, with ``ros2_control``, and thus also with ``MoveIt 2``. Details are described in below sections
4-
5-
- :ref:`ROS 2 Control and MoveIt 2 Launch`
6-
- :ref:`Standalone Launch`
7-
8-
Users may also refer to :ref:`Software Architecture` for a better understanding of the underlying ``lbr_fri_ros2`` package.
9-
10-
.. note::
11-
For the real robot, make sure you have followed :ref:`Robot Setup` first.
12-
13-
.. warning::
14-
On the real robot, do always execute in ``T1`` mode first.
15-
16-
General Information on the FRI
17-
------------------------------
18-
The ``FRI`` lets the user select a ``FRI control mode`` and a ``FRI client command mode``. When running the ``LBRServer``:
19-
20-
- .. dropdown:: Select ``FRI control mode``
21-
22-
.. thumbnail:: ../../lbr_fri_ros2_stack/doc/img/controller/raw/lbr_server_control_mode.png
23-
24-
- .. dropdown:: Select ``FRI client command mode``
25-
26-
.. thumbnail:: ../../lbr_fri_ros2_stack/doc/img/controller/raw/lbr_server_client_command_mode.png
27-
28-
The ``FRI control mode`` specifies the mode in which the robot is controlled, and the ``FRI client command mode`` specifies the commands that the user sends.
29-
30-
ROS 2 Control and MoveIt 2 Launch
31-
---------------------------------
323
The ``lbr_bringup`` works for the simulation and the real robot. Run:
334

345
.. code:: bash
@@ -42,44 +13,44 @@ The ``lbr_bringup`` works for the simulation and the real robot. Run:
4213
.. note::
4314
For a list of available parameters, call ``ros2 launch lbr_bringup bringup.launch.py -s``.
4415

45-
When using the real robot
16+
When using the real robot, select ``sim:=false`` and
4617

4718
.. dropdown:: Launch the ``LBRServer`` application on the ``KUKA smartPAD``
4819

4920
.. thumbnail:: ../../lbr_demos/doc/img/applications_lbr_server.png
5021

51-
and select:
22+
Select
5223

5324
- ``FRI send period``: ``10 ms``
5425
- ``IP address``: ``your configuration``
5526
- ``FRI control mode``: ``POSITION_CONTROL`` or ``JOINT_IMPEDANCE_CONTROL`` (will put the robot into a compliant mode)
5627
- ``FRI client command mode``: ``POSITION``
5728

58-
Make sure that the ``update_rate`` in `lbr_controllers.yaml <https://github.com/lbr-stack/lbr_fri_ros2_stack/tree/humble/lbr_ros2_control/config/lbr_controllers.yaml>`_ is greater or equal ``100`` (``FRI send period``).
29+
Users may also refer to :ref:`Software Architecture` for a better understanding of the underlying ``lbr_fri_ros2`` package.
5930

60-
For using other ``FRI send period``, also change the ``sample_time`` in the `lbr_system_interface.xacro <https://github.com/lbr-stack/lbr_fri_ros2_stack/blob/humble/lbr_ros2_control/config/lbr_system_interface.xacro>`_ (automated in the future).
31+
.. note::
32+
For the real robot, make sure you have followed :doc:`Hardware Setup <../../lbr_fri_ros2_stack/doc/hardware_setup>` first.
6133

62-
Standalone Launch
63-
-----------------
64-
Standalone launch is great for research. Only the the real robot is supported. It can be launched through:
34+
.. warning::
35+
On the real robot, do always execute in ``T1`` mode first.
6536

66-
.. code:: bash
37+
General Information on the FRI
38+
------------------------------
39+
The ``FRI`` lets the user select a ``FRI control mode`` and a ``FRI client command mode``. When running the ``LBRServer``:
6740

68-
ros2 launch lbr_fri_ros2 app.launch.py \
69-
model:=iiwa7 # [iiwa7, iiwa14, med7, med14] \
70-
robot_name:=lbr # any robot name
41+
- .. dropdown:: Select ``FRI control mode``
7142

72-
This runs the :lbr_fri_ros2:`AppComponent <lbr_fri_ros2::AppComponent>`, which creates 2 topics, ``/robot_name/command`` for commands and ``/robot_name/state``. See :ref:`LBR Demos FRI ROS 2` for more examples and :ref:`LBR FRI ROS 2` for more documentation.
43+
.. thumbnail:: ../../lbr_fri_ros2_stack/doc/img/controller/raw/lbr_server_control_mode.png
7344

74-
.. note::
75-
For a list of available parameters, call ``ros2 launch lbr_fri_ros2 app.launch.py -s``.
45+
- .. dropdown:: Select ``FRI client command mode``
46+
47+
.. thumbnail:: ../../lbr_fri_ros2_stack/doc/img/controller/raw/lbr_server_client_command_mode.png
48+
49+
The ``FRI control mode`` specifies the mode in which the robot is controlled, and the ``FRI client command mode`` specifies the commands that the user sends.
7650

7751
Troubleshooting
7852
---------------
7953
Noisy Execution
8054
~~~~~~~~~~~~~~~
81-
Three main causes:
82-
83-
- Frequency: Make sure the ``ros2_control_node`` runs at the same or a higher rate of the ``FRI send period``, change ``update_rate`` in `lbr_controllers.yaml <https://github.com/lbr-stack/lbr_fri_ros2_stack/tree/humble/lbr_ros2_control/config/lbr_controllers.yaml>`_.
84-
- Standalone noise: Smoothing might be required, see :ref:`LBR Demos FRI ROS 2`.
55+
- Frequency: Make sure the ``ros2_control_node`` frequency and the ``FRI send period`` are compatible, consider changing ``update_rate`` in `lbr_controllers.yaml <https://github.com/lbr-stack/lbr_fri_ros2_stack/tree/humble/lbr_ros2_control/config/lbr_controllers.yaml>`_.
8556
- Realtime priority: Set real time priority in ``code /etc/security/limits.conf``, add the line: ``user - rtprio 99``, where user is your username.

lbr_bringup/launch/bringup.launch.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
from launch import LaunchDescription
2-
from launch.actions import IncludeLaunchDescription, RegisterEventHandler
2+
from launch.actions import IncludeLaunchDescription
33
from launch.conditions import IfCondition, UnlessCondition
4-
from launch.event_handlers import OnIncludeLaunchDescription
54
from launch.launch_description_sources import PythonLaunchDescriptionSource
65
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
6+
from launch_mixins.lbr_description import LBRDescriptionMixin
77
from launch_ros.substitutions import FindPackageShare
88

9-
from lbr_description import LBRDescriptionMixin, RVizMixin
10-
119

1210
def generate_launch_description() -> LaunchDescription:
1311
ld = LaunchDescription()

lbr_bringup/launch/move_group.launch.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
from launch import LaunchContext, LaunchDescription, LaunchDescriptionEntity
44
from launch.actions import OpaqueFunction
55
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
6-
7-
from lbr_bringup import LBRMoveGroupMixin
8-
from lbr_description import LBRDescriptionMixin, RVizMixin
6+
from launch_mixins.lbr_bringup import LBRMoveGroupMixin
7+
from launch_mixins.lbr_description import LBRDescriptionMixin, RVizMixin
98

109

1110
def launch_setup(context: LaunchContext) -> List[LaunchDescriptionEntity]:

lbr_bringup/launch/real.launch.py

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,32 @@
33
from launch import LaunchContext, LaunchDescription, LaunchDescriptionEntity
44
from launch.actions import DeclareLaunchArgument, OpaqueFunction, RegisterEventHandler
55
from launch.conditions import IfCondition
6-
from launch.event_handlers import OnProcessExit, OnProcessStart
6+
from launch.event_handlers import OnProcessStart
77
from launch.substitutions import (
88
AndSubstitution,
99
LaunchConfiguration,
1010
NotSubstitution,
1111
PathJoinSubstitution,
1212
)
13-
14-
from lbr_bringup import LBRMoveGroupMixin
15-
from lbr_description import LBRDescriptionMixin, RVizMixin
16-
from lbr_ros2_control import LBRROS2ControlMixin
13+
from launch_mixins.lbr_bringup import LBRMoveGroupMixin
14+
from launch_mixins.lbr_description import LBRDescriptionMixin, RVizMixin
15+
from launch_mixins.lbr_ros2_control import LBRROS2ControlMixin
1716

1817

1918
def launch_setup(context: LaunchContext) -> List[LaunchDescriptionEntity]:
2019
ld = LaunchDescription()
2120

2221
robot_description = LBRDescriptionMixin.param_robot_description(sim=False)
23-
ros2_control_node = LBRROS2ControlMixin.node_ros2_control(
24-
robot_description=robot_description
22+
world_robot_tf = [0, 0, 0, 0, 0, 0] # keep zero
23+
24+
# robot state publisher
25+
robot_state_publisher = LBRROS2ControlMixin.node_robot_state_publisher(
26+
robot_description=robot_description, use_sim_time=False
2527
)
28+
ld.add_action(robot_state_publisher)
29+
30+
# ros2 control node
31+
ros2_control_node = LBRROS2ControlMixin.node_ros2_control()
2632
ld.add_action(ros2_control_node)
2733

2834
# joint state broad caster and controller on ros2 control node start
@@ -52,17 +58,6 @@ def launch_setup(context: LaunchContext) -> List[LaunchDescriptionEntity]:
5258
)
5359
ld.add_action(controller_event_handler)
5460

55-
# robot state publisher on joint state broadcaster spawn exit
56-
robot_state_publisher = LBRROS2ControlMixin.node_robot_state_publisher(
57-
robot_description=robot_description, use_sim_time=False
58-
)
59-
robot_state_publisher_event_handler = RegisterEventHandler(
60-
OnProcessExit(
61-
target_action=joint_state_broadcaster, on_exit=[robot_state_publisher]
62-
)
63-
)
64-
ld.add_action(robot_state_publisher_event_handler)
65-
6661
# MoveIt 2
6762
ld.add_action(LBRMoveGroupMixin.arg_allow_trajectory_execution())
6863
ld.add_action(LBRMoveGroupMixin.arg_capabilities())
@@ -77,7 +72,7 @@ def launch_setup(context: LaunchContext) -> List[LaunchDescriptionEntity]:
7772
robot_name = LaunchConfiguration("robot_name").perform(context)
7873
ld.add_action(
7974
LBRDescriptionMixin.node_static_tf(
80-
tf=[0, 0, 0, 0, 0, 0], # keep zero
75+
tf=world_robot_tf,
8176
parent="world",
8277
child=PathJoinSubstitution(
8378
[
@@ -144,7 +139,7 @@ def launch_setup(context: LaunchContext) -> List[LaunchDescriptionEntity]:
144139
# RViz event handler
145140
rviz_event_handler = RegisterEventHandler(
146141
OnProcessStart(
147-
target_action=robot_state_publisher, on_start=[rviz_moveit, rviz]
142+
target_action=joint_state_broadcaster, on_start=[rviz_moveit, rviz]
148143
)
149144
)
150145
ld.add_action(rviz_event_handler)

0 commit comments

Comments
 (0)