让小型双足机器人“学会走路”的开源强化学习训练套件:MicroDuck RL

2026-08-31 0 33

MicroDuck RL 是一个专为真实硬件落地而生的强化学习(RL)训练框架,面向 Pollen Robotics 开发的 MicroDuck 小型双足机器人(仅重约 800 克、高约 25 厘米)。它不是玩具级仿真,而是完整覆盖“仿真训练 → 模型导出 → 真机部署”全链路的工业级 sim2real 解决方案——所有策略均在 MuJoCo Warp(基于 CUDA 加速的物理引擎)中以 50 Hz 实时频率训练,最终导出轻量 ONNX 模型,直接运行在嵌入式主控上,驱动真实机器人完成行走、摔倒恢复、翻滚、滑轮滑行、坐立切换等复杂动作。

核心功能

让小型双足机器人“学会走路”的开源强化学习训练套件:MicroDuck RL

  • 开箱即用的多任务策略库:内置 13 类可组合的运动任务(如 Mjlab-Velocity-Flat-MicroDuck 行走、Mjlab-Roulade-Flat-MicroDuck 前滚翻、Mjlab-SitStand-Flat-MicroDuck 坐站切换),每个任务都支持平坦/崎岖地形变体,且全部遵循统一的 61 维观测接口,便于真机运行时动态热切换策略。
  • 真实伺服器建模与 backlash 仿真:独家集成 ±1° 齿轮间隙(共 14 个关节)的物理建模,通过 passive_<joint>_backlash 铰链+后端编码器位置反馈,精准复现真实舵机的“空程滞后”效应,显著提升策略迁移到实机后的鲁棒性。
  • 端到端 sim2real 可复现流程:从 BAM(Rhoban Actuator Model)电机动力学建模、域随机化(terrain friction/mass/inertia 扰动)、到奖励函数设计经验(详见 AGENTS.md 中提炼的“训练口诀”),整套方法论已验证可使策略在无微调前提下直接部署于 MicroDuck 硬件。
  • 一键式 GPU 训练 + 云端备选方案:本地训练默认调用 CUDA 加速的 MuJoCo Warp,支持 4096 并行环境(单卡训练约 1–2 小时即可获得可用步态);若无 GPU,可添加 --hf-jobs 参数无缝切换至 Hugging Face Jobs 远程训练,无需配置云环境。
  • ONNX 导出与嵌入式推理支持:提供 scripts/export.py 将 PyTorch 策略导出为标准 ONNX 格式,并通过 scripts/infer_policy.py 在 CPU 版 MuJoCo 中进行键盘交互式策略回放与多策略协同测试(如同时加载 walk.onnx + roulade.onnx + stand.onnx),完全模拟真机运行逻辑。
  • 键盘驱动的真机预演系统infer_policy.py 支持实时键盘指令(G 地面触碰、Y 坐站切换、R 前滚、K/L 左右踢球),配合 --record--save-csv 可生成与实机采集数据对齐的时间序列日志,用于精细比对仿真与真实传感器响应差异。
  • 滑轮扩展运动体系:除基础双足外,额外提供 6 种滑轮模式(如 RollerCrouch 蹲滑、RollerSlope 斜坡滑降、Spin 原地高速旋转),验证同一套控制架构在不同执行末端下的泛化能力,为未来模块化机器人形态打下基础。

技术亮点

  • 基于 mjlab 的高性能仿真底座:项目深度依赖 mjlab(MuJoCo Warp 的 Python 封装),利用 CUDA 张量并行加速物理仿真,实现单卡千级环境同步前向+反向传播,远超传统 CPU 仿真吞吐量,是支撑 50 Hz 实时训练的关键基础设施。
  • PPO 算法深度定制化:非简单套用 RLlib 或 Stable-Baselines3,而是针对微型双足特性重构 PPO 实现:支持 per-env reward shaping、observation normalization 在线更新、以及与 BAM 电机模型耦合的 action clipping 策略,避免训练中因过冲导致仿真崩溃。
  • 观测空间强一致性设计:所有任务共享严格定义的 61 维观测向量(含关节位置/速度/力矩、IMU 姿态、目标速度指令、头部姿态指令等),确保策略可插拔;真机 runtime 层直接消费该格式,无需任何适配层,极大降低部署复杂度。
  • Backlash-aware 训练范式:区别于多数忽略传动间隙的 RL 项目,MicroDuck RL 显式建模齿轮间隙,并将编码器信号采样点置于输出端——这与真实 MicroDuck 的硬件布局完全一致,使得策略在仿真中就“被迫学会补偿空程”,迁移成功率大幅提升。
  • 轻量级工程栈,拒绝重型依赖:采用 uv 作为包管理器,而非 conda/pip,大幅缩短环境搭建时间;训练脚本全由 Python 编写,无 C++ 扩展,调试友好;WandB 日志集成完善,支持断点续训(--agent.resume True)与跨实验对比。

适合哪些人用

本项目主要面向三类实践者:高校机器人方向研究生(需复现双足控制论文、构建课程实验平台)、初创机器人公司算法工程师(快速验证新机械结构的运动控制可行性,规避昂贵真机试错成本)、以及硬核开源机器人爱好者(已有 MicroDuck 硬件或计划组装兼容平台,希望跳过从零写 RL 环境的漫长过程)。

真实场景案例:某高校课题组使用 Mjlab-StandUp-Flat-MicroDuck 任务,在 A100 上训练 90 分钟后,将导出的 ONNX 模型烧录至 MicroDuck 主控,未做任何参数调整,机器人即可从俯卧/仰卧/坐姿三种初始状态自主站立并保持平衡;另一家服务机器人公司则基于 Mjlab-Velocity-Flat-Backlash-MicroDuck 训练出抗干扰行走策略,在铺设地毯与光滑瓷砖混合地面的展厅环境中连续运行 8 小时未跌倒。

快速上手

只需一台带 CUDA GPU 的 Linux 机器(推荐 Ubuntu 22.04+):

git clone https://github.com/pollen-robotics/microduck_rl && cd microduck_rl
# 首次同步建议延长超时(尤其 ARM 服务器)
export UV_HTTP_TIMEOUT=600
uv sync
# 启动训练(4096 并行环境,约 90 分钟)
uv run train Mjlab-Velocity-Flat-MicroDuck --env.scene.num-envs 4096
# 训练完成后导出 ONNX
uv run scripts/export.py Mjlab-Velocity-Flat-MicroDuck --wandb-run-path your_entity/your_project/run_id
# 键盘交互式回放(CPU 推理,无需 GPU)
uv run scripts/infer_policy.py --walking walking.onnx --debug

同类对比 / 注意事项

  • vs Isaac Gym / robosuite:MicroDuck RL 不追求通用仿真平台定位,而是深度绑定 MicroDuck 硬件参数与 firmware 接口,所有 reward 函数、观测定义、actuator 模型均围绕真实约束设计,避免“仿真很美、实机不能动”的陷阱。
  • vs OpenAI Gym 的经典 RL 环境:不提供简化版 CartPole 或 Ant,所有环境均含真实电机延迟、传感器噪声建模、以及 14 自由度耦合动力学,更适合解决实际机器人问题而非算法 benchmark。
  • 注意事项:ARM 架构设备(如 Jetson Orin)首次 uv sync 会下载约 2GB CUDA wheel,务必设置 UV_HTTP_TIMEOUT=600;训练日志默认上传 WandB,若需离线运行,请在 train.py 中注释 wandb.init 相关代码;Backlash 变体训练需额外显存,建议 ≥24GB GPU。

项目信息


📦
pollen-robotics/microduck_rl
GitHub

RL training environments for Microduck (mjlab)


888
今日 +168 stars today
Stars

🔀
152
Forks


Python

📄
Apache-2.0

编程语言:Python|Star 数:888|开源协议:Apache-2.0GitHub 项目地址

如果你正为双足机器人运动控制落地难而苦恼,又不想重复造轮子写物理仿真和 reward 函数,MicroDuck RL 就是你能立刻上手、当天见效果的最强开源“行走教练”。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

本网站所提供的所有资源(包括但不限于软件、文档、教程、代码、素材等)均收集自互联网公开渠道,仅供个人学习、研究及交流使用。我们无法对所有资源的版权归属进行逐一核实。

OPENKLC昆仑草-免费资源下载-源码下载 开源易选 让小型双足机器人“学会走路”的开源强化学习训练套件:MicroDuck RL https://www.openklc.com/2358.html

常见问题

相关文章

发表评论
暂无评论