公司动态
RL 训练不会一步到位 —— 四足机器人三阶段调参实战指南
RL 训练不会一步到位 —— 四足机器人三阶段调参实战指南Success Rate 0.97 并不算结束。从“能走”到“走得像样”,才是强化学习落地最容易被跳过的环节。🤔 一次回头看的启发80 万步训练结束,Success Rate 0.97,FPS 232——数字看起来非常漂亮。但切到 OrcaLab 的 3D 渲染画面一看,8 台 Lite3 机器人跟婴儿学步似的:小碎步、不敢发力、身体僵硬地往前挪。直觉反应是 reward 参数没给对。回头看最早的 reward log,其实信号早就出现了:Joint accelerations reward: -0.000014 | -2704 ← 步均 0.000014,累计 -2704 Follow command linvel reward: +0.003 | +0.17 ← 步均 0.003,累计 +0.17 Torques reward: -0.000058 | -289 ← 累计也很大惩罚项的累计值是奖励项的 16000 倍。策略在巨大的惩罚压力下,自然学会了“能动但不敢动”的最优解。📐 三阶段调参框架RL 训练从来不是一套参数跑到底。每一步到位之后,就应该切换目标了:第一阶段:跑通(不再报错,机器人动了)第二阶段:会走(Success Rate 回正且稳定上升,Total Reward 0)第三阶段:走好(看渲染画面,步态自然流畅)第一阶段:跑通目标:环境创建成功、模型加载成功、不报错。信号:gRPC 连接正常、子进程不崩溃、torch.cuda.is_available() == True、训练 loop 能正常循环。这阶段的典型问题通常是依赖版本冲突、Windows 多进程 spawn 崩溃、CUDA 不可用或 checkpoint 损坏。这全都是工程问题,不是算法问题。调参策略:不调参数,先让程序活下来。第二阶段:会走(Reward 配比)目标:从随机抽搐到能稳定行走。Success Rate 上升,Total Reward 由负转正。信号:看 reward log。累计值几千的惩罚项是重点削减的对象。关键方法:算数值比例。千万别凭感觉调参数。把一次 reward log 拉出来,用公式计算:每一项的「步均」×「每 episode 步数」= 累计值。找出累计值最大的惩罚项和最大的奖励项,算出比例: