
Pollen Robotics 与 Hugging Face 联合发布了高性价比开源双足机器人 Microduck。该机器人支持基于 NVIDIA Isaac Lab 和 Newton 物理引擎的完整开发工作流:开发者可在仿真环境中训练行走策略,导出为 ONNX 格式后部署至实体机器人,并在 Hugging Face Hub 分享模型或通过 Microduck Arena 参与竞赛。
从仿真到真机:打通 Sim-to-Real 闭环
在仿真中训练的行走策略需克服真实伺服电机的摩擦、延迟及机械间隙等挑战。Isaac Lab 作为开源框架,支持在数千个 GPU 并行环境中训练策略。结合 Newton 执行器建模与域随机化技术,Microduck 实现了从仿真到现实硬件的无缝迁移。
本指南涵盖使用 Isaac Lab 和 Newton 对 Microduck 进行训练、评估及导出的全流程,旨在帮助开发者快速上手,并探索 Isaac Lab 3.0 在更高级任务中的应用潜力。
1. 环境准备与安装
仿真训练需求:配备支持 CUDA 的 NVIDIA GPU 及驱动程序的 Linux 系统。
真机部署需求:已配置的实体 Microduck 机器人、正常运行的机载软件及受控接口(如游戏手柄)。
在 Linux 系统上,通过以下命令安装 uv、克隆 Isaac Lab 并同步依赖:
curl -LsSf https://astral.sh/uv/install.sh | sh
source "$HOME/.local/bin/env"
git clone --branch develop https://github.com/isaac-sim/IsaacLab.git
cd IsaacLab
uv sync验证 Microduck 任务及预设是否可用:
uv run isaaclab list_envs --keyword MicroDuck --show_presets2. 解析预置训练环境
Isaac Lab 内置了 Microduck 的机器人模型、场景、观测值、动作空间、奖励函数及域随机化设置。基础任务为平地行走,粗糙地形变体则引入楼梯、斜坡和不平整地面。
策略输入包含 61 个观测值,输出 14 个关节位置。在导出和部署阶段,必须严格保持观测值顺序、归一化方式及动作缩放比例与训练时一致。
3. 基于并行仿真的加速训练
Isaac Lab 通过在 GPU 上并行运行仿真环境加速运动学习,支持跨 GPU 分布式训练。在启用粗糙地形和反向间隙(backlash)预设的配置下,使用 16 张 GPU 可实现每秒 125 万步的训练速度。
训练采用带有 MJWarp 求解器的 Newton 及 Better Actuator Models (BAM),模拟固件控制器、电机电气限制、摩擦和延迟,将位置目标转化为真实伺服扭矩。为确保 Sim-to-Real 迁移效果,引入域随机化技术,对每只“鸭子”的质量、质心、地面摩擦、关节惯性、编码器偏移、电池电压及命令延迟进行随机化处理,并针对每个关节独立变化反向间隙以模拟不均匀磨损。
启动粗糙地形训练命令:
uv run isaaclab train \
--rl_library rsl_rl \
--task IsaacContrib-Velocity-Rough-MicroDuck \
--num_envs 4096 \
presets=backlash若需在平地环境训练,可替换任务参数为 IsaacContrib-Velocity-Flat-MicroDuck。
4. 策略评估与 ONNX 导出
部署前需在仿真中评估策略并导出为 ONNX 格式。Isaac Lab 的 RSL-RL 回放工作流会自动生成 TorchScript (policy.pt) 和 ONNX (policy.onnx) 文件。真机部署请使用 policy.onnx。
在 Newton 可视化器中运行最新检查点:
uv run isaaclab play \
--rl_library rsl_rl \
--task IsaacContrib-Velocity-Rough-MicroDuck \
--checkpoint latest \
--num_envs 16 \
--viz newton_gl \
presets=backlash导出文件将保存至 exported/ 目录。请确保机载运行时加载正确的 ONNX 文件,并保持接口参数一致。
5. 社区分享与竞赛
导出 policy.onnx 后,开发者可选择:
- 参与 Microduck Arena:在 Hugging Face Space 提交的共享挑战中测试策略,排行榜接受最大 64 MiB、含 61 个观测值和 14 个动作值的模型。
- 真机部署:参照后续步骤在实体机器人上运行。
- Hugging Face Hub 分享:上传策略并附带模型卡片及训练配置,便于社区复现与交流。
6. 实体机器人部署指南
完成仿真验证后,按以下步骤将策略部署至实体 Microduck:
- 传输文件:将 ONNX 文件复制至机器人(替换
ROBOT_HOST为实际 IP 或主机名):scp exported/policy.onnx microduck@ROBOT_HOST:/home/microduck/my_walking.onnx - 连接检查:SSH 登录机器人并查看当前策略:
ssh microduck@ROBOT_HOST robotctl policy list - 加载策略:支撑机器人后加载行走策略(若已在运动,将重置姿态并继续):
sudo robotctl policy load walk /home/microduck/my_walking.onnx - 测试与监控:测试站立、行走、转向及停止功能。如需恢复默认策略:
robotctl monitor sudo robotctl policy reset walk
实测显示,部署后的策略具备良好的鲁棒性,Microduck 在被撞倒后能自动恢复平衡并继续行走。
7. 拓展应用:复杂地形与感知任务
Isaac Lab 3.0 支持 GPU 并行的运动学习、灵巧操作及视觉任务。开发者可进一步探索:
- 复杂运动学习:调整粗糙地形任务,引入课程学习机制逐步增加楼梯、斜坡等地形难度。
- 感知与导航:结合头部摄像头深度数据与状态观测值,探索基于视觉的行走与导航任务。
- 灵巧操作:利用 Kuka-Allegro 示例训练机械臂和多指手的抓取与重定向能力。
- 自定义环境:使用项目生成器构建新任务,从 SimReady Central Library 添加资产并定制观测值与奖励函数。
结语
从 Isaac Lab 的 Microduck 任务入手,训练首个行走策略,将 ONNX 模型分享至 Hugging Face Hub 并在 Arena 中验证表现。在此基础上,开发者可尝试更复杂的地形适应、感知融合或自定义任务,持续优化机器人性能。
注:此工作流基于 Pollen Robotics 的 Microduck 软硬件、原始强化学习项目、BAM 执行器建模以及 Isaac Lab 与 Newton 的集成技术。