使用 Isaac Lab 3.0 的 Microduck:从仿真到真实硬件的机器人策略训练与部署
机器人技术中的一个关键挑战是确保在仿真中训练的策略能够在真实硬件上可靠运行;本工作流通过将 Microduck 与 NVIDIA Isaac Lab 3.0 集成来解决这一问题,使开发者能够在并行仿真中训练稳健的行走策略,并直接将其部署到物理机器人上。
仿真到现实工作流概述
NVIDIA Isaac Lab 是一个开源框架,旨在跨数千个 GPU 并行仿真训练策略,这对于弥合仿真与真实世界机器人之间的差距至关重要。由 Pollen Robotics 开发的 Microduck 机器人作为此工作流的目标硬件。通过将 Isaac Lab 与 Newton(一种执行器建模系统)结合,并实施域随机化,开发者可以在仿真中训练行走策略,将其导出为 ONNX 文件,并部署到物理 Microduck 上。
此过程使研究人员能够利用仿真的速度和安全性,同时确保所得策略足够稳健,能够处理摩擦、机械延迟和舵机间隙等现实因素。
设置训练环境
要开始仿真和训练过程,必须满足特定的硬件和软件先决条件。对于仿真部分,需要配备受支持的 NVIDIA GPU 和驱动程序的 Linux 工作站。软件依赖项包括 Git 和 uv。
对于最终部署阶段,需要配置好的物理 Microduck 机器人,以及安装其板载软件和支持的控制接口,例如配对的游戏手柄。
快速安装步骤
安装涉及克隆 Isaac Lab 仓库并使用 uv 同步其依赖项。安装后,用户可以使用命令 uv run isaaclab list_envs --keyword MicroDuck --show_presets 确认 Microduck 任务和预设的可用性。
Microduck 环境配置
Isaac Lab 为 Microduck 提供了完整、可立即训练的环境,包括机器人模型、场景、奖励函数和域随机化功能。初始任务侧重于平坦行走,并提供粗糙变体,引入楼梯、坡道和不平坦地形。
策略接口细节
行走策略使用固定接口与环境交互:它接受 61 个观测值并输出 14 个关节位置。在训练、导出和部署阶段,观测顺序、归一化和动作缩放必须保持一致。
加速运动训练
Isaac Lab 能够在 GPU 上并行运行多个仿真环境,从而加速运动训练。此外,可以利用跨多个 GPU 的分布式训练来提高训练速度和策略稳健性。
建模现实世界动态
为了确保策略从仿真成功转移,训练结合了高级物理建模和随机化技术:
- 执行器建模: 系统使用带有 MJWarp 求解器的 Newton 和基于 Newton 的 Better Actuator Models (BAM) 来准确建模舵机响应。背隙预设模拟固件控制器、电机电气限制、摩擦和延迟,将位置目标转换为真实的舵机扭矩。
- 域随机化: 为了使策略为真实硬件做好准备,每个 Microduck 实例的各种物理参数都会被随机化。这些随机化参数包括质量/质心、地面摩擦、关节惯性、编码器偏移、电池电压/压降和命令延迟。地形变化和外部推力也会被应用。
- 背隙模拟: 背隙定义为关节改变方向时齿轮箱在啮合前的轻微移动,在训练期间会被建模并在关节间变化。这种暴露有助于策略处理物理机器人上遇到的机械间隙。
可以使用指定任务(例如 IsaacContrib-Velocity-Rough-MicroDuck)、环境数量(例如 4096)和 backlash 预设的命令启动训练。
策略评估和 ONNX 导出
在将策略部署到物理机器人之前,必须在仿真中评估并导出为 ONNX 格式。Isaac Lab 的 RSL-RL 回放工作流处理此自动导出。
评估过程
评估通过在 Newton 可视化器中运行最新检查点来执行。这允许用户观察策略在仿真环境中的表现。
为硬件交接导出
对于部署,策略被导出为 policy.onnx。此 ONNX 文件放置在关联运行的 exported 目录中。Microduck 的板载运行时设计用于加载和执行这些 ONNX 策略。
在物理 Microduck 上部署
一旦 policy.onnx 文件在仿真中得到验证,就可以使用标准网络工具将其部署到配置好的 Microduck 机器人上。
- 传输: 使用
scp将策略文件从工作站复制到机器人的主机。 - 加载: 使用
robotctl policy load walk命令将策略加载到机器人上,替换默认的行走策略。 - 测试: 然后可以使用文档化的控制方式测试机器人,以验证站立、行走、转弯和停止行为。部署的策略已证明其稳健性,包括在被推倒后能够恢复站立。
使用 Isaac Lab 3.0 扩展能力
Isaac Lab 3.0 提供了广泛的工具来扩展 Microduck 的能力,超越基本运动,实现跨多个领域的 GPU 并行学习。
- 高级运动: 用户可以调整粗糙地形任务配置,以纳入逐步增加地形难度的课程,包括楼梯、坡道和不平坦地面。
- 感知与导航: 通过包含头部相机深度和机器人状态观测,可以扩展策略,从而实现基于感知的任务。Kuka–Allegro 示例中提供了视觉操作示例。
- 灵巧操作: 该框架支持训练手臂和多指手进行操作任务,例如 Kuka–Allegro 提升和重新定向任务。
- 自定义环境: 开发者可以利用项目生成器构建自定义任务,并从 SimReady Central Library 集成 SimReady 资产,以针对新挑战定制观测和奖励。
社区与资源
导出的 ONNX 策略可以共享在 Hugging Face Hub 上,或在 Microduck Arena(一个 Hugging Face Space,旨在比较兼容策略以应对共享挑战)中进行测试。该生态系统鼓励社区贡献和验证机器人 AI 模型。