Cubic Doggo升级:用水平推力训练四足机器人

Cubic Doggo四足机器人通过水平随机推力训练提升抗干扰能力,并开源代码与调试经验。
Cubic Doggo项目展示了四足机器人强化学习训练的最新进展,核心是在训练中引入水平方向随机推力(最高5N,针对3kg机器人),显著提升抗干扰能力。作者采用课程学习调度,逐步扩大域随机化范围并收紧奖励/惩罚阈值,同时加入力矩均衡惩罚、足端打滑惩罚、动作低通滤波和熵系数调整等机制。调试方面,强调了零动作测试、日志记录终止原因和课程调度值,并利用LLM分析.csv训练曲线。部署时将模型导出为ONNX并嵌入训练配置,代码已在GitHub开源,为开发者复现和改进提供了便利。
四足机器人强化学习训练又有新进展。Reddit社区分享的Cubic Doggo项目展示了最新训练成果:通过引入水平方向随机推力,机器人的抗干扰能力显著提升。作者不仅公开了训练配置和部署代码,还总结了从仿真到落地的实战经验。

训练策略升级:从课程学习到域随机化
本次更新的核心是在训练中加入了水平推力随机化——对3公斤的机器人施加高达5N的随机力,模拟真实环境中的侧向冲击。视频中红色箭头标出了这些力的方向,训练后期的趋势显示机器人逐渐学会了抵抗这些扰动。
作者采用了课程学习调度:初期仅使用关节位置初始化的惩罚项,随着训练迭代逐步扩大域随机化范围,并收紧奖励/惩罚阈值。这种渐进式策略让机器人先掌握基础步态,再适应复杂扰动。
此外,训练还引入了多项新机制:对力矩分布施加惩罚,鼓励四条腿均衡发力;惩罚足端打滑;对动作应用低通滤波;在课程调度达到上限后增加熵系数以增强探索。同时,训练时跳过前几步以避免仿真初始化时的穿模问题。
域随机化(Domain Randomization) 是强化学习从仿真迁移到现实的关键技术。其核心思想是在训练时随机化仿真环境中的物理参数(如质量、摩擦系数、电机延迟、外部扰动等),使策略学会适应参数分布范围内的各种条件,从而缩小“仿真到现实”(Sim-to-Real)的差距。常见的随机化对象包括地面摩擦、机身质量、关节阻尼、控制延迟和外部推力。随机化范围需要谨慎设计:范围过小则迁移效果差,范围过大则训练难以收敛。通常配合课程学习逐步扩大范围,这与本文采用的渐进式策略一致。
课程学习(Curriculum Learning) 借鉴人类学习的循序渐进思想,让智能体先易后难地掌握技能。在机器人强化学习中,课程通常体现在奖励阈值、初始状态分布、扰动强度或地形复杂度上。例如,初期仅惩罚关节位置的初始化偏差,待步态稳定后再逐步引入推力扰动并收紧惩罚阈值。课程调度的设计需要监控训练指标(如成功率、终止原因),避免难度提升过快导致策略崩溃。本文作者通过记录课程调度值并利用LLM分析趋势,正是工程上确保课程平稳推进的实用手段。
熵系数(Entropy Coefficient) 在强化学习目标函数中用于控制策略的探索程度。策略梯度方法(如PPO)通常在损失中加入熵正则项,鼓励策略保持随机性,避免过早陷入局部最优。熵系数过大导致策略过于随机、难以收敛;过小则探索不足、容易僵化。在课程学习达到上限后增加熵系数,是一种“先利用后探索”的策略:前期低熵快速掌握基础步态,后期高熵帮助策略在已适应的扰动范围内寻找更鲁棒的解法。这种调度方式在四足机器人运动中较为常见,尤其当训练后期出现性能 plateau 时,适度提升熵可以跳出局部最优。
调试经验:隐藏bug与日志系统
作者分享了几个关键教训。GUI中训练时的抖动源于参数探索,属于正常现象;但必须先用零动作测试实现正确性,尤其当涉及大量链接索引时。即使如此,仍可能存在危险隐藏bug,比如意外添加的观测噪声影响了控制,这需要大量日志来排查。
为此,项目增强了日志系统:记录终止原因(显示20%的终止是因为俯仰角超过45度,由左右侧推力导致)、输出课程调度值、将数据保存为.csv文件以便直接扔给LLM分析趋势。这种利用LLM辅助分析训练曲线的方法,为强化学习调试提供了新思路。
部署与开源:ONNX导出与配置记录
训练完成后,模型被导出为ONNX文件用于部署。作者巧妙地在ONNX文件中添加了TRAIN_CONFIG字段,记录所有训练配置,方便追溯。不过,向量归一化参数仍需额外文件保存,算是小小的遗憾。
项目已在GitHub上开源,包含配置文件、训练代码和部署代码。对于想要复现或改进的开发者来说,这些资源降低了入门门槛。
ONNX(Open Neural Network Exchange) 是一种开放的模型交换格式,由微软和Facebook等公司联合推出,旨在让不同深度学习框架(如PyTorch、TensorFlow)训练的模型能够跨平台部署。ONNX将计算图序列化为Protobuf格式,支持在推理引擎(如ONNX Runtime、TensorRT)上高效执行。在机器人领域,ONNX常用于将仿真中训练的策略网络导出到机载计算单元(如Jetson系列)进行实时推理。ONNX文件的元数据(metadata)字段允许开发者附加自定义键值对,本文作者正是利用这一机制嵌入TRAIN_CONFIG,实现训练配置与模型文件的绑定,便于版本追溯和复现。
向量归一化参数 是强化学习部署中容易被忽视的细节。训练时观测向量通常经过均值-方差归一化(如VecNormalize),以稳定网络输入。导出模型时,归一化层若未一并固化到计算图中,推理端就需要单独保存并加载这些统计量(均值、方差),否则观测分布偏移会导致策略失效。本文提到“向量归一化参数仍需额外文件保存”,正反映了这一工程痛点。理想做法是将归一化层作为模型的一部分导出,或在ONNX元数据中一并序列化。
多源视角:社区反馈与启示
虽然当前主要信息来自Reddit原帖,但评论区讨论(据推测)可能涉及域随机化的力度选择、课程学习的设计细节等。作者对水平推力的随机化范围(5N对于3kg机器人)是经过考量的,这为其他四足机器人开发者提供了参考。
总体来看,Cubic Doggo的迭代展示了强化学习在机器人控制中的实用技巧:从课程学习到域随机化,从隐藏bug排查到LLM辅助分析,每一步都体现了工程实践的积累。随着代码开源,更多开发者可以在此基础上探索更鲁棒的控制器。
相关推荐

PPO算法破解移动沙发难题,重建Gerver最优解
开发者利用PPO强化学习算法成功重建移动沙发问题的Gerver最优解,展示了AI在几何优化难题中的潜力。文章详细介绍了问题背景、方法、结果及局限性。

PPO算法破解移动沙发难题,重建经典Gerver沙发
探索PPO算法如何通过强化学习重建移动沙发问题的经典解Gerver沙发,展示AI在几何优化和数学发现中的潜力与局限。

Qwen4-27B 意外曝光:vLLM PR 泄露新模型线索
Reddit 社区发现 vLLM XPU 仓库 PR 疑似泄露 Qwen4-27B 线索,涉及 KV cache 规格与 Intel 平台适配,本文梳理 PR 信息、社区反应及对开发者的参考价值。