File size: 2,533 Bytes
2d93469 73a514c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | ---
license: other
license_name: gemma-terms-of-use
license_link: https://ai.google.dev/gemma/terms
library_name: n0vtla
tags:
- robotics
- vision-language-action
- tactile
- simulation
---
# 𝒩₀-VTLA — UniVTAC single-arm
A 𝒩₀-VTLA single-arm policy for the [UniVTAC](https://github.com/anlorla/UniVTAC) simulator,
post-trained from the [𝒩₀-VTLA pretrained base](https://huggingface.co/NeoteAI/n0-vtla-base).
This card documents the `insert_hole` setup.
| | |
|---|---|
| Embodiment | single-arm |
| Action space | joint, 8-dim (7 joints + gripper) |
| Action horizon | 50 |
| Tactile views | 2 |
| Latent tactile tokens | 5 |
## Files
```
model.safetensors the full checkpoint (~8.25 GB)
assets/n0_insert_hole_norm/norm_stats.json
config.json architecture summary
```
## Serve
The evaluation adapter speaks ZMQ + msgpack, so use `scripts/serve_zmq.py` from the
[code repository](https://github.com/neoteai/N0-VTLA):
```bash
hf download NeoteAI/n0_VTLA_insert_hole --local-dir checkpoints/n0_VTLA_insert_hole
VTLA_ASSET_ID=n0_insert_hole_norm python scripts/serve_zmq.py \
--config sim_single_arm_tactile \
--ckpt checkpoints/n0_VTLA_insert_hole \
--addr "tcp://*:5557" \
--default-prompt "insert hole"
```
Serving reads only `model.safetensors` and `assets/<asset-id>/norm_stats.json`; no dataset is
needed. A correct load prints `tactile=True` with 2 views and no missing or unexpected
state-dict keys. If it reports either, the config does not match the checkpoint.
Then run the evaluation from a UniVTAC checkout with a deploy YAML pointing at port 5557. Set
`exec_horizon` to 50, the model's action horizon: executing fewer steps clips the tail of each
chunk, which is where the grasp-closing motion lives.
## Action space
Unlike the pretrained base, which predicts end-effector deltas in a canonical 32-dim rot6d
container, this policy predicts **joint** actions: 7 joints plus gripper. The joint dims are
element-wise deltas against the current state; the gripper column is absolute. Do not feed it
end-effector data or reuse an end-effector normalization asset.
## License
These weights are derived from Google's PaliGemma/Gemma parameters and are made available under
the [Gemma Terms of Use](https://ai.google.dev/gemma/terms) and the
[Gemma Prohibited Use Policy](https://ai.google.dev/gemma/prohibited_use_policy), not under the
CC BY-SA 4.0 licence that covers the source code. This is inherited from the base model.
|