【SLAM】SLAM環境配置(Win10_x64+VS2015_x64)

最近想要進行基於圖像序列的三維重建研究,首先的想法就是採用SLAM方法進行地圖重建。在網上很容易找到了大神"半閒居士"的博客《一起做RGB-D SLAM》系列,大神的博客循序漸進,最終完成一個簡單、完整的SLAM程序。雖然其中有些部分還沒有搞的太明白,但較之前的小白有了質的提升。

接下來將要寫下進行SLAM程序編寫中的環境配置心得(大神"半閒居士"是在Linux下進行的,而我將要在windows下進行,其中大部分過程相同,有極小部分不同,推薦大家先看完大神的一起做RGB-D SLAM》系列

首先,我們都需要什麼:

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官網下載

https://opencv.org/releases.html

下載 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

地址:http://unanancyowen.com/en/pcl18/

具體配置請看 gakki_Yuibo 的 《VS2015配置PCL1.8.0詳細教程》+bohaijun_123的 《win7下的PCL1.8-X64-VS2015配置(內含下載鏈接)》 (20181130後記  已經出了PCL181 使用PCL181進行配置沒有問題出現 推薦採用PCL181)

 

(我是真的懶,看看有空的時候做一遍補上)

 

當然,以我的性格 我將PCL安裝到了 D:\Lib\PCL180 下,文件夾下包括了 3rdParty 這下面包含了 上面提到的Boost、Eigen、FLANN、OpenNI2、Qhull、VTK庫。

 

3. G2O   (複雜的地方來了)版本 master

下載 g2o-master.zip   (Clone or download -->Download ZIP)

地址:https://github.com/RainerKuemmerle/g2o

具體配置請看

shadingwalker 《Windows+Visual Studio下生成g2o庫教程(結合Cholmod庫)》

cc_sunny 的《關於SLAM的那些事——通用圖優化(G2O)環境搭配(windows8.1 vs2013)》

這裏做下說明 基本上可以按照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)

地址:https://cmake.org/download/

cmake下載後安裝即可(最好是以管理員身份運行.msi文件進行安裝,打開軟件也最好以管理員身份運行,Win10對C盤的保護 很強,如果你在配置過程中需要往C盤寫入文件,當你不是管理員身份運行時有可能會出現意外的錯誤)

 

3.2  suitesparse

版本 1.3.0

地址:https://github.com/jlblancoc/suitesparse-metis-for-windows/tree/v1.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都可以用)

地址:http://download.qt.io/archive/qt/5.10/5.10.0/

 

下載並安裝:qt-creator-win-opensource-2.5.2.exe

地址:http://download.qt.io/archive/qtcreator/2.5/

 

下載:qt-vs-tools-msvc2015-2.1.1.vsix

地址:http://download.qt.io/archive/vsaddin/

 

新版本qt-vs-tools在vs2015下的名字是 Qt VS Tool

 

3.4  libQGLViewer 版本  2.7.1

下載:libQGLViewer-2.7.1.zip

地址:http://libqglviewer.com/installWindows.html

解壓後我們用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

 

g2o實踐代碼報錯(linearSolver)解決方法

 

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

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章