AdrianLlopart's picture
chore: canonical naming migration
4f3bea4 verified
Raw
History Blame Contribute Delete
5.08 kB
# rSkill manifest β€” OpenRAL packaging format V1 (CLAUDE.md Β§6.4)
# Wraps: lerobot/act_aloha_sim_insertion_human (MIT)
# Paper: Zhao et al., 2023 β€” Action Chunking Transformer.
#
# Sibling of skills/act-aloha (which wraps the transfer-cube checkpoint).
# This package targets the harder bimanual peg-in-socket *insertion* task
# from the same paper. Both skills share the ALOHA 14-DoF action space and
# the single 480x640 top camera contract.
#
# LEGACY PROCESSOR PATH: same shape as rskills/act-aloha β€” the mean/std
# norm stats live inside model.safetensors and the schema processors block
# is omitted. Modern lerobot ACTPolicy no longer hosts normalize_inputs/
# unnormalize_outputs modules, so it drops those keys on load ("Unexpected
# key(s)") β€” the ACT adapter re-reads them from the safetensors and applies
# them manually. Without that the policy runs unnormalised and flails.
# ── Identity ───────────────────────────────────────────────────────────────
schema_version: "0.1"
name: "OpenRAL/rskill-act-aloha-aloha_insertion-fp32"
version: "0.1.0"
license: "mit"
role: "s1"
kind: "vla" # rSkill kind discriminator. "vla" = learnable Vision-Language-Action policy.
# ── Policy identity ────────────────────────────────────────────────────────
model_family: "act"
# ── Compatibility contract ─────────────────────────────────────────────────
embodiment_tags:
- "aloha"
sensors_required:
- modality: "rgb"
vla_feature_key: "observation.images.top"
min_width: 640
min_height: 480
# Output side. For the canonical aloha bimanual embodiment the
# loader auto-fills n_dof (14) + vla_action_key from
# robots/aloha_bimanual/robot.yaml.
actuators_required:
- kind: "joint_position"
control_mode_semantics:
mode: "absolute"
# ── Runtime / weights ──────────────────────────────────────────────────────
runtime: "pytorch"
quantization:
dtype: "fp32"
backend: "pytorch"
weights_uri: "hf://lerobot/act_aloha_sim_insertion_human"
# ── Preprocessing (all knobs needed to interpret IO) ───────────────────────
# processors omitted β€” legacy path; norm stats live inside model.safetensors.
# ── Execution semantics ────────────────────────────────────────────────────
chunk_size: 100
# n_action_steps omitted β€” ACT default is 1 (per-step re-inference +
# temporal ensembling, paper-faithful).
latency_budget:
# Same ACT architecture as the cube-transfer sibling; reference-host
# measurements match within noise. The 25 ms ceiling keeps the
# canonical tolerance_pct=100 β†’ 50 ms test ceiling.
per_chunk_ms: 25.0
# ── Provenance ─────────────────────────────────────────────────────────────
# Headline success rate from skills/act-aloha-insertion/eval/aloha_insertion.json.
benchmarks:
aloha_insertion: 0.0
paper_url: "https://arxiv.org/abs/2304.13705"
source_repo: "hf://lerobot/act_aloha_sim_insertion_human"
description: >
ACT (~52M params, chunk=100) finetuned on the ALOHA bimanual
sim-insertion demonstration set. Insertion is the harder ALOHA task
in the original paper; the 0.20 success rate reflects that. See the
norm-stats note above re: the legacy safetensors-resident buffers.
# Task-data gate: trained + validated on the ALOHA sim
# insertion task, so the benchmark runner accepts the aloha_insertion
# scene and refuses task-mismatched scenes with ROSCapabilityMismatch.
evaluated_tasks: ["aloha_insertion"]
# Action vocabulary surfaced to the reasoner LLM tool
# palette so it can pick this skill by what it does (action verb +
# object + scene), not just by its slug.
actions:
- "insert"
- "pick"
- "place"
objects:
- "peg"
- "socket"
scenes:
- "tabletop"
# Per-checkpoint action contract (consumed by the dataset bridge
# to bind the LeRobot v3 `action` feature shape).
action_contract:
dim: 14
# ACT on ALOHA emits absolute joint positions (2Γ—(6 arm + 1 gripper)).
representation: "joint_positions"
# EXPLICIT joint units β€” the ALOHA sim (gym-aloha, MuJoCo qpos) records in
# RADIANS (verified: observation.state normalizer mean∈[-0.22, 0.74],
# std∈[0.10, 0.32] β€” every channel well under Ο€). No deg↔rad conversion at
# the policy boundary. Declared so the runner does not fall back to the
# stats-magnitude heuristic.
joint_units: "radians"
# Per-checkpoint state contract.
state_contract:
dim: 14