<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          三個(gè)月轉(zhuǎn)行SLAM(第一周)--環(huán)境配置

          共 3665字,需瀏覽 8分鐘

           ·

          2021-10-25 12:55

          點(diǎn)擊下方卡片,關(guān)注“新機(jī)器視覺”公眾號(hào)

          視覺/圖像重磅干貨,第一時(shí)間送達(dá)

          作者:莫慢待

          鏈接:https://zhuanlan.zhihu.com/p/414536979
          來源:知乎


          一個(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ù)一直用。


          配置環(huán)節(jié)


          ·在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-dev #卸載包本身sudo apt-get remove --auto-remove libeigen3-dev #卸載相關(guān)依賴#sudo apt-get purge --auto-remove libeigen3-dev
          ·Sophus 安裝方法,如果是報(bào)錯(cuò)關(guān)于fmt,可能是fmt沒有安裝。注意編譯fmt的時(shí)候使用以下命令,官方文檔中有說明。
          cmake -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE ...
          否則會(huì)報(bào)錯(cuò)libfmt.a(format.cc.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5'。如果報(bào)錯(cuò)fmt在libmyslam中是沒有定義的引用。
          /usr/bin/ld: ../../lib/libmyslam.so: undefined reference to `std::locale fmt::v8::detail::locale_ref::get<std::locale>() const'
          那就是fmt庫(kù)沒有連接起來,所以在src目錄下的CMakeLists.txt文件夾下添加,將fmt加入到我們編譯的libmyslam連接庫(kù)中。
          find_package(fmt) target_link_libraries(myslam fmt::fmt)。
          ·Glog 安裝方法。10月4號(hào)發(fā)現(xiàn),這種安裝方法很神奇哈,在ch13可以用,在ch9不可以用,具體原因不重要,后面再看看。所以還是cmake的方式安裝比較穩(wěn)妥。
          sudo apt updatesudo apt install libgoogle-glog-dev
          ·GTest安裝方法,注意查看編譯信息,找到lib文件夾下的*.a,拷貝到對(duì)應(yīng)目錄中去。

          ·安裝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。

          1.首先確定使用的eigen3是什么安裝方式.我這里使用的是標(biāo)準(zhǔn)安裝方式所以包含Eigen3Config.cmake的目錄為/usr/lib/cmake/eigen3。
          2.刪除ceres ,在ceres-bin或者build目錄下,使用make uninstall 命令刪除。

          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 update     sudo apt-get install git build-essential linux-libc-dev     sudo apt-get install cmake cmake-gui      sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev     sudo apt-get install mpi-default-dev openmpi-bin openmpi-common       sudo apt-get install libflann1.8 libflann-dev     sudo apt-get install libeigen3-dev     sudo apt-get install libboost-all-dev     sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev     sudo apt-get install libqhull* libgtest-dev     sudo apt-get install freeglut3-dev pkg-config     sudo apt-get install libxmu-dev libxi-dev      sudo apt-get install mono-complete     sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre
          編譯的時(shí)候的遇到的問題:使用make -jn的時(shí)候容易出錯(cuò),幾次直接閃退了。最后使用下面的cmake命令,讓后make成功。
               cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr \           -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON \           -DCMAKE_INSTALL_PREFIX=/usr ..
          最后成功運(yùn)行。

          參考資料

          https://blog.csdn.net/fsencen/article/details/79386570

          —版權(quán)聲明—

          僅用于學(xué)術(shù)分享,版權(quán)屬于原作者。

          若有侵權(quán),請(qǐng)聯(lián)系微信號(hào):yiyang-sy 刪除或修改!


          —THE END—
          瀏覽 166
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日本三级日产三级国产三级 | 奇米影视一本道 | 看免费的一级黄色操逼片 | 三级片天天日 | 韩国三级久久 |