☰
【强化学习实战】MicroDuck 篮球平衡机器人|从模型导出 ONNX 到 Viser 可视化全流程踩坑记录
2026/10/15 1:08:13 网站建设 项目流程

# CSDN 博文:MicroDuck 强化学习机器人仿真实战学习心得

> 标签:强化学习、MuJoCo、MicroDuck、机器人仿真、ONNX、AI 机器人

## 正文

最近跟着 Datawhale every-embodied 多具身智能课程,动手复现了 MicroDuck 小鸭子机器人的篮球平衡强化学习项目,完整走完**预训练权重加载、PT 模型导出 ONNX、模型精度校验、浏览器可视化仿真**一整条链路,踩了不少坑,在这里记录下学习心得。

### 一、项目简介

MicroDuck 是一款小型双足机器人,本次复现的任务为**站在篮球上保持动态平衡**。这是一个极具挑战的连续控制任务:篮球球面会滚动,机器人必须持续调整四肢姿态维持重心。

我使用的是`blind`盲模式策略:**无视觉图像输入**,仅依靠本体感知(关节角度、角速度、姿态传感器)完成平衡控制,非常适合后续轻量化部署。

### 二、完整流程回顾

1. **环境搭建**

拉取官方 microduck_rl 源码仓库,使用 uv 管理 python 虚拟环境,一键安装全部依赖,相比传统 pip,解决了大量版本冲突问题。

2. **模型导出 PT → ONNX**

执行 export 脚本,将 PyTorch 预训练`.pt`强化学习策略导出为 ONNX 通用格式。ONNX 的优势在于跨平台推理,后续可以脱离 PyTorch,部署到本地服务端、边缘硬件。

3. **精度校验(重点)**

运行`verify_basketball_onnx_parity.py`做奇偶校验,对比原始 pt 和导出 onnx 的推理输出。本次校验最大绝对误差仅 `1.4e-6`,百万分之一级别,证明模型导出没有明显精度损失,策略行为完全一致。

>

> 这里提醒:导出后**必须校验**,否则很容易出现导出成功,但推理动作异常的隐形 bug。

4. **浏览器 Viser 可视化仿真**

使用`uv run play`启动仿真,Viser 作为网页端查看器,不需要本地桌面图形环境,云服务器 / WSL 环境也能直接打开浏览器看动画。可以实时看到小鸭子机器人在篮球上不断微调姿态,对抗球面滚动维持平衡,62FPS 流畅运行。

### 三、踩坑记录(避坑重点)

1. 一开始混淆了学习文档仓库和**真正源码仓库**:Datawhale 仓库只是学习笔记,不含可执行代码与预训练权重,必须拉取 pollen-robotics/microduck_rl 官方源码。

2. 一开始以为 export 脚本运行后能直接看到动画:`export.py`只做模型转换,**没有可视化界面**,想看仿真动画要单独执行 play 命令启动 Viser 查看器。

3. 环境变量不能省略:篮球任务必须带上`MICRODUCK_BB_BLIND=1 MICRODUCK_BB_HISTORY=1`,否则观测空间不匹配,模型直接失效。

4. 文件路径占位符问题:命令中`PATH/TO/xxx.pt`是示例占位文本,需要替换成真实权重路径,否则直接报`FileNotFoundError`。

### 四、学习感悟

1. 强化学习不只是调参训练,**模型部署、验证、可视化是同等重要的一环**。再好的策略,不能导出、不能校验、看不到仿真效果,就很难落地。

2. 盲本体感知方案很有价值:不依赖图像输入,算力开销极低,非常适合 AR 眼镜、小型嵌入式设备这类边缘端场景,也是我后续对接 Even G2 眼镜做遥操作的基础。

3. Viser 网页仿真器非常适合云端开发:不需要 GPU 桌面、远程服务器上也能直观观察机器人行为,极大降低机器人仿真上手门槛。

### 五、后续计划

1. 基于本次导出的`output.onnx`,编写独立推理服务,脱离仿真环境,单独调用策略网络输出机器人动作;

2. 尝试部署这套策略,对接 AR 眼镜 Even G2,实现机器人状态可视化、遥操作联动;

3. 后续继续复现完整投篮版本的 MicroDuck 任务,对比平衡任务策略差异。

>

> 总结:亲手跑通完整工程链路,比单纯看论文、看课件,对具身智能的理解深刻得多。

---

## 结尾

>

> 本文为个人学习记录,如有错误欢迎评论区交流讨论。项目参考:Datawhale every-embodied、pollen-robotics/microduck_rl

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询