mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 01:20:25 +08:00
Tango refactoring (#534)
* Created general CameraMobile interface. Tango is now optional. Camera is disabled on visualizaion (battery saving). * Working android app on non-tango android phones (tested on x86_64 android emulator). * fixed typo * android: updated tango not available msg * android: fixed build with latest android sdk/ndk * Added ARCore limited support for pose and rgb streams. * Added AREngine support. Don't assert if depth size is not a modulo of rgb size. * Added ARCore shared camera support * android: fixed read/write runtime permissions for >=api23. arcore ndk: added feature point cloud. Fixed file sharing persmissions (>=api24 issue) * ARCore NDK: mapping with feature point cloud * android: Added post build strip command to reduce native library size * android: fixed some compilation issues * android: put back gtsam as default optimizer, manifest min api is dynamic based on cmake parameters * AREngine: min api 24 * android: Fixed build without AREngine * android: fixed not available libraries for API<24 * android: fixed build with old cmake versions * android: set arcore min api to 23 * android: fixed arengine error on start when not built with native arengine support * android: fixed tango camera permission for api>=23 * Added bionic android docker files * Fixed wrong 3D words projection when depth size is not an exact multiple of rgb size. DbViewer: fixed images size not correctly shown in label of the calibration. ImageView: fixed depth scale when depth size is not a multiple of rgb size * CameraMobile: added exact display rotation for local transform * DbViewer: fixed gravity link shown in constraint view, show full local transform matrix in camera calibration label * Android: fixed localization mode in visualization, fixed some tansitions between some UI states * Android: Hide stop button when HUD is hidden. Updated About years.
This commit is contained in:
38
docker/bionic/android/Dockerfile
Normal file
38
docker/bionic/android/Dockerfile
Normal file
@@ -0,0 +1,38 @@
|
||||
# Image: introlab3it/rtabmap:android-deps
|
||||
|
||||
FROM ubuntu:18.04
|
||||
|
||||
# Install build dependencies
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git unzip wget ant cmake \
|
||||
g++ lib32stdc++6 lib32z1 \
|
||||
software-properties-common \
|
||||
freeglut3-dev \
|
||||
openjdk-8-jdk openjdk-8-jre
|
||||
|
||||
ENV ANDROID_NDK_VERSION=r21
|
||||
ENV ANDROID_HOME=/opt/android-sdk
|
||||
ENV PATH=$PATH:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/android-ndk-$ANDROID_NDK_VERSION
|
||||
ENV ANDROID_NDK=/opt/android-ndk-$ANDROID_NDK_VERSION
|
||||
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
|
||||
|
||||
WORKDIR /root/
|
||||
|
||||
# Setup android sdk
|
||||
RUN wget -nv https://dl.google.com/android/repository/tools_r25.2.3-linux.zip && \
|
||||
unzip -qq tools_r25.2.3-linux.zip && \
|
||||
rm tools_r25.2.3-linux.zip && \
|
||||
mkdir $ANDROID_HOME && \
|
||||
mv tools $ANDROID_HOME/.
|
||||
RUN echo y | android update sdk --no-ui --all --filter platform-tools,android-23,android-24,android-26,build-tools-29.0.3
|
||||
|
||||
# Setup android ndk
|
||||
RUN wget -nv https://dl.google.com/android/repository/android-ndk-$ANDROID_NDK_VERSION-linux-x86_64.zip && \
|
||||
unzip -qq android-ndk-$ANDROID_NDK_VERSION-linux-x86_64.zip && \
|
||||
rm android-ndk-$ANDROID_NDK_VERSION-linux-x86_64.zip && \
|
||||
mv android-ndk-$ANDROID_NDK_VERSION /opt/.
|
||||
|
||||
ADD deps.bash /root/deps.bash
|
||||
RUN chmod +x deps.bash
|
||||
RUN /bin/bash -c "./deps.bash /opt/android"
|
||||
162
docker/bionic/android/deps.bash
Executable file
162
docker/bionic/android/deps.bash
Executable file
@@ -0,0 +1,162 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "deps.bash android_install_prefix # Example: setup.bash /opt/android"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cpus=-j4
|
||||
prefix=$1
|
||||
pwd=$(pwd)
|
||||
ANDROID_NATIVE_API_LEVEL=23
|
||||
|
||||
# Download all dependencies
|
||||
echo "Downloading cmake... (1/10)"
|
||||
wget -nv https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake-3.17.0-Linux-x86_64.tar.gz
|
||||
echo "Downloading boost... (2/10)"
|
||||
wget -nv https://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
|
||||
echo "Downloading eigen... (3/10)"
|
||||
wget -nv http://bitbucket.org/eigen/eigen/get/3.2.7.tar.gz
|
||||
echo "Downloading flann... (4/10)"
|
||||
git clone -b 1.8.4 https://github.com/mariusmuja/flann.git
|
||||
echo "Downloading gtsam... (5/10)"
|
||||
git clone https://bitbucket.org/gtborg/gtsam.git
|
||||
echo "Downloading g2o... (6/10)"
|
||||
git clone https://github.com/RainerKuemmerle/g2o.git
|
||||
echo "Downloading VTK... (7/10)"
|
||||
git clone https://github.com/Kitware/VTK.git
|
||||
echo "Downloading pcl... (8/10)"
|
||||
git clone https://github.com/PointCloudLibrary/pcl.git
|
||||
echo "Downloading opencv_contrib... (9/10)"
|
||||
git clone https://github.com/opencv/opencv_contrib.git
|
||||
echo "Downloading opencv... (10/10)"
|
||||
git clone https://github.com/opencv/opencv.git
|
||||
|
||||
|
||||
# Install directory for all dependencies
|
||||
mkdir -p $prefix/arm64-v8a
|
||||
|
||||
#CMake 3.17 for VTK
|
||||
echo "Install cmake3.17..."
|
||||
tar -xzf cmake-3.17.0-Linux-x86_64.tar.gz
|
||||
rm cmake-3.17.0-Linux-x86_64.tar.gz
|
||||
|
||||
# Boost
|
||||
echo "Install boost..."
|
||||
tar -xzf boost_1_59_0.tar.gz
|
||||
cd boost_1_59_0
|
||||
wget -nv https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/1733253195bc4d4d9b7f9eda1e60628dc1e51429/BoostConfig.cmake.in
|
||||
wget -nv https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/1733253195bc4d4d9b7f9eda1e60628dc1e51429/CMakeLists.txt
|
||||
mkdir build
|
||||
cd build
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$ANDROID_NATIVE_API_LEVEL -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -r boost_1_59_0.tar.gz boost_1_59_0
|
||||
|
||||
# eigen
|
||||
echo "Install eigen..."
|
||||
tar -xzf 3.2.7.tar.gz
|
||||
cd eigen-eigen-b30b87236a1b
|
||||
mkdir build
|
||||
cd build
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$ANDROID_NATIVE_API_LEVEL -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -r 3.2.7.tar.gz eigen-eigen-b30b87236a1b
|
||||
|
||||
# FLANN
|
||||
echo "Install flann..."
|
||||
cd flann
|
||||
wget -nv https://gist.githubusercontent.com/matlabbe/cacff9f8271d0c42acd622939a26cab4/raw/85baf4927b32844ebd7f8eccce421bde181cd190/flann_1_8_4_android_fix.patch
|
||||
git apply flann_1_8_4_android_fix.patch
|
||||
mkdir build
|
||||
cd build
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$ANDROID_NATIVE_API_LEVEL -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf flann
|
||||
|
||||
# GTSAM
|
||||
echo "Install gtsam..."
|
||||
cd gtsam
|
||||
git checkout fbb9d3bdda8b88df51896bc401bfd170573e66f5
|
||||
# patch
|
||||
wget -nv https://gist.github.com/matlabbe/726b490c658afd3293f4b3f2f501b863/raw/df09fc8e238a495d66b062d92dc1c1fb20a581e8/gtsam_GKlib_android_fix.patch
|
||||
git apply gtsam_GKlib_android_fix.patch
|
||||
mkdir build
|
||||
cd build
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$ANDROID_NATIVE_API_LEVEL -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" -DMETIS_SHARED=OFF -DGTSAM_BUILD_STATIC_LIBRARY=ON -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DGTSAM_USE_SYSTEM_EIGEN=ON ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf gtsam
|
||||
|
||||
# g2o
|
||||
echo "Install g2o..."
|
||||
cd g2o
|
||||
git checkout a3f7706bdbb849b2808dc3e1b7aee189f63b498e
|
||||
mkdir build
|
||||
cd build
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$ANDROID_NATIVE_API_LEVEL -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" -DBUILD_LGPL_SHARED_LIBS=OFF -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf g2o
|
||||
|
||||
# VTK
|
||||
echo "Install VTK..."
|
||||
cd VTK
|
||||
git checkout tags/v7.1.1
|
||||
wget https://gist.github.com/matlabbe/f133f555d650e3ab5c51d3b772f02448/raw/be135b74cabb1cc85f90b8605f9db218d1e3f71b/vtk_7_1_1_android_r21_fix.patch
|
||||
git apply vtk_7_1_1_android_r21_fix.patch
|
||||
mkdir build
|
||||
cd build
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DVTK_ANDROID_BUILD=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" ..
|
||||
make $cpus
|
||||
cp -r CMakeExternals/Install/vtk-android/* $prefix/arm64-v8a/.
|
||||
cd $pwd
|
||||
rm -rf VTK
|
||||
|
||||
# PCL
|
||||
echo "Install pcl..."
|
||||
cd pcl
|
||||
git checkout tags/pcl-1.8.0
|
||||
# patch
|
||||
wget https://gist.github.com/matlabbe/41812e50e459b2f27b331a2343569e5d/raw/4cc7dd13b36e2f8c623e8faea7cc731b2899b0e4/pcl_1_8_0_vtk_android_support.patch
|
||||
git apply pcl_1_8_0_vtk_android_support.patch
|
||||
mkdir build
|
||||
cd build
|
||||
# do it 2 times because there is a cmake error on the first time and not the second time!?
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$ANDROID_NATIVE_API_LEVEL -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" -DBUILD_apps=OFF -DBUILD_examples=OFF -DBUILD_tools=OFF -DBUILD_visualization=OFF -DBUILD_tracking=OFF -DBUILD_people=OFF -DBUILD_global_tests=OFF -DWITH_QT=OFF -DWITH_OPENGL=OFF -DWITH_VTK=ON -DPCL_SHARED_LIBS=OFF ..
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$ANDROID_NATIVE_API_LEVEL -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" -DBUILD_apps=OFF -DBUILD_examples=OFF -DBUILD_tools=OFF -DBUILD_visualization=OFF -DBUILD_tracking=OFF -DBUILD_people=OFF -DBUILD_global_tests=OFF -DWITH_QT=OFF -DWITH_OPENGL=OFF -DWITH_VTK=ON -DPCL_SHARED_LIBS=OFF ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf pcl
|
||||
|
||||
# make sure opencv is using the shared version of zlib
|
||||
# see https://github.com/android/ndk/issues/1179
|
||||
mv /opt/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libz.a /opt/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libz.a.back
|
||||
|
||||
# OpenCV
|
||||
echo "Install OpenCV..."
|
||||
cd opencv_contrib
|
||||
git checkout tags/3.4.2
|
||||
cd $pwd
|
||||
cd opencv
|
||||
git checkout tags/3.4.2
|
||||
mkdir build
|
||||
cd build
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$ANDROID_NATIVE_API_LEVEL -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" -DOPENCV_EXTRA_MODULES_PATH=$pwd/opencv_contrib/modules -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_CUDA=OFF -DBUILD_opencv_structured_light=OFF -DBUILD_ANDROID_PROJECTS=ON -DBUILD_ANDROID_EXAMPLES=OFF -DWITH_PROTOBUF=OFF -DBUILD_opencv_stereo=OFF ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf opencv opencv_contrib
|
||||
|
||||
echo "Strip libraries..."
|
||||
/opt/android-ndk-$ANDROID_NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip -g -S -d --strip-debug --verbose /opt/android/arm64-v8a/lib/*.a
|
||||
/opt/android-ndk-$ANDROID_NDK_VERSION/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip -g -S -d --strip-debug --verbose /opt/android/arm64-v8a/sdk/native/staticlibs/arm64-v8a/*.a
|
||||
10
docker/bionic/android/rtabmap_api23/Dockerfile
Normal file
10
docker/bionic/android/rtabmap_api23/Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
||||
# Image: introlab3it/rtabmap:android23
|
||||
|
||||
FROM introlab3it/rtabmap:android-deps
|
||||
|
||||
WORKDIR /root/
|
||||
|
||||
ADD rtabmap.bash /root/rtabmap.bash
|
||||
RUN chmod +x rtabmap.bash
|
||||
RUN /bin/bash -c "./rtabmap.bash /opt/android 23"
|
||||
|
||||
65
docker/bionic/android/rtabmap_api23/rtabmap.bash
Normal file
65
docker/bionic/android/rtabmap_api23/rtabmap.bash
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "rtabmap.bash android_install_prefix api_level (23 for tango, 24 for arengine) # Example: build.bash /opt/android 24"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
prefix=$1
|
||||
api=$2
|
||||
pwd=$(pwd)
|
||||
|
||||
|
||||
# get rtabmap
|
||||
git clone -b tango_refactoring https://github.com/introlab/rtabmap.git rtabmap-tango
|
||||
cd
|
||||
|
||||
# tango
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=12rHHkYM5k-UnQn-xGXs9JqYWhSXrgJr3&export=download' -O TangoSDK_Ikariotikos_C.zip
|
||||
unzip -qq TangoSDK_Ikariotikos_C.zip
|
||||
rm TangoSDK_Ikariotikos_C.zip
|
||||
cp -r lib_tango_client_api/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r lib_tango_client_api/lib/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
rm -r lib_tango_client_api
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1AqVuEVu5284X6OgrGWu12VTrx4pY99Jb&export=download' -O TangoSupport_Ikariotikos_C.zip
|
||||
unzip -qq TangoSupport_Ikariotikos_C.zip
|
||||
rm TangoSupport_Ikariotikos_C.zip
|
||||
cp -r lib_tango_support_api/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r lib_tango_support_api/lib/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
rm -r lib_tango_support_api
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1s5iPJ7xiridj9Jj--gCy2XiQFniheVm6&export=download' -O TangoSDK_Ikariotikos_Java.jar
|
||||
mv TangoSDK_Ikariotikos_Java.jar rtabmap-tango/app/android/libs/.
|
||||
|
||||
# ARCore
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1A4gMviyxHCnA19MTMbitOWoSOyoZcCef&export=download' -O arcore.zip
|
||||
unzip -qq arcore.zip
|
||||
rm arcore.zip
|
||||
cp -r arcore/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r arcore/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
cp arcore/*.jar rtabmap-tango/app/android/libs/.
|
||||
rm -r arcore
|
||||
|
||||
# AREngine
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1rdaD2Z1QBv-SUeUy0oBmg3C2odfxTHgR&export=download' -O arengine.zip
|
||||
unzip -qq arengine.zip
|
||||
rm arengine.zip
|
||||
cp -r arengine/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r arengine/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
cp arengine/*.jar rtabmap-tango/app/android/libs/.
|
||||
rm -r arengine
|
||||
|
||||
# resource tool
|
||||
cd rtabmap-tango/build
|
||||
cmake -DANDROID_PREBUILD=ON ..
|
||||
make
|
||||
cd ../..
|
||||
|
||||
# rtabmap
|
||||
mkdir rtabmap-tango/build/arm64-v8a
|
||||
cd rtabmap-tango/build/arm64-v8a
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$api -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" -DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=OFF -DOpenCV_DIR=$prefix/arm64-v8a/sdk/native/jni ../..
|
||||
make
|
||||
make clean
|
||||
|
||||
|
||||
|
||||
10
docker/bionic/android/rtabmap_api24/Dockerfile
Normal file
10
docker/bionic/android/rtabmap_api24/Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
||||
# Image: introlab3it/rtabmap:android24
|
||||
|
||||
FROM introlab3it/rtabmap:android-deps
|
||||
|
||||
WORKDIR /root/
|
||||
|
||||
ADD rtabmap.bash /root/rtabmap.bash
|
||||
RUN chmod +x rtabmap.bash
|
||||
RUN /bin/bash -c "./rtabmap.bash /opt/android 24"
|
||||
|
||||
65
docker/bionic/android/rtabmap_api24/rtabmap.bash
Normal file
65
docker/bionic/android/rtabmap_api24/rtabmap.bash
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "rtabmap.bash android_install_prefix api_level (23 for tango, 24 for arengine) # Example: build.bash /opt/android 24"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
prefix=$1
|
||||
api=$2
|
||||
pwd=$(pwd)
|
||||
|
||||
|
||||
# get rtabmap
|
||||
git clone -b tango_refactoring https://github.com/introlab/rtabmap.git rtabmap-tango
|
||||
cd
|
||||
|
||||
# tango
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=12rHHkYM5k-UnQn-xGXs9JqYWhSXrgJr3&export=download' -O TangoSDK_Ikariotikos_C.zip
|
||||
unzip -qq TangoSDK_Ikariotikos_C.zip
|
||||
rm TangoSDK_Ikariotikos_C.zip
|
||||
cp -r lib_tango_client_api/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r lib_tango_client_api/lib/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
rm -r lib_tango_client_api
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1AqVuEVu5284X6OgrGWu12VTrx4pY99Jb&export=download' -O TangoSupport_Ikariotikos_C.zip
|
||||
unzip -qq TangoSupport_Ikariotikos_C.zip
|
||||
rm TangoSupport_Ikariotikos_C.zip
|
||||
cp -r lib_tango_support_api/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r lib_tango_support_api/lib/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
rm -r lib_tango_support_api
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1s5iPJ7xiridj9Jj--gCy2XiQFniheVm6&export=download' -O TangoSDK_Ikariotikos_Java.jar
|
||||
mv TangoSDK_Ikariotikos_Java.jar rtabmap-tango/app/android/libs/.
|
||||
|
||||
# ARCore
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1A4gMviyxHCnA19MTMbitOWoSOyoZcCef&export=download' -O arcore.zip
|
||||
unzip -qq arcore.zip
|
||||
rm arcore.zip
|
||||
cp -r arcore/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r arcore/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
cp arcore/*.jar rtabmap-tango/app/android/libs/.
|
||||
rm -r arcore
|
||||
|
||||
# AREngine
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1rdaD2Z1QBv-SUeUy0oBmg3C2odfxTHgR&export=download' -O arengine.zip
|
||||
unzip -qq arengine.zip
|
||||
rm arengine.zip
|
||||
cp -r arengine/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r arengine/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
cp arengine/*.jar rtabmap-tango/app/android/libs/.
|
||||
rm -r arengine
|
||||
|
||||
# resource tool
|
||||
cd rtabmap-tango/build
|
||||
cmake -DANDROID_PREBUILD=ON ..
|
||||
make
|
||||
cd ../..
|
||||
|
||||
# rtabmap
|
||||
mkdir rtabmap-tango/build/arm64-v8a
|
||||
cd rtabmap-tango/build/arm64-v8a
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$api -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" -DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=OFF -DOpenCV_DIR=$prefix/arm64-v8a/sdk/native/jni ../..
|
||||
make
|
||||
make clean
|
||||
|
||||
|
||||
|
||||
10
docker/bionic/android/rtabmap_api26/Dockerfile
Normal file
10
docker/bionic/android/rtabmap_api26/Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
||||
# Image: introlab3it/rtabmap:android26
|
||||
|
||||
FROM introlab3it/rtabmap:android-deps
|
||||
|
||||
WORKDIR /root/
|
||||
|
||||
ADD rtabmap.bash /root/rtabmap.bash
|
||||
RUN chmod +x rtabmap.bash
|
||||
RUN /bin/bash -c "./rtabmap.bash /opt/android 26"
|
||||
|
||||
65
docker/bionic/android/rtabmap_api26/rtabmap.bash
Normal file
65
docker/bionic/android/rtabmap_api26/rtabmap.bash
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -ne 2 ]; then
|
||||
echo "rtabmap.bash android_install_prefix api_level (23 for tango, 24 for arengine) # Example: build.bash /opt/android 24"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
prefix=$1
|
||||
api=$2
|
||||
pwd=$(pwd)
|
||||
|
||||
|
||||
# get rtabmap
|
||||
git clone -b tango_refactoring https://github.com/introlab/rtabmap.git rtabmap-tango
|
||||
cd
|
||||
|
||||
# tango
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=12rHHkYM5k-UnQn-xGXs9JqYWhSXrgJr3&export=download' -O TangoSDK_Ikariotikos_C.zip
|
||||
unzip -qq TangoSDK_Ikariotikos_C.zip
|
||||
rm TangoSDK_Ikariotikos_C.zip
|
||||
cp -r lib_tango_client_api/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r lib_tango_client_api/lib/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
rm -r lib_tango_client_api
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1AqVuEVu5284X6OgrGWu12VTrx4pY99Jb&export=download' -O TangoSupport_Ikariotikos_C.zip
|
||||
unzip -qq TangoSupport_Ikariotikos_C.zip
|
||||
rm TangoSupport_Ikariotikos_C.zip
|
||||
cp -r lib_tango_support_api/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r lib_tango_support_api/lib/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
rm -r lib_tango_support_api
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1s5iPJ7xiridj9Jj--gCy2XiQFniheVm6&export=download' -O TangoSDK_Ikariotikos_Java.jar
|
||||
mv TangoSDK_Ikariotikos_Java.jar rtabmap-tango/app/android/libs/.
|
||||
|
||||
# ARCore
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1A4gMviyxHCnA19MTMbitOWoSOyoZcCef&export=download' -O arcore.zip
|
||||
unzip -qq arcore.zip
|
||||
rm arcore.zip
|
||||
cp -r arcore/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r arcore/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
cp arcore/*.jar rtabmap-tango/app/android/libs/.
|
||||
rm -r arcore
|
||||
|
||||
# AREngine
|
||||
wget 'https://docs.google.com/uc?authuser=0&id=1rdaD2Z1QBv-SUeUy0oBmg3C2odfxTHgR&export=download' -O arengine.zip
|
||||
unzip -qq arengine.zip
|
||||
rm arengine.zip
|
||||
cp -r arengine/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r arengine/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
cp arengine/*.jar rtabmap-tango/app/android/libs/.
|
||||
rm -r arengine
|
||||
|
||||
# resource tool
|
||||
cd rtabmap-tango/build
|
||||
cmake -DANDROID_PREBUILD=ON ..
|
||||
make
|
||||
cd ../..
|
||||
|
||||
# rtabmap
|
||||
mkdir rtabmap-tango/build/arm64-v8a
|
||||
cd rtabmap-tango/build/arm64-v8a
|
||||
$pwd/cmake-3.17.0-Linux-x86_64/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DANDROID_NDK=$ANDROID_NDK -DANDROID_NATIVE_API_LEVEL=$api -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a -DCMAKE_FIND_ROOT_PATH="$prefix/arm64-v8a/bin;$prefix/arm64-v8a;$prefix/arm64-v8a/share" -DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=OFF -DOpenCV_DIR=$prefix/arm64-v8a/sdk/native/jni ../..
|
||||
make
|
||||
make clean
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user