AdrianLlopart commited on
Commit
f19fbdd
·
0 Parent(s):

Duplicate from AdrianLlopart/rskill-act-aloha

Browse files
Files changed (5) hide show
  1. .gitattributes +35 -0
  2. README.md +101 -0
  3. eval/README.md +14 -0
  4. eval/aloha_transfer_cube.json +89 -0
  5. rskill.yaml +74 -0
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - OpenRAL
4
+ - rskill
5
+ - act
6
+ - lerobot
7
+ - aloha
8
+ - bimanual
9
+ - manipulation
10
+ license: mit
11
+ language:
12
+ - en
13
+ ---
14
+
15
+ # rskill-act-aloha
16
+
17
+ > **OpenRAL rSkill** — ACT (Action Chunking Transformer) finetuned on
18
+ > the ALOHA bimanual cube-transfer task, packaged for `OpenRAL`.
19
+
20
+ This package wraps
21
+ [`lerobot/act_aloha_sim_transfer_cube_human`](https://huggingface.co/lerobot/act_aloha_sim_transfer_cube_human)
22
+ with a `rskill.yaml` manifest that adds capability checking, license
23
+ surfacing, latency budgets, and local registry integration. It does
24
+ **not** copy model weights.
25
+
26
+ ## Upstream model
27
+
28
+ | Field | Value |
29
+ | --- | --- |
30
+ | Source repo | [`lerobot/act_aloha_sim_transfer_cube_human`](https://huggingface.co/lerobot/act_aloha_sim_transfer_cube_human) |
31
+ | Paper | [arxiv:2304.13705](https://arxiv.org/abs/2304.13705) — *Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware* (Zhao et al., 2023) |
32
+ | License | MIT |
33
+ | Parameters | ~52 M (transformer encoder-decoder) |
34
+ | Action chunk | 100 |
35
+ | Benchmark | ALOHA bimanual cube-transfer (`gym-aloha`) |
36
+
37
+ > **Note.** The published checkpoint predates lerobot's
38
+ > `PolicyProcessorPipeline` migration and ships **without normalisation
39
+ > buffers**. See `tests/sim/test_aloha_bimanual_act_aloha.py` for the resulting
40
+ > numerical-contract caveats.
41
+
42
+ ## Supported robots
43
+
44
+ | Robot | Embodiment tag | Status | Notes |
45
+ | --- | --- | --- | --- |
46
+ | ALOHA bimanual (Trossen) — `gym-aloha` MuJoCo | `aloha`, `lerobot` | ✓ sim | 14-DoF (2 × 7-DoF arms with parallel grippers) |
47
+
48
+ ## Sensors required
49
+
50
+ | Key | Type | Resolution | Format |
51
+ | --- | --- | --- | --- |
52
+ | `observation.images.top` | RGB camera | 640 × 480 | `float32` |
53
+
54
+ ACT for ALOHA cube-transfer ships with a single top-down RGB stream. No
55
+ wrist or third-person view.
56
+
57
+ ## Manifest summary
58
+
59
+ | Field | Value |
60
+ | --- | --- |
61
+ | `name` | `AdrianLlopart/rskill-act-aloha` |
62
+ | `version` | `0.1.0` |
63
+ | `license` | `mit` |
64
+ | `role` | `s1` |
65
+ | `embodiment_tags` | `aloha`, `lerobot` |
66
+ | `runtime` / `quantization.dtype` | `pytorch` / `fp32` |
67
+ | `weights_uri` | `hf://lerobot/act_aloha_sim_transfer_cube_human` |
68
+ | `latency_budget.per_chunk_ms` | 25 ms (warm; bf16 autocast ≈ 12 ms on RTX 4070 Laptop) |
69
+ | `latency_budget.warmup_ms` | 5 000 ms |
70
+ | `latency_budget.load_ms` | 10 000 ms |
71
+ | `commercial_use_allowed` | `true` |
72
+
73
+ Full schema: `openral_core.RSkillManifest` —
74
+ `python/core/src/openral_core/schemas.py`.
75
+
76
+ ## Reproduction
77
+
78
+ ```bash
79
+ git clone https://github.com/AdrianLlopart/openral && cd OpenRAL
80
+ just bootstrap && uv sync --all-packages --group sim
81
+
82
+ # End-to-end via the canonical SimEnvironment config:
83
+ just sim-act-aloha
84
+ # which runs:
85
+ # ral sim run --config examples/sim/act_aloha_transfer_cube.yaml --save-video
86
+
87
+ # Sim test (real gym-aloha MuJoCo with contact dynamics):
88
+ uv run pytest tests/sim/test_aloha_bimanual_act_aloha.py -v -m sim
89
+ ```
90
+
91
+ ## License
92
+
93
+ This rSkill package (`rskill.yaml`, `README.md`) is **MIT** to match the
94
+ upstream weights. Commercial use is allowed
95
+ (`commercial_use_allowed: true`).
96
+
97
+ ## See also
98
+
99
+ - [`robots/aloha_bimanual/README.md`](../../robots/aloha_bimanual/README.md) — RobotDescription manifest.
100
+ - [`examples/sim/act_aloha_transfer_cube.yaml`](../../examples/sim/act_aloha_transfer_cube.yaml) — paired SimEnvironment config.
101
+ - [`docs/reference/vla_compatibility.md`](../../docs/reference/vla_compatibility.md) — VLA × Robot × Sim matrix.
eval/README.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # `rskills/act-aloha/eval/` — benchmark results
2
+
3
+ `aloha_transfer_cube.json` is the ALOHA bimanual cube-transfer benchmark
4
+ result block for this rSkill. Validated against
5
+ [`openral_core.RSkillEvalResult`](../../../docs/reference/schemas/RSkillEvalResult.json)
6
+ at load time by the `rSkill` loader and surfaced by `ral benchmark report`.
7
+
8
+ | Field | Value |
9
+ | --- | --- |
10
+ | Source | Zhao et al., 2023 — *Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware* (arxiv:2304.13705) |
11
+ | Benchmark | ALOHA bimanual cube transfer (`gym_aloha/AlohaTransferCube-v0`) |
12
+ | Robot | Trossen ALOHA (2 × 7-DoF + parallel grippers, 14-DoF action) |
13
+ | Reproduced locally? | ✗ — paper-only. `tests/sim/test_aloha_bimanual_act_aloha.py` runs a single episode for IO + latency verification but does not aggregate the 50-trial protocol. |
14
+ | Reproduce | `just sim-act-aloha` (single episode); raise `--n-episodes 50` for the full paper protocol. |
eval/aloha_transfer_cube.json ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": "1",
3
+ "source": {
4
+ "paper": "https://arxiv.org/abs/2304.13705",
5
+ "arxiv": "https://arxiv.org/abs/2304.13705",
6
+ "model_variant": "act",
7
+ "evaluated_by": "OpenRAL:ral benchmark run",
8
+ "reproduced_locally": true,
9
+ "reproduction_planned": null,
10
+ "reproduction_cli": "ral benchmark run --suite aloha_transfer_cube --rskill rskill://act-aloha",
11
+ "table": null,
12
+ "status": "reproduced"
13
+ },
14
+ "benchmark": {
15
+ "name": "ALOHA bimanual cube transfer (gym-aloha)",
16
+ "dataset": null,
17
+ "protocol": "50 episodes per task, success_key=is_success, max_steps=400",
18
+ "robot": "aloha_bimanual",
19
+ "simulator": "gym-aloha (MuJoCo)"
20
+ },
21
+ "eval_config": {
22
+ "n_episodes": 50,
23
+ "seeds": [
24
+ 0,
25
+ 1,
26
+ 2,
27
+ 3,
28
+ 4,
29
+ 5,
30
+ 6,
31
+ 7,
32
+ 8,
33
+ 9,
34
+ 10,
35
+ 11,
36
+ 12,
37
+ 13,
38
+ 14,
39
+ 15,
40
+ 16,
41
+ 17,
42
+ 18,
43
+ 19,
44
+ 20,
45
+ 21,
46
+ 22,
47
+ 23,
48
+ 24,
49
+ 25,
50
+ 26,
51
+ 27,
52
+ 28,
53
+ 29,
54
+ 30,
55
+ 31,
56
+ 32,
57
+ 33,
58
+ 34,
59
+ 35,
60
+ 36,
61
+ 37,
62
+ 38,
63
+ 39,
64
+ 40,
65
+ 41,
66
+ 42,
67
+ 43,
68
+ 44,
69
+ 45,
70
+ 46,
71
+ 47,
72
+ 48,
73
+ 49
74
+ ],
75
+ "success_key": "is_success",
76
+ "max_steps": 400,
77
+ "vla_id": "act",
78
+ "weights_uri": "rskill://rskills/act-aloha"
79
+ },
80
+ "results": {
81
+ "aloha_transfer_cube/0_success_rate": 0.82,
82
+ "avg_success_rate": 0.82,
83
+ "n_tasks": 1,
84
+ "n_episodes_per_task": 50,
85
+ "n_episodes_total": 50,
86
+ "mean_step_latency_ms_avg": 10.794657473535338
87
+ },
88
+ "baselines": {}
89
+ }
rskill.yaml ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # rSkill manifest — OpenRAL packaging format V1 (CLAUDE.md §6.4)
2
+ # Wraps: lerobot/act_aloha_sim_transfer_cube_human (MIT)
3
+ # Paper: Zhao et al., 2023 — Action Chunking Transformer.
4
+
5
+ schema_version: "1"
6
+
7
+ name: "AdrianLlopart/rskill-act-aloha"
8
+ version: "0.1.0"
9
+ license: "mit"
10
+ role: "s1"
11
+
12
+ model_family: "act"
13
+
14
+ # Bimanual ALOHA (2 × 7-DoF arms = 14-DoF action space). Used by
15
+ # tests/sim/test_aloha_bimanual_act_aloha.py (gym-aloha MuJoCo).
16
+ embodiment_tags:
17
+ - "aloha"
18
+
19
+ capabilities_required: {}
20
+
21
+ # ACT for ALOHA cube-transfer ships with a single top-down 480×640 RGB stream.
22
+ sensors_required:
23
+ - modality: "rgb"
24
+ vla_feature_key: "observation.images.top"
25
+ min_width: 640
26
+ min_height: 480
27
+
28
+ # Output side (ADR-0013). For the canonical aloha bimanual embodiment the
29
+ # loader auto-fills n_dof (14) + vla_action_key from
30
+ # robots/aloha_bimanual/robot.yaml.
31
+ actuators_required:
32
+ - kind: "joint_position"
33
+
34
+ runtime: "pytorch"
35
+
36
+ quantization:
37
+ dtype: "fp32"
38
+ backend: "pytorch"
39
+
40
+ weights_uri: "hf://lerobot/act_aloha_sim_transfer_cube_human"
41
+
42
+ chunk_size: 100
43
+
44
+ latency_budget:
45
+ # Reference-host measurement (RTX 4070 Laptop, CUDA 12.8, PyTorch 2.10)
46
+ # of the warm full-chunk inference is 16 ms; bf16 autocast is ~12 ms.
47
+ # We pin per_chunk_ms to 25 ms to keep the canonical
48
+ # "tolerance_pct=100 → 2× ceiling" pattern (giving a 50 ms test ceiling,
49
+ # matching the previous _WARM_CHUNK_CEILING_S = 0.050).
50
+ per_chunk_ms: 25.0
51
+ warmup_ms: 5000.0
52
+ load_ms: 10000.0
53
+
54
+ fallback_skill_id: null
55
+
56
+ # Headline success rate from skills/act-aloha/eval/aloha_transfer_cube.json
57
+ # (50 episodes via `ral benchmark run`).
58
+ benchmarks:
59
+ aloha_transfer_cube: 0.82
60
+
61
+ # Policy-class identity; ACT manages its own preprocessing / state
62
+ # contract inside the lerobot ACTPolicy so nothing else needs to move.
63
+ policy_id: "act"
64
+
65
+ paper_url: "https://arxiv.org/abs/2304.13705"
66
+ source_repo: "hf://lerobot/act_aloha_sim_transfer_cube_human"
67
+
68
+ description: >
69
+ Action Chunking Transformer (~52M-param encoder-decoder) finetuned on
70
+ the ALOHA bimanual cube-transfer demonstration set. Action chunks of
71
+ length 100. The published checkpoint predates lerobot's
72
+ PolicyProcessorPipeline migration and ships without normalisation
73
+ buffers — see tests/sim/test_aloha_bimanual_act_aloha.py for the
74
+ resulting numerical-contract caveats.