通過生成模擬釋放無限數據以實現機器人自動化學習

該工作推出RoboGen,這是一種生成機器人代理,可以通過生成模擬自動大規模學習各種機器人技能。 RoboGen 利用基礎模型和生成模型的最新進展。該工作不直接使用或調整這些模型來產生策略或低級動作,而是提倡一種生成方案,該方案使用這些模型自動生成多樣化的任務、場景和訓練監督,從而在最少的人類監督下擴大機器人技能的學習。

該工作的方法為機器人代理提供了一個自我引導的提議(propose)-生成(generate)-學習(learning)循環。

1、代理首先提出要開發的感興趣的任務和技能,然后通過使用適當的空間配置填充相關對象和資產來生成相應的模擬環境。

2、代理將propose的高級任務分解為子任務,選擇最佳學習方法(強化學習、運動規劃或軌跡優化),生成所需的訓練監督,然后學習策略以獲得提議的技能。

該工作的工作試圖提取大型模型中嵌入的廣泛且通用的知識,并將其轉移到機器人領域。該工作的完全生成pipeline可以重復查詢,產生與不同任務和環境相關的無窮無盡的技能演示。

介紹

這項工作的動機是機器人研究中一個長期存在且具有挑戰性的目標:賦予機器人多種技能,使它們能夠在各種非工廠環境中操作并為人類執行廣泛的任務。近年來,在教機器人各種復雜技能方面取得了令人矚目的進展:從可變形物體和流體操縱到動態和靈巧技能,如物體投擲、手部重新定向、踢足球甚至機器人跑酷。然而,這些技能仍然各自為政,視野相對較短,并且需要人為設計的任務描述和訓練監督。值得注意的是,由于現實世界數據收集的成本高昂且費力,許多這些技能都是在具有適當領域隨機化的模擬中進行訓練,然后部署到現實世界中。

在這里插入圖片描述

robogen可以自主生成任務和環境并且學習技能

事實上,模擬環境已經成為多樣化機器人技能學習背后的關鍵驅動力。與現實世界中的探索和數據收集相比,模擬中的技能學習具有以下幾個優點:1)模擬環境提供了特權低級狀態的訪問和無限的探索機會;2) 仿真支持大規模并行計算,能夠顯著加快數據收集速度,而無需依賴對機器人硬件和人力的大量投資;3)模擬探索允許機器人開發閉環策略和錯誤恢復能力,而現實世界的演示通常只提供專家軌跡。然而,模擬中的機器人學習也存在其自身的局限性:雖然在模擬環境中探索和練習具有成本效益,但構建這些環境需要大量的勞動力,需要繁瑣的步驟,包括設計任務、選擇相關且語義上有意義的資產、生成合理的場景布局和配置,以及制定訓練監督,例如獎勵或損失函數。創建這些組件并為該工作日常生活中遇到的無數任務構建個性化模擬設置的繁重任務是一項巨大的挑戰,即使在模擬世界中,這也極大地限制了機器人技能學習的可擴展性。

解決的兩個問題:1、機器人的技能各自孤立,且需要人為設計的任務描述和訓練監督;(2)在模擬器上進行訓練,雖然模擬器有很多優勢,但也在一定程度上限制了機器人技能學習的可擴展性。

有鑒于此,該工作提出了一種稱為生成模擬的范例,將模擬機器人技能學習、基礎大模型和生成模型的最新進展結合起來。利用最先進的基礎模型的生成能力,生成模擬旨在為模擬中各種機器人技能學習所需的所有階段生成信息:從高級任務和技能建議,到任務相關的場景描述,資產選擇和生成、策略學習選擇和訓練監督。得益于最新基礎模型中編碼的全面知識,以這種方式生成的場景和任務數據有可能與現實世界場景的分布非常相似。此外,這些模型還可以進一步提供分解的低級子任務,這些子任務可以通過特定領域的策略學習方法無縫處理,從而產生各種技能和場景的閉環演示。

本文的RoboGen結合模擬機器人技能學習、基礎大模型和生成模型,想達到目標:1、生成機器人技能學習過程中所需要的信息:任務和技能的生成、為相關的任務配備虛擬環境;2、將高級任務分解成低級子任務,策略選擇學習、生成訓練監督。

方法介紹

在這里插入圖片描述

robogen工作流程圖

RoboGen是一個自動化pipeline,利用最新基礎模型的嵌入式常識和生成功能來自動生成任務、場景和訓練監督,從而實現大規模的多樣化機器人技能學習。該工作在圖中展示了整個流程,由幾個完整的階段組成:任務提議、場景生成、訓練監督生成和技能學習。

任務提議:

RoboGen首先生成有意義的、多樣化的、高水平的任務供機器人學習。該工作沒有直接向 LLM 查詢任務建議,而是使用特定的機器人類型和從池中隨機采樣的對象來初始化系統。然后將提供的機器人和采樣對象信息用作 LLM 的輸入以執行任務建議。這樣的采樣過程確保了生成任務的多樣性:例如,四足機器人等腿式機器人能夠獲得多種運動技能,而機械臂操縱器在配對時有可能執行多種操縱任務與不同的采樣對象。此初始化步驟充當播種階段,為LLM可以進行調節并隨后進行推理和推斷以生成各種任務提供基礎,同時考慮到機器人和物體的可供性。除了基于對象的初始化之外,另一種選擇是采用基于示例的初始化,其中使用提供的機器人和從列表 11 個預定義任務中采樣的幾個示例任務來初始化查詢。

場景生成:

給定一個提議的任務,繼續生成相應的模擬場景,以學習完成該任務的技能。如圖 2 所示,根據任務描述生成場景組件和配置,并檢索或生成對象資產以隨后填充模擬場景。具體來說,場景組件和配置由以下元素組成:查詢要填充到場景中的相關資產、其物理參數(例如大小)、配置(例如初始關節角度)以及資產的整體空間配置。

訓練監督生成:

為了獲得解決所提出的任務的技能,需要對技能學習進行監督。為了促進學習過程,RoboGen 首先查詢 GPT-4 來規劃和分解生成的任務(可以是長范圍的)為較短范圍的子任務。關鍵假設是,當任務被分解為足夠短的子任務時,每個子任務都可以通過現有的算法(例如強化學習、運動規劃或軌跡優化)可靠地解決。

分解后,RoboGen隨后查詢 GPT-4 以選擇合適的算法來解決每個子任務。RoboGen中集成了三種不同類型的學習算法:強化學習和進化策略、基于梯度的軌跡優化、具有運動規劃的動作原語。每一種都適合不同的任務,例如,基于梯度的軌跡優化更適合學習涉及軟體的細粒度操作任務,例如將面團塑造成目標形狀;與運動規劃相結合的動作基元在解決任務時更加可靠,例如通過無碰撞路徑接近目標對象;強化學習和進化策略更適合接觸豐富且涉及與其他場景組件持續交互的任務,例如腿運動,或者當所需的動作不能通過離散的末端執行器姿勢簡單地參數化時,例如轉動烤箱的旋鈕。

該工作提供示例,讓 GPT-4 根據生成的子任務在線選擇使用哪種學習算法。考慮的動作原語包括抓取、接近和釋放目標對象。由于平行爪式夾具在抓取不同尺寸的物體時可能會受到限制,因此考慮使用配備吸盤的機器人操縱器來簡化物體抓取。抓取和接近基元的實現如下:首先隨機采樣目標對象或鏈接上的一個點,計算與采樣點法線對齊的夾具姿勢,然后使用運動規劃來找到一條無碰撞路徑達到目標夾具姿勢。達到姿勢后,繼續沿著法線方向移動,直到與目標物體接觸。

技能學習:

一旦獲得了所提出的任務所需的所有信息,包括場景組件和配置、任務分解以及分解的子任務的訓練監督,就能夠為機器人構建模擬場景,以學習完成任務所需的技能任務。

如上所述,結合使用多種技術進行技能學習,包括強化學習、進化策略、基于梯度的軌跡優化以及帶有運動規劃的動作原語,因為每種技術都適合不同類型的任務。對于對象操作任務,使用 SAC 作為學習技能的 RL 算法。觀察空間是任務中物體和機器人的低層狀態。強化學習策略的動作空間包括機器人末端執行器的增量平移或目標位置(由 GPT-4 確定)及其增量旋轉。使用開放運動規劃庫(OMPL)(Sucan 等人,2012)中實現的BIT* 作為動作基元的底層運動規劃算法。對于涉及多個子任務的長視野任務,采用順序學習每個子任務的簡單方案:對于每個子任務,運行 RL N = 8 次,并使用具有最高獎勵的最終狀態作為初始狀態為下一個子任務。對于運動任務,交叉熵方法(CEM)用于技能學習,發現它比 RL 更穩定、更高效。CEM中采用地面真值模擬器作為動態模型,需要優化的動作是機器人的關節角度值。對于軟體操縱任務,與 Adam 一起運行基于梯度的軌跡優化來學習技能,其中梯度由使用的完全可微模擬器提供。

實驗

RoboGen是一個自動化pipeline,可以無限查詢,并為不同的任務生成連續的技能演示流。在實驗中,旨在回答以下問題:

? 任務多樣性:RoboGen機器人技能學習提出的任務有多多樣化?

? 場景有效性:RoboGen是否生成與建議的任務描述相匹配的有效模擬環境?

? 訓練監督有效性:RoboGen 是否為任務生成正確的任務分解和訓練監督,從而誘導預期的機器人技能?

? 技能學習:在RoboGen中集成不同的學習算法是否可以提高學習技能的成功率?

? 系統:結合所有自動化階段,整個系統能否產生多樣化且有意義的機器人技能?

實驗設置

提出的系統是通用的,并且與特定的模擬平臺無關。然而,由于考慮了從剛性動力學到軟體模擬的廣泛任務類別,并且還考慮了技能學習方法,例如基于梯度的軌跡優化,這需要可微分的模擬平臺,因此使用 Genesis 來部署 RoboGen(一個模擬平臺)用于使用多種材料和完全可微分的機器人學習。對于技能學習,使用 SAC 作為 RL 算法。策略和 Q 網絡都是大小為 [256, 256, 256] 的多層感知器 (MLP),以 3e ? 4 的學習率進行訓練。對于每個子任務,使用 1M 環境步驟進行訓練。使用 BIT* 作為運動規劃算法,使用 Adam 用于軟體操縱任務的基于梯度的軌跡優化。
在這里插入圖片描述

長周期任務技能學習效果

評估指標和baseline:

任務多樣性:生成的任務的多樣性可以從許多方面來衡量,例如任務的語義、生成的模擬環境的場景配置、檢索到的對象資產的外觀和幾何形狀以及執行任務所需的機器人動作。對于任務的語義意義,通過計算生成的任務描述的 Self-BLEU 和嵌入相似度來進行定量評估,其中較低的分數表明更好的多樣性。與既定基準進行比較,包括 RLBench、Maniskill2、Meta-World和 Behaviour-100。對于對象資產和機器人動作,使用生成的模擬環境和所學機器人技能的可視化來定性評估 RoboGen。

場景有效性:為了驗證檢索到的對象是否符合任務要求,計算模擬場景中檢索到的對象的渲染圖像與對象的文本描述之間的 BLIP-2 分數。A)無對象驗證:我們不使用VLM來驗證檢索到的對象,而只是基于文本匹配來檢索對象。B) 無大小驗證:我們不使用 GPT-4 輸出的對象大小;相反,我們使用 Objaverse 或 PartNetMobility 中提供的默認資源大小。

實驗結果如下圖所示:
在這里插入圖片描述

robogen在7個任務上的結果

總結

該工作引入了RoboGen,這是一種生成代理,可以通過生成模擬自動大規模地提出和學習各種機器人技能。RoboGen 利用基礎模型的最新進展,在模擬中自動生成不同的任務、場景和訓練監督,為模擬中可擴展的機器人技能學習邁出了基礎一步,同時部署后只需要最少的人工監督。系統是一個完全生成的pipeline,可以無限查詢,產生大量與不同任務和環境相關的技能演示。RoboGen與后端基礎模型無關,并且可以使用可用的最新模型不斷升級。

當前的系統仍然存在一些局限性:1)對所學技能的大規模驗證(即所得技能是否真的通過文本描述解決了相應的任務)仍然是當前pipeline中的一個挑戰。未來可以通過使用更好的多模式基礎模型來解決這個問題。Ma還探索了使用環境反饋對生成的監督(獎勵函數)進行迭代細化,希望將來將其整合到范式中。2)當涉及到現實世界的部署時,范例本質上受到模擬與真實差距的限制。然而,隨著物理精確模擬的最新和快速發展,以及域隨機化和逼真的感官信號渲染等技術,預計模擬與真實的差距在未來將進一步縮小。3)系統假設,通過正確的獎勵函數,現有的策略學習算法足以學習所提出的技能。對于在本文中測試的策略學習算法(具有 SAC 的 RL 和 delta 末端執行器姿勢的動作空間,以及基于梯度的軌跡優化),觀察到它們仍然不夠魯棒,并且通常需要多次運行才能產生成功某些生成任務的技能演示。將更強大的策略學習算法集成到 RoboGen 中,例如那些具有更好動作參數化的算法,作為未來的工作。

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

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

相關文章

命運天注定?

羅翔老師經常說:人這一生,能自己決定的也許只有5%,有95%是你決定不了的。 不是說事在人為,人定勝天嗎? 哪吒也在電影的高潮喊出了:我命由我不由天。 聽上去很熱血,但實際咱們每個…

Java泛型:詳解使用技巧及舉例說明

Java泛型:詳解使用技巧及舉例說明 1. 引言 Java泛型是一項強大的編程概念,它允許我們編寫通用的代碼,在編寫代碼時不需要預先指定具體的數據類型。泛型的引入解決了在傳統的編程中需要頻繁進行類型轉換的問題,提高了代碼的安全性…

simulink MATLABFunction模塊中實時函數調用函數的使用

樣例 function Predyy matlabceshi(input, Time_s) input1 input; Time_s1 Time_s; Predyy ee(input1) mm(Time_s1); end 上面是主要部分,下面是被調用部分 function A ee(input1) A input1 * 100; end function B mm(Time_s1) B Time_s1 * 100; end 模型…

算法競賽---反悔貪心

反悔貪心 Work Scheduling G 什么是返回貪心呢&#xff0c;就是先選擇&#xff0c;遇到更好的之后在反悔選擇更好的&#xff0c;這是符合貪心的邏輯的。 #include <bits/stdc.h> // https://www.luogu.com.cn/problem/P2949 using namespace std; struct node {int d,…

Linux(ubuntu)利用ffmpeg+qt設計rtsp_rtmp流媒體播放器(完全從0開始搭建環境進行開發)

一、前言 從0開始搭建Linux下Qt、ffmpeg開發環境。 從安裝虛擬機開始、安裝Linux(Ubuntu)系統、安裝Qt開發環境、編譯ffmpeg源碼、配置ffmpeg環境、編寫ffmpeg項目代碼、完成項目開發。 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開發 完全從0開始搭建環境進行開…

公務員國考省考小白需知

文章目錄&#xff1a; 一&#xff1a;分類 1.國考 2.省考 二&#xff1a;必備途徑 1.相關網站 1.1 官網 1.1.1 必須知道的 1.1.2 比較好用的 1.1.3 事業單位的 1.2 機構 ??1.3 時事 ??1.4 資源 1.5 題庫 1.6 真題 ?2.相關公主號 3.應用 4.群聊如何找 三…

笙默考試管理系統-MyExamTest----codemirror(53)

笙默考試管理系統-MyExamTest----codemirror&#xff08;53&#xff09; 目錄 笙默考試管理系統-MyExamTest----codemirror&#xff08;51&#xff09; 一、 笙默考試管理系統-MyExamTest----codemirror 二、 笙默考試管理系統-MyExamTest----codemirror 三、 笙默考試…

【TwinCAT學習筆記 1】TwinCAT開發環境搭建

寫在前面 作為技術開發人員&#xff0c;開啟任何一項開發工作之前&#xff0c;首先都要搭建好開發環境&#xff0c;所謂磨刀不誤砍材工&#xff0c;一定要有耐心&#xff0c;一次不行卸載再裝。我曾遇到過一個學生&#xff0c;僅搭建環境就用了兩周&#xff0c;這個過程也是一…

ATM的轉賬

【 1 】明確我們要實現的功能 # 用戶功能菜單 # 1.注冊 # 2.登陸 # 3.取款 # 4.轉賬 # 5.充值余額 # 6.查看流水 # 7.查看銀行信息(查看自己…

基于Redis在定時任務里判斷其他定時任務是否已經正常執行完的方案

執行的定時任務是基于其他定時任務計算得到的結果基礎上做操作的&#xff0c;那么如何來確定其他存在數據依賴的定時任務已經執行完成呢&#xff1f; 在分布式環境里&#xff0c;可通過集群的redis來解決這個問題&#xff1a; 即&#xff0c;在跑批任務開始時&#xff0c;將任…

SSD數據在寫入NAND之前為何要隨機化?-part2

接part1介紹&#xff1a; 如何達到這個目的&#xff1f;業內常用的是對寫入數據的數據進行隨機化處理&#xff0c;這部分主要在SSD控制器中通過硬件實現。 上圖b/c&#xff1a;在控制器芯片通過硬件方式實現隨機化的讀寫流程&#xff0c;這個也是業內通常做法。隨機化處理是在寫…

【K8S in Action】服務:讓客戶端發現pod 并與之通信(1)

服務是一種為一組功能相同的 pod 提供單一不變的接入點的資源。當服務存在時&#xff0c;它的 IP 地址和端口不會改變。 客戶端通過 IP 地址和端口號建立連接&#xff0c; 這些連接會被路由到提供該服務的任意一個 pod 上。 pod 是短暫&#xff0c;會刪除增加&#xff0c;調度…

Android 13 Settings藍牙列表卡頓問題排查及優化過程

一.背景 此問題是藍牙列表界面息屏后再點擊亮屏藍牙界面卡住,劃不動也不能返回,在人多的時候(附近開啟的藍牙設備過多的時候)會卡住大概四五秒才能滑動. 優化前效果見資源: 二.查找耗時點 根據Android Studio的Profiler工具進行排查,查找主線程時間線比較長的方法,如下:…

IDEA遠程調試與JDWP調試端口RCE漏洞

文章目錄 前言Docker遠程調試Java調試原理遠程調試實踐 JDWP端口RCE調試端口探測調試端口利用 總結 前言 在對一些 Java CVE 漏洞的調試分析過程中&#xff0c;少不了需要搭建漏洞環境的場景&#xff0c;但是本地 IDEA 搭建的話既麻煩&#xff08;通過 pom.xml 導入各種漏洞組…

面向對象編程教程

面向對象編程是一種基于對象的編程范型&#xff0c;它將程序中的數據和操作數據的方法看作一個整體&#xff0c;通過封裝、繼承和多態等機制來實現代碼的復用和可擴展性。面向對象編程也是現代軟件開發的主流編程范式之一&#xff0c;廣泛應用于各種編程語言中&#xff0c;如C、…

Zookeeper系統性學習-應用場景以及單機、集群安裝

Zookeeper 是什么&#xff1f; Zookeeper 為分布式應用提供高效且可靠的分布式協調服務&#xff0c;提供了諸如統一命名服務、配置管理和分布式鎖等分布式的基礎服務。在解決分布式數據一致性方面&#xff0c;ZooKeeper 并沒有直接采用 Paxos 算法&#xff0c;而是采用了名為 …

Android Studio Gradle下載慢解決方法

Android Studio Gradle下載慢解決方法 最近在練習模型部署&#xff0c;主要是在手機端部署&#xff0c;所以使用到了Android Studio&#xff0c;但是在創建項目的時候&#xff0c;一致在下載gradle&#xff0c;而且網速還很慢&#xff0c;不對&#xff0c;是極慢哪種&#xff0…

MQTT發布、訂閱和取消訂閱

在本文中&#xff0c;我們將深入了解MQTT發布、訂閱和取消訂閱相關的內容。如果你剛接觸發布/訂閱模型&#xff0c;建議閱讀本專欄之前的文章。 什么是MQTT發布消息 在MQTT中&#xff0c;一個客戶端連接到代理&#xff08;broker&#xff09;之后可以立即發布消息。這些消息依…

NetSuite預算管理實踐

NetSuite預算相關的原生功能有兩個&#xff1a; 一個是Expense Commitments And Budget Validation這個SuiteApp&#xff0c;我們在一年前寫過一篇文章介紹過。它強調預算的過程控制&#xff0c;但由于功能很有限&#xff0c;沒有實際用處。 NetSuite Budget功能包_netsuite …

Vue3 pinia的基本使用

pinia的使用跟vuex很像&#xff0c;去除了很多沒用的api&#xff0c;寫法有兩種&#xff0c;一種老式的選項式api還有一種組合式api&#xff0c;用哪種根據自己喜好來&#xff0c;以下示例為組合式api 更多教程參考官網&#xff1a;pinia官網https://pinia.vuejs.org/zh/ 安裝…