-
Notifications
You must be signed in to change notification settings - Fork 199
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
Conversation
…o duplicate class.
…tem_with_external_sensor.urdf.xacro Co-authored-by: Denis Štogl <[email protected]>
…sor.cpp Co-authored-by: Denis Štogl <[email protected]>
…sor.cpp Co-authored-by: Denis Štogl <[email protected]>
…sor.cpp 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]>
…ntrollers.yaml Co-authored-by: Denis Štogl <[email protected]>
…tem_with_external_sensor.urdf.xacro Co-authored-by: Denis Štogl <[email protected]>
…sor.cpp Co-authored-by: Denis Štogl <[email protected]>
This reverts commit f3591bf89431a033192e7046b67b461dcc45304f.
``` | ||
rosdep install --from-paths src --ignore-src -r -y | ||
apt install ros-foxy-realtime-tools ros-foxy-xacro ros-foxy-angles |
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
### 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 | ||
``` | ||
|
There was a problem hiding this comment.
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.
### 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 |
There was a problem hiding this comment.
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) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
# Copyright (c) 2021, Stogl Robotics Consulting UG (haftungsbeschränkt) | |
# Copyright (c) 2022, Stogl Robotics Consulting UG (haftungsbeschränkt) |
@@ -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. |
There was a problem hiding this comment.
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.
declared_arguments = [] | ||
declared_arguments.append( | ||
DeclareLaunchArgument( | ||
"slowdown", | ||
default_value="50.0", | ||
description="Slowdown factor of the RRbot.", | ||
) | ||
) |
There was a problem hiding this comment.
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?
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" |
There was a problem hiding this comment.
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:
### Example XX: "Multi-robot system with tools" | |
### Example XX: "Multi-robot system with lifecycle management: adjust controllers at runtime" |
This pull request is in conflict. Could you fix it @bailaC? |
closed in favor of #417 |
This PR will contain the exact changes for Mutli-Robot Lifecycle example of #133 . It will have merge conflicts resolved.