世界は優しい
首页博客关于

Site

世界は優しい

世界很温柔,我们都在努力变得更好。

Navigation

  • 首页
  • 博客
  • 关于

Connect

  • GitHub
  • 作者

© 2026 ZZC. 本站内容以 CC BY-NC-SA 4.0 协议发布。

Built with Next.js · Tailwind CSS

Folders

课程介绍与评分Lec1: IntroductionLec2: Lexical AnalysisLec3: ParsingLec4: Abstract SyntaxLec5: Semantic AnalysisLec6: Activation RecordsLec7: Translate to Intermediate CodeLec8: Basic Blocks and TracesLec9: 指令选择Lec10: Liveness Analysis
Lec0: 课程介绍与成绩Lec1: IntroductionLec2: Operating-System StructuresLec3: ProcessesLec4: Threads(多线程编程)Lec5: CPU SchedulingLec6: 进程同步Lec7: DeadlocksLec8: Main MemoryLec9: Virtual MemoryLec10: File-System InterfaceLec11: File System ImplementationLec12: Mass-Storage System
Lec1: Basic Concepts in Reinforcement LearningLec2: Bellman EquationLec3: Bellman Optimality EquationLec4: Value Iteration & Policy IterationLec5: Monte Carlo Learning
首页
ManiGaussian 论文笔记ManiGaussian++ 论文笔记
AMP: 对抗动作先验替代复杂奖励函数DeepMimic: 从动作捕捉数据学习物理仿真角色技能DreamWaQ: 纯本体感知的四足鲁棒行走Imitating Animals: 从动物模仿到真实四足敏捷运动MoE-Loco: 多任务腿足运动的专家混合架构Multi-AMP: 多重对抗动作先验学习高级技能PIE: Proprioception with Imagination for ParkourRMA: Rapid Motor Adaptation for Legged Robots
论文阅读
Lec1: 五十音Lec2: 日语声调Lec3: 浊音和长音
Callout 语法速查
Hello World - 我的第一篇博客
Typora 语法兼容性测试
首页博客Paper-ReadingRobotsRMA: Rapid Motor Adaptation for Legged Robots

论文阅读

RMA: Rapid Motor Adaptation for Legged Robots

RSS 2021 论文 RMA:两阶段训练让四足机器人在线适应真实世界的不可预测物理(打滑、负载变化、电机磨损),实现毫秒级的快速运动自适应。

2026 年 04 月 13 日/6 min read/ZZCZZC
#论文阅读#强化学习#四足机器人#域随机化

核心挑战

  • 挑战:
    • 仿真环境难以完美模拟真实世界的物理接触和软地面。
    • 真实环境充满了不可预测性(打滑、负载变化、电机磨损)
  • 目标:让机器人像动物一样,在无需人工干预的情况下,毫秒级适应新环境。实际上,也就是需要机器人具备实时适应(Online Adaptation)的能力。

RMA 方法

RMA = Rapid Motor Adaptation

训练阶段

image-20251229220945679

第一阶段:基础策略训练

image-20251230001734409

  • Input:

    • 当前状态 (xtx_txt​): 机器人的关节位置、速度、身体姿态等本体感知信息。
    • 上一刻动作 (at−1a_{t-1}at−1​): 机器人上一帧执行的动作指令。
    • 特权环境信息 (ete_tet​):这是关键。包括质量、质心位置 (COM)、摩擦力、地形高度图、电机强度等。这些信息在现实中很难直接获得,但在仿真里可以直接读取。
  • 核心组件与过程 (Process):

    1. 环境因素编码器 (μ\muμ): 一个多层感知机(MLP)。它接收复杂的特权信息 ete_tet​,将其压缩编码为一个低维的潜在向量ztz_tzt​
      • 公式: zt=μ(et)z_t = \mu(e_t)zt​=μ(et​)。
    2. 基础策略 (π\piπ): 也是一个神经网络。它接收状态 xtx_txt​、上一动作 at−1a_{t-1}at−1​ 和环境特征 ztz_tzt​,输出当前动作。
      • 公式: at=π(xt,at−1,zt)a_t = \pi(x_t, a_{t-1}, z_t)at​=π(xt​,at−1​,zt​)。
    3. 联合训练: 使用强化学习(RL)算法(具体为 PPO),同时训练编码器 μ\muμ 和策略 π\piπ,最大化奖励函数(如走得快、走得稳。
  • 输出 (Output):
    • 动作 (ata_tat​): 目标关节位置。
    • 环境外在向量 (ztz_tzt​): 这是环境的“真值”特征。
  • 目的: 训练一个在已知环境参数下能完美行走的“专家策略”。

第二阶段:适应模块训练 (Training Phase 2) — “学会通过感觉猜测环境”

image-20251230002216506

  • Inputs

    • 历史信息序列: 过去一段时间(约 0.5秒,k=50步)的状态 (xt−k:t−1x_{t-k:t-1}xt−k:t−1​) 和 动作 (at−k:t−1a_{t-k:t-1}at−k:t−1​) 。
    • 注意:此时不再输入特权信息 ete_tet​。
  • 核心组件与过程 (Process):

    • 适应模块 (ϕ\phiϕ): 一个基于 1-D CNN(一维卷积神经网络)的模型,擅长处理时间序列数据。

    • 监督学习 (Supervised Learning): 这是一个回归任务。

      • 目标: 让适应模块的输出 z^t\hat{z}_tz^t​ 尽可能接近阶段1中编码器生成的真实 ztz_tzt​。
      • 公式: 最小化 MSE 损失 ∣∣z^t−zt∣∣2||\hat{z}_t - z_t||^2∣∣z^t​−zt​∣∣2。
      • 图片中间绿色的双向箭头 "Regress" 就代表了这个监督学习过程。
  • 输出 (Output):

    • 估计的环境向量 (z^t\hat{z}_tz^t​): 这是一个对真实环境参数的猜测值。
  • 目的: 只要机器人感觉到“脚底打滑”或者“腿部沉重”(通过历史状态体现),适应模块就能推断出环境发生了变化,并生成对应的 ztz_tzt​,从而能够在没有上帝视角的情况下复现专家的能力。

第三阶段:部署 (Deployment) — “异步协作,盲视行走”

image-20251230002324751

​ 这是将模型应用到真实的 Unitree A1 机器人上。此时环境编码器 (μ\muμ) 被丢弃,只保留策略 (π\piπ) 和适应模块 (ϕ\phiϕ )。

  • 输入 (Inputs):
    • 仅依赖机器人的实时状态 (xtx_txt​) 和 历史状态/动作序列。
    • 现实世界中没有 ete_tet​(特权信息)。
  • 核心组件与过程 (Process):这是一个异步 (Asynchronous) 的双线程系统 16161616:+1
    1. 适应模块 (ϕ\phiϕ) [慢速线程]:
      • 频率: 10 Hz (每 0.1秒运行一次)
      • 任务: 慢慢分析过去 0.5秒的历史数据,更新对环境的估计 z^t\hat{z}_tz^t​。
    2. 基础策略 (π\piπ) [快速线程]:
      • 频率: 100 Hz (每 0.01秒运行一次)
      • 任务: 读取最新的 z^t\hat{z}_tz^t​(由适应模块提供),结合当前的瞬间状态 xtx_txt​,迅速输出控制指令 ata_tat​。
  • 输出 (Output):
    • 动作 (ata_tat​): 直接控制机器人的电机扭矩,驱动机器人行走
  • 目的: 实现 Sim-to-Real(仿真到现实)的零样本迁移。机器人无需视觉,仅凭本体感觉(Proprioception)就能实时适应沙地、楼梯、负载等复杂环境。

公式

阶段核心公式/逻辑关键点
阶段 1zt=μ(et)z_t = \mu(e_t)zt​=μ(et​) at=π(xt,at−1,zt)a_t = \pi(x_t, a_{t-1}, z_t)at​=π(xt​,at−1​,zt​)利用特权信息 ete_tet​ 训练完美的 ztz_tzt​ 和策略。
阶段 2z^t=ϕ(history)\hat{z}_t = \phi(history)z^t​=ϕ(history) Loss $=
部署at=π(xt,at−1,z^t)a_t = \pi(x_t, a_{t-1}, \hat{z}_t)at​=π(xt​,at−1​,z^t​)丢弃 ete_tet​ 和 μ\muμ,用 ϕ\phiϕ 实时生成的 z^t\hat{z}_tz^t​ 来指导策略行走。
ZZC

Written by

ZZC
每天研究怎么摸鱼的神人

Comments

评论功能即将上线

On this page

  • 核心挑战
  • RMA 方法
  • 训练阶段
  • 第一阶段:基础策略训练
  • 第二阶段:适应模块训练 (Training Phase 2) — “学会通过感觉猜测环境”
  • 第三阶段:部署 (Deployment) — “异步协作,盲视行走”
  • 公式