Skip to content

Commit

Permalink
Merge pull request #225 from lbr-stack/dev-humble-rolling-backport
Browse files Browse the repository at this point in the history
Rolling -> Humble backport
  • Loading branch information
mhubii authored Nov 20, 2024
2 parents cca24ae + 8639214 commit 86f0c97
Show file tree
Hide file tree
Showing 135 changed files with 2,731 additions and 1,414 deletions.
20 changes: 20 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,26 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package LBR FRI ROS 2 Stack
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Humble v2.2.0 (2024-11-20)
--------------------------
This release backports new ``rolling`` features to ``humble``. Following has changed:

* Related PRs:

* https://github.com/lbr-stack/lbr_fri_ros2_stack/pull/213 and https://github.com/lbr-stack/lbr_fri_ros2_stack/pull/214

* Joints and links are now prefixed with ``lbr_`` (i.e. the robot name)
* Robot state publisher has no ``lbr/`` prefix anymore
* async + deactivateable FT estimation
* Issue with setting real-time priority fixed
* Modifiable source for ``lbr_system_config.yaml`` in launch files

* https://github.com/lbr-stack/lbr_fri_ros2_stack/pull/220

* PID on joint position commands replaced by simpler exponential filter (please test robot in T1 mode as this will affect your control)
* Introduction of twist and admittance controllers
* Configurations from ``lbr_ros2_control`` now in ``lbr_description`` (for stand alone URDF use)

Humble v2.1.2 (2024-10-18)
--------------------------
* Adds MoveIt Servo demo, related to https://github.com/lbr-stack/lbr_fri_ros2_stack/issues/50 and https://github.com/lbr-stack/lbr_fri_ros2_stack/issues/211
Expand Down
6 changes: 3 additions & 3 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@ authors:


title: "LBR-Stack: ROS 2 and Python Integration of KUKA FRI for Med and IIWA Robots"
version: 2.1.2
doi: 10.48550/arXiv.2311.12709
date-released: 2024-10-18
version: 2.2.0
doi: 10.21105/joss.06138
date-released: 2024-11-20
22 changes: 13 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ Full documentation available on [Read the Docs](https://lbr-stack.readthedocs.io
```shell
source install/setup.bash
ros2 launch lbr_bringup rviz.launch.py \
rviz_config_pkg:=lbr_bringup \
rviz_config:=config/mock.rviz
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).
Expand All @@ -88,13 +88,17 @@ Now, run the [demos](https://lbr-stack.readthedocs.io/en/latest/lbr_fri_ros2_sta
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.

```
@misc{huber2023lbrstack,
title={LBR-Stack: ROS 2 and Python Integration of KUKA FRI for Med and IIWA Robots},
author={Martin Huber and Christopher E. Mower and Sebastien Ourselin and Tom Vercauteren and Christos Bergeles},
year={2023},
eprint={2311.12709},
archivePrefix={arXiv},
primaryClass={cs.RO}
@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}
}
```

Expand Down
24 changes: 12 additions & 12 deletions lbr_bringup/config/gazebo.rviz
Original file line number Diff line number Diff line change
Expand Up @@ -67,59 +67,59 @@ Visualization Manager:
Expand Link Details: false
Expand Tree: false
Link Tree Style: Links in Alphabetic Order
link_0:
lbr_floating_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_1:
lbr_link_0:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_2:
lbr_link_1:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_3:
lbr_link_2:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_4:
lbr_link_3:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_5:
lbr_link_4:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_6:
lbr_link_5:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_7:
lbr_link_6:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_ee:
lbr_link_7:
Alpha: 1
Show Axes: false
Show Trail: false
world:
Value: true
lbr_link_ee:
Alpha: 1
Show Axes: false
Show Trail: false
Mass Properties:
Inertia: false
Mass: false
Name: RobotModel
TF Prefix: lbr
TF Prefix: ""
Update Interval: 0
Value: true
Visual Enabled: true
Expand Down
24 changes: 12 additions & 12 deletions lbr_bringup/config/hardware.rviz
Original file line number Diff line number Diff line change
Expand Up @@ -68,59 +68,59 @@ Visualization Manager:
Expand Link Details: false
Expand Tree: false
Link Tree Style: Links in Alphabetic Order
link_0:
lbr_floating_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_1:
lbr_link_0:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_2:
lbr_link_1:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_3:
lbr_link_2:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_4:
lbr_link_3:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_5:
lbr_link_4:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_6:
lbr_link_5:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_7:
lbr_link_6:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_ee:
lbr_link_7:
Alpha: 1
Show Axes: false
Show Trail: false
world:
Value: true
lbr_link_ee:
Alpha: 1
Show Axes: false
Show Trail: false
Mass Properties:
Inertia: false
Mass: false
Name: RobotModel
TF Prefix: lbr
TF Prefix: ""
Update Interval: 0
Value: true
Visual Enabled: true
Expand Down
24 changes: 12 additions & 12 deletions lbr_bringup/config/mock.rviz
Original file line number Diff line number Diff line change
Expand Up @@ -67,59 +67,59 @@ Visualization Manager:
Expand Link Details: false
Expand Tree: false
Link Tree Style: Links in Alphabetic Order
link_0:
lbr_floating_link:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_1:
lbr_link_0:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_2:
lbr_link_1:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_3:
lbr_link_2:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_4:
lbr_link_3:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_5:
lbr_link_4:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_6:
lbr_link_5:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_7:
lbr_link_6:
Alpha: 1
Show Axes: false
Show Trail: false
Value: true
link_ee:
lbr_link_7:
Alpha: 1
Show Axes: false
Show Trail: false
world:
Value: true
lbr_link_ee:
Alpha: 1
Show Axes: false
Show Trail: false
Mass Properties:
Inertia: false
Mass: false
Name: RobotModel
TF Prefix: lbr
TF Prefix: ""
Update Interval: 0
Value: true
Visual Enabled: true
Expand Down
8 changes: 4 additions & 4 deletions lbr_bringup/doc/lbr_bringup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ This launch file will spin up ``RViz`` for visualization. It will (see `rviz.lau
.. code:: bash
ros2 launch lbr_bringup rviz.launch.py \
rviz_config_pkg:=lbr_bringup \
rviz_config:=config/mock.rviz # [gazebo.rviz, hardware.rviz, mock.rviz]
rviz_cfg_pkg:=lbr_bringup \
rviz_cfg:=config/mock.rviz # [gazebo.rviz, hardware.rviz, mock.rviz]
.. note::
List all arguments for the launch file via ``ros2 launch lbr_bringup rviz.launch.py -s``.
Expand Down Expand Up @@ -156,8 +156,8 @@ The below shows an example of the `rviz.launch.py <https://github.com/lbr-stack/
ld = LaunchDescription()
# launch arguments
ld.add_action(RVizMixin.arg_rviz_config())
ld.add_action(RVizMixin.arg_rviz_config_pkg())
ld.add_action(RVizMixin.arg_rviz_cfg())
ld.add_action(RVizMixin.arg_rviz_cfg_pkg())
# rviz
ld.add_action(RVizMixin.node_rviz())
Expand Down
10 changes: 6 additions & 4 deletions lbr_bringup/launch/gazebo.launch.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from launch import LaunchDescription
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
from launch.substitutions import LaunchConfiguration, PythonExpression
from lbr_bringup.description import LBRDescriptionMixin
from lbr_bringup.gazebo import GazeboMixin
from lbr_bringup.ros2_control import LBRROS2ControlMixin
Expand All @@ -13,15 +13,17 @@ def generate_launch_description() -> LaunchDescription:
ld.add_action(LBRDescriptionMixin.arg_robot_name())
ld.add_action(
LBRROS2ControlMixin.arg_ctrl()
) # Gazebo loads controller configuration through lbr_description/gazebo/*.xacro from lbr_ros2_control/config/lbr_controllers.yaml
) # Gazebo loads controller configuration through lbr_description/gazebo/*.xacro from lbr_description/ros2_control/lbr_controllers.yaml

# static transform world -> robot_name/world
# static transform world -> <robot_name>_floating_link
world_robot_tf = [0, 0, 0, 0, 0, 0] # keep zero
ld.add_action(
LBRDescriptionMixin.node_static_tf(
tf=world_robot_tf,
parent="world",
child=PathJoinSubstitution([LaunchConfiguration("robot_name"), "world"]),
child=PythonExpression(
["'", LaunchConfiguration("robot_name"), "' + '_floating_link'"]
),
)
)

Expand Down
15 changes: 10 additions & 5 deletions lbr_bringup/launch/hardware.launch.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from launch import LaunchDescription
from launch.actions import RegisterEventHandler
from launch.event_handlers import OnProcessStart
from launch.substitutions import LaunchConfiguration, PathJoinSubstitution
from launch.substitutions import LaunchConfiguration, PythonExpression
from lbr_bringup.description import LBRDescriptionMixin
from lbr_bringup.ros2_control import LBRROS2ControlMixin

Expand All @@ -12,17 +12,20 @@ def generate_launch_description() -> LaunchDescription:
# launch arguments
ld.add_action(LBRDescriptionMixin.arg_model())
ld.add_action(LBRDescriptionMixin.arg_robot_name())
ld.add_action(LBRDescriptionMixin.arg_port_id())
ld.add_action(LBRROS2ControlMixin.arg_sys_cfg_pkg())
ld.add_action(LBRROS2ControlMixin.arg_sys_cfg())
ld.add_action(LBRROS2ControlMixin.arg_ctrl_cfg_pkg())
ld.add_action(LBRROS2ControlMixin.arg_ctrl_cfg())
ld.add_action(LBRROS2ControlMixin.arg_ctrl())

# static transform world -> robot_name/world
# static transform world -> <robot_name>_floating_link
ld.add_action(
LBRDescriptionMixin.node_static_tf(
tf=[0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
parent="world",
child=PathJoinSubstitution([LaunchConfiguration("robot_name"), "world"]),
child=PythonExpression(
["'", LaunchConfiguration("robot_name"), "' + '_floating_link'"]
),
)
)

Expand All @@ -36,7 +39,9 @@ def generate_launch_description() -> LaunchDescription:
ld.add_action(robot_state_publisher)

# ros2 control node
ros2_control_node = LBRROS2ControlMixin.node_ros2_control(use_sim_time=False)
ros2_control_node = LBRROS2ControlMixin.node_ros2_control(
use_sim_time=False, robot_description=robot_description
)
ld.add_action(ros2_control_node)

# joint state broad caster and controller on ros2 control node start
Expand Down
Loading

0 comments on commit 86f0c97

Please sign in to comment.