2017/06/03

初学者用SLAM・ATAMを導入して動かす

これまで初学者向けのvisual SLAM,Abecedary tracking and mapping(ATAM)の概要について説明しましたが,今回はその実装方法について記述します


1. Cmake2.8のインストール(http://www.cmake.org/)
 ・他のバージョンでも多分大丈夫とのこと.3.4.0で動作確認.

2.Visual Studio2013のインストール(http://opencv.org/
 ・他のバージョンでも多分大丈夫とのこと.

3. OpenCV3.0のダウンロード(http://www.cmake.org/)
 ・適当なところに解凍して環境変数のPathにその場所を加える.
 ・今回はC:\opencv\3.0\build\x64\vc12\bin
    *VS2013だからvc12
            *64bitコンパイラだからx64

4. CLAPACK3.2.1のダウンロード
 ・clapack-3.2.1-CMAKE.tgzを適当なところに解凍
 ・今回はC:\clapack

5. Cvsba-1.0.0のダウンロード(http://www.uco.es/investiga/grupos/ava/node/39
 ・cvsba-1.0.0.tgzを適当なところに解凍
 ・utils/test_cvsba.cpp に #include<limits>を加える

6. ATAMのダウンロード(https://github.com/CVfAR/ATAM)
 ・適当なところに解凍
 ・今回はC:\ATAM

7. CMakeを起動しCLAPACKをコンパイル
 ・Where is the source codeにC:/clapack/clapack-3.2.1-CMAKE
 ・Where to build the binariesにC:/clapack/clapack-3.2.1-CMAKE/build
 ・ConfigureおしてGenerate押す
 ・プロジェクトは自分の環境に合わせて選ぶ.今回はVS 12 2013 Win64

8. C:/clapack/clapack-3.2.1-CMAKE/buildにできたCLAPACK.slnをVisualStudioで起動してReleaseモードでビルド

9. cvsba-1.0.0/srcのファイルをC:/ATAM/src/cvsbaに全てコピー

10. CMakeを起動しCLAPACKをコンパイル
 ・Where is the source code にC://lib/ATAM-master
 ・Where to build the binaries に D://lib/ATAM-master/build
 ・ConfigureおしてエラーなのでOpenCV_DIRにC:\opencv\3.0\build
 ・Configureおしてエラーなので
    BLAS_LIB:      C:/clapack/clapack-3.2.1-CMAKE/build/SRC/Release/lapack.lib
    F2C_LIB:         C:/clapack/clapack-3.2.1-CMAKE/build/BLAS/SRC/Release/blas.lib
    LAPACK_LIB:  C:/clapack/clapack-3.2.1-CMAKE/build/F2CLIBS/libf2c/Release/libf2c.lib
 .ConfigureおしてGenerate押す

11.ATAM修正
 ・ATAM/buildのPROJ_ATAM.sln開いて以下のように修正
  cvsba.cpp の95行目 :int nconstframes = imagePoints.size() > 2 ? 2 : 0; //mcon
  cvsba.cpp の233行目 ://throw cv::Exception(8888, "Error occured during Sba optimization", "Sba::run", __FILE__, __LINE__); return -1;
  sba_levmar.c の 636行目 ://return SBA_ERROR;

12.カメラキャリブレーション
 ・usbカメラをPCに挿す
 ・C:/openCV/3.0/sources/docのpattern.png印刷
 ・VisualStudioでCameraCalibrationのプロジェクトをスタートアッププロジェクトに設定
 ・デバッグなしで開始
 ・patten.pngを色んな角度から(30程度?)Space押して撮影しEscで抜ける
 ・Esc後ちょっと時間かかるので終了はちゃんと待つ

13.SLAM実行
 ・UsbカメラをPCに挿す
 ・ATAMをスタートアッププロジェクトにしデバッグなしで開始
 ・スペース押してスタート,カメラを動かしてもう一回スペースで初期マップ作成
 ・チェスボードを映しながらスペースでキャプチャーしこれを2回

  ・以後SLAM

0 件のコメント:

コメントを投稿