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)
include_directories(
CMakeの変更は、ほんとうはもっと本質的な原因を調査して回避すべきですが、手っ取り早い方法をとりました。
最後に[Generate]、[Open Project]を実行します。
Visual Studioが起動したら、ソリューションのビルドを実行すれば、問題なくビルドが完了します。
以上がORB-SLAM2のビルドに関する説明です。次回は実際にKITTIなどで動作をさせてみたいと思います。