Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Example 13] Multi-robot system with lifecycle management #187

Closed
wants to merge 49 commits into from

Conversation

bailaC
Copy link
Contributor

@bailaC bailaC commented Jun 29, 2022

This PR will contain the exact changes for Mutli-Robot Lifecycle example of #133 . It will have merge conflicts resolved.

bailaC and others added 30 commits June 30, 2021 22:55
…tem_with_external_sensor.urdf.xacro

Co-authored-by: Denis Štogl <[email protected]>
…xternal_rrbot_force_torque_sensor.ros2_control.xacro

Co-authored-by: Denis Štogl <[email protected]>
…xternal_rrbot_force_torque_sensor.ros2_control.xacro

Co-authored-by: Denis Štogl <[email protected]>
…tem_with_external_sensor.urdf.xacro

Co-authored-by: Denis Štogl <[email protected]>
…tem_with_external_sensor.urdf.xacro

Co-authored-by: Denis Štogl <[email protected]>
@destogl destogl marked this pull request as ready for review July 14, 2022 17:08
```
rosdep install --from-paths src --ignore-src -r -y
apt install ros-foxy-realtime-tools ros-foxy-xacro ros-foxy-angles
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't want to use apt directly, rosdep should install all dependencies automatically.

@@ -127,9 +128,9 @@ The *RRBot* URDF files can be found in the `urdf` folder of `rrbot_description`
ros2 launch rrbot_description view_robot.launch.py
```
**NOTE**: Getting the following output in terminal is OK: `Warning: Invalid frame ID "odom" passed to canTransform argument target_frame - frame does not exist`.
This happens because `joint_state_publisher_gui` node need some time to start.
The `joint_state_publisher_gui` provides a GUI to generate a random configuration for rrbot. It is immediately displayed in `Rviz`.
This happens because `joint_state_publisher_gui` node need some time to start.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like unintentional change.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can do this note into a quote block.

Comment on lines +478 to +504
### Example 6: "Industrial Robots with externally connected sensor"

- Launch file: [rrbot_system_with_external_sensor.launch.py](ros2_control_demo_bringup/launch/rrbot_system_with_external_sensor.launch.py)
- URDF: [rrbot_with_external_sensor_controllers.urdf.xacro](ros2_control_demo_bringup/config/rrbot_with_external_sensor_controllers.yaml)
- ros2_control URDF: [external_rrbot_force_torque_sensor.ros2_control.xacro](ros2_control_demo_description/rrbot_description/ros2_control/external_rrbot_force_torque_sensor.ros2_control.xacro)

- Command interfaces:
- joint1/position
- joint2/position
- State interfaces:
- joint1/position
- joint2/position
- tcp_fts_sensor/force.x
- tcp_fts_sensor/torque.z

Available controllers:
- `forward_position_controller[forward_command_controller/ForwardCommandController]`
- `fts_broadcaster[force_torque_sensor_broadcaster/ForceTorqueSensorBroadcaster]`
- `joint_state_broadcaster[joint_state_broadcaster/JointStateBroadcaster]`

Commanding the robot: see the commands below.

Accessing Wrench data from 2D FTS:
```
ros2 topic echo /fts_broadcaster/wrench
```

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is now under "Example 4" section.

Suggested change
### Example 6: "Industrial Robots with externally connected sensor"
- Launch file: [rrbot_system_with_external_sensor.launch.py](ros2_control_demo_bringup/launch/rrbot_system_with_external_sensor.launch.py)
- URDF: [rrbot_with_external_sensor_controllers.urdf.xacro](ros2_control_demo_bringup/config/rrbot_with_external_sensor_controllers.yaml)
- ros2_control URDF: [external_rrbot_force_torque_sensor.ros2_control.xacro](ros2_control_demo_description/rrbot_description/ros2_control/external_rrbot_force_torque_sensor.ros2_control.xacro)
- Command interfaces:
- joint1/position
- joint2/position
- State interfaces:
- joint1/position
- joint2/position
- tcp_fts_sensor/force.x
- tcp_fts_sensor/torque.z
Available controllers:
- `forward_position_controller[forward_command_controller/ForwardCommandController]`
- `fts_broadcaster[force_torque_sensor_broadcaster/ForceTorqueSensorBroadcaster]`
- `joint_state_broadcaster[joint_state_broadcaster/JointStateBroadcaster]`
Commanding the robot: see the commands below.
Accessing Wrench data from 2D FTS:
```
ros2 topic echo /fts_broadcaster/wrench
```

@@ -652,7 +941,7 @@ Now you should also see the *RRbot* represented correctly in `RViz`.
## Result

1. Independently from the controller you should see how the example's output changes.
Look for the following lines
Look for the following lines
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why? It seems odd indentation.

@@ -0,0 +1,225 @@
# Copyright (c) 2021, Stogl Robotics Consulting UG (haftungsbeschränkt)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Copyright (c) 2021, Stogl Robotics Consulting UG (haftungsbeschränkt)
# Copyright (c) 2022, Stogl Robotics Consulting UG (haftungsbeschränkt)

@bmagyar bmagyar changed the title Add Mutli-Robot Lifecycle example (rebasing from PR 133) Add Multi-Robot Lifecycle example (rebasing from PR 133) Jul 27, 2022
@@ -127,9 +128,9 @@ The *RRBot* URDF files can be found in the `urdf` folder of `rrbot_description`
ros2 launch rrbot_description view_robot.launch.py
```
**NOTE**: Getting the following output in terminal is OK: `Warning: Invalid frame ID "odom" passed to canTransform argument target_frame - frame does not exist`.
This happens because `joint_state_publisher_gui` node need some time to start.
The `joint_state_publisher_gui` provides a GUI to generate a random configuration for rrbot. It is immediately displayed in `Rviz`.
This happens because `joint_state_publisher_gui` node need some time to start.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can do this note into a quote block.

Comment on lines +28 to +35
declared_arguments = []
declared_arguments.append(
DeclareLaunchArgument(
"slowdown",
default_value="50.0",
description="Slowdown factor of the RRbot.",
)
)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we defining it and then doing the append?

Suggested change
declared_arguments = []
declared_arguments.append(
DeclareLaunchArgument(
"slowdown",
default_value="50.0",
description="Slowdown factor of the RRbot.",
)
)
declared_arguments = [
DeclareLaunchArgument(
"slowdown",
default_value="50.0",
description="Slowdown factor of the RRbot.",
)
]

@@ -508,6 +536,289 @@ Accessing Wrench data from 2D FTS:
ros2 topic echo /fts_broadcaster/wrench
```

### Example XX: "Multi-robot system with tools"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the title should mention "Lifecycle" somehow. Suggestion:

Suggested change
### Example XX: "Multi-robot system with tools"
### Example XX: "Multi-robot system with lifecycle management: adjust controllers at runtime"

@christophfroehlich christophfroehlich added the New example This PR is proposing a new example. label Mar 17, 2023
@christophfroehlich christophfroehlich changed the title Add Multi-Robot Lifecycle example (rebasing from PR 133) [Example 13] Multi-robot system with lifecycle management Aug 5, 2023
Copy link
Contributor

mergify bot commented Dec 18, 2023

This pull request is in conflict. Could you fix it @bailaC?

@christophfroehlich
Copy link
Contributor

closed in favor of #417

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New example This PR is proposing a new example.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants