【論文閱讀】RMA: Rapid Motor Adaptation for Legged Robots

  • Paper: https://arxiv.org/abs/2107.04034
  • Project: https://ashish-kmr.github.io/rma-legged-robots/
  • Code: https://github.com/antonilo/rl_locomotion
  • 訓練環境:Raisim

1.方法

RMA(Rapid Motor Adaptation)算法通過兩階段訓練實現四足機器人在復雜環境中的快速適應。

在這里插入圖片描述

1.1.第一階段:基礎策略訓練

在第一階段,算法引入了一個17維的特權觀測向量( e t e_t et?),該向量包含了以下信息:

  • 3維的質量和質心位置:描述機器人整體的質量分布。
  • 12維的電機強度:表示每個關節電機的最大輸出能力。
  • 1維的摩擦系數:描述機器人與地面之間的摩擦特性。
  • 1維的相對地面高度:表示機器人當前所處地形的相對高度。

這些特權觀測信息雖然對訓練過程非常有幫助,但在實際部署中無法直接獲取。這些信息首先通過一個環境因素編碼器( μ \mu μ) 被壓縮為一個8維的潛在空間向量 ( z t z_t zt?)。壓縮的好處包括:

  1. 降低維度:減少計算復雜度,提高訓練效率。
  2. 提取關鍵特征:提取對適應性最有幫助的特征,減少噪聲和冗余信息。
  3. 增強泛化能力:通過壓縮,潛在空間向量更能捕捉到環境變化的關鍵特征,從而在不同環境中具有更好的泛化能力。

策略網絡 ( π \pi π) 的輸入包括:

  • 30維的本體觀測:包含機器人的關節位置、速度、姿態等信息。
  • 12維的歷史動作:包含前一時刻的動作信息。
  • 8維的潛在空間向量 ( z t z_t zt?):由環境因素編碼器生成。

策略網絡的輸出為12維的關節期望位置指令 a = q ^ ∈ R 12 a=\hat q \in \mathbb R^{12} a=q^?R12,這些指令通過PD控制器被轉換為關節力矩 ( τ \tau τ),驅動機器人運動。
τ = K p ( q ^ ? q ) + K d ( 0 ? q ˙ ) \tau = K_p(\hat q - q) + K_d (0-\dot q) τ=Kp?(q^??q)+Kd?(0?q˙?)

第一階段的訓練目標是最大化策略網絡在模擬環境中的累積獎勵。通過強化學習(PPO算法),策略網絡和環境因素編碼器被聯合訓練,以適應各種模擬環境中的復雜地形和動態條件。

1.2.第二階段:自適應模塊訓練

第一階段訓練得到的策略網絡無法直接部署到實際機器人上,因為實際機器人無法獲取17維的特權觀測信息( e t e_t et?),也無法獲取由環境因素編碼器生成的8維潛在空間向量 ( z t z_t zt?)。為了解決這個問題,RMA算法引入了一個自適應模塊網絡 ( ? \phi ?),用于在運行時估計特權信息。

自適應模塊網絡的輸入是機器人最近50組歷史狀態和動作,這些信息被用來估計特權觀測經過壓縮后的8維潛在空間向量 ( z ^ t \hat{z}_t z^t?)。自適應模塊網絡由一個1維卷積神經網絡(CNN)和一個多層感知機(MLP)組成,通過監督學習進行訓練。具體來說,自適應模塊網絡的訓練目標是最小化估計的潛在空間向量 ( z ^ t \hat{z}_t z^t?) 與真實潛在空間向量 ( z t z_t zt?) 之間的均方誤差(MSE)。

第二階段訓練得到的自適應模塊網絡可以與基礎策略網絡一起部署到實際機器人上。在實際運行中,自適應模塊網絡以10Hz的頻率更新潛在空間向量 ( z ^ t \hat{z}_t z^t?) ,而基礎策略網絡則以100Hz的頻率根據當前狀態、歷史動作和最新的潛在空間向量生成關節期望位置指令。

2.關鍵創新點

  • 異步執行設計:基礎策略網絡和自適應模塊網絡以不同的頻率運行(100Hz和10Hz),并且異步執行。這種設計使得算法能夠在計算資源有限的機器人上高效運行,同時保證了實時性和適應性。
  • 無需微調:RMA算法完全在模擬環境中訓練,無需在現實世界中進行任何微調或數據收集,即可直接部署。
  • 快速適應:通過自適應模塊網絡在運行時快速估計特權信息,RMA算法能夠在幾秒鐘內適應新的環境條件,如不同的地形、負載和摩擦系數。

3.實驗驗證

RMA算法在多種復雜地形上進行了實驗驗證,包括沙地、泥土、草地、混凝土、鵝卵石、樓梯等。實驗結果表明,RMA算法在這些復雜環境中的成功率和適應性優于基線方法,展示了其在實際應用中的潛力。

4.總結

RMA算法通過兩階段訓練,第一階段在模擬環境中訓練基礎策略,第二階段訓練自適應模塊以估計特權信息。通過將17維特權觀測壓縮為8維潛在空間,算法能夠更高效地提取關鍵特征,減少計算復雜度,增強泛化能力。這種設計使得算法能夠在實際機器人上快速適應新環境,無需額外的微調或數據收集。

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

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

相關文章

QQ風格客服聊天窗口

QQ風格客服聊天窗口 展示引入方式 展示 引入方式 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&g…

【家政平臺開發(37)】家政平臺蛻變記:性能優化與代碼重構揭秘

本【家政平臺開發】專欄聚焦家政平臺從 0 到 1 的全流程打造。從前期需求分析,剖析家政行業現狀、挖掘用戶需求與梳理功能要點,到系統設計階段的架構選型、數據庫構建,再到開發階段各模塊逐一實現。涵蓋移動與 PC 端設計、接口開發及性能優化,測試階段多維度保障平臺質量,…

PostgreSQL 的 COPY 命令

PostgreSQL 的 COPY 命令 PostgreSQL 的 COPY 命令是高效數據導入導出的核心工具&#xff0c;性能遠超常規 INSERT 語句。以下是 COPY 命令的深度解析&#xff1a; 一 COPY 命令基礎 1.1 基本語法對比 命令類型語法示例執行位置文件訪問權限服務器端COPYCOPY table FROM /p…

Sa-Token 自定義插件 —— SPI 機制講解(一)

前言 博主在使用 Sa-Token 框架的過程中&#xff0c;越用越感嘆框架設計的精妙。于是&#xff0c;最近在學習如何給 Sa-Token 貢獻自定義框架。為 Sa-Token 的開源盡一份微不足道的力量。我將分三篇文章從 0 到 1 講解如何為 Sa-Token 自定義一個插件&#xff0c;這一集將是前沿…

論文精度:基于LVNet的高效混合架構:多幀紅外小目標檢測新突破

論文地址:https://arxiv.org/pdf/2503.02220 目錄 一、論文背景與結構 1.1 研究背景 1.2 論文結構 二、核心創新點解讀 2.1 三大創新突破 2.2 創新結構原理 2.2.1 多尺度CNN前端 2.2.2 視頻Transformer設計 三、代碼復現指南 3.1 環境配置 3.2 數據集準備 3.3 訓…

解決 Ubuntu 上 Docker 安裝與網絡問題:從禁用 IPv6 到配置代理

解決 Ubuntu 上 Docker 安裝與網絡問題的實踐筆記 在 Ubuntu&#xff08;Noble 版本&#xff09;上安裝 Docker 時&#xff0c;我遇到了兩個常見的網絡問題&#xff1a;apt-get update 失敗和無法拉取 Docker 鏡像。通過逐步排查和配置&#xff0c;最終成功運行 docker run he…

指針的進階2

六、函數指針數組 字符指針數組 - 存放字符指針的數組 char* arr[10] 整型指針數組 - 存放整型指針的數組 int* arr[10] 函數指針數組 - 存放函數指針的數組 void my_strlen() {} int main() {//指針數組char* ch[5];int arr[10] {0};//pa是是數組指針int (*pa)[10] &…

速盾:高防CDN節點對收錄有影響嗎?

引言 搜索引擎收錄是網站運營中至關重要的環節&#xff0c;它直接影響著網站的曝光度和流量。近年來&#xff0c;隨著網絡安全威脅的增加&#xff0c;許多企業開始采用高防CDN&#xff08;內容分發網絡&#xff09;來保護其網站免受DDoS攻擊和其他形式的網絡攻擊。然而&#x…

2025藍橋杯省賽C/C++研究生組游記

前言 至少半年沒寫算法題了&#xff0c;手生了不少&#xff0c;由于python寫太多導致行末老是忘記打分號&#xff0c;printf老是忘記寫f&#xff0c;for和if的括號也老是忘寫&#xff0c;差點連&&和||都忘記了。 題目都是回憶版本&#xff0c;可能有不準確的地方。 …

Quill富文本編輯器支持自定義字體(包括新舊兩個版本,支持Windings 2字體)

文章目錄 1 新版&#xff08;Quill2 以上版本&#xff09;2 舊版&#xff08;Quill1版本&#xff09; 1 新版&#xff08;Quill2 以上版本&#xff09; 注意&#xff1a;新版設置 style"font-family: Wingdings 2" 這種帶空格的字體樣式會被過濾掉&#xff0c;故需特…

dbt:新一代數據轉換工具

dbt&#xff08;Data Build Tool&#xff09;一款專為數據分析和工程師設計的開源工具&#xff0c;專注于 ETL/ELT 流程的數據轉換&#xff08;Transform&#xff09;環節&#xff0c;幫助用戶以高效、可維護的方式將原始數據轉換為適合分析的數據模型。 用戶只需要編寫查詢&am…

【家政平臺開發(39)】解鎖家政平臺測試秘籍:計劃與策略全解析

本【家政平臺開發】專欄聚焦家政平臺從 0 到 1 的全流程打造。從前期需求分析,剖析家政行業現狀、挖掘用戶需求與梳理功能要點,到系統設計階段的架構選型、數據庫構建,再到開發階段各模塊逐一實現。涵蓋移動與 PC 端設計、接口開發及性能優化,測試階段多維度保障平臺質量,…

Java中的Map vs Python字典:核心對比與使用指南

一、核心概念 1. 基本定義 Python字典&#xff08;dict&#xff09; &#xff1a;動態類型鍵值對集合&#xff0c;語法簡潔&#xff0c;支持快速查找。Java Map&#xff1a;接口&#xff0c;常用實現類如 HashMap、LinkedHashMap&#xff0c;需聲明鍵值類型&#xff08;泛型&…

C語言基礎之數組

1. 一維數組的創建和初始化 數組的創建 數組是一組相同類型元素的集合。 數組的創建方式&#xff1a; type_t arr_name [const_n]; //type_t 是指數組的元素類型 //const_n是一個常量表達式&#xff0c;用來指定數組的大小 數組創建的實例&#xff1a; //代碼1int arr1[10]; …

虛幻引擎5-Unreal Engine筆記之“將MyStudent變量設置為一個BP_Student的實例”這句話如何理解?

虛幻引擎5-Unreal Engine筆記之“將MyStudent變量設置為一個BP_Student的實例”這句話如何理解&#xff1f; code review! 文章目錄 虛幻引擎5-Unreal Engine筆記之“將MyStudent變量設置為一個BP_Student的實例”這句話如何理解&#xff1f;理解這句話的關鍵點1.類&#xff08…

提示詞 (Prompt)

引言 在生成式 AI 應用中&#xff0c;Prompt&#xff08;提示&#xff09;是與大型語言模型&#xff08;LLM&#xff09;交互的核心輸入格式。Prompt 的設計不僅決定了模型理解任務的準確度&#xff0c;還直接影響生成結果的風格、長度、結構與可控性。隨著模型能力和應用場景…

十二、C++速通秘籍—靜態庫,動態庫

上一章節&#xff1a; 十一、C速通秘籍—多線程-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/147055932?spm1001.2014.3001.5502 本章節代碼&#xff1a; cpp2/library CuiQingCheng/cppstudy - 碼云 - 開源中國https://gitee.com/cuiqingcheng/cppst…

什么是繼承?js中有哪兒些繼承?

1、什么是繼承&#xff1f; 繼承是面向對象軟件技術中的一個概念。 2、js中有哪兒些繼承&#xff1f; js中的繼承有ES6的類class的繼承、原型鏈繼承、構造函數繼承、組合繼承、寄生組合繼承。 2.1 ES6中類的繼承 class Parent {constructor() {this.age 18;} }class Chil…

Linux進程通信入門:匿名管道的原理、實現與應用場景

Linux系列 文章目錄 Linux系列前言一、進程通信的目的二、進程通信的原理2.1 進程通信是什么2.2 匿名管道通訊的原理 三、進程通訊的使用總結 前言 Linux進程間同通訊&#xff08;IPC&#xff09;是多個進程之間交換數據和協調行為的重要機制&#xff0c;是我們學習Linux操作系…