跳转至

强化学习在机器人中的应用

概述

强化学习(RL)为机器人提供了从试错中学习最优行为的能力。与模仿学习不同,RL 不需要专家演示,而是通过环境奖励信号自主探索和优化策略。然而,将 RL 应用于真实机器人面临巨大挑战:样本效率低、奖励设计困难、安全约束严格。

本文系统梳理 RL 在机器人领域的核心技术和关键成果。


形式化框架

机器人 RL 问题通常建模为部分可观测马尔可夫决策过程(POMDP):

\[ (\mathcal{S}, \mathcal{A}, \mathcal{O}, T, O, r, \gamma) \]
  • \(\mathcal{S}\):状态空间(如完整物理状态,包含物体位姿、接触力等)
  • \(\mathcal{A}\):动作空间(如关节力矩 \(\tau \in \mathbb{R}^n\) 或期望关节角 \(q_{\text{des}} \in \mathbb{R}^n\)
  • \(\mathcal{O}\):观测空间(传感器输入,如 RGB 图像、本体感觉)
  • \(T(s'|s, a)\):状态转移概率(由物理定律决定)
  • \(O(o|s)\):观测函数
  • \(r(s, a)\):奖励函数
  • \(\gamma \in [0, 1)\):折扣因子

目标:找到策略 \(\pi^*(a|o)\) 最大化期望累计奖励:

\[ \pi^* = \arg\max_\pi \mathbb{E}_\pi \left[ \sum_{t=0}^{T} \gamma^t r(s_t, a_t) \right] \]

奖励工程

为什么奖励设计如此困难

奖励工程(Reward Engineering)是机器人 RL 中最耗时的环节。理想的奖励函数需要满足:

  1. 信息丰富:提供足够的梯度信号引导学习
  2. 对齐意图:奖励的最优策略恰好是期望的行为
  3. 稳定性:不会导致奖励黑客(reward hacking)

稀疏 vs 稠密奖励

稀疏奖励:仅在任务完成时给予奖励,如 \(r = \mathbb{1}[\text{任务成功}]\)

  • 优点:定义简单、无需对齐
  • 缺点:探索困难,大部分轨迹奖励为零

稠密奖励:在每一步提供中间反馈。以机械臂抓取为例:

\[ r_{\text{grasp}}(s, a) = \underbrace{-\alpha \| p_{\text{ee}} - p_{\text{obj}} \|}_{\text{接近奖励}} + \underbrace{\beta \cdot \mathbb{1}[\text{contact}]}_{\text{接触奖励}} + \underbrace{\gamma_r \cdot h_{\text{obj}}}_{\text{提升奖励}} + \underbrace{\delta \cdot \mathbb{1}[\text{success}]}_{\text{成功奖励}} \]

其中 \(p_{\text{ee}}\) 为末端执行器位置,\(p_{\text{obj}}\) 为目标物体位置,\(h_{\text{obj}}\) 为物体被提升的高度。

操作 vs 运动的奖励设计差异

维度 操作任务(Manipulation) 运动任务(Locomotion)
成功指标 物体到达目标位姿 持续以目标速度移动
典型奖励 位置误差 + 接触 + 完成 速度跟踪 + 能量惩罚 + 稳定性
安全约束 力/力矩限制 关节限位 + 自碰撞
难点 接触动力学非线性 平衡 + 多步态切换

四足运动典型奖励(ANYmal 风格):

\[ r_{\text{loco}} = w_1 \underbrace{v_x \cdot v_x^{\text{cmd}}}_{\text{速度跟踪}} - w_2 \underbrace{\| \boldsymbol{\omega} \|^2}_{\text{角速度惩罚}} - w_3 \underbrace{\| \boldsymbol{\tau} \|^2}_{\text{力矩惩罚}} - w_4 \underbrace{\| \ddot{q} \|^2}_{\text{平滑惩罚}} + w_5 \underbrace{h_{\text{body}}}_{\text{高度奖励}} \]

样本效率问题

为什么 Model-Free RL 需要大量样本

Model-Free RL(如 PPO、SAC)的样本效率受限于以下因素:

蒙特卡洛估计的方差:策略梯度估计 \(\hat{g} = \mathbb{E}_\tau [\sum_t \nabla_\theta \log \pi_\theta(a_t|s_t) \hat{A}_t]\) 的方差很高,需要大量轨迹才能获得准确的梯度。

探索稀疏奖励空间:在 \(d\) 维连续动作空间中,随机探索找到稀疏奖励的概率随维度指数衰减:

\[ P(\text{success by random}) \sim \left(\frac{\delta}{\Delta a}\right)^d \]

其中 \(\delta\) 是有效动作范围,\(\Delta a\) 是动作空间范围。

经验数据

任务 算法 所需环境步数 真实时间
简单抓取 SAC ~1M steps ~100 小时
灵巧操作 PPO ~10B steps ~1000 年
四足行走 PPO ~100M steps ~10 年

显然,直接在真实机器人上运行 model-free RL 是不可行的。

解决方案:仿真中大规模并行训练

核心思路:在 GPU 加速的仿真器中并行运行数千个环境,将训练时间从数年压缩到数小时。


大规模并行训练:Isaac Gym/Lab

架构原理

NVIDIA Isaac Gym(Makoviychuk et al., 2021)实现了端到端 GPU 仿真,消除了 CPU-GPU 数据传输瓶颈:

传统流程

CPU Physics → CPU→GPU Transfer → GPU Neural Network → GPU→CPU Transfer → CPU Physics

Isaac Gym 流程

GPU Physics → GPU Neural Network → GPU Physics (全部在GPU上)

并行环境的数学

设共有 \(K\) 个并行环境,每个环境在时间步 \(t\) 产生数据 \((o_t^k, a_t^k, r_t^k, o_{t+1}^k)\)。PPO 的策略梯度估计变为:

\[ \hat{g} = \frac{1}{K \cdot T} \sum_{k=1}^K \sum_{t=0}^{T-1} \nabla_\theta \log \pi_\theta(a_t^k | o_t^k) \hat{A}_t^k \]

方差按 \(1/K\) 衰减,\(K = 4096\) 时方差降低约 4000 倍。

性能对比

仿真器 并行环境数 物理引擎 帧率(4096 envs)
MuJoCo (CPU) 1-32 CPU ~500 FPS
Isaac Gym 4096+ GPU (PhysX) ~100,000 FPS
Isaac Lab 4096+ GPU (PhysX/MJX) ~200,000 FPS
Genesis 4096+ GPU ~400,000 FPS

Isaac Gym 实现了约 200x 的加速,使原本需要数天的训练压缩到数分钟。


非对称 Actor-Critic

核心思想

在仿真中训练时,我们可以访问完整的物理状态(特权信息),但真实部署时只有传感器观测。非对称 Actor-Critic 利用这种信息不对称:

  • Critic(仅训练时使用):接收特权状态 \(s\)(完整物理信息)
  • Actor(训练和部署都使用):仅接收可获得的观测 \(o\)
\[ \text{Critic: } V_\psi(s), \quad \text{Actor: } \pi_\theta(a|o) \]

Teacher-Student 蒸馏

更进一步的方案是两阶段训练

阶段 1 — Teacher 训练

使用特权信息训练"教师"策略 \(\pi_{\text{teacher}}(a|s)\),其中 \(s\) 包含:

  • 地形高度图
  • 物体精确位姿
  • 接触力
  • 摩擦系数
  • 其他仿真器内部变量

阶段 2 — Student 蒸馏

训练"学生"策略 \(\pi_{\text{student}}(a|o)\) 模仿教师,其中 \(o\) 仅包含真实传感器可获取的信息:

\[ \mathcal{L}_{\text{distill}} = \mathbb{E}_{o, s \sim \text{rollout}} \left[ D_{\text{KL}}(\pi_{\text{teacher}}(\cdot|s) \| \pi_{\text{student}}(\cdot|o)) \right] \]
flowchart LR
    subgraph 阶段1["阶段1: Teacher训练"]
        S1[特权状态 s] --> T[Teacher策略<br/>π_teacher]
        T --> A1[动作 a]
        A1 --> E1[仿真环境]
        E1 --> R[奖励 r]
        R --> RL[RL算法<br/>PPO]
        RL --> T
    end

    subgraph 阶段2["阶段2: Student蒸馏"]
        S2[传感器观测 o] --> ST[Student策略<br/>π_student]
        ST --> A2[动作 a]
        T2[Teacher策略<br/>冻结] --> KL[KL散度损失]
        ST --> KL
        KL --> ST
    end

    阶段1 --> 阶段2

    style 阶段1 fill:#e8f5e9
    style 阶段2 fill:#e3f2fd

关键成果

OpenAI Rubik's Cube(2019)

任务:用 Shadow Hand 灵巧手在手内翻转魔方。

技术栈

  • 算法:PPO + 自动域随机化(ADR)
  • 仿真:MuJoCo,~13,000 CPU + 8 GPU
  • 训练:等效数万年的经验
  • 随机化参数:物体尺寸、质量、摩擦、重力、观测噪声等数百个参数

ADR 机制:逐步扩大随机化范围,当策略在当前范围内达标后自动扩展。随机化范围 \([\phi_{\text{low}}, \phi_{\text{high}}]\) 的更新规则:

\[ \phi_{\text{high}} \leftarrow \phi_{\text{high}} + \Delta \phi \quad \text{if} \quad \text{success\_rate} > \eta \]

ANYmal 极限运动(2022-2024)

成果:ETH Zurich 团队使用 RL 训练四足机器人 ANYmal 完成跑酷、攀爬、跳跃。

关键技术

  • 课程学习:逐步增加地形难度
  • 奖励设计:速度跟踪 + 稳定性 + 能量效率
  • Teacher-Student:Teacher 使用高度扫描(特权信息),Student 使用本体感觉历史

地形课程

\[ \text{difficulty}_i \leftarrow \text{difficulty}_i + \alpha \cdot (\text{success\_rate}_i - \text{threshold}) \]

灵巧操作(2023-2025)

近年来,RL 在灵巧操作领域取得快速进展:

工作 任务 关键创新
DexPoint (2023) 灵巧手抓取 点云输入 + RL
RotateIt (2023) 手内物体旋转 触觉 + 视觉 + RL
AnyRotate (2024) 任意物体旋转 无需物体模型
DexCatch (2024) 动态抛接 高速视觉反馈

奖励学习:自动化奖励设计

从人类偏好中学习奖励(RLHF for Robots)

受 LLM 中 RLHF 的启发,机器人领域也开始探索从人类偏好中学习奖励:

给定轨迹对 \((\tau_A, \tau_B)\),人类标注偏好 \(y \in \{A, B\}\),训练奖励模型 \(r_\psi\)

\[ P(A \succ B) = \frac{\exp(\sum_t r_\psi(s_t^A, a_t^A))}{\exp(\sum_t r_\psi(s_t^A, a_t^A)) + \exp(\sum_t r_\psi(s_t^B, a_t^B))} \]

这是 Bradley-Terry 模型在轨迹对上的应用。

LLM 生成奖励函数

最新趋势是利用 LLM 直接生成奖励代码:

  1. 用自然语言描述任务
  2. LLM 生成 Python 奖励函数
  3. 在仿真中训练 RL 策略
  4. 根据行为反馈迭代优化奖励

代表工作:Eureka(Ma et al., 2023)、Language2Reward(Yu et al., 2023)。


Model-Based RL

动力学模型学习

Model-Based RL 学习环境动力学模型 \(\hat{T}(s'|s, a)\),然后利用模型进行规划或生成模拟数据。

神经网络动力学模型

\[ \hat{s}_{t+1} = f_\theta(s_t, a_t), \quad \theta^* = \arg\min_\theta \sum_{(s, a, s') \in \mathcal{D}} \|f_\theta(s, a) - s'\|^2 \]

概率模型(用于不确定性估计):

\[ \hat{s}_{t+1} \sim \mathcal{N}(\mu_\theta(s_t, a_t), \sigma_\theta^2(s_t, a_t)) \]

MPC with Learned Model

学到动力学模型后,使用模型预测控制(MPC)进行在线规划:

\[ a_t^* = \arg\min_{a_{t:t+H}} \sum_{k=0}^{H} c(s_{t+k}, a_{t+k}), \quad \text{s.t. } s_{t+k+1} = f_\theta(s_{t+k}, a_{t+k}) \]

其中 \(H\) 是规划视野,\(c\) 是代价函数。

优势:样本效率高(通常 <1000 步真实交互即可学习简单任务) 劣势:模型误差累积、计算开销大


与相关章节的联系

  • 控制理论基础机器人学基础 中的 PID、MPC 是 RL 的互补方法
  • Sim2Real 迁移Sim2Real 详述如何将仿真中训练的 RL 策略部署到真实环境
  • 仿真平台仿真平台 介绍 Isaac Gym/Lab 等训练基础设施
  • 模仿学习模仿学习 是 RL 的重要互补,两者常结合使用(如 RL fine-tuning from IL initialization)

参考文献

  1. Makoviychuk, V., et al. (2021). Isaac Gym: High Performance GPU-Based Physics Simulation for Robot Learning. NeurIPS Datasets and Benchmarks.
  2. OpenAI (2019). Solving Rubik's Cube with a Robot Hand. arXiv:1910.07113.
  3. Miki, T., et al. (2022). Learning Robust Perceptive Locomotion for Quadrupedal Robots in the Wild. Science Robotics.
  4. Ma, Y., et al. (2023). Eureka: Human-Level Reward Design via Coding Large Language Models. ICLR 2024.
  5. Haarnoja, T., et al. (2024). Learning Agile Soccer Skills for a Bipedal Robot with Deep Reinforcement Learning. Science Robotics.

评论 #