# vins-mobile **Repository Path**: bill4u/vins-mobile ## Basic Information - **Project Name**: vins-mobile - **Description**: 添加注释,主要突出与VINS-Mono的不同之处! - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-04-13 - **Last Updated**: 2023-10-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VINS-Mobile ## Monocular Visual-Inertial State Estimator on Mobile Phones **13 Apr 2022**: 主要的算法处理流程在ViewController.mm这个文件中。启动四个线程,分别是Main process image thread、VINS thread、Loop detection thread、GLobal Pose graph thread。 滑窗大小及其他配置文件在global_param.hpp中。 相比于vins-mono,vins-mobile的前端线程Main process image thread中添加了一个USE_PNP的开关,用来启动前端小滑窗(6帧)优化相机的位姿并实时输出(30Hz)。在小滑窗中,特征深度值、外参、偏置在滑窗中不优化,已经优化过的位姿和速度也不再参与优化。在考虑了上述不再优化的固定值之后,对整个滑窗只添加IMU的预积分及视觉重投影两种约束。预积分与正常的预积分相同(但是实际上所有的偏置、已经被优化过的位姿和速度都不再参与优化),但是视觉重投影约束只考虑了相机位姿和外参(实际上所有的外参已经被设置为固定值不再参与优化)的影响。 在后端线程VINS thread中,主要的处理函数仍然是vins-mono中的process()函数。主要处理流程与vins-mono一致,但是把外参设置为固定值不参与优化!后端优化完成以后把更新后的滑窗中关键帧的状态量及特征点传递给前端的小滑窗,用来修正前端中图像时间戳与之对应的帧的状态量和同一个id的地图点。 **27 Jun 2017**: We upgrade the pose outputs and AR rendering to 30 Hz by motion-only 3D tracking in front-end and improve the loop-closure procedure(See our [technical report](https://github.com/HKUST-Aerial-Robotics/VINS-Mono/blob/master/support_files/paper/tro_technical_report.pdf) for detail). **22 May 2017**: **VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator** is released. It is the **Linux** version and is fully integrated with **ROS**. Available at: [link](https://github.com/HKUST-Aerial-Robotics/VINS-Mono) VINS-Mobile is a real-time monocular visual-inertial state estimator developed by members of the [HKUST Aerial Robotics Group](http://uav.ust.hk/). It runs on compatible iOS devices, and provides localization services for augmented reality (AR) applications. It is also tested for state estimation and feedback control for autonomous drones. VINS-Mobile uses sliding window optimization-based formulation for providing high-accuracy visual-inertial odometry with automatic initialization and failure recovery. The accumulated odometry errors are corrected in real-time using global pose graph SLAM. An AR demonstration is provided to showcase its capability. **Authors:** [Peiliang LI](https://peiliangli.github.io/), [Tong QIN](http://www.qintonguav.com), [Zhenfei YANG](https://github.com/dvorak0), Kejie QIU, and [Shaojie SHEN](http://www.ece.ust.hk/ece.php/profile/facultydetail/eeshaojie) from the [HKUST Aerial Robotics Group](http://uav.ust.hk/) **Videos:** https://youtu.be/0mTXnIfFisI https://youtu.be/CI01qbPWlYY ([Video1](http://www.bilibili.com/video/av10813373/) [Video2](http://www.bilibili.com/video/av10813030/) for mainland China friends) **Related Papers:** * [**Monocular Visual-Inertial State Estimation for Mobile Augmented Reality**](https://github.com/PeiliangLi/peiliangli.github.io/blob/master/docs/ismar2017li.pdf), *P.Li et al (ISMAR 2017)* * [**Robust Initialization of Monocular Visual-Inertial Estimation on Aerial Robots**](http://www.ece.ust.hk/~eeshaojie/iros2017tong.pdf), *T.Qin et al (IROS 2017)* * [**Monocular Visual-Inertial State Estimation With Online Initialization and Camera-IMU Extrinsic Calibration**](http://ieeexplore.ieee.org/document/7463059/), *Z.Yang et al (T-ASE 2017)* *If you use VINS-Mobile for your academic research, please cite at least one of our related papers.* ## 1. Build The code has been compiled on macOS Sierra with Xcode 8.3.1 and tested with iOS 10.2.1 on iPhone7 Plus. 1.1 Install boost for macOS ``` $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ brew install boost ``` 1.2 Download specific **opencv2.framework** from [here](http://uav.ust.hk/storage/opencv2.framework.zip), then unzip it to VINS_ThirdPartyLib/opencv2.framework **(Please make sure you haven't installed opencv for your OSX)** 1.3 In your Xcode, select **Product**-> **Scheme**-> **Edit Scheme**-> **Run**-> **Info**, set **Build Configuration** to **Release** (not debug) 1.4 **Slect your device** at upper left corner, then **choose your device size** at Main.storyboard, build and run 1.5 Compatible Devices and iOS version requiements iPhone7 Plus, iPhone7, iPhone6s Plus, iPhone6s, iPad Pro iOS 10.2.1 and above ## 2. Acknowledgements We use [ceres solver](http://ceres-solver.org/) for non-linear optimization and [DBow](https://github.com/dorian3d/DBoW2) for loop detection. Thanks the contributions of [Botao Hu](http://amber.botao.hu/) (from [Amber Garage](https://ambergarage.com/)) and [Yang Liu](https://github.com/wandermyz). ## 3. Licence The source code is released under [GPLv3](http://www.gnu.org/licenses/) licence. We are still working for improving the code readability. Welcome to contribute to VINS-Mobile or ask any issues via Github or contacting Peiliang LI or Tong QIN . For commercial inqueries, please contact Shaojie SHEN