Skip to content

ManiGuard

ManiGuard is a Python package on top of BEHAVIOR-1K / OmniGibson that adds LTL safety checking, task-generation pipelines, teleop + scripted data collection, VLA supervised fine-tuning, and policy evaluation for robotic manipulation in simulated households.

Evaluate your VLA on ManiGuard-Bench → Run the benchmark

Download the benchmark, serve your checkpoint, run a family across ID + OOD, and read the results in the paper's success × safety metrics.

ManiGuard framework: the six benchmark families, the LTL runtime monitor, and the safety-annotated dataset suite

ManiGuard-Bench task overview

Explore the docs

  • Getting started

    Install the behavior conda env and the BEHAVIOR datasets.

  • Concepts & foundations

    Architecture, the env layer, the LTL safety system, and OmniGibson patches.

  • Task generation

    The 6 bench families (clutter, cabinet, stack, jar, dusty, lid) — and how to add your own.

  • Data collection

    SO-101 / GELLO teleop, plus the scripted datagen pipeline for SFT demos.

  • Fine-Tuning (SFT)

    The model-agnostic joint dataset + per-model recipes (openpi / GR00T / SmolVLA), and collection↔eval consistency.

  • Evaluation

    Run your checkpoint on the benchmark; success + LTL-safety checkers, engagement-gated metrics.

  • Sim data generation

    The scripted 6-family demo-collection pipeline + RAW → LeRobot conversion.

Citation

If you use ManiGuard in your research, please cite the paper:

@misc{peng2026maniguard,
  title         = {{MANIGUARD}: A Benchmark and Data Suite for Specification-Grounded
                   Safety Evaluation and Improvement of Robotic Manipulation},
  author        = {Peng, Yiyan and Wang, Philip and Zhan, Simon Sinong and Lyu, Yiqi
                   and Ni, Zhenyang and Yan, Jixin and Wong, Fiorelli and Jiao, Ruochen
                   and Yin, Hang and Cao, Xinyu and Shao, Huajie and Li, Manling
                   and Zhang, Ruohan and Zhu, Qi},
  year          = {2026},
  eprint        = {2608.17386},
  archivePrefix = {arXiv},
  primaryClass  = {cs.RO},
  url           = {https://arxiv.org/abs/2608.17386},
}