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 +)