PAPER DEEP DIVE
基于VR和强化学习的小型人形遥操作移动操作
VR+RL 驱动小型人形机器人的遥操作移动操作,含步态控制和操作协调模块,探索小型平台的 loco-manipulation 能力。
1. 论文概览:基于 VR 和 RL 的微型人形遥操作-行走-操控
本文为基于 DYNAMIXEL 舵机的微型人形机器人构建了一套完整的遥操作-行走-操控(tele-loco-manipulation)系统,将 VR 遥操作操控与 RL 行走平衡独立融合于全身控制。动机是模仿学习的数据瓶颈——全尺寸人形硬件昂贵且操作困难,微型平台(如 ROBOTIS OP3)以极低成本提供更易处理的研究载体。系统的四大贡献:(1)人形机器人全身遥操作-行走-操控控制软件架构;(2)数据驱动的 DYNAMIXEL XM430 舵机力矩控制建模;(3)基于 PD 的 DYNAMIXEL 关节链阻抗控制器;(4)在 ROBOTIS OP3 上的实验验证。VR 端用 VIVE Pro 2 头显+手柄追踪操作者头/手运动,通过逆运动学(IK)映射到机械臂;RL 策略在 Isaac Lab 中训练后零样本部署到真机行走,实现上下身独立控制。
2. 核心问题:微型人形的遥操作与行走融合
经典人形 loco-manipulation 通常用位置控制机器人直接克服外部动力学,将物理交互视为行走步态扰动。但这种方式损害全身行走稳定性,且全尺寸硬件昂贵稀缺。VR 遥操作近年大发展(COVID-19 与 ANA Avatar XPRIZE 推动触觉手套和上半身运动重定向),但依赖刚性位置控制,简化了操作者运动重定向却牺牲了柔顺性。RL 行走方面,大规模并行仿真已能在消费级 GPU 上快速收敛到可零样本部署的盲行走策略。本文核心问题是:如何将 VR 上半身遥操作与 RL 下半身行走平衡在微型人形上独立而协调地融合,同时解决 DYNAMIXEL 舵机力矩控制的 sim2real 鸿沟。
3. 方法:VR 控制 + RL 行走 + 力矩控制
3.1 VR 遥操作与运动重定向
操作者佩戴 VIVE Pro 2 HMD,手握 VIVE 控制器,四个 SteamVR 基站光学追踪。Unity 作为开发平台,构建 VR 场景和物理仿真。操作者手部位置经逆运动学(IK)求解器生成机械臂关节位置。缩放后的虚拟机器人模型叠加在操作者躯干上,提供机器人具身感。机器人端用 ROBOTIS OP3(20 自由度:两 6-DoF 腿+两 3-DoF 臂+1 2-DoF 头),搭载 i7 NUC 和 9-DoF IMU,替换为 VR180 双鱼眼 USB 摄像头增强临场感。相机视频流以 3840×1080@60Hz 投射到虚拟球面显示。
3.2 PD 阻抗力矩控制器
生成的 IK 解以 200Hz 力矩控制器跟踪(带宽受 TTL 通信速度限制)。DYNAMIXEL XM430 通过硬件级电流控制实现开环力矩控制,输入电流与输出轴力矩假设线性关系。控制律为:
$$\boldsymbol{\tau}_{cmd} = K_P (\boldsymbol{q}_{des} - \boldsymbol{q}) - K_D \dot{\boldsymbol{q}} \tag{1}$$其中 $\boldsymbol{\tau}_{cmd} \in \mathbb{R}^{20}$ 为命令力矩,$\boldsymbol{q}_{des} \in \mathbb{R}^{20}$ 为 Unity 期望关节位置,$\boldsymbol{q} \in \mathbb{R}^{20}$ 为关节位置反馈,$\dot{\boldsymbol{q}}$ 为一阶差分关节速度,$K_P \in \mathbb{R}^{20\times20}$ 为刚度矩阵,$K_D$ 为阻尼矩阵。舵机力矩-电流线性模型为:
$$\tau = k_m \cdot I_{motor}, \quad k_m = \frac{\tau_{stall}}{I_{stall}} \tag{2}$$力矩控制器的输出力矩与位置误差和速度的 PD 关系,结合电流-力矩线性映射构成阻抗控制。EMA 滤波器平滑球形显示旋转以匹配机械延迟(~100ms),减少 VR 晕动症。
3.3 RL 行走策略与 Sim2Real
RL 策略建模为马尔可夫决策过程(MDP),目标是最大化奖励函数 $G_t$:
$$G_t = \mathbb{E}\left[\sum_{k=0}^{\infty} \gamma^k \mathcal{R}(s_k, a_k)\right], \quad \pi^* = \arg\max_\pi \mathbb{E}[G_t] \tag{3}$$观测空间含 5 项(角速度、体坐标系投影重力、关节位置等),每项叠加前 9 步历史,构成 330×1 向量。历史堆叠在 sim2real 迁移中减少推理动作噪声。领域随机化随机化质量、质心、PD 增益等,应对遥操作中质心变化导致的零力矩点(ZMP)偏移。投影重力的 $xy$ 分量惩罚确保行走中质心变化时快速调足:
$$r_{pg} = -\exp\left(-\frac{g_{xy}^2}{\sigma_{pg}^2}\right), \quad r_{total} = \sum_i w_i r_i \tag{4}$$舵机动力学精确建模对零样本迁移至关重要,使用 Isaac Lab 的执行器模型结合正弦和阶跃输入响应手动调参。行走的零力矩点约束:
$$p_{ZMP} = p_{CoM} - \frac{h}{g} \cdot \ddot{p}_{CoM} \tag{5}$$其中 $h$ 为质心高度,$g$ 为重力加速度。领域随机化应对 $p_{ZMP}$ 在遥操作中的偏移。
4. 实验
4.1 遥操作验证
操作者用双臂快速画圆 10 次,以 50Hz 记录 VR 控制器和机械臂末端位置。运动延迟通过人/机器人手位置的互相关函数峰值计算,y 方向延迟 220ms。位置跟踪虽有超过 15% RMSE 的瞬时误差,但大部分可归因于运动延迟(~220ms),上臂仍能重现操作者要求的圆周运动。
| 实验 | 延迟 | 位置误差 | 评估 |
|---|---|---|---|
| 画圆遥操作 | ~220ms | >15% RMSE | 可重现圆周运动 |
| 行走抗扰 | — | 投影重力≈-1 | 稳定 |
| 方块搬运 | — | 2/6 成功 | 部分成功 |
4.2 行走与遥操作-行走-操控
行走策略每 3s 发送随机全身速度命令,持续 80s。归一化投影重力接近 -1 表明 RL 策略在突变速度命令下仍保持稳定躯干方向。最终遥操作-行走-操控实验要求机器人在 10 分钟内搬移 6 个方块:行走约 5m 距离(平均 0.35m/s),拾取 40g PLA 立方体放入容器。结果成功搬移 2/6 个方块,揭示了全栈系统的整体能力边界。
| 指标 | 遥操作 | 行走 | 方块搬运 |
|---|---|---|---|
| 延迟 | ~220ms | — | — |
| 精度 | >15% RMSE | 投影重力≈-1 | — |
| 成功率 | 圆周可重现 | 80s 稳定 | 2/6 (33%) |
| 速度 | 50Hz 采样 | 0.35m/s 平均 | 5m/次 |
4.3 域随机化与舵机建模细节
Sim2Real迁移的关键在于精确的执行器建模和域随机化。论文采用Better Actuator Modeling (BAM)方法,通过摆锤测试台收集DYNAMIXEL XM430-W350在不同配重和PD增益下的响应数据,估计出电枢常数为0.045、摩擦损耗为0.03、力矩极限为3.6 N·m。这些参数在Isaac Sim中验证后用于训练,显著改善了高速关节速度下的稳定性。域随机化覆盖8个维度:足底摩擦$(0.5, 0.9)$、重力缩放$(0.95, 1.3)$、连杆质量缩放$(0.7, 1.3)$、线速度扰动$(-0.25, 0.25)$ m/s、位姿扰动等。推动事件每10-15秒随机施加速度扰动,模拟遥操作时上身运动对平衡的冲击。观测空间为$330 imes 1$向量,包含角速度、投影重力和关节位置,每个观测项堆叠前9个时间步的历史,使策略能隐式推断关节速度而无需直接观测。奖励设计方面,自定义足底方向惩罚项约束投影重力xy分量,步态奖励鼓励双支撑和单支撑相位交替,能量最小化项利用行走动量减少能耗。
5. 局限性
- Sim2real 鸿沟:当前执行器模型粗糙,需大量领域随机化补偿;DYNAMIXEL TTL 通信带宽限制力矩控制到 200Hz,高关节速度下存在不稳定性。
- 力矩控制太软:遥操作力矩控制器在试验中过软,操作者需交叉双臂才能产生足够力持物,表明阻抗参数需优化。
- 行走策略基础:本体感知行走仅在简单地形上验证,缺乏更复杂地形和额外奖励塑形;方块搬运 33% 成功率显示全栈集成仍有提升空间。
6. 总结
本文构建了微型人形(ROBOTIS OP3)的遥操作-行走-操控系统,融合 VR 上半身遥操作与 RL 下半身行走。PD 阻抗力矩控制器(200Hz)实现 DYNAMIXEL XM430 的力矩控制,IK 求解器将操作者手部运动映射到机械臂。RL 策略在 Isaac Lab 中训练,用领域随机化和历史观测堆叠实现零样本 sim2real 迁移。实验验证了运动延迟(~220ms)、行走稳定性(投影重力≈-1)和全栈能力(2/6 方块搬移)。核心洞见是:微型人形平台通过"上半身 VR + 下半身 RL"的解耦架构,以极低成本实现了全身遥操作-行走-操控——关键不在机器人大小而在控制架构的分层解耦与舵机力矩建模。
flowchart TD
A["操作者: VIVE Pro 2 + 手柄"] --> B["Unity VR 场景"]
B --> C["IK 求解器: 手位置 → 关节角"]
C --> D["PD 阻抗力矩控制器 200Hz"]
D --> E["DYNAMIXEL XM430 力矩控制"]
F["Isaac Lab RL 训练"] --> G["领域随机化 + 历史堆叠"]
G --> H["零样本 sim2real 行走策略"]
H --> I["OP3 下半身行走平衡"]
E --> J["OP3 上半身遥操作"]
I --> K["全身遥操作-行走-操控"]
J --> K
K --> L["方块搬移实验: 2/6 成功"]



