ORB SLAM 2の設置と運転

7192 ワード


1.C++11コンパイラのインストール
    ORB_SLAM 2はC++11のスレッドと時間制御関数を用いた.
$sudo apt-get install gcc g++
 2.Pangolinのインストール
    ORB_SLAM 2はPangolinを用いる可視化ユーザインタフェースを構築する.参照https://github.com/stevenlovegrove/Pangolin.     
 $ sudo apt-get install libglew-dev   #  Glew $ sudo apt-get install cmake         #  CMake     #  Boost $ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev $ sudo apt-get install libpython2.7-dev  #  Python2 / Python3    #  、  、  Pangolin: $ git clone https://github.com/stevenlovegrove/Pangolin.git $ cd Pangolin $ mkdir build $ cd build $ cmake -DCPP11_NO_BOOST=1 .. $ make $ sudo make install
3.OpenCV 2.4を取り付ける.13   
   ORB_SLAM 2はOpenCVを用いる画像および特徴を処理する.以下を参照してください.http://opencv.org/downloads.htm.少なくとも2.4が必要である.3のバージョン本試験用OpenCV 2.4.13.(注:OpenCV 2.4.11はcuda 8.0と互換性がなく、GPU加速が必要な場合(cuda 8.0を使用し、cuda 8.0以前のバージョンではGTX 1080はサポートされていない)、OpenCV 2.4.13をインストールする必要がある)
$ sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen2-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev$ unzip  opencv-2.4.13.zip  $ cd opencv-2.4.13;mkdir build;cd build; $ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -DINSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -DBUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON -DCUDA_GENERATION=Kepler ..    $ make$ sudo make install 

  #     : /usr/local/lib$ sudo gedit /etc/ld.so.conf.d/opencv.conf   #       :    #PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig   #export PKG_CONFIG_PATH$ sudo ldconfig sudo gedit/etc/bash.bashrc  #source   $ source /etc/bash.bashrc
4.Eigen 3をインストールする.1.0
g 2 oはEigenを必要とし、Eigen 3をダウンロードしてインストールする方法はここを見ることができます.http://eigen.tuxfamily.org.必要3.1.0以上.(Opencv 2.4.13コンパイル時はこのモジュールに依存し、OpenCV 2.4.13コンパイル前にインストールすることが望ましい)
以下の機能モジュールを提供する:1)密行列と配列操作2)密線形方程式群と行列分解を解く-線形最小二乗系を解く-密行列分解(Cholesky,LU,QR,SVD,特徴値分解)3)疎線形方程式群の解と行列分解−疎行列動作−疎線形最小二乗系−疎行列分解の解(SpareCore,OrderingMethods,SpareCholesky,SpareLU,SparseQR,反復線形解)4)空間変換−2 D回転(角度)−3 D回転(角度+軸)-3 D回転(クォータリング:quaternion)-N次元スケーリング-N次元平行移動-N次元アフィン変換-N次元線形変換(回転、平行移動、スケーリング)
$ sudo apt-get install libeigen3-dev
5.BLAS and LAPACK
g 2 oにはBLASとLAPACKが必要
(1) BLAS: Basic Linear Algebra Subprograms
基本的なベクトルとマトリクス操作を提供します:-Level-1 BLAS:スカラー、ベクトル、ベクトル-ベクトル操作をサポート-Level-2 BLAS:マトリクス-ベクトル操作をサポート-Level-3 BLAS:マトリクス-マトリクス操作をサポート
(2) LAPACK:Linear Algebra PACKage
BLASを呼び出してより高度な機能を実現し、以下の操作をサポートします.
−解線形方程式群−線形方程式群の最小二乗解−固有値問題および特異値問題−行列分解(LU,Cholesky,QR,SVD,Schur,generalized Schur)−密および帯状行列を支持するが,一般的な疎行列−単精度および二重精度を支持しない
$ sudo apt-get install libblas-dev$ sudo apt-get install liblapack-dev
6. DBoW2 and g2o (Included in Thirdparty folder)
   ORB_SLAM 2は、修正版のDboW 2ライブラリを用いる位置認識を行い、g 2 oライブラリを用いる非線形最適化を行う.この2つの修正版のライブラリはサードパーティのフォルダ内に置かれている.
7.ORB_のコンパイルSLAM 2ライブラリと例プログラム(単数、両目、RGB-D)
$ git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2$ cd ORB_SLAM2$ chmod +x build.sh$ ./build.sh
 
生成されたlibORB_SLAM2.soはlibディレクトリの下にあり、実行可能プログラムmono_tum, mono_kitti, rgbd_tum, stereo_kitti, mono_euroc and stereo_EurocはExamplesディレクトリの下にあります.
8.実行例プログラム
8.1 Monocularの例
1)TUMデータセット
からhttp://vision.in.tum.de/data/datasets/rgbd-dataset/downloadrgbd_などのシーケンスをダウンロードして解凍します.dataset_freiburg1_desk2.tgz
次のコマンドを実行します(TUMX.yamlをTUM 1.yaml,TUM 2.yamlor TUM 3.yaml)
$ ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt ./Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER #for example$ ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt ./Examples/Monocular/TUM1.yaml ../tum_data/rgbd_dataset_freiburg1_desk2/
2)KITTIデータセット
からhttp://www.cvlibs.net/datasets/kitti/eval_odometry.phpデータセット(階調画像)をダウンロードし、KITTIX.yamlをKITTI 00-02.yamlに変更し、KITTI 03.yaml or KITTI 04-12.yaml、これら*xx.yamlはそれぞれシーケンス0 to 2,3に対応し、and 4 to 12.Change PATH_TO_DATASET_FOLDER to the uncompressed dataset folder.Change SEQUENCE_NUMBER to 00,01,02,..11.不明な点があれば、コードを見てみましょう.
./Examples/Monocular/mono_kitti Vocabulary/ORBvoc.txt Examples/Monocular/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER
8.2 Stereoインスタンス
1)KITTIデータセット
からhttp://www.cvlibs.net/datasets/kitti/eval_odometry.phpデータセット(階調画像)をダウンロードし、KITTIX.yamlをKITTI 00-02.yamlに変更し、KITTI 03.yaml or KITTI 04-12.yaml、これら*xx.yamlはそれぞれシーケンス0 to 2,3に対応し、and 4 to 12.Change PATH_TO_DATASET_FOLDER to the uncompressed dataset folder.Change SEQUENCE_NUMBER to 00,01,02,..11.不明な点があれば、コードを見てみましょう.
./Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER
8.3 RGB-D例
1)TUMデータセット
からhttp://vision.in.tum.de/data/datasets/rgbd-dataset/downloadrgbd_などのシーケンスをダウンロードして解凍します.dataset_freiburg1_desk2.tgz
RGB-Dインスタンスを実行するには、RGBD(depth)画像とRGB画像が必要なので、各RGB画像を対応するRGBD画像と関連付ける必要があります(Examples/RGB-D/associations/ディレクトリの下に一部の関連ファイルがあり、直接使用できます)、pythonファイルassociate.py(timestampによる関連).       
$ python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
      
次のコマンド(TUMX.yamlをTUM 1.yaml、TUM 2.yaml or TUM 3.yamlに変更)を実行し、ASSOCIATIONS_FILEを対応する関連ファイルに変更します.
$./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE   # for example$./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt ./Examples/RGB-D/TUM1.yaml  ../tum-data/rgbd_dataset_freiburg1_desk2/ ./Examples/RGB-D/associations/fr1_desk2.txt 
8.4 ROS例
      
8.4.1 ROS取付
9.SLAMとLocalizationモード
GUIでSLAMモードまたはLocalizationモードに切り替えることができます.
9.1 SLAMモード
これはデフォルトモードです.このモードでは、トラック、Local Mapping and Loop Closingの3つのスレッドが並列に動作します.システムはカメラを絶えず位置決めし,新しい地図を構築し,リングパスを閉じようとした.
9.2 Localizationモード
このモードは、良い作業領域マップがある場合に使用できます.このモードでは,局所地図構築およびループ閉鎖検出は動作しない.システムはあなたが提供した地図上でカメラを位置決めし(この地図は更新されません)、必要に応じて再位置決め(relocalization)を使用します.
           
私の先生の人工知能のチュートリアルをもう一度分かち合いましょう.ゼロベース!分かりやすい!ユーモラス!下ネタも付きます!あなたも私たちの人工知能のチームに参加してほしいです.https://blog.csdn.net/jiangjunshow