Conference

QuestEnvSim: Environment-Aware Simulated Motion Tracking from Sparse Sensors

Sunmin Lee, Sebastian Starke, Yuting Ye, Jungdam Won, Alexander W. Winkler

Seoul National University; Meta

一句话总结

仅凭 VR 头显和两个手柄的位姿,结合物理仿真与环境几何观测,用强化学习训练一个力矩控制策略,重建出能与椅子、沙发、箱子等物体自然交互的全身动作。

研究背景

  • 领域现状:AR/VR 需要用可穿戴稀疏传感器(头显 + 手柄,即”3 点”输入)驱动全身化身。现有方法分两路:纯运动学方法直接从稀疏信号回归全身姿态;物理化方法用强化学习训练控制器来跟踪信号。
  • 核心痛点:绝大多数方法只处理平地和脚-地接触,回避了与环境的复杂交互动力学。人日常生活中却频繁与环境交互(坐沙发、靠桌子)。运动学方法容易产生穿模、脚滑、抖动;有的物理方法(如引入人工外力稳定角色)会带来不自然的动作。
  • 本文 idea:把场景几何观测显式喂进策略,让策略学会”主动利用环境”来产生驱动化身所需的外力,而不是人为施加外力。物理仿真自动强制满足接触、非穿模等硬约束,从而在高度受约束的环境里也能生成高质量交互动作,无需任何后处理(IK、接触修正、平滑等)。

方法

整体框架

输入是一段头显和两个手柄的 6D 位姿序列,外加已扫描得到的 3D 场景几何。系统用一个物理仿真化身,通过深度强化学习(PPO)训练一个基于力矩的控制策略:每一步观测状态 \(s_t\)、输出动作 \(a_t\)(缩放为各关节力矩),目标是最大化累积奖励,让仿真化身尽可能贴合用户传感器信号并与环境自然接触。训练数据是包含环境交互的动捕数据。

flowchart LR
  A["头显+手柄位姿"] --> S["状态 s_t"]
  B["场景几何 (高度图)"] --> S
  C["仿真化身自身状态"] --> S
  S --> P["控制策略 π (MLP)"]
  P --> T["关节力矩 a_t"]
  T --> SIM["物理仿真 IsaacGym"]
  SIM --> C
  SIM --> R["奖励: 模仿+接触+正则"]

关键设计

  1. 状态表示(含场景观测):状态由三部分组成——仿真化身状态 \(s^{sim}_t\)(关节角、连杆位姿、速度、接触力)、用户传感器状态 \(s^{user}_t\)(头显位姿 + 双手柄位置,取前后各 1 秒的时间窗;手柄只用位置不用朝向,因朝向噪声大),以及场景状态 \(s^{scene}_t\)。场景用一张高度图表示:以化身为中心的圆形网格,半径 0.48m、120 个采样点,记录每个网格点的高度。所有量都在以骨盆为中心的坐标系下表达。这个场景观测是策略”理解环境”的关键。

  2. 接触奖励:这是本文强调的核心之一。奖励函数 \(r_t = r_{\text{imitation}} + r_{\text{contact}} + r_{\text{regularization}}\)。其中接触奖励 \(r_{\text{contact}} = w_c e^{-k_c \lVert c_{\text{sim}} - \hat{c}_{\text{ref}} \rVert}\) 鼓励仿真化身复现参考动作的接触状态。接触状态 \(c = (c_{root}, c_{spine}, c_{feet}, c_{hands})\) 用多热编码,某连杆与场景任意物体接触则为 1。选脚、手、骨盆、脊柱这些支撑身体的关键连杆。训练时接触标签由仿真器碰撞检测半自动生成(困难场景手工修正),且只在训练时需要。作者观察到去掉接触奖励会显著劣化动作质量。

  3. 模仿奖励与正则奖励:模仿奖励用指数形式度量仿真与参考在关节角、角速度、连杆位置、线速度、朝向上的差异(一种”过度指定”的写法,实践中效果更好)。正则奖励 \(r_{\text{regularization}} = w_a e^{-k_a \lVert a_t \rVert^2} + w_s e^{-k_s \lVert a_t - a_{t-1} \rVert^2}\) 惩罚过大或突变的力矩,大幅提升动作自然度。

  4. 场景随机化:训练时对物体位置(各方向最多 8cm)和朝向(绕竖轴最多约 5.7°)做小幅随机扰动,防止策略过拟合训练布置。随机幅度刻意保持小,以免扰动后的环境与参考动作严重矛盾、导致初始化穿模使仿真发散;小扰动无需编辑动作却已能有效提升对真实未见数据的泛化。

实验结果

系统用 IsaacGym 仿真、4096 个并行环境采集数据,用 PPO 训练。化身 32 自由度、18 连杆。评估全部在未见过的物体布置和真实 VR 设备输入上进行,不做场景随机化。用跟踪误差、jerk(抖动)和成功率衡量;当头显/手柄平均跟踪误差超 0.8m 判为跟踪失败。

下表为”客厅”场景上的消融,展示三个关键组件各自的作用(成功率越高越好,误差/jerk 越低越好):

配置 头显误差[cm]↓ 手柄误差[cm]↓ Jerk[km/s³]↓ 成功率[30s]↑
完整方法 5.69 5.20 0.327 0.610
去掉场景观测 5.77 5.14 0.302 0.624
去掉接触奖励 5.70 5.49 0.442 0.376
去掉场景随机化 5.58 4.98 0.421 0.415

去掉接触奖励和场景随机化都会明显拉低成功率并抬高 jerk,说明二者对稳健跟踪和动作平滑至关重要。此外,在多种场景(客厅、跨箱、倾斜椅、旋转椅)上均取得较低跟踪误差;对比实验还表明:加入 1 秒未来传感器信息优于无未来信息;仅用头显(1 点)也能工作,但手柄跟踪误差显著上升。

亮点与局限

  • 亮点:
    • 首次证明”稀疏上半身输入 + 物理仿真 + 环境观测”可在高度受约束环境里生成真实全身交互动作,且完全不用人工外力,避免了穿模、脚滑等常见 artifact。
    • 所有结果直接来自真实 VR 设备的未见输入,无需 IK、接触修正、平滑等任何后处理。
    • 清晰拆解出三个关键组件(场景表示、接触奖励、场景随机化)并做了消融验证。
    • 策略学会”按需接触”:能踩箱抬高头部以匹配用户,也能在平地行走时主动避开仿真中多余的箱子。
  • 局限:
    • 需要预先扫描并已知 3D 场景几何,且要用几何原语(箱、柱、胶囊)近似真实碰撞形状。
    • 训练需要带环境交互的动捕数据和接触标签(半自动 + 部分手工修正),数据准备成本高。
    • 场景随机化幅度很小,对布置差异较大的泛化能力有限;每个示例还需针对性挑选训练数据子集。
    • 30 秒成功率在部分场景(约 0.4~0.6)仍有失败风险,长时间稳定跟踪未完全解决。

延伸思考

  • 与同期稀疏传感器物理跟踪工作(Winkler et al. 2022、Ye et al. 2022 只演示了极少环境交互;Luo et al. 2022 用人工外力)相比,本文用”环境即外力来源”的思路更自然,这一思想可推广到更广义的人-物交互与操纵任务。
  • 高度图 + 接触多热编码是相对轻量的环境表示,若换成更丰富的几何/语义表征(如占据体素、点云、可微碰撞)是否能支持更复杂多物体场景值得探索。
  • 依赖已知扫描几何是落地瓶颈;结合实时 SLAM/场景重建与在线策略适应,或减少对动捕接触标注的依赖(自监督接触推断),会是通向消费级 AR/VR 的关键方向。
  • 目前每任务需挑数据子集训练,能否训练一个覆盖多种交互的统一策略(如结合可控/条件化的运动先验)是自然的下一步。