mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-06 01:37:46 +08:00
Replace the standalone reproducer with registered C++ GoogleTests for 2D and 3D scan recovery. Use real ROS inputs, separate DDS domains and bounded timeouts, and include rtabmap_slam in supported CI and coverage jobs. Validated on Jazzy with RTAB-Map core 9ed83a7: both negative controls fail map recovery without the unlocks; both pass with the fix, followed by five repeated runs per case (10/10 passed). Broader distro CI has not been run locally.
70 lines
2.8 KiB
YAML
70 lines
2.8 KiB
YAML
|
|
name: ros2
|
|
|
|
on:
|
|
push:
|
|
branches: [ ros2 ]
|
|
pull_request:
|
|
branches: [ ros2 ]
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
BUILD_TYPE: Release
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
jobs:
|
|
build:
|
|
name: Build ros2 ${{ matrix.ros_distro }}
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
ros_distro: [humble, jazzy, kilted, lyrical, rolling]
|
|
include:
|
|
- ros_distro: humble
|
|
skip_keys: ''
|
|
packages: 'rtabmap_slam rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python'
|
|
- ros_distro: jazzy
|
|
skip_keys: ''
|
|
packages: 'rtabmap_slam rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python'
|
|
- ros_distro: kilted
|
|
skip_keys: 'grid_map_ros'
|
|
packages: 'rtabmap_slam rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python'
|
|
- ros_distro: lyrical
|
|
skip_keys: 'velodyne grid_map_ros libpointmatcher'
|
|
packages: 'rtabmap_slam rtabmap_ros rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python'
|
|
- ros_distro: rolling
|
|
# Rolling has moved to Ubuntu resolute and much of it has not been rebuilt for
|
|
# that yet, so rosdep finds nothing to install for these. They are all optional
|
|
# to rtabmap, which just builds without them.
|
|
skip_keys: 'velodyne libpointmatcher gtsam grid_map_ros'
|
|
use_ros2_testing: true # Rolling is using ros2-testing (nightly)
|
|
# nav2 is missing from resolute too, and it is not optional: rtabmap_slam and
|
|
# rtabmap_costmap_plugins need it to compile at all, and the rtabmap_ros
|
|
# metapackage pulls both in. So rolling names the packages it can build.
|
|
packages: 'rtabmap_conversions rtabmap_odom rtabmap_sync rtabmap_util rtabmap_python'
|
|
fail-fast: false
|
|
container:
|
|
image: osrf/ros:${{ matrix.ros_distro }}-desktop-full
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: ros-tooling/[email protected]
|
|
with:
|
|
required-ros-distributions: ${{ matrix.ros_distro }}
|
|
use-ros2-testing: ${{ matrix.use_ros2_testing || false }}
|
|
- run: |
|
|
DEBIAN_FRONTEND=noninteractive
|
|
sudo apt update
|
|
sudo apt upgrade -y
|
|
- run: |
|
|
echo "repositories:\n introlab/rtabmap:\n type: git\n url: https://github.com/introlab/rtabmap.git\n version: master\n" > /tmp/deps.repos &&\
|
|
cat /tmp/deps.repos
|
|
- uses: ros-tooling/[email protected]
|
|
with:
|
|
package-name: ${{ matrix.packages }}
|
|
target-ros2-distro: ${{ matrix.ros_distro }}
|
|
vcs-repo-file-url: /tmp/deps.repos
|
|
rosdep-skip-keys: "${{ matrix.skip_keys }}"
|