feat(slam): add rtabmap_ros
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
# Image: introlab3it/rtabmap:android-deps-api19
|
||||
|
||||
FROM ubuntu:16.04
|
||||
|
||||
# Install build dependencies
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git \
|
||||
cmake \
|
||||
g++ \
|
||||
software-properties-common \
|
||||
freeglut3-dev
|
||||
|
||||
ENV ANDROID_HOME=/opt/android-sdk
|
||||
ENV ANDROID_NATIVE_API_LEVEL=android-19
|
||||
ENV ANDROID_NDK=/opt/android-ndk-r14
|
||||
ENV PATH=$PATH:/opt/android-sdk/tools:/opt/android-sdk/platform-tools:/opt/android-ndk-r14
|
||||
|
||||
WORKDIR /root/
|
||||
|
||||
ADD setup_android_env.bash /root/setup_android_env.bash
|
||||
RUN chmod +x setup_android_env.bash
|
||||
RUN /bin/bash -c "./setup_android_env.bash"
|
||||
|
||||
ADD install_deps.bash /root/install_deps.bash
|
||||
RUN chmod +x install_deps.bash
|
||||
RUN /bin/bash -c "./install_deps.bash /opt/android"
|
||||
+168
@@ -0,0 +1,168 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "install_deps.bash android_install_prefix # Example: install_deps.bash /opt/android"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cpus=-j4
|
||||
prefix=$1
|
||||
pwd=$(pwd)
|
||||
wget -nv https://github.com/introlab/rtabmap/raw/master/cmake_modules/android.toolchain.cmake
|
||||
|
||||
# Install directory for all dependencies
|
||||
mkdir -p $prefix/armeabi-v7a
|
||||
mkdir -p $prefix/arm64-v8a
|
||||
|
||||
# Boost
|
||||
echo "wget boost..."
|
||||
wget -nv https://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
|
||||
tar -xzf boost_1_59_0.tar.gz
|
||||
cd boost_1_59_0
|
||||
wget -nv https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/489ff2869eccd6f8d03ffb9090ef839108762741/BoostConfig.cmake.in
|
||||
wget -nv https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/e7fbf0e301cfea417a7aa69989a761a4de08b8c3/CMakeLists.txt
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ..
|
||||
make $cpus
|
||||
make install
|
||||
rm -r *
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -r boost_1_59_0.tar.gz boost_1_59_0
|
||||
|
||||
# eigen
|
||||
echo "wget eigen..."
|
||||
wget -nv http://bitbucket.org/eigen/eigen/get/3.2.7.tar.gz
|
||||
tar -xzf 3.2.7.tar.gz
|
||||
cd eigen-eigen-b30b87236a1b
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ..
|
||||
make $cpus
|
||||
make install
|
||||
rm -r *
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -r 3.2.7.tar.gz eigen-eigen-b30b87236a1b
|
||||
|
||||
# FLANN
|
||||
echo "wget flann..."
|
||||
wget -nv http://www.cs.ubc.ca/research/flann/uploads/FLANN/flann-1.8.4-src.zip
|
||||
unzip -qq flann-1.8.4-src.zip
|
||||
cd flann-1.8.4-src
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ..
|
||||
make $cpus
|
||||
make install
|
||||
rm -r *
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -r flann-1.8.4-src.zip flann-1.8.4-src
|
||||
|
||||
# GTSAM
|
||||
git clone https://bitbucket.org/gtborg/gtsam.git
|
||||
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
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DMETIS_SHARED=OFF -DGTSAM_BUILD_STATIC_LIBRARY=ON -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ..
|
||||
make $cpus
|
||||
make install
|
||||
rm -r *
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DMETIS_SHARED=OFF -DGTSAM_BUILD_STATIC_LIBRARY=ON -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf gtsam
|
||||
|
||||
# g2o
|
||||
git clone https://github.com/RainerKuemmerle/g2o.git
|
||||
cd g2o
|
||||
git checkout a3f7706bdbb849b2808dc3e1b7aee189f63b498e
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DBUILD_LGPL_SHARED_LIBS=OFF -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ..
|
||||
make $cpus
|
||||
make install
|
||||
rm -r *
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DBUILD_LGPL_SHARED_LIBS=OFF -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf g2o
|
||||
|
||||
#CMake 3.7 for VTK
|
||||
echo "wget cmake3.7..."
|
||||
wget -nv https://cmake.org/files/v3.7/cmake-3.7.2-Linux-x86_64.tar.gz
|
||||
tar -xzf cmake-3.7.2-Linux-x86_64.tar.gz
|
||||
rm cmake-3.7.2-Linux-x86_64.tar.gz
|
||||
|
||||
# VTK
|
||||
git clone https://github.com/Kitware/VTK.git
|
||||
cd VTK
|
||||
git checkout tags/v7.1.1
|
||||
mkdir build
|
||||
cd build
|
||||
$pwd/cmake-3.7.2-Linux-x86_64/bin/cmake -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DVTK_ANDROID_BUILD=ON -DANDROID_ARCH_ABI=armeabi-v7a -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ..
|
||||
make $cpus
|
||||
cp -r CMakeExternals/Install/vtk-android/* $prefix/armeabi-v7a/.
|
||||
rm -r *
|
||||
$pwd/cmake-3.7.2-Linux-x86_64/bin/cmake -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DVTK_ANDROID_BUILD=ON -DANDROID_ARCH_ABI=arm64-v8a -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a ..
|
||||
make $cpus
|
||||
cp -r CMakeExternals/Install/vtk-android/* $prefix/arm64-v8a/.
|
||||
cd $pwd
|
||||
rm -rf VTK cmake-3.7.2-Linux-x86_64
|
||||
|
||||
# PCL
|
||||
git clone https://github.com/PointCloudLibrary/pcl.git
|
||||
cd pcl
|
||||
git checkout tags/pcl-1.8.0
|
||||
# patch
|
||||
wget -nv https://gist.github.com/matlabbe/41812e50e459b2f27b331a2343569e5d/raw/921bbb90d5115f7aec1640f255aec3036a518553/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!?
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -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 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ..
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -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 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ..
|
||||
make $cpus
|
||||
make install
|
||||
rm -r *
|
||||
# do it 2 times because there is a cmake error on the first time and not the second time!?
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -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 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a ..
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -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 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf pcl
|
||||
|
||||
# OpenCV
|
||||
git clone https://github.com/opencv/opencv_contrib.git
|
||||
cd opencv_contrib
|
||||
git checkout tags/3.4.2
|
||||
cd $pwd
|
||||
git clone https://github.com/opencv/opencv.git
|
||||
cd opencv
|
||||
git checkout tags/3.4.2
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DOPENCV_EXTRA_MODULES_PATH=$pwd/opencv_contrib/modules -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_CUDA=OFF -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ..
|
||||
make $cpus
|
||||
make install
|
||||
rm -r *
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=$pwd/android.toolchain.cmake -DANDROID_ABI=arm64-v8a -DOPENCV_EXTRA_MODULES_PATH=$pwd/opencv_contrib/modules -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DWITH_CUDA=OFF -DCMAKE_INSTALL_PREFIX=$prefix/arm64-v8a ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf opencv opencv_contrib
|
||||
@@ -0,0 +1,126 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "install_deps_host.bash install_prefix # Example: install_deps_host.bash /usr/local"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git cmake g++ software-properties-common wget unzip zlib1g-dev qtbase5-dev libqt5x11extras5-dev libqt5svg5-dev qttools5-dev libxt-dev freeglut3-dev
|
||||
|
||||
cpus=-j4
|
||||
prefix=$1
|
||||
pwd=$(pwd)
|
||||
|
||||
# note: we build shared libraries because there is a "multiple definition" linker error on jpeg/tiff third libraries between VTK and OpenCV (on not android build).
|
||||
|
||||
# Boost
|
||||
echo "wget boost..."
|
||||
wget -nv https://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
|
||||
tar -xzf boost_1_59_0.tar.gz
|
||||
cd boost_1_59_0
|
||||
wget -nv https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/489ff2869eccd6f8d03ffb9090ef839108762741/BoostConfig.cmake.in
|
||||
wget -nv https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/472e823a950f41d0abd78e97620bb9472dab41d3/CMakeLists.txt
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -r boost_1_59_0.tar.gz boost_1_59_0
|
||||
|
||||
# eigen
|
||||
echo "wget eigen..."
|
||||
wget -nv http://bitbucket.org/eigen/eigen/get/3.2.7.tar.gz
|
||||
tar -xzf 3.2.7.tar.gz
|
||||
cd eigen-eigen-b30b87236a1b
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -r 3.2.7.tar.gz eigen-eigen-b30b87236a1b
|
||||
|
||||
# FLANN
|
||||
echo "wget flann..."
|
||||
wget -nv http://www.cs.ubc.ca/research/flann/uploads/FLANN/flann-1.8.4-src.zip
|
||||
unzip -qq flann-1.8.4-src.zip
|
||||
cd flann-1.8.4-src
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -r flann-1.8.4-src.zip flann-1.8.4-src
|
||||
|
||||
# GTSAM
|
||||
git clone https://bitbucket.org/gtborg/gtsam.git
|
||||
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
|
||||
cmake -DMETIS_SHARED=ON -DGTSAM_BUILD_STATIC_LIBRARY=OFF -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf gtsam
|
||||
|
||||
# g2o
|
||||
git clone https://github.com/RainerKuemmerle/g2o.git
|
||||
cd g2o
|
||||
git checkout a3f7706bdbb849b2808dc3e1b7aee189f63b498e
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_LGPL_SHARED_LIBS=ON -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf g2o
|
||||
|
||||
# VTK
|
||||
git clone https://github.com/Kitware/VTK.git
|
||||
cd VTK
|
||||
git checkout tags/v7.1.1
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DVTK_Group_Qt=ON -DVTK_QT_VERSION=5 -DCMAKE_INSTALL_PREFIX=$prefix ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf VTK
|
||||
|
||||
# PCL
|
||||
git clone https://github.com/PointCloudLibrary/pcl.git
|
||||
cd pcl
|
||||
git checkout tags/pcl-1.8.0
|
||||
# patch
|
||||
wget -nv https://gist.github.com/matlabbe/41812e50e459b2f27b331a2343569e5d/raw/921bbb90d5115f7aec1640f255aec3036a518553/pcl_1_8_0_vtk_android_support.patch
|
||||
git apply pcl_1_8_0_vtk_android_support.patch
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DBUILD_apps=OFF -DBUILD_examples=OFF -DBUILD_tools=OFF -DBUILD_visualization=ON -DBUILD_tracking=OFF -DBUILD_people=OFF -DBUILD_global_tests=OFF -DWITH_QT=ON -DWITH_OPENGL=OFF -DWITH_VTK=ON -DPCL_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$prefix ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf pcl
|
||||
|
||||
# OpenCV
|
||||
git clone https://github.com/opencv/opencv_contrib.git
|
||||
cd opencv_contrib
|
||||
git checkout tags/3.4.2
|
||||
cd $pwd
|
||||
git clone https://github.com/opencv/opencv.git
|
||||
cd opencv
|
||||
git checkout tags/3.4.2
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DOPENCV_EXTRA_MODULES_PATH=$pwd/opencv_contrib/modules -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_INSTALL_PREFIX=$prefix ..
|
||||
make $cpus
|
||||
make install
|
||||
cd $pwd
|
||||
rm -rf opencv opencv_contrib
|
||||
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Setup java 1.8
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends apt-utils
|
||||
apt-get install -y unzip wget ant
|
||||
apt-get install -y default-jre default-jdk
|
||||
apt-get install -y lib32stdc++6 lib32z1
|
||||
|
||||
# Setup android sdk
|
||||
echo "wget android-sdk..."
|
||||
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/.
|
||||
#android list sdk --all --extended
|
||||
echo y | android update sdk --no-ui --all --filter platform-tools,android-19,build-tools-19.1.0,android-21,build-tools-21.1.0
|
||||
|
||||
# Setup android ndk
|
||||
echo "wget android-ndk..."
|
||||
wget -nv https://dl.google.com/android/repository/android-ndk-r14-linux-x86_64.zip
|
||||
unzip -qq android-ndk-r14-linux-x86_64.zip
|
||||
rm android-ndk-r14-linux-x86_64.zip
|
||||
mv android-ndk-r14 $ANDROID_NDK
|
||||
@@ -0,0 +1,11 @@
|
||||
# Image: introlab3it/rtabmap:tango-api19
|
||||
|
||||
FROM introlab3it/rtabmap:android-deps-api19
|
||||
|
||||
WORKDIR /root/
|
||||
|
||||
ADD build.bash /root/build.bash
|
||||
RUN chmod +x build.bash
|
||||
RUN /bin/bash -c "./build.bash /opt/android"
|
||||
|
||||
WORKDIR /root/
|
||||
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "build.bash android_install_prefix # Example: build.bash /opt/android"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
prefix=$1
|
||||
|
||||
# get rtabmap
|
||||
git clone https://github.com/introlab/rtabmap.git rtabmap-tango
|
||||
|
||||
# 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/armeabi-v7a/include/.
|
||||
cp -r lib_tango_client_api/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r lib_tango_client_api/lib/armeabi-v7a/* $prefix/armeabi-v7a/lib/.
|
||||
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/armeabi-v7a/include/.
|
||||
cp -r lib_tango_support_api/include/* $prefix/arm64-v8a/include/.
|
||||
cp -r lib_tango_support_api/lib/armeabi-v7a/* $prefix/armeabi-v7a/lib/.
|
||||
cp -r lib_tango_support_api/lib/arm64-v8a/* $prefix/arm64-v8a/lib/.
|
||||
cp -r lib_tango_support_api/lib/* rtabmap-tango/app/android/jni/third-party/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/.
|
||||
|
||||
# Patch to remove not supported arcore and arengine stuff on API19
|
||||
git config --global user.email "you@example.com"
|
||||
git config --global user.name "Your Name"
|
||||
cd rtabmap-tango
|
||||
git pull origin tango-api19
|
||||
|
||||
# resource tool
|
||||
cd build
|
||||
cmake -DANDROID_PREBUILD=ON ..
|
||||
make
|
||||
cd ../..
|
||||
|
||||
# rtabmap (do only 32 bits for api19)
|
||||
mkdir rtabmap-tango/build/armeabi-v7a
|
||||
cd rtabmap-tango/build/armeabi-v7a
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../../cmake_modules/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a -DBUILD_SHARED_LIBS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=OFF -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=$prefix/armeabi-v7a/sdk/native/jni -DCMAKE_INSTALL_PREFIX=$prefix/armeabi-v7a ../..
|
||||
make
|
||||
|
||||
# package with binaries of both architectures
|
||||
cp -r ../armeabi-v7a/app/android/libs/armeabi-v7a app/android/libs/.
|
||||
make
|
||||
@@ -0,0 +1,18 @@
|
||||
# Image: introlab3it/rtabmap:tango-dev
|
||||
|
||||
FROM introlab3it/rtabmap:tango
|
||||
|
||||
WORKDIR /root/
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
vim \
|
||||
eclipse \
|
||||
eclipse-cdt \
|
||||
eclipse-cdt-jni
|
||||
|
||||
RUN cp ~/rtabmap-tango/build/arm64-v8a/app/android/project.properties ~/rtabmap-tango/app/android/.
|
||||
|
||||
# Manual steps:
|
||||
# - Install ADT plugin from Eclipse: https://stuff.mit.edu/afs/sipb/project/android/docs/sdk/installing/installing-adt.html
|
||||
# - Import rtabmap project, set build command: "make -C ${ProjDirPath}/build/arm64-v8a VERBOSE=true"
|
||||
# - Create Android project from source code and select rtabmap-tango/app/android directory.
|
||||
Reference in New Issue
Block a user