在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于ORB特征的三維定位與地圖構(gòu)建算法

云深之無跡 ? 來源:云深之無跡 ? 作者:云深之無跡 ? 2022-08-16 10:57 ? 次閱讀

這文章相當于被追屁股后面寫的東西了,拿到地平線的板子一直準備做點什么東西出來。

不辜負是不辜負,有個雷達能干嘛,裝頭上嗎?

自到我看見了這個塵封已久的小飛機

dji專屬教育小飛機,嘖,可以編程哪種

寫過無數(shù)了,感興趣的大家自己搜索一下

x3很牛,TT也牛,但是我不牛,我得讓他牛,所以我決定搞個SLAM使用。TT有一個單目的相機,還有一個IMU,以及開放的接口。所以有這個潛力,其次也能學一手ROS2.事實上是我太年輕了,后面再說。

在SLAM框架上面我肯定自己寫不了,這里研究了一下午,使用了ORB-SLAM。

ORB-SLAM是一種基于ORB特征的三維定位與地圖構(gòu)建算法(SLAM)[1]。該算法由Raul Mur-Artal,J. M. M. Montiel和Juan D. Tardos于2015年發(fā)表在IEEE Transactions on Robotics。ORB-SLAM基于PTAM架構(gòu),增加了地圖初始化和閉環(huán)檢測的功能,優(yōu)化了關(guān)鍵幀選取和地圖構(gòu)建的方法,在處理速度、追蹤效果和地圖精度上都取得了不錯的效果。要注意ORB-SLAM構(gòu)建的地圖是稀疏的。

ORB-SLAM一開始基于monocular camera,后來擴展到Stereo和RGB-D sensor上。作者好像還會做Semi-dense mapping的擴展。作者的開源代碼都在GIT上。

ORB-SLAM算法的一大特點是在所有步驟統(tǒng)一使用圖像的ORB特征。ORB特征是一種非常快速的特征提取方法,具有旋轉(zhuǎn)不變性,并可以利用金字塔構(gòu)建出尺度不變性。使用統(tǒng)一的ORB特征有助于SLAM算法在特征提取與追蹤、關(guān)鍵幀選取、三維重建、閉環(huán)檢測等步驟具有內(nèi)生的一致性。

16bd9930-1c98-11ed-ba43-dac502259ad0.png

架構(gòu)圖

ORB-SLAM利用三個線程分別進行追蹤、地圖構(gòu)建和閉環(huán)檢測。

一、追蹤

ORB特征提取

初始姿態(tài)估計(速度估計)

姿態(tài)優(yōu)化(Track local map,利用鄰近的地圖點尋找更多的特征匹配,優(yōu)化姿態(tài))

選取關(guān)鍵幀

二、地圖構(gòu)建

加入關(guān)鍵幀(更新各種圖)

驗證最近加入的地圖點(去除Outlier)

生成新的地圖點(三角法)

局部Bundle adjustment(該關(guān)鍵幀和鄰近關(guān)鍵幀,去除Outlier)

驗證關(guān)鍵幀(去除重復幀)

三、閉環(huán)檢測

選取相似幀(bag of words)

檢測閉環(huán)(計算相似變換(3D<->3D,存在尺度漂移,因此是相似變換),RANSAC計算內(nèi)點數(shù))

融合三維點,更新各種圖

圖優(yōu)化(傳導變換矩陣),更新地圖所有點。

先別看這么高大上,需要做修改的。這個ORB_SLAM2 庫不用Pangolin可視化,而是通過 ROS2 topcis 發(fā)布所有數(shù)據(jù)。

而且這里也需要對TT飛機來一套完整的ROS封裝。下篇文章講封裝,在這之前還需要對X3上面的ROS2進行一個熟悉。

16f17f70-1c98-11ed-ba43-dac502259ad0.png

這里使用的編輯器是VSCode,記得密碼是root

171f6da4-1c98-11ed-ba43-dac502259ad0.png

提前看好自己的IP

ssh root@ip

17470c92-1c98-11ed-ba43-dac502259ad0.png

官方的安裝文檔很好了,這里不寫,記得運行前必須加一下,當然了我這里建議是可以一勞永逸的寫好

1761bd12-1c98-11ed-ba43-dac502259ad0.png

就這樣,下面是我的SLAM庫

176c53da-1c98-11ed-ba43-dac502259ad0.png

但是我也不理解,寫了就好像沒有寫一樣

178be4ca-1c98-11ed-ba43-dac502259ad0.png

等等我找到了!

1799a3b2-1c98-11ed-ba43-dac502259ad0.png

tros。。。地平線自己改了,不過注意后面錄還是不對,沒有foxy了

17bcc18a-1c98-11ed-ba43-dac502259ad0.png

對了在VSCode里面推薦安裝這些插件

17dd9702-1c98-11ed-ba43-dac502259ad0.png

Python的話是安裝這些

17fbdb40-1c98-11ed-ba43-dac502259ad0.png

而且可以使用Jupyter,記得pip3 install jupyter

182fad44-1c98-11ed-ba43-dac502259ad0.png

運行的都可以的

186ddf24-1c98-11ed-ba43-dac502259ad0.png

PIP也是可以的

189324c8-1c98-11ed-ba43-dac502259ad0.png

自動補全的速度還行

18b9b354-1c98-11ed-ba43-dac502259ad0.png

第一個就是我們的tros了

18d949c6-1c98-11ed-ba43-dac502259ad0.png

不過這個好像就不管用了

18f6b272-1c98-11ed-ba43-dac502259ad0.png

這些說的都對

191c2340-1c98-11ed-ba43-dac502259ad0.png

但是這里指出的是源應(yīng)該是墻外的,所以這里需要全局的安排

接下來試試攝像頭:

1946c05a-1c98-11ed-ba43-dac502259ad0.png

應(yīng)該是插入一個攝像頭了,但是看源文件

196a2b80-1c98-11ed-ba43-dac502259ad0.png

在tos的文件夾里面

/opt/tros/share/hobot_usb_cam/launch/hobot_usb_cam.launch.py

源碼的位置

198b8fa0-1c98-11ed-ba43-dac502259ad0.png

參數(shù)是dev下面的

19aa9102-1c98-11ed-ba43-dac502259ad0.png

應(yīng)該是要這個

19c66f8a-1c98-11ed-ba43-dac502259ad0.png

這里啟動失敗,是不是是因為我的權(quán)限不夠

19ebdacc-1c98-11ed-ba43-dac502259ad0.png

報錯是沒有???

1a08f86e-1c98-11ed-ba43-dac502259ad0.png

再開一個terimal,看看列表

1a241aea-1c98-11ed-ba43-dac502259ad0.png

也知道,節(jié)點都是Python的程序,ros的命令是腳本。

1a3bfb1a-1c98-11ed-ba43-dac502259ad0.png

在tros下面的share是存放公開節(jié)點的地方

1a5c36f0-1c98-11ed-ba43-dac502259ad0.png

就像這樣

1a8c90ac-1c98-11ed-ba43-dac502259ad0.png

包括我們的demo也是在這里的

工作溫度:-25°Cto65°C穩(wěn)定工作溫度:20°Cto60°C生產(chǎn)工藝:SMT(ROSH)物距:60CM-150CM解析度:800LW/PH(Center)芯片型號:JX_F37芯片尺寸:1/3最大分辨率:1920*1080像素點大小:2.7um*2.7um最大圖像傳輸速率:30fps(1920*1080)信噪比:36db動態(tài)范圍:79db芯片型號:JX_F37芯片尺寸:1/3最大分辨率:1920*1080像素點大小:2.7um*2.7um最大圖像傳輸速率:30fps(1920*1080)信噪比:36db動態(tài)范圍:79db

1aae04b2-1c98-11ed-ba43-dac502259ad0.png

1ac4eb14-1c98-11ed-ba43-dac502259ad0.png

這個就是我們的MIPI的相機

https://developer.horizon.ai/sunrise

售賣的位置,感謝大佬還給了個攝像頭:

害,白嫖笑嘻嘻

source /opt/tros/setup.bash  ros2 topic list

1b0b4fb4-1c98-11ed-ba43-dac502259ad0.png

我個人是習慣看看話題的情況的

# 配置 TogetherROS 環(huán)境:source /opt/tros/local_setup.bash# launch 方式啟動ros2 launch mipi_cam mipi_cam.launch.py

開啟一個新的終端,開始把攝像頭開啟

1b230e4c-1c98-11ed-ba43-dac502259ad0.png

攝像頭開啟了一個新的線程

1b437358-1c98-11ed-ba43-dac502259ad0.png

這個就是發(fā)布的信息

1b5944c6-1c98-11ed-ba43-dac502259ad0.png

可以對比的看

# 一個終端編碼source /opt/tros/local_setup.bashros2 run hobot_codec hobot_codec_republish --ros-args -p channel:=1 -p in_mode:=shared_mem -p in_format:=nv12 -p out_mode:=ros -p out_format:=jpeg -p sub_topic:=/hbmem_img -p pub_topic:=/image_jpeg

我們的數(shù)據(jù)在發(fā)送給屏幕顯示的時候,需要編碼壓縮,所以一個新的終端

1b81df08-1c98-11ed-ba43-dac502259ad0.png

這個就是mjpeg的壓縮節(jié)點

1ba1bb7a-1c98-11ed-ba43-dac502259ad0.png

命令

# 再起一個終端source /opt/tros/local_setup.bash# 啟動nginx,nginx只需啟動一次,如前面已啟動過nginx,則無需再次啟動cd /opt/tros/lib/websocket/webservice && chmod +x ./sbin/nginx &&./sbin/nginx -p .# 啟動websocketros2 run websocket websocket --ros-args -p image_topic:=/image_jpeg -p image_type:=mjpeg -p only_show_image:=true

在起一個節(jié)點來把我們的mjpeg的信息通過服務(wù)器發(fā)給瀏覽器

1bb8bb90-1c98-11ed-ba43-dac502259ad0.png

然后再瀏覽器打開就行

1bd9349c-1c98-11ed-ba43-dac502259ad0.png

結(jié)果

1c099272-1c98-11ed-ba43-dac502259ad0.png

我們可以看到各個節(jié)點的情況

1c2a7848-1c98-11ed-ba43-dac502259ad0.png

先把硬件打開

1c49b5be-1c98-11ed-ba43-dac502259ad0.png

把原生的raw數(shù)據(jù)來發(fā)送,并且解碼成mjpeg

1c7d2124-1c98-11ed-ba43-dac502259ad0.png

接著就是把數(shù)據(jù)轉(zhuǎn)發(fā)到瀏覽器

1ca36870-1c98-11ed-ba43-dac502259ad0.png

事已至此我們在繼續(xù)玩

把一個Mac連入我的熱點,打開IP就可以播放(我在吃西紅柿)

這里充分的展示了ROS的方便之處。

打開我的DELL,里面也有ROS,來個全節(jié)點之間的使用

1d16cd42-1c98-11ed-ba43-dac502259ad0.jpg

首先是可以讀取發(fā)送的節(jié)點信息

1d3ca666-1c98-11ed-ba43-dac502259ad0.jpg

但是rviz2打不開

1d56b0b0-1c98-11ed-ba43-dac502259ad0.jpg

定位到Cmake,是有這個庫的

1d746042-1c98-11ed-ba43-dac502259ad0.jpg

在這里‘

修了半天也玩不來。

把ROS2卸載了重裝看看怎么樣?(好了)

1d9836c0-1c98-11ed-ba43-dac502259ad0.jpg

卸載了重裝了一次,記得最后加一個--fixmissing的東西

1db97394-1c98-11ed-ba43-dac502259ad0.png

板子上面運行這種東西也沒有什么毛病

1ddd4710-1c98-11ed-ba43-dac502259ad0.png

之后我會給安裝腳本,但sudo就可以的

1df31054-1c98-11ed-ba43-dac502259ad0.png

對了在VSCode里面打開新的目錄是使用這個命令

1e0f40b2-1c98-11ed-ba43-dac502259ad0.png

打開后你記得選擇信任

抱歉了,本來想無梯子的,不地不掛了,有的文件有點難搞

1e6c2688-1c98-11ed-ba43-dac502259ad0.png

這個是編譯的TT ROS包,大概一分鐘吧,DELL 幾秒鐘

救命。。。連個git也沒有

1e940144-1c98-11ed-ba43-dac502259ad0.png

這個是噩夢的開始,慢不說,內(nèi)存還爆了

1ec0672a-1c98-11ed-ba43-dac502259ad0.jpg

看不懂?

1eec52c2-1c98-11ed-ba43-dac502259ad0.png

就是板子編譯東西的時候,沒內(nèi)存維持正常運行就宕機了

1f383674-1c98-11ed-ba43-dac502259ad0.jpg

兩位兄臺的建議很好,但是太慢了,我不準備在X3上面編譯了,我試了腳本為1,但是好慢。

1f46a20e-1c98-11ed-ba43-dac502259ad0.png

目前TT ROS搞好了,就差SLAM了

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8612

    瀏覽量

    151275
  • 三維定位
    +關(guān)注

    關(guān)注

    1

    文章

    8

    瀏覽量

    8366
  • 開源代碼
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    2978

原文標題:X3派+大疆無人機-SLAM單目建圖.上

文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    bigemap如使用高程DEM建立三維地圖模型的步驟

    bigemap如何使用高程DEM建立三維地圖模型(Arcgis ArcScene)
    發(fā)表于 04-02 12:46

    三維設(shè)計應(yīng)用案例

    CAD是目前工業(yè)制造產(chǎn)品設(shè)計的重要軟件之一,廣泛應(yīng)用于機械、建筑等領(lǐng)域。而常用的CAD軟件,也就是所謂的三維制圖軟件,較二的圖紙和二的繪圖軟件,三維CAD軟件能夠更加直觀、準確地反
    發(fā)表于 07-03 07:06

    如何使用高程DEM建立三維地圖模型

    如何使用高程DEM建立三維地圖模型(Arcgis ArcScene)
    發(fā)表于 04-30 09:26

    計算機視覺中的三維構(gòu)建

    三維構(gòu)建模是計算機視覺技術(shù)的主要內(nèi)容之一。相機內(nèi)外參數(shù)的標定、圖像特征點的提取以及特征點的立體匹配是三維
    發(fā)表于 08-21 12:17 ?16次下載

    基于雙目立體視覺的三維拼接和融合方法

    目前,在計算機視覺領(lǐng)域,越來越多的高精度三維重建方法以及實時定位地圖構(gòu)建(SLAM)算法正在被提出用來對
    發(fā)表于 11-03 16:46 ?5次下載
    基于雙目立體視覺的<b class='flag-5'>三維</b>拼接和融合方法

    基于VSLAM的移動機器人三維定位地圖構(gòu)建

    移動機器人在探索未知環(huán)境且沒有外部參考系統(tǒng)的情況下,面臨著同時定位地圖構(gòu)建( SLAM)問題。針對基于特征的視覺SLAM( VSLAM)算法
    發(fā)表于 11-24 16:33 ?23次下載
    基于VSLAM的移動機器人<b class='flag-5'>三維</b><b class='flag-5'>定位</b>與<b class='flag-5'>地圖</b><b class='flag-5'>構(gòu)建</b>

    改進ORB特征點匹配算法

    針對定向二進制簡單描述符( ORB算法不具備尺度不變性的問題,提出一種結(jié)合快速魯棒性特征( SURF)算法ORB的改進
    發(fā)表于 12-15 17:15 ?21次下載

    物聯(lián)網(wǎng)空間劃分的三維定位算法

    基于無線通信和網(wǎng)絡(luò)技術(shù)的三維空間定位是目前物聯(lián)網(wǎng)領(lǐng)域的一個研究熱點,針對當前三維目標定位算法的精度低、復雜度高、功耗大等實際問題,提出了一種
    發(fā)表于 02-27 16:21 ?0次下載

    Taylor算法在TDOA三維定位應(yīng)用中的相關(guān)研究

    針對 Taylor算法在TDOA三維定位中受到外界條件的影響而導致大范圍求解失敗的問題,開發(fā)TDOA三維定位
    發(fā)表于 03-24 15:12 ?18次下載
    Taylor<b class='flag-5'>算法</b>在TDOA<b class='flag-5'>三維</b><b class='flag-5'>定位</b>應(yīng)用中的相關(guān)研究

    一種可在動態(tài)環(huán)境下構(gòu)建語義地圖算法

    三維語義地圖在移動杌器人的導航、路徑規(guī)劃、智能抓取、人機交互等任務(wù)中有著關(guān)鍵的作用,因此如何實時地構(gòu)建三維語義地圖尤為重要。當前同時
    發(fā)表于 05-07 14:56 ?4次下載

    基于實時特征檢測等的AR系統(tǒng)三維注冊方法

    針對增強現(xiàn)實(AR)系統(tǒng)在進行虛擬信息疊加時待注冊區(qū)域被遮擋的情況,提岀一種基于實時特征檢測與目標跟蹤的AR系統(tǒng)三維注冊方法。使用KCF算法對待注冊目標區(qū)域與模板進行實時FAST特征
    發(fā)表于 06-11 11:34 ?12次下載

    復雜山地環(huán)境下的WSN節(jié)點三維定位算法

    復雜山地環(huán)境下的WSN節(jié)點三維定位算法
    發(fā)表于 06-25 16:06 ?6次下載

    基于雙目視覺立體匹配的三維地圖構(gòu)建方法

    摘要:針對基于雙目深度圖的室外大規(guī)模地圖構(gòu)建計算冗長,而在無人系統(tǒng)的有限算力下,計算效率需求顯著的情況,文中提出一種基于雙目視覺立體匹配的三維地圖構(gòu)
    的頭像 發(fā)表于 08-10 11:38 ?2440次閱讀

    工程實踐中VINS與ORB-SLAM的優(yōu)劣分析

    ORB-SLAM是一種基于特征的單目視覺SLAM系統(tǒng),廣泛用于實時三維地圖構(gòu)建和機器人定位。該系
    的頭像 發(fā)表于 04-08 10:17 ?2932次閱讀
    工程實踐中VINS與<b class='flag-5'>ORB</b>-SLAM的優(yōu)劣分析

    如何實現(xiàn)三維地圖可視化交互系統(tǒng)

    三維地圖可視化 交互系統(tǒng)是一種基于三維地圖技術(shù)的交互式應(yīng)用程序,可以呈現(xiàn)地理信息和空間數(shù)據(jù)的立體化展示,并提供用戶友好的交互功能。以下是古河云科技關(guān)于
    的頭像 發(fā)表于 07-19 18:20 ?873次閱讀
    主站蜘蛛池模板: www.亚洲天堂| 又黄又免费的网站| 天天摸天天澡天天碰天天弄 | 888午夜不卡理论久久| 四虎东方va私人影库在线观看| 欧美极品| 亚洲成人免费网站| 国产黄色a三级三级三级| 亚洲四虎在线| 天堂资源| 欧美激情综合| 国产色丁香久久综合| 一级黄色片在线看| 免费国产不卡午夜福在线观看| 国产精品看片| 一区二区三区四区在线不卡高清| 国产又黄又爽又猛的免费视频播放| 中文在线免费看影视| 午夜爽爽性刺激一区二区视频| 神马午夜嘿嘿| 性夜影院爽黄a爽免费看网站 | 天堂网www中文在线| 久久精品免费看| tube 69sex 第一次| 影院成人区精品一区二区婷婷丽春院影视 | 男人不识本网站上遍色站也枉然| 韩国朴银狐诱感在线观看| 亚洲人成网站999久久久综合| 久久久精品2021免费观看| 欧美精品高清在线xxxx| 18黄网站| 日本电影在线观看黄| 成人在线网站| 国产午夜精品福利久久| 欧美三级久久| 色婷婷婷婷| 色婷婷狠狠久久综合五月| 久久久久久噜噜噜久久久精品| 2017av在线| 99国产福利| 一区二区三区四区欧美|