Interactive Design of Stylized Walking Gaits for Robotic Characters
Disney Research
问题背景
程序化动画(procedural animation)在虚拟角色的富有表现力步态设计中被广泛使用,但要把类似的工具搬到物理机器人上却困难重重。既有的动画技术基本”意识不到”物理机器人所施加的运动学与动力学约束:动画师精心编排的动作一旦部署到硬件上,往往因为触地约束被破坏、关节超限或质心动力学失稳而无法执行。
论文指出,为机器人角色做程序化动画有两大核心挑战:
- 可行性约束:步态必须满足全身运动过程中固有的运动学与动力学约束(不穿地、不打滑、压力中心 CoP 始终落在支撑多边形内)。
- 速度泛化:真实步态会随角色速度而变化,一个”风格”必须能连续泛化到前进、后退、转弯、侧移等一整段速度范围。
与此同时,近年主流的模仿学习 / 强化学习方法虽然效果惊艳,但侧重”技能”而非”风格”,且需要离线训练、无法给动画师即时反馈,因此不适合交互式创作工作流。这篇论文的目标是提供一个面向双足机器人角色、艺术家可直接驱动的交互式程序化动画系统。
核心方法
系统由三个紧密耦合的部件构成,配合一个固定的基于模型的控制栈(control stack):
- 步态规划器(Gait Planner):把随时间变化的平面输入速度 \(v(t)\) 映射为全身参考轨迹 \(r(t)\),包括骨盆高度/朝向、左右脚位姿、上半身关节角。
- 步态采样器(Gait Sampler):在若干个”关键速度样本”之间做相位空间混合(phase-space blending),从而把风格连续泛化到任意输入速度。
- 交互式步态编辑器(Gait Editor):动画师用类似 Maya 曲线编辑器的 GUI 在关键速度上编辑样本,实时在仿真/物理机器人上看到效果。
整个流程的核心贡献在于完全实时、无需离线轨迹优化或训练步骤——因此可以直接在机器人硬件上迭代设计目标步态。
规划器输出向量为:
\[r(t) = \left[\, z_{\text{pelvis}} \;\; \boldsymbol{\theta}_{\text{pelvis}}^{\top} \;\; p_{\text{foot,l}}^{\top} \;\; p_{\text{foot,r}}^{\top} \;\; q_{\text{upper}}^{\top} \,\right]^{\top}\]
注意规划器不指定骨盆的水平平移 \([x_{\text{pelvis}}, y_{\text{pelvis}}]\):该量与平衡所需的质心(CoM)动力学强相关,交由后端 MPC 来优化,实践中发现这样对步态风格几乎无影响,反而更自然。
运动分解
参考运动被拆成两部分:由输入速度决定、满足基本运动学与时序约束的名义分量(superscript \(v\)),和由动画参数向量 \(\boldsymbol{\Pi}\) 决定、编码风格的风格化分量(superscript \(\boldsymbol{\Pi}\)):
\[ \begin{aligned} z_{\text{pelvis}} &= z^{v}_{\text{pelvis}} + z^{\boldsymbol{\Pi}}_{\text{pelvis}} \\ \boldsymbol{\theta}_{\text{pelvis}} &= \boldsymbol{\theta}^{v}_{\text{pelvis}}\,\boldsymbol{\theta}^{\boldsymbol{\Pi}}_{\text{pelvis}} \\ p_{\text{foot},\mu} &= p^{v}_{\text{foot},\mu} \oplus p^{\boldsymbol{\Pi}}_{\text{foot},\mu} \quad \forall \mu \in \{l, r\} \\ q_{\text{upper}} &= q^{v}_{\text{upper}} + q^{\boldsymbol{\Pi}}_{\text{upper}} \end{aligned} \]
其中脚部位姿用刚体变换复合算子 \(\oplus\) 组合,相当于把风格化脚姿表达在名义脚坐标定义的运动参考系里。
技术细节
步态参数化(可编辑的三类数据)
参数设计目标是在”最大化表现力、最小化参数数量、最小化设计时间”之间取得平衡,同时从参数空间层面就杜绝违反关键运动学约束的可能。三类可编辑数据:
- 时间区间(Time Intervals):两步周期 CY、左摆动 LS、右摆动 RS。通过约束事件顺序 \(t_{LLO} < t_{LTD} < t_{RLO} < t_{RTD} < t_{LLO}+T_S\) 并对单双支撑相设最短时长下界,把可表达空间严格限制在”行走”范畴。
- 函数曲线(Function Curves):用三次样条参数化的时变轨迹(脚部平移/旋转、骨盆高度/旋转、上半身关节角)。脚部旋转由四个角 \((\theta, \psi_{\text{heel}}, \psi_{\text{toe}}, \gamma)\) 表示;受”反向足部锁定”绑定启发,脚跟/脚尖俯仰依次施加,并约束 \(-\tfrac{\pi}{2} \le \psi_{\text{heel}} \le 0\)、\(0 \le \psi_{\text{toe}} \le \tfrac{\pi}{2}\),从而保证脚的最低点始终在地面之上。
- 属性(Attributes):站姿的外撇角、宽度、前后偏置等常量,可实现窄步、宽步、外八、内八、非对称步态等。还包括脚跟/脚尖过渡时长参数 \(\Delta t_{\psi LO}\)、\(\Delta t_{\psi TD}\)。
相位映射与样本混合
采样器的关键是相位映射(phase map) \(\Omega(\phi)\):一个把通用相位 \(\phi\) 映射到某个具体步态时间 \(t\) 的可逆函数,使各触地事件时刻分别对应固定相位值(论文取 \(0, 0.1, 0.5, 0.6, 1\))。要把周期 \(A\) 的时间 \(t_A\) 关联到周期 \(B\) 的等价时间,用:
\[t_B = \Omega_B\!\left(\Omega_A^{-1}(t_A)\right)\]
这一构造保证触地事件时刻在不同周期间总能对齐,从而在混合时保留触地时序约束。属性和时间区间用简单 alpha 混合 \(r = (1-\alpha)r_A + \alpha r_B\)(凸组合天然保持顺序约束);函数曲线则先求混合周期的相位映射,再按相位对齐后逐点插值。作者指出该方法与基于动态时间规整(DTW)的注册曲线思想相通,但混合的是受触地时序约束的程序化步态参数而非关节帧数据,因此保证了所有混合运动的接触约束可行性。
速度插值
动画师在 9 个关键速度(前进快/慢、原地、后退快/慢、左右侧移、左右转)上创作样本,任意输入速度通过三步插值得到:先按 \(\dot{x}\) 混合前进/后退样本,再在归一化极坐标下混合转/侧移样本,最后按各自范数混合两个中间结果。所有混合比都过一个首尾导数为零的三次映射 \(f_{\text{soft}}(\alpha) = -2\alpha^3 + 3\alpha^2\),确保跨越样本区域时参数一阶导连续。
基于模型的控制与反馈
后端控制栈被当作黑盒,创作时固定不变:
- 质心规划器:MPC(类似 Wieber 2006)以稀疏 QP 形式,在约 2 s(约 4 步)预览窗口内联合优化水平 CoM 与 CoP 轨迹,125 Hz 更新。
- 全身控制器:500 Hz 的优化型逆动力学求解器(类似 Koolen 2016),在库仑摩擦与加速度约束下解算关节加速度和地面反力,输出关节力矩/位置/速度设定点。
- 步态反馈:三种启发式机制调节 CoM 误差——速度调整(应对持续误差)、落脚点调整(应对可由落脚位置修正的较大误差)、时间缩放(\(\kappa_{\text{time}} = e^{(k_p \epsilon + k_d \dot{\epsilon})}\),加快或放慢参考轨迹让 CoM”追上”参考)。三者分别对应小、中、大误差,且都在保持既定风格的前提下工作。
- 状态估计:融合编码器与 IMU 的全身估计器,用扩展卡尔曼滤波估计根朝向,触地时用零速观测估计骨盆平移。
实验结果
在三台差异显著的机器人上验证(见下表统计),仿真基于 MuJoCo,实时运行于 Intel i7:
| 机器人 | 作动器数 | 高度(mm) | 重量(kg) |
|---|---|---|---|
| Groot | 25 | 1155 | 18.5 |
| Groot 下半身版 | 10 | 650 | 19.3 |
| 成人尺寸人形 | 25 | 1640 | 74.5 |
| 恐龙形 | 20 | 615 | 16.9 |
- 小型恐龙(仿真):设计了对称的”恐龙步态”和非对称的”受伤步态”。恐龙步态从 0 到 0.4 m/s 时步频翻倍(\(T_S\) 从 0.95 s 降到 0.45 s);受伤步态在慢速时左右摆动相非对称、配合站姿前偏读作”右腿受伤”,高速时又混合回对称。推倒恢复实验(25 N、1 s 前推)清晰展示了时间缩放、落脚点调整、速度调整依次介入的过程。
- 成人人形(仿真):演示了放松人步、潜行步、双弹跳步、带脚跟着地/脚尖离地的中性步等,骨盆与脊柱偏航模拟了自然的髋肩反向旋转。
- Groot 硬件平台:把同一风格部署到仿真、实体、带全套戏服的实体三种配置,跟踪误差均值接近(仿真标准差更小),sim-to-real 差距较小,风格能良好迁移,且对未建模的戏服和边走边挥手等叠加动作鲁棒。下半身版(线接触脚、无踝滚转)也能较容易地创作动态步态。
- 设计效率:下半身 Groot 的弹跳步”几分钟”即可在硬件上直接调好;恐龙步态(含特征性尾巴/脖子动作)从零创作约 1–2 小时。
- 用户研究:4 名不熟悉工具的参与者(2 名有 Maya 经验、2 名有人形机器人经验)用 25–45 分钟各设计一个步态样本,反馈总体积极:交互性鼓励快速迭代与实验,上手比传统动画工具快;不足之处包括缺少时间线关键帧、步态时序与运动范围的限制。
贡献与局限
主要贡献:一套由紧密集成的步态编辑器、程序化动画与控制策略共同支撑的交互式创作工作流。与相关工作不同,它完全实时、无需离线优化或训练,因而能直接在物理机器人上编辑风格化步态,支持多样的步态时序、上半身动作、脚跟/脚尖行为,以及风格在连续速度范围上的变化。这得益于程序化步态参数化、相位空间样本混合,以及在扰动下仍保持既定风格的步态调整策略的结合。
局限与未来工作:
- 尽管有多重防摔安全措施,仍无法保证动画师的编辑不会超出控制器能力;提供安全保证的在线创作工具是未来方向。
- 手动曲线编辑并非对所有场景都合适,作者计划研究从关键帧动画和动捕数据自动导入步态。
- 当前仅限于行走周期,希望扩展到跑步、跳跃、周期性杂技等更具挑战的步态。
- 基于模型的控制栈难以搭建和调参、sim-to-real 差距难以识别和弥合;计划探索用本方法构建稠密无瑕疵的步态库来训练强化学习策略,并引入基于学习的参考跟踪控制器以补充现有规划器,同时保持交互式动画工作流。