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.