diff --git a/.github/workflows/ros2_lyrical.yml b/.github/workflows/ros2_lyrical.yml new file mode 100644 index 0000000..2291669 --- /dev/null +++ b/.github/workflows/ros2_lyrical.yml @@ -0,0 +1,20 @@ +name: ros2_lyrical + +on: + push: + branches: + - 'main' + pull_request: + branches: + - 'main' + workflow_dispatch: + branches: + - '*' + +jobs: + lyrical: + name: ros2-lyrical + uses: ./.github/workflows/ros2_template.yml + with: + docker_base_image: rostooling/setup-ros-docker:ubuntu-resolute-latest + ros_distro: lyrical diff --git a/README.md b/README.md index 5d1383c..2157e20 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,7 @@ colcon build | ------ | -- | ------------ | ----- | ----- | | Humble | Ubuntu 22.04 | x86\_64 | [![ros2-humble build](https://img.shields.io/github/check-runs/uos/rmcl/main?checkName=ros2-humble%20%2F%20build)](https://github.com/uos/rmcl/actions/workflows/ros2_humble.yml) | [![ros2-humble tests](https://img.shields.io/github/check-runs/uos/rmcl/main?checkName=ros2-humble%20%2F%20tests)](https://github.com/uos/rmcl/actions/workflows/ros2_humble.yml) | | Jazzy | Ubuntu 24.04 | x86\_64 | [![ros2-jazzy build](https://img.shields.io/github/check-runs/uos/rmcl/main?checkName=ros2-jazzy%20%2F%20build)](https://github.com/uos/rmcl/actions/workflows/ros2_jazzy.yml) | [![ros2-jazzy tests](https://img.shields.io/github/check-runs/uos/rmcl/main?checkName=ros2-jazzy%20%2F%20tests)](https://github.com/uos/rmcl/actions/workflows/ros2_jazzy.yml) | +| Lyrical | Ubuntu 26.04 | x86\_64 | [![ros2-lyrical build](https://img.shields.io/github/check-runs/uos/rmcl/main?checkName=ros2-lyrical%20%2F%20build)](https://github.com/uos/rmcl/actions/workflows/ros2_lyrical.yml) | [![ros2-lyrical tests](https://img.shields.io/github/check-runs/uos/rmcl/main?checkName=ros2-lyrical%20%2F%20tests)](https://github.com/uos/rmcl/actions/workflows/ros2_lyrical.yml) | ## Mesh Navigation diff --git a/rmcl_ros/CMakeLists.txt b/rmcl_ros/CMakeLists.txt index 7730ec5..cfb0064 100644 --- a/rmcl_ros/CMakeLists.txt +++ b/rmcl_ros/CMakeLists.txt @@ -41,6 +41,7 @@ find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(geometry_msgs REQUIRED) find_package(sensor_msgs REQUIRED) +find_package(tf2 REQUIRED) find_package(tf2_ros REQUIRED) find_package(rmcl_msgs REQUIRED) find_package(image_transport REQUIRED) @@ -109,19 +110,18 @@ target_include_directories(rmcl_ros PUBLIC $ $) -target_link_libraries(rmcl_ros +target_link_libraries(rmcl_ros PUBLIC rmcl rmagine::core -) - -ament_target_dependencies(rmcl_ros - rclcpp - sensor_msgs - rmcl_msgs - geometry_msgs - tf2_ros - visualization_msgs - std_srvs + # ROS + rclcpp::rclcpp + ${sensor_msgs_TARGETS} + ${rmcl_msgs_TARGETS} + ${geometry_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${visualization_msgs_TARGETS} + ${std_srvs_TARGETS} ) install(TARGETS rmcl_ros @@ -142,20 +142,19 @@ if(TARGET rmcl-embree) $ $) - target_link_libraries(rmcl_embree_ros + target_link_libraries(rmcl_embree_ros PUBLIC rmcl-embree rmagine::core rmagine::embree - ) - - ament_target_dependencies(rmcl_embree_ros - rclcpp - sensor_msgs - rmcl_msgs - geometry_msgs - tf2_ros - visualization_msgs - std_srvs + # ROS + rclcpp::rclcpp + ${sensor_msgs_TARGETS} + ${rmcl_msgs_TARGETS} + ${geometry_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${visualization_msgs_TARGETS} + ${std_srvs_TARGETS} ) install(TARGETS rmcl_embree_ros @@ -215,19 +214,18 @@ if(RMCL_CUDA) $ $ ) - target_link_libraries(rmcl_ros_cuda + target_link_libraries(rmcl_ros_cuda PUBLIC rmcl_ros rmcl-cuda rmagine::cuda - ) - - ament_target_dependencies(rmcl_ros_cuda - rclcpp - sensor_msgs - rmcl_msgs - geometry_msgs - tf2_ros - std_srvs + # ROS + rclcpp::rclcpp + ${sensor_msgs_TARGETS} + ${rmcl_msgs_TARGETS} + ${geometry_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${std_srvs_TARGETS} ) install(TARGETS rmcl_ros_cuda @@ -380,22 +378,21 @@ if(RMCL_CUDA) $ $) - target_link_libraries(rmcl_ros_optix + target_link_libraries(rmcl_ros_optix PUBLIC rmcl rmcl_ros rmcl-cuda rmcl_ros_cuda rmcl-optix rmagine::optix - ) - - ament_target_dependencies(rmcl_ros_optix - rclcpp - sensor_msgs - rmcl_msgs - geometry_msgs - tf2_ros - std_srvs + # ROS + rclcpp::rclcpp + ${sensor_msgs_TARGETS} + ${rmcl_msgs_TARGETS} + ${geometry_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${std_srvs_TARGETS} ) install(TARGETS rmcl_ros_optix @@ -421,47 +418,46 @@ target_include_directories(micp_localization $ $) -target_link_libraries(micp_localization +target_link_libraries(micp_localization PUBLIC rmcl_ros rmagine::core + # ROS + rclcpp::rclcpp + ${rclcpp_components_TARGETS} + ${geometry_msgs_TARGETS} + ${sensor_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${rmcl_msgs_TARGETS} + ${image_transport_TARGETS} + ${visualization_msgs_TARGETS} + ${std_srvs_TARGETS} ) if(RMCL_EMBREE) - target_link_libraries(micp_localization + target_link_libraries(micp_localization PUBLIC rmcl-embree ) endif(RMCL_EMBREE) if(RMCL_CUDA) - target_link_libraries(micp_localization + target_link_libraries(micp_localization PUBLIC rmcl_ros_cuda ) endif(RMCL_CUDA) if(RMCL_OPTIX) - target_link_libraries(micp_localization + target_link_libraries(micp_localization PUBLIC rmcl-optix ) endif(RMCL_OPTIX) if(RMCL_VULKAN) - target_link_libraries(micp_localization + target_link_libraries(micp_localization PUBLIC rmcl-vulkan ) endif(RMCL_VULKAN) -ament_target_dependencies(micp_localization - rclcpp - rclcpp_components - geometry_msgs - sensor_msgs - tf2_ros - rmcl_msgs - image_transport - visualization_msgs - std_srvs -) - rclcpp_components_register_node(micp_localization PLUGIN "rmcl::MICPLocalizationNode" EXECUTABLE micp_localization_node) @@ -478,21 +474,19 @@ add_library(conv_pc2_to_scan SHARED src/nodes/conversion/pc2_to_scan.cpp) ## Specify libraries to link a library or executable target against -target_link_libraries(conv_pc2_to_scan +target_link_libraries(conv_pc2_to_scan PUBLIC rmcl_ros -) - -ament_target_dependencies(conv_pc2_to_scan - rclcpp - rclcpp_components - geometry_msgs - sensor_msgs - tf2 - tf2_ros - rmcl_msgs - image_transport - visualization_msgs - std_srvs + # ROS + rclcpp::rclcpp + ${rclcpp_components_TARGETS} + ${geometry_msgs_TARGETS} + ${sensor_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${rmcl_msgs_TARGETS} + ${image_transport_TARGETS} + ${visualization_msgs_TARGETS} + ${std_srvs_TARGETS} ) rclcpp_components_register_node(conv_pc2_to_scan @@ -512,20 +506,19 @@ add_library(conv_pc2_to_o1dn SHARED src/nodes/conversion/pc2_to_o1dn.cpp) ## Specify libraries to link a library or executable target against -target_link_libraries(conv_pc2_to_o1dn +target_link_libraries(conv_pc2_to_o1dn PUBLIC rmcl_ros -) - -ament_target_dependencies(conv_pc2_to_o1dn - rclcpp - rclcpp_components - geometry_msgs - sensor_msgs - tf2 - tf2_ros - rmcl_msgs - image_transport - visualization_msgs + # ROS + rclcpp::rclcpp + ${rclcpp_components_TARGETS} + ${geometry_msgs_TARGETS} + ${sensor_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${rmcl_msgs_TARGETS} + ${image_transport_TARGETS} + ${visualization_msgs_TARGETS} + ${std_srvs_TARGETS} ) rclcpp_components_register_node(conv_pc2_to_o1dn @@ -544,21 +537,19 @@ add_library(conv_scan_to_scan SHARED src/nodes/conversion/scan_to_scan.cpp) ## Specify libraries to link a library or executable target against -target_link_libraries(conv_scan_to_scan +target_link_libraries(conv_scan_to_scan PUBLIC rmcl_ros -) - -ament_target_dependencies(conv_scan_to_scan - rclcpp - rclcpp_components - geometry_msgs - sensor_msgs - tf2 - tf2_ros - rmcl_msgs - image_transport - visualization_msgs - std_srvs + # ROS + rclcpp::rclcpp + ${rclcpp_components_TARGETS} + ${geometry_msgs_TARGETS} + ${sensor_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${rmcl_msgs_TARGETS} + ${image_transport_TARGETS} + ${visualization_msgs_TARGETS} + ${std_srvs_TARGETS} ) rclcpp_components_register_node(conv_scan_to_scan @@ -617,17 +608,17 @@ add_library(map_segmentation SHARED src/nodes/filter/map_segmentation.cpp ) -ament_target_dependencies(map_segmentation - rclcpp - rclcpp_components - geometry_msgs - sensor_msgs - tf2 - tf2_ros - rmcl_msgs - image_transport - visualization_msgs - std_srvs +target_link_libraries(map_segmentation PUBLIC + rclcpp::rclcpp + ${rclcpp_components_TARGETS} + ${geometry_msgs_TARGETS} + ${sensor_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${rmcl_msgs_TARGETS} + ${image_transport_TARGETS} + ${visualization_msgs_TARGETS} + ${std_srvs_TARGETS} ) install(TARGETS @@ -643,20 +634,19 @@ if(TARGET rmcl-embree) add_library(o1dn_map_segmentation_embree SHARED src/nodes/filter/o1dn_map_segmentation_embree.cpp) -target_link_libraries(o1dn_map_segmentation_embree +target_link_libraries(o1dn_map_segmentation_embree PUBLIC rmcl_ros rmcl-embree map_segmentation -) - -ament_target_dependencies(o1dn_map_segmentation_embree - rclcpp - rclcpp_components - geometry_msgs - sensor_msgs - tf2_ros - rmcl_msgs - std_srvs + # ROS + rclcpp::rclcpp + ${rclcpp_components_TARGETS} + ${geometry_msgs_TARGETS} + ${sensor_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${rmcl_msgs_TARGETS} + ${std_srvs_TARGETS} ) rclcpp_components_register_node(o1dn_map_segmentation_embree @@ -673,20 +663,19 @@ install(TARGETS add_library(scan_map_segmentation_embree SHARED src/nodes/filter/scan_map_segmentation_embree.cpp) -target_link_libraries(scan_map_segmentation_embree +target_link_libraries(scan_map_segmentation_embree PUBLIC rmcl_ros rmcl-embree map_segmentation -) - -ament_target_dependencies(scan_map_segmentation_embree - rclcpp - rclcpp_components - geometry_msgs - sensor_msgs - tf2_ros - rmcl_msgs - std_srvs + # ROS + rclcpp::rclcpp + ${rclcpp_components_TARGETS} + ${geometry_msgs_TARGETS} + ${sensor_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${rmcl_msgs_TARGETS} + ${std_srvs_TARGETS} ) rclcpp_components_register_node(scan_map_segmentation_embree @@ -720,28 +709,38 @@ target_include_directories(rmcl_localization $ $) -target_link_libraries(rmcl_localization +target_link_libraries(rmcl_localization PUBLIC rmcl_ros Eigen3::Eigen rmagine::core rmagine::embree + # ROS + rclcpp::rclcpp + ${rclcpp_components_TARGETS} + ${geometry_msgs_TARGETS} + ${sensor_msgs_TARGETS} + ${tf2_TARGETS} + ${tf2_ros_TARGETS} + ${visualization_msgs_TARGETS} + ${rmcl_msgs_TARGETS} + ${std_srvs_TARGETS} ) if(RMCL_EMBREE) - target_link_libraries(rmcl_localization + target_link_libraries(rmcl_localization PUBLIC rmcl-embree rmcl_embree_ros ) endif(RMCL_EMBREE) if(RMCL_CUDA) - target_link_libraries(rmcl_localization + target_link_libraries(rmcl_localization PUBLIC rmcl-cuda ) endif(RMCL_CUDA) if(RMCL_OPTIX) - target_link_libraries(rmcl_localization + target_link_libraries(rmcl_localization PUBLIC rmcl_ros_cuda rmcl-cuda rmcl_ros_optix @@ -749,15 +748,6 @@ if(RMCL_OPTIX) ) endif(RMCL_OPTIX) -ament_target_dependencies(rmcl_localization - rclcpp - rclcpp_components - geometry_msgs - sensor_msgs - tf2_ros - visualization_msgs -) - rclcpp_components_register_node(rmcl_localization PLUGIN "rmcl::RmclNode" EXECUTABLE rmcl_localization_node) install(TARGETS @@ -792,4 +782,4 @@ ament_export_dependencies(rclcpp visualization_msgs std_srvs) -ament_package() +ament_package() \ No newline at end of file diff --git a/rmcl_ros/include/rmcl_ros/micpl/MICPO1DnSensorCPU.hpp b/rmcl_ros/include/rmcl_ros/micpl/MICPO1DnSensorCPU.hpp index dcde6fc..bd2c114 100644 --- a/rmcl_ros/include/rmcl_ros/micpl/MICPO1DnSensorCPU.hpp +++ b/rmcl_ros/include/rmcl_ros/micpl/MICPO1DnSensorCPU.hpp @@ -11,14 +11,14 @@ #include -#include -#include -#include "tf2_ros/transform_broadcaster.h" -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include + +#include #include #include diff --git a/rmcl_ros/include/rmcl_ros/micpl/MICPO1DnSensorCUDA.hpp b/rmcl_ros/include/rmcl_ros/micpl/MICPO1DnSensorCUDA.hpp index 94a3459..d09d37e 100644 --- a/rmcl_ros/include/rmcl_ros/micpl/MICPO1DnSensorCUDA.hpp +++ b/rmcl_ros/include/rmcl_ros/micpl/MICPO1DnSensorCUDA.hpp @@ -7,14 +7,14 @@ #include #include -#include -#include -#include "tf2_ros/transform_broadcaster.h" -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include + +#include #include #include diff --git a/rmcl_ros/include/rmcl_ros/micpl/MICPOnDnSensorCPU.hpp b/rmcl_ros/include/rmcl_ros/micpl/MICPOnDnSensorCPU.hpp index f32a078..c08181d 100644 --- a/rmcl_ros/include/rmcl_ros/micpl/MICPOnDnSensorCPU.hpp +++ b/rmcl_ros/include/rmcl_ros/micpl/MICPOnDnSensorCPU.hpp @@ -11,14 +11,14 @@ #include -#include -#include -#include "tf2_ros/transform_broadcaster.h" -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include + +#include #include #include diff --git a/rmcl_ros/include/rmcl_ros/micpl/MICPOnDnSensorCUDA.hpp b/rmcl_ros/include/rmcl_ros/micpl/MICPOnDnSensorCUDA.hpp index 7f2a62b..ed62a39 100644 --- a/rmcl_ros/include/rmcl_ros/micpl/MICPOnDnSensorCUDA.hpp +++ b/rmcl_ros/include/rmcl_ros/micpl/MICPOnDnSensorCUDA.hpp @@ -7,14 +7,14 @@ #include #include -#include -#include -#include "tf2_ros/transform_broadcaster.h" -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include + +#include #include #include diff --git a/rmcl_ros/include/rmcl_ros/micpl/MICPPinholeSensorCPU.hpp b/rmcl_ros/include/rmcl_ros/micpl/MICPPinholeSensorCPU.hpp index 931fc52..f8895d9 100644 --- a/rmcl_ros/include/rmcl_ros/micpl/MICPPinholeSensorCPU.hpp +++ b/rmcl_ros/include/rmcl_ros/micpl/MICPPinholeSensorCPU.hpp @@ -11,14 +11,14 @@ #include -#include -#include -#include "tf2_ros/transform_broadcaster.h" -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include + +#include #include #include diff --git a/rmcl_ros/include/rmcl_ros/micpl/MICPPinholeSensorCUDA.hpp b/rmcl_ros/include/rmcl_ros/micpl/MICPPinholeSensorCUDA.hpp index 652913f..f2751d8 100644 --- a/rmcl_ros/include/rmcl_ros/micpl/MICPPinholeSensorCUDA.hpp +++ b/rmcl_ros/include/rmcl_ros/micpl/MICPPinholeSensorCUDA.hpp @@ -7,14 +7,14 @@ #include #include -#include -#include -#include "tf2_ros/transform_broadcaster.h" -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include + +#include #include #include diff --git a/rmcl_ros/include/rmcl_ros/micpl/MICPSensor.hpp b/rmcl_ros/include/rmcl_ros/micpl/MICPSensor.hpp index 4ec6dde..f37ac3d 100644 --- a/rmcl_ros/include/rmcl_ros/micpl/MICPSensor.hpp +++ b/rmcl_ros/include/rmcl_ros/micpl/MICPSensor.hpp @@ -2,12 +2,12 @@ #define RMCL_CORRECTION_MICP_SENSOR_HPP #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/rmcl_ros/include/rmcl_ros/micpl/MICPSphericalSensorCPU.hpp b/rmcl_ros/include/rmcl_ros/micpl/MICPSphericalSensorCPU.hpp index 89cb909..1d82f98 100644 --- a/rmcl_ros/include/rmcl_ros/micpl/MICPSphericalSensorCPU.hpp +++ b/rmcl_ros/include/rmcl_ros/micpl/MICPSphericalSensorCPU.hpp @@ -11,14 +11,14 @@ #include -#include -#include -#include "tf2_ros/transform_broadcaster.h" -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include + +#include #include #include diff --git a/rmcl_ros/include/rmcl_ros/micpl/MICPSphericalSensorCUDA.hpp b/rmcl_ros/include/rmcl_ros/micpl/MICPSphericalSensorCUDA.hpp index 3a6ed7c..bc08885 100644 --- a/rmcl_ros/include/rmcl_ros/micpl/MICPSphericalSensorCUDA.hpp +++ b/rmcl_ros/include/rmcl_ros/micpl/MICPSphericalSensorCUDA.hpp @@ -7,14 +7,14 @@ #include #include -#include -#include -#include "tf2_ros/transform_broadcaster.h" -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include + +#include #include #include diff --git a/rmcl_ros/include/rmcl_ros/nodes/conversion/pc2_to_o1dn.hpp b/rmcl_ros/include/rmcl_ros/nodes/conversion/pc2_to_o1dn.hpp index 4c4329d..bb9127a 100644 --- a/rmcl_ros/include/rmcl_ros/nodes/conversion/pc2_to_o1dn.hpp +++ b/rmcl_ros/include/rmcl_ros/nodes/conversion/pc2_to_o1dn.hpp @@ -8,10 +8,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include diff --git a/rmcl_ros/include/rmcl_ros/nodes/conversion/pc2_to_scan.hpp b/rmcl_ros/include/rmcl_ros/nodes/conversion/pc2_to_scan.hpp index 285f260..0628df0 100644 --- a/rmcl_ros/include/rmcl_ros/nodes/conversion/pc2_to_scan.hpp +++ b/rmcl_ros/include/rmcl_ros/nodes/conversion/pc2_to_scan.hpp @@ -11,10 +11,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include namespace rm = rmagine; diff --git a/rmcl_ros/include/rmcl_ros/nodes/conversion/scan_to_scan.hpp b/rmcl_ros/include/rmcl_ros/nodes/conversion/scan_to_scan.hpp index f4e16da..181e943 100644 --- a/rmcl_ros/include/rmcl_ros/nodes/conversion/scan_to_scan.hpp +++ b/rmcl_ros/include/rmcl_ros/nodes/conversion/scan_to_scan.hpp @@ -13,10 +13,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include diff --git a/rmcl_ros/include/rmcl_ros/nodes/micp_localization.hpp b/rmcl_ros/include/rmcl_ros/nodes/micp_localization.hpp index e9cc827..201bd1b 100644 --- a/rmcl_ros/include/rmcl_ros/nodes/micp_localization.hpp +++ b/rmcl_ros/include/rmcl_ros/nodes/micp_localization.hpp @@ -14,12 +14,12 @@ #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include diff --git a/rmcl_ros/include/rmcl_ros/nodes/rmcl_localization.hpp b/rmcl_ros/include/rmcl_ros/nodes/rmcl_localization.hpp index f45015c..d6430d2 100644 --- a/rmcl_ros/include/rmcl_ros/nodes/rmcl_localization.hpp +++ b/rmcl_ros/include/rmcl_ros/nodes/rmcl_localization.hpp @@ -20,11 +20,11 @@ #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include diff --git a/rmcl_ros/package.xml b/rmcl_ros/package.xml index 0f6b6e0..c7aa4db 100644 --- a/rmcl_ros/package.xml +++ b/rmcl_ros/package.xml @@ -17,6 +17,7 @@ rclcpp geometry_msgs sensor_msgs + tf2 tf2_ros rmcl_msgs image_transport