diff --git a/common/component_interface_tools/CMakeLists.txt b/common/component_interface_tools/CMakeLists.txt
index a5ebc29463bec..2b896a951b8ed 100644
--- a/common/component_interface_tools/CMakeLists.txt
+++ b/common/component_interface_tools/CMakeLists.txt
@@ -3,5 +3,14 @@ project(component_interface_tools)
find_package(autoware_cmake REQUIRED)
autoware_package()
-ament_auto_add_executable(service_log_checker src/service_log_checker.cpp)
+
+ament_auto_add_library(${PROJECT_NAME} SHARED
+ src/service_log_checker.cpp
+)
+
+rclcpp_components_register_node(${PROJECT_NAME}
+ PLUGIN "ServiceLogChecker"
+ EXECUTABLE service_log_checker_node
+)
+
ament_auto_package(INSTALL_TO_SHARE launch)
diff --git a/common/component_interface_tools/launch/service_log_checker.launch.xml b/common/component_interface_tools/launch/service_log_checker.launch.xml
index f3099b3238096..c7845198955c1 100644
--- a/common/component_interface_tools/launch/service_log_checker.launch.xml
+++ b/common/component_interface_tools/launch/service_log_checker.launch.xml
@@ -1,3 +1,3 @@
-
+
diff --git a/common/component_interface_tools/package.xml b/common/component_interface_tools/package.xml
index cff1829473e86..6df07af8729ff 100644
--- a/common/component_interface_tools/package.xml
+++ b/common/component_interface_tools/package.xml
@@ -13,6 +13,7 @@
diagnostic_updater
fmt
rclcpp
+ rclcpp_components
tier4_system_msgs
yaml_cpp_vendor
diff --git a/common/component_interface_tools/src/service_log_checker.cpp b/common/component_interface_tools/src/service_log_checker.cpp
index ce89573356412..18f90af5737d2 100644
--- a/common/component_interface_tools/src/service_log_checker.cpp
+++ b/common/component_interface_tools/src/service_log_checker.cpp
@@ -22,7 +22,8 @@
#define FMT_HEADER_ONLY
#include
-ServiceLogChecker::ServiceLogChecker() : Node("service_log_checker"), diagnostics_(this)
+ServiceLogChecker::ServiceLogChecker(const rclcpp::NodeOptions & options)
+: Node("service_log_checker", options), diagnostics_(this)
{
sub_ = create_subscription(
"/service_log", 50, std::bind(&ServiceLogChecker::on_service_log, this, std::placeholders::_1));
@@ -98,13 +99,5 @@ void ServiceLogChecker::update_diagnostics(diagnostic_updater::DiagnosticStatusW
}
}
-int main(int argc, char ** argv)
-{
- rclcpp::init(argc, argv);
- rclcpp::executors::SingleThreadedExecutor executor;
- auto node = std::make_shared();
- executor.add_node(node);
- executor.spin();
- executor.remove_node(node);
- rclcpp::shutdown();
-}
+#include
+RCLCPP_COMPONENTS_REGISTER_NODE(ServiceLogChecker)
diff --git a/common/component_interface_tools/src/service_log_checker.hpp b/common/component_interface_tools/src/service_log_checker.hpp
index 32c7f02e757c6..9579753dfd900 100644
--- a/common/component_interface_tools/src/service_log_checker.hpp
+++ b/common/component_interface_tools/src/service_log_checker.hpp
@@ -26,7 +26,7 @@
class ServiceLogChecker : public rclcpp::Node
{
public:
- ServiceLogChecker();
+ explicit ServiceLogChecker(const rclcpp::NodeOptions & options);
private:
using ServiceLog = tier4_system_msgs::msg::ServiceLog;