Engineering Case Study

复杂地形迁移 · HeightScan接入 · PPO训练收敛分析

把平地导航任务迁移到复杂地形,重点复盘 HeightScan 高度观测接入、PPO 训练不稳定来源和后续优化方向。

Isaac LabMotrixLabHeightScanPPO复杂地形迁移
ANYmal-C 复杂地形迁移演示截图

机器人

ANYmal-C

四足机器人导航任务迁移对象

观测

HeightScan

接入高度感知用于复杂地形策略训练

算法

PPO

定位自适应学习率震荡和奖励尺度问题

状态

迁移验证

已完成基础流程验证,继续优化训练稳定性

01

背景、角色与目标

项目背景

平地导航策略迁移到复杂地形时,机器人需要理解局部高度变化,否则容易出现步态不稳、训练曲线震荡或策略退化。

我的角色

我负责梳理 Isaac Lab 与 MotrixLab 的任务差异,接入 HeightScan 高度观测,并复盘 PPO 训练不稳定的主要来源。

交付重点

这个项目不是包装成最终比赛结果,而是展示我能把仿真任务迁移、观测配置、训练异常和后续排查路径讲清楚。

任务目标

  • 把 ANYmal-C 导航任务从平地迁移到复杂地形配置。
  • 接入 HeightScan 高度观测,让策略能获得地形起伏信息。
  • 定位 PPO 训练中的学习率震荡、奖励尺度和观测归一化风险。
  • 保留截图和仓库材料,作为可复核的工程过程证据。

技术方案

  • 先保证平地任务配置能跑通,再逐步替换地形、观测和训练参数。
  • 把 HeightScan 当作独立变量接入,观察训练曲线和策略行为是否出现明显波动。
  • 将排查重点收敛到学习率调度、奖励尺度、地形观测归一化和回放验证。

02

关键实现

任务迁移

从平地导航配置出发,调整复杂地形场景、机器人初始状态、观测输入和训练入口,确保任务能进入训练验证流程。

HeightScan 接入

把高度扫描观测加入策略输入,让机器人在复杂地形中具备局部地形感知能力,而不是只依赖自身姿态和速度。

训练稳定性复盘

观察到 PPO 自适应学习率和奖励尺度会放大训练曲线波动,因此后续优化重点放在学习率调度、奖励归一化和观测归一化。

03

迁移验证流程

STEP 1

Baseline

确认平地导航任务和训练入口可运行。

STEP 2

Terrain

切换复杂地形并检查机器人状态和接触反馈。

STEP 3

HeightScan

接入高度观测,验证输入维度和策略训练链路。

STEP 4

PPO Review

复盘学习率、奖励尺度和训练曲线震荡问题。

04

平地到复杂地形的变化

项目
改动前 / 风险
改动后 / 处理方式
观测输入
主要依赖机器人本体状态和目标相关信息。
加入 HeightScan 高度感知,补充局部地形起伏信息。
训练稳定性
平地任务更容易保持稳定曲线。
复杂地形会放大学习率、奖励尺度和观测归一化问题。
验证方式
看 reward 曲线和基本回放即可判断大致趋势。
需要结合地形回放、步态稳定性和失败状态一起判断。

05

问题、解决方案与判断标准

问题

复杂地形迁移后训练曲线更容易震荡。

解决方案

把学习率调度、奖励尺度和 HeightScan 归一化拆开排查。

怎么判断变好

通过训练曲线和仿真截图确认问题集中在稳定性调参,而不是任务入口不可运行。

问题

只写 Isaac Lab / PPO 容易变成关键词堆叠。

解决方案

把任务迁移、观测接入和不稳定来源作为页面主线。

怎么判断变好

卡片和工程页都能回答“具体做了什么、遇到什么问题、下一步怎么优化”。

06

可验证证据

ANYmal-C 复杂地形迁移演示截图

复杂地形迁移演示截图

截图展示 ANYmal-C 在复杂地形仿真场景中的运行状态,可作为任务迁移和 HeightScan 接入后的视觉证据。

07

代码位置

08

复盘

这个项目的重点不是宣称已经得到稳定最优策略,而是展示我能识别复杂地形迁移里的训练不稳定来源。

后续最该补的是对比实验:无 HeightScan vs 有 HeightScan、固定学习率 vs 自适应学习率、不同奖励尺度下的训练曲线。