四足控制器 · 一:把问题说清楚
先不训练。把“落地后站稳”写成初始条件、动作边界与验收标准,再决定第一轮实验需要回答什么。
“让机器人落地后站稳”听起来像一个任务,实际还缺很多条件。从多高开始?身体是否倾斜?地面怎样?只要不翻倒就成功,还是还要限制冲击、恢复时间和动作幅度?
这些问题不写清,训练得到的好成绩也不知道在回答什么。这两篇是任务设计的推演,没有附带训练日志或真机结果,不能当作已完成的四足实验报告。
先把一次落地分成几段
可以先观察腾空、首次接触、吸收冲击、恢复支撑这四段。它们不一定有整齐的分界,却会提出不同的问题:接触前腿摆在哪里?接触时能否顺应?接触后身体和关节是否进入允许范围?
周期行走常能借助反复出现的状态组织控制;一次落地则有短促的接触瞬态。这里不据此断言“落地普遍比走路难”,而是用这个差别决定要记录什么。
写一张任务卡,再开训练
以平地落地为构造例子,任务卡至少包含以下约定。具体阈值必须根据模型与平台设置,不能从这篇文章直接拿去上机。
| 要约定什么 | 为什么会改变结果 |
|---|---|
| 初始高度、姿态、速度的范围 | 只测直立静止下落,与有扰动下落不是同一任务 |
| 策略能看到哪些状态、多久更新一次 | 使用仿真真值与依赖真实传感器,信息条件不同 |
| 输出是位置目标、力矩还是别的量 | 同一个数值在不同接口中代表不同动作 |
| 动作幅度、速率与接触约束 | 不能用越过硬件能力的动作换成功 |
| 失败条件与成功检查时刻 | 短暂撑住与持续稳定应分开记录 |
“站稳”可以进一步拆成姿态、运动速度和持续时间的条件。设定之前,先说明每个量从哪里测、容差为什么合理;别只让肉眼觉得动画不错。
第一轮先要一个能解释的参照
训练前,先运行平台允许的简单参照,例如固定姿态配合已有的底层控制。参照未必优秀,但它帮助检查环境、终止条件和评估脚本,也让后续变化有比较对象。
给候选策略与参照使用同一批初始条件。记录每次是否达标、何时失败,以及接触附近的状态和动作。不要只保留一段成功视频。
没有成功,第一轮还有什么价值?
如果能指出失败发生在首次接触还是恢复阶段,并保留下一个试验需要改变的条件,这轮仍然提供了信息。反过来,只有“奖励上涨”的曲线,未必能说明任务更接近完成。
把仿真结果拆成待检查的假设
从仿真转向硬件时,接触与摩擦、执行器能力、状态估计和通信延迟都值得核对。先找证据判断哪项差异主导当前失败,再决定是否扩大随机化或改接口;不必先猜“最大的三个差距”并把它当结论。
可以先读迟到的反馈,体会数值正确但到达过晚怎样改变行为。真正评估成功率时,再用同一张试卷检查测试分布。
离开这一篇前,试着独立写下三句话:从什么状态开始、机器人被允许做什么、怎样判定这次结束得好。写不出来时,先继续定义任务;写出来后,再看奖励会怎样偏离它。