diff --git a/localization/pose_estimator_arbiter/CMakeLists.txt b/localization/pose_estimator_arbiter/CMakeLists.txt
index 9a47b654a6ab4..eefb7fc9a6879 100644
--- a/localization/pose_estimator_arbiter/CMakeLists.txt
+++ b/localization/pose_estimator_arbiter/CMakeLists.txt
@@ -4,29 +4,23 @@ project(pose_estimator_arbiter)
find_package(autoware_cmake REQUIRED)
autoware_package()
-find_package(glog REQUIRED)
-
find_package(PCL REQUIRED COMPONENTS common)
include_directories(SYSTEM ${PCL_INCLUDE_DIRS})
-# ==============================
-# switch rule library
-ament_auto_add_library(switch_rule
- SHARED
- src/pose_estimator_arbiter/switch_rule/enable_all_rule.cpp
-)
-target_include_directories(switch_rule PUBLIC src)
-
# ==============================
# pose estimator arbiter node
-ament_auto_add_executable(${PROJECT_NAME}
+ament_auto_add_library(${PROJECT_NAME} SHARED
src/pose_estimator_arbiter/pose_estimator_arbiter_core.cpp
- src/pose_estimator_arbiter/pose_estimator_arbiter_node.cpp
+ src/pose_estimator_arbiter/switch_rule/enable_all_rule.cpp
)
target_include_directories(${PROJECT_NAME} PUBLIC src)
-target_link_libraries(${PROJECT_NAME} switch_rule glog::glog)
-# ==============================
+rclcpp_components_register_node(${PROJECT_NAME}
+ PLUGIN "pose_estimator_arbiter::PoseEstimatorArbiter"
+ EXECUTABLE ${PROJECT_NAME}_node
+ EXECUTOR MultiThreadedExecutor
+)
+
if(BUILD_TESTING)
find_package(ament_cmake_gtest REQUIRED)
@@ -53,6 +47,7 @@ endif()
add_subdirectory(example_rule)
# ==============================
-ament_auto_package(INSTALL_TO_SHARE
+ament_auto_package(
+ INSTALL_TO_SHARE
launch
)
diff --git a/localization/pose_estimator_arbiter/example_rule/CMakeLists.txt b/localization/pose_estimator_arbiter/example_rule/CMakeLists.txt
index 333f92842b860..b2b5a828e42e7 100644
--- a/localization/pose_estimator_arbiter/example_rule/CMakeLists.txt
+++ b/localization/pose_estimator_arbiter/example_rule/CMakeLists.txt
@@ -7,7 +7,7 @@ ament_auto_add_library(example_rule
src/pose_estimator_arbiter/rule_helper/pose_estimator_area.cpp
)
target_include_directories(example_rule PUBLIC src example_rule/src)
-target_link_libraries(example_rule switch_rule)
+target_link_libraries(example_rule pose_estimator_arbiter)
# ==============================
# define test definition macro
@@ -16,7 +16,7 @@ function(add_testcase filepath)
string(REGEX REPLACE ".cpp" "" test_name ${filename})
ament_add_gtest(${test_name} ${filepath})
- target_link_libraries("${test_name}" switch_rule example_rule)
+ target_link_libraries("${test_name}" pose_estimator_arbiter example_rule)
target_include_directories(${test_name} PUBLIC src)
ament_target_dependencies(${test_name} ${${PROJECT_NAME}_FOUND_BUILD_DEPENDS})
endfunction()
diff --git a/localization/pose_estimator_arbiter/launch/pose_estimator_arbiter.launch.xml b/localization/pose_estimator_arbiter/launch/pose_estimator_arbiter.launch.xml
index 0a708e3f48988..b5be96fc3ce44 100644
--- a/localization/pose_estimator_arbiter/launch/pose_estimator_arbiter.launch.xml
+++ b/localization/pose_estimator_arbiter/launch/pose_estimator_arbiter.launch.xml
@@ -3,7 +3,7 @@
-
+
diff --git a/localization/pose_estimator_arbiter/package.xml b/localization/pose_estimator_arbiter/package.xml
index 480b323f3031d..d164086ada87e 100644
--- a/localization/pose_estimator_arbiter/package.xml
+++ b/localization/pose_estimator_arbiter/package.xml
@@ -15,12 +15,12 @@
autoware_auto_mapping_msgs
diagnostic_msgs
geometry_msgs
- glog
lanelet2_extension
magic_enum
pcl_conversions
pcl_ros
pluginlib
+ rclcpp_components
sensor_msgs
std_msgs
std_srvs
@@ -29,9 +29,6 @@
visualization_msgs
yabloc_particle_filter
- rclcpp
- rclcpp_components
-
ament_cmake_ros
ament_lint_auto
autoware_lint_common
diff --git a/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter.hpp b/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter.hpp
index 9e67dfc063964..54dac6ac254c1 100644
--- a/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter.hpp
+++ b/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter.hpp
@@ -47,7 +47,7 @@ class PoseEstimatorArbiter : public rclcpp::Node
using DiagnosticArray = diagnostic_msgs::msg::DiagnosticArray;
public:
- PoseEstimatorArbiter();
+ explicit PoseEstimatorArbiter(const rclcpp::NodeOptions & options);
private:
// Set of running pose estimators specified by ros param `pose_sources`
diff --git a/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter_core.cpp b/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter_core.cpp
index 4fc3fd9b914a6..67c555227976d 100644
--- a/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter_core.cpp
+++ b/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter_core.cpp
@@ -42,8 +42,8 @@ static std::unordered_set parse_estimator_name_args(
return running_estimator_list;
}
-PoseEstimatorArbiter::PoseEstimatorArbiter()
-: Node("pose_estimator_arbiter"),
+PoseEstimatorArbiter::PoseEstimatorArbiter(const rclcpp::NodeOptions & options)
+: rclcpp::Node("pose_estimator_arbiter", options),
running_estimator_list_(parse_estimator_name_args(
declare_parameter>("pose_sources"), get_logger())),
logger_configure_(std::make_unique(this))
@@ -211,3 +211,6 @@ void PoseEstimatorArbiter::on_timer()
}
} // namespace pose_estimator_arbiter
+
+#include
+RCLCPP_COMPONENTS_REGISTER_NODE(pose_estimator_arbiter::PoseEstimatorArbiter)
diff --git a/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter_node.cpp b/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter_node.cpp
deleted file mode 100644
index 20aaaf10abaab..0000000000000
--- a/localization/pose_estimator_arbiter/src/pose_estimator_arbiter/pose_estimator_arbiter_node.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2023 Autoware Foundation
-//
-// 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 "pose_estimator_arbiter/pose_estimator_arbiter.hpp"
-
-#include
-
-int main(int argc, char * argv[])
-{
- if (!google::IsGoogleLoggingInitialized()) {
- google::InitGoogleLogging(argv[0]);
- google::InstallFailureSignalHandler();
- }
-
- rclcpp::init(argc, argv);
- auto node = std::make_shared();
- rclcpp::executors::MultiThreadedExecutor executor;
- executor.add_node(node);
- executor.spin();
- rclcpp::shutdown();
- return 0;
-}