当前位置: 首页 > news >正文

腿足机器人之十三-强化学习PPO算法

腿足机器人之十三-强化学习PPO算法

    • 腿足机器人位姿常用强化学习算法
    • PPO算法核心原理
    • PPO算法的创新设计
    • PPO算法典型流程
    • 优势函数

对于复杂地形适应性(如楼梯、碎石路),传统的腿足机器人采用基于模型的控制器,该方法依赖精确动力学建模(如 ZMP 控制),存在参数调优困难以及环境扰动鲁棒性差,而采用端到端的强化学习方法,则将建模的任务交给了强化学习模型自主构建,这增加了模型对环境变化的自适应性。

在这里插入图片描述

腿足机器人位姿常用强化学习算法

PPO(Proximal Policy Optimization)算法稳定性强,适合大多数的仿真环境,如MuJoco/Isaac Gym,是初上手的首选,SAC(Soft Actor-Critic )算法在需要高效探索或真实机器人部署(样本成本高)时更优,际工程中,PPO+SAC 组合(如 PPO 微调 + SAC 迁移)已成为提升鲁棒性的常见方案。

  • PPO

    • 核心特点:
      • On-policy:依赖当前策略生成的数据,更新后数据即失效
      • 信任域约束:通过剪切目标函数(Clipped Surrogate Objective)限制策略更新幅度
      • 稳定性强:适合高维状态和动作空间,是机器人控制的基准算法
    • 适用场景:
      • 仿真环境中的行走、跑步等复杂运动(如 MuJoCo Humanoid)
      • 需要平衡探索与利用的任务
    • 优势:
      • 超参数鲁棒性高,易于实现和调试
  • SAC(Soft Actor-Critic)

    • 核心特点:
      • Off-policy:可复用历史数据,样本效率高
      • 最大熵优化:最大化策略熵以鼓励探索,适合复杂环境
      • 双 Q 网络:减少价值函数估计偏差
    • 适用场景:
      • 需要高效探索的连续控制(如机械臂操作、崎岖地形行走)
      • 对实时性要求较低但需高精度的任务
    • 优势:
      • 在 DeepMind 的《Learning to Walk in the Real World》等实际机器人项目中表现优异
      • 对高维动作空间(如多关节协同)的适应性优于 PPO
算法收敛速度最终性能超参数敏感性代码复杂度
PPO中等简单
SAC极高中等中等

PPO 通过替代目标函数的多轮优化和隐式信任域约束,解决了传统策略梯度方法样本效率低和 TRPO 实现复杂的问题,成为强化学习领域平衡性能与实用性的里程碑式算法。其设计思想被后续算法(如 PPO-Clip/PPO-Penalty)广泛继承,并成为机器人控制、游戏 AI 等场景的默认选择。

PPO算法核心原理

该算法是OpenAI在2017年发布的,OpenAI一直想做的是AGI,chatGPT是AGI决策中枢,而机器人是AGI在现实世界交互的核心,而机器人运动、姿态控制室交互中的核心。未来会有越来越多的AGI公司将研究机器人,也会有越来越多的机器人公司研究AGI。

为了便于理解,前面介绍过运动学、逆运动学、概率学介绍过腿足机器人的状态空间和动作空间,这里在罗列一下:

  • 状态空间(State),下面公式中为 s t s_t st
    • 本体感知:关节角度 / 速度、躯干姿态(欧拉角 / 四元数)、足端触力等
    • 外部感知:IMU 数据、地形高度图(RGB-D 相机输入需 CNN 编码)
    • 在上一篇文章中,还提到了Helix的VLA,就是加了txt输入,其实就是audio,和视觉类似,听觉/语言采用Embedding的方式输入,这里只是展示PPO算法核心原理不赘述。
  • 动作空间(Action),下面公式中为 a t a_t at
    • 电机位置 / 力矩控制(PD 控制器辅助平滑)
    • 混合动作:步态相位参数 + 关节目标角度(如 MIT Cheetah 的 RL+MPC 架构)

PPO方法的核心公式是:
g ^ = E t [ ∇ θ log ⁡ π θ ( a t ∣ s t ) ⋅ A ^ t ] ( 1 ) \hat g = \mathbb E_t \Big [ \nabla_{\theta}\log \pi_{\theta}(a_t| s_t) \cdot \hat A_t\Big ] (1) g^=Et[θlogπθ(atst)A^t]1
其符号含义如下:

  • g ^ \hat g g^,表示的是估计的梯度(g表gradient),上三角表示估计
  • θ \theta θ,表示的是参数集,因为我们这里采用的DRL(可参考前两篇博客),所以这里的参数集就是一个深度神经网络的参数集,PPO的算法就是使得神经网络的参数( θ \theta θ)最优(机器人行走、跑、操作物体等)。
  • π θ \pi_{\theta} πθ,策略网络(这里就是神经网络), π θ ( a t ∣ s t ) \pi_{\theta}(a_t|s_t) πθ(atst)表示的是神经网络输入状态 s t s_t st(如关节角度、躯干姿态),输出动作 a t a_t at (如关节目标角度)的概率。
  • log ⁡ π θ ( a t ∣ s t ) \log \pi_{\theta}(a_t|s_t) logπθ(atst),取对数的概率,表示是DRL模型(从PPO的角度这是一个策略)选择 a t a_t at动作的“偏好程度”。
  • A ^ t \hat A_t A^t,优势函数(Advantage Function) 的估计值,衡量在状态 s t s_t st下选择动作 a t a_t at相比平均表现的优劣。详细后面再展开
  • ∇ θ \nabla_{\theta} θ,表示PPO策略参数(就是DRL模型参数) θ \theta θ的梯度算子,其作用是指示如何调整参数 θ \theta θ以优化目标函数。 θ k + 1 = θ k + α ∇ θ ( g ^ ) \theta_{k+1} = \theta_k + \alpha \nabla_{\theta}(\hat g) θk+1=θk+αθ(g^)
  • E t \mathbb E_t Et是对时间步 t t t的轨迹数据求期望(实际中用经验平均代替),常常通过蒙特卡洛采样近似计算。

整个公式的意义是通过调整参数 θ \theta θ,使得高优势 A ^ t > 0 \hat A_t > 0 A^t>0的动作概率增加(可理解为走的更稳、更快、更节能),低优势 A ^ t < 0 \hat A_t <0 A^t<0的动作概率减少。

PPO算法的创新设计

替代目标函数和多轮次优化是PPO算法的创新点,大大提升了训练的效率和稳定性,二者算是协同不可分割。

  1. 替代目标函数(Surrogate Objective)
    采用CLIP机制来改进目标函数 g ^ \hat g g^
    L C L I P ( θ ) = E t [ min ⁡ ( r t ( θ ) A t , 1 − ϵ , 1 + ϵ ) A t ] ( 2 ) L^{CLIP}(\theta) = \mathbb E_t \Big [ \min(r_t(\theta)A_t, 1 - \epsilon, 1 + \epsilon)A_t\Big ] (2) LCLIP(θ)=Et[min(rt(θ)At,1ϵ,1+ϵ)At]2
  • r t ( θ ) = π θ ( a ∣ s ) π θ o l d ( a ∣ s ) r_t(\theta) = \frac{\pi_{\theta(a|s)}}{\pi_{\theta_{old}}(a|s)} rt(θ)=πθold(as)πθ(as),重要性采样比
  • ϵ \epsilon ϵ是超参数(通常取0.1~0.3),限制策略更新幅度。

2.多轮次优化指的是数据复用
其复用流程如下:

采样 N 步交互数据 → 2. 计算优势函数(GAE) → 3. 执行 K 次 minibatch 梯度更新(K=3~10)

PPO算法典型流程

  1. 数据收集:
    启动个N并行环境,每个环境运行T步,收集NT步数据。如训练腿足机器人走完10米这个任务,在NT步数据中有走完10米的,有走半步就倒的,有绕圈走完的,有很快走完的,等等
    记录状态、动作、奖励、值函数估计 V ( s ) V(s) V(s)
  2. 优势计算:
    使用截断 GAE 计算每步的优势值 A ^ t \hat A_t A^t
  3. 损失构建:
    对NT步数据计算组合损失 L C L I P + V F + S L^{CLIP+VF+S} LCLIP+VF+S
  4. 优化更新:
    执行多轮次(如 K=3~10)小批量随机梯度上升。

在数据收集的时候,在一个环境中,进行一步之后,就得到 s 1 ∣ s 0 , a 0 {s_1|s_0,a_0} s1s0,a0,这个时候是可以计算到一个梯度的,但是并没有完成走完10米这个任务,所以这个时候并不更新模型参数 θ \theta θ,然后再 s 2 ∣ s 1 , a 1 {s_2|s_1,a_1} s2s1,a1,这个时候同样可以得到一个梯度,可以知道的是这两个采样,都是基于就的策略 π θ o l d \pi_{\theta_{old}} πθold的,所以公式2中要约束新的策略不能偏离就的策略太远。同时通过并行采集和多轮次更新,充分利用数据,CLIP 机制和熵奖励共同避免策略崩溃,这样训练的效率就会高很多。

优化更新,如k取3时,当第一个3来的时候,梯度更新依赖的是 π θ o l d ( a ∣ s ) \pi_{\theta_{old}}(a|s) πθold(as),然后当k==6时,需要再次更新梯度以update策略参数,但是此时并没有使用第一个3更新之后的策略参数取采样(比如走完10米采样),使用的更新梯度的采样还是最早的 π θ o l d ( a ∣ s ) \pi_{\theta_{old}}(a|s) πθold(as)策略,所以前面需要CLIP,以约束偏离程度。

优势函数

优势函数(Advantage Function) 用于衡量在状态 s t s_t st下选择动作 a t a_t at的优劣,定义为:
A ( s t , a t ) = Q ( s t , a t ) − V ( s t ) A(s_t, a_t) = Q(s_t, a_t) - V(s_t) A(st,at)=Q(st,at)V(st)
其中 Q ( s t , a t ) Q(s_t, a_t) Q(st,at)是动作价值函数, V ( s t ) V(s_t) V(st)是状态价值函数,广义优势估计(Generalized Advantage Estimation, GAE)通过多步回报平衡偏差与方差,其原始形式为:
A ^ t G A E ( γ , λ ) = ∑ k = 0 + ∞ ( γ λ ) k δ t + k \hat A_t^{GAE(\gamma,\lambda)} = \sum \limits_{k=0}^{+\infty}(\gamma \lambda)^k \delta_{t+k} A^tGAE(γ,λ)=k=0+(γλ)kδt+k
其中 δ t = r t + γ V ( s t + 1 ] ) − V ( s t ) \delta_t = r_t + \gamma V(s_{t+1]}) -V(s_t) δt=rt+γV(st+1])V(st)是单步时序差分误差。 r t r_t rt是即时奖励。 γ V ( s t + 1 ] ) \gamma V(s_{t+1]}) γV(st+1])下一状态的折扣价值, − V ( s t ) -V(s_t) V(st)是当前状态价值的负值。

核心是通过加权多步时序差分误差,平衡短期与长期回报的贡献。公式推导表明,当 λ = 1 \lambda =1 λ=1时,截断 GAE 退化为有限步数的蒙特卡洛估计,确保了计算可行性和理论一致性。实际应用中,调整 λ \lambda λ和轨迹T长度可灵活控制策略优化的稳定性与效率。

在双足机器人中, V ( s ) V(s) V(s)表示从状态 出发,遵循当前策略 的预期累积折扣回报,可以通过神经网络(Critic 网络)预测当前状态的 “未来潜力”。在PPO中, Q ( s , a ) Q(s,a) Q(s,a)不直接由网络预测,而是通过使用Critic 网络预测下一状态价值隐式步骤计算。

下面是仿真环境训练的截图。
请添加图片描述

总的来说,PPO 凭借其稳定性、高样本效率和易用性,已成为腿足机器人运动控制的主流算法。通过合理的奖励函数设计和状态空间表征,PPO 可实现复杂地形下的自适应运动。未来结合 Sim2Real 技术和混合控制架构,将加速从仿真到实际机器人的部署进程。


http://www.mrgr.cn/news/92620.html

相关文章:

  • 每日学习Java之一万个为什么?[MySQL面试篇]
  • ubuntu22.04安装docker engine
  • 【AIGC系列】3:Stable Diffusion模型原理介绍
  • 记一次高并发下导致的数据库死锁解决方案
  • AWS ALB 实现灰度验证指南:灵活流量分配与渐进式发布
  • 使用schemdraw-markdown库绘制电路图
  • linux中安装部署Jenkins,成功构建springboot项目详细教程
  • 【Stable Diffusion】AnimatedDiff--AI动画 插件使用技巧分享;文生视频、图生视频、AI生成视频工具;
  • 【uniapp】在UniApp中实现持久化存储:安卓--生成写入数据为jsontxt
  • or-tools编译命令自用备注
  • postgresql postgis扩展相关
  • 第002文-kali虚拟机安全与网络配置
  • vue3学习
  • WiseFlow本地搭建实录---保姆教程
  • 跨AWS账户共享SQS队列以实现消息传递
  • Rt-thread源码剖析(1)——内核对象
  • 自然语言处理:稀疏向量表示
  • 智慧校园平台在学生学习与生活中的应用
  • [Lc优选算法] 双指针 | 移动零 | 复写零 | 快乐数
  • MySQL 创建指定IP用户并赋予全部权限(兼容8.0以下及8.0以上版本)