diff --git a/system/default_ad_api_helpers/automatic_pose_initializer/CMakeLists.txt b/system/default_ad_api_helpers/automatic_pose_initializer/CMakeLists.txt
index ad65f04356f4d..a8d16cc17609f 100644
--- a/system/default_ad_api_helpers/automatic_pose_initializer/CMakeLists.txt
+++ b/system/default_ad_api_helpers/automatic_pose_initializer/CMakeLists.txt
@@ -4,8 +4,14 @@ project(automatic_pose_initializer)
find_package(autoware_cmake REQUIRED)
autoware_package()
-ament_auto_add_executable(automatic_pose_initializer
+ament_auto_add_library(${PROJECT_NAME} SHARED
src/automatic_pose_initializer.cpp
)
+rclcpp_components_register_node(${PROJECT_NAME}
+ PLUGIN "ServiceLogChecker"
+ EXECUTABLE ${PROJECT_NAME}_node
+ EXECUTOR MultiThreadedExecutor
+)
+
ament_auto_package(INSTALL_TO_SHARE launch)
diff --git a/system/default_ad_api_helpers/automatic_pose_initializer/launch/automatic_pose_initializer.launch.xml b/system/default_ad_api_helpers/automatic_pose_initializer/launch/automatic_pose_initializer.launch.xml
index ac5e63e84092a..e9a94efd6be7b 100644
--- a/system/default_ad_api_helpers/automatic_pose_initializer/launch/automatic_pose_initializer.launch.xml
+++ b/system/default_ad_api_helpers/automatic_pose_initializer/launch/automatic_pose_initializer.launch.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/system/default_ad_api_helpers/automatic_pose_initializer/package.xml b/system/default_ad_api_helpers/automatic_pose_initializer/package.xml
index be192c3dade4b..7321de4b1811d 100644
--- a/system/default_ad_api_helpers/automatic_pose_initializer/package.xml
+++ b/system/default_ad_api_helpers/automatic_pose_initializer/package.xml
@@ -16,6 +16,7 @@
autoware_adapi_v1_msgs
component_interface_utils
rclcpp
+ rclcpp_components
ament_lint_auto
autoware_lint_common
diff --git a/system/default_ad_api_helpers/automatic_pose_initializer/src/automatic_pose_initializer.cpp b/system/default_ad_api_helpers/automatic_pose_initializer/src/automatic_pose_initializer.cpp
index 6970d489ff340..8347b479b22c1 100644
--- a/system/default_ad_api_helpers/automatic_pose_initializer/src/automatic_pose_initializer.cpp
+++ b/system/default_ad_api_helpers/automatic_pose_initializer/src/automatic_pose_initializer.cpp
@@ -19,7 +19,8 @@
namespace automatic_pose_initializer
{
-AutomaticPoseInitializer::AutomaticPoseInitializer() : Node("automatic_pose_initializer")
+AutomaticPoseInitializer::AutomaticPoseInitializer(const rclcpp::NodeOptions & options)
+: Node("automatic_pose_initializer", options)
{
const auto adaptor = component_interface_utils::NodeAdaptor(this);
group_cli_ = create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive);
@@ -48,13 +49,5 @@ void AutomaticPoseInitializer::on_timer()
} // namespace automatic_pose_initializer
-int main(int argc, char ** argv)
-{
- rclcpp::init(argc, argv);
- rclcpp::executors::MultiThreadedExecutor executor;
- auto node = std::make_shared();
- executor.add_node(node);
- executor.spin();
- executor.remove_node(node);
- rclcpp::shutdown();
-}
+#include
+RCLCPP_COMPONENTS_REGISTER_NODE(automatic_pose_initializer::AutomaticPoseInitializer)
diff --git a/system/default_ad_api_helpers/automatic_pose_initializer/src/automatic_pose_initializer.hpp b/system/default_ad_api_helpers/automatic_pose_initializer/src/automatic_pose_initializer.hpp
index 80fe78832026d..91d70dfca3761 100644
--- a/system/default_ad_api_helpers/automatic_pose_initializer/src/automatic_pose_initializer.hpp
+++ b/system/default_ad_api_helpers/automatic_pose_initializer/src/automatic_pose_initializer.hpp
@@ -25,7 +25,7 @@ namespace automatic_pose_initializer
class AutomaticPoseInitializer : public rclcpp::Node
{
public:
- AutomaticPoseInitializer();
+ explicit AutomaticPoseInitializer(const rclcpp::NodeOptions & options);
private:
void on_timer();