MaxKB 的 RAG 引擎和向量存储实现细节
枚呵旧促前言:
最近在研究基于 legged_gym 的四足机器人控制。在啃代码和论文的过程中,Policy Gradient(策略梯度)是一个绕不开的核心概念。
面对一堆
和
符号,我不禁思考:这些抽象的数学公式,到底是如何变成控制电机输出扭矩的指令的?
本文将从最基础的目标函数出发,推导策略梯度公式,并结合 Sim-to-Real(仿真到真机)的工程难点,记录我的理解。
1. 核心目标:我们在优化什么?
在强化学习(RL)中,我们的机器狗(Agent)拥有一个策略网络(Policy Network),参数为
。我们的终极目标是找到一组参数,使得机器人在环境中的期望回报(Expected Return)最大化。
我们将这个目标函数记为
:
这里的符号含义如下:
(Trajectory):轨迹。代表机器人从开机到结束的一连串状态
和动作
的序列。
:回报。这条轨迹获得的总分数(例如:走得远+10分,摔倒-100分,电机发热-5分)。
:概率。在当前策略
下,走出这条特定轨迹的概率。
简单来说,
就是机器人目前的“平均考试成绩”。我们要做的,就是通过梯度上升,把这个分数提上去。
2. 数学推导:Log-Derivative Trick
为了提升
,我们需要求它的梯度
。这里的核心难点在于:我们无法直接对环境(物理世界)求导。但是,利用似然比技巧(Likelihood Ratio Trick),我们可以巧妙地绕过环境模型。
2.1 展开为积分
期望本质上是加权平均。我们将
写成积分形式:
假设奖励函数
是由环境给出的客观反馈,与
无关,我们可以把梯度算子移进去:
2.2 引入 Log 技巧
利用微积分恒等式
,我们可以将
替换为:
代回原式:
2.3 变回期望,消掉环境
现在积分里又出现了
,这正是期望的定义。同时,将轨迹概率
展开后,所有与策略参数
无关的环境转移概率(Dynamics)在求导时都变成了 0。
最终,我们得到经典的策略梯度公式:
Note: 这个公式的强大之处在于 Model-Free。它不需要知道机器人腿有多重、地面摩擦系数是多少,只要能采样(Rollout),就能训练。
3. 物理直觉:梯度如何影响电机?
公式中的
实际上是在调整策略网络输出分布的均值(对于高斯策略)。
我们可以将参数更新过程具象化为:
正反馈(Reward > 0):
如果机器狗做了一个动作(比如前腿抬高),并且之后没有摔倒,获得了正奖励。
梯度会增加该状态下输出“前腿抬高”的概率。
电机层面的效果:神经网络会记住这个关节位置,下次遇到类似状态,会更倾向于输出这个位置指令。
负反馈(Reward < 0):
如果机器狗因为步幅过大导致劈叉,获得了负奖励。
梯度方向反转,抑制该动作的概率。
电机层面的效果:神经网络会学会“收敛”,减小输出幅度。
4. 工程挑战:Sim-to-Real Gap
在 Isaac Gym 仿真中,基于上述原理训练出的策略往往表现完美,但直接部署到真机(如 A1 或自定义的 8010 电机狗)上,常常会失效。
这就是著名的 Sim-to-Real Gap,主要源于以下差异:
4.1 执行器动力学(Actuator Dynamics)
这是最关键的差异。
Sim: 理想电机。指令
下发,实际扭矩
瞬间到达。
Real: 真实电机(如宇树 8010)是一个复杂的动力学系统,存在带宽限制、死区、摩擦。高频的剧烈抖动指令在真机上根本执行不出来,甚至会导致电机过热保护。
4.2 延迟(Latency)
Real: 传感器数据(IMU MINS-200)通过串口回传
C++解析
Python推理
指令下发。这个闭环通常有 15ms-30ms 的延迟。
如果训练时没有模拟这个延迟,策略网络在真机上就会因为“反应慢半拍”而发生振荡。
4.3 解决方案:域随机化(Domain Randomization)
既然无法精准建模真实世界,我们就让仿真环境变得足够“恶劣”。在 legged_gym 中,我们通常会开启:
Mass Randomization: 随机改变机身质量。
Friction Randomization: 地面摩擦系数在 0.5~1.5 之间跳变。
Push Robots: 定时给机器人施加随机外力推挤。
Lag Simulation: 模拟随机的控制回路延迟。
只要策略能在这个充满了随机扰动的“混沌宇宙”中存活,它在那个唯一的真实世界中大概率也能稳定行走。
5. 总结
Policy Gradient 将数学上的概率优化与物理上的电机控制连接了起来。理解了这个过程,不仅有助于调参(Reward Scaling),更能让我们在面对 Sim-to-Real 失败时,理性分析是哪一部分分布(Distribution)出了问题。
目前的计划是先在 Isaac Gym 和 MuJoCo 之间跑通 Sim-to-Sim 的验证流程,利用 MuJoCo 更精准的物理引擎来检验策略的鲁棒性,为之后的真机部署打好基础。
更多推荐




所有评论(0)