mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 09:30:25 +08:00
Docker: added Dockerfile for android
This commit is contained in:
@@ -8,7 +8,8 @@ RUN apt-get update && apt-get install -y \
|
|||||||
git \
|
git \
|
||||||
cmake \
|
cmake \
|
||||||
libproj-dev \
|
libproj-dev \
|
||||||
libqt5svg5-dev
|
libqt5svg5-dev \
|
||||||
|
software-properties-common
|
||||||
|
|
||||||
# Clone source code
|
# Clone source code
|
||||||
WORKDIR /root/
|
WORKDIR /root/
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
all: help
|
|
||||||
|
|
||||||
help:
|
|
||||||
@echo ""
|
|
||||||
@echo "-- Help Menu"
|
|
||||||
@echo ""
|
|
||||||
@echo " 1. make build - build images"
|
|
||||||
@echo " 1. make pull - pull images"
|
|
||||||
@echo " 1. make clean - remove images"
|
|
||||||
@echo ""
|
|
||||||
|
|
||||||
build:
|
|
||||||
@docker build --tag=rtabmap .
|
|
||||||
|
|
||||||
pull:
|
|
||||||
@docker pull rtabmap
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@docker rmi -f rtabmap
|
|
||||||
6
docker/xenial/android/Dockerfile
Normal file
6
docker/xenial/android/Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
FROM introlab3it/rtabmap
|
||||||
|
|
||||||
|
WORKDIR /root/
|
||||||
|
ADD install_deps.bash /root/install_deps.bash
|
||||||
|
RUN chmod +x install_deps.bash
|
||||||
|
RUN /bin/bash -c "./install_deps.bash"
|
||||||
145
docker/xenial/android/install_deps.bash
Normal file
145
docker/xenial/android/install_deps.bash
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
# Setup android sdk
|
||||||
|
export ANDROID_HOME="/opt/android-sdk"
|
||||||
|
export PATH="${PATH}:${ANDROID_HOME}/tools/:${ANDROID_HOME}/platform-tools/"
|
||||||
|
wget 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
|
||||||
|
|
||||||
|
# Setup android ndk
|
||||||
|
wget 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 /opt/.
|
||||||
|
export ANDROID_NATIVE_API_LEVEL=android-19
|
||||||
|
export ANDROID_NDK=/opt/android-ndk-r14
|
||||||
|
export PATH="${PATH}:${ANDROID_NDK}"
|
||||||
|
|
||||||
|
# Install directory for all dependencies
|
||||||
|
mkdir -p android/share
|
||||||
|
wget https://github.com/introlab/rtabmap/raw/master/cmake_modules/android.toolchain.cmake
|
||||||
|
mv android.toolchain.cmake android/share/.
|
||||||
|
|
||||||
|
# Boost
|
||||||
|
wget 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 https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/489ff2869eccd6f8d03ffb9090ef839108762741/BoostConfig.cmake.in
|
||||||
|
wget https://gist.github.com/matlabbe/0bce8feeb73a499a76afbbcc5c687221/raw/e7fbf0e301cfea417a7aa69989a761a4de08b8c3/CMakeLists.txt
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android ..
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
cd
|
||||||
|
rm -r boost_1_59_0.tar.gz boost_1_59_0
|
||||||
|
|
||||||
|
# eigen
|
||||||
|
wget 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=~/android/share/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android ..
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
cd
|
||||||
|
rm -r 3.2.7.tar.gz eigen-eigen-b30b87236a1b
|
||||||
|
|
||||||
|
# FLANN
|
||||||
|
wget 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=~/android/share/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android ..
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
cd
|
||||||
|
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 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=~/android/share/android.toolchain.cmake -DMETIS_SHARED=OFF -DGTSAM_BUILD_STATIC_LIBRARY=ON -DGTSAM_BUILD_TESTS=OFF -DGTSAM_BUILD_EXAMPLES_ALWAYS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android ..
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
cd
|
||||||
|
rm -r gtsam
|
||||||
|
|
||||||
|
# g2o
|
||||||
|
git clone https://github.com/RainerKuemmerle/g2o.git
|
||||||
|
cd g2o
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -DBUILD_LGPL_SHARED_LIBS=OFF -DG2O_BUILD_APPS=OFF -DG2O_BUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/android ..
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
cd
|
||||||
|
rm -r g2o
|
||||||
|
|
||||||
|
|
||||||
|
#CMake 3.7 for VTK
|
||||||
|
wget 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
|
||||||
|
~/cmake-3.7.2-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=$HOME/android ..
|
||||||
|
make
|
||||||
|
cp -r CMakeExternals/Install/vtk-android/* ~/android/.
|
||||||
|
cd
|
||||||
|
rm -r 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 https://gist.github.com/matlabbe/41812e50e459b2f27b331a2343569e5d/raw/b97cf6dda9aa9487ee75a3cc4e8826b216a1ad06/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=~/android/share/android.toolchain.cmake -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=$HOME/android ..
|
||||||
|
cmake -DCMAKE_TOOLCHAIN_FILE=~/android/share/android.toolchain.cmake -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=$HOME/android ..
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
cd
|
||||||
|
rm -r pcl
|
||||||
|
|
||||||
|
# OpenCV
|
||||||
|
wget https://downloads.sourceforge.net/project/opencvlibrary/opencv-android/3.2.0/opencv-3.2.0-android-sdk.zip
|
||||||
|
unzip -qq opencv-3.2.0-android-sdk.zip
|
||||||
|
rm opencv-3.2.0-android-sdk.zip
|
||||||
|
mv OpenCV-android-sdk /opt/.
|
||||||
|
|
||||||
|
# setup environment variables
|
||||||
|
echo "export ANDROID_HOME=\"/opt/android-sdk\"" >> ~/.bashrc
|
||||||
|
echo "export PATH=\"${PATH}:${ANDROID_HOME}/tools/:${ANDROID_HOME}/platform-tools/\"" >> ~/.bashrc
|
||||||
|
echo "export ANDROID_NATIVE_API_LEVEL=android-19" >> ~/.bashrc
|
||||||
|
echo "export ANDROID_NDK=/opt/android-ndk-r14" >> ~/.bashrc
|
||||||
|
echo "export PATH=\"${PATH}:${ANDROID_NDK}\"" >> ~/.bashrc
|
||||||
|
source ~/.bashrc
|
||||||
9
docker/xenial/android/tango/Dockerfile
Normal file
9
docker/xenial/android/tango/Dockerfile
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
FROM introlab3it:rtabmap-android-deps
|
||||||
|
|
||||||
|
WORKDIR /root/
|
||||||
|
|
||||||
|
ADD build.bash /root/build.bash
|
||||||
|
RUN chmod +x build.bash
|
||||||
|
RUN /bin/bash -c "./build.bash"
|
||||||
|
|
||||||
|
WORKDIR /root/rtabmap-android/build/app/android/bin
|
||||||
22
docker/xenial/android/tango/build.bash
Normal file
22
docker/xenial/android/tango/build.bash
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# get rtabmap
|
||||||
|
git clone https://github.com/introlab/rtabmap.git rtabmap-tango
|
||||||
|
|
||||||
|
# tango
|
||||||
|
wget https://developers.google.com/tango/downloads/TangoSDK_Farandole_C.zip
|
||||||
|
unzip -qq TangoSDK_Farandole_C.zip
|
||||||
|
cp -r lib_tango_client_api/* android/.
|
||||||
|
rm -r lib_tango_client_api
|
||||||
|
wget https://developers.google.com/tango/downloads/TangoSupport_Farandole_C.zip
|
||||||
|
unzip -qq TangoSupport_Farandole_C.zip
|
||||||
|
cp -r lib_tango_support_api/* android/.
|
||||||
|
cp -r lib_tango_support_api/lib/* rtabmap-tango/app/android/jni/third-party/lib/.
|
||||||
|
rm -r lib_tango_support_api
|
||||||
|
wget https://developers.google.com/tango/downloads/TangoSDK_Farandole_Java.jar
|
||||||
|
mv TangoSDK_Farandole_Java.jar rtabmap-tango/app/android/libs/.
|
||||||
|
|
||||||
|
# rtabmap
|
||||||
|
cd rtabmap-tango/build
|
||||||
|
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake_modules/android.toolchain.cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=OFF -DCMAKE_BUILD_TYPE=Release -DOpenCV_DIR=/opt/OpenCV-android-sdk/sdk/native/jni -DCMAKE_INSTALL_PREFIX=$HOME/android ..
|
||||||
|
make
|
||||||
Reference in New Issue
Block a user