showlab/Show-Harness
Just a VLM Agent Can Play Robots
Show‑Harness – 一个由 VLM 驱动的具身智能体
它是什么
- 一个开源 harness,让视觉语言模型(VLM)通过一个极小的、基于 token 的动作词汇表来控制机器人。
- 提供两种操作模式:
- 零样本 – 直接查询一个大型闭源 VLM(例如 Gemini、GPT‑4‑V);模型即时决定每个动作 token。
- 微调 – 一个较小的开源 VLM 在机器人演示数据上进行 LoRA 适配,并每步输出一个动作 token。
- 支持多种机器人平台(Franka、AgileX Piper、Isaac‑Lab、LIBERO)和模拟器,全部使用相同的提示集和动作词汇表。
关键组件
| 组件 | 作用 |
|---|---|
core/ |
主循环,与 VLM 对话,构建提示,记录日志,并将 VLM token 映射到所选机器人的 解释器。 |
interpreters/ |
平台特定代码,将 token(例如 GRIP_OPEN)转换为真实机器人命令(阻抗控制、关节流等)。 |
gumi/ |
一个轻量级浏览器 UI,用于收集演示。用户按键(WASD、方向键)驱动机器人;每一步都保存为(观察,动作)对用于训练。 |
plugins/ |
可选的“插件”,可在不更改核心代码的情况下切换(感知、规划、恢复等)。 |
train/ |
脚本,将 GUMI 滚动数据转换为数据集,注册到 🤗 Datasets,并使用 LLaMA‑Factory(LoRA 适配器)微调 VLM。 |
scripts/ |
辅助工具:环境设置、ROS/RealSense 集成、机器人校准、使用 vLLM 服务 VLM,以及针对模拟器的评估脚本。 |
configs/ |
分层 YAML 配置 – 默认值、特定站点的机器人设置以及可选覆盖。 |
如何开始
- 设置环境 – 运行
bash scripts/setup.sh base用于 harness,… serve用于 vLLM 服务器,可选地… libero <checkout>用于模拟器。 - 收集数据 – 启动 GUMI UI(
gumi/collect_rollouts_web.py)在模拟(--sim)或真实硬件上;用键盘驱动机器人,系统记录可训练的数据对。 - 运行机器人 – 配置
configs/site/*.yaml,在configs/secrets.env中添加你的 API 密钥,运行scripts/check_setup.py,然后运行scripts/run_real.py(零样本)或scripts/run_real_mvtoken.py(微调)。 - 微调 – 从 🤗 Hub 下载已发布的 LoRA 适配器之一,或使用
train/流程训练自己的适配器。
已发布资源
- 模型:适用于 Qwen‑3.5(0.8B、2B、4B、9B)和 Gemma‑4B 的五个 LoRA 适配器,外加一个仅模拟的适配器。托管在
showlab/Show‑Harness‑VLMs。 - 数据集:来自 Franka/Piper 的真实滚动数据以及来自 RoboLab/ManiSkill 的模拟数据,可在
showlab/Show‑Harness‑Data获取。 - 论文与演示 – arXiv 预印本(2609.10522)和一个展示 VLM 操作机器人短视频。
为什么重要
- 展示了单一 VLM 接口可以驱动多种机器人本体,无需特定于机器人的策略网络。
- GUMI 收集器使得无需昂贵的远程操作设备即可轻松生成高质量的、基于 token 的演示。
- 插件架构允许研究人员通过单个布尔标志添加或移除感知/规划模块(例如多视图指导、子目标规划),便于消融研究。
典型用例
- 希望在新机器人平台上测试零样本 VLM 控制的研究人员。
- 需要快速流程来收集机器人演示并微调轻量级 VLM 的团队。
- 开发自定义感知或规划插件的开发人员,这些插件可以插入同一个 harness。
引用
@article{chen2026show,
title={Show‑harness: Just a VLM agent can play robots},
author={Chen, Yanzhe and Bai, Zechen and Cao, Zhijun and Zeng, Wenzheng and Lin, Kevin Qinghong and Lin, Yiqi and Liang, Guoqiang and Ma, Kevin Yuchen and Huang, Qiming and Shou, Mike Zheng},
journal={arXiv preprint arXiv:2609.10522},
year={2026}
}
所有细节均直接来自仓库的 README;没有推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目