AdrianLlopart commited on
Commit
c82195a
Β·
verified Β·
1 Parent(s): ef6ba32

rskill.yaml: sync to OpenRAL namespace + current schema (joint_units, evaluated_tasks, ADR-0071)

Browse files
Files changed (1) hide show
  1. rskill.yaml +41 -15
rskill.yaml CHANGED
@@ -33,11 +33,18 @@
33
  # `task.max_steps` to MS3's `max_episode_steps` so the rollout isn't
34
  # silently truncated at MS3's default 50 steps.
35
  #
36
- # The upstream model repo doesn't ship `policy_*processor.json`. The
37
- # SmolVLA adapter (also this PR) detects that and rebuilds the
38
- # lerobot processors from `dataset_uri`'s `meta/episodes_stats.jsonl`
39
- # β€” same path applies to any community finetune uploaded without
40
- # processors.
 
 
 
 
 
 
 
41
 
42
  # ── Identity ───────────────────────────────────────────────────────────────
43
  schema_version: "0.1"
@@ -87,14 +94,15 @@ weights_uri: "hf://Calvert0921/smolvla_franka_liftcube_1000"
87
 
88
  # ── Preprocessing (all knobs needed to interpret IO) ───────────────────────
89
  # Per-file URIs for the lerobot PolicyProcessorPipeline. The upstream
90
- # repo only ships the safetensors + config.json + train_config.json (no
91
- # stored `policy_*processor.json`); the SmolVLA adapter falls back to
92
- # building processors from `policy.config` via `make_pre_post_processors`
93
- # at load time. These URIs are left pointing at the canonical filenames
94
- # so a future re-upload that includes them is picked up automatically.
 
95
  processors:
96
- preprocessor_uri: "hf://Calvert0921/smolvla_franka_liftcube_1000/policy_preprocessor.json"
97
- postprocessor_uri: "hf://Calvert0921/smolvla_franka_liftcube_1000/policy_postprocessor.json"
98
  # Per-checkpoint knobs the processor JSONs don't encode. The model was
99
  # trained on raw SAPIEN renders (no 180Β° flip); cameras need an alias
100
  # remap from the in-tree scene-side keys (camera1 / camera2) to the
@@ -102,8 +110,8 @@ processors:
102
  image_preprocessing:
103
  flip_180: false
104
  aliases:
105
- camera1: "up"
106
- camera2: "wrist"
107
  state_contract:
108
  dim: 9
109
 
@@ -122,6 +130,19 @@ latency_budget:
122
  paper_url: "https://arxiv.org/abs/2506.01844"
123
  dataset_uri: "hf://Calvert0921/SmolVLA_LiftCube_Franka_1000"
124
  source_repo: "hf://Calvert0921/smolvla_franka_liftcube_1000"
 
 
 
 
 
 
 
 
 
 
 
 
 
125
 
126
  description: >
127
  SmolVLA (0.45 B, lerobot/smolvla_base) finetuned on
@@ -149,4 +170,9 @@ action_contract:
149
  dim: 8
150
 
151
  benchmarks:
152
- maniskill3_franka_pick_cube: 0.1
 
 
 
 
 
 
33
  # `task.max_steps` to MS3's `max_episode_steps` so the rollout isn't
34
  # silently truncated at MS3's default 50 steps.
35
  #
36
+ # The upstream model repo (Calvert0921/smolvla_franka_liftcube_1000)
37
+ # ships only config.json + model.safetensors + train_config.json β€” no
38
+ # `policy_*processor.json`. Rather than rely on the SmolVLA adapter's
39
+ # dataset-stats fallback at every load (a 404 + recompute against
40
+ # `dataset_uri`'s `meta/episodes_stats.jsonl`), the processor pair was
41
+ # rebuilt once via `make_pre_post_processors(policy.config,
42
+ # dataset_stats=...)` and uploaded to THIS rSkill's own HF repo
43
+ # (OpenRAL/rskill-smolvla-maniskill-franka). The rebuilt normalizer
44
+ # stats match the checkpoint's baked `normalize_inputs` /
45
+ # `normalize_targets` buffers exactly, so the processors are faithful to
46
+ # how the model was trained. The fallback path still exists for any
47
+ # other community finetune uploaded without processors.
48
 
49
  # ── Identity ───────────────────────────────────────────────────────────────
50
  schema_version: "0.1"
 
94
 
95
  # ── Preprocessing (all knobs needed to interpret IO) ───────────────────────
96
  # Per-file URIs for the lerobot PolicyProcessorPipeline. The upstream
97
+ # weights repo ships no `policy_*processor.json`, so the pair (plus the
98
+ # normalizer/unnormalizer `*.safetensors` state files referenced by the
99
+ # JSON `steps`) was rebuilt from the checkpoint config + training-dataset
100
+ # stats and uploaded to this rSkill's own HF repo. `materialize_processor_dir`
101
+ # downloads exactly these files (and their `state_file` siblings) β€” no 404,
102
+ # no dataset-stats recompute at load time.
103
  processors:
104
+ preprocessor_uri: "hf://OpenRAL/rskill-smolvla-maniskill-franka/policy_preprocessor.json"
105
+ postprocessor_uri: "hf://OpenRAL/rskill-smolvla-maniskill-franka/policy_postprocessor.json"
106
  # Per-checkpoint knobs the processor JSONs don't encode. The model was
107
  # trained on raw SAPIEN renders (no 180Β° flip); cameras need an alias
108
  # remap from the in-tree scene-side keys (camera1 / camera2) to the
 
110
  image_preprocessing:
111
  flip_180: false
112
  aliases:
113
+ top: "up"
114
+ wrist: "wrist"
115
  state_contract:
116
  dim: 9
117
 
 
130
  paper_url: "https://arxiv.org/abs/2506.01844"
131
  dataset_uri: "hf://Calvert0921/SmolVLA_LiftCube_Franka_1000"
132
  source_repo: "hf://Calvert0921/smolvla_franka_liftcube_1000"
133
+ # Task-data gate (ADR-0060): this checkpoint was trained on the *LiftCube*
134
+ # dataset (a ManiSkill2-style "lift the cube to a height" task) which has NO
135
+ # equivalent env in ManiSkill3 3.0.1 β€” MS3 ships PickCube-v1 (grasp + place at
136
+ # a goal + stay static), a different task. Declaring the (MS3-absent) true task
137
+ # makes the benchmark runner refuse every real MS3 scene with
138
+ # ROSCapabilityMismatch. Verified empirically 2026-06-19: retargeted to
139
+ # PickCube-v1 it runs (50 steps, ~15 ms/step real inference) and attempts the
140
+ # cube but cannot satisfy PickCube's goal-placement success (success=False) β€”
141
+ # exactly the plausible-but-unsolvable rollout the gate exists to block. This
142
+ # rSkill therefore has no valid MS3 benchmark; replace with a PickCube-trained
143
+ # policy (e.g. the author's PegInsertion checkpoint -> PegInsertionSide-v1, or
144
+ # an MS3 OpenVLA-OFT policy) before pairing it with a maniskill scene.
145
+ evaluated_tasks: ["maniskill3/LiftCube"]
146
 
147
  description: >
148
  SmolVLA (0.45 B, lerobot/smolvla_base) finetuned on
 
170
  dim: 8
171
 
172
  benchmarks:
173
+ # PickCube-v1 via the curated franka_panda suite `maniskill3_panda`
174
+ # (auto-filters to this rSkill's task). 0.0 = the shipped LiftCube
175
+ # checkpoint cannot satisfy PickCube's goal-placement success (task
176
+ # mismatch β€” see the MS3 LiftCube-gap note above); replace with a
177
+ # PickCube-trained policy to lift this.
178
+ maniskill3_panda: 0.0