人形機器人CMU-ASAP算法理解

一原文

在第一階段,用重定位的人體運動數據在模擬中預訓練運動跟蹤策略。

在第二階段,在現實世界中部署策略并收集現實世界數據來訓練一個增量(殘差)動作模型來補償動態不匹配。

,ASAP 使用集成到模擬器中的增量動作模型對預訓練策略進行微調,以有效地與現實世界的動態保持一致。

與 SysID、DR 和增量動態學習基線相比,減少跟蹤誤差。ASAP 實現以前難以實現的高度敏捷運動,展示增量動作學習在連接模擬和現實世界動態方面的潛力。

實現人形機器人的敏捷全身技能仍然是一項根本挑戰,這不僅是因為硬件限制,還因為模擬動力學與現實世界物理之間的不匹配。

出現了三種主要方法來彌合動力學不匹配:系統識別 (SysID) 方法、域隨機化 (DR) 和學習動力學方法。

SysID 方法直接估計關鍵物理參數,例如電機響應特性、每個機器人連桿的質量和地形特性。

DR 方法依賴于隨機化模擬參數 [87, 68];但這可能導致過于保守的策略 [26]

彌合動態不匹配的另一種方法是使用現實世界數據學習現實世界物理的動態模型。雖然這種方法已經在無人機[81]和地面車輛[97]等低維系統中取得了成功,但其對人形機器人的有效性仍未得到探索。

二 步驟

(a) 從視頻中捕捉人體動作。(b) 使用 TRAM [93],以 SMPL 參數格式重建 3D 人體運動。(c) 在模擬中訓練強化學習 (RL) 策略以跟蹤 SMPL 運動。(d) 在模擬中,將學習的 SMPL 運動重定位到 Unitree G1 人形機器人。(e) 訓練有素的 RL 策略部署在真實機器人上,在物理世界中執行最終運動。

(a):從2D視頻幀中恢復3D人體姿態和動作序列,計算機視覺的方法,有很多現有的模型。需要動作優化和后處理,例如限位、例如瞬時高速移動的濾波,去噪等等。

(b):時序感知的3D姿態估計方法。TRAM 是一個 ??“視頻動作翻譯器”??,它把普通視頻里的人物動作,轉換成計算機能懂的 ??SMPL數字人參數??,生成3D動畫。(1標記出每幀的關節位置,2 根據前后幀的關系,推測關節在3D空間中的位置,??匹配數字人(SMPL)??:調整SMPL模型的 ??“姿勢旋鈕”??(72個參數控制關節旋轉)和 ??“體型旋鈕”??(10個參數控制高矮胖瘦),讓3D數字人的動作和視頻里真人一致。)

TRAM [93] 的核心創新在于 ??聯合優化時序連續性與SMPL參數空間??,使用HRNet或ViTPose檢測視頻每一幀的2D人體關鍵點(17或25點),

最終得到一串 ??SMPL參數??,導入到3D軟件(如Blender)就能看到和視頻一樣的數字人動畫。

TRAM 的聰明之處是,像“腦補”連續動作,避免突然卡頓,自動過濾不可能的動作(比如膝蓋不會往后彎)。

基于模型的數據清理:讓一個 ??數字人(SMPL模型)?? 在虛擬世界里做這些動作。

MaskedMimic ,:一個 ??基于物理的動作修正器??,用于修復3D人體動作中的物理錯誤(如穿模、反關節、速度突變等)。主要配合SMPL動作數據(如TRAM的輸出)和物理模擬器(如IsaacGym)使用。

c) 將 SMPL 運動重定位為機器人運動:階段1:優化體型(β′調整),讓SMPL模型的“骨架”盡量接近機器人。

階段2:優化動作(θ和p調整),在匹配的體型下,讓動作軌跡也適合機器人。固定優化后的β′??,只調動作參數(姿勢θ + 根節點平移p)。

機器人殘差學習:這些模型可以改進初始控制器的動作,其他方法利用殘差組件來糾正動力學模型中的不準確性。

三 理解

1?如何進行模仿學習。(通過強化學習獎勵的形式學習

不只是各個關節的位置。還包括:

主要任務是跟蹤腳的位置,

實時跟蹤用戶 ??頭顯(1點) + 雙手控制器(2點)?? 的空間位置,共3個關鍵點(故稱"3-point")?

除此之外,當然加入一些正則化和懲罰措施。

殘差模型。

直接將預訓練的策略,部署到真實機器人上,

記錄真實的狀態-動作對。 其中,狀態,

包括基座位置,基座的線速度,基座的線加速度、基座的角速度、關節位置、關節速度。

其中,基座的位置、線速度是無法直接獲得的。

殘差模型:下一狀態= F_sim(當前狀態,真實action, + 殘差action)

理解:假設在仿真中按相位直接給真實的action軌跡,那么表現的動作和真實不像,和原策略的動作也不像。如果要是和真機表現一致的話,也就說明沒有sim和real差了。

加入殘差action讓狀態表現的和原策略一樣,這毫無意義,因為這個優化目標是(殘差為原策略仿真action 和真機action的差)

但是,如果殘差action能讓仿真中的表現和現實一樣的話?,那么就量化了仿真與現實的差異,也就是殘差模型代表了現實和仿真的差異。所以優化目標是:在訓練殘差模型時,讓機器人的環境反饋狀態和現實采集的狀態一致。

所以ASAP是確切的real2sim,將現實的策略部署到仿真環境中。如果只訓練一個策略讓仿真和現實狀態一致,就變成了克隆學習,而采集現實的action是獲取殘差action的關鍵,假設采集的數據足夠多,那么其實是具有足夠泛性應用到其他動作的。

可以直接在原策略- 殘差策略,輸出到真機(注意,是減不是加)。

論文:固定殘差模型,在原策略action下加入殘差策略action,如果直接play,那在仿真中的表現要比原策略差,但應該是偏向于真實表現一側的。

再訓練一下原策略,假設訓練的足夠充分,那么新的策略 = 原策略 - 殘差策略,因為優化目標和最初是一致的。

新的策略+殘差策略在仿真中表現良好,然后不要殘差策略,直接將新策略部署到真機。

微調的原因是:殘差策略是從真機軌跡上得到的,但真機軌跡又不太好,存在過擬合的問題。

舉例子:仿真策略訓練到10度,部署真機到9度,采集真機狀態和動作,動作放到仿真中去,可能是9度左右,可能是10度左右度,? 假設是10.5, 原策略上加一個殘差策略,按仿真狀態和真機狀態一致對殘差策略進行訓練,那么這個策略最終的action效果是-1.5度,這代表了仿真和現實差異。?

方法1 :直接部署,原策略-殘差策略 到真機,真機角度比原來更接近10度。

方法2:ASAP,原策略+殘差策略(凍結),訓練原策略,獎勵與最初一致。若完全充分訓練,新策略 = 原策略-殘差策略,此時部署新策略到真機。也可控制訓練程度,只對原策略進行微調。

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

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

相關文章

next.js刷新頁面時二級菜單展開狀態判斷

在 Next.js 中保持二級菜單刷新后展開狀態的解決方案 在 Next.js 應用中,當頁面刷新時保持二級菜單的展開狀態,可以通過以下幾種方法實現: 方法1:使用 URL 參數保存狀態(推薦) import { useRouter } from n…

網絡基礎DAY13-NAT技術

NAT技術internet接入方式:ADLS技術:能夠將不同設備的不同信號通過分離器進行打包之后再internet中傳輸,到另一端的分離器之后再進行分離。傳輸到不同的設備中去。常見光纖接入方式internet接入認證方式:PPPoE:先認證再…

HBuilderX中設置 DevEco Studio路徑,但是一直提示未安裝

前言: HBuilderX中設置 DevEco Studio路徑,但是一直提示未安裝。 報錯信息: 檢測到鴻蒙工具鏈,請在菜單“工具->設置->運行配置”中設置鴻蒙開發者工具路徑為 DevEco Studio 的安裝路徑,請參考 報錯原因…

什么是GNN?——聚合、更新與循環

在傳統的深度學習中,卷積神經網絡(CNN)擅長處理網格結構數據(如圖像),循環神經網絡(RNN)擅長處理序列數據(如文本)。但當數據以圖的形式存在時(如…

深入解析 Django REST Framework 的 APIView 核心方法

在 Python 3 中,Django 的 APIView 類是 Django REST Framework(DRF)中用于構建 API 視圖的核心基類。它提供了一個靈活的框架來處理 HTTP 請求,并通過一系列方法支持認證、權限檢查和請求限制等功能。self.perform_authenticatio…

神經網絡——卷積層

目錄 卷積層介紹 Conv2d 卷積動畫演示 卷積代碼演示 綜合代碼案例 卷積層介紹 卷積層是卷積神經網絡(CNN)的核心組件,它通過卷積運算提取輸入數據的特征。 基本原理 卷積層通過卷積核(過濾器)在輸入數據&…

神經網絡——線性層

在機器學習中,線性層(Linear Layer) 是一種基礎的神經網絡組件,也稱為全連接層(Fully Connected Layer) 或密集層(Dense Layer)。 其嚴格的數學定義為:對輸入數據執行線…

大模型高效適配:軟提示調優 Prompt Tuning

The Power of Scale for Parameter-Efficient Prompt Tuning ruatishi 軟提示向量 具體是什么 《The Power of Scale for Parameter-Efficient Prompt Tuning》中增加的部分是“軟提示(soft prompts)”,這是一種針對特定下游任務,添加到輸入文本中的可調參數序列。它與傳統…

https正向代理 GoProxy

背景: 在安全隔離的內網環境中,部署于內網的應用如需調用公網第三方接口(如支付、短信),可通過正向代理服務實現訪問。 GoProxy 下載: https://github.com/snail007/goproxy/releases 使用文檔&#xff…

Java IO流體系詳解:字節流、字符流與NIO/BIO對比及文件拷貝實踐

一、字節流與字符流:如何選擇? 1.1 核心區別特性字節流字符流處理單位字節(8位)字符(16位Unicode)適用場景二進制文件(圖片/視頻)文本文件(TXT/CSV)編碼處理需…

QT6 源,七章對話框與多窗體(5) 文件對話框 QFileDialog 篇二:源碼帶注釋

&#xff08;13&#xff09;本源代碼定義于頭文件 qfiledialog . h &#xff1a; #ifndef QFILEDIALOG_H #define QFILEDIALOG_H#include <QtWidgets/qtwidgetsglobal.h> #include <QtCore/qdir.h> #include <QtCore/qstring.h> #include <QtCore/qurl.h…

關于Ajax的學習筆記

Ajax概念&#xff1a;是一門使用了js語言&#xff0c;可以使用于Javaweb&#xff0c;實現前端代碼和后端代碼連結的的一種異步同步&#xff08;不需要等待服務器相應&#xff0c;就能夠發送第二次請求&#xff09;的一種技術&#xff0c;它主要用于網頁內容的局部刷新&#xff…

The Missing Semester of Your CS Education 學習筆記以及一些拓展知識(三)

文章目錄The Missing Semester of Your CS Education 學習筆記以及一些拓展知識Vim編輯器筆記部分程序員常用的編輯器Vim的模式Vim的普通模式Vim的插入模式Vim的可視模式Vim的替換模式Vim的命令行模式Vim的高級功能文本對象宏寄存器緩沖區標記代碼折疊Vim的常用配置Vim的常用插…

PyTorch常用的簡單數學運算

一、基礎算術運算1. 逐元素運算a torch.tensor([1, 2, 3]) b torch.tensor([4, 5, 6])# 加減乘除 a b # [5, 7, 9] a - b # [-3, -3, -3] a * b # [4, 10, 18] a / b # [0.25, 0.4, 0.5]# 冪運算、平方根 a ** 2 # [1, 4, 9] torch.sqrt(a) # [1.0, 1.414, 1.732]2. 標…

C++ Lambda 表達式詳解:從基礎到實戰

Lambda 表達式是 C11 引入的重要特性&#xff0c;它允許我們在代碼中定義匿名函數&#xff0c;極大地簡化了代碼編寫&#xff0c;尤其是在使用 STL 算法和多線程編程時。本文將詳細介紹 Lambda 表達式的語法、特性及實際應用場景。什么是 Lambda 表達式&#xff1f;Lambda 表達…

Spring Boot注解詳解

文章目錄前言1. 核心啟動注解SpringBootApplicationEnableAutoConfigurationSpringBootConfiguration2. 組件注解Component及其衍生注解ComponentServiceRepositoryControllerRestController3. 依賴注入注解AutowiredQualifierPrimary4. Web相關注解請求映射注解RequestMapping…

Web開發:ABP框架12——中間件Middleware的創建和使用

一、簡介中間件可以用于鑒權、日志&#xff0c;攔截器可以用于指定方法或url的業務邏輯處理&#xff0c;兩者分工不同&#xff0c;實現效果相似&#xff0c;先執行中間件&#xff0c;后執行攔截器&#xff0c;再到WebAPI接口。二、示例一個Token驗證中間件三、代碼1.Startup.cs…

京東商品評論如何獲取?API接口實戰指南

一、API接入準備1. 注冊開發者賬號訪問京東開放平臺&#xff1a;前往京東開放平臺注冊賬號&#xff0c;完成企業或個人實名認證。創建應用&#xff1a;在控制臺創建應用&#xff0c;獲取App Key和App Secret&#xff08;用于簽名認證&#xff09;。2. 申請API權限搜索接口&…

leetcode-sql-627變更性別

題目&#xff1a; Salary 表&#xff1a; --------------------- | Column Name | Type | --------------------- | id | int | | name | varchar | | sex | ENUM | | salary | int | --------------------- id 是這個表的主鍵…

【學習路線】C#企業級開發之路:從基礎語法到云原生應用

一、C#基礎入門&#xff08;1-2個月&#xff09; &#xff08;一&#xff09;開發環境搭建Visual Studio安裝配置 Visual Studio Community&#xff1a;免費版本&#xff0c;功能完整Visual Studio Code&#xff1a;輕量級&#xff0c;跨平臺支持JetBrains Rider&#xff1a;專…