octomap入門學習

2021-08-27 21:10:34 字數 1238 閱讀 6461

從今天開始學習octomap,對於octomap還是一無所知的狀態,一起來學習一下。

octomap庫運用了3維網格繪製填充技術,專為機械人學提供了資料結構和繪圖演算法。

octomap是一種開源三維繪圖框架。

全3維模型。無需預先假設就可以為任意環境建模。該模型同時包含了被佔據空間和自由空間。環境中的未知區域隱含在地圖中。由於自由空間和被佔據空間的差異對於機械人導航安全效能來說是必要的,因此未知空間的資訊非常重要。例如,在機械人環境自主探索中。

可更新性。可隨時增加新資訊或感測器採集。建模和更新是以概率的方式進行的。這就解決了由環境中的動態變化引起的感測器雜訊或者測量問題,如由於動態物體引起的。多個機械人可以共建同乙個地圖,而以前記錄的地圖在探索新區域時可以擴充套件。

靈活性。地圖的擴充套件不必提前知道。而是根據需要,地圖可以動態擴充。地圖是多解析度的,因此,高階規劃可以使用粗對映,而本地規劃可以使用細解析度操作。這也允許有效的視覺化,可以從粗檢視擴充套件到詳細的特寫檢視。

緊湊性。地圖在記憶體和硬碟中高效儲存。即使在頻寬限制下,也可生成壓縮檔案供之後使用或方便地在機械人之間交換。

結論:以精確靈活的方式對環境進行建模,同時最大限度地減少記憶體需求。

需要結合ros系統安裝相應的包,待補充

八叉樹是用於3d空間細分的分層資料結構(meagher 1982

; wilhelms and van gelder 1992

)。八叉樹中的每個節點表示立方體積中包含的空間,通常稱為體素(對比一下畫素的概念)。該體積遞迴地細分為八個子體積,直到達到給定的最小體素尺寸,如圖1所示  。最小體素大小決定了八叉樹的解析度。由於八叉樹是分層資料結構,因此如果相應地維護內部節點,則可以在任何級別切割樹以獲得更粗略的細分。在圖2中

示出了以幾種解析度查詢占用體素的八叉樹圖的示例  。

圖1自由區(陰影白色)和占用區(黑色)的八叉樹的示例。左側:體積模型;右側:相應的樹型結構

圖2通過限制查詢的深度,可以隨時獲得同一地圖的多個解析度。占用的體素以0.08,0.64和1.28 m的解析度顯示

...待續

使用手持式microsoft kinect感測器記錄的彩色點雲建立八叉樹地圖,比較占用記憶體大小

octomap的入門與學習

octomap是一種基於八叉樹的三維地圖建立工具,可以顯示包含無障礙區域及未對映區域的完整3d圖形,而且基於占有率柵格的感測器資料可以在多次測量中實現融合和更新 地圖可提供多種解析度,資料可壓縮,儲存緊湊.事實上,octomap的 主要包含兩個模組 三維地圖建立工具octomap和視覺化工具octo...

octomap點雲壓縮

如果點雲檔案比較大,可以利用octomap庫對點雲進行壓縮。octomap以八叉樹結構對點雲進行組織,是一種有失真壓縮,定義不同的解析度可以儲存不同尺度的資料。這裡以rabbit.pcd檔案為例,分別將點雲儲存為文字格式 txt 二進位制格式 bin 八叉樹格式 ot 八叉樹二進位制模式 bt 對比...

Octomap庫的安裝與使用

官網 ros octomap wiki 介紹 高翔git 學習 ubuntu1604 安裝 git clone cd octomap mkdir build cd build cmake make j8 make install 測試 cd octomap bin pcd2octomap data ...