From c2271fb44eb7bbe392597223a61e9254cc9b818d Mon Sep 17 00:00:00 2001 From: TetsuKawa Date: Thu, 9 Jan 2025 16:19:01 +0900 Subject: [PATCH 01/10] feat: add node base Signed-off-by: TetsuKawa --- .../CMakeLists.txt | 20 ++++++++++++ .../autoware_topic_relay_controller/README.md | 15 +++++++++ .../config/topic_relay_controller.param.yaml | 4 +++ .../launch/topic_relay_controller.launch.xml | 4 +++ .../package.xml | 22 +++++++++++++ .../schema/topic_relay_controller.schema.json | 30 +++++++++++++++++ .../src/topic_relay_controller_node.cpp | 25 +++++++++++++++ .../src/topic_relay_controller_node.hpp | 32 +++++++++++++++++++ 8 files changed, 152 insertions(+) create mode 100644 system/autoware_topic_relay_controller/CMakeLists.txt create mode 100644 system/autoware_topic_relay_controller/README.md create mode 100644 system/autoware_topic_relay_controller/config/topic_relay_controller.param.yaml create mode 100644 system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml create mode 100644 system/autoware_topic_relay_controller/package.xml create mode 100644 system/autoware_topic_relay_controller/schema/topic_relay_controller.schema.json create mode 100644 system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp create mode 100644 system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp diff --git a/system/autoware_topic_relay_controller/CMakeLists.txt b/system/autoware_topic_relay_controller/CMakeLists.txt new file mode 100644 index 0000000000000..7b035b2b62c23 --- /dev/null +++ b/system/autoware_topic_relay_controller/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.14) +project(autoware_topic_relay_controller) + +find_package(autoware_cmake REQUIRED) +autoware_package() + +ament_auto_add_library(${PROJECT_NAME} SHARED + src/topic_relay_controller_node.cpp +) + +rclcpp_components_register_node(${PROJECT_NAME} + PLUGIN "autoware::topic_relay_controller::TopicRelayController" + EXECUTABLE ${PROJECT_NAME}_node + EXECUTOR MultiThreadedExecutor +) + +ament_auto_package(INSTALL_TO_SHARE + launch + config +) diff --git a/system/autoware_topic_relay_controller/README.md b/system/autoware_topic_relay_controller/README.md new file mode 100644 index 0000000000000..1976a75dc6d48 --- /dev/null +++ b/system/autoware_topic_relay_controller/README.md @@ -0,0 +1,15 @@ +# topic_relay_controller + +## Purpose + +## Inputs / Outputs + +### Input + +### Output + +## Parameters + +## Assumptions / Known limits + +TBD. diff --git a/system/autoware_topic_relay_controller/config/topic_relay_controller.param.yaml b/system/autoware_topic_relay_controller/config/topic_relay_controller.param.yaml new file mode 100644 index 0000000000000..3a506213f054d --- /dev/null +++ b/system/autoware_topic_relay_controller/config/topic_relay_controller.param.yaml @@ -0,0 +1,4 @@ +--- +/**: + ros__parameters: + tmp: 0 \ No newline at end of file diff --git a/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml b/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml new file mode 100644 index 0000000000000..3f152f40d12df --- /dev/null +++ b/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml @@ -0,0 +1,4 @@ + + + + diff --git a/system/autoware_topic_relay_controller/package.xml b/system/autoware_topic_relay_controller/package.xml new file mode 100644 index 0000000000000..c67a52d52e84c --- /dev/null +++ b/system/autoware_topic_relay_controller/package.xml @@ -0,0 +1,22 @@ + + + + autoware_topic_relay_controller + 0.1.0 + The topic_relay_controller ROS 2 package + Tetsuhiro Kawaguchi + Apache License 2.0 + + ament_cmake_auto + autoware_cmake + + rclcpp + rclcpp_components + + ament_lint_auto + autoware_lint_common + + + ament_cmake + + diff --git a/system/autoware_topic_relay_controller/schema/topic_relay_controller.schema.json b/system/autoware_topic_relay_controller/schema/topic_relay_controller.schema.json new file mode 100644 index 0000000000000..d51b0ae4ed1b6 --- /dev/null +++ b/system/autoware_topic_relay_controller/schema/topic_relay_controller.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "Parameters for topic relay controller", + "type": "object", + "definitions": { + "topic_rely_controller": { + "type": "object", + "properties": { + }, + "required": [ + ], + "additionalProperties": false + } + }, + "properties": { + "/**": { + "type": "object", + "properties": { + "ros__parameters": { + "$ref": "#/definitions/topic_rely_controller" + } + }, + "required": ["ros__parameters"], + "additionalProperties": false + } + }, + "required": ["/**"], + "additionalProperties": false + } + \ No newline at end of file diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp new file mode 100644 index 0000000000000..74370ca306aac --- /dev/null +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp @@ -0,0 +1,25 @@ +// Copyright 2025 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +// CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language +// governing permissions and limitations under the License. + +#include "topic_relay_controller_node.hpp" + +namespace autoware::topic_relay_controller +{ +TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options) : Node("topic_relay_controller", options) +{ + RCLCPP_INFO(get_logger(), "topic_relay_controller_node started."); +} +} // namespace autoware::topic_relay_controller + +#include +RCLCPP_COMPONENTS_REGISTER_NODE(autoware::topic_relay_controller::TopicRelayController) diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp new file mode 100644 index 0000000000000..c5ea006b13966 --- /dev/null +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp @@ -0,0 +1,32 @@ +// Copyright 2025 TIER IV, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef AUTOWARE_TOPIC_RELAY_CONTROLLER__TOPIC_RELAY_CONTROLLER_HPP_ +#define AUTOWARE_TOPIC_RELAY_CONTROLLER__TOPIC_RELAY_CONTROLLER_HPP_ + +// ROS 2 core +#include + +namespace autoware::topic_relay_controller +{ +class TopicRelayController : public rclcpp::Node +{ +public: + explicit TopicRelayController(const rclcpp::NodeOptions & options); + +private: +}; +} // namespace autoware::topic_relay_controller + +#endif // AUTOWARE_TOPIC_RELAY_CONTROLLER__TOPIC_RELAY_CONTROLLER_HPP_ \ No newline at end of file From 83660589ff44db353a8eae2f90afe965b762a28c Mon Sep 17 00:00:00 2001 From: TetsuKawa Date: Thu, 9 Jan 2025 16:29:05 +0900 Subject: [PATCH 02/10] feat: add subscriber Signed-off-by: TetsuKawa --- .../launch/topic_relay_controller.launch.xml | 16 ++++++- .../topic_relay_controller_tf.launch.xml | 18 ++++++++ .../package.xml | 1 + .../src/topic_relay_controller_node.cpp | 45 ++++++++++++++++++- .../src/topic_relay_controller_node.hpp | 21 +++++++++ 5 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml diff --git a/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml b/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml index 3f152f40d12df..49672c0a044ab 100644 --- a/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml +++ b/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml @@ -1,4 +1,18 @@ - + + + + + + + + + + + + + + + diff --git a/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml b/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml new file mode 100644 index 0000000000000..6dfd1464715bc --- /dev/null +++ b/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/system/autoware_topic_relay_controller/package.xml b/system/autoware_topic_relay_controller/package.xml index c67a52d52e84c..101c40b373048 100644 --- a/system/autoware_topic_relay_controller/package.xml +++ b/system/autoware_topic_relay_controller/package.xml @@ -12,6 +12,7 @@ rclcpp rclcpp_components + tf2_msgs ament_lint_auto autoware_lint_common diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp index 74370ca306aac..4dd51cf821e1d 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp @@ -17,7 +17,50 @@ namespace autoware::topic_relay_controller { TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options) : Node("topic_relay_controller", options) { - RCLCPP_INFO(get_logger(), "topic_relay_controller_node started."); + // Parameter + node_param_.topic = declare_parameter("topic"); + node_param_.remap_topic = declare_parameter("remap_topic"); + node_param_.qos = declare_parameter("qos", 1); + node_param_.transient_local = declare_parameter("transient_local", false); + node_param_.best_effort = declare_parameter("best_effort", false); + node_param_.is_transform = (node_param_.topic == "/tf" || node_param_.topic == "/tf_static"); + + if (node_param_.is_transform) { + node_param_.frame_id = declare_parameter("frame_id"); + node_param_.child_frame_id = declare_parameter("child_frame_id"); + } else { + node_param_.topic_type = declare_parameter("topic_type"); + } + + // Subscriber + rclcpp::QoS qos = rclcpp::QoS{node_param_.qos}; + if (node_param_.transient_local) { + qos.transient_local(); + } + if (node_param_.best_effort) { + qos.best_effort(); + } + + if (node_param_.is_transform) { + sub_transform_ = this->create_subscription( + node_param_.topic, qos, [this](tf2_msgs::msg::TFMessage::ConstSharedPtr msg) { + for (const auto & transform : msg->transforms) { + if ( + transform.header.frame_id == node_param_.frame_id && + transform.child_frame_id == node_param_.child_frame_id) { + RCLCPP_INFO ( + this->get_logger(), "Received transform from %s to %s", + transform.header.frame_id.c_str(), transform.child_frame_id.c_str()); + } + } + }); + } else { + sub_topic_ = this->create_generic_subscription( + node_param_.topic, node_param_.topic_type, qos, + [this]([[maybe_unused]] std::shared_ptr msg) { + RCLCPP_INFO(this->get_logger(), "Received message"); + }); + } } } // namespace autoware::topic_relay_controller diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp index c5ea006b13966..860ac4ecf8e98 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp @@ -18,14 +18,35 @@ // ROS 2 core #include +#include + namespace autoware::topic_relay_controller { +struct NodeParam +{ + std::string topic; + std::string remap_topic; + std::string topic_type; + size_t qos; + std::string frame_id; + std::string child_frame_id; + bool transient_local; + bool best_effort; + bool is_transform; +}; + class TopicRelayController : public rclcpp::Node { public: explicit TopicRelayController(const rclcpp::NodeOptions & options); private: + // Parameter + NodeParam node_param_; + + // Subscriber + rclcpp::GenericSubscription::SharedPtr sub_topic_; + rclcpp::Subscription::SharedPtr sub_transform_; }; } // namespace autoware::topic_relay_controller From 3cc9bc465229fd4ad1b5703e220dcb50a1a8545a Mon Sep 17 00:00:00 2001 From: TetsuKawa Date: Thu, 9 Jan 2025 16:34:06 +0900 Subject: [PATCH 03/10] feat: add publisher Signed-off-by: TetsuKawa --- .../src/topic_relay_controller_node.cpp | 14 ++++++++++---- .../src/topic_relay_controller_node.hpp | 4 ++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp index 4dd51cf821e1d..abdf7b2515fc4 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp @@ -42,23 +42,29 @@ TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options) } if (node_param_.is_transform) { + // Publisher + pub_transform_ = this->create_publisher( + node_param_.remap_topic, qos); + sub_transform_ = this->create_subscription( node_param_.topic, qos, [this](tf2_msgs::msg::TFMessage::ConstSharedPtr msg) { for (const auto & transform : msg->transforms) { if ( transform.header.frame_id == node_param_.frame_id && transform.child_frame_id == node_param_.child_frame_id) { - RCLCPP_INFO ( - this->get_logger(), "Received transform from %s to %s", - transform.header.frame_id.c_str(), transform.child_frame_id.c_str()); + pub_transform_->publish(*msg); } } }); } else { + // Publisher + pub_topic_ = this->create_generic_publisher( + node_param_.remap_topic, node_param_.topic_type, qos); + sub_topic_ = this->create_generic_subscription( node_param_.topic, node_param_.topic_type, qos, [this]([[maybe_unused]] std::shared_ptr msg) { - RCLCPP_INFO(this->get_logger(), "Received message"); + pub_topic_->publish(*msg); }); } } diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp index 860ac4ecf8e98..46d248d7eb50a 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp @@ -47,6 +47,10 @@ class TopicRelayController : public rclcpp::Node // Subscriber rclcpp::GenericSubscription::SharedPtr sub_topic_; rclcpp::Subscription::SharedPtr sub_transform_; + + // Publisher + rclcpp::GenericPublisher::SharedPtr pub_topic_; + rclcpp::Publisher::SharedPtr pub_transform_; }; } // namespace autoware::topic_relay_controller From b88dc9c51c37fcd5b76e89d837b00e399bd5fb9d Mon Sep 17 00:00:00 2001 From: TetsuKawa Date: Thu, 9 Jan 2025 17:25:13 +0900 Subject: [PATCH 04/10] feat: add service Signed-off-by: TetsuKawa --- .../launch/topic_relay_controller.launch.xml | 4 ++++ .../topic_relay_controller_tf.launch.xml | 4 ++++ .../package.xml | 1 + .../src/topic_relay_controller_node.cpp | 20 ++++++++++++++++--- .../src/topic_relay_controller_node.hpp | 9 +++++++++ 5 files changed, 35 insertions(+), 3 deletions(-) diff --git a/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml b/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml index 49672c0a044ab..7dbc806ee6424 100644 --- a/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml +++ b/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml @@ -6,6 +6,8 @@ + + @@ -14,5 +16,7 @@ + + diff --git a/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml b/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml index 6dfd1464715bc..801357c03f8e3 100644 --- a/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml +++ b/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml @@ -6,6 +6,8 @@ + + @@ -14,5 +16,7 @@ + + diff --git a/system/autoware_topic_relay_controller/package.xml b/system/autoware_topic_relay_controller/package.xml index 101c40b373048..537774e67b998 100644 --- a/system/autoware_topic_relay_controller/package.xml +++ b/system/autoware_topic_relay_controller/package.xml @@ -13,6 +13,7 @@ rclcpp rclcpp_components tf2_msgs + tier4_system_msgs ament_lint_auto autoware_lint_common diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp index abdf7b2515fc4..5a5339edb7230 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp @@ -15,7 +15,7 @@ namespace autoware::topic_relay_controller { -TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options) : Node("topic_relay_controller", options) +TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options): Node("topic_relay_controller", options), is_relaying_(true) { // Parameter node_param_.topic = declare_parameter("topic"); @@ -24,6 +24,8 @@ TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options) node_param_.transient_local = declare_parameter("transient_local", false); node_param_.best_effort = declare_parameter("best_effort", false); node_param_.is_transform = (node_param_.topic == "/tf" || node_param_.topic == "/tf_static"); + node_param_.enable_relay_control = declare_parameter("enable_relay_control"); + node_param_.srv_name = declare_parameter("srv_name"); if (node_param_.is_transform) { node_param_.frame_id = declare_parameter("frame_id"); @@ -32,6 +34,17 @@ TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options) node_param_.topic_type = declare_parameter("topic_type"); } + // Service + if (node_param_.enable_relay_control) { + srv_change_relay_control_ = create_service( + node_param_.srv_name, + [this](const tier4_system_msgs::srv::ChangeTopicRelayControl::Request::SharedPtr request, + tier4_system_msgs::srv::ChangeTopicRelayControl::Response::SharedPtr response) { + is_relaying_ = request->relay_on; + response->status.success = true; + }); + } + // Subscriber rclcpp::QoS qos = rclcpp::QoS{node_param_.qos}; if (node_param_.transient_local) { @@ -51,7 +64,8 @@ TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options) for (const auto & transform : msg->transforms) { if ( transform.header.frame_id == node_param_.frame_id && - transform.child_frame_id == node_param_.child_frame_id) { + transform.child_frame_id == node_param_.child_frame_id && + is_relaying_) { pub_transform_->publish(*msg); } } @@ -64,7 +78,7 @@ TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options) sub_topic_ = this->create_generic_subscription( node_param_.topic, node_param_.topic_type, qos, [this]([[maybe_unused]] std::shared_ptr msg) { - pub_topic_->publish(*msg); + if (is_relaying_) pub_topic_->publish(*msg); }); } } diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp index 46d248d7eb50a..6e0b87a80e737 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp @@ -19,6 +19,7 @@ #include #include +#include namespace autoware::topic_relay_controller { @@ -33,6 +34,8 @@ struct NodeParam bool transient_local; bool best_effort; bool is_transform; + bool enable_relay_control; + std::string srv_name; }; class TopicRelayController : public rclcpp::Node @@ -51,6 +54,12 @@ class TopicRelayController : public rclcpp::Node // Publisher rclcpp::GenericPublisher::SharedPtr pub_topic_; rclcpp::Publisher::SharedPtr pub_transform_; + + // Service + rclcpp::Service::SharedPtr srv_change_relay_control_; + + // State + bool is_relaying_; }; } // namespace autoware::topic_relay_controller From caa9db88d6a9ed48f2c0b56e8f975dca32e1aa94 Mon Sep 17 00:00:00 2001 From: TetsuKawa Date: Fri, 10 Jan 2025 15:40:40 +0900 Subject: [PATCH 05/10] modify: typo Signed-off-by: TetsuKawa --- .../launch/topic_relay_controller.launch.xml | 4 ++-- .../launch/topic_relay_controller_tf.launch.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml b/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml index 7dbc806ee6424..4165cf7ea741b 100644 --- a/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml +++ b/system/autoware_topic_relay_controller/launch/topic_relay_controller.launch.xml @@ -6,7 +6,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml b/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml index 801357c03f8e3..8a497982dd813 100644 --- a/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml +++ b/system/autoware_topic_relay_controller/launch/topic_relay_controller_tf.launch.xml @@ -6,7 +6,7 @@ - + @@ -16,7 +16,7 @@ - + From ef68714ad6a399a2506c41b3bfca453eb05ec2eb Mon Sep 17 00:00:00 2001 From: TetsuKawa Date: Fri, 10 Jan 2025 15:44:27 +0900 Subject: [PATCH 06/10] feat: delete config Signed-off-by: TetsuKawa --- system/autoware_topic_relay_controller/CMakeLists.txt | 1 - .../config/topic_relay_controller.param.yaml | 4 ---- 2 files changed, 5 deletions(-) delete mode 100644 system/autoware_topic_relay_controller/config/topic_relay_controller.param.yaml diff --git a/system/autoware_topic_relay_controller/CMakeLists.txt b/system/autoware_topic_relay_controller/CMakeLists.txt index 7b035b2b62c23..f244bf8122f82 100644 --- a/system/autoware_topic_relay_controller/CMakeLists.txt +++ b/system/autoware_topic_relay_controller/CMakeLists.txt @@ -16,5 +16,4 @@ rclcpp_components_register_node(${PROJECT_NAME} ament_auto_package(INSTALL_TO_SHARE launch - config ) diff --git a/system/autoware_topic_relay_controller/config/topic_relay_controller.param.yaml b/system/autoware_topic_relay_controller/config/topic_relay_controller.param.yaml deleted file mode 100644 index 3a506213f054d..0000000000000 --- a/system/autoware_topic_relay_controller/config/topic_relay_controller.param.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -/**: - ros__parameters: - tmp: 0 \ No newline at end of file From 15e87352fe9c5115cacedd4356f4c0ff596ab062 Mon Sep 17 00:00:00 2001 From: TetsuKawa Date: Fri, 10 Jan 2025 15:45:47 +0900 Subject: [PATCH 07/10] feat: delete schema Signed-off-by: TetsuKawa --- .../schema/topic_relay_controller.schema.json | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 system/autoware_topic_relay_controller/schema/topic_relay_controller.schema.json diff --git a/system/autoware_topic_relay_controller/schema/topic_relay_controller.schema.json b/system/autoware_topic_relay_controller/schema/topic_relay_controller.schema.json deleted file mode 100644 index d51b0ae4ed1b6..0000000000000 --- a/system/autoware_topic_relay_controller/schema/topic_relay_controller.schema.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "Parameters for topic relay controller", - "type": "object", - "definitions": { - "topic_rely_controller": { - "type": "object", - "properties": { - }, - "required": [ - ], - "additionalProperties": false - } - }, - "properties": { - "/**": { - "type": "object", - "properties": { - "ros__parameters": { - "$ref": "#/definitions/topic_rely_controller" - } - }, - "required": ["ros__parameters"], - "additionalProperties": false - } - }, - "required": ["/**"], - "additionalProperties": false - } - \ No newline at end of file From d621b416d6db29bcbe003b12083081af95b01771 Mon Sep 17 00:00:00 2001 From: TetsuKawa Date: Fri, 10 Jan 2025 16:02:53 +0900 Subject: [PATCH 08/10] modify: add include Signed-off-by: TetsuKawa --- .../src/topic_relay_controller_node.cpp | 3 +++ .../src/topic_relay_controller_node.hpp | 2 ++ 2 files changed, 5 insertions(+) diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp index 5a5339edb7230..78820e2129988 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp @@ -13,6 +13,9 @@ #include "topic_relay_controller_node.hpp" +#include +#include + namespace autoware::topic_relay_controller { TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options): Node("topic_relay_controller", options), is_relaying_(true) diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp index 6e0b87a80e737..2634d5eee5456 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp @@ -21,6 +21,8 @@ #include #include +#include + namespace autoware::topic_relay_controller { struct NodeParam From 55a0af5d9488cb3c120d18ec89ca54dd53f16143 Mon Sep 17 00:00:00 2001 From: TetsuKawa Date: Fri, 10 Jan 2025 18:11:45 +0900 Subject: [PATCH 09/10] modify: include guard Signed-off-by: TetsuKawa --- .../src/topic_relay_controller_node.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp index 2634d5eee5456..23d17ce3b7c21 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -#ifndef AUTOWARE_TOPIC_RELAY_CONTROLLER__TOPIC_RELAY_CONTROLLER_HPP_ -#define AUTOWARE_TOPIC_RELAY_CONTROLLER__TOPIC_RELAY_CONTROLLER_HPP_ +#ifndef TOPIC_RELAY_CONTROLLER_HPP_ +#define TOPIC_RELAY_CONTROLLER_HPP_ // ROS 2 core #include @@ -65,4 +65,4 @@ class TopicRelayController : public rclcpp::Node }; } // namespace autoware::topic_relay_controller -#endif // AUTOWARE_TOPIC_RELAY_CONTROLLER__TOPIC_RELAY_CONTROLLER_HPP_ \ No newline at end of file +#endif // TOPIC_RELAY_CONTROLLER_HPP_ \ No newline at end of file From 8a45f48995915c57b26f46a0eaef3d274ac92f05 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 10 Jan 2025 09:13:48 +0000 Subject: [PATCH 10/10] style(pre-commit): autofix --- .../src/topic_relay_controller_node.cpp | 20 +++++++++---------- .../src/topic_relay_controller_node.hpp | 9 +++++---- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp index 78820e2129988..ace592f3c875e 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.cpp @@ -18,12 +18,13 @@ namespace autoware::topic_relay_controller { -TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options): Node("topic_relay_controller", options), is_relaying_(true) +TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options) +: Node("topic_relay_controller", options), is_relaying_(true) { // Parameter node_param_.topic = declare_parameter("topic"); node_param_.remap_topic = declare_parameter("remap_topic"); - node_param_.qos = declare_parameter("qos", 1); + node_param_.qos = declare_parameter("qos", 1); node_param_.transient_local = declare_parameter("transient_local", false); node_param_.best_effort = declare_parameter("best_effort", false); node_param_.is_transform = (node_param_.topic == "/tf" || node_param_.topic == "/tf_static"); @@ -41,7 +42,8 @@ TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options): if (node_param_.enable_relay_control) { srv_change_relay_control_ = create_service( node_param_.srv_name, - [this](const tier4_system_msgs::srv::ChangeTopicRelayControl::Request::SharedPtr request, + [this]( + const tier4_system_msgs::srv::ChangeTopicRelayControl::Request::SharedPtr request, tier4_system_msgs::srv::ChangeTopicRelayControl::Response::SharedPtr response) { is_relaying_ = request->relay_on; response->status.success = true; @@ -59,24 +61,22 @@ TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options): if (node_param_.is_transform) { // Publisher - pub_transform_ = this->create_publisher( - node_param_.remap_topic, qos); + pub_transform_ = this->create_publisher(node_param_.remap_topic, qos); sub_transform_ = this->create_subscription( node_param_.topic, qos, [this](tf2_msgs::msg::TFMessage::ConstSharedPtr msg) { for (const auto & transform : msg->transforms) { if ( transform.header.frame_id == node_param_.frame_id && - transform.child_frame_id == node_param_.child_frame_id && - is_relaying_) { + transform.child_frame_id == node_param_.child_frame_id && is_relaying_) { pub_transform_->publish(*msg); } } }); } else { // Publisher - pub_topic_ = this->create_generic_publisher( - node_param_.remap_topic, node_param_.topic_type, qos); + pub_topic_ = + this->create_generic_publisher(node_param_.remap_topic, node_param_.topic_type, qos); sub_topic_ = this->create_generic_subscription( node_param_.topic, node_param_.topic_type, qos, @@ -85,7 +85,7 @@ TopicRelayController::TopicRelayController(const rclcpp::NodeOptions & options): }); } } -} // namespace autoware::topic_relay_controller +} // namespace autoware::topic_relay_controller #include RCLCPP_COMPONENTS_REGISTER_NODE(autoware::topic_relay_controller::TopicRelayController) diff --git a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp index 23d17ce3b7c21..14ac259bbee6e 100644 --- a/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp +++ b/system/autoware_topic_relay_controller/src/topic_relay_controller_node.hpp @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -#ifndef TOPIC_RELAY_CONTROLLER_HPP_ -#define TOPIC_RELAY_CONTROLLER_HPP_ +#ifndef TOPIC_RELAY_CONTROLLER_NODE_HPP_ +#define TOPIC_RELAY_CONTROLLER_NODE_HPP_ // ROS 2 core #include @@ -58,11 +58,12 @@ class TopicRelayController : public rclcpp::Node rclcpp::Publisher::SharedPtr pub_transform_; // Service - rclcpp::Service::SharedPtr srv_change_relay_control_; + rclcpp::Service::SharedPtr + srv_change_relay_control_; // State bool is_relaying_; }; } // namespace autoware::topic_relay_controller -#endif // TOPIC_RELAY_CONTROLLER_HPP_ \ No newline at end of file +#endif // TOPIC_RELAY_CONTROLLER_NODE_HPP_