During tests an anomaly occured where the smartphone has completely crashed and was only recoverable by connecting it to a computer/charger. Use at your own risk!
This Project was carried out as part of my bachelor thesis (German). It is the android port of the VINS-Mobile project of the HKUST Aerial Robotics Group.
Videos:
Outdoor
Indoor
Checkerboard Pattern Printed
Download the OpenCV Android SDK and exctract it somewhere. Edit the {path} in the file
VINS_Mobile_AndroidPort\app\src\main\cpp\VINS_Android\CMakeLists.txt
and
VINS_Mobile_AndroidPort\app\libs\VINS-Mobile-master\CMakeLists.txt
according to the location:
SET(OpenCV_DIR {path}/OpenCV-android-sdk/sdk/native/jni)
Download Boost and set the {path} in the file
VINS_Mobile_AndroidPort\app\libs\VINS-Mobile-master\VINS_ThirdPartyLib\CMakeLists.txt
according to the location:
set(boost_include_dir {path}/boost_1_63_0/)
You might have a different boost version. The application was only tested with Version 1.63.0.
Ceres unfortunately uses the ndk-build System instead of cmake for android, so it has to be invoked manually.
Before you start the build process make sure the right APP_ABI for your device is selected in the Application.mk file
To start the build process use the console/terminal and go to the directory of the Android.mk and Application.mk file:
cd ...\VINS_Mobile_AndroidPort\app\libs\VINS-Mobile-master\VINS_ThirdPartyLib\ceres-solver\jni
and call the ndk-build programm located in the Android SDK installation directory:
...\Android\sdk\ndk-bundle\ndk-build
This may take some time. You can accelerate the process with the -jN parameter with N = Number of threads, though it might lead to errors later on.
As the result there should be generated a "obj/local" directory in the "ceres-solver" folder with one libceres.a file for each selected APP_ABI in it.
Open the VINS_Mobile_AndroidPort folder as an Android Studio Project. Android Studio will generate all missing files and throw an error like this one:
"Error:Could not find com.android.tools.build:gradle:3.0.1. ..."
Choose "Add Google Maven repository and sync project" and you should be ready to deploy and run the application on your device.
The used intrinsic and extrinsic parameters are calibrated to a Samsung Galaxy S7. To have the programm work properly it is necessary to determine the correct values for your device.
For more details on the calibration procedure see my bachelor thesis.
The parameters are located in the file
VINS_Mobile_AndroidPort\app\libs\VINS-Mobile-master\VINS_ios\global_param.cpp.