diff --git a/localization/landmark_based_localizer/ar_tag_based_localizer/CMakeLists.txt b/localization/landmark_based_localizer/ar_tag_based_localizer/CMakeLists.txt
index d625064b8f6cb..a8435fa056847 100644
--- a/localization/landmark_based_localizer/ar_tag_based_localizer/CMakeLists.txt
+++ b/localization/landmark_based_localizer/ar_tag_based_localizer/CMakeLists.txt
@@ -14,27 +14,33 @@ ament_auto_find_build_dependencies()
find_package(OpenCV REQUIRED)
-ament_auto_add_executable(ar_tag_based_localizer
- src/main.cpp
+ament_auto_add_library(${PROJECT_NAME} SHARED
src/ar_tag_based_localizer.cpp
)
-target_include_directories(ar_tag_based_localizer
+
+target_include_directories(${PROJECT_NAME}
SYSTEM PUBLIC
${OpenCV_INCLUDE_DIRS}
)
-target_link_libraries(ar_tag_based_localizer ${OpenCV_LIBRARIES})
+target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})
+
+rclcpp_components_register_node(${PROJECT_NAME}
+ PLUGIN "ArTagBasedLocalizer"
+ EXECUTABLE ${PROJECT_NAME}_node
+ EXECUTOR SingleThreadedExecutor
+)
if(BUILD_TESTING)
find_package(ament_cmake_gtest REQUIRED)
- ament_auto_add_gtest(test_ar_tag_based_localizer
+ ament_auto_add_gtest(test_${PROJECT_NAME}
test/test.cpp
src/ar_tag_based_localizer.cpp
)
- target_include_directories(test_ar_tag_based_localizer
+ target_include_directories(test_${PROJECT_NAME}
SYSTEM PUBLIC
${OpenCV_INCLUDE_DIRS}
)
- target_link_libraries(test_ar_tag_based_localizer ${OpenCV_LIBRARIES})
+ target_link_libraries(test_${PROJECT_NAME} ${OpenCV_LIBRARIES})
endif()
ament_auto_package(
diff --git a/localization/landmark_based_localizer/ar_tag_based_localizer/launch/ar_tag_based_localizer.launch.xml b/localization/landmark_based_localizer/ar_tag_based_localizer/launch/ar_tag_based_localizer.launch.xml
index 272338905c3f0..34602ca70daf4 100644
--- a/localization/landmark_based_localizer/ar_tag_based_localizer/launch/ar_tag_based_localizer.launch.xml
+++ b/localization/landmark_based_localizer/ar_tag_based_localizer/launch/ar_tag_based_localizer.launch.xml
@@ -14,7 +14,7 @@
-
+
diff --git a/localization/landmark_based_localizer/ar_tag_based_localizer/package.xml b/localization/landmark_based_localizer/ar_tag_based_localizer/package.xml
index 072479cc7aaf5..90fdd2fee31f4 100644
--- a/localization/landmark_based_localizer/ar_tag_based_localizer/package.xml
+++ b/localization/landmark_based_localizer/ar_tag_based_localizer/package.xml
@@ -24,6 +24,7 @@
lanelet2_extension
localization_util
rclcpp
+ rclcpp_components
tf2_eigen
tf2_geometry_msgs
tf2_ros
diff --git a/localization/landmark_based_localizer/ar_tag_based_localizer/src/ar_tag_based_localizer.cpp b/localization/landmark_based_localizer/ar_tag_based_localizer/src/ar_tag_based_localizer.cpp
index 43ac1e1098453..9a6823e330acd 100644
--- a/localization/landmark_based_localizer/ar_tag_based_localizer/src/ar_tag_based_localizer.cpp
+++ b/localization/landmark_based_localizer/ar_tag_based_localizer/src/ar_tag_based_localizer.cpp
@@ -65,7 +65,7 @@
#include
ArTagBasedLocalizer::ArTagBasedLocalizer(const rclcpp::NodeOptions & options)
-: Node("ar_tag_based_localizer", options), cam_info_received_(false)
+: rclcpp::Node("ar_tag_based_localizer", options), cam_info_received_(false)
{
/*
Declare node parameters
@@ -346,3 +346,6 @@ std::vector ArTagBasedLocalizer::detect_landmarks(
return landmarks;
}
+
+#include
+RCLCPP_COMPONENTS_REGISTER_NODE(ArTagBasedLocalizer)
diff --git a/localization/landmark_based_localizer/ar_tag_based_localizer/src/main.cpp b/localization/landmark_based_localizer/ar_tag_based_localizer/src/main.cpp
deleted file mode 100644
index 8ef1dd6195580..0000000000000
--- a/localization/landmark_based_localizer/ar_tag_based_localizer/src/main.cpp
+++ /dev/null
@@ -1,53 +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.
-
-// This source code is derived from the https://github.com/pal-robotics/aruco_ros.
-// Here is the license statement.
-/*****************************
- Copyright 2011 Rafael Muñoz Salinas. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification, are
- permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of
- conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright notice, this list
- of conditions and the following disclaimer in the documentation and/or other materials
- provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY Rafael Muñoz Salinas ''AS IS'' AND ANY EXPRESS OR IMPLIED
- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Rafael Muñoz Salinas OR
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- The views and conclusions contained in the software and documentation are those of the
- authors and should not be interpreted as representing official policies, either expressed
- or implied, of Rafael Muñoz Salinas.
- ********************************/
-
-#include "ar_tag_based_localizer.hpp"
-
-int main(int argc, char ** argv)
-{
- rclcpp::init(argc, argv);
- std::shared_ptr ptr = std::make_shared();
- rclcpp::spin(ptr);
- rclcpp::shutdown();
-}