跳转到内容

四足运动控制中的强化学习

四足机器人的运动依赖感知、状态估计、策略、关节控制和执行等环节。本篇先说明强化学习策略在系统中的位置,再讨论训练与运行的区别。后续以十二关节四足机器人的速度跟踪任务为例;具体输入、输出和控制频率属于任务设计,并非所有框架的固定配置。

1. 四足运动控制系统的层次结构

Section titled “1. 四足运动控制系统的层次结构”
环节输入与输出一个例子
任务与导航将用户目标转换成运动指令将“向前走”转换成期望前进速度
感知与状态估计将传感器数据转换成可用状态由 IMU 和编码器获得姿态、角速度和关节状态
运动策略根据观测和指令产生动作输出十二个关节的目标位置偏移
关节控制将动作转换成执行命令由目标角度和当前状态计算 PD 力矩
驱动与机构执行命令并产生新的运动状态电机驱动关节,足端与地面接触
四足机器人从感知到执行的系统结构
四足机器人系统架构示意图

强化学习通常承担运动策略这一环节。策略可以写成 at=πθ(ot)a_t=\pi_\theta(o_t):参数为 θ\theta 的网络接收观测 oto_t,输出动作 ata_t。训练时还可能从策略定义的分布中采样动作。

这个边界取决于方案。有的系统单独估计速度,有的策略带有估计模块或利用观测历史推断运动状态。因此阅读项目时,应先画出实际数据流,再判断哪些功能由策略承担。

策略接收的是有顺序的数值。输入中的第一个数究竟是前进速度指令还是机身角速度,由任务定义决定;模型权重不会替使用者核对这个含义。

一份可用的接口说明至少要记录:

  • 观测各项的来源、单位、坐标系、顺序、缩放和历史长度;
  • 动作的关节顺序、物理含义、缩放、默认姿态和限幅;
  • 策略调用周期,以及两次调用之间关节控制如何执行。

例如,训练时动作第 0 项对应左前腿髋关节,部署时却被送到右后腿,向量维度仍然正确,但物理行为已经改变。接口一致性需要逐项核对,不能只检查网络是否成功加载。

训练时,策略与仿真环境反复交互。环境提供状态转移、奖励和回合边界,训练算法使用这些数据更新网络参数。

运行一个训练好的策略时,通常只做推理:构建观测、计算动作、执行控制,再读取新状态。此时一般不再根据奖励在线更新参数。训练中的随机探索和评估时采用的动作选择方式也可能不同。

内容训练阶段常规部署阶段
状态来源仿真状态及模拟的传感器、估计量传感器与状态估计
指令来源按任务规则采样,也可使用预设序列遥控器、导航或任务程序
奖励用于评价交互并支持参数更新通常不参与策略推理
网络参数由训练算法更新通常固定
执行对象仿真机器人真实机器人

仿真中能读取的信息,不一定能在实机获得。训练时可以为价值网络提供额外信息,但部署所需的策略输入必须有明确来源,详见 环境状态与策略观测

4. 强化学习与模型化控制的关系

Section titled “4. 强化学习与模型化控制的关系”

模型化控制常通过运动学、动力学、步态规划和优化来确定运动命令;强化学习通过交互数据优化策略。两者可以组合,例如由策略给出关节目标,再由 PD 控制器执行,也可以由策略调整控制器的部分参数。

不能仅凭使用了神经网络就推断整套系统不需要模型、估计器或执行约束。一个策略在仿真中表现良好,也不能说明模型误差、通信延迟和关节映射已经解决。

选一套你能读到的机器人程序,画出“传感器 → 观测 → 策略 → 动作处理 → 关节执行”的流程,并回答:

  1. 期望速度来自哪里,在哪一步进入策略?
  2. 策略输出的是角度、角度偏移还是力矩?
  3. 哪些输入由传感器直接提供,哪些需要估计?
  4. 关闭训练算法后,推理和控制是否仍能独立运行?

能标清每个箭头上传递的数据及其单位,就具备了阅读训练环境的基础。

策略是否能同时处理导航和运动? 可以设计这样的系统,但本文采用上层给运动指令、下层策略跟踪指令的分工,避免把不同层级任务混在一起。

机器人摔倒是否说明策略没训练好? 还应检查状态估计、观测处理、关节映射、控制参数和执行时序,沿数据流定位原因。