| --- |
| 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. |
|
|