地形建模与课程学习
平地速度跟踪建立了基本运动任务。扩展到坡面、台阶和不规则地面时,策略面对的接触条件和可行运动范围会发生变化。本篇说明地形如何成为训练分布的一部分,以及课程学习如何组织不同难度的样本。
前置内容为仿真环境与机器人模型与策略评估与实验记录。以下讨论是任务设计方法,不代表某个框架的默认地形生成器。
1. 地形表示与物理接触
Section titled “1. 地形表示与物理接触”地形既是几何对象,也是接触与运动约束的一部分。应分别检查可视几何、实际碰撞几何以及策略能获得的地形信息。
| 表示方式 | 主要特点 | 适用范围与限制 |
|---|---|---|
| 平面 | 几何简单,便于建立基线 | 不能表达起伏与障碍 |
| 高度场 | 用二维网格上的高度表示地表 | 适合单值地表,不能直接表达悬垂或同一水平位置的多层表面 |
| 三角网格 | 可表达较复杂表面 | 需核对网格质量、碰撞处理和计算成本 |
| 独立几何体组合 | 用箱体、斜面等构造台阶或障碍 | 需处理拼接、边缘与接触设置 |
相同外观不意味着相同接触行为。网格分辨率、台阶边缘和碰撞近似都会影响足端接触;应在实际碰撞模型上核对坡度、高度和可通行宽度。
2. 地形难度的参数化
Section titled “2. 地形难度的参数化”| 地形类型 | 可调参数 | 对运动任务的影响 |
|---|---|---|
| 坡面 | 坡度、坡长、方向 | 改变姿态、支撑和重力作用方向 |
| 台阶 | 高度、踏面深度、上行或下行 | 改变抬足、落足和机身通过条件 |
| 起伏地面 | 高度幅值、空间尺度、生成分辨率 | 改变局部接触和支撑连续性 |
| 离散障碍 | 尺寸、间距、排列 | 改变可落足区域与通行条件 |
难度通常是多维的。相同台阶高度下,更窄的踏面或更高的目标速度可能明显增加难度。因此“第三级”只有在对应的具体参数范围被记录后才有意义。
速度目标也要与地形可行性匹配。在狭窄台阶上随机给出高速侧移指令,失败可能来自目标不合理,而不只是策略能力不足。
3. 地形信息与策略可观测性
Section titled “3. 地形信息与策略可观测性”仅使用本体观测的策略可以利用姿态、关节状态和历史对接触变化作出反应;带地形感知的策略还可以获得高度采样、深度图等信息。两者面对的输入条件不同,不能仅凭相同地形和网络规模直接比较。
若使用机身附近的高度采样,应记录采样点坐标系、排列、相对高度定义、裁剪和更新频率。训练中直接读取精确高度,部署时则需要相应传感器或估计结果;不能把仿真内部地形信息当作自动可用的实机输入。
无论是否提供地形观测,生成地形时都应检查出生区域、机器人初始高度和回合边界,避免将穿模、越界或生成错误混入能力评价。
4. 课程学习的调度机制
Section titled “4. 课程学习的调度机制”课程学习通过改变训练阶段接触的任务分布,使样本难度与策略当前能力相匹配。它可以作用于地形、指令或扰动,本篇以地形等级为例。
一种示意调度使用近期成功率 和两个阈值:
为当前等级,两个阈值之间的间隔可以减少频繁升降。还应规定统计窗口、最小样本量和升级后的观察周期。这是教学规则,并非 legged_gym 或 mjlab 的统一实现。
成功判据应对应任务。例如穿越地形可结合沿目标方向的有效进度、完成情况与失败条件;仅以移动距离升级,可能把侧滑或无目标运动当成成功。对零速保持任务则需要另一种判据。
在并行训练中,可以为每个环境维护等级,也可以按全局统计调整分布。前者允许不同环境承担不同难度,后者实现更简单但可能掩盖局部失败。等级改变通常在适当的回合边界应用,避免机器人脚下的地形在交互中突然替换。
大规模并行四足训练中的地形课程可参考 Learning to Walk in Minutes。具体升级规则需结合所用任务阅读,不能把论文实例当作所有地形的通用标准。
5. 难度覆盖与遗忘控制
Section titled “5. 难度覆盖与遗忘控制”课程不必使全部环境始终停留在最高难度。保留一部分基础地形有助于持续检查基本运动能力,也能避免训练分布完全失去简单场景。
应记录各等级的样本占比、成功率和有效训练步数。平均等级提高说明采样分布发生了变化,不单独证明固定地形上的性能提高;总奖励下降也可能是训练进入更难条件后的结果。
同时提高地形、速度和扰动难度会增加归因困难。可以先固定其中两项,再扩展第三项,并保留相同的独立评估集合。
6. 地形泛化的评估协议
Section titled “6. 地形泛化的评估协议”| 评估集合 | 目的 |
|---|---|
| 已训练参数范围内的新地形实例 | 检查是否依赖少数固定几何布局 |
| 已训练范围的边界条件 | 检查能力接近训练边界时的变化 |
| 单项超出训练范围的地形 | 测量外推边界,并明确其未受训练覆盖 |
| 固定平地与基础指令 | 检查复杂地形训练后是否损害基本运动 |
分别报告地形类型、参数、指令、重复次数、完成率和失败原因。地形生成器的随机种子也应保存;只更换种子但仍使用相同参数范围,属于新实例测试,不等于分布外测试。
- 为台阶任务定义至少两个难度参数,并说明目标速度如何影响难度。
- 设计一组升级、降级与保持规则,明确统计窗口和成功判据。
- 给出固定评估集合,区分新实例、边界条件与超范围测试。
- 分析平均地形等级上升但固定台阶完成率下降的可能原因。