mirror of
https://github.com/introlab/rtabmap.git
synced 2026-10-04 00:57:46 +08:00
CI: use ubuntu arm runners instead of QEMU (#1771)
* CI: use ubuntu arm runners instead of QEMU * removed focal deps docker image ci * run tests in docker ci * revert temporary test * trigger ci jobs with modified files * ldconfig * arm64 ldconfig order * No response filtering here: cv::goodFeaturesToTrack() already applies GFTT/QualityLevel, relative to the best corner's measure. Re-applying it as an absolute floor on KeyPoint::response double-filtered (~86% of keypoints ropped on OpenCV 4.5), and dropped *every* keypoint on OpenCV < 4.5, whose GFTTDetector leaves response at 0. * fixing ExtractXYZCorrespondencesRANSAC ci error * increased windows timeout (probably caused by gftt fix now extracting more features)
This commit is contained in:
@@ -1,3 +1,36 @@
|
||||
### Docker
|
||||
|
||||
* Go to the [wiki](https://github.com/introlab/rtabmap/wiki/Installation#docker) for usage examples and how to build locally the images.
|
||||
|
||||
#### Tags
|
||||
|
||||
All images are published to [introlab3it/rtabmap](https://hub.docker.com/r/introlab3it/rtabmap) as
|
||||
multi-arch manifests (`linux/amd64` and `linux/arm64`).
|
||||
|
||||
| Tag | Alias | Base | ROS |
|
||||
| --- | --- | --- | --- |
|
||||
| `resolute` | `26.04`, `latest` | Ubuntu 26.04 | ROS2 Lyrical |
|
||||
| `noble-kilted` | | Ubuntu 24.04 | ROS2 Kilted |
|
||||
| `noble` | `24.04` | Ubuntu 24.04 | ROS2 Jazzy |
|
||||
| `jammy` | `22.04` | Ubuntu 22.04 | ROS2 Humble |
|
||||
| `focal` | `20.04` | Ubuntu 20.04 | ROS1 Noetic |
|
||||
|
||||
Each image is built on top of a matching `<tag>-deps` image holding the third-party
|
||||
dependencies, so that a source change only rebuilds the top layer.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **`latest` now points to the newest ROS2 image** (`resolute`), where it used to point
|
||||
> to `focal` (ROS1 Noetic). Pulling `introlab3it/rtabmap` without a tag therefore gets you
|
||||
> a different ROS version than before. Use `introlab3it/rtabmap:focal` to stay on ROS1, or
|
||||
> pin an explicit tag in general rather than relying on `latest`.
|
||||
|
||||
`bionic` / `18.04` (ROS1 Melodic) is no longer built; the last published image stays on
|
||||
Docker Hub but will not be updated. Its Dockerfile is kept in [bionic/](bionic) for reference.
|
||||
|
||||
The `<tag>-amd64` / `<tag>-arm64` tags are per-architecture build outputs that CI joins into
|
||||
the manifests above (see [.github/workflows/docker-ros.yml](../.github/workflows/docker-ros.yml));
|
||||
use the plain tags instead.
|
||||
|
||||
Android build environments (`android23`, `android24`, `android26`, `android30`, `tango`) are
|
||||
`linux/amd64` only and are built by
|
||||
[.github/workflows/android.yml](../.github/workflows/android.yml).
|
||||
|
||||
@@ -165,6 +165,10 @@ RUN git clone --branch 4.2.0 https://github.com/opencv/opencv.git && \
|
||||
cd ../.. && \
|
||||
rm -rf opencv opencv_contrib
|
||||
|
||||
# ld.so.conf.d is read in filename order: <arch>-linux-gnu.conf sorts before
|
||||
# libc.conf (/usr/local/lib) on arm64, so source builds lose to the distro ones.
|
||||
RUN echo /usr/local/lib > /etc/ld.so.conf.d/00-usr-local.conf && ldconfig
|
||||
|
||||
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
||||
|
||||
COPY ./docker/focal-foxy/deps/ros_entrypoint.sh /ros_entrypoint.sh
|
||||
|
||||
@@ -8,11 +8,15 @@ RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
|
||||
# Copy current source code
|
||||
COPY . /root/rtabmap
|
||||
|
||||
ARG RUN_TESTS=0
|
||||
|
||||
# Build RTAB-Map project
|
||||
RUN source /ros_entrypoint.sh && \
|
||||
cd rtabmap/build && \
|
||||
cmake -DWITH_ALICE_VISION=ON -DWITH_OPENGV=ON .. && \
|
||||
cmake -DWITH_ALICE_VISION=ON -DWITH_OPENGV=ON -DBUILD_TESTING=$RUN_TESTS .. && \
|
||||
make -j4 && \
|
||||
# ldconfig first: source-installed deps (GTSAM) are not yet in the loader cache.
|
||||
if [ "$RUN_TESTS" = "1" ]; then ldconfig && ctest --output-on-failure -LE "long|performance"; fi && \
|
||||
make install && \
|
||||
cd ../.. && \
|
||||
rm -rf rtabmap && \
|
||||
|
||||
@@ -190,6 +190,10 @@ RUN git clone https://github.com/laurentkneip/opengv.git && \
|
||||
cd && \
|
||||
rm -r opengv
|
||||
|
||||
# ld.so.conf.d is read in filename order: <arch>-linux-gnu.conf sorts before
|
||||
# libc.conf (/usr/local/lib) on arm64, so source builds lose to the distro ones.
|
||||
RUN echo /usr/local/lib > /etc/ld.so.conf.d/00-usr-local.conf && ldconfig
|
||||
|
||||
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
||||
|
||||
# for jetson (https://github.com/introlab/rtabmap/issues/776)
|
||||
|
||||
@@ -74,6 +74,10 @@ RUN git clone --branch 4.5.4 https://github.com/opencv/opencv.git && \
|
||||
cd ../.. && \
|
||||
rm -rf opencv opencv_contrib
|
||||
|
||||
# ld.so.conf.d is read in filename order: <arch>-linux-gnu.conf sorts before
|
||||
# libc.conf (/usr/local/lib) on arm64, so source builds lose to the distro ones.
|
||||
RUN echo /usr/local/lib > /etc/ld.so.conf.d/00-usr-local.conf && ldconfig
|
||||
|
||||
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
|
||||
|
||||
COPY ./docker/jammy-iron/deps/ros_entrypoint.sh /ros_entrypoint.sh
|
||||
|
||||
@@ -8,11 +8,15 @@ RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
|
||||
# Copy current source code
|
||||
COPY . /root/rtabmap
|
||||
|
||||
ARG RUN_TESTS=0
|
||||
|
||||
# Build RTAB-Map project
|
||||
RUN source /ros_entrypoint.sh && \
|
||||
cd rtabmap/build && \
|
||||
cmake -DWITH_OPENGV=ON .. && \
|
||||
cmake -DWITH_OPENGV=ON -DBUILD_TESTING=$RUN_TESTS .. && \
|
||||
make -j4 && \
|
||||
# ldconfig first: source-installed deps (GTSAM) are not yet in the loader cache.
|
||||
if [ "$RUN_TESTS" = "1" ]; then ldconfig && ctest --output-on-failure -LE "long|performance"; fi && \
|
||||
make install && \
|
||||
cd ../.. && \
|
||||
rm -rf rtabmap && \
|
||||
|
||||
@@ -98,6 +98,10 @@ RUN git clone https://github.com/laurentkneip/opengv.git && \
|
||||
cd && \
|
||||
rm -r opengv
|
||||
|
||||
# ld.so.conf.d is read in filename order: <arch>-linux-gnu.conf sorts before
|
||||
# libc.conf (/usr/local/lib) on arm64, so source builds lose to the distro ones.
|
||||
RUN echo /usr/local/lib > /etc/ld.so.conf.d/00-usr-local.conf && ldconfig
|
||||
|
||||
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/humble/setup.bash" --\nexec "$@"' > /ros_entrypoint.sh
|
||||
|
||||
@@ -8,11 +8,15 @@ RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
|
||||
# Copy current source code
|
||||
COPY . /root/rtabmap
|
||||
|
||||
ARG RUN_TESTS=0
|
||||
|
||||
# Build RTAB-Map project
|
||||
RUN source /ros_entrypoint.sh && \
|
||||
cd rtabmap/build && \
|
||||
cmake -DWITH_OPENGV=ON .. && \
|
||||
cmake -DWITH_OPENGV=ON -DBUILD_TESTING=$RUN_TESTS .. && \
|
||||
make -j4 && \
|
||||
# ldconfig first: source-installed deps (GTSAM) are not yet in the loader cache.
|
||||
if [ "$RUN_TESTS" = "1" ]; then ldconfig && ctest --output-on-failure -LE "long|performance"; fi && \
|
||||
make install && \
|
||||
cd ../.. && \
|
||||
rm -rf rtabmap && \
|
||||
|
||||
@@ -118,6 +118,10 @@ RUN git clone https://github.com/laurentkneip/opengv.git && \
|
||||
cd && \
|
||||
rm -r opengv
|
||||
|
||||
# ld.so.conf.d is read in filename order: <arch>-linux-gnu.conf sorts before
|
||||
# libc.conf (/usr/local/lib) on arm64, so source builds lose to the distro ones.
|
||||
RUN echo /usr/local/lib > /etc/ld.so.conf.d/00-usr-local.conf && ldconfig
|
||||
|
||||
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/kilted/setup.bash" --\nexec "$@"' > /ros_entrypoint.sh
|
||||
|
||||
@@ -8,11 +8,15 @@ RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
|
||||
# Copy current source code
|
||||
COPY . /root/rtabmap
|
||||
|
||||
ARG RUN_TESTS=0
|
||||
|
||||
# Build RTAB-Map project
|
||||
RUN source /ros_entrypoint.sh && \
|
||||
cd rtabmap/build && \
|
||||
cmake -DWITH_OPENGV=ON .. && \
|
||||
cmake -DWITH_OPENGV=ON -DBUILD_TESTING=$RUN_TESTS .. && \
|
||||
make -j4 && \
|
||||
# ldconfig first: source-installed deps (GTSAM) are not yet in the loader cache.
|
||||
if [ "$RUN_TESTS" = "1" ]; then ldconfig && ctest --output-on-failure -LE "long|performance"; fi && \
|
||||
make install && \
|
||||
cd ../.. && \
|
||||
rm -rf rtabmap && \
|
||||
|
||||
@@ -117,6 +117,10 @@ RUN git clone https://github.com/laurentkneip/opengv.git && \
|
||||
cd && \
|
||||
rm -r opengv
|
||||
|
||||
# ld.so.conf.d is read in filename order: <arch>-linux-gnu.conf sorts before
|
||||
# libc.conf (/usr/local/lib) on arm64, so source builds lose to the distro ones.
|
||||
RUN echo /usr/local/lib > /etc/ld.so.conf.d/00-usr-local.conf && ldconfig
|
||||
|
||||
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/jazzy/setup.bash" --\nexec "$@"' > /ros_entrypoint.sh
|
||||
|
||||
@@ -8,11 +8,15 @@ RUN mkdir -p /root/Documents/RTAB-Map && chmod 777 /root/Documents/RTAB-Map
|
||||
# Copy current source code
|
||||
COPY . /root/rtabmap
|
||||
|
||||
ARG RUN_TESTS=0
|
||||
|
||||
# Build RTAB-Map project
|
||||
RUN source /ros_entrypoint.sh && \
|
||||
cd rtabmap/build && \
|
||||
cmake -DWITH_OPENGV=ON .. && \
|
||||
cmake -DWITH_OPENGV=ON -DBUILD_TESTING=$RUN_TESTS .. && \
|
||||
make -j4 && \
|
||||
# ldconfig first: source-installed deps (GTSAM) are not yet in the loader cache.
|
||||
if [ "$RUN_TESTS" = "1" ]; then ldconfig && ctest --output-on-failure -LE "long|performance"; fi && \
|
||||
make install && \
|
||||
cd ../.. && \
|
||||
rm -rf rtabmap && \
|
||||
|
||||
@@ -107,6 +107,10 @@ RUN git clone https://github.com/laurentkneip/opengv.git && \
|
||||
cd && \
|
||||
rm -r opengv
|
||||
|
||||
# ld.so.conf.d is read in filename order: <arch>-linux-gnu.conf sorts before
|
||||
# libc.conf (/usr/local/lib) on arm64, so source builds lose to the distro ones.
|
||||
RUN echo /usr/local/lib > /etc/ld.so.conf.d/00-usr-local.conf && ldconfig
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user