日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

运行ORB-SLAM笔记_编译篇(一)

發布時間:2023/11/27 生活经验 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 运行ORB-SLAM笔记_编译篇(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.下載代碼?? https://github.com/raulmur/ORB_SLAM/??? (同時也可以看看作者的牛叉論文,我是打算先用代碼,再回頭看論文)

2.打開后如下

????????????????

就好像是用一件新產品一樣,我們首先要看一下說明書“README.md”,

README.md介紹了很多關于這個工程的東西,比如作者,發表的論文,研究的人員,代碼的下載以及更新

那么我們首先從有用的信息開始操作:(備注:以下內容都是我的個人理解,都是別人的東西,我拿來學習而已)

3.解決依賴項

??? 3.1 Boost?? :用這個Boost庫在SLAM運行過程中開辟不同的線程

??? ? ? ? ? ?

3.2 ROS:使用ROS采集攝像頭或者記錄下來的視頻(rosbag)的圖像信息,進行可視化

?我的電腦安裝的是indigo版本的所以安裝教程是:wiki.ros.org/indigo/Installation/Ubuntu

安裝完成運行? roscore 出現如下界面說明安裝成功,同時也就可以學習ROS的基本教程了

??????????? wiki.ros.org/ROS/Tutorials

???????

3.3 OpenCV 使用OpenCV去處理圖像特征,ORB-SLAM的OpenCV版本是OpenCV 2.4,下載和安裝OpenCV

?? http://opencv.org/? 或者任意百度一下都有好多教程。

3.4 g20(第三方庫) 這里用的是修改后的G2O版本,那么原始代碼在 https://github.com/RainerKuemmerle/g2o ,G2O即是通用圖優化,g2o是一個算法集的C++實現,根據前人求解非線性最小二乘的理論,根據具體的問題,選用最合適的算法,

為了能夠編譯G2O,需要安裝一些東東是:BLAS, LAPACK and Eigen3,直接命令:

????????????????????????? sudo apt-get install libblas-dev
?? ? ? ? ? ? ? ? ? ? ? ?? sudo apt-get install liblapack-dev
?? ? ? ? ? ? ? ? ? ? ? ?? sudo apt-get install libeigen3-dev

3.5 DBow2(第三方庫)DBow2是一種高效的回環檢測算法,DBOW2算法的全稱為Bags of binary words for fast place recognition in image sequence,使用的特征檢測算法為Fast,描述子使用的是brief描述子,是一種離線的方法。使用了DBow2和DLib庫的一些算法,進行位置識別和特征匹配,不需要為它添加其他依賴項(代碼地址:?https://github.com/dorian3d/DBoW2)

4.安裝

? ? ? 4.1? 確認已經安裝了ROS以及他的依賴項 (boost, eigen3, opencv, blas, lapack).

????? 添加所下在的ORB-SLAM的路徑到環境變量下,比如我的ORB-SLAM的路徑為:

所以需要打開配置ubuntu環境變量的~/.bashrc文件,在文件最底處添加如圖所示的命令行:然后source ~/.bashrc.

? ? ? ?

?4.2 build g2o 安照說明一步一步來

??????? 前往 /home/salm/Monocular/ORB_SLAM/Thirdparty/g2o ; ?

? ? 依次命令為: ? ? cd? ~/Monocular/ORB_SLAM/Thirdparty/g2o

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? mkdir build
?? ??? ?????????????????????? cd build
?? ??? ? ? ? ? ? ? ? ? ? ? ?? cmake .. -DCMAKE_BUILD_TYPE=Release
?? ??? ? ? ? ? ? ? ? ? ? ? ?? make

g2o編譯成功。

4.3 Buid DB0W2? 與編譯g2o時相似命令如下

???????????? ? ? ? ? ? ? ? ?? cd?~/Monocular/ORB_SLAM/Thirdparty/DBoW2? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ?? ? ? ? ? ?? mkdir build
?? ?? ?? ? ? ? ? ? ? ? ?????? cd build
?? ??? ? ? ? ? ? ? ? ? ? ? ?? cmake .. -DROS_BUILD_TYPE=Release
?? ??? ????????????????? ???? make

4.4 Build ORB-SLAM,這里有一個提示**If you use ROS Indigo, remove the depency of opencv2 in the manifest.xml.**

(按照理解就是把manifest.xml中的opencv2注釋就好了唄),如下圖:



??????????

? 然后就按照步驟來執行,

更改之后就可以進入編譯:

????????????????????????????????? cd? ~/Monocular/ORB_SLAM

????????????????????????????????? mkdir build
?? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cd build
?? ??? ??????????????????????? ?? cmake .. -DROS_BUILD_TYPE=Release
?? ??? ???????????????????????? ? make

但是在執行到cmake .. -DROS_BUILD_TYPE=Release發現會有錯誤,

????

然后就開始百度搜索答案唄,我也是這樣想的,就會看到此博客? http://blog.csdn.net/wishchin/article/details/50468950

就會提示說路徑設置有問題,然后我就各種設置,每設置一次就編譯一次,只記得用了好長時間,都沒有成功,過了一段時間

? 想想? 我應該把這三個都注釋掉就有

??????????? <!--<depend package="opencv2"/>
??????????? <depend package="image_transport"/>
??????????? <depend package="cv_bridge"/> -->

?如下圖然后執行cmake .. -DROS_BUILD_TYPE=Release這樣雖然生成了Makefile,但是在接下來的make肯定會出錯的,因為我們把所有關于opencv的依賴項都給注釋了

所以就導致編譯出錯了(但是這里可以我也沒找到什么原因,為什么我按照說明書,卻行不通,我懷疑是我的opencv沒有安裝好,或者路徑設置不對,但是這些都不管了,我知道我已經安裝了opencv)

(注釋了三個依賴項然后make 的結果如下圖)

?可能也會出現其他錯誤,提示找不到opnecv的庫函數,或者說找不cv_bridge等函數

?

所以我就按照網上找各種方案的就結合我就只是把manifest.xml文件注釋了OPENCV2,進去到ORB_SALM文件下:

??

執行:

后面是我手動添加的opencv的鏈接庫,

??????????????????????? cmake .. && make -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_objdetect -lopencv_nonfree

如下圖,

(也就是說在我的電腦上(ubuntu14.04 32位 ros_indigo)在camke 和make 都需要添加opencv 的鏈接庫,編譯成功了)

因為創建了兩個工作空間導致我的程序又出錯誤了,之前運行

rosrun ORB_SLAM ORB_SLAM /home/salm/ORB_SLAM/Data/ORBvoc.txt /home/salm/ORB_SLAM/Data/Settings.yaml
?rosrun ORB_SLAM ORB_SLAM ~/ORB_SLAM/Data/ORBvoc.txt ~/ORB_SLAM/Data/Settings.yaml
都是可以運行的,不知道為啥又出現錯誤了

就是很不知怎么回事說我的路徑有問題

后來我運行

?rosrun ORB_SLAM ORB_SLAM /Data/ORBvoc.txt /Data/Settings.yaml
(不是絕對路徑,而是在ORB_SLAM路徑下的絕對路徑)就可以運行了

?

以下是我在整理問題是所遇到的有關的網頁

askubuntu.com/questions/510606/error-adding-symbols-dso-missing-from-command-line

?blog.csdn.net/dreamer_lhs/article/details/51297432

?www.voidcn.com/blog/wishchin/article/p-4970975.html

blog.csdn.net/real_myth/article/details/51798557

blog.csdn.net/dourenyin/article/details/48055441

?

總結

以上是生活随笔為你收集整理的运行ORB-SLAM笔记_编译篇(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。