跳转到内容

四足强化学习任务的定义与组成

训练算法决定如何改进策略,任务定义决定策略在什么条件下学习什么行为。本篇建立一份完整的任务说明,后续“仿真与任务构建”再分别展开。示例采用平地速度跟踪:十二关节四足机器人接收速度指令,输出相对默认姿态的关节位置偏移。

“让机器人走好”无法直接实现。可以将目标具体化为:在规定速度范围内跟踪前进、侧移和转向指令,同时控制动作变化、关节负载和不期望的碰撞。

这里至少包含三类设计:任务目标、允许的运动条件、评价与结束规则。平地行走和复杂地形跨越即使都使用 PPO,也不是同一个训练任务。

要素需要回答的问题速度跟踪例子
模型与场景什么机器人,在什么物理条件下运动?浮动基座、十二个驱动关节、平地接触
Command希望机器人做什么?前进速度、侧向速度、偏航角速度
Observation策略能获得哪些信息?指令、角速度、重力投影、关节状态、动作历史
Action策略通过什么接口影响机器人?十二个目标关节角偏移,经 PD 转换成力矩
Reward怎样评价动作后的结果?跟踪奖励及动作变化、负载等惩罚
Episode何时结束,下一回合如何开始?失败终止、时长截断和状态重置

模型和场景承载物理转移,其余要素共同定义学习问题。改变机器人质量、控制周期或初始化分布,也会改变策略面对的任务。

指令、观测与奖励的目标一致性

Section titled “指令、观测与奖励的目标一致性”

若奖励要求跟踪某个随机速度,却没有向策略提供该目标或可推断目标的信息,策略就难以知道本回合希望它做什么。速度指令与实际速度还必须在一致的坐标约定下比较。

位置偏移动作可以写为:

qd=qdefault+saclip(a,amax,amax)q_d=q_{\text{default}}+s_a\,\operatorname{clip}(a,-a_{\max},a_{\max})

这只定义目标角度,后面还需要关节控制和力矩约束。零动作表示回到默认目标姿态,并不表示电机不出力。动作裁剪也不能代替关节位置与力矩约束。

策略部署时需要的输入应当有获取途径。仿真真值可以用于奖励、评价,也可以作为训练阶段价值网络的特权输入;是否进入策略观测,是另一项需要明确的设计。

奖励评价与终止判定的功能划分

Section titled “奖励评价与终止判定的功能划分”

奖励给出评价,终止规定转移是否继续。一项碰撞惩罚不一定导致重置;失败终止也不一定自动附带负奖励。需要分别定义,不能依赖名称猜测。

下面是用于理解的顺序,不是某个框架的可运行接口:

  1. 从当前状态和当前指令构建观测,策略产生动作。
  2. 处理动作,推进若干物理步。
  3. 读取动作后的状态,判定失败或截断,计算该次转移的奖励。
  4. 保存需要的回合末信息;重置结束的环境,并准备后续指令。
  5. 构建下一次策略调用的观测。

指令更新、奖励计算和重置的实际位置需要看实现。若本步中途更换指令,应说明奖励评价的是哪个指令;自动重置后也要区分新回合初始观测与上一回合末观测。

先用文字确定这些字段,再打开框架配置:

字段要记录的内容
机器人与场景模型来源、驱动关节、地面、初始姿态
时间物理步长、策略周期、回合时限
指令单位、坐标系、范围、采样与更新规则
观测各项来源、维度、顺序、缩放和历史
动作关节映射、缩放、控制律和限幅
奖励各项公式、权重、时间缩放与记录方式
回合失败条件、截断规则、重置状态与缓存

完成标准是:另一位成员能依据这张表解释策略输入输出,并指出实现时需要核对的代码位置。尚未确定的字段应明确标出,不能用框架默认值掩盖任务决策。

换框架后,任务是否不变? 设计目标可以保持,但需要重新核对模型导入、控制、观测、奖励缩放和重置等语义。同名参数不能保证物理效果相同。

奖励越多越好吗? 每项都增加权衡。先建立可解释的基本目标与约束,再针对观察到的问题调整,并保存修改前后的对照结果。

  1. 仿真环境与机器人模型
  2. 环境状态与策略观测
  3. 策略动作与关节控制
  4. 运动指令与任务目标
  5. 奖励函数与回合机制