Multi-object navigation in real environments using hybrid policies 論文閱讀

論文信息

題目:Multi-object navigation in real environments using hybrid policies
作者:Assem Sadek, Guillaume Bono
來源:CVPR
時間:2023

Abstract

機器人技術中的導航問題通常是通過 SLAM 和規劃的結合來解決的。

最近,除了航路點規劃之外,涉及(視覺)高級推理重要組成部分的問題也在模擬環境中得到了探索,這些問題大多通過大規模機器學習來解決,特別是強化學習、離線強化學習或模仿學習。

這些方法要求智能體學習各種技能,例如局部規劃、繪制對象和查詢所學習的空間表示。與航點規劃(PointGoal)等更簡單的任務相比,對于這些更復雜的任務,當前最先進的模型已經在模擬中進行了徹底的評估,但據我們所知,尚未在真實環境中進行評估

在這項工作中,我們重點關注 sim2real 轉變
我們的目標是具有挑戰性的多對象導航(Multi-ON)任務[41],并將其移植到包含原始虛擬 Multi-ON 對象的真實副本的物理環境。

我們引入了一種混合導航方法,它將問題分解為兩種不同的技能:
(1) 路點導航通過經典 SLAM 與符號規劃器相結合來解決,
(2) 探索、語義映射和目標檢索則通過經過訓練的深度神經網絡來處理監督學習和強化學習的結合。

我們在模擬和真實環境中展示了這種方法與端到端方法相比的優勢,并且在該任務上優于 SOTA [28]。

Introduction

機器人導航已經從準備充分的環境中的簡單路徑點導航問題發展到涉及視覺和語義概念的高級推理的復雜任務。當策略從模擬轉移到物理機器人的真實環境時,它們會出現性能下降和缺乏魯棒性的情況。這主要是由于模擬與現實之間的真實性差距**(“sim2real 差距”),以及難以探索導航問題中固有的大量變化因素**,例如房間布局、家具、紋理和其他房間細節、罕見的局部場景幾何形狀等。

最近有一種模塊化方法的趨勢,它將問題分解為分層部分 [8]、[4] 和混合方法,將最短路徑規劃器(符號或經過訓練的)與經過訓練的策略相結合。雖然這些方法已被證明具有更高的樣本效率[32],但最先進的方法仍在模擬中進行評估,并且缺乏對真實機器人的徹底測試。

在這項工作中,我們解決了多對象導航 [41] 的挑戰性問題,與 K 項物品場景 [5] 類似,需要代理按規定的順序順序導航一組對象。這個任務定義有利于代理能夠學習在內部空間表示中映射所看到的對象,因為后面在情節中導航到它們可以增加獎勵。這使得它在像 ObjectNav 這樣的簡單任務中脫穎而出,其中探索和當前觀察的反應性局部規劃的綜合能力足以解決任務。

我們的目標是 sim2real 遷移,據我們所知,我們是第一個在真實物理環境中對多對象導航方法進行全面性能評估的人,請參見圖 1。雖然更簡單的任務(例如 PointGoal)已在在真實的機器人[23]、[34]中,對更復雜任務的訓練模型的評估很少或不存在。我們提出了一種新的導航方法,其設計選擇是由優化實際環境中的性能的目標驅動的。
在這里插入圖片描述

我們提出了一種新的混合方法,將問題分解為兩部分:

  1. Good Old Fashioned Robotics”(GOFR),處理與語義無關的經典導航方面,例如可導航空間的檢測和定位(幾何 SLAM)與地圖上的路點導航相結合。
  2. Semantics through Machine Learning, 即映射視覺推理所需的語義概念并利用它們;利用布局規律探索環境中最有前途的區域

在導航過程中,經典的 SLAM 算法 [24] 以張量/地圖的形式創建并維護 2D 度量表示,并使用激光雷達輸入??在其上定位機器人。使用深度神經網絡從視覺 RGB-D 觀測中提取的高級特征形成空間和語義點云,其空間坐標與度量表示對齊,見圖 2。
組合的混合表示滿足相關子的需求。 -智能體所需的技能:
(i)確定過去是否觀察到目標物體,
(ii)規劃智能體和探索區域之間的最佳軌跡,以及
(iii)確定環境中未探索區域的邊界以及下一個中間子目標,以防環境需要探索以找到下一個目標。所有這些子技能都是單獨設計和訓練的,這可以限制訓練的樣本復雜性。

這項工作的貢獻如下:
(i)我們引入了一種多目標導航的混合方法,將經典的度量 SLAM 和路徑規劃與經過監督學習和 RL 訓練的學習組件相結合;
(ii) 我們在真實環境中重現 Multi-ON 基準測試 [41],其中我們放置目標對象的制造復制品,用于最初模擬的目標環境;
(iii) 我們將所提出的方法與真實環境中的端到端訓練方法進行比較,特別是與 CVPR 2021 MultiON 競賽 [28] 的獲獎作品進行比較,我們在真實和模擬環境中都表現出色。

Related Work

(這部分沒太多有價值的)

Hybrid Planning and Navigation

我們的目標是 Wani 等人[41]引入的多對象導航(Multi-ON)任務,特別是 3 個對象變體:在每個情節中,智能體必須找到 3 個圓柱形對象 G n , n = 1 , 2 , 3 G_n,n = 1, 2, 3 Gn?n=1,2,3,按照預定義的順序,其中 G n G_n Gn? 是要查找的第 n 個對象,并且需要在每個目標處調用 Found 操作。劇集持續時間限制為 2,500 個環境步驟。在每個步驟 t,智能體接收一個以自我為中心的 RGB-D 觀察 O t ∈ R h × w × 4 O_t ∈ R^{h×w×4} Ot?Rh×w×4、一個激光雷達框架以及來自 8 個類別的當前目標對象的類別標簽。

在導航過程中,代理根據激光雷達輸入??構建度量鳥瞰占用圖,并使用度量 SLAM [39] 在其上進行自身定位。該二值圖與重疊的語義點云相結合,其中包含關鍵對象的位置及其語義類別,這些是通過對象檢測器從 RGB 輸入中檢測到的。檢測和建圖通過 SLAM 算法的定位模塊進行協調。

Navigation

在兩個不同的級別上分層執行。在較高級別(圖 2 中的外環)上,生成 2D 航路點坐標 pt=(x, y) 并將其提供給較低級別??控制器(內環),其任務是使用維護的占用地圖導航到航路點。高級控制器在兩種不同的策略之間切換:
? Exploration- 當目標物體尚未被觀察到時,即機器人探索環境,最大化覆蓋范圍。這是通過 RL 訓練的學習策略來完成的,見下文。
? Exploitation——當目標對象被觀察到并因此成為語義點云的一部分時,其位置被視為新的路徑點并提供給本地規劃器。

Metric EgoMap

為了收集沿其路徑的導航信息并更有效地重新訪問之前看到的區域,代理構建了所謂的 EgoMap,這是一個以其當前位置為中心并與其前進方向對齊的固定空間分辨率的占用網格。

在真實的機器人上,該地圖是使用 RTABMap [24] 庫獲得的。它使用基于圖形的 SLAM 算法和閉環功能,這是一種利用 RGB-D、激光雷達和里程計傳感器數據的靈活設計。激光雷達和/或深度用于創建 2D/3D 局部占用網格,與初始位置依賴于里程計積分的節點相關聯。

然后從 RGB 幀中提取的關鍵點創建描述符,以便于節點比較和回環檢測。 RTABMap 還包括短期和長期內存管理、全局映射壓縮和多會話映射。

在模擬中,我們利用特權信息,通過 Habitat-Sim 中的 Recast&Detour [1] 庫生成的 NavMesh 投影來檢索場景導航性的完整自上而下視圖。然后,通過使用完美定位,直接在該自上而下視圖上的代理視野中進行光線追蹤,構建戰爭迷霧掩模。

真實方法和模擬方法都會生成一個全局地圖,我們在該地圖上應用由代理當前姿勢參數化的簡單仿射變換來獲取 EgoMap。

Exploration

是基于機器學習的主要模塊。與最近的嵌入式 AI 工作相比 [4]、[8],該策略不采用第一人稱 RGB 輸入,而是采用度量 SLAM 算法生成的 EgoMap Mt。這大大簡化了任務并提高了采樣效率,并且由于避免了閃電、顏色和紋理的變化,因此最大限度地減少了 sim2real 差距。該策略是外循環的一部分,預測 2D 航路點坐標 pt。

由于多種原因,該問題是部分可觀察到的:
(i) 并非場景的所有區域在任何時間點都已被觀察到;
(ii) 出于效率原因,EgoMap Mt 并未覆蓋整個場景,因此當智能體導航到距離觀察區域足夠遠時,可能會忘記觀察到的區域;
(iii) 在環境中存在不確定性的情況下,即使理論上完全可觀察的問題(MDP)也可以轉化為 POMDP(“認知 POMDP”),這是機器人技術的標準情況,正如最近在[18]中所顯示的那樣。

因此,我們為該策略注入了隱藏記憶 h t h_t ht? 并使其循環出現。

策略 π 需要能夠預測多模態分布,因為有多個有效軌跡可以有效地探索環境。我們通過歸納偏差將其納入策略中,這迫使預測通過空間熱圖 Ht,從中對所選航路點位置進行采樣。在采樣之前,我們通過掩蔽將熱圖限制在未探索的區域。這種選擇還導致了一個更可解釋的模型,因為目標探索點的分布可以可視化(參見第四節)。

這可以形式化如下(另請參見圖 3):
在這里插入圖片描述
在這里插入圖片描述

Local Navigation

本地導航 — 到航路點 p t p_t pt? 由分析規劃器執行,該規劃器計算當前占用 EgoMap Mt 上的最短路徑。這不一定是最佳路徑,因為地圖不等于(未觀察到的)GT 地圖和中間區域待穿越的區域(甚至路徑點 p t p_t pt?)可能未被探索。

我們采用動態規劃器 D ? D^* D?,它計算經典假設下的最短路徑,并在新信息可用時重新規劃。由于我們優化了我們的方法,使其在實際環境中穩健且高效,與最近的工作 [32]、[7] 不同,我們選擇 D* 規劃器而不是常用的快速行進方法 [37]。實際路徑的可行性和規劃的速度是這種設計選擇背后的兩個主要原因。

Stabilizing training

穩定訓練——如上所述,在不確定條件下使用 D ? D^* D? 的局部規劃產生的潛在失敗和次優軌跡也會對勘探策略的訓練過程產生負面影響。該策略是外循環的一部分,預測航路點 p t p_t pt?,僅在完成完整的本地導航過程后才收到獎勵。局部規劃中的噪音會影響強化學習訓練過程的穩定性并導致缺乏收斂。

我們通過訓練與本地策略接口的探索策略來解決這個問題,并對其施加了長度限制。探索策略預測的從當前位置到下一個路點 pt 的完整軌跡被分成一系列距離為 0.3m 的小子目標,本地策略僅限于其中 5 個子目標。如果達到航路點 pt,或者達到 5 個子目標的限制,則將控制權交還給外循環。這種選擇導致了穩定的訓練,并且訓練后的策略很好地轉移到了有針對性的探索任務,而無需改變。對本地規劃長度的相同限制也適用于部署時,這提高了實際條件下的魯棒性,并使復雜的恢復行為變得過時。

Object Detection and Mapping

對象檢測和映射 - 被構建為來自當前 RGB-D 幀 ot 的語義分割任務,我們通過根據模擬器中的特權信息計算出的 GT 掩碼進行監督。預測器是 DeepLab v3 網絡 [12],使用深度信息和情景里程計對掩模中檢測到的對象進行反向投影并與 EgoMap 對齊。請注意,深度和里程計在真實機器人/真實環境評估設置中都是有噪聲的。

High-level decisions

高層決策完全是手工制定的,因為這會帶來穩健且可轉移的決策過程,而可以說不需要學習。考慮到我們的決策選擇,只需要一種類型的決策,是進行探索還是利用(即朝著目標導航)。這是根據當前目標對象是否已在映射時被觀察到而采取的。如果已檢測到同一類的多個對象,則選擇最有可能檢測到的位置(就分段對象像素而言)。要映射的對象需要最小數量的像素

Experimental

在這里插入圖片描述

Conclusion

我們已將 Multi-ON 任務擴展到真實環境,據我們所知,我們在這些設置中對該任務進行了首次實驗評估。

我們引入了一種混合模型,它解開了航點規劃和語義,顯著減小了 sim2real 差距,并且優于當前仿真中 SOTA 的 E2E 訓練模型。

未來的工作將集中于增強手工制定的高級策略,該策略需要對誤報檢測具有魯棒性,這也是其他導航任務(例如 ObjectNav)中的常見挑戰。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35758.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35758.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35758.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

優化堆排序(Java 實例代碼)

目錄 優化堆排序 Java 實例代碼 src/runoob/heap/HeapSort.java 文件代碼: 優化堆排序 上一節的堆排序,我們開辟了額外的空間進行構造堆和對堆進行排序。這一小節,我們進行優化,使用原地堆排序。 對于一個最大堆,首…

【設計模式】-策略模式:優雅處理條件邏輯

Java 策略模式之優雅處理條件邏輯 前言 在軟件開發中,我們經常會遇到根據不同的條件執行不同邏輯的情況。這時,策略模式是一種常用的設計模式,能夠使代碼結構清晰、易于擴展和維護。 本文將詳細介紹策略模式的概念及其在Java中的應用&#x…

flume系列之:監控Systemctl托管的flume agent組

flume系列之:監控Systemctl托管的flume agent組 一、需求背景二、相關技術博客三、遠程登陸flume機器四、發送飛書告警五、監控flume agent組狀態一、需求背景 flume接kafka集群,一個kafka集群對應一個flume agent組,會把一組flume agent用systemctl托管每接一個kafka集群會…

pytest 編寫規范

一、pytest 編寫規范 1、介紹 pytest是一個非常成熟的全功能的Python測試框架,主要特點有以下幾點: 1、簡單靈活,容易上手,文檔豐富;2、支持參數化,可以細粒度地控制要測試的測試用例;3、能夠…

差分升級在物聯網水表上的實現與應用(學習)

摘要 當越來越多的物聯網水表加入抄表系統后,實現了水表數據的信息化,并且當水表終端需要技術更新時,通過網絡方式來升級產品可以高效修復設備面臨的問題,減少用戶損失,降低維護成本,但同時也對有限的網絡…

遍歷集合List的五種方法以及如何在遍歷集合過程中安全移除元素

一、遍歷集合List的五種方法 測試數據 List<String> list new ArrayList<>(); list.add("A");list.add("B");list.add("C");1. 普通for循環 普通for循環&#xff0c;通過索引遍歷 for (int i 0; i < list.size(); i) {Syst…

form中表單切換,導致 relus 中的事件無法觸發,原因:頁面切換不要一直切換DOM,會導致問題,需要都顯示出來

修改前&#xff0c;因為重復渲染DOM導致綁定rules失效 修改前代碼使用 computed 計算出渲染的DOM&#xff0c;影響rules事件<el-formref"form"inline:model"billDetailCopy":rules"rules"size"small"label-position"right&quo…

selenium官網文檔閱讀總結(day 4)

1.selenium的工作原理 selenium的工作原理涉及以下主要組件和步驟&#xff1a; &#xff08;1&#xff09;WebDriver:這是selenium的核心組件&#xff0c;它是一個用于控制瀏覽器的API。WebDriver提供了許多方法&#xff0c;用于在瀏覽器中模擬用戶操作。不同的瀏覽器需要相應…

掌握Python的X篇_39_繼承

本篇將會是本專欄關于python基本語法的最后一個知識點&#xff0c;后期將會談python&#xff0c;就會介紹使用python專題&#xff0c;例如&#xff1a;做爬蟲、有架構的網站。 文章目錄 1. 為什么需要繼承2. 繼承的基本概念3. python中繼承的基礎語法4. 總結 1. 為什么需要繼承…

NLP語言模型概覽

語言模型結構分類 Encoder-Decoder&#xff08;Transformer&#xff09;: Encoder 部分是 Masked Multi-Head Self-Attention&#xff0c;Decoder 部分是 Casual Multi-Head Cross-Attention 和 Casual Multi-Head Self-Attention 兼具。比如T5&#xff0c;BART&#xff0c;MA…

騰訊云輕量服務器和云服務器的CPU處理器有差別嗎?

騰訊云輕量應用服務器和CVM云服務器的CPU處理器性能有差別嗎&#xff1f;創建輕量應用服務器時不支持指定底層物理服務器的CPU型號&#xff0c;騰訊云將隨機分配滿足套餐規格的物理CPU型號&#xff0c;通常優先選擇較新代次的CPU型號。而云服務器CVM的CPU處理器型號、主頻都是有…

JAVA設計模式----原型設計模式

文章目錄 一、簡介二、實現方式三、原型模式的注意事項淺拷貝與深拷貝淺拷貝深拷貝一、簡介 定義:用原型實例指定創建對象的種類,并通過拷貝這些原型創建新的對象。 類型:創建類模式 類圖: 原型模式主要用于對象的復制,它的核心是就是類圖中的原型類Prototype。Protot…

下載程序到西門子PLC

更多關于西門子S7-200PLC內容請查看&#xff1a;西門子200系列PLC學習課程大綱 下載西門子200PLC程序分以下兩步&#xff1a; 一.編譯程序 1. 如下圖1-1所示&#xff0c;使用PPI電纜將PLC和電腦連接上&#xff0c;注意筆記本使用USB轉PPI電纜&#xff0c;連接保證給PLC單獨供…

Linux(進程間通信詳解)

進程間通信&#xff0c;顧名思義&#xff0c;就是進程與進程之間互通信交流&#xff0c;OS保證了各進程之間相互獨立&#xff0c;但這不意味著進程與進程之間就互相隔離開&#xff0c;在不少的情況下&#xff0c;進程之間需要相互配合共同完成某項6任務&#xff0c;這就要求各進…

怎樣學會單片機

0、學單片機首先要明白&#xff0c;一個單片機啥也干不了&#xff0c;學單片機的目的是學習怎么用單片機驅動外部設備&#xff0c;比如數碼管&#xff0c;電機&#xff0c;液晶屏等&#xff0c;這個需要外圍電路的配合&#xff0c;所以學習單片機在這個層面上可以等同為學習單片…

JVM:運行時數據區域(白話文)

最近有時間在看一本<深入了解Java虛擬機>的書籍&#xff0c;這本書是一個中國人&#xff0c;名叫周志明的人寫的。相比于其他翻譯過來的技術書籍&#xff0c;這本書還是挺通俗易懂的。先前有和彬哥在聊&#xff0c;他說如果是自己一個人看的話會很枯燥&#xff0c;很難堅…

雙端列表 —— Deque 接口概述,使用ArrayDeque實現隊列和雙端隊列數據結構

Deque接口簡介 Deque譯為雙端隊列&#xff0c;在雙向都能作為隊列來使用&#xff0c;同時可用作棧。Deque接口的方法是對稱成比例的。 Deque接口繼承Queue接口&#xff0c;因此具有Queue&#xff0c;Collection&#xff0c;Iterable的方法屬性。 雙端隊列的工作原理 在常規隊…

前端架構師的能力要求:打造可靠、靈活和可擴展的Web應用

隨著互聯網技術迅猛發展&#xff0c;現代Web應用程序變得越來越復雜且功能強大。作為一名前端架構師&#xff0c;在這個快節奏且競爭激烈的環境中&#xff0c;你需要具備廣泛而深入地技術知識&#xff0c;并且有能力設計、開發和維護高度可靠、靈活和可擴展性強的Web應用。 深入…

前端發送請求和后端springboot接受參數

0.xhr、 ajax、axios、promise和async/await 和http基本方法 xhr、 ajax、axios、promise和async/await都是異步編程和網絡請求相關的概念和技術&#xff01; xhr&#xff1a;XMLHttpRequest是瀏覽器提供的js對象&#xff08;API&#xff09;&#xff0c;用于請求服務器資源。…

百度百科詞條要如何才能符合要求,上百度百科平臺

百度百科詞條對于內容的審核一直是比較嚴格的&#xff0c;因此必須符合百度百科詞條平臺規則&#xff0c;才能夠上百度百科平臺&#xff0c;下面洛希愛做百科網和大家分享百度百科詞條上平臺的內容和規則要求。 1&#xff0c; 首先&#xff0c;百度百科需要知道的是我們要以公益…