SLAM——環境配置(Win10_x64+VS2015_x64)
最近想要進行基於影象序列的三維重建研究,首先的想法就是採用SLAM方法進行地圖重建。在網上很容易找到了大神"半閒居士"的部落格《一起做RGB-D SLAM》系列,大神的部落格循序漸進,最終完成一個簡單、完整的SLAM程式。雖然其中有些部分還沒有搞的太明白,但較之前的小白有了質的提升。
接下來將要寫下進行SLAM程式編寫中的環境配置心得(大神"半閒居士"是在Linux下進行的,而我將要在windows下進行,其中大部分過程相同,有極小部分不同,推薦大家先看完大神的)
首先,我們都需要什麼:
1. OpenCV 影象處理庫 (畢竟我們是基於影象的)
2. PCL 點雲庫
2.1. Boost
2.2. Eigen
2.3. FLANN
2.4. OpenNI2
2.5. Qhull
2.6. VTK
(在這篇部落格撰寫之時 PCL庫下載後就包括了 Boost、Eigen、FLANN、OpenNI2、Qhull、VTK等庫所以我們就不用操心太多了,否則將會是一個浩大的工程)
3. g2o 通用圖優化(這個配起來是真的煩)
3.1 cmake 對原始碼進行編譯生成基於我們系統和編譯器的工程,對形成的工程進行編譯獲得最終我們使用的庫
(include、
3.2. suitesparse
3.3. Qt
3.4. libQGLViewer
接下來我們開始一個庫一個庫的進行生成(其中版本是我所用的版本),我們最終在程式中使用的是庫的include、lib和dll檔案(配置過程請關閉你的360等安全軟體)
1. OpenCV 版本 2.4.13.5
(雖然opencv已經有OpenCV 3.x.x 版本,但其函式介面對於 2.4.x版本有較大改動,容易與其他 庫不匹配)
首先,去OpenCV官網下載
下載 2.4.13.5 的Win pack , 將會得到一個 opencv-2.4.13.5-vc14.exe ,執行它相當於一個解壓的過程,安裝在你想要安裝的地方,例如 D:\Lib\,(
然後我們進行下配置
(1)新增環境變數(關掉vs),在 此電腦-->屬性-->高階系統設定-->環境變數 對話方塊的下面 “系統變數(S)”裡找到 Path 雙擊 在彈出的“編輯環境變數”中單擊 新建 將你所用到的opencv庫的dll資料夾地址新增到新的環境變數中
如:D:\Lib\opencv24135\build\x64\vc14\bin
( 一般的庫會包括 x86、x64、debug、release的選擇 我們所配置的是x64的debug版本,之後提到的安裝均如此 如果想使用x86 或release 就將相應的資料夾新增到環境變數,如:D:\Lib\opencv24135\build\x86\vc14\bin )
(2)到此opencv庫配置已經完成,如果想在工程中使用該庫 就在你工程的屬性中 的 VC++路徑 選項內的 include路徑 和lib路徑 新增你的opencv庫路徑 ,並將你所用到的lib名稱新增到 Linker 的Input 中的addition dependencies(附加依賴項)中。這時你就可以盡情使用opencv了。詳細圖文方法可在網上搜opencv環境配置。(注意 他的版本與我的不同 .lib用自己的版本,而且 她採用的是配置屬性表 我是在工程的屬性中修改,我採用的方法在每新建一次工程都需要從新配置)
如 Include Directories: D:\Lib\opencv24135\build\include
Library Directories: D:\Lib\opencv24135\build\x64\vc14\lib
Addition dependencies
opencv_calib3d2413d.lib
opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_ml2413d.lib
opencv_nonfree2413d.lib
opencv_objdetect2413d.lib
opencv_ocl2413d.lib
opencv_photo2413d.lib
opencv_stitching2413d.lib
opencv_superres2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv_videostab2413d.lib
2. PCL 版本PCL1.8.0
下載 PCL 1.8.0 All-in-one Installer MSVC2015 x64
(我是真的懶,看看有空的時候做一遍補上)
當然,以我的性格 我將PCL安裝到了 D:\Lib\PCL180 下,資料夾下包括了 3rdParty 這下面包含了 上面提到的Boost、Eigen、FLANN、OpenNI2、Qhull、VTK庫。
3. G2O (複雜的地方來了)版本 master
下載 g2o-master.zip (Clone or download -->Download ZIP)
具體配置請看
這裡做下說明 基本上可以按照cc_sunny的博文進行,但是shadingwalker添加了Cholmod庫,有很大機率在以後會用到 所以建議加入Cholmod庫。所以,我們先看shadingwalker的文章新增 suitesparse庫。
3.1 Cmake 版本 3.6.0(這個下載安裝最新版即可)
下載 cmake-3.6.0-rc4-win64-x64.msi (下載二進位制包 不要下載原始碼 , .msi檔案 目前已經到3.10.2)
cmake下載後安裝即可(最好是以管理員身份執行.msi檔案進行安裝,開啟軟體也最好以管理員身份執行,Win10對C盤的保護 很強,如果你在配置過程中需要往C盤寫入檔案,當你不是管理員身份執行時有可能會出現意外的錯誤)
3.2suitesparse
版本 1.3.0
這裡由於我們已經配好了PCL庫 其中就已經有了Eigen庫 就不用另行下載了 在D:\Lib\PCL\3rdParty\Eigen (我試過採用自己下載的最新版本Eigen庫,Cmake g2o 的工程編譯會出錯)
3.3 Qt 版本 5.10 (不是Qt語音軟體,這是一個跨平臺編譯器)
下載並安裝: qt-opensource-windows-x86-5.10.0.exe (不知道為啥沒有64位的 網上查貌似 x86都可以用)
下載並安裝:qt-creator-win-opensource-2.5.2.exe
下載:qt-vs-tools-msvc2015-2.1.1.vsix
新版本qt-vs-tools在vs2015下的名字是 Qt VS Tool
3.4 libQGLViewer 版本 2.7.1
下載:libQGLViewer-2.7.1.zip
解壓後我們用vs2015開啟(左上角Qt VS Tool -> 開啟工程) .pro檔案 然後進行生成
以上3.1、3.2、3.3、3.4完成後開始進行g2o的編譯生成
這裡我說下Cmake 以我理解的來說 他是通過一些原始檔及配置引數 來生成不同編譯平臺的 工程檔案 如VS中生成.sln
其中 where is the source code: 是你下載的檔案 資料夾下你能看到 CMakeList.txt檔案
其中where to build the binaries: 是你即將生成的工程的資料夾 (最後生成的庫不在這裡,最後我們想要的lib及dll將在你生成 工程後出現,出現的位置如果沒有生成INSTALL則在你工程的debug或release下,如果進行生成了INSTALL,則在你進行Cmake時 CMAKE_INSTALL_PREFIX 所給的路徑 )
當配置好 where is the source code: where to build the binaries: 單擊 configure 會讀入並配置你Cmakelist中的引數 你需要配置cmake沒有自動獲得的引數路徑 (通常為紅色),下方的輸出提示會提示你缺少哪些路徑,配置好後再次點選configure如果成功會是白色,下方也沒有紅色的提示輸出,當存在空路徑時 引數項會是紅色,需要繼續進行配置,知道沒有紅色出現時,單擊Generate進行生成
當g2o cmake成功後, 在輸出的專案檔案下下 單擊 .sln 後進行生成
注意:我編譯時 會出現 Matrix 沒有定義的情況,這需要你進入錯誤的cpp中 將 Matrix前 加上 Eigen:: 為 Eigen::Matrix
(時間有限 先這樣 以後修改補充)