embeddedなブログ

組み込みシステムに関することや趣味に関することをダラダラと書いていきます(^^)

Visual Studio 2019でORB-SLAM2のビルド

2019-12-14 20:31:41 | Windows Embedded Standard

ORB-SLAM2のWindows版をVisual Studio 2019でビルドしてみましたので、その方法を説明します。

https://github.com/raulmur/ORB_SLAM2.git をGitでクローンします。ここでは、C:\Git\ORB_SLAM2_Windows にクローンした前提で説明をします。

 

CMakeはVisual Studio 2019に対応するため最新版をインストールします。私はバージョン3.16.0をインストールしました。

https://github.com/Kitware/CMake/releases/download/v3.16.0/cmake-3.16.0-win64-x64.msi

 

Pangolinの環境を作成します。

Pangolinのページからソースコードをダウンロードしてきます。

CMake-guiを起動します。CMakeで

ソースディレクトリに C:/Git/Pangolin

ビルドディレクトリに C:/Git/Pangolin/buildを設定します。

[Configure]を実行します。表示された画面で[Specify the generator for this project]に”Visual Studio 16 2019"を選択します。

CMakeで表示されているCMAKE_INSTALL_PREFIXを下記に変更します。

CMAKE_INSTALL_PREFIX=C:/Git/ORB_SLAM2_Windows/Thirdparty/Pangolin

[Generate]を実行して、正常終了したら、[Open Project]を実行します。

Visual StudioでPangolinプロジェクトが起動します。ビルド対象をReleaseに変更して、[ソリューションのビルド]を実行します。

ビルドが正常終了したら、ソリューションエクスプローラでINSTALLを右クリックして[プロジェクトのみ]-[INSTALLをビルド]します。

 

次にOpenCVをビルドします。 ここからソースコードをダウンロードしてきます。OpenCV 2.4系の最新版で試してみました。

ダウンロードしたソースは、C:\Git\opencv-2.4.13.6 に展開しました。

環境変数として下記を設定します。

OpenCV_Dir=C:\OpenCV\lib

 

次にPangolinと同様にCMakeで[Configure]を実行します。CMakeでは下記をカスタムで設定します。

CMAKE_INSTALL_PREFIX=C:/opencv

WITH_CUDA=OFF


次にEigenです。ここからソースコードをダウンロードしてきます。ここでは3.3.7をダウンロードしています。

ダウンロードしたファイルを C:\Git\ORB_SLAM2_Windows\Thirdparty に展開します。Eigenは単純にダウンロードしたファイルを展開するだけで、ビルドなどは必要ありません。

 

そしていよいよORB-SLAM2のビルドです。

環境変数として、OpenCV_DIR=C:/OpenCV/lib を定義してください。

ソースディレクトリは C:/Git/ORB_SLAM2_Windows

ビルドディレクトリは C:/Git/ORB_SLAM2_Windows/build

[Configure]を実行します。

また、下記をCMakeの定義を編集してください。

CMAKE_INSTALL_PREFIX=C:/Git/ORB_SLAM2_Windows/bin

どうしてもEigenの部分でCMakeが通らなかったので、C:\Git\ORB_SLAM2_Windows\CMakeLists.txtを下記のように変更しました。

[変更前]
find_package(eigen3 3.1.0 REQUIRED)

[変更後]
find_package(eigen3 QUIET)
if (NOT eigen3_FOUND)
  set(EIGEN3_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/eigen-3.3.7)
  find_package(Eigen QUIET)
endif()

また、どうしてもOpenCVとEigenのインクルードパスがうまく通らなかったので、C:\Git\ORB_SLAM2_Windows\CMakeLists.txtのinclude_directories文の上に下記の2行を追加して回避しました。

set(OpenCV_INCLUDE_DIRS C:/OpenCV/include)

set(EIGEN3_INCLUDE_DIR C:/Git/ORB_SLAM2_Windows/Thirdparty/eigen-3.3.7)

include_directories(
 

CMakeの変更は、ほんとうはもっと本質的な原因を調査して回避すべきですが、手っ取り早い方法をとりました。

最後に[Generate]、[Open Project]を実行します。

Visual Studioが起動したら、ソリューションのビルドを実行すれば、問題なくビルドが完了します。

以上がORB-SLAM2のビルドに関する説明です。次回は実際にKITTIなどで動作をさせてみたいと思います。

 


最新の画像もっと見る