diff --git a/.clang-tidy b/.clang-tidy index 83fc26e052..6e9e400699 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,6 +1,7 @@ --- Checks: '-*, performance-*, + -performance-enum-size, llvm-namespace-comment, modernize-redundant-void-arg, modernize-use-nullptr, @@ -21,7 +22,6 @@ Checks: '-*, readability-static-definition-in-anonymous-namespace, ' HeaderFilterRegex: '' -AnalyzeTemporaryDtors: false CheckOptions: - key: llvm-namespace-comment.ShortNamespaceLines value: '10' diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 547587e976..2d3453faf5 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,7 +20,7 @@ jobs: - IMAGE: rolling-ci CCOV: true ROS_DISTRO: rolling - - IMAGE: rolling-ci-testing + - IMAGE: rolling-ci ROS_DISTRO: rolling IKFAST_TEST: true CLANG_TIDY: pedantic @@ -28,6 +28,8 @@ jobs: ROS_DISTRO: humble - IMAGE: humble-ci-testing ROS_DISTRO: humble + - IMAGE: jazzy-ci + ROS_DISTRO: jazzy env: CXXFLAGS: >- -Wall -Wextra -Wwrite-strings -Wunreachable-code -Wpointer-arith -Wredundant-decls @@ -61,6 +63,7 @@ jobs: (cd $TARGET_REPO_PATH; clang-tidy --list-checks) # Disable clang-tidy for ikfast plugins as we cannot fix the generated code find $BASEDIR/target_ws/build -iwholename "*_ikfast_plugin/compile_commands.json" -exec rm {} \; + find $BASEDIR/target_ws/build -iwholename "*_ikfast_manipulator_plugin/compile_commands.json" -exec rm {} \; CC: ${{ matrix.env.CLANG_TIDY && 'clang' }} CXX: ${{ matrix.env.CLANG_TIDY && 'clang++' }} ADDITIONAL_DEBS: lld @@ -83,10 +86,12 @@ jobs: sudo rm -rf /usr/local df -h - uses: actions/checkout@v4 - - uses: testspace-com/setup-testspace@v1 - if: github.repository == 'moveit/moveit2' - with: - domain: ros-planning +# NOTE: Testspace is temporarily disabled and needs to be installed for the MoveIt org +# See: https://github.com/moveit/moveit2/issues/2852 +# - uses: testspace-com/setup-testspace@v1 +# if: github.repository == 'moveit/moveit2' +# with: +# domain: moveit - name: Get latest release date for rosdistro id: rosdistro_release_date uses: JafarAbdi/latest-rosdistro-release-date-action@main @@ -140,10 +145,12 @@ jobs: name: Run industrial_ci uses: ros-industrial/industrial_ci@master env: ${{ matrix.env }} - - name: Push result to Testspace - if: always() && (github.repository == 'moveit/moveit2') - run: | - testspace "[ ${{ matrix.env.IMAGE }} ]${{ env.BASEDIR }}/target_ws/**/test_results/**/*.xml" +# NOTE: Testspace is temporarily disabled and needs to be installed for the MoveIt org +# See: https://github.com/moveit/moveit2/issues/2852 +# - name: Push result to Testspace +# if: always() && (github.repository == 'moveit/moveit2') +# run: | +# testspace "[ ${{ matrix.env.IMAGE }} ]${{ env.BASEDIR }}/target_ws/**/test_results/**/*.xml" - name: Upload test artifacts (on failure) uses: actions/upload-artifact@v4 if: failure() && (steps.ici.outputs.run_target_test || steps.ici.outputs.target_test_results) @@ -151,7 +158,7 @@ jobs: name: test-results-${{ matrix.env.IMAGE }} path: ${{ env.BASEDIR }}/target_ws/**/test_results/**/*.xml - name: Generate codecov report - uses: rhaschke/lcov-action@main + uses: henningkayser/lcov-action@main if: always() && matrix.env.CCOV && steps.ici.outputs.target_test_results == '0' with: docker: $DOCKER_IMAGE diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index 2517883995..f597653f9d 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -19,7 +19,7 @@ jobs: strategy: fail-fast: false matrix: - ROS_DISTRO: [rolling] + ROS_DISTRO: [rolling, jazzy] runs-on: ubuntu-latest permissions: packages: write @@ -72,7 +72,7 @@ jobs: strategy: fail-fast: false matrix: - ROS_DISTRO: [rolling] + ROS_DISTRO: [rolling, jazzy] runs-on: ubuntu-latest permissions: packages: write @@ -128,7 +128,7 @@ jobs: strategy: fail-fast: false matrix: - ROS_DISTRO: [rolling] + ROS_DISTRO: [rolling, jazzy] runs-on: ubuntu-latest permissions: packages: write diff --git a/.github/workflows/sonar.yaml b/.github/workflows/sonar.yaml index 0d46761490..083d6c07ca 100644 --- a/.github/workflows/sonar.yaml +++ b/.github/workflows/sonar.yaml @@ -56,10 +56,11 @@ jobs: sudo rm -rf /usr/local df -h - uses: actions/checkout@v4 - - uses: testspace-com/setup-testspace@v1 - if: github.repository == 'moveit/moveit2' - with: - domain: ros-planning +# Testspace disabled temporarily: https://github.com/moveit/moveit2/issues/2852 +# - uses: testspace-com/setup-testspace@v1 +# if: github.repository == 'moveit/moveit2' +# with: +# domain: ros-planning - name: Get latest release date for rosdistro id: rosdistro_release_date uses: JafarAbdi/latest-rosdistro-release-date-action@main diff --git a/README.md b/README.md index 2fe6e09da9..fa3d75cc09 100644 --- a/README.md +++ b/README.md @@ -56,47 +56,42 @@ 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 | -|:---:|:---:|:---:|:---:| -| 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_uJ64__geometric_shapes__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__geometric_shapes__ubuntu_jammy_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_uJ64__moveit__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit__ubuntu_jammy_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_uJ64__moveit_common__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_common__ubuntu_jammy_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_uJ64__moveit_core__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_core__ubuntu_jammy_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_uJ64__moveit_hybrid_planning__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_hybrid_planning__ubuntu_jammy_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_uJ64__moveit_kinematics__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_kinematics__ubuntu_jammy_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_uJ64__moveit_msgs__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_msgs__ubuntu_jammy_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_uJ64__moveit_planners__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_planners__ubuntu_jammy_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_uJ64__moveit_planners_ompl__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_planners_ompl__ubuntu_jammy_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_uJ64__moveit_planners_stomp__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_planners_stomp__ubuntu_jammy_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_uJ64__moveit_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_plugins__ubuntu_jammy_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_uJ64__moveit_resources__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_resources__ubuntu_jammy_amd64__binary) | -| moveit_resources_fanuc_description | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_resources_fanuc_description__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_resources_fanuc_description__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_resources_fanuc_description__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_resources_fanuc_description__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uJ64__moveit_resources_fanuc_description__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_resources_fanuc_description__ubuntu_jammy_amd64__binary) | -| moveit_resources_fanuc_moveit_config | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_resources_fanuc_moveit_config__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_resources_fanuc_moveit_config__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_resources_fanuc_moveit_config__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_resources_fanuc_moveit_config__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uJ64__moveit_resources_fanuc_moveit_config__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_resources_fanuc_moveit_config__ubuntu_jammy_amd64__binary) | -| moveit_resources_panda_description | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_resources_panda_description__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_resources_panda_description__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_resources_panda_description__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_resources_panda_description__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uJ64__moveit_resources_panda_description__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_resources_panda_description__ubuntu_jammy_amd64__binary) | -| moveit_resources_panda_moveit_config | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_resources_panda_moveit_config__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_resources_panda_moveit_config__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_resources_panda_moveit_config__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_resources_panda_moveit_config__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uJ64__moveit_resources_panda_moveit_config__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_resources_panda_moveit_config__ubuntu_jammy_amd64__binary) | -| moveit_resources_pr2_description | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Hbin_uJ64__moveit_resources_pr2_description__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Hbin_uJ64__moveit_resources_pr2_description__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Ibin_uJ64__moveit_resources_pr2_description__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Ibin_uJ64__moveit_resources_pr2_description__ubuntu_jammy_amd64__binary) | [![Build Status](https://build.ros2.org/buildStatus/icon?job=Rbin_uJ64__moveit_resources_pr2_description__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_resources_pr2_description__ubuntu_jammy_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_uJ64__moveit_ros__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros__ubuntu_jammy_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_uJ64__moveit_ros_benchmarks__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros_benchmarks__ubuntu_jammy_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_uJ64__moveit_ros_move_group__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros_move_group__ubuntu_jammy_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_uJ64__moveit_ros_occupancy_map_monitor__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros_occupancy_map_monitor__ubuntu_jammy_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_uJ64__moveit_ros_perception__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros_perception__ubuntu_jammy_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_uJ64__moveit_ros_planning__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros_planning__ubuntu_jammy_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_uJ64__moveit_ros_planning_interface__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros_planning_interface__ubuntu_jammy_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_uJ64__moveit_ros_robot_interaction__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros_robot_interaction__ubuntu_jammy_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_uJ64__moveit_ros_visualization__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros_visualization__ubuntu_jammy_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_uJ64__moveit_ros_warehouse__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_ros_warehouse__ubuntu_jammy_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_uJ64__moveit_runtime__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_runtime__ubuntu_jammy_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_uJ64__moveit_servo__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_servo__ubuntu_jammy_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_uJ64__moveit_setup_app_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_setup_app_plugins__ubuntu_jammy_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_uJ64__moveit_setup_assistant__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_setup_assistant__ubuntu_jammy_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_uJ64__moveit_setup_controllers__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_setup_controllers__ubuntu_jammy_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_uJ64__moveit_setup_core_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_setup_core_plugins__ubuntu_jammy_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_uJ64__moveit_setup_framework__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_setup_framework__ubuntu_jammy_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_uJ64__moveit_setup_srdf_plugins__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_setup_srdf_plugins__ubuntu_jammy_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_uJ64__moveit_simple_controller_manager__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__moveit_simple_controller_manager__ubuntu_jammy_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_uJ64__pilz_industrial_motion_planner__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__pilz_industrial_motion_planner__ubuntu_jammy_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_uJ64__pilz_industrial_motion_planner_testutils__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__pilz_industrial_motion_planner_testutils__ubuntu_jammy_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_uJ64__random_numbers__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__random_numbers__ubuntu_jammy_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_uJ64__srdfdom__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__srdfdom__ubuntu_jammy_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_uJ64__warehouse_ros__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__warehouse_ros__ubuntu_jammy_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_uJ64__warehouse_ros_sqlite__ubuntu_jammy_amd64__binary)](https://build.ros2.org/job/Rbin_uJ64__warehouse_ros_sqlite__ubuntu_jammy_amd64__binary) | +| 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) | diff --git a/moveit2.repos b/moveit2.repos index c0f93c4298..aec6f2851e 100644 --- a/moveit2.repos +++ b/moveit2.repos @@ -1,14 +1,14 @@ repositories: # Keep moveit_* repos here because they are released with moveit + geometric_shapes: + type: git + url: https://github.com/moveit/geometric_shapes.git + version: ros2 moveit_msgs: type: git - url: https://github.com/ros-planning/moveit_msgs.git + url: https://github.com/moveit/moveit_msgs.git version: ros2 moveit_resources: type: git - url: https://github.com/ros-planning/moveit_resources.git + url: https://github.com/moveit/moveit_resources.git version: ros2 - generate_parameter_library: - type: git - url: https://github.com/PickNikRobotics/generate_parameter_library.git - version: 0.3.7 diff --git a/moveit2_humble.repos b/moveit2_humble.repos new file mode 100644 index 0000000000..71a9316f22 --- /dev/null +++ b/moveit2_humble.repos @@ -0,0 +1,5 @@ +repositories: + generate_parameter_library: + type: git + url: https://github.com/PickNikRobotics/generate_parameter_library.git + version: 0.3.7 diff --git a/moveit2_iron.repos b/moveit2_iron.repos new file mode 100644 index 0000000000..71a9316f22 --- /dev/null +++ b/moveit2_iron.repos @@ -0,0 +1,5 @@ +repositories: + generate_parameter_library: + type: git + url: https://github.com/PickNikRobotics/generate_parameter_library.git + version: 0.3.7 diff --git a/moveit2_rolling.repos b/moveit2_rolling.repos index 4d39d584b4..56f46b6f79 100644 --- a/moveit2_rolling.repos +++ b/moveit2_rolling.repos @@ -1,9 +1 @@ repositories: - octomap: - type: git - url: https://github.com/octomap/octomap.git - version: devel - geometric_shapes: - type: git - url: https://github.com/moveit/geometric_shapes.git - version: ros2 diff --git a/moveit_core/CMakeLists.txt b/moveit_core/CMakeLists.txt index afdf3d515a..90b2851ded 100644 --- a/moveit_core/CMakeLists.txt +++ b/moveit_core/CMakeLists.txt @@ -18,7 +18,9 @@ find_package(geometric_shapes REQUIRED) find_package(geometry_msgs REQUIRED) find_package(kdl_parser REQUIRED) find_package(moveit_msgs REQUIRED) -find_package(OCTOMAP REQUIRED) +# Enforce system version liboctomap-dev +# https://github.com/moveit/moveit2/issues/2862 +find_package(octomap 1.9.7...<1.10.0 REQUIRED) find_package(octomap_msgs REQUIRED) find_package(osqp REQUIRED) find_package(pluginlib REQUIRED) @@ -114,7 +116,7 @@ ament_export_dependencies( geometry_msgs kdl_parser moveit_msgs - OCTOMAP + octomap octomap_msgs osqp pluginlib diff --git a/moveit_core/collision_detection/CMakeLists.txt b/moveit_core/collision_detection/CMakeLists.txt index 05a2c32dc6..cd90e4d5c5 100644 --- a/moveit_core/collision_detection/CMakeLists.txt +++ b/moveit_core/collision_detection/CMakeLists.txt @@ -28,7 +28,7 @@ ament_target_dependencies( visualization_msgs tf2_eigen geometric_shapes - OCTOMAP) + octomap) target_include_directories( moveit_collision_detection BEFORE PUBLIC $) diff --git a/moveit_core/collision_detection/src/collision_octomap_filter.cpp b/moveit_core/collision_detection/src/collision_octomap_filter.cpp index 3e407db29e..aca52fa2c8 100644 --- a/moveit_core/collision_detection/src/collision_octomap_filter.cpp +++ b/moveit_core/collision_detection/src/collision_octomap_filter.cpp @@ -126,15 +126,15 @@ int collision_detection::refineContactNormals(const World::ObjectConstPtr& objec octree->begin_leafs_bbx(bbx_min, bbx_max); octomap::OcTreeBaseImpl::leaf_bbx_iterator leafs_end = octree->end_leafs_bbx(); - int count = 0; + // int count = 0; for (; it != leafs_end; ++it) { const octomap::point3d pt = it.getCoordinate(); - // double prob = it->getOccupancy(); if (octree->isNodeOccupied(*it)) // magic number! { - count++; node_centers.push_back(pt); + // count++; + // double prob = it->getOccupancy(); // RCLCPP_INFO(getLogger(), "Adding point %d with prob %.3f at [%.3f, %.3f, %.3f]", // count, prob, pt.x(), pt.y(), pt.z()); } diff --git a/moveit_core/collision_detection/src/world.cpp b/moveit_core/collision_detection/src/world.cpp index b27a2b5b15..eae07cf01c 100644 --- a/moveit_core/collision_detection/src/world.cpp +++ b/moveit_core/collision_detection/src/world.cpp @@ -109,6 +109,7 @@ void World::addToObject(const std::string& object_id, const Eigen::Isometry3d& p std::vector World::getObjectIds() const { std::vector ids; + ids.reserve(objects_.size()); for (const auto& object : objects_) ids.push_back(object.first); return ids; diff --git a/moveit_core/collision_distance_field/CMakeLists.txt b/moveit_core/collision_distance_field/CMakeLists.txt index 7a4774e04c..63b63a013d 100644 --- a/moveit_core/collision_distance_field/CMakeLists.txt +++ b/moveit_core/collision_distance_field/CMakeLists.txt @@ -16,7 +16,7 @@ set_target_properties(moveit_collision_distance_field PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") ament_target_dependencies(moveit_collision_distance_field urdf - visualization_msgs tf2_eigen geometric_shapes OCTOMAP) + visualization_msgs tf2_eigen geometric_shapes octomap) target_link_libraries( moveit_collision_distance_field moveit_planning_scene moveit_distance_field @@ -34,7 +34,7 @@ if(BUILD_TESTING) ament_add_gtest(test_collision_distance_field test/test_collision_distance_field.cpp) ament_target_dependencies(test_collision_distance_field geometric_shapes - OCTOMAP srdfdom resource_retriever) + octomap srdfdom resource_retriever) target_link_libraries( test_collision_distance_field moveit_collision_distance_field diff --git a/moveit_core/constraint_samplers/test/pr2_arm_ik.cpp b/moveit_core/constraint_samplers/test/pr2_arm_ik.cpp index 7b97b1cbad..b35496a1a4 100644 --- a/moveit_core/constraint_samplers/test/pr2_arm_ik.cpp +++ b/moveit_core/constraint_samplers/test/pr2_arm_ik.cpp @@ -804,6 +804,6 @@ bool PR2ArmIK::checkJointLimits(const double joint_value, const int joint_num) c jv = angles::normalize_angle(joint_value * angle_multipliers_[joint_num]); } - return !(jv < min_angles_[joint_num] || jv > max_angles_[joint_num]); + return jv >= min_angles_[joint_num] && jv <= max_angles_[joint_num]; } } // namespace pr2_arm_kinematics diff --git a/moveit_core/distance_field/CMakeLists.txt b/moveit_core/distance_field/CMakeLists.txt index ad1700d676..c70886f12f 100644 --- a/moveit_core/distance_field/CMakeLists.txt +++ b/moveit_core/distance_field/CMakeLists.txt @@ -17,7 +17,7 @@ ament_target_dependencies( visualization_msgs geometric_shapes tf2_eigen - OCTOMAP) + octomap) install(DIRECTORY include/ DESTINATION include/moveit_core) @@ -28,5 +28,5 @@ if(BUILD_TESTING) target_link_libraries(test_voxel_grid moveit_distance_field) ament_add_gtest(test_distance_field test/test_distance_field.cpp) - target_link_libraries(test_distance_field moveit_distance_field) + target_link_libraries(test_distance_field moveit_distance_field octomap) endif() diff --git a/moveit_core/distance_field/test/test_distance_field.cpp b/moveit_core/distance_field/test/test_distance_field.cpp index 5792eaa336..62cbfe6d63 100644 --- a/moveit_core/distance_field/test/test_distance_field.cpp +++ b/moveit_core/distance_field/test/test_distance_field.cpp @@ -807,20 +807,17 @@ TEST(TestSignedPropagationDistanceField, TestPerformance) PERF_ORIGIN_Z, PERF_MAX_DIST, true); EigenSTL::vector_Vector3d bad_vec; - unsigned int count = 0; for (unsigned int z = UNIFORM_DISTANCE; z < worstdfu.getZNumCells() - UNIFORM_DISTANCE; z += UNIFORM_DISTANCE) { for (unsigned int x = UNIFORM_DISTANCE; x < worstdfu.getXNumCells() - UNIFORM_DISTANCE; x += UNIFORM_DISTANCE) { for (unsigned int y = UNIFORM_DISTANCE; y < worstdfu.getYNumCells() - UNIFORM_DISTANCE; y += UNIFORM_DISTANCE) { - count++; Eigen::Vector3d loc; bool valid = worstdfu.gridToWorld(x, y, z, loc.x(), loc.y(), loc.z()); if (!valid) { - // RCLCPP_WARN("distance_field", "Something wrong"); continue; } bad_vec.push_back(loc); diff --git a/moveit_core/package.xml b/moveit_core/package.xml index 434aef7c82..f099474c26 100644 --- a/moveit_core/package.xml +++ b/moveit_core/package.xml @@ -41,7 +41,13 @@ libfcl-dev moveit_common moveit_msgs + octomap_msgs osqp_vendor pluginlib diff --git a/moveit_core/planning_scene/CMakeLists.txt b/moveit_core/planning_scene/CMakeLists.txt index 91899f3b79..debb3e5b65 100644 --- a/moveit_core/planning_scene/CMakeLists.txt +++ b/moveit_core/planning_scene/CMakeLists.txt @@ -17,7 +17,7 @@ ament_target_dependencies( urdfdom urdfdom_headers octomap_msgs - OCTOMAP) + octomap) target_link_libraries( moveit_planning_scene diff --git a/moveit_core/robot_model/src/prismatic_joint_model.cpp b/moveit_core/robot_model/src/prismatic_joint_model.cpp index e229910d2f..81e9128053 100644 --- a/moveit_core/robot_model/src/prismatic_joint_model.cpp +++ b/moveit_core/robot_model/src/prismatic_joint_model.cpp @@ -79,7 +79,7 @@ void PrismaticJointModel::getVariableDefaultPositions(double* values, const Boun bool PrismaticJointModel::satisfiesPositionBounds(const double* values, const Bounds& bounds, double margin) const { - return !(values[0] < bounds[0].min_position_ - margin || values[0] > bounds[0].max_position_ + margin); + return values[0] >= bounds[0].min_position_ - margin && values[0] <= bounds[0].max_position_ + margin; } void PrismaticJointModel::getVariableRandomPositions(random_numbers::RandomNumberGenerator& rng, double* values, diff --git a/moveit_core/robot_model/src/revolute_joint_model.cpp b/moveit_core/robot_model/src/revolute_joint_model.cpp index 1b80b4e2e7..524632159c 100644 --- a/moveit_core/robot_model/src/revolute_joint_model.cpp +++ b/moveit_core/robot_model/src/revolute_joint_model.cpp @@ -189,7 +189,7 @@ bool RevoluteJointModel::satisfiesPositionBounds(const double* values, const Bou } else { - return !(values[0] < bounds[0].min_position_ - margin || values[0] > bounds[0].max_position_ + margin); + return values[0] >= bounds[0].min_position_ - margin && values[0] <= bounds[0].max_position_ + margin; } } diff --git a/moveit_core/robot_state/test/robot_state_test.cpp b/moveit_core/robot_state/test/robot_state_test.cpp index 8fdce99e73..cafb5bf01f 100644 --- a/moveit_core/robot_state/test/robot_state_test.cpp +++ b/moveit_core/robot_state/test/robot_state_test.cpp @@ -95,7 +95,7 @@ void checkJacobian(moveit::core::RobotState& state, const moveit::core::JointMod EXPECT_NEAR(angle, 0.0, 1e-05) << "Angle between Cartesian velocity and Cartesian displacement larger than expected. " "Angle: " << angle << ". displacement: " << displacement.transpose() - << ". Cartesian velocity: " << cartesian_velocity.head<3>().transpose() << std::endl; + << ". Cartesian velocity: " << cartesian_velocity.head<3>().transpose() << '\n'; } } // namespace diff --git a/moveit_core/robot_trajectory/include/moveit/robot_trajectory/robot_trajectory.h b/moveit_core/robot_trajectory/include/moveit/robot_trajectory/robot_trajectory.h index 5ca5e86aae..1f77946234 100644 --- a/moveit_core/robot_trajectory/include/moveit/robot_trajectory/robot_trajectory.h +++ b/moveit_core/robot_trajectory/include/moveit/robot_trajectory/robot_trajectory.h @@ -242,7 +242,7 @@ class RobotTrajectory RobotTrajectory& append(const RobotTrajectory& source, double dt, size_t start_index = 0, size_t end_index = std::numeric_limits::max()); - void swap(robot_trajectory::RobotTrajectory& other); + void swap(robot_trajectory::RobotTrajectory& other) noexcept; RobotTrajectory& clear() { diff --git a/moveit_core/robot_trajectory/src/robot_trajectory.cpp b/moveit_core/robot_trajectory/src/robot_trajectory.cpp index 93d3537a41..8e0eed38be 100644 --- a/moveit_core/robot_trajectory/src/robot_trajectory.cpp +++ b/moveit_core/robot_trajectory/src/robot_trajectory.cpp @@ -121,7 +121,7 @@ double RobotTrajectory::getAverageSegmentDuration() const return getDuration() / static_cast(duration_from_previous_.size()); } -void RobotTrajectory::swap(RobotTrajectory& other) +void RobotTrajectory::swap(RobotTrajectory& other) noexcept { robot_model_.swap(other.robot_model_); std::swap(group_, other.group_); @@ -719,7 +719,7 @@ std::optional toJointTrajectory(const Rob const std::vector& joint_filter) { const auto group = trajectory.getGroup(); - const auto robot_model = trajectory.getRobotModel(); + const auto& robot_model = trajectory.getRobotModel(); const std::vector& jnts = group ? group->getActiveJointModels() : robot_model->getActiveJointModels(); diff --git a/moveit_core/version/version.cpp b/moveit_core/version/version.cpp index 533b482cda..498c61cd4c 100644 --- a/moveit_core/version/version.cpp +++ b/moveit_core/version/version.cpp @@ -47,6 +47,6 @@ int main(int /*argc*/, char** /*argv*/) if (strlen(MOVEIT_GIT_NAME)) std::cout << " (" << MOVEIT_GIT_NAME << ")"; } - std::cout << std::endl; + std::cout << '\n'; return 0; } 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 6d4671ea90..fdba5f1f5b 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 @@ -808,7 +808,10 @@ bool IKFastKinematicsPlugin::getPositionFK(const std::vector& link_ return false; } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wvla-cxx-extension" IkReal angles[num_joints_]; +#pragma clang diagnostic pop for (unsigned char i = 0; i < num_joints_; ++i) angles[i] = joint_angles[i]; diff --git a/moveit_planners/pilz_industrial_motion_planner/src/joint_limits_container.cpp b/moveit_planners/pilz_industrial_motion_planner/src/joint_limits_container.cpp index 2247d9f62d..55127d0334 100644 --- a/moveit_planners/pilz_industrial_motion_planner/src/joint_limits_container.cpp +++ b/moveit_planners/pilz_industrial_motion_planner/src/joint_limits_container.cpp @@ -118,26 +118,26 @@ std::map::const_iterator JointLimitsContainer::end() co bool JointLimitsContainer::verifyPositionLimit(const std::string& joint_name, double joint_position) const { - return (!(hasLimit(joint_name) && getLimit(joint_name).has_position_limits && - (joint_position < getLimit(joint_name).min_position || joint_position > getLimit(joint_name).max_position))); + return !hasLimit(joint_name) || !getLimit(joint_name).has_position_limits || + (joint_position >= getLimit(joint_name).min_position && joint_position <= getLimit(joint_name).max_position); } bool JointLimitsContainer::verifyVelocityLimit(const std::string& joint_name, double joint_velocity) const { - return (!(hasLimit(joint_name) && getLimit(joint_name).has_velocity_limits && - fabs(joint_velocity) > getLimit(joint_name).max_velocity)); + return !hasLimit(joint_name) || !getLimit(joint_name).has_velocity_limits || + fabs(joint_velocity) <= getLimit(joint_name).max_velocity; } bool JointLimitsContainer::verifyAccelerationLimit(const std::string& joint_name, double joint_acceleration) const { - return (!(hasLimit(joint_name) && getLimit(joint_name).has_acceleration_limits && - fabs(joint_acceleration) > getLimit(joint_name).max_acceleration)); + return !hasLimit(joint_name) || !getLimit(joint_name).has_acceleration_limits || + fabs(joint_acceleration) <= getLimit(joint_name).max_acceleration; } bool JointLimitsContainer::verifyDecelerationLimit(const std::string& joint_name, double joint_acceleration) const { - return (!(hasLimit(joint_name) && getLimit(joint_name).has_deceleration_limits && - fabs(joint_acceleration) > -1.0 * getLimit(joint_name).max_deceleration)); + return !hasLimit(joint_name) || !getLimit(joint_name).has_deceleration_limits || + fabs(joint_acceleration) <= -1.0 * getLimit(joint_name).max_deceleration; } void JointLimitsContainer::updateCommonLimit(const JointLimit& joint_limit, JointLimit& common_limit) diff --git a/moveit_planners/pilz_industrial_motion_planner/test/CMakeLists.txt b/moveit_planners/pilz_industrial_motion_planner/test/CMakeLists.txt index df01a02d4f..b04badef70 100644 --- a/moveit_planners/pilz_industrial_motion_planner/test/CMakeLists.txt +++ b/moveit_planners/pilz_industrial_motion_planner/test/CMakeLists.txt @@ -1,5 +1,5 @@ find_package(ament_cmake_gtest REQUIRED) -find_package(ament_cmake_gmock REQUIRED) +# find_package(ament_cmake_gmock REQUIRED) find_package(ros_testing REQUIRED) find_package(moveit_resources_prbt_support REQUIRED) find_package(moveit_resources_prbt_moveit_config REQUIRED) diff --git a/moveit_planners/pilz_industrial_motion_planner/test/test_utils.cpp b/moveit_planners/pilz_industrial_motion_planner/test/test_utils.cpp index 844fe72de7..5dcfad0cde 100644 --- a/moveit_planners/pilz_industrial_motion_planner/test/test_utils.cpp +++ b/moveit_planners/pilz_industrial_motion_planner/test/test_utils.cpp @@ -301,9 +301,9 @@ bool testutils::checkSLERP(const Eigen::Isometry3d& start_pose, const Eigen::Iso // parallel rotation axis // it is possible the axis opposite is // if the angle is zero, axis is arbitrary - if (!(((start_goal_aa.axis() - start_wp_aa.axis()).norm() < fabs(rot_axis_norm_tolerance)) || - ((start_goal_aa.axis() + start_wp_aa.axis()).norm() < fabs(rot_axis_norm_tolerance)) || - (fabs(start_wp_aa.angle()) < fabs(rot_angle_tolerance)))) + if (((start_goal_aa.axis() - start_wp_aa.axis()).norm() >= fabs(rot_axis_norm_tolerance)) && + ((start_goal_aa.axis() + start_wp_aa.axis()).norm() >= fabs(rot_axis_norm_tolerance)) && + (fabs(start_wp_aa.angle()) >= fabs(rot_angle_tolerance))) { std::cout << "Rotational linearity is violated. \n" << '\n' diff --git a/moveit_planners/pilz_industrial_motion_planner/test/test_utils.h b/moveit_planners/pilz_industrial_motion_planner/test/test_utils.h index 625f70fd23..758c5ecada 100644 --- a/moveit_planners/pilz_industrial_motion_planner/test/test_utils.h +++ b/moveit_planners/pilz_industrial_motion_planner/test/test_utils.h @@ -477,7 +477,7 @@ checkCartesianRotationalPath(const robot_trajectory::RobotTrajectoryConstPtr& tr inline bool isMonotonouslyDecreasing(const std::vector& vec, double tol) { return std::is_sorted(vec.begin(), vec.end(), [tol](double a, double b) { - return !(std::abs(a - b) < tol || a < b); // true -> a is ordered before b -> list is not sorted + return std::abs(a - b) >= tol && a >= b; // true -> a is ordered before b -> list is not sorted }); } diff --git a/moveit_planners/pilz_industrial_motion_planner/test/unit_tests/CMakeLists.txt b/moveit_planners/pilz_industrial_motion_planner/test/unit_tests/CMakeLists.txt index 2c46012d19..33336c113f 100644 --- a/moveit_planners/pilz_industrial_motion_planner/test/unit_tests/CMakeLists.txt +++ b/moveit_planners/pilz_industrial_motion_planner/test/unit_tests/CMakeLists.txt @@ -14,8 +14,8 @@ set(UNIT_TEST_SOURCEFILES unittest_joint_limits_container unittest_joint_limits_validator unittest_planning_context_loaders - unittest_planning_context - unittest_get_solver_tip_frame) + unittest_planning_context) +# unittest_get_solver_tip_frame) # Direct Command Planner Unit Test ament_add_gtest(unittest_pilz_industrial_motion_planner_direct @@ -144,10 +144,9 @@ target_link_libraries( add_ros_test(launch/unittest_planning_context.test.py ARGS "test_binary_dir:=${CMAKE_CURRENT_BINARY_DIR}") -# GetTipFrames Unit Test -ament_add_gmock(unittest_get_solver_tip_frame - src/unittest_get_solver_tip_frame.cpp) -target_link_libraries(unittest_get_solver_tip_frame ${PROJECT_NAME}) +# GetTipFrames Unit Test ament_add_gmock(unittest_get_solver_tip_frame +# src/unittest_get_solver_tip_frame.cpp) +# target_link_libraries(unittest_get_solver_tip_frame ${PROJECT_NAME}) install( TARGETS ${UNIT_TEST_SOURCEFILES} diff --git a/moveit_plugins/moveit_ros_control_interface/src/controller_manager_plugin.cpp b/moveit_plugins/moveit_ros_control_interface/src/controller_manager_plugin.cpp index 89b5a7bb71..eb7b2e8205 100644 --- a/moveit_plugins/moveit_ros_control_interface/src/controller_manager_plugin.cpp +++ b/moveit_plugins/moveit_ros_control_interface/src/controller_manager_plugin.cpp @@ -255,8 +255,7 @@ class Ros2ControlManager : public moveit_controller_manager::MoveItControllerMan * \brief Configure interface with namespace * @param ns namespace of ros_control node (without /controller_manager/) */ - [[deprecated("Ros2ControlManager constructor with namespace is deprecated. Set namespace via the " - "ros_control_namespace parameter.")]] Ros2ControlManager(const std::string& ns) + Ros2ControlManager(const std::string& ns) : ns_(ns), loader_("moveit_ros_control_interface", "moveit_ros_control_interface::ControllerHandleAllocator") { RCLCPP_INFO_STREAM(getLogger(), "Started moveit_ros_control_interface::Ros2ControlManager for namespace " << ns_); @@ -265,12 +264,18 @@ class Ros2ControlManager : public moveit_controller_manager::MoveItControllerMan void initialize(const rclcpp::Node::SharedPtr& node) override { node_ = node; - // Set the namespace from the ros_control_namespace parameter, or default to "/" - if (!node_->has_parameter("ros_control_namespace")) + if (!ns_.empty()) { - ns_ = node_->declare_parameter("ros_control_namespace", "/"); + if (!node_->has_parameter("ros_control_namespace")) + { + ns_ = node_->declare_parameter("ros_control_namespace", "/"); + } + else + { + node_->get_parameter("ros_control_namespace", ns_); + } } - else + else if (node->has_parameter("ros_control_namespace")) { node_->get_parameter("ros_control_namespace", ns_); RCLCPP_INFO_STREAM(getLogger(), "Namespace for controller manager was specified, namespace: " << ns_); diff --git a/moveit_py/src/moveit/moveit_core/robot_state/robot_state.h b/moveit_py/src/moveit/moveit_core/robot_state/robot_state.h index e688705898..7ac1497b29 100644 --- a/moveit_py/src/moveit/moveit_core/robot_state/robot_state.h +++ b/moveit_py/src/moveit/moveit_core/robot_state/robot_state.h @@ -38,7 +38,12 @@ #include #include +#pragma GCC diagnostic push +#if defined(__GNUC__) && !defined(__clang__) +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#endif #include +#pragma GCC diagnostic pop #include #include #include diff --git a/moveit_ros/occupancy_map_monitor/CMakeLists.txt b/moveit_ros/occupancy_map_monitor/CMakeLists.txt index f10094d162..b8dd549bcb 100644 --- a/moveit_ros/occupancy_map_monitor/CMakeLists.txt +++ b/moveit_ros/occupancy_map_monitor/CMakeLists.txt @@ -13,7 +13,9 @@ find_package(moveit_core REQUIRED) find_package(moveit_msgs REQUIRED) find_package(pluginlib REQUIRED) find_package(Eigen3 REQUIRED) -find_package(octomap REQUIRED) +# Enforce system version liboctomap-dev +# https://github.com/moveit/moveit2/issues/2862 +find_package(octomap 1.9.7...<1.10.0 REQUIRED) find_package(geometric_shapes REQUIRED) find_package(tf2_ros REQUIRED) diff --git a/moveit_ros/occupancy_map_monitor/package.xml b/moveit_ros/occupancy_map_monitor/package.xml index e080fff0a6..44fdf48b47 100644 --- a/moveit_ros/occupancy_map_monitor/package.xml +++ b/moveit_ros/occupancy_map_monitor/package.xml @@ -26,7 +26,13 @@ rclcpp moveit_core moveit_msgs + pluginlib tf2_ros geometric_shapes 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 da7b7b0537..8a863ef80d 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 @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -166,7 +167,7 @@ void TrajectoryExecutionManager::initialize() rclcpp::NodeOptions opt; opt.allow_undeclared_parameters(true); opt.automatically_declare_parameters_from_overrides(true); - controller_mgr_node_.reset(new rclcpp::Node("moveit_simple_controller_manager", opt)); + controller_mgr_node_ = std::make_shared("moveit_simple_controller_manager", opt); auto all_params = node_->get_node_parameters_interface()->get_parameter_overrides(); for (const auto& param : all_params) @@ -939,12 +940,12 @@ bool TrajectoryExecutionManager::validate(const TrajectoryExecutionContext& cont } std::set joints; - for (std::size_t i = 0, end = joint_names.size(); i < end; ++i) + for (const auto& joint_name : joint_names) { - const moveit::core::JointModel* jm = robot_model_->getJointOfVariable(joint_names[i]); + const moveit::core::JointModel* jm = robot_model_->getJointOfVariable(joint_name); if (!jm) { - RCLCPP_ERROR_STREAM(logger_, "Unknown joint in trajectory: " << joint_names[i]); + RCLCPP_ERROR_STREAM(logger_, "Unknown joint in trajectory: " << joint_name); return false; } diff --git a/moveit_ros/planning_interface/planning_scene_interface/src/planning_scene_interface.cpp b/moveit_ros/planning_interface/planning_scene_interface/src/planning_scene_interface.cpp index 2e589cf982..a4277f0731 100644 --- a/moveit_ros/planning_interface/planning_scene_interface/src/planning_scene_interface.cpp +++ b/moveit_ros/planning_interface/planning_scene_interface/src/planning_scene_interface.cpp @@ -127,8 +127,8 @@ class PlanningSceneInterface::PlanningSceneInterfaceImpl bool good = true; for (const geometry_msgs::msg::Pose& mesh_pose : collision_object.mesh_poses) { - if (!(mesh_pose.position.x >= minx && mesh_pose.position.x <= maxx && mesh_pose.position.y >= miny && - mesh_pose.position.y <= maxy && mesh_pose.position.z >= minz && mesh_pose.position.z <= maxz)) + if (mesh_pose.position.x < minx || mesh_pose.position.x > maxx || mesh_pose.position.y < miny || + mesh_pose.position.y > maxy || mesh_pose.position.z < minz || mesh_pose.position.z > maxz) { good = false; break; @@ -136,9 +136,8 @@ class PlanningSceneInterface::PlanningSceneInterfaceImpl } for (const geometry_msgs::msg::Pose& primitive_pose : collision_object.primitive_poses) { - if (!(primitive_pose.position.x >= minx && primitive_pose.position.x <= maxx && - primitive_pose.position.y >= miny && primitive_pose.position.y <= maxy && - primitive_pose.position.z >= minz && primitive_pose.position.z <= maxz)) + if (primitive_pose.position.x < minx || primitive_pose.position.x > maxx || primitive_pose.position.y < miny || + primitive_pose.position.y > maxy || primitive_pose.position.z < minz || primitive_pose.position.z > maxz) { good = false; break; diff --git a/moveit_ros/visualization/rviz_plugin_render_tools/src/octomap_render.cpp b/moveit_ros/visualization/rviz_plugin_render_tools/src/octomap_render.cpp index 5a36c4d082..393d11bc9e 100755 --- a/moveit_ros/visualization/rviz_plugin_render_tools/src/octomap_render.cpp +++ b/moveit_ros/visualization/rviz_plugin_render_tools/src/octomap_render.cpp @@ -159,7 +159,6 @@ void OcTreeRender::octreeDecoding(const std::shared_ptr& unsigned int render_mode_mask = static_cast(octree_voxel_rendering); - size_t point_count = 0; { int step_size = 1 << (octree->getTreeDepth() - octree_depth_); // for pruning of occluded voxels @@ -242,8 +241,6 @@ void OcTreeRender::octreeDecoding(const std::shared_ptr& // push to point vectors unsigned int depth = it.getDepth(); point_buf[depth - 1].push_back(new_point); - - ++point_count; } } } 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 4b3fae3440..c5ad29cbf0 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 @@ -118,6 +118,7 @@ class SRDFConfig : public SetupConfig std::vector getGroupNames() const { std::vector group_names; + group_names.reserve(srdf_.groups_.size()); for (const srdf::Model::Group& group : srdf_.groups_) { group_names.push_back(group.name_); diff --git a/moveit_setup_assistant/moveit_setup_srdf_plugins/src/collision_linear_model.cpp b/moveit_setup_assistant/moveit_setup_srdf_plugins/src/collision_linear_model.cpp index e6564a876c..9fb5b65d1b 100644 --- a/moveit_setup_assistant/moveit_setup_srdf_plugins/src/collision_linear_model.cpp +++ b/moveit_setup_assistant/moveit_setup_srdf_plugins/src/collision_linear_model.cpp @@ -260,8 +260,8 @@ void SortFilterProxyModel::setShowAll(bool show_all) bool SortFilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex& source_parent) const { CollisionLinearModel* m = qobject_cast(sourceModel()); - if (!(show_all_ || m->reason(source_row) <= ALWAYS || - m->data(m->index(source_row, 2), Qt::CheckStateRole) == Qt::Checked)) + if (!show_all_ && m->reason(source_row) > ALWAYS && + m->data(m->index(source_row, 2), Qt::CheckStateRole) != Qt::Checked) return false; // not accepted due to check state const QRegExp regexp = filterRegExp();