Giter Site home page Giter Site logo

rkuo2000 / vins-mobile-android Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jannismoeller/vins-mobile-android

0.0 0.0 0.0 69.67 MB

License: GNU General Public License v3.0

Shell 0.05% C++ 96.17% Python 0.27% C 0.57% Objective-C 0.15% Java 0.15% Objective-C++ 0.53% Makefile 0.12% HTML 0.01% CMake 1.97% GLSL 0.01%

vins-mobile-android's Introduction

VINS-Mobile-Android

⚠️ Warning: Potentially harmful code ⚠️

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!

Background

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

Build

Dependencies

OpenCV

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)

Boost

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 & Eigen

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.

Android Studio

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.

Device Parameters

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.

vins-mobile-android's People

Contributors

jannismoeller avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.