zqc3117 / Spotter
git clone https://github.com/zqc3117/Spotter.git
v1.0 Β· 21d ago
Official codebase for Spotter: Let the Embodied Model Lead, and the VLM Reflect for It
β
stars, 24h
β
stars, 7 days
+204
stars, 30 days Β· #1,258
204
β
total
27
forks Β· 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguagePython
LicenseMIT
Created2026-09-29 (21d ago)
Last pushtoday
Watchers3
OwnerUser
GitHub topics
embodied-aillm-agentqwenrobocasarobodojorobot-learningrobot-manipulationroboticsrobotwinruntime-monitoring-systemvlm-agent
Links
- GitHub: github.com/zqc3117/Spotter
- Homepage: https://zqc3117.github.io/Spotter/
- Releases Β· Issues Β· Hacker News mentions
README excerpt
Spotter: Let the Embodied Model Lead, and the VLM Reflect for It If our project helps you, please give us a star β on GitHub to support us. | π Paper | π Project page | π€ Model checkpoints | π Simulator | π Get started | |---|---|---|---|---| | arXiv | zqc3117.github.io/Spotter | pi0.5 Β· Cosmos Policy (RoboCasa) Β· pi0.5 (RoboTwin 2.0) | RoboCasa Β· RoboTwin 2.0 | Installation Β· Quick start | **Spotter** adds a lightweight intervention layer between a frozen embodied model (System 1) and a VLM (System 2). Instead of having the VLM plan every step, the embodied model leads and keeps executing, while a local screener watches in parallel and the VLM steps in only to confirm and repair an error. The VLM's job becomes much simpler, so the whole framework works with a **locally served, open-source Qwen and no privileged information**. ## π¬ Demos Real robot (Franka Research 3), stacking the blue cup onto the pink cup. Shown at 2Γ, with the judge's thinking time shortened; the on-screen clock is real time. Watch the full video on the project page . ## π₯ Highlights - **A lightweight intervention layer.** Like a person who keeps a little attention on a task and focuses only when something looks wrong, Spotter lets execution flow continuously and brings in the VLM only on a confirmed error. - **A simpler job for the VLM.** The VLM no longer drives the robot. It only has to notice a failure, repair it with a short primitive plan, and check the fix. A local Qwen with no access to the task's success signal is enough. - **Continuous execution, low overhead.** The embodied model never waits for the VLM on the routine path: a successful episode takes only **13β16 s** longer than the policy alone. ## π‘ Why Spotter Existing VLM-led robot agents are serial: the VLM plans a segment, the embodied model executes it, and the VLM decides what comes next. This forces a dilemma: - **Short segments** mean frequent VLM calls and high latency, even on easy tasks. - **Long segments** mean a deviation during execution cannot be caught in time, and later actions keep going wrong. Spotter removes this trade-off by supervising in parallel rather than in series. | | VLM-led agents | Spotter | |---|---|---| | Who drives execution | VLM plans every step | Embodied model leads | | When the VLM is called | Before every step | Only on a confirmed error | | Embodied model waits for the VLM | Every step | Only during a repair | | Needs privileged information | Usually (e.g. the success signal) | No | | Works with a local Qwen | Only with privileged information | Yes | ### π― Works with a weaker model, without privileged information With the same local Qwen and no privileged information on RoboCasa (1,200 episodes), a representative VLM-led agent falls **below the policy alone** (Cosmos Policy 67.9 β 65.2, Ο0.5 64.3 β 60.5), while Spotter still improves it (β 71.7 and 68.4). ### β‘ Almost no overhead when nothing goes wrong With Qwen, the judge is called **less than once** per successf