From 375e097c480457694d473164e310b4466fe0142b Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Tue, 27 Oct 2026 20:31:23 +0100 Subject: [PATCH 1/8] opennav_coverage --- distros/humble/rosdistro_additional_recipes.yaml | 12 ++++++++++++ distros/jazzy/rosdistro_additional_recipes.yaml | 12 ++++++++++++ distros/lyrical/rosdistro_additional_recipes.yaml | 12 ++++++++++++ distros/rolling/rosdistro_additional_recipes.yaml | 12 ++++++++++++ shared/vinca.yaml | 3 ++- 5 files changed, 50 insertions(+), 1 deletion(-) diff --git a/distros/humble/rosdistro_additional_recipes.yaml b/distros/humble/rosdistro_additional_recipes.yaml index 698edc892..639a7cd7e 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/rosdistro_additional_recipes.yaml b/distros/jazzy/rosdistro_additional_recipes.yaml index b252744cd..49ae22055 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/rosdistro_additional_recipes.yaml b/distros/lyrical/rosdistro_additional_recipes.yaml index 04afc7ec5..eac114ff1 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/rosdistro_additional_recipes.yaml b/distros/rolling/rosdistro_additional_recipes.yaml index 029c57d41..382678032 100644 --- a/distros/rolling/rosdistro_additional_recipes.yaml +++ b/distros/rolling/rosdistro_additional_recipes.yaml @@ -650,6 +650,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 9ac7e37b5..d86cca081 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 @@ -635,4 +637,3 @@ packages_exclude: - rttest - tlsf - tlsf_cpp - From fc6e5c6c30dfdb735380f99373bcd9805fbbafa5 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Tue, 27 Oct 2026 21:25:15 +0100 Subject: [PATCH 2/8] fixup! opennav_coverage --- distros/jazzy/patch/dependencies.yaml | 4 ++++ shared/vinca.yaml | 1 + 2 files changed, 5 insertions(+) diff --git a/distros/jazzy/patch/dependencies.yaml b/distros/jazzy/patch/dependencies.yaml index ca65b01d3..ce65c878c 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/shared/vinca.yaml b/shared/vinca.yaml index d86cca081..cf1dd8522 100644 --- a/shared/vinca.yaml +++ b/shared/vinca.yaml @@ -637,3 +637,4 @@ packages_exclude: - rttest - tlsf - tlsf_cpp + From f6b4b393d705a3558afbdb5d742fabf27fdca078 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Wed, 28 Oct 2026 08:06:11 +0100 Subject: [PATCH 3/8] fixup! fixup! opennav_coverage --- distros/humble/patch/dependencies.yaml | 4 ++++ distros/lyrical/patch/dependencies.yaml | 4 ++++ distros/rolling/patch/dependencies.yaml | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/distros/humble/patch/dependencies.yaml b/distros/humble/patch/dependencies.yaml index 41a34ea29..de10b5e21 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/lyrical/patch/dependencies.yaml b/distros/lyrical/patch/dependencies.yaml index 1e0b683b6..73cd66c9e 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/rolling/patch/dependencies.yaml b/distros/rolling/patch/dependencies.yaml index 006e933ab..f427e6691 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: From 85fa83fb18246fad079247cd923a9f535e40a049 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Thu, 29 Oct 2026 16:08:01 +0100 Subject: [PATCH 4/8] Fix Lyrical --- distros/lyrical/patch/ros2-opennav-coverage.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 distros/lyrical/patch/ros2-opennav-coverage.patch diff --git a/distros/lyrical/patch/ros2-opennav-coverage.patch b/distros/lyrical/patch/ros2-opennav-coverage.patch new file mode 100644 index 000000000..a35ee85fa --- /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); From 3ec9344141bd8dd6c50f5a9d65d878001e8da77a Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Fri, 30 Oct 2026 08:08:28 +0100 Subject: [PATCH 5/8] Fix rolling --- distros/rolling/rosdistro_additional_recipes.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/distros/rolling/rosdistro_additional_recipes.yaml b/distros/rolling/rosdistro_additional_recipes.yaml index 382678032..ba8be1d8e 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 From 2a903f95d0ae1208ff318bbc8396a1d4396556d5 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Fri, 30 Oct 2026 14:20:28 +0100 Subject: [PATCH 6/8] Fix humble and rolling --- .../humble/patch/ros2-opennav-coverage.patch | 13 +++++++ .../rolling/patch/ros2-nav2-ros-common.patch | 36 +++++++++++++++++++ .../rolling/patch/ros2-opennav-coverage.patch | 11 ++++++ 3 files changed, 60 insertions(+) create mode 100644 distros/humble/patch/ros2-opennav-coverage.patch create mode 100644 distros/rolling/patch/ros2-nav2-ros-common.patch create mode 100644 distros/rolling/patch/ros2-opennav-coverage.patch diff --git a/distros/humble/patch/ros2-opennav-coverage.patch b/distros/humble/patch/ros2-opennav-coverage.patch new file mode 100644 index 000000000..bcb2c5cbd --- /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/rolling/patch/ros2-nav2-ros-common.patch b/distros/rolling/patch/ros2-nav2-ros-common.patch new file mode 100644 index 000000000..cd898e9a3 --- /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 000000000..a35ee85fa --- /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); From 887dbc0376346abdd6c10e6a3282f09a4cea5cf9 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Fri, 30 Oct 2026 14:56:46 +0100 Subject: [PATCH 7/8] Evice cache --- distros/rolling/ci.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/distros/rolling/ci.yaml b/distros/rolling/ci.yaml index 63d3a18eb..66dd69e58 100644 --- a/distros/rolling/ci.yaml +++ b/distros/rolling/ci.yaml @@ -23,4 +23,5 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: [] +evict_cache: + - nav2_ros_common From 5ab7af3b4efe43a8830d7af2bcbe577a358b6dd3 Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Fri, 30 Oct 2026 15:15:08 +0100 Subject: [PATCH 8/8] Revert "Evice cache" This reverts commit 887dbc0376346abdd6c10e6a3282f09a4cea5cf9. --- distros/rolling/ci.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/distros/rolling/ci.yaml b/distros/rolling/ci.yaml index 66dd69e58..63d3a18eb 100644 --- a/distros/rolling/ci.yaml +++ b/distros/rolling/ci.yaml @@ -23,5 +23,4 @@ full_rebuild: false # # Remember that dependents are not rebuilt automatically: evict them as well if # they must pick up the change. -evict_cache: - - nav2_ros_common +evict_cache: []