腿足机器人之十三-强化学习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 a
参考资源链接:[SEA驱动器设计:柔顺性在机器人领域的革新应用](https://wenku.csdn.net/doc/7bakct3cbe?utm_source=wenku_answer2doc_content) SEA(串联弹性驱动器)的动力学建模是实现其在机器人系统中应用的关键步骤,特别是要确保模型能够准确反映系统的柔性特性。为了有效地构建这样的动力学模型,我们需要遵循以下步骤,并充分利用SEA的独特优势: 首先,需要对SEA的物理结构进行深入分析,包括弹簧、阻尼器等弹性组件以及与之相连的驱动装置(通常是电机)的力学特性进行详细描述。这些组件的行为将直接影响到系统的动态响应。 接着,采用拉格朗日或牛顿-欧拉方法来建立系统动力学方程。这些方程应能够描述SEA与负载之间的能量交换,以及如何通过改变弹簧刚度和阻尼系数来调整机器人的响应特性。 然后,考虑到SEA的柔性特性,需要在模型中引入相应的力-位移和力-速度关系。这些关系决定了SEA如何对弹性元件的形变和速度变化做出响应,从而在模型中实现力控制和能量管理。 除此之外,动力学模型还应考虑SEA在不同运动阶段(如支撑相、摆动相)中的行为,以便在机器人系统中进行精确的力控制和协调动作。 最后,使用数值模拟工具(如MATLAB/Simulink)来验证模型的准确性。通过与实验数据对比,调整模型参数以反映实际系统的行为。 在整个建模过程中,SEA的柔顺性和阻抗控制特点为动力学建模提供了独特的视角,使得最终模型能够更好地适应复杂动态环境,提高机器人系统的运动性能和能效。 为了更深入地理解这一过程,建议参考《SEA驱动器设计:柔顺性在机器人领域的革新应用》一书。该书不仅详细介绍了SEA的设计和应用,还提供了动力学模型的构建方法和案例分析,对于希望掌握SEA在机器人系统中应用的研究者和技术人员来说,是一份宝贵的资源。 参考资源链接:[SEA驱动器设计:柔顺性在机器人领域的革新应用](https://wenku.csdn.net/doc/7bakct3cbe?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shichaog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值