ROS 2 Communication Graph¶
This section documents every node, topic, and message type in the fishing-arm stack, with explicit separation between MuJoCo simulation and Dynamixel hardware modes.
Mode selection recap¶
A single launch argument — use_sim — drives all structural differences.
Application nodes (control, sensors) run in both modes; only their data
sources and which ros2_control controllers spawn change.
Concern |
Simulation ( |
Hardware ( |
|---|---|---|
ros2_control host |
|
|
Hardware plugin (URDF) |
|
|
Extra controllers |
|
(none) |
Disturbance |
|
Real fish / manual load |
Tension source param |
|
|
Sim-only nodes |
|
— |
Time |
|
wall clock |
Side-by-side node presence¶
Node / component |
Simulation |
Hardware |
|---|---|---|
|
✓ |
✓ |
|
✓ |
— |
|
— |
✓ |
|
✓ |
✓ |
|
✓ |
✓ |
|
✓ |
✗ |
|
✓ |
✗ |
|
✓ |
✓ |
|
✓ |
✓ |
|
✓ |
✗ |
|
✓ (if |
optional† |
|
✓ (if flag set) |
✓ (if flag set) |
† Recorder is sim-oriented (MuJoCo animation) but will still capture plots if launched on hardware.
Controller manager services¶
Both modes expose the standard ros2_control service API on /controller_manager:
~/list_controllers~/load_controller/~/unload_controller~/switch_controller
Spawner nodes exit after loading; the manager and loaded controllers persist.
TF tree¶
Published by robot_state_publisher from the processed URDF:
Both modes: base_link → Link_1 → Link_2 → rod_tip_link
Simulation only: base_link → fish_link (via fish_swim prismatic joint)
sensors/load_cell_node uses TF (rod_tip_link ↔ fish_link) in sim to
compute line length for the stretch tension model.
Quick topic index¶
See Topic & Node Reference for the auto-generated full table, or the mode-specific pages:
Simulation ROS 2 Graph — complete sim graph + physics-layer explanation
Hardware ROS 2 Graph — HW graph + HX711/Dynamixel path
Standalone Diagram Exports — standalone
.mmdfiles for reports