interfaces — Custom Messages¶
The interfaces package defines shared ROS 2 message types used across
multiple application packages. It is an ament_cmake interface package — no
runtime nodes.
Source: software/src/interfaces/msg/
Auto-generated tables: interfaces
Messages¶
FishingTension.msg¶
std_msgs/Header header
float32 tension_newtons
float32 target_tension_newtons
Field |
Type |
Semantics |
|---|---|---|
|
|
Sample time |
|
|
Typically |
|
|
Measured line tension (N) — primary control input |
|
|
Reserved for future feedforward/display; currently |
Built as interfaces/msg/FishingTension → included in Python as:
from interfaces.msg import FishingTension
Topic usage¶
Topic |
Publisher |
Subscribers |
|---|---|---|
|
sensors — Line Tension Sensing / |
control — Tension Controllers (admittance or force_feedback), diagnostics — Recording & Bring-Up Tests (recorder, hardware_check) |
flowchart LR
S["sensors<br/>load_cell_node"] -->|"/fishing_arm/tension<br/>FishingTension"| C["control<br/>tension controller"]
S --> D1["diagnostics<br/>recorder"]
S --> D2["diagnostics<br/>hardware_check"]
Design rationale¶
A custom message (rather than reusing geometry_msgs/WrenchStamped or
std_msgs/Float64) provides:
Semantic clarity — tension in Newtons along the line, not a generic wrench.
Stable API — controllers depend on one field (
tension_newtons).Room for extension —
target_tension_newtonsfor future overlay/debug.
The sim path internally uses WrenchStamped from tension_sensor_broadcaster
but converts to FishingTension before the control layer.
Build dependency graph¶
Any package that imports FishingTension must declare:
<depend>interfaces</depend>
Current dependents: control, sensors, diagnostics.