diff --git a/.docker/Dockerfile b/.docker/Dockerfile index e1362f930a..81e793544c 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -61,7 +61,7 @@ RUN --mount=type=cache,target=/root/.ccache/ \ # Enable ccache . "/opt/ros/${ROS_DISTRO}/setup.sh" &&\ . "install/setup.sh" &&\ - sudo apt update && rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y && \ + sudo apt update && rosdep update && rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y && \ colcon build \ --cmake-args -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ diff --git a/.github/upstream.repos b/.github/upstream.repos index f09982304c..0434120587 100644 --- a/.github/upstream.repos +++ b/.github/upstream.repos @@ -30,3 +30,8 @@ repositories: type: git url: https://github.com/tylerjw/serial.git version: ros2 + # picknik_controllers, which is removed for rolling in https://github.com/moveit/moveit2_tutorials/pull/1104, is a dependency of ros2_kortex. Remove when rolling binaries are available. + picknik_controllers: + type: git + url: https://github.com/PickNikRobotics/picknik_controllers.git + version: 0.0.4 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index af0f185e45..cae8250bb7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,28 +18,38 @@ on: jobs: default: strategy: + fail-fast: false matrix: env: + - IMAGE: jazzy-release + - IMAGE: main-jazzy-tutorial-source - IMAGE: rolling-source + include: + - env: + IMAGE: rolling-source + continue-on-error: true + + continue-on-error: ${{ matrix.continue-on-error || false }} env: DOCKER_IMAGE: moveit/moveit2:${{ matrix.env.IMAGE }} + BEFORE_INIT: git config --global --add safe.directory '*' UPSTREAM_WORKSPACE: .github/upstream.repos AFTER_SETUP_UPSTREAM_WORKSPACE: vcs pull $BASEDIR/upstream_ws/src - AFTER_SETUP_UPSTREAM_WORKSPACE_EMBED: set +u && source ~/ws_moveit/install/setup.bash && set - u + BEFORE_BUILD_TARGET_WORKSPACE: set +u && if [ -f ~/ws_moveit/install/setup.bash ]; then source ~/ws_moveit/install/setup.bash; fi && set -u TARGET_CMAKE_ARGS: -DCMAKE_BUILD_TYPE=Release CCACHE_DIR: ${{ github.workspace }}/.ccache BASEDIR: ${{ github.workspace }}/.work CACHE_PREFIX: ${{ matrix.env.IMAGE }} name: ${{ matrix.env.IMAGE }} - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 - name: cache upstream_ws - uses: actions/cache@v4 + uses: actions/cache@v6 with: save-always: true path: ${{ env.BASEDIR }}/upstream_ws @@ -49,7 +59,7 @@ jobs: # The target directory cache doesn't include the source directory because # that comes from the checkout. See "prepare target_ws for cache" task below - name: cache target_ws - uses: actions/cache@v4 + uses: actions/cache@v6 with: save-always: true path: ${{ env.BASEDIR }}/target_ws @@ -57,7 +67,7 @@ jobs: restore-keys: | target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }} - name: cache ccache - uses: actions/cache@v4 + uses: actions/cache@v6 with: save-always: true path: ${{ env.CCACHE_DIR }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 96777f2236..fefd0e1cc3 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -19,7 +19,7 @@ jobs: container: image: moveit/moveit2:rolling-source steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Install Python dependencies shell: bash @@ -59,7 +59,7 @@ jobs: container: image: ${{ matrix.container }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install Python dependencies shell: bash @@ -94,7 +94,7 @@ jobs: runs-on: ubuntu-latest needs: upload_site_artifacts steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index ab27e81765..ab8949d2ef 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -1,28 +1,31 @@ # This is a format job. Pre-commit has a first-party GitHub action, so we use # that: https://github.com/pre-commit/action -name: Format +name: Formatting (pre-commit) on: workflow_dispatch: pull_request: + merge_group: push: branches: - main - - humble - -permissions: - contents: read # to fetch code (actions/checkout) jobs: pre-commit: name: Format - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 with: python-version: '3.10' - name: Install clang-format-14 run: sudo apt-get install clang-format-14 - uses: pre-commit/action@v3.0.1 + id: precommit + - name: Upload pre-commit changes + if: failure() && steps.precommit.outcome == 'failure' + uses: rhaschke/upload-git-patch-action@main + with: + name: pre-commit diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 566d5c8132..eead74f81c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,7 +15,7 @@ repos: # Standard hooks - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-added-large-files - id: check-case-conflict diff --git a/doc/examples/examples.rst b/doc/examples/examples.rst index 7f68fe8b2c..334317cde1 100644 --- a/doc/examples/examples.rst +++ b/doc/examples/examples.rst @@ -51,7 +51,7 @@ The MoveIt Python API binds a subset of the C++ API. The Python API is useful fo Integration with a New Robot ---------------------------- -Before attempting to integrate a new robot with MoveIt 2, check whether your robot has already been set up (see the `list of robots running MoveIt `_). Otherwise, follow the tutorials in this section to integrate your robot with MoveIt. +Before attempting to integrate a new robot with MoveIt 2, check whether your robot has already been set up (see the `list of robots running MoveIt `_). Otherwise, follow the tutorials in this section to integrate your robot with MoveIt. .. toctree:: :maxdepth: 1 diff --git a/doc/examples/motion_planning_pipeline/CMakeLists.txt b/doc/examples/motion_planning_pipeline/CMakeLists.txt index cf944450f6..43b57764ac 100644 --- a/doc/examples/motion_planning_pipeline/CMakeLists.txt +++ b/doc/examples/motion_planning_pipeline/CMakeLists.txt @@ -1,3 +1,9 @@ +==== BASE ==== +find_package(graph_msgs REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) + +==== BASE ==== add_executable(motion_planning_pipeline_tutorial src/motion_planning_pipeline_tutorial.cpp) target_include_directories(motion_planning_pipeline_tutorial diff --git a/doc/examples/ompl_interface/ompl_interface_tutorial.rst b/doc/examples/ompl_interface/ompl_interface_tutorial.rst index 0a39044da5..163e049767 100644 --- a/doc/examples/ompl_interface/ompl_interface_tutorial.rst +++ b/doc/examples/ompl_interface/ompl_interface_tutorial.rst @@ -133,7 +133,7 @@ You can adjust the amount of time MoveIt spends on smoothing by increasing the p Although not currently exposed at the top levels of MoveIt (TODO), more smoothing can be accomplished by setting the simplification duration to 0 (unlimited) in ``model_based_planning_context.cpp``. This will enable OMPL's ``simplifyMax()`` function. -Besides the internal OMPL smoothers, recent efforts have been made to do post-proccessing with STOMP/CHOMP. See `this blog post `_. +Besides the internal OMPL smoothers, recent efforts have been made to do post-proccessing with STOMP/CHOMP. See `this blog post `_. Persistent Roadmaps ------------------- diff --git a/doc/examples/planning_adapters/planning_adapters_tutorial.rst b/doc/examples/planning_adapters/planning_adapters_tutorial.rst index 6155ba1f6d..084f0e2637 100644 --- a/doc/examples/planning_adapters/planning_adapters_tutorial.rst +++ b/doc/examples/planning_adapters/planning_adapters_tutorial.rst @@ -26,7 +26,7 @@ As you add and remove packages from your workspace you will need to clean your w cd ~/ws_moveit/src catkin clean -Now follow the instructions on the MoveIt homepage for `installing MoveIt Melodic from source `_. Note that you can skip the **Prerequisites** section since you should already have a Catkin workspace. +Now follow the instructions on the MoveIt homepage for `installing MoveIt Humble/jazzy/rolling from source `_. Note that you can skip the **Prerequisites** section since you should already have a Catkin workspace. Re-source the setup files: :: diff --git a/index.rst b/index.rst index 411fe56d98..f9d515c4e6 100644 --- a/index.rst +++ b/index.rst @@ -6,7 +6,7 @@ Welcome to the unified MoveIt documentation, which includes tutorials, how-to gu MoveIt 2 is the robotic manipulation platform for ROS 2 and incorporates the latest advances in motion planning, manipulation, 3D perception, kinematics, control, and navigation. MoveIt 2 was first released in 2019; for ROS 1 documentation, see `MoveIt 1 tutorials `_. For the commercially supported version see `MoveIt Pro tutorials `_. -.. image:: http://moveit.ros.org/assets/images/roadmap.png +.. image:: https://moveit.ai/assets/logo/moveit_logo-white.png :width: 400px How-To Use This Website @@ -42,5 +42,5 @@ Help us improve these docs and we'll be happy to include you here also! Corporate Sponsorship --------------------- -* The tutorials had a major update in 2018 during a code sprint sponsored by Franka Emika in collaboration with `PickNik Robotics `_ (`Check out the blog post! `_) +* The tutorials had a major update in 2018 during a code sprint sponsored by Franka Emika in collaboration with `PickNik Robotics `_ (`Check out the blog post! `_) * The tutorials had another major update in 2022 during a doc-a-thon sponsored by `PickNik Robotics `_.