--- title: README emoji: ๐Ÿ‘€ colorFrom: indigo colorTo: purple sdk: static pinned: false ---

TAVIS overview

# TAVIS: A Benchmark for Egocentric Active Vision and Anticipatory Gaze in Imitation Learning A benchmark for **egocentric active-vision imitation learning** and **anticipatory gaze** on humanoid torsos. TAVIS ships eight simulated manipulation tasks across two robots (**Fourier GR1T2** and **Pollen Reachy 2**), **2,200 VR-teleoperated demonstrations**, pretrained **ฯ€โ‚€** baselines, and a proprioceptive metric -- **GALT (Gaze-Action Lead Time)** -- for quantifying anticipatory gaze in the learned policies. | | | |---|---| | ๐Ÿ“„ **Paper** | Under double-blind review | | ๐Ÿ’ป **Code (anonymous mirror)** | https://anonymous.4open.science/r/tavis-F5D7 | | ๐Ÿค— **Datasets & checkpoints** | This org -- [`tavis-benchmark`](https://huggingface.co/tavis-benchmark) | | โš–๏ธ **License** | Code: MIT ยท Datasets: CC-BY-4.0 | --- ## ๐Ÿ‘€ For reviewers: **1. Data can be viewed from the browser (zero download).** - Viewer: https://huggingface.co/spaces/lerobot/visualize_dataset -> paste, e.g., `tavis-benchmark/tavis-head-gr1t2` - Sample datasets: [`tavis-head-sample-gr1t2`](https://huggingface.co/datasets/tavis-benchmark/tavis-head-sample-gr1t2) ยท [`tavis-head-sample-reachy2`](https://huggingface.co/datasets/tavis-benchmark/tavis-head-sample-reachy2) **2. Run a pretrained policy across a whole suite (no training).** Download a multi-task ฯ€โ‚€ checkpoint and roll it out: ```bash huggingface-cli download tavis-benchmark/pi0-tavis-head-gr1t2-headcam \ --local-dir checkpoints/pi0-tavis-head-gr1t2-headcam python scripts/eval_benchmark.py \ --checkpoint checkpoints/pi0-tavis-head-gr1t2-headcam \ --suite tavis-head --robot gr1t2 \ --episodes 96 --num-envs 1 python scripts/print_benchmark_results.py results/pi0-tavis-head-gr1t2-headcam ``` This evaluates all 5 TAVIS-HEAD tasks ร— `{id, ood_spatial}` ร— 96 episodes and prints success rates with Wilson 95% CIs plus per-episode GALT. (Requires the code + an RTX GPU -- see [Installation](#installation). Several hours on a single 4090.) --- ## ๐Ÿ“ฆ Datasets All released as **LeRobotDataset v3.0**. The four multi-task suites total **2,200** VR-teleoperated demonstrations (~3 h of interaction). | Repo | Robot | Suite | Episodes | |------|-------|-------|----------| | [`tavis-head-gr1t2`](https://huggingface.co/datasets/tavis-benchmark/tavis-head-gr1t2) | GR1T2 | TAVIS-HEAD | 800 | | [`tavis-head-reachy2`](https://huggingface.co/datasets/tavis-benchmark/tavis-head-reachy2) | Reachy2 | TAVIS-HEAD | 800 | | [`tavis-hands-gr1t2`](https://huggingface.co/datasets/tavis-benchmark/tavis-hands-gr1t2) | GR1T2 | TAVIS-HANDS | 300 | | [`tavis-hands-reachy2`](https://huggingface.co/datasets/tavis-benchmark/tavis-hands-reachy2) | Reachy2 | TAVIS-HANDS | 300 | **Also released:** [`tavis-head-sample-gr1t2`](https://huggingface.co/datasets/tavis-benchmark/tavis-head-sample-gr1t2) and [`tavis-head-sample-reachy2`](https://huggingface.co/datasets/tavis-benchmark/tavis-head-sample-reachy2) (small previews) ยท [`tavis-assets`](https://huggingface.co/datasets/tavis-benchmark/tavis-assets) (robot / task USD assets). ## ๐Ÿค– Pretrained checkpoints (ฯ€โ‚€) | Repo | Robot | Suite | Camera | |------|-------|-------|--------| | [`pi0-tavis-head-gr1t2-headcam`](https://huggingface.co/tavis-benchmark/pi0-tavis-head-gr1t2-headcam) | GR1T2 | TAVIS-HEAD | head | | [`pi0-tavis-head-gr1t2-fixedcam`](https://huggingface.co/tavis-benchmark/pi0-tavis-head-gr1t2-fixedcam) | GR1T2 | TAVIS-HEAD | fixed | | [`pi0-tavis-head-reachy2-headcam`](https://huggingface.co/tavis-benchmark/pi0-tavis-head-reachy2-headcam) | Reachy2 | TAVIS-HEAD | head | | [`pi0-tavis-head-reachy2-fixedcam`](https://huggingface.co/tavis-benchmark/pi0-tavis-head-reachy2-fixedcam) | Reachy2 | TAVIS-HEAD | fixed | | [`pi0-tavis-hands-gr1t2`](https://huggingface.co/tavis-benchmark/pi0-tavis-hands-gr1t2) | GR1T2 | TAVIS-HANDS | head | | [`pi0-tavis-hands-reachy2`](https://huggingface.co/tavis-benchmark/pi0-tavis-hands-reachy2) | Reachy2 | TAVIS-HANDS | head | The `headcam` / `fixedcam` pair on TAVIS-HEAD is the core **active-vision vs. fixed-camera** comparison. --- ## ๐ŸŽฏ Tasks Eight tasks in two suites. The robot, camera mode (`headcam` / `fixedcam`), and eval mode are orthogonal axes set at evaluation time. ### TAVIS-HEAD -- global visual search & clutter | Task (CLI key) | What it tests | |----------------|---------------| | `clutter_pick_lift` | Pick & lift a language-named object from 5 scattered YCB objects; the wider OOD spread forces active scanning. | | `clutter_pick_cube` | Visually search clutter for a distinct red cube and lift it (no language conditioning). | | `conditional_pick` | Read a red/green cue card, then pick the left/right object it indicates. | | `wait_then_act` | Monitor a light until it turns green (random 2-6 s delay), then pick the object. | | `multi_shelf_scan` | Move the head to scan a 3-shelf unit and retrieve the language-named target. | ### TAVIS-HANDS -- local occlusion & peeking | Task (CLI key) | What it tests | |----------------|---------------| | `peeking_box` | Find which side of a box is open (head cam blind; wrist cams decide) and reach in to grab the object -- bimanual perception under occlusion. | | `occluded_reach` | Reach around a narrow screen to grasp an object the head camera can't see well -- reach-around localization with wrist cams. | | `blocked_clutter_pick_cube` | Head-camera-blackout ablation of `clutter_pick_cube` -- only the wrist cameras can locate the red cube. | Both robots expose a canonical **19-D action layout** (left/right arm IK targets, 3-DoF neck, two gripper scalars), so policies share one action space across embodiments. ## ๐Ÿ“ Evaluation protocol Each **(robot ร— task ร— eval-mode)** cell is evaluated over **96 stochastic episodes**; success rates are reported with **Wilson 95% confidence intervals**. Three eval modes (see `docs/ood_modes.md`): | Mode | Object placement | Robot reset pose | |------|------------------|------------------| | `id` | training range | default | | `ood_spatial` | wider than training | default | | `ood_init_pose` | training range | Gaussian (ฯƒโ‰ˆ10 cm EEF, ฯƒโ‰ˆ10ยฐ neck) | **GALT (Gaze-Action Lead Time)** -- `t_hand_arrival - t_head_arrival` in seconds -- measures how far *in advance* the head settles on the target before the hand arrives. It is **proprioceptive**: computed purely from the 19-D commanded-action trajectory (no eye-tracking, no scene state), so it ports to any robot exposing those channels. Every benchmark rollout emits a GALT estimate alongside its success flag. Details: `docs/galt.md`. --- ## Installation Download the code from the [anonymous mirror](https://anonymous.4open.science/r/tavis-F5D7), unzip, then from inside the extracted folder: ```bash bash install.sh conda activate tavis ``` `install.sh` bootstraps the full pinned stack (via `uv`, applying the dependency overrides in `pyproject.toml`) into a fresh `tavis` conda env on Python 3.11. > **Hardware.** Simulation, data collection, and evaluation need an RTX GPU. Training: diffusion-policy and ฯ€โ‚€-LoRA fit on a single 24 GB card; full ฯ€โ‚€ training fits on an H100. ## Reproduction recipes **A) Run a pretrained multi-task policy across a whole suite**. Fastest path; no training. See above ("For Reviewers"). **B) Train + evaluate a single-task diffusion policy from scratch** (~12 h on a 4090). The released datasets are multi-task suites; `--task` filters to one task class: ```bash huggingface-cli download tavis-benchmark/tavis-head-gr1t2 \ --repo-type dataset --local-dir datasets/tavis-head-gr1t2 python scripts/train_policy.py \ --dataset datasets/tavis-head-gr1t2 \ --task conditional_pick --model diffusion --camera headcam \ --steps 200000 python scripts/eval_benchmark.py \ --checkpoint checkpoints/tavis-head-gr1t2__conditional_pick_diffusion_headcam \ --robot gr1t2 --tasks conditional_pick \ --eval-modes id ood_spatial --episodes 96 --num-envs 1 ``` Multi-task training is ฯ€โ‚€-only (it uses the per-episode language instruction). The paper's multi-task ฯ€โ‚€ runs used H100-days on an external orchestrator, so for reviewers the released ฯ€โ‚€ checkpoints (recipe A) are the practical reproduction path. Full recipes: see the mirror's `README.md`. ## Documentation (in the code mirror) | Topic | File | |-------|------| | GALT metric & porting to your robot | `docs/galt.md` | | Evaluation modes (`id`, `ood_*`) | `docs/ood_modes.md` | | Adding a new robot / task | `docs/extending_robots.md`, `docs/extending_tasks.md` | | Data collection (VR teleoperation) | `docs/data_collection.md` | ## License - **Code:** MIT. - **Datasets:** CC-BY-4.0. - **Robot models, YCB objects, task assets:** under their respective upstream licenses (NVIDIA IsaacLab, the YCB project, and the original robot-model authors); per-asset attribution ships with [`tavis-assets`](https://huggingface.co/datasets/tavis-benchmark/tavis-assets). ## Citation If you use TAVIS -- benchmark, datasets, or checkpoints -- please cite the TAVIS paper. The formal BibTeX will be posted here once the anonymous review period concludes; until then, please cite it by name as **"TAVIS: A Benchmark for Egocentric Active Vision and Anticipatory Gaze in Imitation Learning".** ## Contact Questions and bug reports (anonymous-review-safe): `tavis.benchmark@gmail.com`. ## Acknowledgments Built on [IsaacLab](https://isaac-sim.github.io/IsaacLab/) (NVIDIA), the [LeRobot](https://github.com/huggingface/lerobot) framework (Hugging Face), and IsaacLab-Arena. Robot models from the upstream Fourier GR1T2 and Pollen Reachy 2 USD distributions; objects from the YCB project; VR teleoperation via Meta Quest.