1. 程式人生 > >SLAM——環境配置(Win10_x64+VS2015_x64)

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、

lib、dll)

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\,

建議在磁碟根目錄下新建資料夾 Lib,將你所能用到的庫都放在該目錄下)。 安裝完成後,你會得到一個opencv資料夾,資料夾下包含一個build資料夾和一個source資料夾(建議將opencv資料夾改名為opencv24135,因為有可能你今後會下載多個版本的庫,做一個區分),其中我們所要用到的東西在build資料夾下。這樣OpenCV就安裝好了,使用OpenCV庫就在D:\Lib\opencv24135

然後我們進行下配置

(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

(時間有限 先這樣 以後修改補充)