ORBSLAM2 windows編譯與問題解決,,一次性搞定,親測有效
1準備工作
1.下載windows下的ORBSLAM2版本
ORBSLAM2windows
2.下載cmake
Cmake
3下載Opencv
opencv版本沒有要求,但是別太老,本文使用的是2.4.13
2按照如下步驟進行編譯
1.Opencv環境配置
下載解壓opencv之後在根據需要在環境變量PATH中添加YOUR_OWN_PATH\opencv\build; 對於x64環境添加YOUR_OWN_PATH\opencv\build\x64\vc12\bin;
對於x86環境變量“ PATH” 中添加YOUR_OWN_PATH\opencv\build\x86\vc12\bin;按需添加即可
2.DBOW編譯
- 打開cmake-gui,選擇DBow2文件夾作爲源路徑,選擇DBow2 / build文件夾作爲二進制路徑
- 單擊“配置”,選擇“ Visual Studio 12 2013 Win64(或您自己的)”作爲生成器,然後單擊“完成”。
- 配置完成後,單擊生成。
- 轉到DBow2 / build文件夾,雙擊DBoW2.sln以打開對象。
- 在所需的調試或發佈模式下構建ALL_BUILD。
- 成功構建之後,這些庫將位於DBow2項目源文件夾的lib文件夾中。
3.Eigen
- Eigen不需要編譯
4.Pangolin
注意!!!
編譯Pangolin的時候最好將打開git運行,否則編譯過程太慢了。哭唧唧!!
git config --global http.proxy 'socks5://127.0.0.1:1080'
- 打開cmake-gui,選擇Pangolin文件夾作爲源路徑,選擇Pangolin / build文件夾作爲二進制路徑
- 單擊“配置”,選擇“ Visual Studio 12 2013 Win64(或您自己的)”作爲生成器,然後單擊“完成”
- 配置完成後,單擊生成
- 轉到Pangolin / build文件夾,雙擊Pangolin.sln以打開對象
- 在所需的調試或發佈模式下構建ALL_BUILD。(模式應與DBoW2 && g2o相同)
- 您將收到“無法打開輸入文件’pthread.lib’”的錯誤,將其忽略即可。
- 成功構建後,這些庫將位於Pangolin項目源文件夾的lib文件夾中
5.g2o編譯
- 1.打開cmake-gui,選擇g2o文件夾作爲源路徑,選擇g2o / build文件夾作爲二進制路徑
- 單擊“配置”,選擇“ Visual Studio 12 2013 Win64(或您自己的)”作爲生成器,然後單擊“完成”
- 配置完成後,單擊生成
- 轉到g2o / build文件夾,雙擊g2o.sln以打開對象
- 右鍵單擊g2o項目->屬性-> C / C +±>預處理程序定義,在最後一行添加WINDOWS,單擊“應用”並單擊“確定”
- 在所需的調試或發佈模式下構建ALL_BUILD。(提醒重複步驟5 &&模式應與DBoW2相同)
- 成功構建後,這些庫將位於g2o項目源文件夾的lib文件夾中
6.ORBSLAM的構建
- 打開cmake-gui,選擇ORBSLAM24Windows文件夾作爲源路徑,選擇ORBSLAM24Windows / build文件夾作爲二進制路徑
- 單擊“配置”,選擇“ Visual Studio 12 2013 Win64(或您自己的)”作爲生成器,然後單擊“完成
- 配置完成後,單擊生成
- 轉到ORBSLAM24Windows / build文件夾,雙擊ORB_SLAM2.sln以打開對象
- 選擇所需的調試或發佈模式。(模式應與DBoW2 && g2o && Pangolin相同)
- 右鍵單擊ORB_SLAM2項目,然後單擊“生成”
- 成功構建之後,這些庫將位於ORB_SLAM2項目源文件夾的lib文件夾中
- 編譯過程中如果出現“back_inserter”: 不是“std”的成員錯誤,定位目標文件位置,加入頭文件
#include <iterator>
即可
7.編譯應用程序
以mono_tum應用爲例,您可以按照以下步驟操作
- 轉到ORBSLAM24Windows / build文件夾,雙擊ORB_SLAM2.sln以打開對象
- 選擇所需的調試或發佈模式。(構建模式應與DBoW2 && g2o && Pangolin && ORB_SLAM2相同)
- 右鍵單擊mono_tum項目,然後單擊“生成”
- 下載tum數據集序列,例如freiburg2_desk
- 右鍵單擊mono_tum項目,然後單擊Property-> Config Property-> Debug,輸入三個參數(用法:./mono_tum path_to_vocabulary path_to_settings path_to_sequence,第一個可以在Windows中忽略)
path_to_vocabulary在ORBSLAM24Windows / Vocabulary文件夾中,解壓縮tar和.txt文件
path_to_settings在ORBSLAM24Windows / Examples / Monocular文件夾中,與TUM2.yaml對應的rgbd_dataset_freiburg2_desk
path_to_sequence rgbd_dataset_freiburg2_desk文件夾路徑
大功告成!!!