diff --git a/perception/multi_object_tracker/CMakeLists.txt b/perception/multi_object_tracker/CMakeLists.txt
index fb2c4d73554a3..4f9268583dd34 100644
--- a/perception/multi_object_tracker/CMakeLists.txt
+++ b/perception/multi_object_tracker/CMakeLists.txt
@@ -44,17 +44,18 @@ set(MULTI_OBJECT_TRACKER_SRC
src/tracker/model/pass_through_tracker.cpp
)
-ament_auto_add_library(multi_object_tracker_node SHARED
+ament_auto_add_library(${PROJECT_NAME} SHARED
${MULTI_OBJECT_TRACKER_SRC}
)
-target_link_libraries(multi_object_tracker_node
+target_link_libraries(${PROJECT_NAME}
Eigen3::Eigen
glog::glog
)
-ament_auto_add_executable(${PROJECT_NAME}
- src/multi_object_tracker_node.cpp
+rclcpp_components_register_node(${PROJECT_NAME}
+ PLUGIN "multi_object_tracker::MultiObjectTracker"
+ EXECUTABLE ${PROJECT_NAME}_node
)
ament_auto_package(INSTALL_TO_SHARE
diff --git a/perception/multi_object_tracker/launch/multi_object_tracker.launch.xml b/perception/multi_object_tracker/launch/multi_object_tracker.launch.xml
index 526ce23efd33b..b00ccd8fa623e 100644
--- a/perception/multi_object_tracker/launch/multi_object_tracker.launch.xml
+++ b/perception/multi_object_tracker/launch/multi_object_tracker.launch.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/perception/multi_object_tracker/src/multi_object_tracker_core.cpp b/perception/multi_object_tracker/src/multi_object_tracker_core.cpp
index c3bf7023fb068..54c23d39f5357 100644
--- a/perception/multi_object_tracker/src/multi_object_tracker_core.cpp
+++ b/perception/multi_object_tracker/src/multi_object_tracker_core.cpp
@@ -75,6 +75,12 @@ MultiObjectTracker::MultiObjectTracker(const rclcpp::NodeOptions & node_options)
tf_listener_(tf_buffer_),
last_published_time_(this->now())
{
+ // glog for debug
+ if (!google::IsGoogleLoggingInitialized()) {
+ google::InitGoogleLogging("multi_object_tracker");
+ google::InstallFailureSignalHandler();
+ }
+
// Get parameters
double publish_rate = declare_parameter("publish_rate"); // [hz]
world_frame_id_ = declare_parameter("world_frame_id");
diff --git a/perception/multi_object_tracker/src/multi_object_tracker_node.cpp b/perception/multi_object_tracker/src/multi_object_tracker_node.cpp
deleted file mode 100644
index 273e6ac1a06bd..0000000000000
--- a/perception/multi_object_tracker/src/multi_object_tracker_node.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright 2024 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 "multi_object_tracker/multi_object_tracker_core.hpp"
-
-#include
-
-#include
-
-int main(int argc, char ** argv)
-{
- if (!google::IsGoogleLoggingInitialized()) {
- google::InitGoogleLogging(argv[0]); // NOLINT
- google::InstallFailureSignalHandler();
- }
-
- rclcpp::init(argc, argv);
- rclcpp::NodeOptions options;
- auto multi_object_tracker = std::make_shared(options);
- rclcpp::executors::SingleThreadedExecutor exec;
- exec.add_node(multi_object_tracker);
- exec.spin();
- rclcpp::shutdown();
- return 0;
-}