强化学习在机器人中的应用
概述
强化学习(RL)为机器人提供了从试错中学习最优行为的能力。与模仿学习不同,RL 不需要专家演示,而是通过环境奖励信号自主探索和优化策略。然而,将 RL 应用于真实机器人面临巨大挑战:样本效率低、奖励设计困难、安全约束严格。
本文系统梳理 RL 在机器人领域的核心技术和关键成果。
形式化框架
机器人 RL 问题通常建模为部分可观测马尔可夫决策过程(POMDP):
- \(\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)\) 最大化期望累计奖励:
奖励工程
为什么奖励设计如此困难
奖励工程(Reward Engineering)是机器人 RL 中最耗时的环节。理想的奖励函数需要满足:
- 信息丰富:提供足够的梯度信号引导学习
- 对齐意图:奖励的最优策略恰好是期望的行为
- 稳定性:不会导致奖励黑客(reward hacking)
稀疏 vs 稠密奖励
稀疏奖励:仅在任务完成时给予奖励,如 \(r = \mathbb{1}[\text{任务成功}]\)。
- 优点:定义简单、无需对齐
- 缺点:探索困难,大部分轨迹奖励为零
稠密奖励:在每一步提供中间反馈。以机械臂抓取为例:
其中 \(p_{\text{ee}}\) 为末端执行器位置,\(p_{\text{obj}}\) 为目标物体位置,\(h_{\text{obj}}\) 为物体被提升的高度。
操作 vs 运动的奖励设计差异
| 维度 | 操作任务(Manipulation) | 运动任务(Locomotion) |
|---|---|---|
| 成功指标 | 物体到达目标位姿 | 持续以目标速度移动 |
| 典型奖励 | 位置误差 + 接触 + 完成 | 速度跟踪 + 能量惩罚 + 稳定性 |
| 安全约束 | 力/力矩限制 | 关节限位 + 自碰撞 |
| 难点 | 接触动力学非线性 | 平衡 + 多步态切换 |
四足运动典型奖励(ANYmal 风格):
样本效率问题
为什么 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\) 维连续动作空间中,随机探索找到稀疏奖励的概率随维度指数衰减:
其中 \(\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 的策略梯度估计变为:
方差按 \(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\)
Teacher-Student 蒸馏
更进一步的方案是两阶段训练:
阶段 1 — Teacher 训练:
使用特权信息训练"教师"策略 \(\pi_{\text{teacher}}(a|s)\),其中 \(s\) 包含:
- 地形高度图
- 物体精确位姿
- 接触力
- 摩擦系数
- 其他仿真器内部变量
阶段 2 — Student 蒸馏:
训练"学生"策略 \(\pi_{\text{student}}(a|o)\) 模仿教师,其中 \(o\) 仅包含真实传感器可获取的信息:
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}}]\) 的更新规则:
ANYmal 极限运动(2022-2024)
成果:ETH Zurich 团队使用 RL 训练四足机器人 ANYmal 完成跑酷、攀爬、跳跃。
关键技术:
- 课程学习:逐步增加地形难度
- 奖励设计:速度跟踪 + 稳定性 + 能量效率
- Teacher-Student:Teacher 使用高度扫描(特权信息),Student 使用本体感觉历史
地形课程:
灵巧操作(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\):
这是 Bradley-Terry 模型在轨迹对上的应用。
LLM 生成奖励函数
最新趋势是利用 LLM 直接生成奖励代码:
- 用自然语言描述任务
- LLM 生成 Python 奖励函数
- 在仿真中训练 RL 策略
- 根据行为反馈迭代优化奖励
代表工作:Eureka(Ma et al., 2023)、Language2Reward(Yu et al., 2023)。
Model-Based RL
动力学模型学习
Model-Based RL 学习环境动力学模型 \(\hat{T}(s'|s, a)\),然后利用模型进行规划或生成模拟数据。
神经网络动力学模型:
概率模型(用于不确定性估计):
MPC with Learned Model
学到动力学模型后,使用模型预测控制(MPC)进行在线规划:
其中 \(H\) 是规划视野,\(c\) 是代价函数。
优势:样本效率高(通常 <1000 步真实交互即可学习简单任务) 劣势:模型误差累积、计算开销大
与相关章节的联系
- 控制理论基础:机器人学基础 中的 PID、MPC 是 RL 的互补方法
- Sim2Real 迁移:Sim2Real 详述如何将仿真中训练的 RL 策略部署到真实环境
- 仿真平台:仿真平台 介绍 Isaac Gym/Lab 等训练基础设施
- 模仿学习:模仿学习 是 RL 的重要互补,两者常结合使用(如 RL fine-tuning from IL initialization)
参考文献
- Makoviychuk, V., et al. (2021). Isaac Gym: High Performance GPU-Based Physics Simulation for Robot Learning. NeurIPS Datasets and Benchmarks.
- OpenAI (2019). Solving Rubik's Cube with a Robot Hand. arXiv:1910.07113.
- Miki, T., et al. (2022). Learning Robust Perceptive Locomotion for Quadrupedal Robots in the Wild. Science Robotics.
- Ma, Y., et al. (2023). Eureka: Human-Level Reward Design via Coding Large Language Models. ICLR 2024.
- Haarnoja, T., et al. (2024). Learning Agile Soccer Skills for a Bipedal Robot with Deep Reinforcement Learning. Science Robotics.