diff --git a/distros/humble/patch/dependencies.yaml b/distros/humble/patch/dependencies.yaml index 41a34ea2..de10b5e2 100644 --- a/distros/humble/patch/dependencies.yaml +++ b/distros/humble/patch/dependencies.yaml @@ -71,6 +71,10 @@ nav2_constrained_smoother: add_host: ["${{ 'openblas' if win }}"] nav2_util: add_host: ["libboost-devel"] +opennav_coverage: + # package.xml misses deps that CMakeLists.txt finds + add_host: [ros2-rclcpp-components, ros2-std-msgs, ros2-visualization-msgs] + add_run: [ros2-rclcpp-components, ros2-std-msgs, ros2-visualization-msgs] openvdb_vendor: add_host: ["openvdb"] parameter_traits: diff --git a/distros/humble/patch/ros2-opennav-coverage.patch b/distros/humble/patch/ros2-opennav-coverage.patch new file mode 100644 index 00000000..bcb2c5cb --- /dev/null +++ b/distros/humble/patch/ros2-opennav-coverage.patch @@ -0,0 +1,13 @@ +diff --git a/opennav_coverage/src/coverage_server.cpp b/opennav_coverage/src/coverage_server.cpp +index 6a7a67c..b5bee23 100644 +--- a/opennav_coverage/src/coverage_server.cpp ++++ b/opennav_coverage/src/coverage_server.cpp +@@ -54,7 +54,7 @@ CoverageServer::on_configure(const rclcpp_lifecycle::State & /*state*/) + node, "coordinates_in_cartesian_frame", rclcpp::ParameterValue(true)); + get_parameter("coordinates_in_cartesian_frame", cartesian_frame_); + +- double action_server_result_timeout; ++ double action_server_result_timeout = 10.0; + nav2_util::declare_parameter_if_not_declared( + node, "action_server_result_timeout", rclcpp::ParameterValue(10.0)); + get_parameter("action_server_result_timeout", action_server_result_timeout); diff --git a/distros/humble/rosdistro_additional_recipes.yaml b/distros/humble/rosdistro_additional_recipes.yaml index 698edc89..639a7cd7 100644 --- a/distros/humble/rosdistro_additional_recipes.yaml +++ b/distros/humble/rosdistro_additional_recipes.yaml @@ -89,3 +89,15 @@ mujoco_vendor: tag: release/jazzy/mujoco_vendor/0.1.0-1 url: https://github.com/ros2-gbp/mujoco_vendor-release.git version: 0.1.0 +opennav_coverage: + # Not released in rosdistro; humble-v2 branch (Fields2Cover v2) + url: https://github.com/open-navigation/opennav_coverage.git + rev: 81b63a720d97e0966548d9f062fc6a723f329022 + version: 0.0.1 + additional_folder: opennav_coverage +opennav_coverage_msgs: + # Not released in rosdistro; humble-v2 branch (Fields2Cover v2) + url: https://github.com/open-navigation/opennav_coverage.git + rev: 81b63a720d97e0966548d9f062fc6a723f329022 + version: 0.0.1 + additional_folder: opennav_coverage_msgs diff --git a/distros/jazzy/patch/dependencies.yaml b/distros/jazzy/patch/dependencies.yaml index ca65b01d..ce65c878 100644 --- a/distros/jazzy/patch/dependencies.yaml +++ b/distros/jazzy/patch/dependencies.yaml @@ -112,6 +112,10 @@ nav2_mppi_controller: add_run: ["xtensor==0.25.0"] nav2_util: add_host: ["libboost-devel"] +opennav_coverage: + # package.xml misses deps that CMakeLists.txt finds + add_host: [ros2-rclcpp-components, ros2-std-msgs, ros2-visualization-msgs] + add_run: [ros2-rclcpp-components, ros2-std-msgs, ros2-visualization-msgs] openvdb_vendor: add_host: ["openvdb"] pcl_conversions: diff --git a/distros/jazzy/rosdistro_additional_recipes.yaml b/distros/jazzy/rosdistro_additional_recipes.yaml index b252744c..49ae2205 100644 --- a/distros/jazzy/rosdistro_additional_recipes.yaml +++ b/distros/jazzy/rosdistro_additional_recipes.yaml @@ -115,6 +115,18 @@ negotiated_interfaces: version: 0.1.0 additional_folder: negotiated_interfaces +opennav_coverage: + # Not released in rosdistro; jazzy-v2 branch (Fields2Cover v2) + url: https://github.com/open-navigation/opennav_coverage.git + rev: c02a41e739ab51c558d1c4c81d6c9ff154ee80f3 + version: 0.0.1 + additional_folder: opennav_coverage +opennav_coverage_msgs: + # Not released in rosdistro; jazzy-v2 branch (Fields2Cover v2) + url: https://github.com/open-navigation/opennav_coverage.git + rev: c02a41e739ab51c558d1c4c81d6c9ff154ee80f3 + version: 0.0.1 + additional_folder: opennav_coverage_msgs rclcpp_async: rev: 7a54000737ef97e833589f4fe37a5784691ce9ca url: https://github.com/otamachan/rclcpp_async.git diff --git a/distros/lyrical/patch/dependencies.yaml b/distros/lyrical/patch/dependencies.yaml index 1e0b683b..73cd66c9 100644 --- a/distros/lyrical/patch/dependencies.yaml +++ b/distros/lyrical/patch/dependencies.yaml @@ -106,6 +106,10 @@ moveit_visual_tools: add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}"] nav2_constrained_smoother: add_host: ["${{ 'openblas' if win }}", "ceres-solver"] +opennav_coverage: + # package.xml misses deps that CMakeLists.txt finds + add_host: [ros2-rclcpp-components, ros2-std-msgs, ros2-visualization-msgs] + add_run: [ros2-rclcpp-components, ros2-std-msgs, ros2-visualization-msgs] openvdb_vendor: add_host: ["openvdb"] pcl_conversions: diff --git a/distros/lyrical/patch/ros2-opennav-coverage.patch b/distros/lyrical/patch/ros2-opennav-coverage.patch new file mode 100644 index 00000000..a35ee85f --- /dev/null +++ b/distros/lyrical/patch/ros2-opennav-coverage.patch @@ -0,0 +1,11 @@ +diff --git a/opennav_coverage/src/coverage_server.cpp b/opennav_coverage/src/coverage_server.cpp +index ae05766..11a3743 100644 +--- a/opennav_coverage/src/coverage_server.cpp ++++ b/opennav_coverage/src/coverage_server.cpp +@@ -59,6 +59,7 @@ CoverageServer::on_configure(const rclcpp_lifecycle::State & /*state*/) + "compute_coverage_path", + std::bind(&CoverageServer::computeCoveragePath, this), + nullptr, ++ nullptr, + std::chrono::milliseconds(500), + true); diff --git a/distros/lyrical/rosdistro_additional_recipes.yaml b/distros/lyrical/rosdistro_additional_recipes.yaml index 04afc7ec..eac114ff 100644 --- a/distros/lyrical/rosdistro_additional_recipes.yaml +++ b/distros/lyrical/rosdistro_additional_recipes.yaml @@ -460,6 +460,18 @@ mocap4r2_robot_gt_msgs: url: https://github.com/MOCAP4ROS2-Project/mocap4r2.git version: 0.0.7 additional_folder: mocap4r2_robot_gt/mocap4r2_robot_gt_msgs +opennav_coverage: + # Not released in rosdistro; lyrical branch (Fields2Cover v2) + url: https://github.com/open-navigation/opennav_coverage.git + rev: 9f0cca9414cfcf4feb616fee3c35ac199b788ff3 + version: 0.0.1 + additional_folder: opennav_coverage +opennav_coverage_msgs: + # Not released in rosdistro; lyrical branch (Fields2Cover v2) + url: https://github.com/open-navigation/opennav_coverage.git + rev: 9f0cca9414cfcf4feb616fee3c35ac199b788ff3 + version: 0.0.1 + additional_folder: opennav_coverage_msgs rclcpp_async: rev: 7a54000737ef97e833589f4fe37a5784691ce9ca url: https://github.com/otamachan/rclcpp_async.git diff --git a/distros/rolling/patch/dependencies.yaml b/distros/rolling/patch/dependencies.yaml index 006e933a..f427e669 100644 --- a/distros/rolling/patch/dependencies.yaml +++ b/distros/rolling/patch/dependencies.yaml @@ -104,6 +104,10 @@ moveit_core: add_host: ["eigen-abi-devel"] moveit_visual_tools: add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "libboost-devel"] +opennav_coverage: + # package.xml misses deps that CMakeLists.txt finds + add_host: [ros2-rclcpp-components, ros2-std-msgs, ros2-visualization-msgs] + add_run: [ros2-rclcpp-components, ros2-std-msgs, ros2-visualization-msgs] pcl_conversions: add_host: ["${{ 'libgl-devel' if linux }}", "${{ 'libopengl-devel' if linux }}", "libboost-devel", "eigen-abi-devel"] pinocchio: diff --git a/distros/rolling/patch/ros2-nav2-ros-common.patch b/distros/rolling/patch/ros2-nav2-ros-common.patch new file mode 100644 index 00000000..cd898e9a --- /dev/null +++ b/distros/rolling/patch/ros2-nav2-ros-common.patch @@ -0,0 +1,36 @@ +diff --git a/include/nav2_ros_common/node_utils.hpp b/include/nav2_ros_common/node_utils.hpp +index 333c598..b029d52 100644 +--- a/include/nav2_ros_common/node_utils.hpp ++++ b/include/nav2_ros_common/node_utils.hpp +@@ -38 +38 @@ +-#else ++#elif !defined(_WIN32) +@@ -379,0 +380,2 @@ inline void setSoftRealTimePriority() ++#elif defined(_WIN32) ++ throw std::runtime_error("Soft real-time prioritization is not supported on Windows"); +diff --git a/include/nav2_ros_common/validate_messages.hpp b/include/nav2_ros_common/validate_messages.hpp +index 7fd21e3..8fb8b66 100644 +--- a/include/nav2_ros_common/validate_messages.hpp ++++ b/include/nav2_ros_common/validate_messages.hpp +@@ -21,0 +22 @@ ++#include +@@ -85 +86 @@ bool validateMsg(const std::array & msg) +-const int NSEC_PER_SEC = 1e9; // 1 second = 1e9 nanosecond ++constexpr int NANOSECONDS_PER_SECOND = 1e9; +@@ -88 +89 @@ bool validateMsg(const builtin_interfaces::msg::Time & msg) +- if (msg.nanosec >= NSEC_PER_SEC) { ++ if (msg.nanosec >= NANOSECONDS_PER_SECOND) { +@@ -189,2 +190,3 @@ bool validateMsg(const nav_msgs::msg::OccupancyGrid & msg) +- uint32_t num_cells; +- if (__builtin_mul_overflow(msg.info.width, msg.info.height, &num_cells)) { ++ if (msg.info.width != 0 && ++ msg.info.height > std::numeric_limits::max() / msg.info.width) ++ { +@@ -193,0 +196 @@ bool validateMsg(const nav_msgs::msg::OccupancyGrid & msg) ++ const uint32_t num_cells = msg.info.width * msg.info.height; +@@ -224,2 +227,3 @@ bool validateMsg(const map_msgs::msg::OccupancyGridUpdate & msg) +- uint32_t num_cells; +- if (__builtin_mul_overflow(msg.width, msg.height, &num_cells)) { ++ if (msg.width != 0 && ++ msg.height > std::numeric_limits::max() / msg.width) ++ { diff --git a/distros/rolling/patch/ros2-opennav-coverage.patch b/distros/rolling/patch/ros2-opennav-coverage.patch new file mode 100644 index 00000000..a35ee85f --- /dev/null +++ b/distros/rolling/patch/ros2-opennav-coverage.patch @@ -0,0 +1,11 @@ +diff --git a/opennav_coverage/src/coverage_server.cpp b/opennav_coverage/src/coverage_server.cpp +index ae05766..11a3743 100644 +--- a/opennav_coverage/src/coverage_server.cpp ++++ b/opennav_coverage/src/coverage_server.cpp +@@ -59,6 +59,7 @@ CoverageServer::on_configure(const rclcpp_lifecycle::State & /*state*/) + "compute_coverage_path", + std::bind(&CoverageServer::computeCoveragePath, this), + nullptr, ++ nullptr, + std::chrono::milliseconds(500), + true); diff --git a/distros/rolling/rosdistro_additional_recipes.yaml b/distros/rolling/rosdistro_additional_recipes.yaml index 029c57d4..ba8be1d8 100644 --- a/distros/rolling/rosdistro_additional_recipes.yaml +++ b/distros/rolling/rosdistro_additional_recipes.yaml @@ -622,6 +622,14 @@ nav2_msgs: tag: release/lyrical/nav2_msgs/1.5.2-2 url: https://github.com/ros2-gbp/navigation2-release.git version: 1.5.2 +nav2_ros_common: # lyrical's release, needed by opennav_coverage + tag: release/lyrical/nav2_ros_common/1.5.2-2 + url: https://github.com/ros2-gbp/navigation2-release.git + version: 1.5.2 +nav2_util: # lyrical's release, needed by opennav_coverage + tag: release/lyrical/nav2_util/1.5.2-2 + url: https://github.com/ros2-gbp/navigation2-release.git + version: 1.5.2 navmap_core: tag: release/lyrical/navmap_core/0.6.0-1 url: https://github.com/EasyNavigation/NavMap-release.git @@ -650,6 +658,18 @@ netft_driver: # not in rosdistro yet (ros/rosdistro#52786); requested in https: tag: 0.4.0 url: https://github.com/netft/ros-netft.git version: 0.4.0 +opennav_coverage: + # Not released in rosdistro; main branch (Fields2Cover v2) + url: https://github.com/open-navigation/opennav_coverage.git + rev: 04858cf8e3512f59d1ecc7dde5483ee5a6a0f201 + version: 0.0.1 + additional_folder: opennav_coverage +opennav_coverage_msgs: + # Not released in rosdistro; main branch (Fields2Cover v2) + url: https://github.com/open-navigation/opennav_coverage.git + rev: 04858cf8e3512f59d1ecc7dde5483ee5a6a0f201 + version: 0.0.1 + additional_folder: opennav_coverage_msgs rclcpp_async: rev: 7a54000737ef97e833589f4fe37a5784691ce9ca url: https://github.com/otamachan/rclcpp_async.git diff --git a/shared/vinca.yaml b/shared/vinca.yaml index 9ac7e37b..cf1dd852 100644 --- a/shared/vinca.yaml +++ b/shared/vinca.yaml @@ -225,6 +225,7 @@ packages_select_by_deps: - odom_to_tf_ros2 - onnxruntime_vendor - open3d_conversions + - opennav_coverage_msgs - osrf_testing_tools_cpp - pal_statistics - perception @@ -461,6 +462,7 @@ packages_select_by_deps: - navmap_tools - netft_driver # ATI Net F/T driver: POSIX networking, Linux only; requested in https://github.com/RoboStack/robostack/issues/103 - nobleo_socketcan_bridge # Depends on socketcan + - opennav_coverage - orbbec_camera - plansys2_core - plansys2_domain_expert