3. 步态基础
四足机器人的步态(Gait)是其腿部运动模式的周期性描述,直接决定了机器人在不同地形下的稳定性、能效与机动性。在强化学习(RL)应用于步态控制之前,理解经典生物步态的定义、相位时序与运动学特征是构建奖励函数、动作空间约束以及仿真环境参数的基础。本章将系统梳理五种典型步态——walk(行走)、trot(小跑)、pace(踱步)、bound(跳跃)与gallop(飞奔)——的严格定义、足端触地时序、支撑相与摆动相的比例关系,并给出各步态在运动学层面的关键特征参数。
3.1 步态的核心定义与相位参数
步态描述的核心是占空比(Duty Factor)与相位偏移(Phase Offset)。占空比指单腿在一个步态周期中处于支撑相的时间比例,记为β;相位偏移指某条腿相对于参考腿(通常为左后腿LH)的触地时刻延迟,用周期百分比表示。对于四足机器人,步态周期T通常定义为同一腿连续两次触地的时间间隔。根据占空比可将步态分为行走类(β>0.5,任意时刻至少三条腿支撑)与奔跑类(β<0.5,存在腾空期)。
关键公式:步态相位 φ_i = (t_i - t_ref) / T × 360°,其中 t_i 为第 i 条腿的触地时刻,t_ref 为参考腿触地时刻。在强化学习环境中,相位通常被编码为 sin(2πφ) 与 cos(2πφ) 两个连续值,以避免角度跳变导致的策略不连续问题。
3.2 五种典型步态的时序特征
3.2.1 Walk(行走步态)
Walk 是最稳定的低速步态,占空比 β≈0.75,任意时刻至少有三条腿支撑。其典型相位顺序为:LH → LF → RH → RF,相邻腿触地间隔约为周期的25%。这种步态下机器人重心始终落在由三条支撑腿构成的三角形内,静稳定裕度大,适合崎岖地形或需要精确落足点的场景。运动学上,Walk 步态的质心(CoM)垂直波动较小(通常小于2cm),侧向摆动明显,步频较低(1-2Hz)。
3.2.2 Trot(小跑步态)
Trot 是对角步态,两条对角腿(LF+RH 与 RF+LH)成对摆动,占空比 β≈0.5。相位偏移为:LF 与 RH 同相,RF 与 LH 同相,两组之间相差180°。Trot 步态在速度与稳定性之间取得良好平衡,是四足机器人最常用的中速步态(1-3 m/s)。运动学上,Trot 步态存在极短的腾空期(β略小于0.5时),支撑相期间机器人形成对角支撑线,侧向摆动小,能效较高。
3.2.3 Pace(踱步步态)
Pace 是同侧步态,即左前与左后(LF+LH)同时摆动,右前与右后(RF+RH)同时摆动,两组相位差180°。这种步态在横向(侧向)稳定性上较差,因为支撑腿位于同一侧,导致重心投影容易超出支撑多边形。Pace 步态常见于骆驼等长躯干动物,在四足机器人中较少使用,但在特定窄通道或侧向力较大的场景中可能具有优势。其运动学特征为侧向摆动幅度大,俯仰角变化小。
3.2.4 Bound(跳跃步态)
Bound 步态中,前腿对(LF+RF)与后腿对(LH+RH)分别同步运动,两组相位差180°,占空比 β≈0.3-0.4。这种步态存在明显的腾空期,机器人以“前腿先着地、后腿再着地”或相反顺序完成一个周期。Bound 步态适合高速运动(3-5 m/s)和跳跃障碍,但俯仰角变化剧烈,对姿态控制要求高。运动学上,Bound 步态的质心垂直波动可达5-8cm,需要强大的腿部爆发力。
3.2.5 Gallop(飞奔步态)
Gallop 是不对称步态,四条腿的触地时刻各不相同,通常顺序为:LH → RH → LF → RF(或镜像),占空比 β≈0.2-0.3。Gallop 是速度最快的步态(可达6-10 m/s),包含两个腾空期(前腿腾空与后腿腾空),身体呈现明显的“伸缩”运动——前腿着地时身体前部压缩,后腿着地时身体伸展。这种步态对关节力矩和功率要求极高,在足式机器人中实现难度最大,通常需要弹性元件辅助。
| 步态 | 占空比 β | 相位顺序 | 支撑腿数 | 典型速度 | 稳定性 | 能效 |
|---|---|---|---|---|---|---|
| Walk | 0.75 | LH→LF→RH→RF | 3-4 | 0.5-1 m/s | 极高 | 中 |
| Trot | 0.5 | LF+RH ↔ RF+LH | 2 | 1-3 m/s | 高 | 高 |
| Pace | 0.5 | LF+LH ↔ RF+RH | 2 | 1-2.5 m/s | 低 | 中 |
| Bound | 0.3-0.4 | LF+RF ↔ LH+RH | 0-2 | 3-5 m/s | 中 | 中高 |
| Gallop | 0.2-0.3 | LH→RH→LF→RF | 0-1 | 6-10 m/s | 低 | 高 |
3.3 运动学特征对比与关键参数
从运动学角度,步态差异主要体现在足端轨迹、关节角度范围与质心轨迹三个方面。Walk 步态中,足端轨迹通常采用摆线或修正摆线,抬腿高度约3-5cm,髋关节角度变化范围约30°-50°。Trot 步态中,足端轨迹更扁平,抬腿高度降低至2-3cm,以减小垂直方向的能量损耗。Bound 与 Gallop 步态中,足端轨迹呈现明显的“后蹬-前摆”特征,踝关节(或等效末端)在触地瞬间需要产生较大的向后速度以提供推进力。
在强化学习框架中,运动学特征通常被编码为观测空间的一部分。例如,将各关节的角度、角速度、足端接触力以及机身姿态(roll/pitch/yaw)作为状态输入,而将关节力矩或位置增量作为动作输出。步态相位本身也可以作为观测变量,帮助策略网络识别当前处于支撑相还是摆动相,从而输出更合理的控制指令。
实战经验:在仿真环境中训练 Trot 步态时,建议将占空比初始化为0.5,并允许策略在0.45-0.55范围内自适应调整。若直接固定占空比,策略容易陷入局部最优,无法适应地形变化。同时,在奖励函数中加入对支撑相足端滑移的惩罚项,可显著提升步态的稳定性。
3.4 案例拆解:基于强化学习的 Trot 步态生成
以宇树科技 Go1 机器人为例,其仿真模型在 MuJoCo 环境中训练 Trot 步态。初始设置:目标速度 1.2 m/s,步态周期 T=0.4s,占空比 β=0.5。观测空间包含 24 维:机身线速度(3)、角速度(3)、姿态四元数(4)、12 个关节角度与角速度。动作空间为 12 维关节位置增量,经 PD 控制器映射为力矩。
训练初期,策略网络输出的动作导致机器人频繁摔倒。分析发现,问题在于相位偏移未正确初始化——四条腿的触地时刻完全同步,形成了类似“跳跃”而非“小跑”的模式。解决方案:在奖励函数中加入相位惩罚项,即当 LF 与 RH 的触地时间差偏离半个周期时施加惩罚。具体实现为:
# 伪代码示例
phase_diff = abs(contact_time_LF - contact_time_RH) % T
target_diff = T / 2
penalty = 10 * min(phase_diff, T - phase_diff) / T
reward -= penalty
经过 2000 次迭代后,机器人成功学会了标准的 Trot 步态,足端轨迹呈现清晰的椭圆形状,质心波动从初始的 6cm 降低至 2.5cm。进一步调整奖励权重后,步态能效(单位距离能耗)提升了约 18%。
3.5 常见误区与总结复盘
误区一:认为步态相位是固定不变的。实际上,真实生物在变速或转向时,步态相位会连续调整。强化学习策略应允许相位在一定范围内浮动,而非硬编码。
误区二:忽略占空比对稳定性的影响。当 β 接近 0.5 时,机器人处于静稳定与动稳定的临界点,任何扰动都可能导致摔倒。建议在训练初期使用 β=0.6 的保守值,逐步降低。
误区三:将步态周期设为固定值。不同地形下最优步频差异显著,例如松软地面需要降低步频以增大支撑时间。策略网络应输出步频的调整量。
总结而言,步态基础是强化学习控制四足机器人的基石。Walk 提供静稳定参考,Trot 是能效与速度的平衡点,Pace 适用于特殊场景,Bound 与 Gallop 则面向高速机动。在构建 RL 训练环境时,必须精确建模各步态的相位时序与运动学约束,并通过奖励函数引导策略探索合理的步态模式。下一阶段,我们将讨论如何将步态参数(占空比、相位、步频)作为可学习的隐变量,实现步态的自适应切换。