1. 程式人生 > >OCTMAP:一種基於八叉樹的高效概率三維對映框架

OCTMAP:一種基於八叉樹的高效概率三維對映框架

摘要
三維模型提供了空間的體積表示,這對於包括飛行機器人和裝有機械手的機器人在內的各種機器人應用非常重要。在本文中,我們提出了一個開源框架來生成體積3D環境模型。我們的對映方法基於八叉樹,使用概率佔用估計。它明確地表示不僅佔用的空間,而且自由和未知的區域。此外,我們提出一種八叉樹地圖壓縮方法,以保持三維模型緊湊。我們的框架可以作為一個開源的C++庫,並且已經成功地應用在多個機器人專案中。我們提出了一系列用真實機器人和公開可用的真實世界資料集進行的實驗結果。結果表明,我們的方法能夠有效地更新表示,並在保持最小記憶體需求的同時對資料進行統一建模。

Keywords 3D · Probabilistic · Mapping · Navigation
1 .導言

一些機器人應用需要環境的3D模型。這些包括空中、水下、室外或外層任務。然而,3D模型也與許多家庭場景相關,例如,用於移動操作和導航任務。
儘管3D對映是許多機器人系統的一個組成部分,但是幾乎沒有現成的、可靠的和有效的實現。缺乏這樣的實現導致重新建立基本的軟體元件,因此,可以看作是機器人學研究的瓶頸。因此,我們相信,開發開源的3D對映框架將極大地促進需要三維幾何環境表示的機器人系統的開發。
大多數機器人應用需要概率表示、自由區域、佔用區域和未對映區域的建模,以及執行時和記憶體使用方面的額外效率。現在我們將詳細討論這三個要求。
概率表示:為了建立3D地圖,移動機器人通過三維距離測量來感知環境。這種測量受到不確定度的影響:通常,距離測量的誤差是釐米的量級。但是也可能存在由反射或動態障礙物引起的看似隨機的測量。當任務是從這些噪聲測量中建立環境的精確模型時,必須概率地考慮潛在的不確定性。然後可以將多個不確定測量融合到環境的真實狀態的魯棒估計中。另一個重要方面是概率感測器融合允許來自多個感測器和多個機器人的資料整合。
未對映區域的建模:

在自主導航任務中,機器人只能為感測器測量覆蓋並檢測為自由的區域規劃無碰撞路徑。相反,需要避免未對映區域,並且由於這個原因,地圖必須表示這些區域。此外,在勘探過程中,關於未繪製地圖的區域的知識是必不可少的。當地圖是自主建立的,機器人必須計劃其行動,以便測量採取在以前未對映的區域。
效率:地圖是任何自治系統的中心元件,因為它在行動規劃和執行期間使用。由於這個原因,對映在訪問時間方面需要是有效的,但是在記憶體消耗方面也是有效的。從實用的角度來看,記憶體消耗往往是3D對映系統的主要瓶頸。因此,重要的是該模型在儲存器中是緊湊的,以便能夠對映大的環境,機器人可以將該模型儲存在其主儲存器中,並且可以在多個機器人之間有效地傳輸。

已經提出了幾種方法來模擬機器人中的3D環境。作為示例,我們將我們的方法與三種常見的對映方法進行比較——結果的視覺化在圖1中給出。在該示例中,使用點雲、海拔圖(Hebert et al.,1989)、多級表面圖(Triebel et al.,2006)以及使用我們的框架以體積方式表示3D測量。前面的方法都不能滿足上面提出的所有要求。點雲端儲存了大量的測量點,因此不具有記憶性。此外,它們不允許區分無障礙區和未對映區,也不提供概率融合多個測量的手段。高程圖和多級表面圖是有效的,但也不代表未對映區。最重要的是,這些方法不能表示任意的3D環境,比如示例中的樹枝。
在本文中,我們提出了一個基於八叉樹的三維環境表示整合框架OctoMap。在我們的框架中,我們結合了以前3D環境建模方法的優點,以滿足上面討論的需求。我們的方法的一個核心特性是,它允許對佔用空間和空閒空間進行高效和概率的更新,同時將記憶體消耗保持在最小值。佔用空間由諸如鐳射測距儀的距離感測器的端點獲得,而自由空間對應於感測器與端點之間的觀察區域。作為我們方法的一個關鍵貢獻,我們引入了一種壓縮方法,該方法通過區域性組合對映空閒區域和佔用空間中的相干對映捲來減少記憶體需求。我們實現了我們的方法,並使用各種公開可用的室內和室外環境的真實世界機器人資料集對其進行了徹底的評估。
我們的開源實現是以一個獨立的C++庫的形式自由提供的。它是在BSD許可下發布的,可以從http://octomap.github.com.獲得。該庫支援多個平臺,如Linux、Mac OS和Windows。它已經整合到機器人作業系統(ROS)中,並且可以直接用於其他軟體框架。自從2010年首次引入(Wurm等人,2010)以來,OctoMap框架不斷改進,並在越來越多的機器人研究專案中使用。
本文的組織如下。在下一節中,我們將詳細討論3D資料結構和對映方法領域的相關工作,然後在Sect.三。在SCT中給出了實現細節。4,隨後對所提出的框架進行評價。5。最後,通過對OctoMap在機器人領域應用的案例研究,說明了Sect.6。

2 相關工作
環境的三維模型是許多機器人系統必不可少的重要條件,因此它們已成為二十多年的研究課題。在3D中建模環境的一種流行方法是使用等大小的立方體網格(稱為體素)來離散對映區域。Roth-Tabak和Jain(1989)以及Moravec(1996)都用這種表現形式展示了早期的作品。剛性網格的一個主要缺點是其大的記憶體需求。網格地圖需要初始化,以便至少與對映區域的邊界框一樣大,而不管卷中地圖單元的實際分佈。在大規模戶外場景中,或者當需要精細解析度時,記憶體消耗可能變得令人望而卻步。此外,需要預先知道對映區域的範圍,或者每次擴充套件對映區域都需要執行昂貴的複製操作。
通過直接儲存三維距離測量,可以避免環境的離散化。然後,通過由諸如鐳射測距儀或立體相機之類的距離感測器返回的3D點雲來對環境中所佔用的空間進行建模。這種點雲方法已經在一些3DSLAM系統中使用,例如Cole和Newman(2006)提出的那些系統,以及Nuchter等人的SLAM方法中。(2007)。這種方法的缺點是既不模擬自由空間也不模擬未知區域,不能直接處理感測器噪聲和動態物件。因此,點雲僅適用於靜態環境中的高精度感測器,並且當不需要表示未知區域時。此外,這種表示的記憶體消耗隨著測量次數的增加而增加,這是有問題的,因為沒有上限。
如果能夠對對映區域作出某些假設,那麼2.5D對映就足以對環境進行建模。通常,2D網格用於儲存每個單元的測量高度。在最基本的形式中,這導致一個高程圖,其中地圖精確地儲存每個單元格一個值(Hebert等人,1989)。已經證明這種地圖是足夠的一種方法是由Hadsell等人描述的戶外地形導航方法。(2009)。只要機器人使用單個表面進行導航,高程圖就足以對環境進行建模,因為可以安全地忽略高於車輛的懸空障礙,例如樹木、橋樑或地下通道。通過允許每個單元有多個表面(Triebel等人,2006;Pfaff等人,2007),或者通過使用對應於不同型別結構的單元類(Gutmann等人,2008),可以放鬆對單個表面的嚴格假設。大多數2.5D地圖的一個普遍缺點是它們不以體積的方式表示環境,而是基於機器人的高度在垂直維度上對其進行離散化。雖然這對於具有固定機器人形狀的路徑規劃和導航是足夠的,但是該地圖不代表實際環境,例如用於定位。

為了解決這個問題,賴德和胡(2010)提出了一個相關的方法。該方法為2D網格中的每個單元儲存佔用的體素列表。雖然這種表示是容量的,但是它不區分自由卷和未知卷。德拉揚諾夫斯基等人。(2010)在多卷佔用網格方法中儲存每個2D單元的佔用和空閒體素的列表。然而,與我們的方法相比,需要預先知道地圖範圍,地圖更新在計算上更復雜,並且沒有多解析度能力。另一個潛在的問題是後續的對映更新不能細分現有卷,從而導致環境的模型不正確。類似地,DouiLad等人。(2010)將用於背景結構的粗略高程圖與具有較高解析度的物件體素圖結合。與我們的工作相反,這種方法專注於單個測量的3D分割,並且沒有將多個測量整合到環境的模型中。
在機器人對映中,八叉樹避免了固定網格結構的主要缺點之一:它們延遲了對映卷的初始化,直到需要整合測量為止。通過這種方式,對映環境的範圍不需要預先知道,並且對映只包含已經測量的卷。如果樹的內部節點被適當地更新,那麼樹也可以被用作多解析度表示,因為它可以在任何級別被切割以獲得更粗的細分。八叉樹對映的使用最初是由MaGHER(1982)提出的。早期的工作主要集中於對布林屬性進行建模,如佔用(Wilhelms和Van Gelder,1992)。(1997)使用八叉樹來適應從2D到3D的佔用網格對映,從而引入了一種對佔用空間和自由空間進行建模的概率方法。福涅爾等人使用了類似的方法。(2007)和PATAK等(2007)。然而,與本文提供的方法相比,作者沒有明確地解決對映壓縮或對映中的有界置信度問題。
費爾菲爾德等人提出了一種基於八叉樹的三維地圖表示方法。(2007)。它們的對映結構稱為延遲引用計數八叉樹(Deferred Reference Counting Octree),它被設計成允許高效的對映更新,尤其是在粒子過濾器SLAM的上下文中。為了實現地圖緊湊性,週期性地執行有損最大似然壓縮。與我們方法中使用的壓縮技術相比,這種方法丟棄了用於將來更新的概率資訊。此外,沒有解決過度自信對映和多解析度查詢的問題。作為一種資料結構,八叉樹被應用於各種應用中,最顯著的是用於有效繪製的計算機圖形領域(Botsch等人,2002;Surmann等人,2003;Laine和Karras,2010)以及用於儲存和處理大點雲的攝影測量領域(GirardeauMonta)UT等人,2005;ELSBER等人,2011)。另一個流行的用例是靜態點雲壓縮(Schnabel和Klein,2006)或點雲流(Kammerl等人,2012)。雖然我們的框架足夠通用,可以儲存原始點雲,但是它的主要目的是將這些點雲集成到一個記憶體高效的、體積佔用地圖中,因為點雲作為機器人學中的環境表示有許多缺點,如本文開頭所述。是章節,YGEL等。(2007年B)提出了一種基於Haar小波資料結構的三維地圖。這種表示也是多解析度和概率的。然而,作者沒有深入評價3D建模的應用。在它們的評估中,未對未知區域進行建模,並且僅使用單個模擬3D資料集。如果沒有公開可用的實現,則很難評估這種對映結構是否像八叉樹那樣節省記憶體。

表面表示,如3D正態分佈變換(ManguSon等人,2007)或Surfels(Habbecke和KabBand,2007)最近被用於3D路徑規劃(Stoyayv等人,2010)和物件建模(Wee等人,2009;Krin等人,2011)。類似地,紐康等人提出了一種基於低成本深度相機和GPU處理的精確實時三維SLAM系統。(2011)重建室內場景中的密集曲面。最近,這項工作已經擴充套件到工作在更大的室內環境(惠蘭等,2012)。然而,表面表示無法區分自由空間和未知空間,可能需要大的儲存器,特別是戶外,並且通常基於關於相應環境的強假設。在移動操作場景中,例如,能夠區分未知的空間對於安全導航來說是必不可少的。
最後,據我們所知,沒有開放原始碼實現的3D佔用對映框架滿足引言中概述的要求是免費的。

3 OctoMAP對映框架
本文提出的方法使用基於樹的表示來提供對映面積和解析度的最大靈活性。它執行概率佔用估計,以確保可更新性和應付感測器噪聲。此外,壓縮方法確保所得到的模型的緊湊性。
3.1八叉樹
八叉樹是用於三維空間細分的分層資料結構(Meagher,1982;Wilhelms和Van Gelder,1992)。八叉樹中的每個節點表示立方體卷中包含的空間,通常稱為體素。該卷被遞迴地細分為八個子卷,直到達到給定的最小體素大小,如圖2所示。最小體素大小決定八叉樹的解析度。由於八叉樹是分層資料結構,因此如果內部節點被相應地維護,那麼可以在任何級別上切割樹以獲得更粗的分割。圖3顯示了一個八叉樹對映的示例,該對映以幾種解析度查詢佔用的體素。
在其最基本的形式中,八叉樹可以用來建模布林屬性。在機器人對映的上下文中,這通常是卷的佔用。如果某個卷被測量為佔用,則八叉樹中的對應節點被初始化。在這個布林設定中,任何未初始化的節點都可以是空閒的或未知的。為了解決這種模糊性,我們明確地表示樹中的自由卷。這些是在感測器與測量端點之間的區域內產生的,例如,沿著通過射線掃描確定的射線。未初始化的區域隱式地模擬未知空間。如圖4所示,一個八叉樹包含來自真實鐳射感測器資料的自由和佔用的節點。使用布林佔用狀態或離散標籤允許八叉樹的緊湊表示:如果節點的所有子節點具有相同的狀態(佔用或空閒),則可以對其進行修剪。這導致需要維護在樹中的節點數量顯著減少。

在機器人系統中,人們通常必須應對感測器噪聲和暫時或永久變化的環境。在這種情況下,離散佔用標籤是不夠的。取而代之的是,必須對佔用進行概率建模,例如通過應用佔用網格對映(Moravec和Elfes,1985)。然而,這樣的概率模型缺乏通過修剪進行無失真壓縮的可能性。
本文提出的方法提供了結合使用離散標籤的八叉樹的緊湊性和概率建模的可更新性和靈活性的方法,我們將在第三節討論。3.4。

在資料訪問複雜性方面,由於樹結構,八叉樹與固定大小的3D網格相比需要開銷。對包含具有樹深度為d的n個節點的樹資料結構,可以以O(d)=O(logn)的複雜度執行單個隨機查詢。以深度優先的方式遍歷整個樹需要O(n)的複雜性。請注意,在實踐中,我們的八叉樹被限制為固定的最大深度DMAX。這導致O(dmax)的隨機節點查詢複雜度為常數。因此,對於固定深度dmax,與對應的3D網格相比的開銷是恆定的。注意,在我們的所有實驗中,使用的最大深度為16,這足以覆蓋體積為(655:36m)3、解析度為1cm的立方體。在SECT中提供了該設定的精確定時。5.5。
3.2概率感測器融合
在我們的方法中,感測器讀數使用Moravec和Elfes(1985)介紹的佔用網格對映進行整合。給定感測器測量值z1:t,估計葉節點n被佔用的概率P(n j z1:t),其依據是

該更新公式取決於當前測量zt、先驗概率P(n)和先驗估計P(n j z1:t_1)。術語P(n j zt)表示給定測量zt的體素n被佔據的概率。這個值對於產生ZT的感測器是特定的。我們提供詳細的感測器模型在整個實驗中使用的SCT。5.1。
一致先驗概率的普遍假設導致P(n)=0:5,並且通過使用log-odds符號,等式(1)可以改寫為

該更新公式取決於當前測量zt、先驗概率P(n)和先驗估計P(n j z1:t_1)。術語P(n j zt)表示給定測量zt的體素n被佔據的概率。這個值對於產生ZT的感測器是特定的。我們提供詳細的感測器模型在整個實驗中使用的SCT。5.1。
統一先驗概率的普遍假設導致P(n)=0:5,並且通過使用log-odds符號,方程(1)可以被重寫,因為更新規則的這個公式允許更快的更新,因為乘法被加法所代替。在預先計算的感測器模型的情況下,不需要在更新步驟期間計算對數。注意,log-odds值可以轉換為概率,反之亦然,因此我們為每個體素儲存這個值而不是佔用概率。值得注意的是,對於對稱的感測器模型的某些配置,即,作為命中更新的節點具有與作為未命中更新的節點相同的權重,這種概率更新與類似地計算命中和未命中具有相同的效果(Kelly等人,2006)。
當使用3D地圖進行導航時,常常應用佔用概率P(n j z1:t)的閾值。當達到閾值時,體素被認為被佔用,否則假定它是自由的,從而定義兩個離散狀態。從等式(2)可以明顯看出,要改變體素的狀態,我們需要整合與已整合一樣多的觀察來定義其當前狀態。換言之,如果一個體素被觀測到自由k次,那麼它必須被觀測到至少被佔用k次,然後根據閾值(假設在感測器模型中自由和被佔用的測量同樣可能)認為被佔用。雖然這種特性在靜態環境中是需要的,但是移動機器人經常面臨環境中的臨時或永久變化,並且地圖必須快速適應這些變化。為了確保這種適應性,YGEL等人。(2007a)提出了一種鉗位更新策略,該鉗位更新策略定義了佔用估計的上限和下限。代替直接使用等式(2),根據估計更新佔用估計值。

其中Lmin和LMAX表示對數機率值的下界和上界。直觀地,這個修改的更新公式限制了更改體素的狀態所需的更新次數。在我們的方法中應用箝位更新策略將帶來兩個優點:我們確保對對映的信任保持有界,因此模型可以快速適應環境的變化。此外,我們還可以通過修剪來壓縮相鄰體素(見SeCT)。3.4)。正如我們將要討論的。5.4,這導致必須保持的體素的數量顯著減少。從完全概率的角度來看,通過箝位實現的壓縮不再是完全無損的,因為接近零的資訊和一個資訊丟失。然而,在夾持閾值之間,完全概率被保留。
3.3種多解析度查詢
當測量整合到對映結構中時,只對八叉樹中的葉節點執行概率更新。但是由於八叉樹是一種分層的資料結構,我們可以利用樹中的內部節點來實現多解析度查詢。請注意,當樹只被遍歷到一個給定的深度(不是葉節點的深度)時,我們對3D空間進行了更粗略的分割。每個內部節點跨越其八個子節點佔用的體積,因此為了確定內部節點的佔用概率,我們必須聚合其子節點的概率。
考慮到節點n的八個子卷ni,可以採用幾種策略來確定節點n的佔用概率(Kraetzschmar等人,2004)。根據手頭的應用,平均佔有率

可以使用,其中L(n)返回節點n的當前log-odds佔用值。使用最大子佔用來更新內部節點可以被認為是一種保守策略,非常適合於機器人導航。通過假設一個卷被佔用,如果它的任何部分已經被佔用,則可以規劃無衝突的路徑,並且由於這個原因,在我們的系統中使用最大佔用更新。注意,在更保守的設定中,L(n)也可以被定義為返回未知小區的正佔用概率。圖3顯示了一個八叉樹在多個解析度下查詢佔用體素的例子。
3.4八叉樹圖壓縮
在教派中。3.1,我們解釋了樹剪枝如何減少具有離散佔用狀態的八叉樹中的冗餘資訊量,其中體素既可以被佔用,也可以被釋放。同樣的技術也可以應用於使用概率佔用估計來對佔用空間和自由空間進行建模的地圖。然而,一般來說,即使兩個體素被相同的物理障礙物佔用,也不能期望相鄰節點的佔用概率是相同的。感測器噪聲和離散化誤差可能導致不同的概率,從而干擾依賴於相同節點資訊的壓縮方案。該問題的一個可能的解決方案是對體素概率應用閾值,例如0.5,並且以這種方式生成Fairfield等人建議的離散狀態估計。(2007)。然而,使用這種方法,在修剪樹之後,無法恢復單個的概率估計。在我們的方法中,我們通過應用等式(4)中給出的箝位更新策略來實現地圖壓縮。每當體素的log-odds值達到下界lmin或上界lmax時,我們認為節點在我們的方法中是穩定的。直觀地,穩定的節點已經被自由地測量或者以高置信度佔用。在靜態環境中,所有體素在集成了足夠數量的測量值之後將收斂到穩定狀態。
例如,在我們的實驗中選擇的引數下,五個一致的測量值足以將未知體素渲染成穩定的體素。如果內部樹節點的所有子節點都是具有相同佔用狀態的穩定葉節點,則可以修剪這些子節點。如果將來的測量與相應的內部節點的狀態相矛盾,那麼它的子節點將相應地重新生成和更新。應用此壓縮僅導致接近P(n)=0和P(n)=1的資訊丟失,同時保持兩者之間的概率。在我們的實驗中,結合八叉樹修剪和鉗位導致高達44%的壓縮改善。在許多機器人導航任務中,例如避障或定位,只有包含空閒或佔用節點的最大似然圖就足夠了。在這些情況下,基於佔用閾值的有失真壓縮,如Fairfield等。(2007)可以執行。對於這種壓縮,所有節點都被轉換為其最大似然概率(鉗位),然後進行樹剪枝。這就產生了更大的壓縮和更少的記憶體需求。

3.5 擴充套件
3.5.1具有豐富資訊的地圖
可以擴充套件八叉樹節點來儲存額外的資料以豐富地圖表示。例如,體素可以儲存地形資訊、環境資料(如溫度)或顏色資訊。每個額外的體素屬性都需要一個允許融合多個測量的方法。作為示例,我們擴充套件了對映框架來儲存每個體素的平均顏色。這為使用者建立了視覺化,並且能夠根據虛擬檢視對環境進行基於顏色的分類或基於外觀的機器人定位(類似於(Einhorn等人,2011;Mason等人,2011))。它也可以用作建立彩色、高解析度表面網格的起點(Hoppe等人,1992)。圖5顯示了一個八叉樹圖,它是通過整合用手持式Microsoft Kinect感測器記錄的彩色點雲建立的。這些資料在RGBD資料集的freiburg1 360序列中可用(Sturm等人,2012),並使用RGB-D SLAM(Endres等人,2012)對齊。
3.5.2八叉樹層次結構
我們開發了對對映方法的擴充套件,它利用了環境中的層次依賴性(Wurm等人,2011)。此擴充套件維護樹結構中的子對映集合,其中每個節點表示環境的子空間。在我們的系統中應用的細分是基於使用者定義的輸入分段和表達分段之間關係的給定空間關係。
圖6給出了基於物件位於支援平面頂部的假設的層次結構的圖示。在這個應用中,我們首先估計輸入中的支援平面。然後,在這些支援平面之上的物件在輸入資料中被分割,並被建模為單個的體積子圖。因此,該表是位於地板上的子對映,而若干家用物件又被表示為位於桌面上的子對映。
與單個的、整體的環境地圖相比,我們的分層方法顯示出許多優點:首先,每個子地圖被獨立維護,並且對映引數(例如解析度)可以適應於每個子地圖。其次,子圖可以獨立操作。例如,可以移動表示單個物件的一個子對映,而其餘子對映保持靜態。第三,子對映的層次依賴性可以在層次結構中編碼。例如,表上的所有物件都可以與該表相關聯,如果表被移動,則物件也隨之移動。該方法已在桌面操作的上下文中進行了評估。以非常精細的解析度對映表上的物件,而以較低解析度對映表和背景結構。這種方法導致模型比單個表示完整場景的地圖要緊湊一個數量級。

4實施細則
4.1記憶體高效節點實現
在直接的八叉樹實現中,樹中的每個節點除了資料有效負載之外還儲存其中心位置的座標、體素大小和指向其子節點的指標。然而,這會導致大量的記憶體開銷。由於節點位置及其體素大小可以在遍歷八叉樹時重建,因此我們不顯式地將此資訊儲存在節點中以減少記憶體開銷。
一般來說,八叉樹節點需要維護他們的孩子的有序列表。這可以通過使用每個節點的八個指標來直接實現。如果對稀疏資料進行建模,那麼這些指標(在32位體系結構上為8×4位元組=32位元組)的記憶體需求將導致顯著的記憶體開銷(Wilhelms和Van Gelder,1992)。通過每個節點使用一個指向八個指標的陣列的子指標(圖7,左),我們克服了這一點。只有當節點確實有子節點並且不為葉節點分配時,才分配這個陣列。
因此,八叉樹中的任何葉節點僅儲存對映資料本身(例如,佔用概率)和一個(空)指標。內部節點另外儲存八個指標到它們的子節點。在我們的評估中使用的機器人相關的資料集中,80%-85%的八叉樹節點是葉子。在我們的實驗中,與為每個節點分配8個指標相比,上述實現節省60%-65%的記憶體。
為了儲存每個體素的佔用概率,一個浮點值(通常是4個位元組)就足以表示log-odds值。這導致對於內部節點來說,節點大小為40位元組,對於32位架構上的leaf來說,節點大小為8位元組。注意,為了執行時效率,大多數編譯器將記憶體中的成員資料對齊,也就是說,節點的資料被填充為一個字大的倍數(32位架構上的4位元組)。64位架構可以以兩倍大小的指標和單詞為代價來處理大量記憶體。在這種架構中,內部節點的記憶體大小增加到80位元組,葉子節點的大小增加到16位元組。注意,大多數編譯器將資料結構的實際大小(內部節點76位元組,葉節點12位元組)再次填充為字大小的倍數(64位架構上的8位元組)。
在我們的方法中,八叉樹在設計上是同構的,也就是說,所有節點具有相同的結構和儲存佔用。雖然內部節點可以通過省略佔用資訊來潛在地節省8位元組,但是根據等式(5)或(6)維護它允許多解析度查詢,其中樹遍歷在固定深度處停止。f每個物件例項指向虛擬函式表(vtable)的一個額外指標。為了最小化記憶體佔用,我們在八叉樹節點實現中避免了這種開銷。我們對節點應用直接繼承和轉換,並且只在八叉樹類中使用虛擬繼承。此方法導致每八叉樹對映僅一個指標大小的開銷。

4.2 八叉樹型別
在圖8中,我們框架中最常見的八叉樹和節點型別被概括為UML圖。基本八叉樹功能在OcTreeBase中實現,基本節點功能在OcTreeDataNode中實現。OcTreeDataNode是根據儲存在節點中的資料模板化的,而OcTreeBase是根據節點型別模板化的。
OccupancyOcTreeBase為樹實現添加了佔用對映功能,比如掃描插入和光線投射。主要的佔用八叉樹類OcTree從OccupancyOcTreeBase派生,使用OcTreeNode作為它的節點。這種結構允許我們在不同級別上對框架進行靈活的擴充套件,例如,使用自定義資料擴充套件節點或向八叉樹新增新功能。一個例子是ColorOcTree的實現,它使用ColorOcTreeNodes(如圖5所示)。這些節點除了佔用估計之外還儲存顏色,如Sect.3.5.1
在當前的實現中,最大樹深度被限制在16個級別。這通過使用可計算的體素地址實現快速樹遍歷。然而,深度限制也限制了八叉樹的最大空間範圍。例如,在1釐米的解析度下,地圖在每個維度上可以覆蓋最大216×0:01m=655:36m。
雖然這對於大多數室內應用來說已經足夠了,但是該實現可以直接擴充套件到32個深度級別,允許在1cm的解析度下覆蓋232×0:01m=42949672:96m。

4.3地圖檔案生成
許多機器人應用需要將地圖儲存在檔案中。這包括在建立階段生成地圖,然後由移動機器人用於路徑規劃和定位的情況。另一個場景是多機器人系統,其中在機器人之間交換地圖。無論哪種情況,都需要緊湊的序列化表示來最小化磁碟空間或通訊頻寬的消耗。
只要對映的最大似然估計對於手頭的任務足夠,就可以生成最緊湊的檔案。在這種情況下,每個節點的概率被丟棄。如上所述,對於機器人系統,例如,在探索期間,沒有記錄任何資訊的卷可能特別感興趣。為此,我們明確區分空閒區域和未知區域,並將節點編碼為地圖檔案中的已佔用、空閒、未知或內部節點。使用這些標籤,八叉樹對映可以被遞迴地編碼為緊湊的位元流。每個節點僅由其子代的八個標籤來表示。從根節點開始,將不是葉子的每個子節點遞迴地新增到位流中。葉節點不必新增,因為它們可以在解碼過程中從它們的標籤中重構。圖7(右)說明了位元流編碼。每行表示一個具有對應於根節點的上行的節點。最後一行僅包含葉子,因此不新增其他節點。


在這個最大似然表示中,每個節點佔用16位記憶體,每個子節點佔用2位,從而得到一個緊湊的對映檔案。在我們的實驗中,即使對於高解析度的大型戶外環境,檔案大小也不會超過15MB(參見Sect.5.4用於詳細說明)存在需要儲存和維護地圖中所有資訊的應用程式。這包括將硬碟空間用作輔助儲存器,並將對映臨時儲存到磁碟,直到需要再次訪問它們為止。另一個用例是儲存附加節點資料,例如顏色或地形資訊,這些資料在最大似然編碼中將丟失。在這些情況下,我們通過儲存節點資料(佔用和附加資料)以及指定是否存在子節點的每個節點8位來對節點進行編碼。然而,正如我們將在實驗中展示的那樣,這會導致相當大的檔案。注意,類似於記憶體中的八叉樹表示,序列化流不包含任何實際的3D座標。為了重構一個對映,只需要知道根節點的位置。節點之間的所有其他空間關係隱式儲存在編碼中。

4.4我們的OctoMAP實現
OctoMAP是一個獨立的C++庫。它是在BSD許可下發布的,可以從http://octomap.github.com.獲得。原始碼被完整地記錄下來,庫使用CMake來支援幾個平臺(Linux和Mac OS X與GCC、Windows與MinGW或Visual Studio)。在機器人作業系統(ROS)中,OctoMap可以作為預編譯的Debian包提供,例如,用於Ubuntu發行版1。進一步的ROS整合可以在octomap ros和octomap msgs包中獲得。藉助於pkg-config或CMake構建系統中的查詢包機制,通過對其進行編譯和連結,可以容易地將OctoMap整合到任何其他框架中。
基於OpenGL的3D視覺化應用程式可以與庫一起檢視儲存的八叉樹檔案,並從範圍資料增量地構建對映,這簡化了故障排除和地圖資料檢查(參見圖9)。它還提供基本的編輯功能。

4.4.1整合感測器測量
通過呼叫佔用八叉樹類OcTree的insertRay(·)方法,使用raycasting整合各個測距。當沿著射線到感測器原點的所有其他體素被免費更新時,這更新了所佔用的測量的終點。
使用insertScan(·)整合點雲,例如來自3D鐳射掃描或立體攝像機的點雲。這種批處理操作已經被優化為比從原點跟蹤每條射線更有效。最後,通過呼叫updateNode(·),可以用點度量更新八叉樹中的單個節點。
4.4.2訪問資料
可以通過搜尋它們的座標來訪問個體八叉樹節點。對於有效的批查詢,我們的實現提供迭代器遍歷八叉樹,類似於標準C++容器類。使用這些迭代器,可以查詢某個邊界框中的所有節點、葉節點或葉節點,或者根據進一步的標準對其進行篩選。光線交叉查詢,即將光線從原點投射到給定方向,直到它命中佔用的體積,是機器人學中3D地圖的重要用例。這種查詢用於可見性檢查或使用範圍感測器進行定位。因此,我們在CASTRAY(·)方法中提供了這種功能。
5評價
文中提出的方法已經使用若干真實世界資料集和模擬資料集進行了評估。這些實驗旨在驗證所提出的表示是否滿足在導言中提出的要求。更具體地說,我們演示了我們的方法能夠充分地建模各種型別的環境,並且它是一個可更新的、靈活的對映結構,可以緊湊地儲存。為了評價,我們使用OctoPAP1.5.12的當前實現。評估的資料集可線上3獲得,並且可以利用工具graph2tree從3D點雲轉換為八叉樹對映,該工具graph2tree還列印所有必要的統計資料。
5.2 鐳射測距資料的感測器模型
OctoMap可以與任何型別的距離感測器一起使用,只要有反向感測器模型。由於我們的真實世界資料集大部分是用鐳射測距儀獲取的,因此我們採用基於光束的逆感測器模型,該模型假定測量的端點對應於障礙物表面,並且感測器起始端點之間的視線不包含任何障礙。所有卷的佔用概率初始化為P(n)=0:5的一致先驗概率。為了有效地確定需要更新的地圖單元,執行射線投射操作,該操作確定沿著從感測器原點到測量端點的光束的體素。為了效率,我們使用Bresenham演算法的3D變體來近似光束(Amanatides和Woo,1987)。沿著束的體積如SECT中所描述的更新。3.2使用以下逆感測器模型:

在整個實驗中,我們使用了locc=0:85和lfree=0:4的對數比值,分別對應於佔空容量和空閒容量的概率分別為0:7和0:4。將鉗位閾值設定為lmin=2和lmax=3:5,對應於0:12和0:97的概率。我們在實驗上確定這些值最適合我們使用鐳射測距儀來對映大多數靜態環境的用例,同時仍然保持地圖可更新性以適應偶爾的變化。通過適應這些可變的閾值,可以實現更強的壓縮。我們將在宗派進行評估。5.6,在對映置信度和壓縮之間存在權衡。
當使用掃描鐳射測距儀時,光線投射操作的離散化效應可能導致不希望的結果。在感測器以淺角掃過平坦表面期間,一次2D掃描中所測量的體積可以在後續掃描的光線投射中被標記為自由的。這種效果在圖10中示出。這種不希望的更新通常會在模型表面產生孔,如圖11中的示例所示。為了克服這個問題,我們在對映方法中處理來自與單個3D點雲相同位置的感測器掃描中的掃描線集合。
由於鐳射掃描器的測量通常是由障礙物表面的反射引起的,因此我們確保對應於端點的體素在被佔用時更新。更準確地說,每當根據等式(7)將體素更新為佔用體素時,在地圖的同一測量更新中,體素不會免費更新。通過這種方式更新地圖,可以防止所描述的影響,並且準確地表示環境,如圖11(右)所示。

5.2 真實感測器資料的三維模型
在這個實驗中,我們演示了我們的方法模擬真實環境的能力。已經使用了各種不同的資料集。注意,自由空間在實驗中明確建模,但是為了清楚起見,在圖中沒有顯示。室內資料集FR-079走廊是使用先鋒2 AT平臺在平底傾斜裝置上裝備SICK LMS鐳射測距儀記錄的。通過應用3D掃描匹配方法,減少了測徑誤差。該機器人三次穿越弗萊堡校區079大樓的走廊,共完成66次3D掃描,總計600萬個終點。在處理這個資料集時,我們把鐳射束的最大射程限制為10米,這樣就消除了通過窗戶觀測到的建築物外部的雜散測量。圖12顯示了最終的對映。一個相當大的室外資料集被記錄在弗萊堡的電腦科學校園4。它由81個密集的3D掃描組成,覆蓋面積292m×167m,沿著723m的軌跡。在進一步的實驗中,我們使用新學院資料集的鐳射距離資料(Smith等人,2009)(紀元C,總共1400萬個終點)。這些資料是在一個大型的室外環境中記錄的,兩個固定的鐳射掃描器在機器人前進時掃描到機器人的左側和右側。對於這個資料集,使用由視覺里程計產生的機器人軌跡的優化估計(Sibley等人,2009)。所得的戶外地圖如圖13所示。最後,我們將freiburg1 360RGBD資料集的資料整合到我們的地圖表示中,來自Microsoft Kinect感測器的總計2.1億個端點(參見Sect.3.5.1)。最終的地圖,如圖5所示,代表了一個解析度為2釐米的辦公室環境。在這個地圖中,我們另外儲存每個體素顏色資訊。


5.3地圖精度
這個實驗演示了3D地圖如何精確地表示用於構建該地圖的資料。注意,這個特定的評估獨立於底層的八叉樹結構,因為我們的對映方法能夠對與3D網格相同的資料進行建模。我們測量精確度作為所有3D掃描中正確對映的單元的百分比。如果3D地圖單元在地圖和評估的3D掃描中具有相同的最大似然狀態(空閒或佔用),則其計數為正確對映。由此,掃描被當作插入到已經構建的對映中,即,端點必須被佔用,並且沿著感測器和端點之間的射線的所有單元必須是自由的。作為第二個度量,我們在構建對映時通過跳過每次第5次掃描來交叉驗證對映,並使用這些跳過掃描來評估正確對映的單元格的百分比。
表1中的結果顯示我們的對映方法準確地表示了環境。剩餘的誤差很可能是由於感測器噪聲、離散化效應或者不完全完美的掃描對準。交叉驗證結果只損失很少的精度,這說明概率感測器模型可以得到逼真的預測結果。

5.4記憶體消耗
在這個實驗中,我們評估我們的方法的記憶體消耗。在不同的樹解析度處理多個數據集。我們分析了有八叉樹壓縮和不執行八叉樹壓縮的表示的記憶體使用情況,以及將每個節點轉換為完全空閒或佔用的最大似然壓縮。
為了進行比較,我們還確定了在記憶體中線性初始化的最小尺寸的最佳對齊的3D網格所需的記憶體量。根據教派。4.1,在32位架構上儲存在八叉樹中的佔用的記憶體消耗由以下給出

其中nNIN是內部節點的數量,而NLIP是葉節點的數量。儲存相同資訊(佔用概率為一個浮點數)的最小3D網格的大小由

其中x;y;z是地圖在每個維度上的最小邊界框的大小,r是地圖解析度。此外,我們使用完整的概率模型和Sect.4.3,並對生成的檔案大小進行評估。
表2給出了示例性解析度的記憶體使用情況。可以看出,高壓縮比可以達到,特別是在大型戶外環境。在這裡,

其中x;y;z是地圖在每個維度上的最小邊界框的大小,r是地圖解析度。此外,我們使用完整的概率模型和Sect.4.3,並對生成的檔案大小進行評估。
表2給出了示例性解析度的記憶體使用情況。可以看出,高壓縮比可以達到,特別是在大型戶外環境。在這裡,修剪將合併大量空閒空間卷,未知空間的區域不使用任何記憶體。
注意,解析度為10cm的室外資料集的3D網格甚至不能適合32位機器的可定址主儲存器。另一方面,我們的地圖結構也能夠模擬具有中等儲存要求的精細分級的室內環境。在非常有限的空間中,最佳對齊的3D網格可能比未壓縮的對映八叉樹佔用更少的記憶體。然而,一旦壓縮技術被使用,這種效應就會減弱。

隨著時間的推移,儲存器消耗的演變如圖14所示。當機器人探索新領域時,記憶體使用量增加(在FR-079走廊掃描1-22和39-44,在弗萊堡校園掃描1-50和65-81)。在剩餘的時間裡,重新訪問之前對映的區域,其中由於修剪,記憶體使用保持幾乎恆定甚至減少。
正如預期的那樣,記憶體使用量隨著樹解析度的增加而呈指數增長。這種效應在圖15中可以看到,我們在圖中使用了對數標度。表2給出了序列化二進位制最大似然圖(表示為“Lossy”)和全概率模型(“Full”)的檔案大小。注意,通過使用標準檔案壓縮方法,可以進一步壓縮對映檔案。即使是弗萊堡大學和新學院相當大的戶外資料集的地圖,檔案大小也不到14MB。

5.5執行時間
在以下實驗中,我們分析了在框架中整合和訪問資料所需的時間。對於各種地圖資料集,所有執行時都在標準桌面CPU(Intel Core i7-2600,3.4GHz)的單個核心上進行評估。
5.5.1地圖生成
首先,我們分析了通過整合範圍資料來生成地圖所需的時間。這個時間取決於地圖解析度和整合的光束長度。我們處理了FR-079走廊和弗萊堡校園資料集,它們都具有全激光範圍(高達50米)和具有有限最大範圍10米的多個解析度。在圖16中給出了一個樑的平均插入時間。
在我們的實驗中,3D掃描通常由大約9萬到25萬個有效測量組成。通常,這樣的掃描可以在不到一秒鐘的時間內整合到地圖中。這表明,我們目前的實現甚至可以應付RGBD-相機的要求資料,在快速幀速率,儘管在較短的範圍,輸出高達30萬點。
利用長測量光束和大型戶外區域,如弗萊堡大學校園資料集,可以通過限制地圖更新範圍來獲得加速。然而,在只有很少的感測器光束到達的室內,通過限制感測器範圍沒有明顯的加速。

5.5.2地圖查詢
我們使用迭代器(參見Sect.4.4.2)。查詢的深度可以在執行時受到限制,在我們的資料結構中,這相當於粗略對映中的對映查詢。當粗略的解析度足夠時,這允許更高效的樹遍歷。圖17顯示了遍歷多個對映到對應於完整對映解析度(深度截止=0)的最大樹深度16的時間。該圖還給出了當查詢深度有限時查詢所有葉節點的時間。深度截斷中的每個增量使最小體素的邊緣長度加倍,並使遍歷速度提高大約兩倍。可以看出,地圖遍歷是有效的。即使在全地圖解析度下,包含1087 014個被佔用和3 377 882個自由葉節點的弗賴堡校園的大地圖也可以在51ms內通過。
5.6夾緊引數
最後,分析了鉗位閾值對地圖精度和壓縮的影響。由於這些閾值提供了佔用概率的下界和上界,所以與沒有鉗位的完整對映相比,接近P=0和P=1的資訊丟失。鉗位對映表示完整對映的近似,因此我們使用在完整對映上求和的Kullback-Leibler散度(KLD)作為度量。由於佔用是具有自由和佔用的離散狀態的二進位制隨機變數,因此可以通過對所有地圖節點n:

 

其中p(n)是Mn中節點n的佔用概率,Mc中的q(n)。一系列佔用結果的範圍從[0:1](沒有夾緊,無損耗)到[0:4:0:6](強夾緊,大部分損耗),不同的對映可以在圖18中看到。我們選擇的預設閾值[0:12:0:97]的值顯示為細水平線,虛線藍色表示記憶體消耗,紅色表示KLD。
選擇這個夾緊範圍主要是為了在基於鐳射的繪圖和環境的偶爾變化(例如人們通過掃描或關門)的情況下工作得最好。可以看到,通過更高的鉗位可以獲得更強的壓縮,而代價是失去對映置信度。在最退化的情況下,一個感測器更新就足以將體素標記為完全空閒或佔用,從而失去用概率更新過濾噪聲的任何能力。注意,雖然鉗位對地圖壓縮是有益的,但是即使沒有鉗位,無失真壓縮地圖也比3D網格小(參見表2)。

6案例研究
自從在2010年首次引入(Wurm等人,2010)以來,OctoMap框架受到了極大的關注,並且已經在多個應用程式中使用。這些包括6D定位(Hornung等人,2010)、帶有飛行器的自主導航(Heng等人,2011;Muller等人。,2011),使用類人機器人的自主導航(Owald等人,2012;Maier等人,2012),3D探索(Shade和Newman,2011;Dornhege和Kleiner,2011),3DSLAM(Hertzberg等人,2011),3D臂導航(Ciocarlie等人,2010),語義對映(Blodow等人,2011),以及導航雜亂環境中的N(HONNUG等,2012)。在下文中,我們將更詳細地描述這些用例中的一些,以便演示OctoMap庫的多功能性和整合的簡易性。
6.1三維定位技術
在以前的工作中(Hornung等人,2010),我們開發了一種基於OctoMap作為3D環境模型的定位方法。該方法基於二維鐳射測距、IMU和聯合編碼器資料,利用蒙特卡羅定位技術跟蹤複雜室內環境下仿人機器人的6D軀幹姿態。對於粒子濾波觀測模型,我們首先使用端點模型,然後結合用於區域性細化的視覺觀測,使用優化的光線投射方法(Owald等人,2012)。由此產生的定位是高度精確的,甚至能夠使人形爬上螺旋樓梯。我們的實現是可用的開放原始碼5,並且在OctoMap中使用光線投射功能(參見Sect.4.4.2)。這使得其他機器人定位系統能夠重複使用。
6.2桌面操作
ROS對撞機PACKAG6構建基於3D點雲的碰撞地圖。來自多個源的感測器資料,例如傾斜鐳射和立體相機,使用OctoMap進行融合。八叉樹節點被擴充套件為儲存時間戳屬性,該屬性允許在動態變化的環境中逐漸清除節點。這種新的碰撞地圖使ROS手臂導航和抓取管道(Ciocarlie等人,2010)能夠動態地響應變化並應對感測器噪聲。與以前的固定大小的體素網格相比,新的實現允許初始無限的工作空間、整合來自多個感測器的資料,並且它更加節省記憶體。
6.3雜亂環境中的導航
OctoMap還用於建立用於移動操作的導航模組。在這個專案中,一個PR2機器人從一張有兩隻胳膊的桌子上拿起大物體,然後通過窄通道把它帶到另一張桌子上(Hornung等人,2012)。該系統集成了3D感測器資料在OctoMap。然後,根據機器人的全部運動學配置和所附物體,使用得到的3D佔用圖來執行碰撞檢查。多層投影2D地圖和使用運動原語的任意時間規劃器允許幾乎實時地規劃具有有界次最優性。在ROS7中,導航系統和基於OctoMap的增量式對映框架都是開源的。
7結論
在本文中,我們提出了一個用於三維對映的開源框架OctoMap。我們的方法使用基於八叉樹的有效資料結構,它支援緊湊的記憶體表示和多解析度對映查詢。使用概率佔用估計,我們的方法可以表示包括自由和未知區域的體積三維模型。所提出的方法使用允許無失真壓縮方案的有界每卷置信度,並導致記憶體使用顯著減少。我們評估了我們的方法與各種現實世界的資料集。結果表明,我們的方法能夠以精確的方式對環境建模,同時最小化記憶體需求。
OctoMap可以很容易地整合到機器人系統中,並且已經成功地應用於各種機器人專案中。該實現可作為BSDCONVICE C++原始碼使用。資料集可以線上驗證我們的實驗結果並與之進行比較。作者要感謝J.Muller,S.Owald,R.B.Rusu,R.Schmitt和C.Sprunk對十月地圖圖書館的卓有成效的討論和貢獻。

References
Amanatides J, Woo A (1987) A fast voxel traversal algorithm for ray tracing. In: Proceedings of Eurographics, Amsterdam, The Netherlands Blodow N, Goron L, Marton Z, Pangercic D, Ruhr T, Tenorth M, BeetzM (2011)
Autonomous semantic mapping for robots performing everyday manipulation tasks in kitchen environments. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)7 http://www.ros.org/wiki/3d navigationand http://www.ros.org/wiki/octomap server
Botsch M, Wiratanaya A, Kobbelt L (2002) Efficient high quality rendering of point sampled geometry. In: EGRW ’02: Proc. of the 13thEurographics workshop on Rendering, pp 53–64Ciocarlie M, Hsiao K, Jones EG, Chitta S, Rusu RB, Sucan IA (2010)
Towards reliable grasping and manipulation in household environments. In: Intl. Symposium on Experimental Robotics (ISER)
Cole D, Newman P (2006) Using laser range data for 3D SLAM in outdoor environments. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Dornhege C, Kleiner A (2011) A frontier-void-based approach for autonomous exploration in 3D. In: IEEE International Symposium on Safety, Security and Rescue Robotics (SSRR)
Douillard B, Underwood J, Melkumyan N, Singh S, Vasudevan S, Brunner C, Quadros A (2010) Hybrid elevation maps: 3D surface models for segmentation. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)
Dryanovski I, Morris W, Xiao J (2010) Multi-volume occupancy grids: An efficient probabilistic 3D mapping model for micro aerial vehicles. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)
Einhorn E, Schroter C, Groß HM (2011) Attention-driven monocu- ¨ lar scene reconstruction for obstacle detection, robot navigation and map building. Robotics & Autonomous Systems 59(5):296–309
Elseberg J, Borrmann D, Nuchter A (2011) Efficient processing of ¨ large 3d point clouds. In: Proc. of the XXIII Int. Symp. on Information, Communication and Automation Technologies (ICAT ’11)
Endres F, Hess J, Engelhard N, Sturm J, Cremers D, Burgard W (2012) An evaluation of the RGB-D SLAM system. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Fairfield N, Kantor G, Wettergreen D (2007) Real-time SLAM with octree evidence grids for exploration in underwater tunnels. Journal of Field Robotics
Fournier J, Ricard B, Laurendeau D (2007) Mapping and exploration of complex environments using persistent 3D model. In: Computer and Robot Vision, 2007. Fourth Canadian Conf. on, pp 403–410 Girardeau-Montaut D, Roux M, Marc R, Thibault G (2005) Change detection on points cloud data acquired with a ground laser scanner. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences 36:30–35
Gutmann JS, Fukuchi M, Fujita M (2008) 3D perception and environment map generation for humanoid robot navigation. Int J Rob Res 27(10):1117–1134
Habbecke M, Kobbelt L (2007) A surface-growing approach to multiview stereo reconstruction. In: Proc. of the IEEE Conf. on Computer Vision and Pattern Recognition (CVPR)
Hadsell R, Bagnell JA, Hebert M (2009) Accurate rough terrain estimation with space-carving kernels. In: Proc. of Robotics: Science and Systems (RSS)
Hebert M, Caillas C, Krotkov E, Kweon IS, Kanade T (1989) Terrain mapping for a roving planetary explorer. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Heng L, Meier L, Tanskanen P, Fraundorfer F, Pollefeys M (2011) Autonomous obstacle avoidance and maneuvering on a vision-guided MAV using on-board processing. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Hertzberg C, Wagner R, Birbach O, Hammer T, Frese U (2011) Experiences in building a visual slam system from open source components. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Hoppe H, DeRose T, Duchamp T, Mcdonald J, Stuetzle W (1992) Surface reconstruction from unorganized points. SIGGRAPH Computer Graphics 26(2):71–78
Hornung A, Wurm KM, Bennewitz M (2010) Humanoid robot localization in complex indoor environments. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)
Hornung A, Phillips M, Jones EG, Bennewitz M, Likhachev M, Chitta S (2012) Navigation in three-dimensional cluttered environments for mobile manipulation. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Kammerl J, Blodow N, Rusu RB, Gedikli S, Beetz M, Steinbach EG (2012) Real-time compression of point cloud streams. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Kelly A, Stentz A, Amidi O, Bode M, Bradley DM, Diaz-Calderon A, Happold M, Herman H, Mandelbaum R, Pilarski T, Rander P, Thayer S, Vallidis N, Warner R (2006) Toward reliable off road autonomous vehicles operating in challenging environments. J of Robotics Research 25(5-6):449–483
Kraetzschmar G, Gassull G, Uhl K (2004) Probabilistic quadtrees for variable-resolution mapping of large environments. In: Ribeiro MI, Victor SJ (eds) Proc. of the 5th IFAC/EURON Symposium on Intelligent Autonomous Vehicles, Lisbon, Portugal
Krainin M, Henry P, Ren X, Fox D (2011) Manipulator and object tracking for in-hand 3d object modeling. J of Robotics Research 30(11):1311–1327
Laine S, Karras T (2010) Efficient sparse voxel octrees. In: ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games
Magnusson M, Duckett T, Lilienthal AJ (2007) Scan registration for autonomous mining vehicles using 3D-NDT. Journal of Field Robotics 24(10):803–827
Maier D, Hornung A, Bennewitz M (2012) Real-time navigation in 3d environments based on depth camera data. In: Proc. of the IEEERAS Int. Conf. on Humanoid Robots (Humanoids)
Mason J, Ricco S, Parr R (2011) Textured occupancy grids for monocular localization without features. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Meagher D (1982) Geometric modeling using octree encoding. Computer Graphics and Image Processing 19(2):129–147
Moravec H (1996) Robot spatial perception by stereoscopic vision and 3D evidence grids. Tech. Rep. CMU-RI-TR-96-34, Robotics Institute, Pittsburgh, PA Moravec H, Elfes A (1985) High resolution maps from wide angle sonar. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA), St. Louis, MO, USA, pp 116–121
Muller J, Kohler N, Burgard W (2011) Autonomous miniature blimp ¨ navigation with online motion planning and re-planning. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS) Newcombe R, Izadi S, Hilliges O, Molyneaux D, Kim D, Davison
A, Kohli P, Shotton J, Hodges S, Fitzgibbon A (2011) KinectFusion: Real-time dense surface mapping and tracking. In: Mixed and Augmented Reality (ISMAR), 2011 10th IEEE International Symposium on, IEEE, pp 127–136
Nuchter A, Lingemann K, Hertzberg J, Surmann H (2007) 6D ¨ SLAM—3D mapping outdoor environments: Research articles. J
Field Robot 24(8-9):699–722
Oßwald S, Hornung A, Bennewitz M (2012) Improved proposals for highly accurate localization using range and vision data. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)
Pathak K, Birk A, Poppinga J, Schwertfeger S (2007) 3D forward sensor modeling and application to occupancy grid based sensor fusion. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)
Payeur P, Hebert P, Laurendeau D, Gosselin C (1997) Probabilistic octree modeling of a 3-d dynamic environment. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Pfaff P, Triebel R, Stachniss C, Lamon P, Burgard W, Siegwart R (2007) Towards mapping of cities. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA), Rome, Italy
Roth-Tabak Y, Jain R (1989) Building an environment model using depth information. Computer 22(6):85–90
Ryde J, Hu H (2010) 3D mapping with multi-resolution occupied voxel lists. Autonomous Robots 28(2):169–185
Schnabel R, Klein R (2006) Octree-based point-cloud compression. In: Symposium on Point-Based Graphics 2006, Eurographics
Shade R, Newman P (2011) Choosing where to go: Complete 3D exploration with stereo. In: Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA)
Sibley G, Mei C, Reid I, Newman P (2009) Adaptive relative bundle adjustment. In: Proc. of Robotics: Science and Systems (RSS) 
Smith M, Baldwin I, Churchill W, Paul R, Newman P (2009) The new college vision and laser data set. International Journal for Robotics Research (IJRR) 28(5):595–599, DOI http://dx.doi.org/10. 1177/0278364909103911
Stoyanov T, Magnusson M, Andreasson H, Lilienthal AJ (2010) Path planning in 3d environments using the normal distributions transform. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)
Sturm J, Engelhard N, Endres F, Burgard W, Cremers D (2012) A benchmark for the evaluation of RGB-D slam systems. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS), http://cvpr.in.tum.de/data/datasets/rgbd-dataset/download
Surmann H, Nuchter A, Hertzberg J (2003) An autonomous mobile   robot with a 3d laser range finder for 3d exploration and digitalization of indoor environments. Robotics and Autonomous Systems 45(3):181–198
Triebel R, Pfaff P, Burgard W (2006) Multi-level surface maps for outdoor terrain mapping and loop closing. In: Proc. of the IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS)
Weise T, Wismer T, Leibe B, Van Gool L (2009) In-hand scanning with online loop closure. In: ICCV Workshops
Whelan T, Kaess M, Fallon M, Johannsson H, Leonard J, McDonald J (2012) Kintinuous: Spatially extended KinectFusion. Tech. rep., URL http://hdl.handle.net/1721.1/71756
Wilhelms J, Van Gelder A (1992) Octrees for faster isosurface generation. ACM Trans Graph 11(3):201–227
Wurm KM, Hornung A, Bennewitz M, Stachniss C, Burgard W (2010) OctoMap: A probabilistic, flexible, and compact 3D map representation for robotic systems. In: Proc. of the ICRA 2010 Workshop on Best Practice in 3D Perception and Modeling for Mobile Manipulation
Wurm KM, Hennes D, Holz D, Rusu RB, Stachniss C, Konolige K, Burgard W (2011) Hierarchies of octrees for efficient 3d mapping. In: Proc. of the I