topic_relay_controller
Purpose
The node subscribes to a specified topic, remaps it, and republishes it. Additionally, it has the capability to continue publishing the last received value if the subscription stops.
Name |
Type |
Description |
/<topic> |
<specified message type> |
Topic to be subscribed, as defined by the topic parameter. |
/tf |
tf2_msgs::msg::TFMessage |
(Optional) If the topic is /tf , used for transform message relay. |
/tf_static |
tf2_msgs::msg::TFMessage |
(Optional) If the topic is /tf_static , used for static transforms. |
Output
Name |
Type |
Description |
/<remap_topic> |
<specified message type> |
Republished topic after remapping, as defined by the remap_topic parameter. |
Parameters
Variable |
Type |
Description |
topic |
string |
The name of the input topic to subscribe to |
remap_topic |
string |
The name of the output topic to publish to |
topic_type |
string |
The type of messages being relayed |
qos |
integer |
QoS profile to use for subscriptions and publications (default: 1 ) |
transient_local |
boolean |
Enables transient local QoS for subscribers (default: false ) |
best_effort |
boolean |
Enables best-effort QoS for subscribers (default: false ) |
enable_relay_control |
boolean |
Allows dynamic relay control via a service (default: true ) |
srv_name |
string |
The service name for relay control when enable_relay_control is true |
enable_keep_publishing |
boolean |
Keeps publishing the last received topic value when not subscribed (default: false ) |
update_rate |
integer |
The rate (Hz) for publishing the last topic value when enable_keep_publishing is true (optional) |
frame_id |
string |
Frame ID for transform messages when subscribing to /tf or /tf_static (optional) |
child_frame_id |
string |
Child frame ID for transform messages when subscribing to /tf or /tf_static (optional) |
Assumptions / Known limits
- The node assumes that the specified
topic
and remap_topic
are valid and accessible within the ROS 2 environment.
- If
enable_keep_publishing
is true
, the node continuously republishes the last received value even if no new messages are being received.
- For
/tf
and /tf_static
, additional parameters like frame_id
and child_frame_id
are required for selective transformation relays.
- QoS settings must be carefully chosen to match the requirements of the subscribed and published topics.