From 585681f4a13b1c5cd4d8c3cf5e0f92330b227009 Mon Sep 17 00:00:00 2001 From: Walter Lucetti Date: Wed, 21 Sep 2022 12:11:48 +0200 Subject: [PATCH 1/2] Add ROS2 distro check --- CMakeLists.txt | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6aaafa4..0920415 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,44 @@ cmake_minimum_required(VERSION 3.5) project(zed_interfaces) +################################################ +# Check the ROS2 version + +set(ROS2_FOUND FALSE) +if(DEFINED ENV{ROS_DISTRO}) + set(FOUND_ROS2_DISTRO $ENV{ROS_DISTRO}) + set(ROS2_FOUND TRUE) + message("* Found ROS2 ${FOUND_ROS2_DISTRO}") +else() + message("* ROS2 distro variable not set. Trying to figure it out...") + set(ROS2_DISTROS "ardent;crystal;dashing;eloquent;foxy;galactic;humble;rolling") + set(ROS2_FOUND FALSE) + foreach(distro ${ROS2_DISTROS}) + if(NOT ROS2_FOUND) + find_path(RCLCPP_H rclcpp.hpp PATHS /opt/ros/${distro}/include/rclcpp) + if(RCLCPP_H) + message("* Found ROS2 ${distro}") + set(FOUND_ROS2_DISTRO ${distro}) + set(ROS2_FOUND TRUE) + endif() + endif() + endforeach() +endif(DEFINED ENV{ROS_DISTRO}) + +if(ROS2_FOUND) + add_compile_definitions(FOUND_ROS2_DISTRO=${FOUND_ROS2_DISTRO}) + if(${FOUND_ROS2_DISTRO} STREQUAL "foxy") + message("* ROS2 ${FOUND_ROS2_DISTRO} is officially supported by this package.") + elseif(${FOUND_ROS2_DISTRO} STREQUAL "humble") + message("* ROS2 ${FOUND_ROS2_DISTRO} is officially supported by this package.") + else() + message("*** WARNING *** ROS2 ${FOUND_ROS2_DISTRO} is not officially supported by this package. Correct working is not guarantee.") + endif() +else() + message("*** WARNING *** ROS2 distro is unknown. This package could not work correctly.") +endif() +################################################ + # Default to C++14 if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 14) From 83fa2d5ee6bc7efcf4bbefa65c8df062a9ea5455 Mon Sep 17 00:00:00 2001 From: Walter Lucetti Date: Fri, 21 Oct 2022 16:43:06 +0200 Subject: [PATCH 2/2] Add `setRoi` service --- CMakeLists.txt | 1 + srv/SetROI.srv | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 srv/SetROI.srv diff --git a/CMakeLists.txt b/CMakeLists.txt index 0920415..941499d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -79,6 +79,7 @@ set(MSG_FILES set(SRV_FILES "srv/SetPose.srv" "srv/StartSvoRec.srv" + "srv/SetROI.srv" ) rosidl_generate_interfaces(${PROJECT_NAME} diff --git a/srv/SetROI.srv b/srv/SetROI.srv new file mode 100644 index 0000000..8a12e24 --- /dev/null +++ b/srv/SetROI.srv @@ -0,0 +1,8 @@ +# Set the Region of Interest for ZED SDK computing + +# Region of interest polygon as an array of normalized vertices. e.g. "[[0.5,0.25],[0.75,0.5],[0.5,0.75],[0.25,0.5]]" +# You can use +string roi +--- +bool success # indicate successful run of service +string message # informational, e.g. for error messages