ORB-SLAM2
===============

食道内の移動に関して初期検討で使ったORB-SLAM
https://github.com/phdsky/ORBSLAM24Windows
のオープンソースを参照してください．


##　動作環境
以下の2つの環境で動作を確認
①プロセッサ，Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
 メモリ, 8.00GB
 OS, Windows10
 IDE, visual studio 2015

②プロセッサ，Intel(R) Core(TM) i7-6700 CPU @ 3.40GH
 メモリ, 16.00GB
 OS, Windows10
 GPU, GeForce GTX 970
 ライブラリ, CUDA 8.0
 IDE, visual studio 2015


## Thanks
Original ORBSLAM2 project: ORB_SLAM2
Eigen and Pangolin in Thirdparty are extracted from Phylliida/orbslam-windows/Thirdparty
## Prerequisite
OpenCV
Version is not required, but not too old. In this tutorial is 2.4.13.
Add YOUR_OWN_PATH\opencv\build; YOUR_OWN_PATH\opencv\build\x64\vc12\bin; to your environment variable "PATH", you can also add YOUR_OWN_PATH\opencv\build\x86\vc12\bin; if you want to bulid a x86 type application.
Cmake
Version should at least be 2.8.
Visual Studio
In this tutorial is VS2013(Corresponding to opencv's vc12).
So, we'll build a visual studio 2013 project of ORB_SLAM2 using cmake and then make a x64 app.

## Steps
First, we'll compile the projects in Thirdparty folder.

## DBoW2
Open cmake-gui, select DBow2 folder as the source path and the DBow2/build folder as the binaries path.
Click configure, select Visual Studio 12 2013 Win64(or your own) as the generator, click finish.
After configure done, click Generate.
Go to the DBow2/build folder, double click the DBoW2.sln to open the peoject.
Build ALL_BUILD in either debug or release mode you want.
After success build, the libraries will be in the lib folder of the DBow2 project source folder.
## eigen
eigen is not need to be built

## g2o
Open cmake-gui, select g2o folder as the source path and the g2o/build folder as the binaries path.
Click configure, select Visual Studio 12 2013 Win64(or your own) as the generator, click finish.
After configure done, click Generate.
Go to the g2o/build folder, double click the g2o.sln to open the peoject.
Right click on the g2o project->Properties->C/C++->Preprocessor Definitions, add WINDOWS at the end row, click Apply and OK.
Build ALL_BUILD in either debug or release mode you want. (Remind to repeat step 5 && Mode should be the same as DBoW2)
After success build, the libraries will be in the lib folder of the g2o project source folder.
## Pangolin
Open cmake-gui, select Pangolin folder as the source path and the Pangolin/build folder as the binaries path.
Click configure, select Visual Studio 12 2013 Win64(or your own) as the generator, click finish.
After configure done, click Generate.
Go to the Pangolin/build folder, double click the Pangolin.sln to open the peoject.
Build ALL_BUILD in either debug or release mode you want. (Mode should be the same as DBoW2 && g2o).
You'll get a error of "cannot open input file 'pthread.lib'", just ignore it.
After success build, the libraries will be in the lib folder of the Pangolin project source folder.
## ORBSLAM24Windows
Open cmake-gui, select ORBSLAM24Windows folder as the source path and the ORBSLAM24Windows/build folder as the binaries path.
Click configure, select Visual Studio 12 2013 Win64(or your own) as the generator, click finish.
After configure done, click Generate.
Go to the ORBSLAM24Windows/build folder, double click the ORB_SLAM2.sln to open the peoject.
Choose either debug or release mode you want. (Mode should be the same as DBoW2 && g2o && Pangolin).
Right click the ORB_SLAM2 project and then click generate.
After success build, the libraries will be in the lib folder of the ORB_SLAM2 project source folder.
## Applications
If you want to make apps, you can also build the mono-stero-RGBD projects provided.

Take mono_tum app as an example, you can follow the steps below.

Go to the ORBSLAM24Windows/build folder, double click the ORB_SLAM2.sln to open the peoject.
Choose either debug or release mode you want. (Build mode should be the same as DBoW2 && g2o && Pangolin && ORB_SLAM2).
Right click the mono_tum project and then click generate.
Download tum dataset sequence, for example freiburg2_desk
Right click the mono_tum project and then click Property->Config Property->Debug, input three parameters (Usage: ./mono_tum path_to_vocabulary path_to_settings path_to_sequence, the first can be ignored in windows)
path_to_vocabulary In ORBSLAM24Windows/Vocabulary folder, unpack the tar, a .txt file
path_to_settings In ORBSLAM24Windows/Examples/Monocular folder, rgbd_dataset_freiburg2_desk corresponding to TUM2.yaml
path_to_sequence rgbd_dataset_freiburg2_desk folder path
Run app, it'll take a few minutes to load the vocabulary dictionary, and then you'll get the result.
If you don't satisfied with the speed of loading dictionary, you can reference issue vocabulary convert to convert the txt vocabulary to bin vocabulary, it speeds up a lot.
