mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 17:40:23 +08:00
CI Ubuntu 26.04 / ROS2 Lyrical and Rolling (#1716)
* CI Ubuntu 26.04 / ROS2 Lyrical and Rolling * Added resolute docker * added skip keys * rolling * Disabling rolling * Updated ci config * Enabling docker build (no push) on PR * cancel pr jobs on recommit * Added resolute to docker ci matrix * OpenGV min cmake version * bump package.xml version * enabling rolling * refactored cmake ros ci jobs
This commit is contained in:
25
.devcontainer/resolute/Dockerfile
Normal file
25
.devcontainer/resolute/Dockerfile
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
FROM introlab3it/rtabmap:resolute-deps
|
||||||
|
|
||||||
|
# For devcontainer
|
||||||
|
# remove ubuntu user
|
||||||
|
RUN touch /var/mail/ubuntu && chown ubuntu /var/mail/ubuntu && userdel -r ubuntu
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y sudo && \
|
||||||
|
apt-get clean && rm -rf /var/lib/apt/lists/
|
||||||
|
|
||||||
|
ARG USERNAME=vscode
|
||||||
|
ARG USER_UID=1000
|
||||||
|
ARG USER_GID=1000
|
||||||
|
|
||||||
|
RUN set -ex && \
|
||||||
|
groupadd --gid ${USER_GID} ${USERNAME} && \
|
||||||
|
useradd --uid ${USER_UID} --gid ${USER_GID} -m ${USERNAME} && \
|
||||||
|
usermod -a -G sudo ${USERNAME} && \
|
||||||
|
echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USERNAME} && \
|
||||||
|
chmod 0440 /etc/sudoers.d/${USERNAME}
|
||||||
|
|
||||||
|
RUN mkdir -p /home/${USERNAME}/Documents/RTAB-Map && chown -R ${USERNAME} /home/${USERNAME}
|
||||||
|
|
||||||
|
RUN echo "source /usr/share/bash-completion/completions/git" >> /home/${USERNAME}/.bashrc
|
||||||
|
|
||||||
|
|
||||||
30
.devcontainer/resolute/devcontainer.json
Normal file
30
.devcontainer/resolute/devcontainer.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "Dockerfile"
|
||||||
|
},
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": ["ms-vscode.cpptools-themes", "ms-vscode.cmake-tools", "ms-vscode.cpptools-extension-pack"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"workspaceMount": "source=${localWorkspaceFolder},target=/home/vscode/rtabmap,type=bind",
|
||||||
|
"workspaceFolder": "/home/vscode/rtabmap",
|
||||||
|
//"mounts": ["source=${localEnv:HOME}/Documents/RTAB-Map,target=/home/vscode/Documents/RTAB-Map,type=bind,consistency=cached"],
|
||||||
|
"settings": {
|
||||||
|
"terminal.integrated.defaultProfile.linux": "bash"
|
||||||
|
},
|
||||||
|
"remoteUser": "vscode",
|
||||||
|
"hostRequirements": {
|
||||||
|
"gpu": "optional"
|
||||||
|
},
|
||||||
|
"runArgs": ["--privileged",
|
||||||
|
"--network=host",
|
||||||
|
"--gpus=all",
|
||||||
|
//"--runtime=nvidia", // uncommment this if rtabmap doesn't show up in nvidia-smi on the host computer
|
||||||
|
"--env=DISPLAY",
|
||||||
|
"--env=QT_X11_NO_MITSHM=1",
|
||||||
|
"--volume=/tmp/.X11-unix:/tmp/.X11-unix"],
|
||||||
|
"containerEnv": {
|
||||||
|
"NVIDIA_VISIBLE_DEVICES": "all"
|
||||||
|
}
|
||||||
|
}
|
||||||
6
.github/workflows/cmake-linux.yml
vendored
6
.github/workflows/cmake-linux.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: true
|
fail-fast: true
|
||||||
matrix:
|
matrix:
|
||||||
build_name: [ubuntu-22.04, ubuntu-24.04, ubuntu-24.04-with-opengv]
|
build_name: [ubuntu-22.04, ubuntu-24.04, ubuntu-24.04-with-opengv, ubuntu-26.04]
|
||||||
include:
|
include:
|
||||||
- build_name: ubuntu-22.04
|
- build_name: ubuntu-22.04
|
||||||
os: ubuntu-22.04
|
os: ubuntu-22.04
|
||||||
@@ -36,6 +36,10 @@ jobs:
|
|||||||
os: ubuntu-24.04
|
os: ubuntu-24.04
|
||||||
extra_deps: "libg2o-dev libceres-dev"
|
extra_deps: "libg2o-dev libceres-dev"
|
||||||
extra_cmake_def: "-DWITH_CERES=ON -DWITH_PYTHON=ON -DBUILD_OPENGV=ON"
|
extra_cmake_def: "-DWITH_CERES=ON -DWITH_PYTHON=ON -DBUILD_OPENGV=ON"
|
||||||
|
- build_name: ubuntu-26.04
|
||||||
|
os: ubuntu-26.04
|
||||||
|
extra_deps: "libg2o-dev libceres-dev"
|
||||||
|
extra_cmake_def: "-DWITH_CERES=ON -DWITH_PYTHON=ON -DBUILD_OPENGV=ON"
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
63
.github/workflows/cmake-ros.yml
vendored
63
.github/workflows/cmake-ros.yml
vendored
@@ -22,62 +22,33 @@ jobs:
|
|||||||
# well on Windows or Mac. You can convert this to a matrix build if you need
|
# well on Windows or Mac. You can convert this to a matrix build if you need
|
||||||
# cross-platform coverage.
|
# cross-platform coverage.
|
||||||
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
|
||||||
name: ${{ matrix.ros_distribution }}-${{ matrix.os }}
|
name: ${{ matrix.ros_distribution }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
ros_distribution: [ humble, jazzy, kilted, rolling ]
|
ros_distribution: [ humble, jazzy, kilted, lyrical, rolling]
|
||||||
include:
|
include:
|
||||||
- ros_distribution: 'humble'
|
- ros_distribution: 'humble'
|
||||||
os: ubuntu-22.04
|
skip_keys: ""
|
||||||
- ros_distribution: 'jazzy'
|
- ros_distribution: 'jazzy'
|
||||||
os: ubuntu-24.04
|
skip_keys: ""
|
||||||
- ros_distribution: 'kilted'
|
- ros_distribution: 'kilted'
|
||||||
os: ubuntu-24.04
|
skip_keys: ""
|
||||||
|
- ros_distribution: 'lyrical'
|
||||||
|
skip_keys: "libpointmatcher"
|
||||||
- ros_distribution: 'rolling'
|
- ros_distribution: 'rolling'
|
||||||
os: ubuntu-24.04
|
skip_keys: ""
|
||||||
|
container:
|
||||||
|
image: osrf/ros:${{ matrix.ros_distribution }}-desktop-full
|
||||||
steps:
|
steps:
|
||||||
- name: Setup ROS2
|
- uses: actions/checkout@v4
|
||||||
# https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html
|
|
||||||
run: |
|
|
||||||
sudo apt install software-properties-common
|
|
||||||
sudo add-apt-repository universe
|
|
||||||
sudo apt update && sudo apt install curl -y
|
|
||||||
export ROS_APT_SOURCE_VERSION=$(curl -s https://api.github.com/repos/ros-infrastructure/ros-apt-source/releases/latest | grep -F "tag_name" | awk -F\" '{print $4}')
|
|
||||||
curl -L -o /tmp/ros2-apt-source.deb "https://github.com/ros-infrastructure/ros-apt-source/releases/download/${ROS_APT_SOURCE_VERSION}/ros2-apt-source_${ROS_APT_SOURCE_VERSION}.$(. /etc/os-release && echo ${UBUNTU_CODENAME:-${VERSION_CODENAME}})_all.deb"
|
|
||||||
sudo apt install /tmp/ros2-apt-source.deb
|
|
||||||
sudo apt update
|
|
||||||
|
|
||||||
- uses: ros-tooling/setup-ros@v0.7
|
- uses: ros-tooling/setup-ros@v0.7
|
||||||
with:
|
with:
|
||||||
required-ros-distributions: ${{ matrix.ros_distribution }}
|
required-ros-distributions: ${{ matrix.ros_distribution }}
|
||||||
|
- uses: ros-tooling/action-ros-ci@v0.4
|
||||||
- uses: actions/checkout@v4
|
with:
|
||||||
|
package-name: rtabmap
|
||||||
- name: Point rosdep to latest Rolling on Noble until github runners support ubuntu 26.04
|
target-ros2-distro: ${{ matrix.ros_distribution }}
|
||||||
if: matrix.ros_distribution == 'rolling'
|
rosdep-skip-keys: "${{ matrix.skip_keys }}"
|
||||||
run: |
|
|
||||||
echo "ROSDISTRO_INDEX_URL=https://raw.githubusercontent.com/ros/rosdistro/6527fa694360d609c1491528ed50437bd853af5b/index-v4.yaml" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
source /opt/ros/${{ matrix.ros_distribution }}/setup.bash
|
|
||||||
rosdep update
|
|
||||||
rosdep install --from-paths ${{github.workspace}} -y
|
|
||||||
|
|
||||||
- name: Configure CMake
|
|
||||||
run: |
|
|
||||||
source /opt/ros/${{ matrix.ros_distribution }}/setup.bash
|
|
||||||
cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
|
|
||||||
|
|
||||||
- name: Info
|
|
||||||
working-directory: ${{github.workspace}}/build/bin
|
|
||||||
run: |
|
|
||||||
source /opt/ros/${{ matrix.ros_distribution }}/setup.bash
|
|
||||||
./rtabmap-console --version
|
|
||||||
|
|
||||||
|
|||||||
40
.github/workflows/docker.yml
vendored
40
.github/workflows/docker.yml
vendored
@@ -4,6 +4,13 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- 'master'
|
- 'master'
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- '**'
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
docker_deps:
|
docker_deps:
|
||||||
@@ -15,14 +22,15 @@ jobs:
|
|||||||
# $ sudo apt-get upgrade qemu-user-static
|
# $ sudo apt-get upgrade qemu-user-static
|
||||||
# $ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes
|
# $ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes
|
||||||
# More info: https://github.com/introlab/rtabmap/issues/1454
|
# More info: https://github.com/introlab/rtabmap/issues/1454
|
||||||
# if: false
|
# Skipped on pull requests; built and pushed only on push to master.
|
||||||
|
if: github.event_name != 'pull_request'
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
docker_tag: [focal-deps, jammy-deps, noble-deps, noble-kilted-deps]
|
docker_tag: [focal-deps, jammy-deps, noble-deps, noble-kilted-deps, resolute-deps]
|
||||||
include:
|
include:
|
||||||
- docker_tag: focal-deps
|
- docker_tag: focal-deps
|
||||||
docker_tags: |
|
docker_tags: |
|
||||||
@@ -52,6 +60,13 @@ jobs:
|
|||||||
linux/amd64
|
linux/amd64
|
||||||
linux/arm64
|
linux/arm64
|
||||||
docker_path: 'noble-kilted/deps'
|
docker_path: 'noble-kilted/deps'
|
||||||
|
- docker_tag: resolute-deps
|
||||||
|
docker_tags: |
|
||||||
|
introlab3it/rtabmap:resolute-deps
|
||||||
|
docker_platforms: |
|
||||||
|
linux/amd64
|
||||||
|
linux/arm64
|
||||||
|
docker_path: 'resolute/deps'
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
@@ -85,12 +100,14 @@ jobs:
|
|||||||
|
|
||||||
docker:
|
docker:
|
||||||
needs: docker_deps
|
needs: docker_deps
|
||||||
|
# Run even when docker_deps is skipped (it is, on pull requests).
|
||||||
|
if: ${{ !cancelled() && !failure() }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
docker_tag: [bionic, focal, jammy, noble, noble-kilted, android23, android24, android26, android30]
|
docker_tag: [bionic, focal, jammy, noble, noble-kilted, resolute, android23, android24, android26, android30]
|
||||||
include:
|
include:
|
||||||
- docker_tag: bionic
|
- docker_tag: bionic
|
||||||
docker_tags: |
|
docker_tags: |
|
||||||
@@ -142,6 +159,16 @@ jobs:
|
|||||||
linux/amd64
|
linux/amd64
|
||||||
linux/arm64
|
linux/arm64
|
||||||
docker_path: 'noble-kilted'
|
docker_path: 'noble-kilted'
|
||||||
|
- docker_tag: resolute
|
||||||
|
docker_tags: |
|
||||||
|
introlab3it/rtabmap:resolute
|
||||||
|
introlab3it/rtabmap:26.04
|
||||||
|
docker_args: |
|
||||||
|
NOT_USED=0
|
||||||
|
docker_platforms: |
|
||||||
|
linux/amd64
|
||||||
|
linux/arm64
|
||||||
|
docker_path: 'resolute'
|
||||||
- docker_tag: android23
|
- docker_tag: android23
|
||||||
docker_tags: |
|
docker_tags: |
|
||||||
introlab3it/rtabmap:android23
|
introlab3it/rtabmap:android23
|
||||||
@@ -190,6 +217,9 @@ jobs:
|
|||||||
uses: docker/setup-buildx-action@v3
|
uses: docker/setup-buildx-action@v3
|
||||||
-
|
-
|
||||||
name: Login to DockerHub
|
name: Login to DockerHub
|
||||||
|
# Only needed when pushing; skipped on pull requests (secrets are
|
||||||
|
# unavailable for fork PRs and we don't push there anyway).
|
||||||
|
if: github.event_name != 'pull_request'
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
@@ -199,8 +229,8 @@ jobs:
|
|||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
push: true
|
push: ${{ github.event_name != 'pull_request' }}
|
||||||
platforms: ${{ matrix.docker_platforms }}
|
platforms: ${{ github.event_name == 'pull_request' && 'linux/amd64' || matrix.docker_platforms }}
|
||||||
file: ./docker/${{ matrix.docker_path }}/Dockerfile
|
file: ./docker/${{ matrix.docker_path }}/Dockerfile
|
||||||
build-args: |
|
build-args: |
|
||||||
${{ matrix.docker_args }}
|
${{ matrix.docker_args }}
|
||||||
|
|||||||
@@ -901,6 +901,9 @@ IF(WITH_OPENGV OR okvis_FOUND)
|
|||||||
set(BUILD_TESTS OFF)
|
set(BUILD_TESTS OFF)
|
||||||
set(CMAKE_BUILD_TYPE Release)
|
set(CMAKE_BUILD_TYPE Release)
|
||||||
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
|
set(CMAKE_POLICY_DEFAULT_CMP0077 NEW)
|
||||||
|
# OpenGV's CMakeLists.txt declares cmake_minimum_required(VERSION 2.x),
|
||||||
|
# which CMake >= 4.0 (e.g. recent Ubuntu) rejects. Allow it to configure.
|
||||||
|
set(CMAKE_POLICY_VERSION_MINIMUM 3.5)
|
||||||
# Eigen should have been already added by PCL, just populate the compatible variables
|
# Eigen should have been already added by PCL, just populate the compatible variables
|
||||||
IF(EIGEN_INCLUDE_DIRS)
|
IF(EIGEN_INCLUDE_DIRS)
|
||||||
set(EIGEN_INCLUDE_DIRS "${EIGEN_INCLUDE_DIRS}" CACHE PATH "Eigen include dirs" FORCE)
|
set(EIGEN_INCLUDE_DIRS "${EIGEN_INCLUDE_DIRS}" CACHE PATH "Eigen include dirs" FORCE)
|
||||||
|
|||||||
20
docker/resolute/Dockerfile
Normal file
20
docker/resolute/Dockerfile
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
# Image: introlab3it/rtabmap:resolute
|
||||||
|
|
||||||
|
FROM introlab3it/rtabmap:resolute-deps
|
||||||
|
|
||||||
|
# Will be used to read/store databases on host
|
||||||
|
RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
|
||||||
|
|
||||||
|
# Copy current source code
|
||||||
|
COPY . /root/rtabmap
|
||||||
|
|
||||||
|
# Build RTAB-Map project
|
||||||
|
RUN source /ros_entrypoint.sh && \
|
||||||
|
cd rtabmap/build && \
|
||||||
|
cmake -DWITH_OPENGV=ON .. && \
|
||||||
|
make -j4 && \
|
||||||
|
make install && \
|
||||||
|
cd ../.. && \
|
||||||
|
rm -rf rtabmap && \
|
||||||
|
ldconfig
|
||||||
|
|
||||||
119
docker/resolute/deps/Dockerfile
Normal file
119
docker/resolute/deps/Dockerfile
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
|
||||||
|
# Image: introlab3it/rtabmap:resolute-deps
|
||||||
|
|
||||||
|
FROM ubuntu:26.04
|
||||||
|
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
ENV TARGETPLATFORM=${TARGETPLATFORM:-linux/amd64}
|
||||||
|
RUN echo "I am building for $TARGETPLATFORM"
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# Install ROS2
|
||||||
|
RUN apt update && \
|
||||||
|
apt install software-properties-common -y && \
|
||||||
|
add-apt-repository universe && \
|
||||||
|
apt update && \
|
||||||
|
apt install curl -y && \
|
||||||
|
curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg && \
|
||||||
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | tee /etc/apt/sources.list.d/ros2.list > /dev/null && \
|
||||||
|
apt-get clean && rm -rf /var/lib/apt/lists/
|
||||||
|
|
||||||
|
# Install build dependencies
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt upgrade -y && \
|
||||||
|
apt-get install -y \
|
||||||
|
git \
|
||||||
|
wget \
|
||||||
|
libtbb-dev \
|
||||||
|
libproj-dev \
|
||||||
|
libpcl-dev \
|
||||||
|
liboctomap-dev \
|
||||||
|
libfreenect-dev \
|
||||||
|
libceres-dev \
|
||||||
|
ros-lyrical-ros-base \
|
||||||
|
ros-dev-tools \
|
||||||
|
ros-lyrical-cv-bridge \
|
||||||
|
ros-lyrical-image-geometry \
|
||||||
|
ros-lyrical-laser-geometry \
|
||||||
|
ros-lyrical-pcl-conversions \
|
||||||
|
ros-lyrical-rviz-common \
|
||||||
|
ros-lyrical-rviz-rendering \
|
||||||
|
ros-lyrical-rviz-default-plugins \
|
||||||
|
ros-lyrical-pcl-ros \
|
||||||
|
ros-lyrical-imu-filter-madgwick \
|
||||||
|
ros-lyrical-image-transport \
|
||||||
|
ros-lyrical-octomap-msgs \
|
||||||
|
ros-lyrical-libg2o \
|
||||||
|
ros-lyrical-gtsam \
|
||||||
|
ros-lyrical-qt-gui-cpp \
|
||||||
|
ros-lyrical-diagnostic-updater && \
|
||||||
|
apt-get clean && rm -rf /var/lib/apt/lists/
|
||||||
|
|
||||||
|
WORKDIR /root/
|
||||||
|
|
||||||
|
# libfreenect2
|
||||||
|
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then echo "Installing libfreenect2..." && \
|
||||||
|
apt-get update && apt-get install -y mesa-utils xserver-xorg-video-all libusb-1.0-0-dev libturbojpeg0-dev libglfw3-dev && \
|
||||||
|
apt-get clean && rm -rf /var/lib/apt/lists/ && \
|
||||||
|
git clone https://github.com/OpenKinect/libfreenect2 && \
|
||||||
|
cd libfreenect2 && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. && \
|
||||||
|
make -j4 && \
|
||||||
|
make install && \
|
||||||
|
cd && \
|
||||||
|
rm -r libfreenect2; fi
|
||||||
|
|
||||||
|
# zed open capture
|
||||||
|
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then echo "Installing zed-open-capture..." && \
|
||||||
|
apt-get update && apt install -y libusb-1.0-0-dev libhidapi-libusb0 libhidapi-dev wget && \
|
||||||
|
apt-get clean && rm -rf /var/lib/apt/lists/ && \
|
||||||
|
git clone https://github.com/stereolabs/zed-open-capture.git && \
|
||||||
|
cd zed-open-capture && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. && \
|
||||||
|
make -j4 && \
|
||||||
|
make install && \
|
||||||
|
cd && \
|
||||||
|
rm -r zed-open-capture; fi
|
||||||
|
|
||||||
|
# OpenCV with all modules (same version than distro version to avoid conflicts with cv_bridge ros package)
|
||||||
|
RUN git clone --branch 4.10.0 https://github.com/opencv/opencv.git && \
|
||||||
|
git clone --branch 4.10.0 https://github.com/opencv/opencv_contrib.git && \
|
||||||
|
cd opencv && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_TBB=ON -DWITH_ADE=OFF -DWITH_OPENMP=ON -DBUILD_opencv_python3=OFF -DBUILD_opencv_python_bindings_generator=OFF -DBUILD_opencv_python_tests=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_TESTS=OFF -DOPENCV_ENABLE_NONFREE=ON -DOPENCV_EXTRA_MODULES_PATH=/root/opencv_contrib/modules .. && \
|
||||||
|
make -j4 && \
|
||||||
|
make install && \
|
||||||
|
cd ../.. && \
|
||||||
|
rm -rf opencv opencv_contrib
|
||||||
|
|
||||||
|
RUN git clone https://github.com/laurentkneip/opengv.git && \
|
||||||
|
cd opengv && \
|
||||||
|
git checkout 91f4b19c73450833a40e463ad3648aae80b3a7f3 && \
|
||||||
|
wget https://gist.githubusercontent.com/matlabbe/a412cf7c4627253874f81a00745a7fbb/raw/accc3acf465d1ffd0304a46b17741f62d4d354ef/opengv_disable_march_native.patch && \
|
||||||
|
git apply opengv_disable_march_native.patch && \
|
||||||
|
mkdir build && \
|
||||||
|
cd build && \
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5 .. && \
|
||||||
|
make -j4 && \
|
||||||
|
make install && \
|
||||||
|
cd && \
|
||||||
|
rm -r opengv
|
||||||
|
|
||||||
|
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
||||||
|
|
||||||
|
RUN echo -e '#!/bin/bash\nset -e\n\n# setup ros2 environment\nsource "/opt/ros/lyrical/setup.bash" --\nexec "$@"' > /ros_entrypoint.sh
|
||||||
|
RUN chmod +x /ros_entrypoint.sh
|
||||||
|
ENTRYPOINT [ "/ros_entrypoint.sh" ]
|
||||||
|
|
||||||
|
# ros2 seems not sourcing by default its multi-arch folders
|
||||||
|
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/ros/lyrical/lib/x86_64-linux-gnu:/opt/ros/lyrical/lib/aarch64-linux-gnu
|
||||||
|
|
||||||
|
# for jetson (https://github.com/introlab/rtabmap/issues/776)
|
||||||
|
ENV LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/aarch64-linux-gnu/tegra
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<package format="2">
|
<package format="2">
|
||||||
<name>rtabmap</name>
|
<name>rtabmap</name>
|
||||||
<version>0.23.5</version>
|
<version>0.23.7</version>
|
||||||
<description>RTAB-Map's standalone library. RTAB-Map is a RGB-D SLAM approach with real-time constraints.</description>
|
<description>RTAB-Map's standalone library. RTAB-Map is a RGB-D SLAM approach with real-time constraints.</description>
|
||||||
<maintainer email="matlabbe@gmail.com">Mathieu Labbe</maintainer>
|
<maintainer email="matlabbe@gmail.com">Mathieu Labbe</maintainer>
|
||||||
<author>Mathieu Labbe</author>
|
<author>Mathieu Labbe</author>
|
||||||
|
|||||||
Reference in New Issue
Block a user