diff --git a/nebula_common/CMakeLists.txt b/nebula_common/CMakeLists.txt
index 4c146736c..c0af280ff 100644
--- a/nebula_common/CMakeLists.txt
+++ b/nebula_common/CMakeLists.txt
@@ -2,13 +2,9 @@ cmake_minimum_required(VERSION 3.14)
project(nebula_common)
find_package(ament_cmake_auto REQUIRED)
-find_package(PCL REQUIRED)
find_package(PCL REQUIRED COMPONENTS common)
-find_package(pcl_conversions REQUIRED)
find_package(yaml-cpp REQUIRED)
-ament_auto_find_build_dependencies()
-
# Default to C++17
if (NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
@@ -35,12 +31,28 @@ include_directories(
${PCL_COMMON_INCLUDE_DIRS}
)
-ament_auto_add_library(nebula_common SHARED
- src/nebula_common.cpp
- src/velodyne/velodyne_calibration_decoder.cpp
- )
+link_libraries(
+ ${PCL_LIBRARIES}
+ ${YAML_CPP_LIBRARIES}
+)
+
+add_library(nebula_common SHARED
+ src/nebula_common.cpp
+ src/velodyne/velodyne_calibration_decoder.cpp
+)
+
+install(TARGETS nebula_common EXPORT export_nebula_common)
+install(DIRECTORY include/ DESTINATION include/${PROJECT_NAME})
+
+ament_export_include_directories("include/${PROJECT_NAME}")
+ament_export_targets(export_nebula_common)
+
+ament_export_dependencies(
+ PCL
+ yaml-cpp
+)
-ament_auto_package()
+ament_package()
# Set ROS_DISTRO macros
set(ROS_DISTRO $ENV{ROS_DISTRO})
diff --git a/nebula_common/package.xml b/nebula_common/package.xml
index d769e273e..f5d6c83ac 100644
--- a/nebula_common/package.xml
+++ b/nebula_common/package.xml
@@ -13,7 +13,6 @@
ros_environment
libpcl-all-dev
- pcl_conversions
yaml-cpp
ament_cmake_gtest
diff --git a/nebula_decoders/CMakeLists.txt b/nebula_decoders/CMakeLists.txt
index 31385de6f..20284bbb8 100644
--- a/nebula_decoders/CMakeLists.txt
+++ b/nebula_decoders/CMakeLists.txt
@@ -3,7 +3,7 @@ project(nebula_decoders)
find_package(ament_cmake_auto REQUIRED)
-ament_auto_find_build_dependencies()
+#ament_auto_find_build_dependencies()
# Default to C++17
if (NOT CMAKE_CXX_STANDARD)
@@ -14,58 +14,159 @@ if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic -Wunused-function)
endif ()
+find_package(PCL REQUIRED COMPONENTS common)
+#find_package(pcl_conversions REQUIRED)
+
find_package(angles REQUIRED)
-find_package(PCL REQUIRED)
-find_package(pcl_conversions REQUIRED)
-find_package(yaml-cpp REQUIRED)
+find_package(continental_msgs REQUIRED)
+find_package(diagnostic_msgs REQUIRED)
find_package(nebula_common REQUIRED)
+find_package(nebula_msgs REQUIRED)
+find_package(pandar_msgs REQUIRED)
+find_package(pcl_conversions REQUIRED)
+find_package(radar_msgs REQUIRED)
+find_package(rclcpp REQUIRED)
find_package(robosense_msgs REQUIRED)
+find_package(sensor_msgs REQUIRED)
+find_package(velodyne_msgs REQUIRED)
+find_package(yaml-cpp REQUIRED)
+
+include_directories(PUBLIC
+ include
+ SYSTEM
+)
-include_directories(
- include
- SYSTEM
- ${YAML_CPP_INCLUDE_DIRS}
- ${PCL_INCLUDE_DIRS}
- ${PCL_COMMON_INCLUDE_DIRS}
+set(common_include_dirs
+ ${nebula_common_INCLUDE_DIRS}
+ ${YAML_CPP_INCLUDE_DIRS}
+ ${PCL_INCLUDE_DIRS}
+ ${PCL_COMMON_INCLUDE_DIRS}
+ ${pcl_conversions_INCLUDE_DIRS}
+ ${rcl_INCLUDE_DIRS}
+ ${rclcpp_INCLUDE_DIRS}
+ ${sensor_msgs_INCLUDE_DIRS}
+)
+
+set(common_targets
+ ${nebula_common_TARGETS}
+ ${pcl_conversions_LIBRARIES}
+ ${rcl_TARGETS}
+ ${rclcpp_TARGETS}
+ ${sensor_msgs_TARGETS}
)
# Lidar Decoders
# Hesai
-ament_auto_add_library(nebula_decoders_hesai SHARED
- src/nebula_decoders_hesai/hesai_driver.cpp
- )
+add_library(nebula_decoders_hesai SHARED
+ src/nebula_decoders_hesai/hesai_driver.cpp
+)
+target_link_libraries(nebula_decoders_hesai PUBLIC
+ ${pandar_msgs_TARGETS}
+ ${common_targets}
+)
+
+target_include_directories(nebula_decoders_hesai PUBLIC
+ ${pandar_msgs_INCLUDE_DIRS}
+ ${common_include_dirs}
+)
# Velodyne
-ament_auto_add_library(nebula_decoders_velodyne SHARED
- src/nebula_decoders_velodyne/velodyne_driver.cpp
- src/nebula_decoders_velodyne/decoders/vls128_decoder.cpp
- src/nebula_decoders_velodyne/decoders/vlp16_decoder.cpp
- src/nebula_decoders_velodyne/decoders/vlp32_decoder.cpp
- )
+add_library(nebula_decoders_velodyne SHARED
+ src/nebula_decoders_velodyne/velodyne_driver.cpp
+ src/nebula_decoders_velodyne/decoders/vls128_decoder.cpp
+ src/nebula_decoders_velodyne/decoders/vlp16_decoder.cpp
+ src/nebula_decoders_velodyne/decoders/vlp32_decoder.cpp
+)
+target_link_libraries(nebula_decoders_velodyne PUBLIC
+ ${angles_msgs_TARGETS}
+ ${velodyne_msgs_TARGETS}
+ ${common_targets}
+)
+target_include_directories(nebula_decoders_velodyne PUBLIC
+ ${angles_INCLUDE_DIRS}
+ ${velodyne_msgs_INCLUDE_DIRS}
+ ${common_include_dirs}
+)
# Robosense
-ament_auto_add_library(nebula_decoders_robosense SHARED
- src/nebula_decoders_robosense/robosense_driver.cpp
- )
-
-ament_auto_add_library(nebula_decoders_robosense_info SHARED
- src/nebula_decoders_robosense/robosense_info_driver.cpp
- )
+add_library(nebula_decoders_robosense SHARED
+src/nebula_decoders_robosense/robosense_driver.cpp
+)
+target_link_libraries(nebula_decoders_robosense PUBLIC
+ ${robosense_msgs_TARGETS}
+ ${common_targets}
+)
+target_include_directories(nebula_decoders_robosense PUBLIC
+ ${robosense_msgs_INCLUDE_DIRS}
+ ${common_include_dirs}
+)
# Continental
-ament_auto_add_library(nebula_decoders_continental SHARED
- src/nebula_decoders_continental/decoders/continental_ars548_decoder.cpp
- )
+add_library(nebula_decoders_continental SHARED
+ src/nebula_decoders_continental/decoders/continental_ars548_decoder.cpp
+)
+target_link_libraries(nebula_decoders_continental PUBLIC
+ ${continental_msgs_TARGETS}
+ ${diagnostic_msgs_TARGETS}
+ ${boost_udp_driver_TARGETS}
+ ${nebula_common_TARGETS}
+ ${nebula_msgs_TARGETS}
+ ${radar_msgs_TARGETS}
+ ${common_targets}
+)
+target_include_directories(nebula_decoders_continental PUBLIC
+ ${continental_msgs_INCLUDE_DIRS}
+ ${diagnostic_msgs_INCLUDE_DIRS}
+ ${boost_udp_driver_INCLUDE_DIRS}
+ ${nebula_common_INCLUDE_DIRS}
+ ${nebula_msgs_INCLUDE_DIRS}
+ ${radar_msgs_INCLUDE_DIRS}
+ ${common_include_dirs}
+)
+
+install(TARGETS nebula_decoders_hesai EXPORT export_nebula_decoders_hesai)
+install(TARGETS nebula_decoders_velodyne EXPORT export_nebula_decoders_velodyne)
+install(TARGETS nebula_decoders_robosense EXPORT export_nebula_decoders_robosense)
+install(TARGETS nebula_decoders_continental EXPORT export_nebula_decoders_continental)
+install(DIRECTORY include/ DESTINATION include/${PROJECT_NAME})
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()
-ament_auto_package(
- INSTALL_TO_SHARE
- calibration
- )
+ament_export_include_directories("include/${PROJECT_NAME}")
+ament_export_targets(export_nebula_decoders_hesai)
+ament_export_targets(export_nebula_decoders_velodyne)
+ament_export_targets(export_nebula_decoders_robosense)
+ament_export_targets(export_nebula_decoders_continental)
+
+install(
+ DIRECTORY calibration
+ DESTINATION share/${PROJECT_NAME}
+)
+
+ament_export_dependencies(
+ PCL
+ pcl_conversions
+ angles
+ continental_msgs
+ diagnostic_msgs
+ nebula_common
+ nebula_msgs
+ pandar_msgs
+ radar_msgs
+ rcl
+ rclcpp
+ rclcpp_components
+ robosense_msgs
+ sensor_msgs
+ velodyne_msgs
+ yaml-cpp
+)
+
+#ament_auto_package(
+ament_package()
# Set ROS_DISTRO macros
set(ROS_DISTRO $ENV{ROS_DISTRO})
diff --git a/nebula_examples/CMakeLists.txt b/nebula_examples/CMakeLists.txt
index 774580c04..7e206e591 100644
--- a/nebula_examples/CMakeLists.txt
+++ b/nebula_examples/CMakeLists.txt
@@ -11,51 +11,101 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
endif()
find_package(ament_cmake_auto REQUIRED)
-find_package(PCL REQUIRED COMPONENTS common)
-find_package(PCL REQUIRED)
-find_package(pcl_conversions REQUIRED)
-find_package(yaml-cpp REQUIRED)
find_package(nebula_decoders REQUIRED)
+find_package(nebula_hw_interfaces REQUIRED)
find_package(nebula_ros REQUIRED)
find_package(nebula_common REQUIRED)
+find_package(PCL REQUIRED COMPONENTS common)
+find_package(pcl_conversions REQUIRED)
+find_package(rclcpp REQUIRED)
+find_package(rosbag2_cpp REQUIRED)
+find_package(yaml-cpp REQUIRED)
-ament_auto_find_build_dependencies()
+#ament_auto_find_build_dependencies()
include_directories(
- include
- SYSTEM
- ${YAML_CPP_INCLUDE_DIRS}
- ${PCL_INCLUDE_DIRS}
- ${PCL_COMMON_INCLUDE_DIRS}
+ include
+ SYSTEM
+ ${nebula_decoders_INCLUDE_DIRS}
+ ${nebula_ros_INCLUDE_DIRS}
+ ${PCL_INCLUDE_DIRS}
+ ${PCL_COMMON_INCLUDE_DIRS}
+ ${rosbag2_cpp_INCLUDE_DIRS}
+ ${YAML_CPP_INCLUDE_DIRS}
+)
+
+message(STATUS "rosbag_cpp_INCLUDE_DIRS: ${rosbag2_cpp_INCLUDE_DIRS}")
+message(STATUS "rosbag_cpp_LIBRARIES: ${rosbag2_cpp_LIBRARIES}")
+message(STATUS "rosbag_cpp_TARGETS: ${rosbag2_cpp_TARGETS}")
+
+link_libraries(
+ ${rosbag2_cpp_TARGETS}
+ ${PCL_LIBRARIES}
)
+
+message(STATUS "nebula_ros_INCLUDE_DIRS: ${nebula_ros_INCLUDE_DIRS}")
+
## HESAI
# Offline Lib
-ament_auto_add_library(hesai_ros_offline_extract_pcd SHARED
- ${CMAKE_CURRENT_SOURCE_DIR}/src/hesai/hesai_ros_offline_extract_pcd.cpp
+add_library(hesai_ros_offline_extract_pcd SHARED
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/hesai/hesai_ros_offline_extract_pcd.cpp
+)
+target_link_libraries(hesai_ros_offline_extract_pcd PUBLIC
+ nebula_decoders::nebula_decoders_hesai
+)
+
+add_executable(hesai_ros_offline_extract_pcd_node
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/hesai/hesai_ros_offline_extract_pcd_main.cpp
)
-target_link_libraries(hesai_ros_offline_extract_pcd ${PCL_LIBRARIES})
-ament_auto_add_executable(hesai_ros_offline_extract_pcd_node
- ${CMAKE_CURRENT_SOURCE_DIR}/src/hesai/hesai_ros_offline_extract_pcd_main.cpp
+
+target_link_libraries(hesai_ros_offline_extract_pcd_node PUBLIC
+ hesai_ros_offline_extract_pcd
)
+
# Extraction for TEST Lib
-ament_auto_add_library(hesai_ros_offline_extract_bag_pcd SHARED
- ${CMAKE_CURRENT_SOURCE_DIR}/src/hesai/hesai_ros_offline_extract_bag_pcd.cpp
+add_library(hesai_ros_offline_extract_bag_pcd SHARED
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/hesai/hesai_ros_offline_extract_bag_pcd.cpp
)
-target_link_libraries(hesai_ros_offline_extract_bag_pcd ${PCL_LIBRARIES})
-ament_auto_add_executable(hesai_ros_offline_extract_bag_pcd_node
- ${CMAKE_CURRENT_SOURCE_DIR}/src/hesai/hesai_ros_offline_extract_bag_pcd_main.cpp
+target_link_libraries(hesai_ros_offline_extract_bag_pcd PUBLIC
+ nebula_decoders::nebula_decoders_hesai
+)
+
+add_executable(hesai_ros_offline_extract_bag_pcd_node
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/hesai/hesai_ros_offline_extract_bag_pcd_main.cpp
+)
+
+target_link_libraries(hesai_ros_offline_extract_bag_pcd_node PUBLIC
+ hesai_ros_offline_extract_bag_pcd
)
## Velodyne
# Extraction for TEST Lib
-ament_auto_add_library(velodyne_ros_offline_extract_bag_pcd SHARED
- ${CMAKE_CURRENT_SOURCE_DIR}/src/velodyne/velodyne_ros_offline_extract_bag_pcd.cpp
+add_library(velodyne_ros_offline_extract_bag_pcd SHARED
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/velodyne/velodyne_ros_offline_extract_bag_pcd.cpp
+)
+target_link_libraries(velodyne_ros_offline_extract_bag_pcd PUBLIC
+ nebula_decoders::nebula_decoders_velodyne
)
-target_link_libraries(velodyne_ros_offline_extract_bag_pcd ${PCL_LIBRARIES})
-ament_auto_add_executable(velodyne_ros_offline_extract_bag_pcd_node
- ${CMAKE_CURRENT_SOURCE_DIR}/src/velodyne/velodyne_ros_offline_extract_bag_pcd_main.cpp
+
+add_executable(velodyne_ros_offline_extract_bag_pcd_node
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/velodyne/velodyne_ros_offline_extract_bag_pcd_main.cpp
+)
+
+target_link_libraries(velodyne_ros_offline_extract_bag_pcd_node PUBLIC
+ velodyne_ros_offline_extract_bag_pcd
)
+
+#ament_auto_add_library(velodyne_ros_offline_extract_bag_pcd SHARED
+# ${CMAKE_CURRENT_SOURCE_DIR}/src/velodyne/velodyne_ros_offline_extract_bag_pcd.cpp
+#)
+#target_link_libraries(velodyne_ros_offline_extract_bag_pcd ${PCL_LIBRARIES})
+#ament_auto_add_executable(velodyne_ros_offline_extract_bag_pcd_node
+# ${CMAKE_CURRENT_SOURCE_DIR}/src/velodyne/velodyne_ros_offline_extract_bag_pcd_main.cpp
+#)
+
+
+
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
diff --git a/nebula_hw_interfaces/CMakeLists.txt b/nebula_hw_interfaces/CMakeLists.txt
index 32893d1f4..5754c3882 100644
--- a/nebula_hw_interfaces/CMakeLists.txt
+++ b/nebula_hw_interfaces/CMakeLists.txt
@@ -2,12 +2,27 @@ cmake_minimum_required(VERSION 3.14)
project(nebula_hw_interfaces)
find_package(ament_cmake_auto REQUIRED)
-find_package(PCL REQUIRED)
find_package(PCL REQUIRED COMPONENTS common)
-find_package(pcl_conversions REQUIRED)
-find_package(robosense_msgs REQUIRED)
+#find_package(pcl_conversions REQUIRED)
+find_package(boost_tcp_driver)
+find_package(boost_udp_driver)
+find_package(nebula_common)
+find_package(nebula_msgs)
+find_package(pandar_msgs)
+find_package(rclcpp)
+find_package(rclcpp_components)
+find_package(robosense_msgs)
+find_package(sensor_msgs)
+find_package(velodyne_msgs)
-ament_auto_find_build_dependencies()
+#ament_auto_find_build_dependencies() # this finds all components to it is slower
+
+message(STATUS "boost_tcp_driver_TARGETS : ${boost_tcp_driver_TARGETS}")
+message(STATUS "boost_tcp_driver_LIBRARIES : ${boost_tcp_driver_LIBRARIES}")
+message(STATUS "boost_tcp_driver_INCLUDE_DIRS : ${boost_tcp_driver_INCLUDE_DIRS}")
+message(STATUS "boost_udp_driver_TARGETS : ${boost_udp_driver_TARGETS}")
+message(STATUS "boost_udp_driver_LIBRARIES : ${boost_udp_driver_LIBRARIES}")
+message(STATUS "boost_udp_driver_INCLUDE_DIRS : ${boost_udp_driver_INCLUDE_DIRS}")
# Default to C++17
if (NOT CMAKE_CXX_STANDARD)
@@ -18,35 +33,125 @@ if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic -Wunused-function)
endif ()
+# Common includes for all targets
include_directories(
- include
- SYSTEM
- ${YAML_CPP_INCLUDE_DIRS}
- ${PCL_INCLUDE_DIRS}
- ${PCL_COMMON_INCLUDE_DIRS}
+ include
+ SYSTEM
+)
+
+set(common_include_dirs
+ ${nebula_common_INCLUDE_DIRS}
+ ${PCL_INCLUDE_DIRS}
+ ${PCL_COMMON_INCLUDE_DIRS}
+ ${rcl_INCLUDE_DIRS}
+ ${rclcpp_INCLUDE_DIRS}
+ ${rclcpp_components_INCLUDE_DIRS}
+ ${YAML_CPP_INCLUDE_DIRS}
)
-ament_auto_add_library(nebula_hw_interfaces_hesai SHARED
- src/nebula_hesai_hw_interfaces/hesai_hw_interface.cpp
- )
+set(common_targets
+ ${nebula_common_TARGETS}
+ ${rcl_TARGETS}
+ ${rclcpp_TARGETS}
+)
-ament_auto_add_library(nebula_hw_interfaces_velodyne SHARED
- src/nebula_velodyne_hw_interfaces/velodyne_hw_interface.cpp
- )
+add_library(nebula_hw_interfaces_hesai SHARED
+ src/nebula_hesai_hw_interfaces/hesai_hw_interface.cpp
+)
+target_link_libraries(nebula_hw_interfaces_hesai PUBLIC
+ ${boost_tcp_driver_LIBRARIES}
+ ${boost_udp_driver_LIBRARIES}
+ ${pandar_msgs_TARGETS}
+ ${common_targets}
+)
+
+target_include_directories(nebula_hw_interfaces_hesai PUBLIC
+ ${boost_tcp_driver_INCLUDE_DIRS}
+ ${boost_udp_driver_INCLUDE_DIRS}
+ ${pandar_msgs_INCLUDE_DIRS}
+ ${common_include_dirs}
+)
+
+add_library(nebula_hw_interfaces_velodyne SHARED
+ src/nebula_velodyne_hw_interfaces/velodyne_hw_interface.cpp
+)
+target_link_libraries(nebula_hw_interfaces_velodyne PUBLIC
+ ${boost_tcp_driver_LIBRARIES}
+ ${boost_udp_driver_LIBRARIES}
+ ${velodyne_msgs_TARGETS}
+ ${common_targets}
+)
+target_include_directories(nebula_hw_interfaces_velodyne PUBLIC
+ ${boost_udp_driver_INCLUDE_DIRS}
+ ${boost_tcp_driver_INCLUDE_DIRS}
+ ${velodyne_msgs_INCLUDE_DIRS}
+ ${common_include_dirs}
+)
-ament_auto_add_library(nebula_hw_interfaces_robosense SHARED
- src/nebula_robosense_hw_interfaces/robosense_hw_interface.cpp
- )
+add_library(nebula_hw_interfaces_robosense SHARED
+ src/nebula_robosense_hw_interfaces/robosense_hw_interface.cpp
+)
+target_link_libraries(nebula_hw_interfaces_robosense PUBLIC
+ ${boost_tcp_driver_LIBRARIES}
+ ${boost_udp_driver_LIBRARIES}
+ ${robosense_msgs_TARGETS}
+ ${common_targets}
+)
+target_include_directories(nebula_hw_interfaces_robosense PUBLIC
+ ${boost_udp_driver_INCLUDE_DIRS}
+ ${boost_tcp_driver_INCLUDE_DIRS}
+ ${robosense_msgs_INCLUDE_DIRS}
+ ${common_include_dirs}
+)
-ament_auto_add_library(nebula_hw_interfaces_continental SHARED
- src/nebula_continental_hw_interfaces/continental_ars548_hw_interface.cpp
- src/nebula_continental_hw_interfaces/multi_continental_ars548_hw_interface.cpp
- )
+add_library(nebula_hw_interfaces_continental SHARED
+ src/nebula_continental_hw_interfaces/continental_ars548_hw_interface.cpp
+ src/nebula_continental_hw_interfaces/multi_continental_ars548_hw_interface.cpp
+)
+target_link_libraries(nebula_hw_interfaces_continental PUBLIC
+ ${boost_udp_driver_LIBRARIES}
+ ${nebula_msgs_TARGETS}
+ ${common_targets}
+)
+target_include_directories(nebula_hw_interfaces_continental PUBLIC
+ ${boost_udp_driver_INCLUDE_DIRS}
+ ${nebula_msgs_INCLUDE_DIRS}
+ ${common_include_dirs}
+)
+install(TARGETS nebula_hw_interfaces_hesai EXPORT export_nebula_hw_interfaces_hesai)
+install(TARGETS nebula_hw_interfaces_velodyne EXPORT export_nebula_hw_interfaces_velodyne)
+install(TARGETS nebula_hw_interfaces_robosense EXPORT export_nebula_hw_interfaces_robosense)
+install(TARGETS nebula_hw_interfaces_continental EXPORT export_nebula_hw_interfaces_continental)
+install(DIRECTORY include/ DESTINATION include/${PROJECT_NAME})
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()
-ament_auto_package()
+ament_export_include_directories("include/${PROJECT_NAME}")
+ament_export_targets(export_nebula_hw_interfaces_hesai)
+ament_export_targets(export_nebula_hw_interfaces_velodyne)
+ament_export_targets(export_nebula_hw_interfaces_robosense)
+ament_export_targets(export_nebula_hw_interfaces_continental)
+
+# Need to consider this
+ament_export_dependencies(
+ PCL
+ boost_tcp_driver
+ boost_udp_driver
+ nebula_common
+ nebula_msgs
+ pandar_msgs
+ rcl
+ rclcpp
+ rclcpp_components
+ robosense_msgs
+ sensor_msgs
+ velodyne_msgs
+)
+
+
+#ament_auto_package() trying it without
+ament_package()
diff --git a/nebula_hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_continental/continental_ars548_hw_interface.hpp b/nebula_hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_continental/continental_ars548_hw_interface.hpp
index 3e150b18e..96653f9a8 100644
--- a/nebula_hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_continental/continental_ars548_hw_interface.hpp
+++ b/nebula_hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_continental/continental_ars548_hw_interface.hpp
@@ -24,8 +24,6 @@
#if (BOOST_VERSION / 100 == 1074) // Boost 1.74
#define BOOST_ALLOW_DEPRECATED_HEADERS
#endif
-#include
-#include
#include
#include
#include
diff --git a/nebula_hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_continental/multi_continental_ars548_hw_interface.hpp b/nebula_hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_continental/multi_continental_ars548_hw_interface.hpp
index b029ae40e..bd7d2e60f 100644
--- a/nebula_hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_continental/multi_continental_ars548_hw_interface.hpp
+++ b/nebula_hw_interfaces/include/nebula_hw_interfaces/nebula_hw_interfaces_continental/multi_continental_ars548_hw_interface.hpp
@@ -24,8 +24,6 @@
#if (BOOST_VERSION / 100 == 1074) // Boost 1.74
#define BOOST_ALLOW_DEPRECATED_HEADERS
#endif
-#include
-#include
#include
#include
#include
diff --git a/nebula_ros/CMakeLists.txt b/nebula_ros/CMakeLists.txt
index dd81e1ac0..639ba79f3 100644
--- a/nebula_ros/CMakeLists.txt
+++ b/nebula_ros/CMakeLists.txt
@@ -3,7 +3,7 @@ project(nebula_ros)
find_package(ament_cmake_auto REQUIRED)
-ament_auto_find_build_dependencies()
+#ament_auto_find_build_dependencies()
# Default to C++17
if (NOT CMAKE_CXX_STANDARD)
@@ -14,153 +14,427 @@ if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic -Wunused-function)
endif ()
-find_package(PCL REQUIRED)
+find_package(PCL REQUIRED components common)
+find_package(continental_msgs REQUIRED)
+find_package(continental_srvs REQUIRED)
find_package(pcl_conversions REQUIRED)
find_package(diagnostic_msgs REQUIRED)
find_package(diagnostic_updater REQUIRED)
find_package(nebula_common REQUIRED)
find_package(nebula_decoders REQUIRED)
find_package(nebula_hw_interfaces REQUIRED)
-find_package(yaml-cpp REQUIRED)
+find_package(nebula_msgs REQUIRED)
+find_package(radar_msgs REQUIRED)
+find_package(rclcpp_components REQUIRED)
find_package(robosense_msgs REQUIRED)
+find_package(tf2_eigen REQUIRED)
+find_package(tf2_msgs REQUIRED)
+find_package(tf2_ros REQUIRED)
+find_package(visualization_msgs REQUIRED)
+find_package(yaml-cpp REQUIRED)
+
+#get_cmake_property(_variableNames VARIABLES)
+#foreach(_variableName ${_variableNames})
+# message(STATUS "${_variableName}=${${_variableName}}")
+#endforeach()
+
+message(STATUS "continental_msgs_LIBRARIES:" ${continental_msgs_LIBRARIES})
+message(STATUS "continental_srvs_LIBRARIES: " ${continental_srvs_LIBRARIES})
+message(STATUS "nebula_hw_interfaces_LIBRARIES: " ${nebula_hw_interfaces_LIBRARIES})
+message(STATUS "nebula_decoders_LIBRARIES: " ${nebula_decoders_LIBRARIES})
+message(STATUS "nebula_msgs_LIBRARIES: " ${nebula_msgs_LIBRARIES})
+message(STATUS "PCL_LIBRARIES: " ${PCL_LIBRARIES})
+message(STATUS "radar_msgs_LIBRARIES: " ${radar_msgs_LIBRARIES})
+message(STATUS "rclcpp_LIBRARIES: " ${rclcpp_LIBRARIES})
+message(STATUS "rcl_LIBRARIES: " ${rcl_LIBRARIES})
+message(STATUS "rclcpp_components_LIBRARIES: " ${rclcpp_components_LIBRARIES})
+message(STATUS "tf2_eigen_LIBRARIES: " ${tf2_eigen_LIBRARIES})
+message(STATUS "tf2_msgs_LIBRARIES: " ${tf2_msgs_LIBRARIES})
+message(STATUS "====nebula_decoders::nebula_decoders_continental: " nebula_decoders::nebula_decoders_continental)
+message(STATUS "diagnostic_updater_TARGETS: ${diagnostic_updater_TARGETS}")
+message(STATUS "diagnostic_updater_LIBRARIES: ${diagnostic_updater_LIBRARIES}")
+message(STATUS "diagnostic_updater_INCLUDE_DIRS: ${diagnostic_updater_INCLUDE_DIRS}")
+
+#get_target_property(linked_libs nebula_decoders::nebula_decoders_continental INTERFACE_LINK_LIBRARIES)
+#message(STATUS "Libraries linked by MyPackage::Comp1: ${linked_libs}")
+
+message(STATUS " --- rcl_INCLUDE_DIRS : ${rcl_INCLUDE_DIRS}")
+message(STATUS " --- rclcpp_INCLUDE_DIRS : ${rclcpp_INCLUDE_DIRS}")
+message(STATUS " --- rclcpp_components_INCLUDE_DIRS : ${rclcpp_components_INCLUDE_DIRS}")
+message(STATUS " --- nebula_decoders_INCLUDE_DIRS : ${nebula_decoders_INCLUDE_DIRS}")
+message(STATUS " --- nebula_hw_interfaces_INCLUDE_DIRS : ${nebula_hw_interfaces_INCLUDE_DIRS}")
include_directories(
- include
- SYSTEM
- ${YAML_CPP_INCLUDE_DIRS}
- ${PCL_INCLUDE_DIRS}
- ${PCL_COMMON_INCLUDE_DIRS}
+ include
+ SYSTEM
+ ${nebula_common_INCLUDE_DIRS}
+ ${YAML_CPP_INCLUDE_DIRS}
+ ${PCL_INCLUDE_DIRS}
+ ${PCL_COMMON_INCLUDE_DIRS}
+ #${rcl_INCLUDE_DIRS}
+ #${rclcpp_INCLUDE_DIRS}
+ ${rclcpp_components_INCLUDE_DIRS}
)
-link_libraries(${YAML_CPP_LIBRARIES} ${PCL_LIBRARIES})
+#link_libraries(${YAML_CPP_LIBRARIES} ${PCL_LIBRARIES})
+
+link_libraries(
+ ${nebula_common_TARGETS}
+ ${rcl_TARGETS}
+ ${rclcpp_TARGETS}
+ # Consider rclcpp_components::component
+)
+
+
+
## Hesai
# Hw Interface
-ament_auto_add_library(hesai_hw_ros_wrapper SHARED
- src/hesai/hesai_hw_interface_ros_wrapper.cpp
- )
+add_library(hesai_hw_ros_wrapper SHARED
+ src/hesai/hesai_hw_interface_ros_wrapper.cpp
+)
+target_link_libraries(hesai_hw_ros_wrapper PUBLIC
+ ${pandar_msgs_TARGETS}
+ nebula_hw_interfaces::nebula_hw_interfaces_hesai
+)
+target_include_directories(hesai_hw_ros_wrapper PUBLIC
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${pandar_msgs_INCLUDE_DIRS}
+)
rclcpp_components_register_node(hesai_hw_ros_wrapper
- PLUGIN "HesaiHwInterfaceRosWrapper"
- EXECUTABLE hesai_hw_interface_ros_wrapper_node
- )
+ PLUGIN "HesaiHwInterfaceRosWrapper"
+ EXECUTABLE hesai_hw_interface_ros_wrapper_node
+)
# Monitor
-ament_auto_add_library(hesai_hw_monitor_ros_wrapper SHARED
- src/hesai/hesai_hw_monitor_ros_wrapper.cpp
- )
+add_library(hesai_hw_monitor_ros_wrapper SHARED
+ src/hesai/hesai_hw_monitor_ros_wrapper.cpp
+)
+target_link_libraries(hesai_hw_monitor_ros_wrapper PUBLIC
+ ${diagnostic_msgs_TARGETS}
+ ${diagnostic_updater_TARGETS}
+ ${pandar_msgs_TARGETS}
+ nebula_hw_interfaces::nebula_hw_interfaces_hesai
+)
+target_include_directories(hesai_hw_monitor_ros_wrapper PUBLIC
+ ${diagnostic_updater_INCLUDE_DIRS}
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${pandar_msgs_INCLUDE_DIRS}
+)
rclcpp_components_register_node(hesai_hw_monitor_ros_wrapper
- PLUGIN "HesaiHwMonitorRosWrapper"
- EXECUTABLE hesai_hw_monitor_ros_wrapper_node
- )
+ PLUGIN "HesaiHwMonitorRosWrapper"
+ EXECUTABLE hesai_hw_monitor_ros_wrapper_node
+)
# DriverDecoder
-ament_auto_add_library(hesai_driver_ros_wrapper SHARED
- src/hesai/hesai_decoder_ros_wrapper.cpp
- )
+add_library(hesai_driver_ros_wrapper SHARED
+ src/hesai/hesai_decoder_ros_wrapper.cpp
+)
+target_link_libraries(hesai_driver_ros_wrapper PUBLIC
+ ${pandar_msgs_TARGETS}
+ nebula_decoders::nebula_decoders_hesai
+ nebula_hw_interfaces::nebula_hw_interfaces_hesai
+)
+target_include_directories(hesai_driver_ros_wrapper PUBLIC
+ ${nebula_decoders_INCLUDE_DIRS}
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${pandar_msgs_INCLUDE_DIRS}
+)
rclcpp_components_register_node(hesai_driver_ros_wrapper
- PLUGIN "HesaiDriverRosWrapper"
- EXECUTABLE hesai_driver_ros_wrapper_node
- )
+ PLUGIN "HesaiDriverRosWrapper"
+ EXECUTABLE hesai_driver_ros_wrapper_node
+)
## Velodyne
# Hw Interface
-ament_auto_add_library(velodyne_hw_ros_wrapper SHARED
- src/velodyne/velodyne_hw_interface_ros_wrapper.cpp
- )
+add_library(velodyne_hw_ros_wrapper SHARED
+ src/velodyne/velodyne_hw_interface_ros_wrapper.cpp
+)
+target_link_libraries(velodyne_hw_ros_wrapper PUBLIC
+ ${velodyne_msgs_TARGETS}
+ nebula_hw_interfaces::nebula_hw_interfaces_velodyne
+)
+target_include_directories(velodyne_hw_ros_wrapper PUBLIC
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${velodyne_msgs_INCLUDE_DIRS}
+)
+
rclcpp_components_register_node(velodyne_hw_ros_wrapper
- PLUGIN "VelodyneHwInterfaceRosWrapper"
- EXECUTABLE velodyne_hw_ros_wrapper_node
- )
+ PLUGIN "VelodyneHwInterfaceRosWrapper"
+ EXECUTABLE velodyne_hw_ros_wrapper_node
+)
# Monitor
-ament_auto_add_library(velodyne_hw_monitor_ros_wrapper SHARED
- src/velodyne/velodyne_hw_monitor_ros_wrapper.cpp
- )
+add_library(velodyne_hw_monitor_ros_wrapper SHARED
+ src/velodyne/velodyne_hw_monitor_ros_wrapper.cpp
+)
+target_link_libraries(velodyne_hw_monitor_ros_wrapper PUBLIC
+ ${diagnostic_updater_TARGETS}
+ ${diagnostic_msgs_TARGETS}
+ ${velodyne_msgs_TARGETS}
+ nebula_hw_interfaces::nebula_hw_interfaces_velodyne
+)
+target_include_directories(velodyne_hw_monitor_ros_wrapper PUBLIC
+ ${diagnostic_updater_INCLUDE_DIRS}
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${velodyne_msgs_INCLUDE_DIRS}
+)
+
rclcpp_components_register_node(velodyne_hw_monitor_ros_wrapper
- PLUGIN "VelodyneHwMonitorRosWrapper"
- EXECUTABLE velodyne_hw_monitor_ros_wrapper_node
- )
+ PLUGIN "VelodyneHwMonitorRosWrapper"
+ EXECUTABLE velodyne_hw_monitor_ros_wrapper_node
+)
# DriverDecoder
-ament_auto_add_library(velodyne_driver_ros_wrapper SHARED
- src/velodyne/velodyne_decoder_ros_wrapper.cpp
- )
+add_library(velodyne_driver_ros_wrapper SHARED
+ src/velodyne/velodyne_decoder_ros_wrapper.cpp
+)
+target_link_libraries(velodyne_driver_ros_wrapper PUBLIC
+ ${velodyne_msgs_TARGETS}
+ nebula_decoders::nebula_decoders_velodyne
+ nebula_hw_interfaces::nebula_hw_interfaces_velodyne
+)
+target_include_directories(velodyne_driver_ros_wrapper PUBLIC
+ ${nebula_decoders_INCLUDE_DIRS}
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${velodyne_msgs_INCLUDE_DIRS}
+)
+
rclcpp_components_register_node(velodyne_driver_ros_wrapper
- PLUGIN "VelodyneDriverRosWrapper"
- EXECUTABLE velodyne_driver_ros_wrapper_node
- )
+ PLUGIN "VelodyneDriverRosWrapper"
+ EXECUTABLE velodyne_driver_ros_wrapper_node
+)
+
## Robosense
# Hw Interface
-ament_auto_add_library(robosense_hw_ros_wrapper SHARED
- src/robosense/robosense_hw_interface_ros_wrapper.cpp
- )
+add_library(robosense_hw_ros_wrapper SHARED
+ src/robosense/robosense_hw_interface_ros_wrapper.cpp
+)
+target_link_libraries(robosense_hw_ros_wrapper PUBLIC
+ ${robosense_msgs_TARGETS}
+ nebula_hw_interfaces::nebula_hw_interfaces_robosense
+)
+target_include_directories(robosense_hw_ros_wrapper PUBLIC
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${robosense_msgs_INCLUDE_DIRS}
+)
rclcpp_components_register_node(robosense_hw_ros_wrapper
- PLUGIN "RobosenseHwInterfaceRosWrapper"
- EXECUTABLE robosense_hw_interface_ros_wrapper_node
- )
+ PLUGIN "RobosenseHwInterfaceRosWrapper"
+ EXECUTABLE robosense_hw_interface_ros_wrapper_node
+)
# DriverDecoder
-ament_auto_add_library(robosense_driver_ros_wrapper SHARED
- src/robosense/robosense_decoder_ros_wrapper.cpp
- )
+add_library(robosense_driver_ros_wrapper SHARED
+ src/robosense/robosense_decoder_ros_wrapper.cpp
+)
+target_link_libraries(robosense_driver_ros_wrapper PUBLIC
+ ${robosense_msgs_TARGETS}
+ nebula_decoders::nebula_decoders_robosense
+ nebula_hw_interfaces::nebula_hw_interfaces_robosense
+)
+target_include_directories(robosense_driver_ros_wrapper PUBLIC
+ ${nebula_decoders_INCLUDE_DIRS}
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${robosense_msgs_INCLUDE_DIRS}
+)
rclcpp_components_register_node(robosense_driver_ros_wrapper
- PLUGIN "RobosenseDriverRosWrapper"
- EXECUTABLE robosense_driver_ros_wrapper_node
- )
+ PLUGIN "RobosenseDriverRosWrapper"
+ EXECUTABLE robosense_driver_ros_wrapper_node
+)
# Monitor
-ament_auto_add_library(robosense_hw_monitor_ros_wrapper SHARED
- src/robosense/robosense_hw_monitor_ros_wrapper.cpp
- )
+add_library(robosense_hw_monitor_ros_wrapper SHARED
+ src/robosense/robosense_hw_monitor_ros_wrapper.cpp
+)
+target_link_libraries(robosense_hw_monitor_ros_wrapper PUBLIC
+ ${diagnostic_updater_TARGETS}
+ ${diagnostic_msgs_TARGETS}
+ ${robosense_msgs_TARGETS}
+ nebula_decoders::nebula_decoders_robosense
+ nebula_hw_interfaces::nebula_hw_interfaces_robosense
+)
+target_include_directories(robosense_hw_monitor_ros_wrapper PUBLIC
+ ${diagnostic_updater_INCLUDE_DIRS}
+ ${nebula_decoders_INCLUDE_DIRS}
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${robosense_msgs_INCLUDE_DIRS}
+)
rclcpp_components_register_node(robosense_hw_monitor_ros_wrapper
- PLUGIN "RobosenseHwMonitorRosWrapper"
- EXECUTABLE robosense_hw_monitor_ros_wrapper_node
- )
+ PLUGIN "RobosenseHwMonitorRosWrapper"
+ EXECUTABLE robosense_hw_monitor_ros_wrapper_node
+)
+
## Continental
+
# Hw Interface
-ament_auto_add_library(continental_ars548_hw_ros_wrapper SHARED
- src/continental/continental_ars548_hw_interface_ros_wrapper.cpp
- )
+add_library(continental_ars548_hw_ros_wrapper SHARED
+ src/continental/continental_ars548_hw_interface_ros_wrapper.cpp
+)
+target_link_libraries(continental_ars548_hw_ros_wrapper PUBLIC
+ ${continental_msgs_TARGETS}
+ ${continental_srvs_TARGETS}
+ ${diagnostic_msgs_TARGETS}
+ ${nebula_msgs_TARGETS}
+ ${radar_msgs_TARGETS}
+ ${tf2_ros_TARGETS}
+ nebula_hw_interfaces::nebula_hw_interfaces_continental
+)
+target_include_directories(continental_ars548_hw_ros_wrapper PUBLIC
+ ${continental_msgs_INCLUDE_DIRS}
+ ${continental_srvs_INCLUDE_DIRS}
+ ${diagnostic_msgs_INCLUDE_DIRS}
+ ${nebula_msgs_INCLUDE_DIRS}
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${radar_msgs_INCLUDE_DIRS}
+ ${tf2_ros_INCLUDE_DIRS}
+)
+
+#ament_target_dependencies(continental_ars548_hw_ros_wrapper
+# continental_msgs
+# diagnostic_msgs
+# nebula_msgs
+# radar_msgs
+#)
+
rclcpp_components_register_node(continental_ars548_hw_ros_wrapper
PLUGIN "ContinentalARS548HwInterfaceRosWrapper"
EXECUTABLE continental_ars548_hw_interface_ros_wrapper_node
)
-ament_auto_add_library(multi_continental_ars548_hw_ros_wrapper SHARED
- src/continental/multi_continental_ars548_hw_interface_ros_wrapper.cpp
- )
+add_library(multi_continental_ars548_hw_ros_wrapper SHARED
+ src/continental/multi_continental_ars548_hw_interface_ros_wrapper.cpp
+)
+target_link_libraries(multi_continental_ars548_hw_ros_wrapper PUBLIC
+ ${continental_msgs_TARGETS}
+ ${diagnostic_msgs_TARGETS}
+ ${nebula_msgs_TARGETS}
+ ${radar_msgs_TARGETS}
+ ${tf2_ros_TARGETS}
+ nebula_hw_interfaces::nebula_hw_interfaces_continental
+)
+target_include_directories(multi_continental_ars548_hw_ros_wrapper PUBLIC
+ ${continental_msgs_INCLUDE_DIRS}
+ ${diagnostic_msgs_INCLUDE_DIRS}
+ ${nebula_msgs_INCLUDE_DIRS}
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${radar_msgs_INCLUDE_DIRS}
+ ${tf2_ros_INCLUDE_DIRS}
+)
+
+# Consider changing lin libraries and include directories to ament_target_dependencies
+#ament_target_dependencies(multi_continental_ars548_hw_ros_wrapper
+# continental_msgs
+# diagnostic_msgs
+# nebula_msgs
+# radar_msgs
+#)
+
rclcpp_components_register_node(multi_continental_ars548_hw_ros_wrapper
PLUGIN "MultiContinentalARS548HwInterfaceRosWrapper"
EXECUTABLE multi_continental_ars548_hw_interface_ros_wrapper_node
)
# DriverDecoder
-ament_auto_add_library(continental_ars548_driver_ros_wrapper SHARED
- src/continental/continental_ars548_decoder_ros_wrapper.cpp
- )
+add_library(continental_ars548_driver_ros_wrapper SHARED
+ src/continental/continental_ars548_decoder_ros_wrapper.cpp
+)
+target_link_libraries(continental_ars548_driver_ros_wrapper PUBLIC
+ ${continental_msgs_TARGETS}
+ ${diagnostic_msgs_TARGETS}
+ ${nebula_msgs_TARGETS}
+ ${radar_msgs_TARGETS}
+ ${tf2_ros_TARGETS}
+ ${visualization_msgs_TARGETS}
+ nebula_decoders::nebula_decoders_continental
+)
+target_include_directories(continental_ars548_driver_ros_wrapper PUBLIC
+ ${continental_msgs_INCLUDE_DIRS}
+ ${diagnostic_msgs_INCLUDE_DIRS}
+ ${nebula_msgs_INCLUDE_DIRS}
+ ${nebula_decoders_INCLUDE_DIRS}
+ ${radar_msgs_INCLUDE_DIRS}
+ ${rclcpp_components_INCLUDE_DIRS}
+ ${tf2_ros_INCLUDE_DIRS}
+ ${visualization_msgs_INCLUDE_DIRS}
+)
+
rclcpp_components_register_node(continental_ars548_driver_ros_wrapper
- PLUGIN "ContinentalARS548DriverRosWrapper"
- EXECUTABLE continental_ars548_driver_ros_wrapper_node
- )
+ PLUGIN "ContinentalARS548DriverRosWrapper"
+ EXECUTABLE continental_ars548_driver_ros_wrapper_node
+)
+
+install(TARGETS hesai_hw_ros_wrapper EXPORT export_hesai_hw_ros_wrapper)
+install(TARGETS hesai_hw_monitor_ros_wrapper EXPORT export_hesai_hw_monitor_ros_wrapper)
+install(TARGETS hesai_driver_ros_wrapper EXPORT export_hesai_driver_ros_wrapper)
+install(TARGETS velodyne_hw_ros_wrapper EXPORT export_velodyne_hw_ros_wrapper)
+install(TARGETS velodyne_hw_monitor_ros_wrapper EXPORT export_velodyne_hw_monitor_ros_wrapper)
+install(TARGETS velodyne_driver_ros_wrapper EXPORT export_velodyne_driver_ros_wrapper)
+install(TARGETS robosense_hw_ros_wrapper EXPORT export_robosense_hw_ros_wrapper)
+install(TARGETS robosense_hw_monitor_ros_wrapper EXPORT export_robosense_hw_monitor_ros_wrapper)
+install(TARGETS robosense_driver_ros_wrapper EXPORT export_robosense_driver_ros_wrapper)
+install(TARGETS continental_ars548_hw_ros_wrapper EXPORT export_continental_ars548_hw_ros_wrapper)
+install(TARGETS multi_continental_ars548_hw_ros_wrapper EXPORT export_multi_continental_ars548_hw_ros_wrapper)
+install(TARGETS continental_ars548_driver_ros_wrapper EXPORT export_continental_ars548_driver_ros_wrapper)
+install(DIRECTORY include/ DESTINATION include/${PROJECT_NAME})
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()
-ament_auto_package(
- INSTALL_TO_SHARE
- config
- launch
+ament_export_include_directories("include/${PROJECT_NAME}")
+ament_export_targets(export_hesai_hw_ros_wrapper)
+ament_export_targets(export_hesai_hw_monitor_ros_wrapper)
+ament_export_targets(export_hesai_driver_ros_wrapper)
+ament_export_targets(export_velodyne_hw_ros_wrapper)
+ament_export_targets(export_velodyne_hw_monitor_ros_wrapper)
+ament_export_targets(export_velodyne_driver_ros_wrapper)
+ament_export_targets(export_robosense_hw_ros_wrapper)
+ament_export_targets(export_robosense_hw_monitor_ros_wrapper)
+ament_export_targets(export_robosense_driver_ros_wrapper)
+ament_export_targets(export_continental_ars548_hw_ros_wrapper)
+ament_export_targets(export_multi_continental_ars548_hw_ros_wrapper)
+ament_export_targets(export_continental_ars548_driver_ros_wrapper)
+
+install(
+ DIRECTORY config launch
+ DESTINATION share/${PROJECT_NAME}
)
+ament_export_dependencies(
+ PCL
+ continental_msgs
+ continental_srvs
+ diagnostic_msgs
+ diagnostic_updater
+ nebula_common
+ nebula_decoders
+ nebula_hw_interfaces
+ nebula_msgs
+ pandar_msgs
+ pcl_conversions
+ radar_msgs
+ rcl
+ rclcpp
+ rclcpp_components
+ robosense_msgs
+ sensor_msgs
+ tf2_ros
+ velodyne_msgs
+ visualization_msgs
+ yaml-cpp
+)
+
+#ament_auto_package(
+ament_package()
+
set(ROS_DISTRO $ENV{ROS_DISTRO})
if(${ROS_DISTRO} STREQUAL "rolling")
add_compile_definitions(ROS_DISTRO_ROLLING)
diff --git a/nebula_ros/include/nebula_ros/continental/continental_ars548_decoder_ros_wrapper.hpp b/nebula_ros/include/nebula_ros/continental/continental_ars548_decoder_ros_wrapper.hpp
index 059388639..6af754e83 100644
--- a/nebula_ros/include/nebula_ros/continental/continental_ars548_decoder_ros_wrapper.hpp
+++ b/nebula_ros/include/nebula_ros/continental/continental_ars548_decoder_ros_wrapper.hpp
@@ -20,7 +20,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -79,7 +78,7 @@ class ContinentalARS548DriverRosWrapper final : public rclcpp::Node, NebulaDrive
std::shared_ptr
sensor_cfg_ptr_;
- drivers::continental_ars548::ContinentalARS548HwInterface hw_interface_;
+ // drivers::continental_ars548::ContinentalARS548HwInterface hw_interface_;
/// @brief Initializing ros wrapper
/// @param sensor_configuration SensorConfiguration for this driver
diff --git a/nebula_ros/package.xml b/nebula_ros/package.xml
index 87bc000c9..3716256fb 100644
--- a/nebula_ros/package.xml
+++ b/nebula_ros/package.xml
@@ -21,7 +21,7 @@
nebula_common
nebula_decoders
nebula_hw_interfaces
- pcl_conversions
+ pcl_ros
rclcpp
rclcpp_components
robosense_msgs
diff --git a/nebula_ros/src/continental/continental_ars548_decoder_ros_wrapper.cpp b/nebula_ros/src/continental/continental_ars548_decoder_ros_wrapper.cpp
index ecad7752f..896632710 100644
--- a/nebula_ros/src/continental/continental_ars548_decoder_ros_wrapper.cpp
+++ b/nebula_ros/src/continental/continental_ars548_decoder_ros_wrapper.cpp
@@ -22,14 +22,12 @@ namespace ros
{
ContinentalARS548DriverRosWrapper::ContinentalARS548DriverRosWrapper(
const rclcpp::NodeOptions & options)
-: rclcpp::Node("continental_ars548_driver_ros_wrapper", options), hw_interface_()
+: rclcpp::Node("continental_ars548_driver_ros_wrapper", options)
{
drivers::continental_ars548::ContinentalARS548SensorConfiguration sensor_configuration;
setvbuf(stdout, NULL, _IONBF, BUFSIZ);
- hw_interface_.SetLogger(std::make_shared(this->get_logger()));
-
wrapper_status_ = GetParameters(sensor_configuration);
if (Status::OK != wrapper_status_) {
RCLCPP_ERROR_STREAM(this->get_logger(), this->get_name() << " Error:" << wrapper_status_);
@@ -224,13 +222,6 @@ Status ContinentalARS548DriverRosWrapper::GetParameters(
return Status::INVALID_SENSOR_MODEL;
}
- std::shared_ptr sensor_cfg_ptr =
- std::make_shared(
- sensor_configuration);
-
- hw_interface_.SetSensorConfiguration(
- std::static_pointer_cast(sensor_cfg_ptr));
-
RCLCPP_INFO_STREAM(this->get_logger(), "SensorConfig:" << sensor_configuration);
return Status::OK;
}
diff --git a/nebula_tests/CMakeLists.txt b/nebula_tests/CMakeLists.txt
index ac8943890..65743b6f6 100644
--- a/nebula_tests/CMakeLists.txt
+++ b/nebula_tests/CMakeLists.txt
@@ -3,7 +3,7 @@ project(nebula_tests)
find_package(ament_cmake_auto REQUIRED)
-ament_auto_find_build_dependencies()
+#ament_auto_find_build_dependencies()
# Default to C++17
if (NOT CMAKE_CXX_STANDARD)
@@ -26,14 +26,20 @@ elseif(${ROS_DISTRO} STREQUAL "humble")
endif()
-find_package(PCL REQUIRED)
-find_package(rosbag2_cpp REQUIRED)
-find_package(pcl_conversions REQUIRED)
+find_package(PCL REQUIRED components common io)
+find_package(continental_msgs REQUIRED)
find_package(diagnostic_msgs REQUIRED)
find_package(diagnostic_updater REQUIRED)
find_package(nebula_common REQUIRED)
find_package(nebula_decoders REQUIRED)
find_package(nebula_hw_interfaces REQUIRED)
+find_package(nebula_msgs REQUIRED)
+find_package(nebula_ros REQUIRED)
+find_package(pcl_conversions REQUIRED)
+find_package(rclcpp REQUIRED)
+find_package(rclcpp_components REQUIRED)
+find_package(rosbag2_cpp REQUIRED)
+
if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
@@ -45,15 +51,62 @@ if(BUILD_TESTING)
# TODO: FIX this path to point to nebula_decoders/calibration
add_definitions(-D_SRC_CALIBRATION_DIR_PATH="${PROJECT_SOURCE_DIR}/../nebula_decoders/calibration/")
- set(NEBULA_TEST_DEPENDENCIES
- rclcpp
- rosbag2_cpp
- continental_msgs
- nebula_msgs
- pandar_msgs
- velodyne_msgs
- )
+ set(NEBULA_TEST_INCLUDE_DIRS
+ ${continental_msgs_INCLUDE_DIRS}
+ ${diagnostic_msgs_INCLUDE_DIRS}
+ ${diagnostic_updater_INCLUDE_DIRS}
+ ${nebula_common_INCLUDE_DIRS}
+ ${nebula_decoders_INCLUDE_DIRS}
+ ${nebula_hw_interfaces_INCLUDE_DIRS}
+ ${nebula_msgs_INCLUDE_DIRS}
+ ${nebula_ros_INCLUDE_DIRS}
+ ${pcl_conversions_INCLUDE_DIRS}
+ ${rclcpp_INCLUDE_DIRS}
+ ${rclcpp_components_INCLUDE_DIRS}
+ ${rosbag2_cpp_INCLUDE_DIRS}
+ )
+
+ set(NEBULA_TEST_LIBRARIES
+ #${continental_msgs_TARGETS}
+ ${diagnostic_msgs_TARGETS}
+ ${diagnostic_updater_TARGETS}
+ ${nebula_common_TARGETS}
+ #${nebula_decoders_TARGETS}
+ #${nebula_hw_interfaces_TARGETS}
+ #${nebula_msgs_TARGETS}
+ #${nebula_ros_TARGETS}
+ ${pcl_conversions_LIBRARIES}
+ ${rclcpp_TARGETS}
+ ${rclcpp_components_TARGETS}
+ ${rosbag2_cpp_TARGETS}
+ )
+
+ set(CONTINENTAL_TEST_LIBRARIES
+ ${NEBULA_TEST_LIBRARIES}
+ ${continental_msgs_TARGETS}
+ ${nebula_msgs_TARGETS}
+ nebula_hw_interfaces::nebula_hw_interfaces_continental
+ nebula_decoders::nebula_decoders_continental
+ )
+
+ set(HESAI_TEST_LIBRARIES
+ ${NEBULA_TEST_LIBRARIES}
+ nebula_hw_interfaces::nebula_hw_interfaces_hesai
+ nebula_decoders::nebula_decoders_hesai
+ )
+
+ set(VELODYNE_TEST_LIBRARIES
+ ${NEBULA_TEST_LIBRARIES}
+ nebula_hw_interfaces::nebula_hw_interfaces_velodyne
+ nebula_decoders::nebula_decoders_velodyne
+ )
+
+ message(STATUS "========== | NEBULA_TEST_LIBRARIES: ${NEBULA_TEST_LIBRARIES}")
+ #foreach(package ${NEBULA_TEST_DEPENDENCIES})
+ # message(STATUS "LIBRARIES for ${package}: ${${package}_LIBRARIES}")
+ # message(STATUS "TARGETS for ${package}: ${${package}_TARGETS}")
+ #endforeach()
add_subdirectory(continental)
add_subdirectory(hesai)
diff --git a/nebula_tests/continental/CMakeLists.txt b/nebula_tests/continental/CMakeLists.txt
index 44daf8813..c8250bce5 100644
--- a/nebula_tests/continental/CMakeLists.txt
+++ b/nebula_tests/continental/CMakeLists.txt
@@ -1,20 +1,27 @@
# Continental ARS548
-ament_auto_add_library(continental_ros_decoder_test_ars548 SHARED
-continental_ros_decoder_test_ars548.cpp
- )
+add_library(continental_ros_decoder_test_ars548 SHARED
+ continental_ros_decoder_test_ars548.cpp
+)
+
+target_include_directories(continental_ros_decoder_test_ars548 PUBLIC
+ ${NEBULA_TEST_INCLUDE_DIRS}
+)
+
+target_link_libraries(continental_ros_decoder_test_ars548
+ ${PCL_LIBRARIES}
+ ${CONTINENTAL_TEST_LIBRARIES}
+)
+
ament_add_gtest(continental_ros_decoder_test_main_ars548
-continental_ros_decoder_test_main_ars548.cpp
- )
-target_link_libraries(continental_ros_decoder_test_ars548 ${PCL_LIBRARIES} ${NEBULA_TEST_LIBRARIES})
+ continental_ros_decoder_test_main_ars548.cpp
+)
-ament_target_dependencies(continental_ros_decoder_test_main_ars548
- ${NEBULA_TEST_DEPENDENCIES}
- )
target_include_directories(continental_ros_decoder_test_main_ars548 PUBLIC
- ${PROJECT_SOURCE_DIR}/src/continental
- include
- )
+ ${PROJECT_SOURCE_DIR}/src/continental
+ include
+ ${NEBULA_TEST_INCLUDE_DIRS}
+)
target_link_libraries(continental_ros_decoder_test_main_ars548
- ${PCL_LIBRARIES}
- continental_ros_decoder_test_ars548
- )
+ ${PCL_LIBRARIES}
+ continental_ros_decoder_test_ars548
+)
diff --git a/nebula_tests/hesai/CMakeLists.txt b/nebula_tests/hesai/CMakeLists.txt
index 8a06fd07f..ffb49010c 100644
--- a/nebula_tests/hesai/CMakeLists.txt
+++ b/nebula_tests/hesai/CMakeLists.txt
@@ -1,22 +1,25 @@
-ament_auto_add_library(hesai_ros_decoder_test SHARED
- hesai_ros_decoder_test.cpp
- )
-target_link_libraries(hesai_ros_decoder_test ${PCL_LIBRARIES} ${NEBULA_TEST_LIBRARIES})
-ament_add_gtest(hesai_ros_decoder_test_main
- hesai_ros_decoder_test_main.cpp
- )
+add_library(hesai_ros_decoder_test SHARED
+ hesai_ros_decoder_test.cpp
+)
+target_include_directories(hesai_ros_decoder_test PUBLIC
+ ${NEBULA_TEST_INCLUDE_DIRS}
+)
+target_link_libraries(hesai_ros_decoder_test
+ ${PCL_LIBRARIES}
+ ${HESAI_TEST_LIBRARIES})
-ament_target_dependencies(hesai_ros_decoder_test_main
- ${NEBULA_TEST_DEPENDENCIES}
- )
+ament_add_gtest(hesai_ros_decoder_test_main
+ hesai_ros_decoder_test_main.cpp
+)
target_include_directories(hesai_ros_decoder_test_main PUBLIC
- ${PROJECT_SOURCE_DIR}/src/hesai
- include
- )
+ ${PROJECT_SOURCE_DIR}/src/hesai
+ include
+ ${NEBULA_TEST_INCLUDE_DIRS}
+)
target_link_libraries(hesai_ros_decoder_test_main
- ${PCL_LIBRARIES}
- hesai_ros_decoder_test
- )
+ ${PCL_LIBRARIES}
+ hesai_ros_decoder_test
+)
diff --git a/nebula_tests/velodyne/CMakeLists.txt b/nebula_tests/velodyne/CMakeLists.txt
index f166997bd..ed4522ee6 100644
--- a/nebula_tests/velodyne/CMakeLists.txt
+++ b/nebula_tests/velodyne/CMakeLists.txt
@@ -1,62 +1,82 @@
# Velodyne VLP16
-ament_auto_add_library(velodyne_ros_decoder_test_vlp16 SHARED
- velodyne_ros_decoder_test_vlp16.cpp
- )
-target_link_libraries(velodyne_ros_decoder_test_vlp16 ${PCL_LIBRARIES} ${NEBULA_TEST_LIBRARIES})
+
+add_library(velodyne_ros_decoder_test_vlp16 SHARED
+ velodyne_ros_decoder_test_vlp16.cpp
+)
+target_include_directories(velodyne_ros_decoder_test_vlp16 PUBLIC
+ ${NEBULA_TEST_INCLUDE_DIRS}
+)
+target_link_libraries(velodyne_ros_decoder_test_vlp16
+ ${PCL_LIBRARIES}
+ ${VELODYNE_TEST_LIBRARIES})
ament_add_gtest(velodyne_ros_decoder_test_main_vlp16
- velodyne_ros_decoder_test_main_vlp16.cpp
- )
+ velodyne_ros_decoder_test_main_vlp16.cpp
+)
ament_target_dependencies(velodyne_ros_decoder_test_main_vlp16
- ${NEBULA_TEST_DEPENDENCIES}
- )
+ ${NEBULA_TEST_DEPENDENCIES}
+)
target_include_directories(velodyne_ros_decoder_test_main_vlp16 PUBLIC
- ${PROJECT_SOURCE_DIR}/src/velodyne
- include
- )
+ ${PROJECT_SOURCE_DIR}/src/velodyne
+ include
+ ${NEBULA_TEST_INCLUDE_DIRS}
+)
target_link_libraries(velodyne_ros_decoder_test_main_vlp16
- ${PCL_LIBRARIES}
- velodyne_ros_decoder_test_vlp16
- )
+ ${PCL_LIBRARIES}
+ velodyne_ros_decoder_test_vlp16
+)
# Velodyne VLS128
-ament_auto_add_library(velodyne_ros_decoder_test_vls128 SHARED
- velodyne_ros_decoder_test_vls128.cpp
- )
+add_library(velodyne_ros_decoder_test_vls128 SHARED
+ velodyne_ros_decoder_test_vls128.cpp
+)
+target_include_directories(velodyne_ros_decoder_test_vls128 PUBLIC
+ ${NEBULA_TEST_INCLUDE_DIRS}
+)
ament_add_gtest(velodyne_ros_decoder_test_main_vls128
- velodyne_ros_decoder_test_main_vls128.cpp
- )
-target_link_libraries(velodyne_ros_decoder_test_vls128 ${PCL_LIBRARIES} ${NEBULA_TEST_LIBRARIES})
+ velodyne_ros_decoder_test_main_vls128.cpp
+)
+target_link_libraries(velodyne_ros_decoder_test_vls128
+ ${PCL_LIBRARIES}
+ ${VELODYNE_TEST_LIBRARIES})
-ament_target_dependencies(velodyne_ros_decoder_test_main_vls128
- ${NEBULA_TEST_DEPENDENCIES}
- )
+#ament_target_dependencies(velodyne_ros_decoder_test_main_vls128
+# ${NEBULA_TEST_DEPENDENCIES}
+#)
target_include_directories(velodyne_ros_decoder_test_main_vls128 PUBLIC
- ${PROJECT_SOURCE_DIR}/src/velodyne
- include
- )
+ ${PROJECT_SOURCE_DIR}/src/velodyne
+ include
+ ${NEBULA_TEST_INCLUDE_DIRS}
+)
target_link_libraries(velodyne_ros_decoder_test_main_vls128
- ${PCL_LIBRARIES}
- velodyne_ros_decoder_test_vls128
- )
+ ${PCL_LIBRARIES}
+ velodyne_ros_decoder_test_vls128
+)
# Velodyne VLP32
-ament_auto_add_library(velodyne_ros_decoder_test_vlp32 SHARED
-velodyne_ros_decoder_test_vlp32.cpp
+add_library(velodyne_ros_decoder_test_vlp32 SHARED
+ velodyne_ros_decoder_test_vlp32.cpp
+)
+target_include_directories(velodyne_ros_decoder_test_vlp32 PUBLIC
+ ${NEBULA_TEST_INCLUDE_DIRS}
+)
+target_link_libraries(velodyne_ros_decoder_test_vlp32
+ ${PCL_LIBRARIES}
+ ${VELODYNE_TEST_LIBRARIES}
)
-target_link_libraries(velodyne_ros_decoder_test_vlp32 ${PCL_LIBRARIES} ${NEBULA_TEST_LIBRARIES})
ament_add_gtest(velodyne_ros_decoder_test_main_vlp32
-velodyne_ros_decoder_test_main_vlp32.cpp
-)
-ament_target_dependencies(velodyne_ros_decoder_test_main_vlp32
-${NEBULA_TEST_DEPENDENCIES}
+ velodyne_ros_decoder_test_main_vlp32.cpp
)
+#ament_target_dependencies(velodyne_ros_decoder_test_main_vlp32
+# ${NEBULA_TEST_DEPENDENCIES}
+#)
target_include_directories(velodyne_ros_decoder_test_main_vlp32 PUBLIC
-${PROJECT_SOURCE_DIR}/src/velodyne
-include
+ ${PROJECT_SOURCE_DIR}/src/velodyne
+ include
+ ${NEBULA_TEST_INCLUDE_DIRS}
)
target_link_libraries(velodyne_ros_decoder_test_main_vlp32
-${PCL_LIBRARIES}
-velodyne_ros_decoder_test_vlp32
-)
\ No newline at end of file
+ ${PCL_LIBRARIES}
+ velodyne_ros_decoder_test_vlp32
+)