買個機器人端茶倒水有希望了?Meta、紐約大學造了一個OK-Robot
「xx,去把電視柜上的遙控器幫我拿過來。」在一個家庭環境中,很多家庭成員都不免被支使干這種活兒。甚至有時候,寵物狗也難以幸免。但人總有支使不動的時候,寵物狗也并不一定都能聽懂。幫人類干活兒的終極夢想還是寄托在機器人身上。
最近,紐約大學、Meta 研發出的一款機器人學會了這個技能。你只需要對它說,「把桌子上的玉米片拿到床頭柜上」,它就能自己找到玉米片,并規劃出路線和相應的動作,順利完成任務。此外,它還能幫你整理東西或扔垃圾。
這個機器人名叫 OK-Robot,由來自紐約大學、Meta 的研究者共同構建。他們將視覺語言模型(用于物體檢測)、導航和抓取的基礎模塊整合到一個開放知識型框架中,為機器人的高效拾放操作提供了解決方案。看來,等我們老了之后,買個機器人給自己端茶倒水還是有希望的。
OK-Robot 定位中的「開放知識」指的是在大型公開數據集上訓練的學習模型。當 OK-Robot 被放置在一個新的家庭環境中時,它將從 iPhone 上獲取掃描結果。根據掃描結果,它會使用 LangSam 和 CLIP 計算出密集的視覺語言表征,并將其存儲在語義存儲器中。在此之后,給定一個需要拾取的對象的語言查詢,查詢的語言表征與語義記憶相匹配。接下來,它會依次應用導航和拾取模塊,移動到所需物體并將其拾取。類似的過程也可用于丟棄物體。
為了研究 OK-Robot,研究者在 10 個真實的家庭環境中對其進行了測試。通過實驗,他們發現,在一個從未見過的自然家居環境中,該系統零樣本部署的成功率平均為 58.5%。然而,這一成功率在很大程度上取決于環境的「自然程度」。因為他們發現,通過改進查詢、整理空間和排除明顯具有對抗性的物體(太大、太半透明、太滑),這一成功率達到了約 82.4%。
在紐約市的 10 個家庭環境中,OK-Robot 嘗試了 171 個拾取任務。
總之,通過實驗,他們得出了以下結論:
- 預訓練的視覺語言模型對開放詞匯導航非常有效:目前的開放詞匯視覺語言模型 —— 如 CLIP 或 OWL-ViT—— 在識別真實世界中的任意物體方面表現出色,并能以零樣本的方式導航、找到這些物體。
- 預訓練的抓取模型可直接應用于移動操控:與 VLM 類似,根據大量數據預訓練的專用機器人模型可以直接應用于家庭中的開放詞匯抓取。這些機器人模型不需要任何額外的訓練或微調。
- 如何組合組件至關重要: 研究者發現,在預先訓練好模型的情況下,可以使用一個簡單的狀態機模型(state-machine model)將它們組合起來,而無需進行任何訓練。他們還發現,使用啟發式方法來抵消機器人的物理限制,可以在真實世界中獲得更高的成功率。
- 目前仍存在一些挑戰:考慮到在任意家庭中進行零樣本操作的巨大挑戰,OK-Robot 在先前工作的基礎上進行了改進:通過分析失敗模式,他們發現在視覺語言模型、機器人模型和機器人形態學方面可以進行重大改進,這將直接提高開放知識操縱智能體的性能。
為了鼓勵和支持其他研究者在開放知識機器人領域的工作,作者表示將共享 OK-Robot 的代碼和模塊。更多信息可參見:https://ok-robot.github.io。
- 論文標題:OK-Robot: What Really Matters in Integrating Open-Knowledge Models for Robotics
- 論文鏈接:https://arxiv.org/pdf/2401.12202.pdf
技術組成和方法
該研究主要解決這個問題:從 B 上拿起 A 并將其放在 C 上,其中 A 是一個物體,B 和 C 是現實世界環境中的某個地方。要實現這一點,所提系統需要包含以下模塊:開放詞匯對象導航模塊,開放詞匯 RGB-D 抓取模塊以及釋放或放置對象的啟發式模塊(dropping heuristic)。
開放詞匯對象導航
首先是掃描房間。開放詞匯對象導航遵循了 CLIP-Fields 的方法,并假設有一個預先映射階段,即使用 iPhone 手動掃描家庭環境。這種手動掃描只是用 iPhone 上的 Record3D 應用程序拍攝家庭視頻,這將產生一系列帶位置的 RGB-D 圖像。
掃描每個房間的時間不到一分鐘,一旦信息收集完畢,RGB-D 圖像以及相機的姿態和位置就被導出到項目庫中進行地圖構建。錄制時必須捕捉地面表面以及環境中的物體和容器。
接下來是進行對象檢測。在掃描的每一幀上,會有一個開放詞匯對象檢測器對掃描的內容進行處理。本文選擇 OWL-ViT 對象檢測器,因為這種方法在初步查詢中表現更好。研究者在每一幀上應用檢測器,并提取每個對象邊界框、CLIP 嵌入、檢測器置信度,并將它們傳遞到導航模塊的對象存儲模塊中。
然后進行以對象為中心的語義存儲。本文借助 VoxelMap 來完成這一步,具體來說,他們使用深度圖像和相機收集的姿態將對象掩模反向投影到現實世界坐標中,這種方式可以提供一個點云,其中每個點都有一個來自 CLIP 的關聯語義向量。
之后是查詢記憶模塊:給定一個語言查詢,本文使用 CLIP 語言編碼器將其轉換為語義向量。由于每個體素都與家中的真實位置相關聯,因此可以找到最有可能找到查詢對象的位置,類似于圖 2 (a)。
必要時,本文將「A on B」實施為「A close B」。為此,查詢 A 選擇前 10 個點,查詢 B 選擇前 50 個點。然后計算 10×50 成對歐氏距離,并選擇與最短 (A, B) 距離相關的 A 點。
完成上述過程,接下來就是導航到現實世界中的對象:一旦得到了現實世界中的 3D 位置坐標,就可以將其用作機器人的導航目標來初始化操作階段。導航模塊必須將機器人放置在手臂可觸到的范圍,以便機器人隨后可以操縱目標物體。
機器人對現實世界物體的抓握
與開放詞匯導航不同,為了完成抓取任務,算法需要與現實世界中的任意對象進行物理交互,這使得這部分變得更加困難。因此,本文選擇使用預訓練的抓取模型來生成現實世界中的抓取姿態,并使用 VLM 進行語言條件過濾。
本文使用的抓取生成模塊是 AnyGrasp,它在給定單個 RGB 圖像和點云的場景中使用平行鉗口夾具生成無碰撞抓取。
AnyGrasp 提供了場景中可能的抓握(圖 3 第 2 列),包括抓握點、寬度、高度、深度和抓握分數,該分數表示每次抓握中未校準的模型置信度。
使用語言查詢過濾抓握:對于從 AnyGrasp 獲得的抓握建議,本文采用 LangSam 過濾抓握。本文將所有建議的抓握點投影到圖像上,并找到落入對象掩模的抓握點(圖 3 第 4 列)。
抓握執行。一旦確定了最佳抓握(圖 3 第 5 列),就可以使用簡單的預抓握方法來抓握目標對象。
釋放或放置對象的啟發式模塊
抓握對象后,接下來就是將對象放置在什么地方。與 HomeRobot 的基線實現不同,該方法假設物體放下的位置是一個平坦的表面,本文進行了擴展,還涵蓋了凹物體,如水槽、箱子、盒子和袋子。
至此,導航、抓握和放置都有了,之后就可以直接將它們組合起來,該方法可以直接應用于任何新的家庭。對于新的家居環境,該研究可以在一分鐘內掃描房間。然后,只需不到五分鐘即可將其處理到 VoxelMap 中。一旦完成,機器人就可以立即放置在選定的場地并開始運行。從到達一個全新的環境到開始在其中自主操作,該系統平均需要不到 10 分鐘即可完成第一個取放任務。
實驗
在超過 10 個家庭實驗中,OK-Robot 在取放任務上實現了 58.5% 的成功率。
該研究還對 OK-Robot 進行了深入探索以更好地理解其故障模式。研究發現,故障的主要原因是操作故障,然而,仔細觀察后注意到失敗的原因是長尾造成的,如圖 4 所示,失敗的三大原因包括未能從語義記憶中檢索到要導航到的正確對象 (9.3%) ,從操作模塊獲得的姿態難以完成(8.0%),以及硬件原因(7.5%)。
由圖 5 可得,OK-Robot 中使用的 VoxelMap 略微優于其他語義記憶模塊。至于抓取模塊,AnyGrasp 明顯優于其他抓取方法,在相對規模上比最佳候選方法(自上而下抓取)的性能高出近 50%。然而,基于啟發式的算法,HomeRobot 的自上向下抓取擊敗了開源 AnyGrasp 基線和 Contact-GraspNet,這一事實表明構建真正的通用抓取模型仍然很困難。
圖 6 展示了 OK-Robot 在各個階段失敗的完整分析。由分析可得,當研究者對環境進行清理并刪除模糊物體時,導航準確率會上升,總錯誤率從 15% 下降到 12%,最后一直下降到 4%。同樣,當研究者清理環境中的雜物時,操作準確率也提高了,錯誤率從 25% 下降到 16%,最后下降到 13%。
了解更多內容,請參考原論文。