三個(gè)月轉(zhuǎn)行SLAM(第一周)--環(huán)境配置
點(diǎn)擊下方卡片,關(guān)注“新機(jī)器視覺”公眾號(hào)
視覺/圖像重磅干貨,第一時(shí)間送達(dá)
作者:莫慢待
來源:知乎
一個(gè)周過去了
還沒放棄
先說一下上周的學(xué)習(xí)體驗(yàn)
從上一篇說要轉(zhuǎn)行slam開啟了海口學(xué)習(xí)法,已經(jīng)快一周了。中間忙了2、3天工作,對(duì)slam的學(xué)習(xí)進(jìn)行了一些摸索,泛讀了slam14講的第一版本,昨天又購(gòu)買了新書第二版本的,還好第一版本是用的京東會(huì)員看的免費(fèi)電子版本;不然就有點(diǎn)“虧大了”,泛讀了北航老師和百度聯(lián)合編寫的自動(dòng)駕駛系列的汽車環(huán)境感知一書;同時(shí)看了3D視覺工坊推出的多傳感器融合課程,這個(gè)內(nèi)容和環(huán)境感知這書講的內(nèi)容差不多;還有浙大出品的slam暑期課程、看了前面兩課,這兩課程講了個(gè)寂寞,大概的風(fēng)格就是“這樣 然后這樣,最后就這樣了...”,定位應(yīng)該是科普課程就沒有后面的了,有時(shí)間再看看后面大佬的課程,畢竟這個(gè)課程很多不同的主講人。浙大譚平老師的計(jì)算機(jī)視覺講的很不錯(cuò)!
總的來講還是slam十四講的質(zhì)量最高,理論與實(shí)踐并重,所以我的第一節(jié)段學(xué)習(xí)目標(biāo)是基礎(chǔ)入門所以側(cè)重為slam十四講。目前是處于slam算法的優(yōu)化階段,如十四講最后列舉了有一些成熟的系統(tǒng),我們需要在這些框架系統(tǒng)的基礎(chǔ)上來完善,而不沒有必要重新寫,至少現(xiàn)在沒有這個(gè)能力。節(jié)前需要做的事情就是把十四講的代碼都跑通,并對(duì)照書本理解。
十三講是設(shè)計(jì)了一個(gè)slam系統(tǒng),應(yīng)該為最全的代碼。我想要集中解決第三方庫(kù)的問題,所以從13講代碼入手了。在github的slambook2的路徑下,有第三方庫(kù)的版本號(hào),使用該版本可以和作者保持一致的版本。我嘗試后發(fā)現(xiàn),這個(gè)版本gcc要求版本比較低,由于我安裝的是20.04的系統(tǒng),不想降級(jí)gcc等。所以我嘗試下載最新的庫(kù),反正不可能老版本的庫(kù)一直用。
·在ubuntu20.04下,使用命令apt-get安裝gcc、g++、make 、cmake。
·使用官網(wǎng)教程,安裝opencv環(huán)境,Installation in Linux。
·下載cloin,不出意外會(huì)自動(dòng)識(shí)別gcc、g++等。

打開slam14講的ch5/imageBasics,對(duì)CMakeLists作相應(yīng)的修改,添加以下一句話,不然會(huì)報(bào)錯(cuò),undefined reference to `cv::String::allocate(unsigned long)'。
find_package( OpenCV 3 REQUIRED )運(yùn)行13章需要的庫(kù)安裝。
·Pangolin ,直接按照github源碼編譯安裝就好,如果需要eigen3沒有安裝,使用命令安傳Eigen3. 如果是已經(jīng)安裝了也報(bào)錯(cuò),卸載重新安裝。
sudo apt-get install libeigen3-devsudo apt-get remove libeigen3-devsudo apt-get remove --auto-remove libeigen3-dev
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE .../usr/bin/ld: ../../lib/libmyslam.so: undefined reference to `std::locale fmt::v8::detail::locale_ref::get<std::locale>() const'find_package(fmt)target_link_libraries(myslam fmt::fmt)。
sudo apt updatesudo apt install libgoogle-glog-dev
·安裝g2o
·安裝ceres,需要注意有一個(gè)eigen3這個(gè)依賴有源碼編譯和apt-get 的兩種安裝方式,用于編譯ceres的方式要和實(shí)際連接使用的一致。不然會(huì)報(bào)錯(cuò),F(xiàn)ailed to find Ceres - Missing required Ceres dependency: Eigen version ,please set Eigen3_DIR。
3.cmake的時(shí)候指定Eigen3_DIR,cmake ../ -DEigen3_DIR=/usr/lib/cmake/eigen3
PCL 的安裝 在12講的代碼里面需要使用
需要安裝依賴,這里的依賴注意不要重復(fù)覆蓋安裝了了不一致的版本,我僅僅安裝了 libflann-dev,官方給出的依賴也沒有這么多。比如egien3 boost 這些依賴在之前就裝過了就不裝了,避免更新了這些庫(kù)的版本導(dǎo)致之前的安裝出錯(cuò)。使用是官網(wǎng)源碼編譯
sudo apt-get updatesudo apt-get install git build-essential linux-libc-devsudo apt-get install cmake cmake-guisudo apt-get install libusb-1.0-0-dev libusb-dev libudev-devsudo apt-get install mpi-default-dev openmpi-bin openmpi-commonsudo apt-get install libflann1.8 libflann-devsudo apt-get install libeigen3-devsudo apt-get install libboost-all-devsudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-devsudo apt-get install libqhull* libgtest-devsudo apt-get install freeglut3-dev pkg-configsudo apt-get install libxmu-dev libxi-devsudo apt-get install mono-completesudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \-DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \-DCMAKE_INSTALL_PREFIX=/usr ..

參考資料
https://blog.csdn.net/fsencen/article/details/79386570
—版權(quán)聲明—
僅用于學(xué)術(shù)分享,版權(quán)屬于原作者。
若有侵權(quán),請(qǐng)聯(lián)系微信號(hào):yiyang-sy 刪除或修改!
