From 9f1a53d531fd210b7f9d839d8b396bc5858a67e5 Mon Sep 17 00:00:00 2001
From: Sebastian Castro <4603398+sea-bass@users.noreply.github.com>
Date: Sat, 11 Jan 2025 23:52:37 -0500
Subject: [PATCH 01/10] Update packages table in README (#3232)
* Update packages table in README
* Fix Rolling entry for moveit_runtime
---
README.md | 89 ++++++++++++++++++++++++++++++-------------------------
1 file changed, 48 insertions(+), 41 deletions(-)
diff --git a/README.md b/README.md
index fd6e7f973d..b6169c4c63 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,15 @@
-The [MoveIt Motion Planning Framework for ROS 2](http://moveit.ros.org). For the ROS 1 repository see [MoveIt 1](https://github.com/moveit/moveit). For the commercially supported version see [MoveIt Pro](http://picknik.ai/pro).
+The [MoveIt Motion Planning Framework for ROS 2](http://moveit.ros.org).
+For the ROS 1 repository see [MoveIt 1](https://github.com/moveit/moveit).
+For the commercially supported version see [MoveIt Pro](http://picknik.ai/pro).
*Easy-to-use open source robotics manipulation platform for developing commercial applications, prototyping designs, and benchmarking algorithms.*
## Continuous Integration Status
[![Formatting (pre-commit)](https://github.com/moveit/moveit2/actions/workflows/format.yaml/badge.svg?branch=main)](https://github.com/moveit/moveit2/actions/workflows/format.yaml?query=branch%3Amain)
-[![CI (Rolling and Humble)](https://github.com/moveit/moveit2/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/moveit/moveit2/actions/workflows/ci.yaml?query=branch%3Amain)
+[![CI (Rolling, Jazzy, and Humble)](https://github.com/moveit/moveit2/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/moveit/moveit2/actions/workflows/ci.yaml?query=branch%3Amain)
[![Code Coverage](https://codecov.io/gh/moveit/moveit2/branch/main/graph/badge.svg?token=QC1O0VzGpm)](https://codecov.io/gh/moveit/moveit2)
## Getting Started
@@ -56,42 +58,47 @@ research and innovation programme under grant agreement no. 732287.
See [How To Generate API Doxygen Reference Locally](https://moveit.picknik.ai/main/doc/how_to_guides/how_to_generate_api_doxygen_locally.html).
# Buildfarm
-| Package | Humble Binary | Iron Binary | Rolling Binary | Jazzy Binary |
-|:---:|:---:|:---:|:---:|:---:|
-| geometric_shapes | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__geometric_shapes__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__geometric_shapes__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__geometric_shapes__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__geometric_shapes__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__geometric_shapes__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__geometric_shapes__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__geometric_shapes__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__geometric_shapes__ubuntu_noble_amd64__binary) |
-| moveit | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit__ubuntu_noble_amd64__binary) |
-| moveit_common | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_common__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_common__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_common__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_common__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_common__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_common__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_common__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_common__ubuntu_noble_amd64__binary) |
-| moveit_core | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_core__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_core__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_core__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_core__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_core__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_core__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_core__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_core__ubuntu_noble_amd64__binary) |
-| moveit_hybrid_planning | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_hybrid_planning__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_hybrid_planning__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_hybrid_planning__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_hybrid_planning__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_hybrid_planning__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_hybrid_planning__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_hybrid_planning__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_hybrid_planning__ubuntu_noble_amd64__binary) |
-| moveit_kinematics | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_kinematics__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_kinematics__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_kinematics__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_kinematics__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_kinematics__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_kinematics__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_kinematics__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_kinematics__ubuntu_noble_amd64__binary) |
-| moveit_msgs | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_msgs__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_msgs__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_msgs__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_msgs__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_msgs__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_msgs__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_msgs__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_msgs__ubuntu_noble_amd64__binary) |
-| moveit_planners | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_planners__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_planners__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_planners__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_planners__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_planners__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_planners__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_planners__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_planners__ubuntu_noble_amd64__binary) |
-| moveit_planners_ompl | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_planners_ompl__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_planners_ompl__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_planners_ompl__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_planners_ompl__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_planners_ompl__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_planners_ompl__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_planners_ompl__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_planners_ompl__ubuntu_noble_amd64__binary) |
-| moveit_planners_stomp | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_planners_stomp__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_planners_stomp__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_planners_stomp__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_planners_stomp__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_planners_stomp__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_planners_stomp__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_planners_stomp__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_planners_stomp__ubuntu_noble_amd64__binary) |
-| moveit_plugins | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_plugins__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_plugins__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_plugins__ubuntu_noble_amd64__binary) |
-| moveit_resources | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_resources__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_resources__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_resources__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_resources__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_resources__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_resources__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_resources__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_resources__ubuntu_noble_amd64__binary) |
-| moveit_ros | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros__ubuntu_noble_amd64__binary) |
-| moveit_ros_benchmarks | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_benchmarks__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_benchmarks__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros_benchmarks__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros_benchmarks__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_benchmarks__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_benchmarks__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_benchmarks__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_benchmarks__ubuntu_noble_amd64__binary) |
-| moveit_ros_move_group | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_move_group__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_move_group__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros_move_group__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros_move_group__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_move_group__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_move_group__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_move_group__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_move_group__ubuntu_noble_amd64__binary) |
-| moveit_ros_occupancy_map_monitor | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_occupancy_map_monitor__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_occupancy_map_monitor__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros_occupancy_map_monitor__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros_occupancy_map_monitor__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_occupancy_map_monitor__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_occupancy_map_monitor__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_occupancy_map_monitor__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_occupancy_map_monitor__ubuntu_noble_amd64__binary) |
-| moveit_ros_perception | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_perception__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_perception__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros_perception__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros_perception__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_perception__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_perception__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_perception__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_perception__ubuntu_noble_amd64__binary) |
-| moveit_ros_planning | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_planning__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_planning__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros_planning__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros_planning__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_planning__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_planning__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_planning__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_planning__ubuntu_noble_amd64__binary) |
-| moveit_ros_planning_interface | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_planning_interface__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_planning_interface__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros_planning_interface__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros_planning_interface__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_planning_interface__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_planning_interface__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_planning_interface__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_planning_interface__ubuntu_noble_amd64__binary) |
-| moveit_ros_robot_interaction | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_robot_interaction__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_robot_interaction__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros_robot_interaction__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros_robot_interaction__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_robot_interaction__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_robot_interaction__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_robot_interaction__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_robot_interaction__ubuntu_noble_amd64__binary) |
-| moveit_ros_visualization | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_visualization__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_visualization__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros_visualization__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros_visualization__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_visualization__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_visualization__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_visualization__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_visualization__ubuntu_noble_amd64__binary) |
-| moveit_ros_warehouse | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_warehouse__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_warehouse__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_ros_warehouse__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_ros_warehouse__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_warehouse__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_warehouse__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_warehouse__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_warehouse__ubuntu_noble_amd64__binary) |
-| moveit_runtime | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_runtime__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_runtime__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_runtime__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_runtime__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_runtime__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_runtime__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_runtime__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_runtime__ubuntu_noble_amd64__binary) |
-| moveit_servo | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_servo__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_servo__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_servo__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_servo__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_servo__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_servo__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_servo__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_servo__ubuntu_noble_amd64__binary) |
-| moveit_setup_app_plugins | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_app_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_app_plugins__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_setup_app_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_setup_app_plugins__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_app_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_app_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_app_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_app_plugins__ubuntu_noble_amd64__binary) |
-| moveit_setup_assistant | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_assistant__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_assistant__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_setup_assistant__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_setup_assistant__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_assistant__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_assistant__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_assistant__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_assistant__ubuntu_noble_amd64__binary) |
-| moveit_setup_controllers | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_controllers__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_controllers__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_setup_controllers__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_setup_controllers__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_controllers__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_controllers__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_controllers__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_controllers__ubuntu_noble_amd64__binary) |
-| moveit_setup_core_plugins | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_core_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_core_plugins__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_setup_core_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_setup_core_plugins__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_core_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_core_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_core_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_core_plugins__ubuntu_noble_amd64__binary) |
-| moveit_setup_framework | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_framework__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_framework__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_setup_framework__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_setup_framework__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_framework__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_framework__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_framework__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_framework__ubuntu_noble_amd64__binary) |
-| moveit_setup_srdf_plugins | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_srdf_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_srdf_plugins__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_setup_srdf_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_setup_srdf_plugins__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_srdf_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_srdf_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_srdf_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_srdf_plugins__ubuntu_noble_amd64__binary) |
-| moveit_simple_controller_manager | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_simple_controller_manager__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_simple_controller_manager__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_simple_controller_manager__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_simple_controller_manager__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_simple_controller_manager__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_simple_controller_manager__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_simple_controller_manager__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_simple_controller_manager__ubuntu_noble_amd64__binary) |
-| pilz_industrial_motion_planner | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__pilz_industrial_motion_planner__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__pilz_industrial_motion_planner__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__pilz_industrial_motion_planner__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__pilz_industrial_motion_planner__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__pilz_industrial_motion_planner__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__pilz_industrial_motion_planner__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__pilz_industrial_motion_planner__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__pilz_industrial_motion_planner__ubuntu_noble_amd64__binary) |
-| pilz_industrial_motion_planner_testutils | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__pilz_industrial_motion_planner_testutils__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__pilz_industrial_motion_planner_testutils__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__pilz_industrial_motion_planner_testutils__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__pilz_industrial_motion_planner_testutils__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__pilz_industrial_motion_planner_testutils__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__pilz_industrial_motion_planner_testutils__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__pilz_industrial_motion_planner_testutils__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__pilz_industrial_motion_planner_testutils__ubuntu_noble_amd64__binary) |
-| random_numbers | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__random_numbers__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__random_numbers__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__random_numbers__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__random_numbers__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__random_numbers__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__random_numbers__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__random_numbers__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__random_numbers__ubuntu_noble_amd64__binary) |
-| srdfdom | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__srdfdom__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__srdfdom__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__srdfdom__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__srdfdom__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__srdfdom__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__srdfdom__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__srdfdom__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__srdfdom__ubuntu_noble_amd64__binary) |
-| warehouse_ros | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__warehouse_ros__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__warehouse_ros__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__warehouse_ros__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__warehouse_ros__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__warehouse_ros__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__warehouse_ros__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__warehouse_ros__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__warehouse_ros__ubuntu_noble_amd64__binary) |
-| warehouse_ros_sqlite | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__warehouse_ros_sqlite__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__warehouse_ros_sqlite__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__warehouse_ros_sqlite__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__warehouse_ros_sqlite__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__warehouse_ros_sqlite__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__warehouse_ros_sqlite__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__warehouse_ros_sqlite__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__warehouse_ros_sqlite__ubuntu_noble_amd64__binary) |
+| Package | Rolling Binary | Jazzy Binary | Humble Binary |
+|:---:|:---:|:---:|:---:|
+| geometric_shapes | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__geometric_shapes__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__geometric_shapes__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__geometric_shapes__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__geometric_shapes__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__geometric_shapes__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__geometric_shapes__ubuntu_jammy_amd64__binary) |
+| moveit | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit__ubuntu_jammy_amd64__binary) |
+| moveit_common | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_common__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_common__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_common__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_common__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_common__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_common__ubuntu_jammy_amd64__binary) |
+| moveit_configs_utils | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_configs_utils__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_configs_utils__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_configs_utils__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_configs_utils__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_configs_utils__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_configs_utils__ubuntu_jammy_amd64__binary) |
+| moveit_core | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_core__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_core__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_core__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_core__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_core__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_core__ubuntu_jammy_amd64__binary) |
+| moveit_hybrid_planning | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_hybrid_planning__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_hybrid_planning__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_hybrid_planning__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_hybrid_planning__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_hybrid_planning__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_hybrid_planning__ubuntu_jammy_amd64__binary) |
+| moveit_kinematics | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_kinematics__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_kinematics__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_kinematics__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_kinematics__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_kinematics__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_kinematics__ubuntu_jammy_amd64__binary) |
+| moveit_msgs | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_msgs__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_msgs__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_msgs__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_msgs__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_msgs__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_msgs__ubuntu_jammy_amd64__binary) |
+| moveit_planners | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_planners__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_planners__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_planners__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_planners__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_planners__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_planners__ubuntu_jammy_amd64__binary) |
+| moveit_planners_chomp | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_planners_chomp__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_planners_chomp__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_planners_chomp__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_planners_chomp__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_planners_chomp__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_planners_chomp__ubuntu_jammy_amd64__binary) |
+| moveit_planners_ompl | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_planners_ompl__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_planners_ompl__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_planners_ompl__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_planners_ompl__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_planners_ompl__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_planners_ompl__ubuntu_jammy_amd64__binary) |
+| moveit_planners_stomp | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_planners_stomp__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_planners_stomp__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_planners_stomp__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_planners_stomp__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_planners_stomp__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_planners_stomp__ubuntu_jammy_amd64__binary) |
+| moveit_plugins | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_plugins__ubuntu_jammy_amd64__binary) |
+| moveit_py | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_py__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_py__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_py__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_py__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_py__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_py__ubuntu_jammy_amd64__binary) |
+| moveit_resources | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_resources__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_resources__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_resources__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_resources__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_resources__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_resources__ubuntu_jammy_amd64__binary)
+| moveit_ros | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros__ubuntu_jammy_amd64__binary) |
+| moveit_ros_benchmarks | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_benchmarks__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_benchmarks__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_benchmarks__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_benchmarks__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_benchmarks__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_benchmarks__ubuntu_jammy_amd64__binary) |
+| moveit_ros_move_group | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_move_group__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_move_group__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_move_group__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_move_group__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_move_group__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_move_group__ubuntu_jammy_amd64__binary) |
+| moveit_ros_occupancy_map_monitor | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_occupancy_map_monitor__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_occupancy_map_monitor__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_occupancy_map_monitor__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_occupancy_map_monitor__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_occupancy_map_monitor__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_occupancy_map_monitor__ubuntu_jammy_amd64__binary) |
+| moveit_ros_perception | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_perception__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_perception__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_perception__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_perception__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_perception__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_perception__ubuntu_jammy_amd64__binary) |
+| moveit_ros_planning | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_planning__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_planning__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_planning__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_planning__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_planning__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_planning__ubuntu_jammy_amd64__binary) |
+| moveit_ros_planning_interface | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_planning_interface__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_planning_interface__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_planning_interface__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_planning_interface__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_planning_interface__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_planning_interface__ubuntu_jammy_amd64__binary) |
+| moveit_ros_robot_interaction | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_robot_interaction__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_robot_interaction__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_robot_interaction__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_robot_interaction__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_robot_interaction__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_robot_interaction__ubuntu_jammy_amd64__binary) |
+| moveit_ros_tests | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_tests__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_tests__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_tests__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_tests__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_tests__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_tests__ubuntu_jammy_amd64__binary) |
+| moveit_ros_trajectory_cache | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_trajectory_cache__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_trajectory_cache__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_trajectory_cache__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_trajectory_cache__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_trajectory_cache__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_trajectory_cache__ubuntu_jammy_amd64__binary) |
+| moveit_ros_visualization | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_visualization__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_visualization__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_visualization__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_visualization__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_visualization__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_visualization__ubuntu_jammy_amd64__binary) |
+| moveit_ros_warehouse | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_ros_warehouse__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_ros_warehouse__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_ros_warehouse__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_ros_warehouse__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_ros_warehouse__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_ros_warehouse__ubuntu_jammy_amd64__binary) |
+| moveit_runtime | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_runtime__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_runtime__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_runtime__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_runtime__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_runtime__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_runtime__ubuntu_jammy_amd64__binary) |
+| moveit_servo | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_servo__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_servo__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_servo__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_servo__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_servo__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_servo__ubuntu_jammy_amd64__binary) |
+| moveit_setup_app_plugins | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_app_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_app_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_app_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_app_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_app_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_app_plugins__ubuntu_jammy_amd64__binary) |
+| moveit_setup_assistant | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_assistant__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_assistant__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_assistant__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_assistant__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_assistant__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_assistant__ubuntu_jammy_amd64__binary) |
+| moveit_setup_controllers | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_controllers__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_controllers__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_controllers__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_controllers__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_controllers__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_controllers__ubuntu_jammy_amd64__binary) |
+| moveit_setup_core_plugins | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_core_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_core_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_core_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_core_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_core_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_core_plugins__ubuntu_jammy_amd64__binary) |
+| moveit_setup_framework | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_framework__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_framework__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_framework__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_framework__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_framework__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_framework__ubuntu_jammy_amd64__binary) |
+| moveit_setup_srdf_plugins | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_setup_srdf_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_setup_srdf_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_setup_srdf_plugins__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_setup_srdf_plugins__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_setup_srdf_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_setup_srdf_plugins__ubuntu_jammy_amd64__binary) |
+| moveit_simple_controller_manager | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__moveit_simple_controller_manager__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__moveit_simple_controller_manager__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__moveit_simple_controller_manager__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__moveit_simple_controller_manager__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_simple_controller_manager__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_simple_controller_manager__ubuntu_jammy_amd64__binary) |
+| pilz_industrial_motion_planner | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__pilz_industrial_motion_planner__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__pilz_industrial_motion_planner__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__pilz_industrial_motion_planner__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__pilz_industrial_motion_planner__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__pilz_industrial_motion_planner__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__pilz_industrial_motion_planner__ubuntu_jammy_amd64__binary) |
+| pilz_industrial_motion_planner_testutils | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__pilz_industrial_motion_planner_testutils__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__pilz_industrial_motion_planner_testutils__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__pilz_industrial_motion_planner_testutils__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__pilz_industrial_motion_planner_testutils__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__pilz_industrial_motion_planner_testutils__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__pilz_industrial_motion_planner_testutils__ubuntu_jammy_amd64__binary) |
+| random_numbers | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__random_numbers__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__random_numbers__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__random_numbers__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__random_numbers__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__random_numbers__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__random_numbers__ubuntu_jammy_amd64__binary) |
+| srdfdom | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__srdfdom__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__srdfdom__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__srdfdom__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__srdfdom__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__srdfdom__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__srdfdom__ubuntu_jammy_amd64__binary) |
+| warehouse_ros | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__warehouse_ros__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__warehouse_ros__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__warehouse_ros__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__warehouse_ros__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__warehouse_ros__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__warehouse_ros__ubuntu_jammy_amd64__binary) |
+| warehouse_ros_sqlite | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uN64__warehouse_ros_sqlite__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Rbin_uN64__warehouse_ros_sqlite__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Jbin_uN64__warehouse_ros_sqlite__ubuntu_noble_amd64__binary)](https://build.ros2.org/job/Jbin_uN64__warehouse_ros_sqlite__ubuntu_noble_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__warehouse_ros_sqlite__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__warehouse_ros_sqlite__ubuntu_jammy_amd64__binary) |
From 3ec75aba17d29ed815ab5946787e2e17350b608b Mon Sep 17 00:00:00 2001
From: Dongya Jiang <1983534+patrickKXMD@users.noreply.github.com>
Date: Mon, 13 Jan 2025 01:39:36 +0800
Subject: [PATCH 02/10] move TrajectoryExecutionManager::clear() to private
(#3226)
* move TrajectoryExecutionManager::clear() to private
Signed-off-by: Dongya Jiang <1983534+patrickKXMD@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Robert Haschke
---------
Signed-off-by: Dongya Jiang <1983534+patrickKXMD@users.noreply.github.com>
Co-authored-by: Robert Haschke
---
.../trajectory_execution_manager.cpp | 5 -----
.../execute_trajectory_action_capability.cpp | 1 -
moveit_ros/planning/plan_execution/src/plan_execution.cpp | 1 -
.../trajectory_execution_manager.hpp | 6 +++---
4 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/moveit_py/src/moveit/moveit_ros/trajectory_execution_manager/trajectory_execution_manager.cpp b/moveit_py/src/moveit/moveit_ros/trajectory_execution_manager/trajectory_execution_manager.cpp
index 1c0693e638..e74260e6a0 100644
--- a/moveit_py/src/moveit/moveit_ros/trajectory_execution_manager/trajectory_execution_manager.cpp
+++ b/moveit_py/src/moveit/moveit_ros/trajectory_execution_manager/trajectory_execution_manager.cpp
@@ -200,11 +200,6 @@ void initTrajectoryExecutionManager(py::module& m)
Stop whatever executions are active, if any.
)")
- .def("clear", &trajectory_execution_manager::TrajectoryExecutionManager::clear,
- R"(
- Clear the trajectories to execute.
- )")
-
.def("enable_execution_duration_monitoring",
&trajectory_execution_manager::TrajectoryExecutionManager::enableExecutionDurationMonitoring,
py::arg("flag"),
diff --git a/moveit_ros/move_group/src/default_capabilities/execute_trajectory_action_capability.cpp b/moveit_ros/move_group/src/default_capabilities/execute_trajectory_action_capability.cpp
index ff7959e439..602b16a6ee 100644
--- a/moveit_ros/move_group/src/default_capabilities/execute_trajectory_action_capability.cpp
+++ b/moveit_ros/move_group/src/default_capabilities/execute_trajectory_action_capability.cpp
@@ -106,7 +106,6 @@ void MoveGroupExecuteTrajectoryAction::executePath(const std::shared_ptrtrajectory_execution_manager_->clear();
if (context_->trajectory_execution_manager_->push(goal->get_goal()->trajectory, goal->get_goal()->controller_names))
{
setExecuteTrajectoryState(MONITOR, goal);
diff --git a/moveit_ros/planning/plan_execution/src/plan_execution.cpp b/moveit_ros/planning/plan_execution/src/plan_execution.cpp
index bfbc2c37ac..173bceccad 100644
--- a/moveit_ros/planning/plan_execution/src/plan_execution.cpp
+++ b/moveit_ros/planning/plan_execution/src/plan_execution.cpp
@@ -401,7 +401,6 @@ moveit_msgs::msg::MoveItErrorCodes plan_execution::PlanExecution::executeAndMoni
plan.plan_components[component_idx].trajectory->getRobotTrajectoryMsg(msg);
if (!trajectory_execution_manager_->push(msg, plan.plan_components[component_idx].controller_name))
{
- trajectory_execution_manager_->clear();
RCLCPP_ERROR(logger_, "Apparently trajectory initialization failed");
execution_complete_ = true;
result.val = moveit_msgs::msg::MoveItErrorCodes::CONTROL_FAILED;
diff --git a/moveit_ros/planning/trajectory_execution_manager/include/moveit/trajectory_execution_manager/trajectory_execution_manager.hpp b/moveit_ros/planning/trajectory_execution_manager/include/moveit/trajectory_execution_manager/trajectory_execution_manager.hpp
index b305371d54..86c190b3ca 100644
--- a/moveit_ros/planning/trajectory_execution_manager/include/moveit/trajectory_execution_manager/trajectory_execution_manager.hpp
+++ b/moveit_ros/planning/trajectory_execution_manager/include/moveit/trajectory_execution_manager/trajectory_execution_manager.hpp
@@ -186,9 +186,6 @@ class MOVEIT_TRAJECTORY_EXECUTION_MANAGER_EXPORT TrajectoryExecutionManager
/// Stop whatever executions are active, if any
void stopExecution(bool auto_clear = true);
- /// Clear the trajectories to execute
- void clear();
-
/// Enable or disable the monitoring of trajectory execution duration. If a controller takes
/// longer than expected, the trajectory is canceled
void enableExecutionDurationMonitoring(bool flag);
@@ -286,6 +283,9 @@ class MOVEIT_TRAJECTORY_EXECUTION_MANAGER_EXPORT TrajectoryExecutionManager
bool executePart(std::size_t part_index);
bool waitForRobotToStop(const TrajectoryExecutionContext& context, double wait_time = 1.0);
+ /// Clear the trajectories to execute
+ void clear();
+
void stopExecutionInternal();
void receiveEvent(const std_msgs::msg::String::ConstSharedPtr& event);
From 6595deea41fedbad9710084d629cb4f4c999a50e Mon Sep 17 00:00:00 2001
From: Dongya Jiang <1983534+patrickKXMD@users.noreply.github.com>
Date: Mon, 13 Jan 2025 02:42:42 +0800
Subject: [PATCH 03/10] [moveit_ros] fix race condition when stopping
trajectory execution (#3198)
Co-authored-by: Sebastian Castro <4603398+sea-bass@users.noreply.github.com>
---
.../src/trajectory_execution_manager.cpp | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/moveit_ros/planning/trajectory_execution_manager/src/trajectory_execution_manager.cpp b/moveit_ros/planning/trajectory_execution_manager/src/trajectory_execution_manager.cpp
index fd913c7960..00fa65ea17 100644
--- a/moveit_ros/planning/trajectory_execution_manager/src/trajectory_execution_manager.cpp
+++ b/moveit_ros/planning/trajectory_execution_manager/src/trajectory_execution_manager.cpp
@@ -1271,12 +1271,13 @@ void TrajectoryExecutionManager::clear()
{
if (execution_complete_)
{
+ std::scoped_lock slock(execution_state_mutex_);
for (TrajectoryExecutionContext* trajectory : trajectories_)
delete trajectory;
trajectories_.clear();
}
else
- RCLCPP_ERROR(logger_, "Cannot push a new trajectory while another is being executed");
+ RCLCPP_FATAL(logger_, "Expecting execution_complete_ to be true!");
}
void TrajectoryExecutionManager::executeThread(const ExecutionCompleteCallback& callback,
@@ -1312,7 +1313,13 @@ void TrajectoryExecutionManager::executeThread(const ExecutionCompleteCallback&
// only report that execution finished successfully when the robot actually stopped moving
if (last_execution_status_ == moveit_controller_manager::ExecutionStatus::SUCCEEDED)
- waitForRobotToStop(*trajectories_[i - 1]);
+ {
+ std::scoped_lock slock(execution_state_mutex_);
+ if (!execution_complete_)
+ {
+ waitForRobotToStop(*trajectories_[i - 1]);
+ }
+ }
RCLCPP_INFO(logger_, "Completed trajectory execution with status %s ...", last_execution_status_.asString().c_str());
From b5eb4deb355bda2770e822f833b8fd38ea38f985 Mon Sep 17 00:00:00 2001
From: Paul Gesel
Date: Mon, 13 Jan 2025 14:30:35 -0700
Subject: [PATCH 04/10] Remove plugins from export set (#3227)
* Remove plugins from export set
Signed-off-by: Paul Gesel
* move more plugins to different export set
Signed-off-by: Paul Gesel
* run pre-commit
Signed-off-by: Paul Gesel
* remove plugins from moveit_kinematics export
Signed-off-by: Paul Gesel
* do not link base interface to plugin in kinematics
Signed-off-by: Paul Gesel
---------
Signed-off-by: Paul Gesel
Co-authored-by: Sebastian Jahr
---
moveit_core/CMakeLists.txt | 24 ++++++++++++-------
moveit_kinematics/CMakeLists.txt | 20 +++++++++++-----
.../CMakeLists.txt | 2 +-
moveit_ros/move_group/CMakeLists.txt | 10 ++++++--
4 files changed, 38 insertions(+), 18 deletions(-)
diff --git a/moveit_core/CMakeLists.txt b/moveit_core/CMakeLists.txt
index 608babbebc..ca30488f79 100644
--- a/moveit_core/CMakeLists.txt
+++ b/moveit_core/CMakeLists.txt
@@ -69,13 +69,7 @@ add_subdirectory(utils)
add_subdirectory(version)
install(
- TARGETS collision_detector_bullet_plugin
- collision_detector_fcl_plugin
- moveit_acceleration_filter
- moveit_acceleration_filter_parameters
- moveit_butterworth_filter
- moveit_butterworth_filter_parameters
- moveit_collision_detection
+ TARGETS moveit_collision_detection
moveit_collision_detection_bullet
moveit_collision_detection_fcl
moveit_collision_distance_field
@@ -92,8 +86,6 @@ install(
moveit_robot_model
moveit_robot_state
moveit_robot_trajectory
- moveit_ruckig_filter
- moveit_ruckig_filter_parameters
moveit_smoothing_base
moveit_test_utils
moveit_trajectory_processing
@@ -104,6 +96,20 @@ install(
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin)
+install(
+ TARGETS collision_detector_bullet_plugin
+ collision_detector_fcl_plugin
+ moveit_acceleration_filter
+ moveit_acceleration_filter_parameters
+ moveit_butterworth_filter
+ moveit_butterworth_filter_parameters
+ moveit_ruckig_filter
+ moveit_ruckig_filter_parameters
+ EXPORT moveit_core_pluginTargets
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+
ament_export_targets(moveit_coreTargets HAS_LIBRARY_TARGET)
ament_export_dependencies(
angles
diff --git a/moveit_kinematics/CMakeLists.txt b/moveit_kinematics/CMakeLists.txt
index 21b03dfb14..a453674aba 100644
--- a/moveit_kinematics/CMakeLists.txt
+++ b/moveit_kinematics/CMakeLists.txt
@@ -28,12 +28,11 @@ set(THIS_PACKAGE_INCLUDE_DIRS
cached_ik_kinematics_plugin/include)
set(THIS_PACKAGE_LIBRARIES
- cached_ik_kinematics_parameters
- moveit_cached_ik_kinematics_base
- moveit_cached_ik_kinematics_plugin
- kdl_kinematics_parameters
- moveit_kdl_kinematics_plugin
- srv_kinematics_parameters
+ cached_ik_kinematics_parameters moveit_cached_ik_kinematics_base
+ kdl_kinematics_parameters srv_kinematics_parameters)
+
+set(THIS_PACKAGE_PLUGINS
+ moveit_cached_ik_kinematics_plugin moveit_kdl_kinematics_plugin
moveit_srv_kinematics_plugin)
set(THIS_PACKAGE_INCLUDE_DEPENDS
@@ -74,6 +73,15 @@ install(
INCLUDES
DESTINATION include/moveit_kinematics)
+install(
+ TARGETS ${THIS_PACKAGE_PLUGINS}
+ EXPORT ${PROJECT_NAME}PluginTargets
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+ INCLUDES
+ DESTINATION include/moveit_kinematics)
+
ament_export_targets(${PROJECT_NAME}Targets HAS_LIBRARY_TARGET)
ament_export_dependencies(${THIS_PACKAGE_INCLUDE_DEPENDS})
diff --git a/moveit_kinematics/cached_ik_kinematics_plugin/CMakeLists.txt b/moveit_kinematics/cached_ik_kinematics_plugin/CMakeLists.txt
index f281644753..5ce836e33a 100644
--- a/moveit_kinematics/cached_ik_kinematics_plugin/CMakeLists.txt
+++ b/moveit_kinematics/cached_ik_kinematics_plugin/CMakeLists.txt
@@ -21,7 +21,7 @@ generate_parameter_library(
target_link_libraries(
moveit_cached_ik_kinematics_base PUBLIC cached_ik_kinematics_parameters
- moveit_kdl_kinematics_plugin)
+ kdl_kinematics_parameters)
add_library(moveit_cached_ik_kinematics_plugin SHARED
src/cached_ik_kinematics_plugin.cpp)
diff --git a/moveit_ros/move_group/CMakeLists.txt b/moveit_ros/move_group/CMakeLists.txt
index bd48293e7a..2cdebb6ee9 100644
--- a/moveit_ros/move_group/CMakeLists.txt
+++ b/moveit_ros/move_group/CMakeLists.txt
@@ -79,13 +79,19 @@ install(TARGETS move_group list_move_group_capabilities
RUNTIME DESTINATION lib/moveit_ros_move_group)
install(
- TARGETS moveit_move_group_default_capabilities
- moveit_move_group_capabilities_base
+ TARGETS moveit_move_group_capabilities_base
EXPORT moveit_ros_move_groupTargets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin)
+install(
+ TARGETS moveit_move_group_default_capabilities
+ EXPORT moveit_move_group_default_capabilitiesTargets
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+
install(DIRECTORY include/ DESTINATION include/moveit_ros_move_group)
install(PROGRAMS scripts/load_map scripts/save_map
From 415a4a2c867bee01a65f1921502350373e4b00ad Mon Sep 17 00:00:00 2001
From: Silvio Traversaro
Date: Tue, 14 Jan 2025 16:10:34 +0100
Subject: [PATCH 05/10] Fix passing different types to std::min in
cost_functions.hpp (#3244)
---
moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp b/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp
index b910cd3393..97350bec21 100644
--- a/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp
+++ b/moveit_planners/stomp/include/stomp_moveit/cost_functions.hpp
@@ -168,7 +168,7 @@ CostFn getCostFunctionFromStateValidator(const StateValidatorFn& state_validator
const long kernel_start = mu - static_cast(sigma) * 4;
const long kernel_end = mu + static_cast(sigma) * 4;
const long bounded_kernel_start = std::max(0l, kernel_start);
- const long bounded_kernel_end = std::min(values.cols() - 1, kernel_end);
+ const long bounded_kernel_end = std::min(static_cast(values.cols()) - 1, kernel_end);
for (auto j = bounded_kernel_start; j <= bounded_kernel_end; ++j)
{
costs(j) = std::exp(-std::pow(j - mu, 2) / (2 * std::pow(sigma, 2))) / (sigma * std::sqrt(2 * M_PI));
From 2b9173b372b4e33559104d0afdb99f32b98eb01e Mon Sep 17 00:00:00 2001
From: Silvio Traversaro
Date: Mon, 20 Jan 2025 18:00:34 +0100
Subject: [PATCH 06/10] Explicit convert from std::filesystem::path to
std::string for Windows compatibility (#3249)
---
.../src/collisions_updater.cpp | 4 ++--
.../src/setup_assistant_widget.cpp | 2 +-
.../configuration_files.hpp | 2 +-
.../src/configuration_files_widget.cpp | 8 ++++----
.../moveit_setup_core_plugins/src/start_screen.cpp | 2 +-
.../src/start_screen_widget.cpp | 6 +++---
.../moveit_setup_framework/data/srdf_config.hpp | 2 +-
.../moveit_setup_framework/src/srdf_config.cpp | 2 +-
.../moveit_setup_framework/src/urdf_config.cpp | 14 +++++++-------
.../moveit_setup_framework/src/utilities.cpp | 2 +-
10 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/moveit_setup_assistant/moveit_setup_assistant/src/collisions_updater.cpp b/moveit_setup_assistant/moveit_setup_assistant/src/collisions_updater.cpp
index d8963e1be1..f99e493ac8 100644
--- a/moveit_setup_assistant/moveit_setup_assistant/src/collisions_updater.cpp
+++ b/moveit_setup_assistant/moveit_setup_assistant/src/collisions_updater.cpp
@@ -100,7 +100,7 @@ int main(int argc, char* argv[])
auto package_settings = config_data->get("package_settings");
try
{
- package_settings->loadExisting(config_pkg_path);
+ package_settings->loadExisting(config_pkg_path.string());
}
catch (const std::runtime_error& e)
{
@@ -113,7 +113,7 @@ int main(int argc, char* argv[])
RCLCPP_ERROR_STREAM(node->get_logger(), "Please provide config package or URDF and SRDF path");
return 1;
}
- else if (rdf_loader::RDFLoader::isXacroFile(srdf_path) && output_path.empty())
+ else if (rdf_loader::RDFLoader::isXacroFile(srdf_path.string()) && output_path.empty())
{
RCLCPP_ERROR_STREAM(node->get_logger(), "Please provide a different output file for SRDF xacro input file");
return 1;
diff --git a/moveit_setup_assistant/moveit_setup_assistant/src/setup_assistant_widget.cpp b/moveit_setup_assistant/moveit_setup_assistant/src/setup_assistant_widget.cpp
index 2d56b5e404..bab1ec0949 100644
--- a/moveit_setup_assistant/moveit_setup_assistant/src/setup_assistant_widget.cpp
+++ b/moveit_setup_assistant/moveit_setup_assistant/src/setup_assistant_widget.cpp
@@ -71,7 +71,7 @@ SetupAssistantWidget::SetupAssistantWidget(const rviz_common::ros_integration::R
// Setting the window icon
auto icon_path = getSharePath("moveit_ros_visualization") / "icons/classes/MotionPlanning.png";
- setWindowIcon(QIcon(icon_path.c_str()));
+ setWindowIcon(QIcon(icon_path.string().c_str()));
// Basic widget container -----------------------------------------
QHBoxLayout* layout = new QHBoxLayout();
diff --git a/moveit_setup_assistant/moveit_setup_core_plugins/include/moveit_setup_core_plugins/configuration_files.hpp b/moveit_setup_assistant/moveit_setup_core_plugins/include/moveit_setup_core_plugins/configuration_files.hpp
index bfca1e8d62..3d3f3ab386 100644
--- a/moveit_setup_assistant/moveit_setup_core_plugins/include/moveit_setup_core_plugins/configuration_files.hpp
+++ b/moveit_setup_assistant/moveit_setup_core_plugins/include/moveit_setup_core_plugins/configuration_files.hpp
@@ -80,7 +80,7 @@ class ConfigurationFiles : public SetupStep
bool shouldGenerate(const GeneratedFilePtr& file) const
{
- std::string rel_path = file->getRelativePath();
+ std::string rel_path = file->getRelativePath().string();
auto it = should_generate_.find(rel_path);
if (it == should_generate_.end())
{
diff --git a/moveit_setup_assistant/moveit_setup_core_plugins/src/configuration_files_widget.cpp b/moveit_setup_assistant/moveit_setup_core_plugins/src/configuration_files_widget.cpp
index a9ef9bf85b..9e4c3484ab 100644
--- a/moveit_setup_assistant/moveit_setup_core_plugins/src/configuration_files_widget.cpp
+++ b/moveit_setup_assistant/moveit_setup_core_plugins/src/configuration_files_widget.cpp
@@ -294,7 +294,7 @@ void ConfigurationFilesWidget::changeCheckedState(QListWidgetItem* item)
}
// Enable/disable file
- setup_step_.setShouldGenerate(gen_file->getRelativePath(), generate);
+ setup_step_.setShouldGenerate(gen_file->getRelativePath().string(), generate);
}
// ******************************************************************************************
@@ -303,7 +303,7 @@ void ConfigurationFilesWidget::changeCheckedState(QListWidgetItem* item)
void ConfigurationFilesWidget::focusGiven()
{
// Pass the package path from start screen to configuration files screen
- stack_path_->setPath(setup_step_.getPackagePath());
+ stack_path_->setPath(setup_step_.getPackagePath().string());
setup_step_.loadFiles();
@@ -352,7 +352,7 @@ void ConfigurationFilesWidget::showGenFiles()
auto gen_file = gen_files[i];
// Create a formatted row
- QListWidgetItem* item = new QListWidgetItem(QString(gen_file->getRelativePath().c_str()), action_list_, 0);
+ QListWidgetItem* item = new QListWidgetItem(QString(gen_file->getRelativePath().string().c_str()), action_list_, 0);
// Checkbox
item->setCheckState(setup_step_.shouldGenerate(gen_file) ? Qt::Checked : Qt::Unchecked);
@@ -480,7 +480,7 @@ bool ConfigurationFilesWidget::generatePackage()
// Error occurred
QMessageBox::critical(this, "Error Generating File",
QString("Failed to generate folder or file: '")
- .append(gen_file->getRelativePath().c_str())
+ .append(gen_file->getRelativePath().string().c_str())
.append("' at location:\n")
.append(absolute_path.c_str()));
return false;
diff --git a/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen.cpp b/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen.cpp
index ff6827d6ff..b0550b1e90 100644
--- a/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen.cpp
+++ b/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen.cpp
@@ -70,7 +70,7 @@ std::filesystem::path StartScreen::getPackagePath()
void StartScreen::loadExisting(const std::filesystem::path& package_path)
{
- package_settings_->loadExisting(package_path);
+ package_settings_->loadExisting(package_path.string());
}
bool StartScreen::isXacroFile()
diff --git a/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen_widget.cpp b/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen_widget.cpp
index aef1b0f2f1..edd73eb3c9 100644
--- a/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen_widget.cpp
+++ b/moveit_setup_assistant/moveit_setup_core_plugins/src/start_screen_widget.cpp
@@ -205,7 +205,7 @@ void StartScreenWidget::focusGiven()
std::filesystem::path pkg_path = setup_step_.getPackagePath();
if (!pkg_path.empty())
{
- stack_path_->setPath(pkg_path);
+ stack_path_->setPath(pkg_path.string());
select_mode_->btn_exist_->click();
return;
}
@@ -213,7 +213,7 @@ void StartScreenWidget::focusGiven()
std::filesystem::path urdf_path = setup_step_.getURDFPath();
if (!urdf_path.empty())
{
- urdf_file_->setPath(urdf_path);
+ urdf_file_->setPath(urdf_path.string());
select_mode_->btn_new_->click();
}
}
@@ -324,7 +324,7 @@ bool StartScreenWidget::loadPackageSettings(bool show_warnings)
try
{
- setup_step_.loadExisting(package_path_input);
+ setup_step_.loadExisting(package_path_input.string());
return true;
}
catch (const std::runtime_error& e)
diff --git a/moveit_setup_assistant/moveit_setup_framework/include/moveit_setup_framework/data/srdf_config.hpp b/moveit_setup_assistant/moveit_setup_framework/include/moveit_setup_framework/data/srdf_config.hpp
index 92508e0251..5b7fed77dd 100644
--- a/moveit_setup_assistant/moveit_setup_framework/include/moveit_setup_framework/data/srdf_config.hpp
+++ b/moveit_setup_assistant/moveit_setup_framework/include/moveit_setup_framework/data/srdf_config.hpp
@@ -263,7 +263,7 @@ class SRDFConfig : public SetupConfig
bool write(const std::filesystem::path& path)
{
- return srdf_.writeSRDF(path);
+ return srdf_.writeSRDF(path.string());
}
std::filesystem::path getPath() const
diff --git a/moveit_setup_assistant/moveit_setup_framework/src/srdf_config.cpp b/moveit_setup_assistant/moveit_setup_framework/src/srdf_config.cpp
index d19bdbfa50..69002a3ec7 100644
--- a/moveit_setup_assistant/moveit_setup_framework/src/srdf_config.cpp
+++ b/moveit_setup_assistant/moveit_setup_framework/src/srdf_config.cpp
@@ -88,7 +88,7 @@ void SRDFConfig::loadSRDFFile(const std::filesystem::path& srdf_file_path, const
loadURDFModel();
std::string srdf_string;
- if (!rdf_loader::RDFLoader::loadXmlFileToString(srdf_string, srdf_path_, xacro_args))
+ if (!rdf_loader::RDFLoader::loadXmlFileToString(srdf_string, srdf_path_.string(), xacro_args))
{
throw std::runtime_error("SRDF file not found: " + srdf_path_.string());
}
diff --git a/moveit_setup_assistant/moveit_setup_framework/src/urdf_config.cpp b/moveit_setup_assistant/moveit_setup_framework/src/urdf_config.cpp
index 72d9bf4af8..eab6823260 100644
--- a/moveit_setup_assistant/moveit_setup_framework/src/urdf_config.cpp
+++ b/moveit_setup_assistant/moveit_setup_framework/src/urdf_config.cpp
@@ -120,13 +120,13 @@ void URDFConfig::setPackageName()
void URDFConfig::loadFromPackage(const std::filesystem::path& package_name, const std::filesystem::path& relative_path,
const std::string& xacro_args)
{
- const std::filesystem::path package_path = getSharePath(package_name);
+ const std::filesystem::path package_path = getSharePath(package_name.string());
if (package_path.empty())
{
throw std::runtime_error("URDF/COLLADA package not found: ''" + package_name.string());
}
- urdf_pkg_name_ = package_name;
+ urdf_pkg_name_ = package_name.string();
urdf_pkg_relative_path_ = relative_path;
xacro_args_ = xacro_args;
@@ -139,12 +139,12 @@ void URDFConfig::load()
RCLCPP_DEBUG_STREAM(*logger_, "URDF Package Name: " << urdf_pkg_name_);
RCLCPP_DEBUG_STREAM(*logger_, "URDF Package Path: " << urdf_pkg_relative_path_);
- if (!rdf_loader::RDFLoader::loadXmlFileToString(urdf_string_, urdf_path_, xacro_args_vec_))
+ if (!rdf_loader::RDFLoader::loadXmlFileToString(urdf_string_, urdf_path_.string(), xacro_args_vec_))
{
throw std::runtime_error("URDF/COLLADA file not found: " + urdf_path_.string());
}
- if (urdf_string_.empty() && rdf_loader::RDFLoader::isXacroFile(urdf_path_))
+ if (urdf_string_.empty() && rdf_loader::RDFLoader::isXacroFile(urdf_path_.string()))
{
throw std::runtime_error("Running xacro failed.\nPlease check console for errors.");
}
@@ -154,7 +154,7 @@ void URDFConfig::load()
{
throw std::runtime_error("URDF/COLLADA file is not a valid robot model.");
}
- urdf_from_xacro_ = rdf_loader::RDFLoader::isXacroFile(urdf_path_);
+ urdf_from_xacro_ = rdf_loader::RDFLoader::isXacroFile(urdf_path_.string());
// Set parameter
parent_node_->set_parameter(rclcpp::Parameter("robot_description", urdf_string_));
@@ -164,7 +164,7 @@ void URDFConfig::load()
bool URDFConfig::isXacroFile() const
{
- return rdf_loader::RDFLoader::isXacroFile(urdf_path_);
+ return rdf_loader::RDFLoader::isXacroFile(urdf_path_.string());
}
bool URDFConfig::isConfigured() const
@@ -182,7 +182,7 @@ void URDFConfig::collectVariables(std::vector& variables)
std::string urdf_location;
if (urdf_pkg_name_.empty())
{
- urdf_location = urdf_path_;
+ urdf_location = urdf_path_.string();
}
else
{
diff --git a/moveit_setup_assistant/moveit_setup_framework/src/utilities.cpp b/moveit_setup_assistant/moveit_setup_framework/src/utilities.cpp
index 3625d94594..43ade4b276 100644
--- a/moveit_setup_assistant/moveit_setup_framework/src/utilities.cpp
+++ b/moveit_setup_assistant/moveit_setup_framework/src/utilities.cpp
@@ -63,7 +63,7 @@ bool extractPackageNameFromPath(const std::filesystem::path& path, std::string&
// Default package name to folder name
package_name = sub_path.filename().string();
tinyxml2::XMLDocument package_xml_file;
- auto is_open = package_xml_file.LoadFile((sub_path / "package.xml").c_str());
+ auto is_open = package_xml_file.LoadFile((sub_path / "package.xml").string().c_str());
if (is_open == tinyxml2::XML_SUCCESS)
{
auto name_potential =
From e11cabbadf895c421c9c7018f974d786ec80cad8 Mon Sep 17 00:00:00 2001
From: Sebastian Castro <4603398+sea-bass@users.noreply.github.com>
Date: Tue, 21 Jan 2025 20:16:41 -0500
Subject: [PATCH 07/10] Update includes for generate_parameter_library 0.4.0
(#3255)
* Update includes for generate_parameter_library 0.4.0
* Fix header prefix in IKFast template
---
.../moveit/online_signal_smoothing/acceleration_filter.hpp | 2 +-
.../moveit/online_signal_smoothing/butterworth_filter.hpp | 2 +-
.../include/moveit/online_signal_smoothing/ruckig_filter.hpp | 2 +-
.../cached_ik_kinematics_plugin.hpp | 2 +-
.../templates/ikfast61_moveit_plugin_template.cpp | 2 +-
.../moveit/kdl_kinematics_plugin/kdl_kinematics_plugin.hpp | 2 +-
.../moveit/srv_kinematics_plugin/srv_kinematics_plugin.hpp | 2 +-
.../pilz_industrial_motion_planner/command_list_manager.hpp | 2 +-
.../pilz_industrial_motion_planner/limits_container.hpp | 2 +-
.../pilz_industrial_motion_planner.hpp | 2 +-
.../src/command_list_manager.cpp | 2 +-
.../src/pilz_industrial_motion_planner.cpp | 2 +-
.../unit_tests/src/unittest_trajectory_generator_common.cpp | 2 +-
.../include/stomp_moveit/stomp_moveit_planning_context.hpp | 2 +-
moveit_planners/stomp/src/stomp_moveit_planning_context.cpp | 2 +-
.../src/prbt_manipulator_ikfast_moveit_plugin.cpp | 2 +-
.../src/hybrid_planning_manager.cpp | 2 +-
.../local_planner_component/src/local_planner_component.cpp | 2 +-
.../moveit_servo/include/moveit_servo/collision_monitor.hpp | 2 +-
moveit_ros/moveit_servo/include/moveit_servo/servo.hpp | 2 +-
moveit_ros/moveit_servo/include/moveit_servo/utils/common.hpp | 2 +-
.../kinematics_plugin_loader/kinematics_plugin_loader.hpp | 2 +-
.../include/moveit/planning_pipeline/planning_pipeline.hpp | 2 +-
.../src/check_for_stacked_constraints.cpp | 2 +-
.../src/check_start_state_bounds.cpp | 2 +-
.../src/check_start_state_collision.cpp | 2 +-
.../src/validate_workspace_bounds.cpp | 2 +-
.../src/add_time_optimal_parameterization.cpp | 2 +-
.../src/display_motion_path.cpp | 2 +-
.../planning_response_adapter_plugins/src/validate_path.cpp | 3 ++-
30 files changed, 31 insertions(+), 30 deletions(-)
diff --git a/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/acceleration_filter.hpp b/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/acceleration_filter.hpp
index def9fa48ec..8a542983ba 100644
--- a/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/acceleration_filter.hpp
+++ b/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/acceleration_filter.hpp
@@ -78,7 +78,7 @@ c --------x--- v |
#include
#include
#include
-#include
+#include
#include
#include
diff --git a/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/butterworth_filter.hpp b/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/butterworth_filter.hpp
index aa7d4af124..ae153fbba8 100644
--- a/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/butterworth_filter.hpp
+++ b/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/butterworth_filter.hpp
@@ -41,9 +41,9 @@
#include
-#include
#include
#include
+#include
namespace online_signal_smoothing
{
diff --git a/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/ruckig_filter.hpp b/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/ruckig_filter.hpp
index db523cfa2e..f5fddba4d0 100644
--- a/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/ruckig_filter.hpp
+++ b/moveit_core/online_signal_smoothing/include/moveit/online_signal_smoothing/ruckig_filter.hpp
@@ -42,7 +42,7 @@ Description: Applies jerk/acceleration/velocity limits to online motion commands
#include
#include
-#include
+#include
#include
diff --git a/moveit_kinematics/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/cached_ik_kinematics_plugin.hpp b/moveit_kinematics/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/cached_ik_kinematics_plugin.hpp
index a0cce0ab4b..dca7185a75 100644
--- a/moveit_kinematics/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/cached_ik_kinematics_plugin.hpp
+++ b/moveit_kinematics/cached_ik_kinematics_plugin/include/moveit/cached_ik_kinematics_plugin/cached_ik_kinematics_plugin.hpp
@@ -55,8 +55,8 @@
#include
#include
#include
-#include
#include
+#include
namespace cached_ik_kinematics_plugin
{
diff --git a/moveit_kinematics/ikfast_kinematics_plugin/templates/ikfast61_moveit_plugin_template.cpp b/moveit_kinematics/ikfast_kinematics_plugin/templates/ikfast61_moveit_plugin_template.cpp
index 49f506b420..c50f3a7804 100644
--- a/moveit_kinematics/ikfast_kinematics_plugin/templates/ikfast61_moveit_plugin_template.cpp
+++ b/moveit_kinematics/ikfast_kinematics_plugin/templates/ikfast61_moveit_plugin_template.cpp
@@ -47,8 +47,8 @@
#include
#include
#include
-#include
#include
+#include <_PACKAGE_NAME_/ikfast_kinematics_parameters.hpp>
using namespace moveit::core;
diff --git a/moveit_kinematics/kdl_kinematics_plugin/include/moveit/kdl_kinematics_plugin/kdl_kinematics_plugin.hpp b/moveit_kinematics/kdl_kinematics_plugin/include/moveit/kdl_kinematics_plugin/kdl_kinematics_plugin.hpp
index f6bb09f0e5..710e560d33 100644
--- a/moveit_kinematics/kdl_kinematics_plugin/include/moveit/kdl_kinematics_plugin/kdl_kinematics_plugin.hpp
+++ b/moveit_kinematics/kdl_kinematics_plugin/include/moveit/kdl_kinematics_plugin/kdl_kinematics_plugin.hpp
@@ -39,7 +39,6 @@
// ROS
#include
#include
-#include
// ROS msgs
#include
@@ -58,6 +57,7 @@
#include
#include
#include
+#include
#include
diff --git a/moveit_kinematics/srv_kinematics_plugin/include/moveit/srv_kinematics_plugin/srv_kinematics_plugin.hpp b/moveit_kinematics/srv_kinematics_plugin/include/moveit/srv_kinematics_plugin/srv_kinematics_plugin.hpp
index 84b2289ad3..6a2f11da4a 100644
--- a/moveit_kinematics/srv_kinematics_plugin/include/moveit/srv_kinematics_plugin/srv_kinematics_plugin.hpp
+++ b/moveit_kinematics/srv_kinematics_plugin/include/moveit/srv_kinematics_plugin/srv_kinematics_plugin.hpp
@@ -43,7 +43,6 @@
// ROS2
#include
-#include
// System
#include
@@ -56,6 +55,7 @@
// MoveIt
#include
#include
+#include
namespace srv_kinematics_plugin
{
diff --git a/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/command_list_manager.hpp b/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/command_list_manager.hpp
index a3a64b6dfe..213cb3b5ad 100644
--- a/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/command_list_manager.hpp
+++ b/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/command_list_manager.hpp
@@ -48,7 +48,7 @@
#include
#include
-#include
+#include
namespace pilz_industrial_motion_planner
{
diff --git a/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/limits_container.hpp b/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/limits_container.hpp
index e26a52e276..42e2df3f88 100644
--- a/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/limits_container.hpp
+++ b/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/limits_container.hpp
@@ -37,7 +37,7 @@
#include
#include
-#include "cartesian_limits_parameters.hpp"
+#include
namespace pilz_industrial_motion_planner
{
diff --git a/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/pilz_industrial_motion_planner.hpp b/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/pilz_industrial_motion_planner.hpp
index 535fbd9644..bacb5f559e 100644
--- a/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/pilz_industrial_motion_planner.hpp
+++ b/moveit_planners/pilz_industrial_motion_planner/include/pilz_industrial_motion_planner/pilz_industrial_motion_planner.hpp
@@ -45,7 +45,7 @@
#include
#include
-#include
+#include
namespace pilz_industrial_motion_planner
{
diff --git a/moveit_planners/pilz_industrial_motion_planner/src/command_list_manager.cpp b/moveit_planners/pilz_industrial_motion_planner/src/command_list_manager.cpp
index d222dd1e7c..03083f3ae5 100644
--- a/moveit_planners/pilz_industrial_motion_planner/src/command_list_manager.cpp
+++ b/moveit_planners/pilz_industrial_motion_planner/src/command_list_manager.cpp
@@ -44,7 +44,7 @@
#include
#include
-#include "cartesian_limits_parameters.hpp"
+#include
#include
#include
#include
diff --git a/moveit_planners/pilz_industrial_motion_planner/src/pilz_industrial_motion_planner.cpp b/moveit_planners/pilz_industrial_motion_planner/src/pilz_industrial_motion_planner.cpp
index fbf19bf372..c3c3e83034 100644
--- a/moveit_planners/pilz_industrial_motion_planner/src/pilz_industrial_motion_planner.cpp
+++ b/moveit_planners/pilz_industrial_motion_planner/src/pilz_industrial_motion_planner.cpp
@@ -40,7 +40,7 @@
#include
#include
-#include "cartesian_limits_parameters.hpp"
+#include
#include
#include
diff --git a/moveit_planners/pilz_industrial_motion_planner/test/unit_tests/src/unittest_trajectory_generator_common.cpp b/moveit_planners/pilz_industrial_motion_planner/test/unit_tests/src/unittest_trajectory_generator_common.cpp
index fbc31afa11..9c491789c3 100644
--- a/moveit_planners/pilz_industrial_motion_planner/test/unit_tests/src/unittest_trajectory_generator_common.cpp
+++ b/moveit_planners/pilz_industrial_motion_planner/test/unit_tests/src/unittest_trajectory_generator_common.cpp
@@ -53,7 +53,7 @@
#include
-#include "cartesian_limits_parameters.hpp"
+#include
const std::string PARAM_MODEL_NO_GRIPPER_NAME{ "robot_description" };
const std::string PARAM_MODEL_WITH_GRIPPER_NAME{ "robot_description_pg70" };
diff --git a/moveit_planners/stomp/include/stomp_moveit/stomp_moveit_planning_context.hpp b/moveit_planners/stomp/include/stomp_moveit/stomp_moveit_planning_context.hpp
index a5add5e515..dcce1be46c 100644
--- a/moveit_planners/stomp/include/stomp_moveit/stomp_moveit_planning_context.hpp
+++ b/moveit_planners/stomp/include/stomp_moveit/stomp_moveit_planning_context.hpp
@@ -41,7 +41,7 @@
#include
-#include
+#include
// Forward declaration
namespace stomp
diff --git a/moveit_planners/stomp/src/stomp_moveit_planning_context.cpp b/moveit_planners/stomp/src/stomp_moveit_planning_context.cpp
index 4d37e61de6..52a5413588 100644
--- a/moveit_planners/stomp/src/stomp_moveit_planning_context.cpp
+++ b/moveit_planners/stomp/src/stomp_moveit_planning_context.cpp
@@ -47,7 +47,7 @@
#include
#include
#include
-#include
+#include
#include
#include
diff --git a/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp b/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp
index 4ea25702de..b1929ff008 100644
--- a/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp
+++ b/moveit_planners/test_configs/prbt_ikfast_manipulator_plugin/src/prbt_manipulator_ikfast_moveit_plugin.cpp
@@ -52,7 +52,7 @@
#include
#include
#include
-#include
+#include
using namespace moveit::core;
diff --git a/moveit_ros/hybrid_planning/hybrid_planning_manager/hybrid_planning_manager_component/src/hybrid_planning_manager.cpp b/moveit_ros/hybrid_planning/hybrid_planning_manager/hybrid_planning_manager_component/src/hybrid_planning_manager.cpp
index ec1e3a2f95..44c0f0f26c 100644
--- a/moveit_ros/hybrid_planning/hybrid_planning_manager/hybrid_planning_manager_component/src/hybrid_planning_manager.cpp
+++ b/moveit_ros/hybrid_planning/hybrid_planning_manager/hybrid_planning_manager_component/src/hybrid_planning_manager.cpp
@@ -34,7 +34,7 @@
#include
#include
-#include
+#include
#include
namespace moveit::hybrid_planning
diff --git a/moveit_ros/hybrid_planning/local_planner/local_planner_component/src/local_planner_component.cpp b/moveit_ros/hybrid_planning/local_planner/local_planner_component/src/local_planner_component.cpp
index f9914f2ee9..cff465afe7 100644
--- a/moveit_ros/hybrid_planning/local_planner/local_planner_component/src/local_planner_component.cpp
+++ b/moveit_ros/hybrid_planning/local_planner/local_planner_component/src/local_planner_component.cpp
@@ -33,7 +33,7 @@
*********************************************************************/
#include
-#include
+#include
#include
#include
diff --git a/moveit_ros/moveit_servo/include/moveit_servo/collision_monitor.hpp b/moveit_ros/moveit_servo/include/moveit_servo/collision_monitor.hpp
index 9752e5feb6..91c1dfdb9a 100644
--- a/moveit_ros/moveit_servo/include/moveit_servo/collision_monitor.hpp
+++ b/moveit_ros/moveit_servo/include/moveit_servo/collision_monitor.hpp
@@ -41,9 +41,9 @@
#pragma once
-#include
#include
#include
+#include
namespace moveit_servo
{
diff --git a/moveit_ros/moveit_servo/include/moveit_servo/servo.hpp b/moveit_ros/moveit_servo/include/moveit_servo/servo.hpp
index d0331c650d..c9a99151d4 100644
--- a/moveit_ros/moveit_servo/include/moveit_servo/servo.hpp
+++ b/moveit_ros/moveit_servo/include/moveit_servo/servo.hpp
@@ -41,8 +41,8 @@
#pragma once
-#include
#include
+#include
#include
#include
#include
diff --git a/moveit_ros/moveit_servo/include/moveit_servo/utils/common.hpp b/moveit_ros/moveit_servo/include/moveit_servo/utils/common.hpp
index 6d44c18298..1da9fd7e5e 100644
--- a/moveit_ros/moveit_servo/include/moveit_servo/utils/common.hpp
+++ b/moveit_ros/moveit_servo/include/moveit_servo/utils/common.hpp
@@ -41,7 +41,7 @@
#pragma once
-#include
+#include
#include
#include
#include
diff --git a/moveit_ros/planning/kinematics_plugin_loader/include/moveit/kinematics_plugin_loader/kinematics_plugin_loader.hpp b/moveit_ros/planning/kinematics_plugin_loader/include/moveit/kinematics_plugin_loader/kinematics_plugin_loader.hpp
index e7494cf73c..968beae2f6 100644
--- a/moveit_ros/planning/kinematics_plugin_loader/include/moveit/kinematics_plugin_loader/kinematics_plugin_loader.hpp
+++ b/moveit_ros/planning/kinematics_plugin_loader/include/moveit/kinematics_plugin_loader/kinematics_plugin_loader.hpp
@@ -39,8 +39,8 @@
#include
#include
#include
-#include
#include
+#include
namespace kinematics_plugin_loader
{
diff --git a/moveit_ros/planning/planning_pipeline/include/moveit/planning_pipeline/planning_pipeline.hpp b/moveit_ros/planning/planning_pipeline/include/moveit/planning_pipeline/planning_pipeline.hpp
index 18abda399b..f5681eeb19 100644
--- a/moveit_ros/planning/planning_pipeline/include/moveit/planning_pipeline/planning_pipeline.hpp
+++ b/moveit_ros/planning/planning_pipeline/include/moveit/planning_pipeline/planning_pipeline.hpp
@@ -49,7 +49,7 @@
#include
#include
#include
-#include
+#include
namespace planning_pipeline
{
diff --git a/moveit_ros/planning/planning_request_adapter_plugins/src/check_for_stacked_constraints.cpp b/moveit_ros/planning/planning_request_adapter_plugins/src/check_for_stacked_constraints.cpp
index e0b60847c1..08727ab521 100644
--- a/moveit_ros/planning/planning_request_adapter_plugins/src/check_for_stacked_constraints.cpp
+++ b/moveit_ros/planning/planning_request_adapter_plugins/src/check_for_stacked_constraints.cpp
@@ -43,7 +43,7 @@
#include
#include
-#include
+#include
namespace default_planning_request_adapters
{
diff --git a/moveit_ros/planning/planning_request_adapter_plugins/src/check_start_state_bounds.cpp b/moveit_ros/planning/planning_request_adapter_plugins/src/check_start_state_bounds.cpp
index 4b22eee85a..b0e29a46aa 100644
--- a/moveit_ros/planning/planning_request_adapter_plugins/src/check_start_state_bounds.cpp
+++ b/moveit_ros/planning/planning_request_adapter_plugins/src/check_start_state_bounds.cpp
@@ -53,7 +53,7 @@
#include
#include
-#include
+#include
namespace default_planning_request_adapters
{
diff --git a/moveit_ros/planning/planning_request_adapter_plugins/src/check_start_state_collision.cpp b/moveit_ros/planning/planning_request_adapter_plugins/src/check_start_state_collision.cpp
index 99ccf820d7..5843dde8dc 100644
--- a/moveit_ros/planning/planning_request_adapter_plugins/src/check_start_state_collision.cpp
+++ b/moveit_ros/planning/planning_request_adapter_plugins/src/check_start_state_collision.cpp
@@ -45,7 +45,7 @@
#include
#include
-#include
+#include
namespace default_planning_request_adapters
{
diff --git a/moveit_ros/planning/planning_request_adapter_plugins/src/validate_workspace_bounds.cpp b/moveit_ros/planning/planning_request_adapter_plugins/src/validate_workspace_bounds.cpp
index a21dffe61e..df87b43326 100644
--- a/moveit_ros/planning/planning_request_adapter_plugins/src/validate_workspace_bounds.cpp
+++ b/moveit_ros/planning/planning_request_adapter_plugins/src/validate_workspace_bounds.cpp
@@ -44,7 +44,7 @@
#include
#include
-#include
+#include
namespace default_planning_request_adapters
{
diff --git a/moveit_ros/planning/planning_response_adapter_plugins/src/add_time_optimal_parameterization.cpp b/moveit_ros/planning/planning_response_adapter_plugins/src/add_time_optimal_parameterization.cpp
index b5097dce5f..fd2a764c0b 100644
--- a/moveit_ros/planning/planning_response_adapter_plugins/src/add_time_optimal_parameterization.cpp
+++ b/moveit_ros/planning/planning_response_adapter_plugins/src/add_time_optimal_parameterization.cpp
@@ -39,7 +39,7 @@
#include
#include
-#include
+#include
namespace default_planning_response_adapters
{
diff --git a/moveit_ros/planning/planning_response_adapter_plugins/src/display_motion_path.cpp b/moveit_ros/planning/planning_response_adapter_plugins/src/display_motion_path.cpp
index bc6fa5f605..0c25d552ae 100644
--- a/moveit_ros/planning/planning_response_adapter_plugins/src/display_motion_path.cpp
+++ b/moveit_ros/planning/planning_response_adapter_plugins/src/display_motion_path.cpp
@@ -42,7 +42,7 @@
#include
#include
-#include
+#include
namespace default_planning_response_adapters
{
diff --git a/moveit_ros/planning/planning_response_adapter_plugins/src/validate_path.cpp b/moveit_ros/planning/planning_response_adapter_plugins/src/validate_path.cpp
index 1284ba821b..25384fc704 100644
--- a/moveit_ros/planning/planning_response_adapter_plugins/src/validate_path.cpp
+++ b/moveit_ros/planning/planning_response_adapter_plugins/src/validate_path.cpp
@@ -42,7 +42,8 @@
#include
#include
-#include
+#include
+
namespace default_planning_response_adapters
{
/**
From f47ecb5d43b963cbe5e1fb035751eec0035356d1 Mon Sep 17 00:00:00 2001
From: Marq Rasmussen
Date: Wed, 22 Jan 2025 10:15:36 -0700
Subject: [PATCH 08/10] Parallel gripper controller (#3246)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Add ParallelGripperCommand controller
* only use max velocity/effor when specified
* else if
* clean up author and copyright comments
* address review
* single joint control, remove allow_stalling
---------
Co-authored-by: Jafar Uruç
---
.../CMakeLists.txt | 13 +-
.../moveit_ros_control_interface_plugins.xml | 9 +-
... => gripper_command_controller_plugin.cpp} | 10 +-
...llel_gripper_command_controller_plugin.cpp | 63 +++++++
... => gripper_command_controller_handle.hpp} | 20 +-
.../gripper_controller_handle.h | 4 +-
...llel_gripper_command_controller_handle.hpp | 178 ++++++++++++++++++
.../src/moveit_simple_controller_manager.cpp | 55 ++++--
8 files changed, 318 insertions(+), 34 deletions(-)
rename moveit_plugins/moveit_ros_control_interface/src/{gripper_controller_plugin.cpp => gripper_command_controller_plugin.cpp} (88%)
create mode 100644 moveit_plugins/moveit_ros_control_interface/src/parallel_gripper_command_controller_plugin.cpp
rename moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/{gripper_controller_handle.hpp => gripper_command_controller_handle.hpp} (92%)
create mode 100644 moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/parallel_gripper_command_controller_handle.hpp
diff --git a/moveit_plugins/moveit_ros_control_interface/CMakeLists.txt b/moveit_plugins/moveit_ros_control_interface/CMakeLists.txt
index 38a203fe27..a23dac9f96 100644
--- a/moveit_plugins/moveit_ros_control_interface/CMakeLists.txt
+++ b/moveit_plugins/moveit_ros_control_interface/CMakeLists.txt
@@ -38,7 +38,7 @@ ament_target_dependencies(moveit_ros_control_interface_trajectory_plugin
${THIS_PACKAGE_INCLUDE_DEPENDS} Boost)
add_library(moveit_ros_control_interface_gripper_plugin SHARED
- src/gripper_controller_plugin.cpp)
+ src/gripper_command_controller_plugin.cpp)
set_target_properties(
moveit_ros_control_interface_gripper_plugin
PROPERTIES VERSION "${moveit_ros_control_interface_VERSION}")
@@ -47,6 +47,16 @@ target_include_directories(moveit_ros_control_interface_gripper_plugin
ament_target_dependencies(moveit_ros_control_interface_gripper_plugin
${THIS_PACKAGE_INCLUDE_DEPENDS} Boost)
+add_library(moveit_ros_control_interface_parallel_gripper_plugin SHARED
+ src/parallel_gripper_command_controller_plugin.cpp)
+set_target_properties(
+ moveit_ros_control_interface_parallel_gripper_plugin
+ PROPERTIES VERSION "${moveit_ros_control_interface_VERSION}")
+target_include_directories(moveit_ros_control_interface_parallel_gripper_plugin
+ PRIVATE include)
+ament_target_dependencies(moveit_ros_control_interface_parallel_gripper_plugin
+ ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost)
+
add_library(moveit_ros_control_interface_empty_plugin SHARED
src/empty_controller_plugin.cpp)
set_target_properties(
@@ -65,6 +75,7 @@ set(TARGET_LIBRARIES
moveit_ros_control_interface_plugin
moveit_ros_control_interface_trajectory_plugin
moveit_ros_control_interface_gripper_plugin
+ moveit_ros_control_interface_parallel_gripper_plugin
moveit_ros_control_interface_empty_plugin)
# Mark executables and/or libraries for installation
diff --git a/moveit_plugins/moveit_ros_control_interface/moveit_ros_control_interface_plugins.xml b/moveit_plugins/moveit_ros_control_interface/moveit_ros_control_interface_plugins.xml
index fc6777c13c..928be71cc3 100644
--- a/moveit_plugins/moveit_ros_control_interface/moveit_ros_control_interface_plugins.xml
+++ b/moveit_plugins/moveit_ros_control_interface/moveit_ros_control_interface_plugins.xml
@@ -10,10 +10,15 @@
-
+
-
+
+
+
+
+
+
diff --git a/moveit_plugins/moveit_ros_control_interface/src/gripper_controller_plugin.cpp b/moveit_plugins/moveit_ros_control_interface/src/gripper_command_controller_plugin.cpp
similarity index 88%
rename from moveit_plugins/moveit_ros_control_interface/src/gripper_controller_plugin.cpp
rename to moveit_plugins/moveit_ros_control_interface/src/gripper_command_controller_plugin.cpp
index 8d6e9fafad..ba0e0cefd9 100644
--- a/moveit_plugins/moveit_ros_control_interface/src/gripper_controller_plugin.cpp
+++ b/moveit_plugins/moveit_ros_control_interface/src/gripper_command_controller_plugin.cpp
@@ -36,27 +36,27 @@
#include
#include
-#include
+#include
#include
#include
namespace moveit_ros_control_interface
{
/**
- * \brief Simple allocator for moveit_simple_controller_manager::FollowJointTrajectoryControllerHandle instances.
+ * \brief Simple allocator for moveit_simple_controller_manager::GripperCommandControllerHandle instances.
*/
-class GripperControllerAllocator : public ControllerHandleAllocator
+class GripperCommandControllerAllocator : public ControllerHandleAllocator
{
public:
moveit_controller_manager::MoveItControllerHandlePtr alloc(const rclcpp::Node::SharedPtr& node,
const std::string& name,
const std::vector& /* resources */) override
{
- return std::make_shared(node, name, "gripper_cmd");
+ return std::make_shared(node, name, "gripper_cmd");
}
};
} // namespace moveit_ros_control_interface
-PLUGINLIB_EXPORT_CLASS(moveit_ros_control_interface::GripperControllerAllocator,
+PLUGINLIB_EXPORT_CLASS(moveit_ros_control_interface::GripperCommandControllerAllocator,
moveit_ros_control_interface::ControllerHandleAllocator);
diff --git a/moveit_plugins/moveit_ros_control_interface/src/parallel_gripper_command_controller_plugin.cpp b/moveit_plugins/moveit_ros_control_interface/src/parallel_gripper_command_controller_plugin.cpp
new file mode 100644
index 0000000000..9666cb11dc
--- /dev/null
+++ b/moveit_plugins/moveit_ros_control_interface/src/parallel_gripper_command_controller_plugin.cpp
@@ -0,0 +1,63 @@
+/*********************************************************************
+ * Software License Agreement (BSD License)
+ *
+ * Copyright (c) 2025, Marq Rasmussen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of Marq Rasmussen nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *********************************************************************/
+
+/* Author: Marq Rasmussen */
+
+#include
+#include
+#include
+#include
+#include
+
+namespace moveit_ros_control_interface
+{
+/**
+ * \brief Simple allocator for moveit_simple_controller_manager::ParallelGripperCommandControllerHandle instances.
+ */
+class ParallelGripperCommandControllerAllocator : public ControllerHandleAllocator
+{
+public:
+ moveit_controller_manager::MoveItControllerHandlePtr alloc(const rclcpp::Node::SharedPtr& node,
+ const std::string& name,
+ const std::vector& /* resources */) override
+ {
+ return std::make_shared(node, name,
+ "gripper_cmd");
+ }
+};
+
+} // namespace moveit_ros_control_interface
+
+PLUGINLIB_EXPORT_CLASS(moveit_ros_control_interface::ParallelGripperCommandControllerAllocator,
+ moveit_ros_control_interface::ControllerHandleAllocator);
diff --git a/moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/gripper_controller_handle.hpp b/moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/gripper_command_controller_handle.hpp
similarity index 92%
rename from moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/gripper_controller_handle.hpp
rename to moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/gripper_command_controller_handle.hpp
index 6f2dc9a21b..2284e81e3d 100644
--- a/moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/gripper_controller_handle.hpp
+++ b/moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/gripper_command_controller_handle.hpp
@@ -47,12 +47,12 @@ namespace moveit_simple_controller_manager
* This is an interface for a gripper using control_msgs/GripperCommandAction
* action interface (single DOF).
*/
-class GripperControllerHandle : public ActionBasedControllerHandle
+class GripperCommandControllerHandle : public ActionBasedControllerHandle
{
public:
/* Topics will map to name/ns/goal, name/ns/result, etc */
- GripperControllerHandle(const rclcpp::Node::SharedPtr& node, const std::string& name, const std::string& ns,
- const double max_effort = 0.0)
+ GripperCommandControllerHandle(const rclcpp::Node::SharedPtr& node, const std::string& name, const std::string& ns,
+ const double max_effort = 0.0)
: ActionBasedControllerHandle(
node, name, ns, "moveit.simple_controller_manager.gripper_controller_handle")
, allow_failure_(false)
@@ -98,23 +98,23 @@ class GripperControllerHandle : public ActionBasedControllerHandle gripper_joint_indexes;
+ std::vector gripper_joint_indices;
for (std::size_t i = 0; i < trajectory.joint_trajectory.joint_names.size(); ++i)
{
if (command_joints_.find(trajectory.joint_trajectory.joint_names[i]) != command_joints_.end())
{
- gripper_joint_indexes.push_back(i);
+ gripper_joint_indices.push_back(i);
if (!parallel_jaw_gripper_)
break;
}
}
- if (gripper_joint_indexes.empty())
+ if (gripper_joint_indices.empty())
{
RCLCPP_WARN(logger_, "No command_joint was specified for the MoveIt controller gripper handle. \
- Please see GripperControllerHandle::addCommandJoint() and \
- GripperControllerHandle::setCommandJoint(). Assuming index 0.");
- gripper_joint_indexes.push_back(0);
+ Please see GripperCommandControllerHandle::addCommandJoint() and \
+ GripperCommandControllerHandle::setCommandJoint(). Assuming index 0.");
+ gripper_joint_indices.push_back(0);
}
// goal to be sent
@@ -126,7 +126,7 @@ class GripperControllerHandle : public ActionBasedControllerHandle
+#pragma message(".h header is obsolete. Please use the gripper_command_controller_handle.hpp header instead.")
+#include
diff --git a/moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/parallel_gripper_command_controller_handle.hpp b/moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/parallel_gripper_command_controller_handle.hpp
new file mode 100644
index 0000000000..4df57ecacc
--- /dev/null
+++ b/moveit_plugins/moveit_simple_controller_manager/include/moveit_simple_controller_manager/parallel_gripper_command_controller_handle.hpp
@@ -0,0 +1,178 @@
+/*********************************************************************
+ * Software License Agreement (BSD License)
+ *
+ * Copyright (c) 2025, Marq Rasmussen
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided
+ * with the distribution.
+ * * Neither the name of the Marq Rasmussen nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *********************************************************************/
+/* Design inspired by gripper_command_controller_handle.hpp */
+/* Author: Marq Rasmussen */
+
+#pragma once
+
+#include
+#include
+#include
+
+namespace moveit_simple_controller_manager
+{
+/*
+ * This is an interface for a gripper using the control_msgs/ParallelGripperCommand action interface.
+ */
+class ParallelGripperCommandControllerHandle
+ : public ActionBasedControllerHandle
+{
+public:
+ /* Topics will map to name/ns/goal, name/ns/result, etc */
+ ParallelGripperCommandControllerHandle(const rclcpp::Node::SharedPtr& node, const std::string& name,
+ const std::string& ns, const double max_effort = 0.0,
+ const double max_velocity = 0.0)
+ : ActionBasedControllerHandle(
+ node, name, ns, "moveit.simple_controller_manager.parallel_gripper_controller_handle")
+ , max_effort_(max_effort)
+ , max_velocity_(max_velocity)
+ {
+ }
+
+ bool sendTrajectory(const moveit_msgs::msg::RobotTrajectory& trajectory) override
+ {
+ RCLCPP_DEBUG_STREAM(logger_, "Received new trajectory for " << name_);
+
+ if (!controller_action_client_)
+ return false;
+
+ if (!isConnected())
+ {
+ RCLCPP_ERROR_STREAM(logger_, "Action client not connected to action server: " << getActionName());
+ return false;
+ }
+
+ if (!trajectory.multi_dof_joint_trajectory.points.empty())
+ {
+ RCLCPP_ERROR(logger_, "%s cannot execute multi-dof trajectories.", name_.c_str());
+ return false;
+ }
+
+ if (trajectory.joint_trajectory.points.empty())
+ {
+ RCLCPP_ERROR(logger_, "%s requires at least one joint trajectory point, but none received.", name_.c_str());
+ return false;
+ }
+
+ if (trajectory.joint_trajectory.joint_names.empty())
+ {
+ RCLCPP_ERROR(logger_, "%s received a trajectory with no joint names specified.", name_.c_str());
+ return false;
+ }
+
+ // goal to be sent
+ control_msgs::action::ParallelGripperCommand::Goal goal;
+ auto& cmd_state = goal.command;
+
+ auto& joint_names = trajectory.joint_trajectory.joint_names;
+ auto it = std::find(joint_names.begin(), joint_names.end(), command_joint_);
+ if (it != joint_names.end())
+ {
+ cmd_state.name.push_back(command_joint_);
+ std::size_t gripper_joint_index = std::distance(joint_names.begin(), it);
+ // send last trajectory point
+ if (trajectory.joint_trajectory.points.back().positions.size() <= gripper_joint_index)
+ {
+ RCLCPP_ERROR(logger_, "ParallelGripperCommand expects a joint trajectory with one \
+ point that specifies at least the position of joint \
+ '%s', but insufficient positions provided.",
+ trajectory.joint_trajectory.joint_names[gripper_joint_index].c_str());
+ return false;
+ }
+ cmd_state.position.push_back(trajectory.joint_trajectory.points.back().positions[gripper_joint_index]);
+ // only set the velocity or effort if the user has specified a positive non-zero max value
+ if (max_velocity_ > 0.0)
+ {
+ cmd_state.velocity.push_back(max_velocity_);
+ }
+ if (max_effort_ > 0.0)
+ {
+ cmd_state.effort.push_back(max_effort_);
+ }
+ }
+ else
+ {
+ RCLCPP_ERROR(logger_, "Received trajectory does not include a command for joint name %s.", command_joint_.c_str());
+ return false;
+ }
+
+ rclcpp_action::Client::SendGoalOptions send_goal_options;
+ // Active callback
+ send_goal_options.goal_response_callback =
+ [this](const rclcpp_action::Client::GoalHandle::SharedPtr&
+ /* unused-arg */) { RCLCPP_DEBUG_STREAM(logger_, name_ << " started execution."); };
+ // Send goal
+ auto current_goal_future = controller_action_client_->async_send_goal(goal, send_goal_options);
+ current_goal_ = current_goal_future.get();
+ if (!current_goal_)
+ {
+ RCLCPP_ERROR(logger_, "%s goal was rejected by server.", name_.c_str());
+ return false;
+ }
+
+ done_ = false;
+ last_exec_ = moveit_controller_manager::ExecutionStatus::RUNNING;
+ return true;
+ }
+
+ void setCommandJoint(const std::string& name)
+ {
+ command_joint_ = name;
+ }
+
+private:
+ void controllerDoneCallback(
+ const rclcpp_action::ClientGoalHandle::WrappedResult& wrapped_result)
+ override
+ {
+ finishControllerExecution(wrapped_result.code);
+ }
+
+ /*
+ * The ``max_effort`` used in the ParallelGripperCommand message.
+ */
+ double max_effort_ = 0.0;
+
+ /*
+ * The ``max_velocity_`` used in the ParallelGripperCommand message.
+ */
+ double max_velocity_ = 0.0;
+
+ /*
+ * The joint to command in the ParallelGripperCommand message
+ */
+ std::string command_joint_;
+}; // namespace moveit_simple_controller_manager
+
+} // end namespace moveit_simple_controller_manager
diff --git a/moveit_plugins/moveit_simple_controller_manager/src/moveit_simple_controller_manager.cpp b/moveit_plugins/moveit_simple_controller_manager/src/moveit_simple_controller_manager.cpp
index 394765c8cb..b38c84a596 100644
--- a/moveit_plugins/moveit_simple_controller_manager/src/moveit_simple_controller_manager.cpp
+++ b/moveit_plugins/moveit_simple_controller_manager/src/moveit_simple_controller_manager.cpp
@@ -36,7 +36,8 @@
/* Author: Michael Ferguson, Ioan Sucan, E. Gil Jones */
#include
-#include
+#include
+#include
#include
#include
#include
@@ -147,14 +148,10 @@ class MoveItSimpleControllerManager : public moveit_controller_manager::MoveItCo
if (type == "GripperCommand")
{
double max_effort;
- const std::string& max_effort_param = makeParameterName(PARAM_BASE_NAME, controller_name, "max_effort");
- if (!node->get_parameter(max_effort_param, max_effort))
- {
- RCLCPP_INFO_STREAM(getLogger(), "Max effort set to 0.0");
- max_effort = 0.0;
- }
+ node_->get_parameter_or(makeParameterName(PARAM_BASE_NAME, controller_name, "max_effort"), max_effort, 0.0);
+ RCLCPP_INFO_STREAM(getLogger(), controller_name << " will command a max effort of: " << max_effort);
- new_handle = std::make_shared(node_, controller_name, action_ns, max_effort);
+ new_handle = std::make_shared(node_, controller_name, action_ns, max_effort);
bool parallel_gripper = false;
if (node_->get_parameter(makeParameterName(PARAM_BASE_NAME, controller_name, "parallel"), parallel_gripper) &&
parallel_gripper)
@@ -165,27 +162,57 @@ class MoveItSimpleControllerManager : public moveit_controller_manager::MoveItCo
<< controller_joints.size() << " are specified");
continue;
}
- static_cast(new_handle.get())
+ static_cast(new_handle.get())
->setParallelJawGripper(controller_joints[0], controller_joints[1]);
}
else
{
std::string command_joint;
- if (!node_->get_parameter(makeParameterName(PARAM_BASE_NAME, controller_name, "command_joint"),
- command_joint))
- command_joint = controller_joints[0];
+ node_->get_parameter_or(makeParameterName(PARAM_BASE_NAME, controller_name, "command_joint"), command_joint,
+ controller_joints[0]);
- static_cast(new_handle.get())->setCommandJoint(command_joint);
+ static_cast(new_handle.get())->setCommandJoint(command_joint);
}
bool allow_failure;
node_->get_parameter_or(makeParameterName(PARAM_BASE_NAME, controller_name, "allow_failure"), allow_failure,
false);
- static_cast(new_handle.get())->allowFailure(allow_failure);
+ static_cast(new_handle.get())->allowFailure(allow_failure);
RCLCPP_INFO_STREAM(getLogger(), "Added GripperCommand controller for " << controller_name);
controllers_[controller_name] = new_handle;
}
+ else if (type == "ParallelGripperCommand")
+ {
+ double max_effort;
+ node_->get_parameter_or(makeParameterName(PARAM_BASE_NAME, controller_name, "max_effort"), max_effort, 0.0);
+ if (max_effort > 0.0)
+ {
+ RCLCPP_INFO_STREAM(getLogger(), controller_name << " will command a max effort of: " << max_effort);
+ }
+
+ double max_velocity;
+ node_->get_parameter_or(makeParameterName(PARAM_BASE_NAME, controller_name, "max_velocity"), max_velocity,
+ 0.0);
+ if (max_effort > 0.0)
+ {
+ RCLCPP_INFO_STREAM(getLogger(), controller_name << " will command a max velocity of: " << max_velocity);
+ }
+
+ new_handle = std::make_shared(node_, controller_name, action_ns,
+ max_effort, max_velocity);
+
+ if (controller_joints.size() > 1)
+ {
+ RCLCPP_WARN_STREAM(getLogger(), "ParallelGripperCommand controller only supports commanding a single joint "
+ "and multiple joint names were specified. Assuming control of joint: "
+ << controller_joints[0]);
+ }
+ static_cast(new_handle.get())->setCommandJoint(controller_joints[0]);
+
+ RCLCPP_INFO_STREAM(getLogger(), "Added ParallelGripperCommand controller for " << controller_name);
+ controllers_[controller_name] = new_handle;
+ }
else if (type == "FollowJointTrajectory")
{
new_handle = std::make_shared(node_, controller_name, action_ns);
From b91e529779e113a92d956b6acf9e6ee89667bd8b Mon Sep 17 00:00:00 2001
From: Henning Kayser
Date: Wed, 22 Jan 2025 23:28:47 +0100
Subject: [PATCH 09/10] Reduce mutex scope in Servo thread (#3259)
Fixes occasional main thread starvation caused by repeatedly
creating a lock_guard in the servo loop. Fairness is improved
by removing the thread sleep rate from the lock scope.
---
moveit_ros/moveit_servo/src/servo_node.cpp | 116 +++++++++++----------
1 file changed, 59 insertions(+), 57 deletions(-)
diff --git a/moveit_ros/moveit_servo/src/servo_node.cpp b/moveit_ros/moveit_servo/src/servo_node.cpp
index 06a2d716d3..05fd6f4d64 100644
--- a/moveit_ros/moveit_servo/src/servo_node.cpp
+++ b/moveit_ros/moveit_servo/src/servo_node.cpp
@@ -326,76 +326,78 @@ void ServoNode::servoLoop()
continue;
}
- std::lock_guard lock_guard(lock_);
- const bool use_trajectory = servo_params_.command_out_type == "trajectory_msgs/JointTrajectory";
- const auto cur_time = node_->now();
+ { // scope for mutex-protected operations
+ std::lock_guard lock_guard(lock_);
+ const bool use_trajectory = servo_params_.command_out_type == "trajectory_msgs/JointTrajectory";
+ const auto cur_time = node_->now();
- if (use_trajectory && !joint_cmd_rolling_window_.empty() && joint_cmd_rolling_window_.back().time_stamp > cur_time)
- {
- current_state = joint_cmd_rolling_window_.back();
- }
- else
- {
- // if all joint_cmd_rolling_window_ is empty or all commands in it are outdated, use current robot state
- joint_cmd_rolling_window_.clear();
- current_state = servo_->getCurrentRobotState(false /* block for current robot state */);
- current_state.velocities *= 0.0;
- }
+ if (use_trajectory && !joint_cmd_rolling_window_.empty() && joint_cmd_rolling_window_.back().time_stamp > cur_time)
+ {
+ current_state = joint_cmd_rolling_window_.back();
+ }
+ else
+ {
+ // if all joint_cmd_rolling_window_ is empty or all commands in it are outdated, use current robot state
+ joint_cmd_rolling_window_.clear();
+ current_state = servo_->getCurrentRobotState(false /* block for current robot state */);
+ current_state.velocities *= 0.0;
+ }
- // update robot state values
- robot_state->setJointGroupPositions(joint_model_group, current_state.positions);
- robot_state->setJointGroupVelocities(joint_model_group, current_state.velocities);
+ // update robot state values
+ robot_state->setJointGroupPositions(joint_model_group, current_state.positions);
+ robot_state->setJointGroupVelocities(joint_model_group, current_state.velocities);
- next_joint_state = std::nullopt;
- const CommandType expected_type = servo_->getCommandType();
+ next_joint_state = std::nullopt;
+ const CommandType expected_type = servo_->getCommandType();
- if (expected_type == CommandType::JOINT_JOG && new_joint_jog_msg_)
- {
- next_joint_state = processJointJogCommand(robot_state);
- }
- else if (expected_type == CommandType::TWIST && new_twist_msg_)
- {
- next_joint_state = processTwistCommand(robot_state);
- }
- else if (expected_type == CommandType::POSE && new_pose_msg_)
- {
- next_joint_state = processPoseCommand(robot_state);
- }
- else if (new_joint_jog_msg_ || new_twist_msg_ || new_pose_msg_)
- {
- new_joint_jog_msg_ = new_twist_msg_ = new_pose_msg_ = false;
- RCLCPP_WARN_STREAM(node_->get_logger(), "Command type has not been set, cannot accept input");
- }
+ if (expected_type == CommandType::JOINT_JOG && new_joint_jog_msg_)
+ {
+ next_joint_state = processJointJogCommand(robot_state);
+ }
+ else if (expected_type == CommandType::TWIST && new_twist_msg_)
+ {
+ next_joint_state = processTwistCommand(robot_state);
+ }
+ else if (expected_type == CommandType::POSE && new_pose_msg_)
+ {
+ next_joint_state = processPoseCommand(robot_state);
+ }
+ else if (new_joint_jog_msg_ || new_twist_msg_ || new_pose_msg_)
+ {
+ new_joint_jog_msg_ = new_twist_msg_ = new_pose_msg_ = false;
+ RCLCPP_WARN_STREAM(node_->get_logger(), "Command type has not been set, cannot accept input");
+ }
- if (next_joint_state && (servo_->getStatus() != StatusCode::INVALID) &&
- (servo_->getStatus() != StatusCode::HALT_FOR_COLLISION))
- {
- if (use_trajectory)
+ if (next_joint_state && (servo_->getStatus() != StatusCode::INVALID) &&
+ (servo_->getStatus() != StatusCode::HALT_FOR_COLLISION))
{
- auto& next_joint_state_value = next_joint_state.value();
- updateSlidingWindow(next_joint_state_value, joint_cmd_rolling_window_, servo_params_.max_expected_latency,
- cur_time);
- if (const auto msg = composeTrajectoryMessage(servo_params_, joint_cmd_rolling_window_))
+ if (use_trajectory)
+ {
+ auto& next_joint_state_value = next_joint_state.value();
+ updateSlidingWindow(next_joint_state_value, joint_cmd_rolling_window_, servo_params_.max_expected_latency,
+ cur_time);
+ if (const auto msg = composeTrajectoryMessage(servo_params_, joint_cmd_rolling_window_))
+ {
+ trajectory_publisher_->publish(msg.value());
+ }
+ }
+ else
{
- trajectory_publisher_->publish(msg.value());
+ multi_array_publisher_->publish(composeMultiArrayMessage(servo_->getParams(), next_joint_state.value()));
}
+ last_commanded_state_ = next_joint_state.value();
}
else
{
- multi_array_publisher_->publish(composeMultiArrayMessage(servo_->getParams(), next_joint_state.value()));
+ // if no new command was created, use current robot state
+ updateSlidingWindow(current_state, joint_cmd_rolling_window_, servo_params_.max_expected_latency, cur_time);
+ servo_->resetSmoothing(current_state);
}
- last_commanded_state_ = next_joint_state.value();
- }
- else
- {
- // if no new command was created, use current robot state
- updateSlidingWindow(current_state, joint_cmd_rolling_window_, servo_params_.max_expected_latency, cur_time);
- servo_->resetSmoothing(current_state);
- }
- status_msg.code = static_cast(servo_->getStatus());
- status_msg.message = servo_->getStatusMessage();
- status_publisher_->publish(status_msg);
+ status_msg.code = static_cast(servo_->getStatus());
+ status_msg.message = servo_->getStatusMessage();
+ status_publisher_->publish(status_msg);
+ }
servo_frequency.sleep();
}
From 524ca4f15bb449e1f8d25223d9725ca7868c32ee Mon Sep 17 00:00:00 2001
From: Zhong Jin
Date: Fri, 24 Jan 2025 20:44:58 +0800
Subject: [PATCH 10/10] Fix: misleading error logs in
RobotState::setFromIKSubgroups() (#3263)
* Fix: misleading error logs
misleading log message for RobotState::setFromIKSubgroups() when checking consistency_limits size
* fix clang-format
---
moveit_core/robot_state/src/robot_state.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/moveit_core/robot_state/src/robot_state.cpp b/moveit_core/robot_state/src/robot_state.cpp
index ff847bcb54..d24a19b371 100644
--- a/moveit_core/robot_state/src/robot_state.cpp
+++ b/moveit_core/robot_state/src/robot_state.cpp
@@ -2039,8 +2039,8 @@ bool RobotState::setFromIKSubgroups(const JointModelGroup* jmg, const EigenSTL::
{
if (consistency_limits[i].size() != sub_groups[i]->getVariableCount())
{
- RCLCPP_ERROR(getLogger(), "Number of joints in consistency_limits is %zu but it should be should be %u", i,
- sub_groups[i]->getVariableCount());
+ RCLCPP_ERROR(getLogger(), "Number of joints in consistency_limits[%zu] is %lu but it should be should be %u", i,
+ consistency_limits[i].size(), sub_groups[i]->getVariableCount());
return false;
}
}