# rSkill manifest — openral packaging format V1 (CLAUDE.md §6.4) # Wraps: RLinf/RLinf-OpenVLAOFT-PPO-ManiSkill3-25ood # Base: Haozhan72/Openvla-oft-SFT-libero-goal-trajall (+ ManiSkill LoRA SFT + PPO) # # An OpenVLA-OFT bridge policy RL-tuned (PPO) on the ManiSkill3 # PutOnPlateInScene25 task with a WidowX 250 S. Its honest evaluation home is # the SimplerEnv WidowX put-on-plate tasks OpenRAL already wires (same # embodiment / EE-delta control / bridge_orig normalization) — NOT the Panda # PickCube scenes (the task-data gate would correctly block that pairing; see # the OpenVLA / OpenVLA-OFT policy family notes for the WidowX-vs-Panda rationale). # # IO contract (from the checkpoint's config.json + RLinf eval, 2026-06-19): # input: one 224x224 RGB (the SimplerEnv 3rd-view, surfaced as camera1); # prompt "In: What action should the robot take to {instr}?\nOut: "; # no proprio (use_proprio=False). # output: 256-bin discrete action tokens -> [-1,1] -> de-normalized with the # embedded unnorm_key=bridge_orig (BOUNDS_Q99): 6 EE deltas rescaled, # gripper (mask False) passthrough. Action chunk 8 x 7-D. # The in-tree `openvla` adapter loads this via transformers # AutoModelForVision2Seq + trust_remote_code (gated by # OPENRAL_ALLOW_REMOTE_CODE=1), NF4 for the 8 GB host. # ── Identity ─────────────────────────────────────────────────────────────── schema_version: "0.1" name: "OpenRAL/rskill-openvla_oft-widowx-simpler_env-nf4" version: "0.1.0" license: "mit" role: "s1" kind: "vla" # learnable Vision-Language-Action policy # Task-data gate: declare only the SimplerEnv WidowX task locally verified with # success > 0. The sibling Bridge tasks remain plausible checkpoint targets, but # they are not declared until reproduced locally. evaluated_tasks: - "simpler_env/widowx_carrot_on_plate" benchmarks: simpler_env_widowx: 0.4 # ── Policy identity ──────────────────────────────────────────────────────── model_family: "openvla" # ── Compatibility contract ───────────────────────────────────────────────── embodiment_tags: - "widowx" sensors_required: - modality: "rgb" vla_feature_key: "observation.images.camera1" min_width: 224 min_height: 224 actuators_required: - kind: "joint_position" control_mode_semantics: mode: "absolute" # ── Runtime / weights ────────────────────────────────────────────────────── runtime: "pytorch" quantization: dtype: "int4" backend: "pytorch" min_vram_gb: # OpenVLA-7B documented footprints (paper Table 2): bf16 16.8 GB, int4 7.0 GB # (int4 matches bf16 task accuracy). int4 + expandable_segments fits an 8 GB card. bf16: 16.8 int4: 7.0 weights_uri: "hf://RLinf/RLinf-OpenVLAOFT-PPO-ManiSkill3-25ood@3697bf84eaa7a7c6072e07b9451ca4c780cf7bed" source_repo: "hf://RLinf/RLinf-OpenVLAOFT-PPO-ManiSkill3-25ood" # No `processors` block: OpenVLA is not a lerobot modern-processor family. Its # PrismaticProcessor ships in the repo (custom code) and normalization stats are # embedded in config.json (selected by unnorm_key), so there is nothing to point at. # ── State / action contracts ─────────────────────────────────────────────── state_contract: # SimplerEnv WidowX (bridge_orig) wire schema: 8 scalar state keys. The RLinf # OpenVLA-OFT checkpoint does not consume proprio, but the backend surfaces it # and the dim keeps the simpler_widowx layout invariant happy. layout: "simpler_widowx" dim: 8 action_contract: # 6 cartesian EE deltas + 1 binary gripper (NOT 7 joint # positions) — matches the de-normalized predict_action output. dim: 7 representation: "delta_ee_6d_plus_gripper" # ── Execution semantics ──────────────────────────────────────────────────── # OpenVLA-OFT emits an 8-step action chunk per forward; replay the full chunk # open-loop (RLinf's chunk_step executes all 8 before re-inferring). chunk_size: 8 n_action_steps: 8 latency_budget: per_chunk_ms: 2000.0 # RLinf PPO eval path. These are adapter-owned knobs intentionally kept in the # manifest instead of scene YAML so the rollout trace records exactly how the # checkpoint was driven. policy_extras: openvla_generation_method: "generate_action_verl" openvla_do_sample: true openvla_temperature: 0.6 openvla_padding_max_length: 30 openvla_action_scale: 2.0 openvla_binarize_gripper: true openvla_gripper_threshold: 0.5 openvla_torch_seed: 0 # ── Provenance ───────────────────────────────────────────────────────────── paper_url: "https://huggingface.co/RLinf/RLinf-OpenVLAOFT-PPO-ManiSkill3-25ood" description: > OpenVLA-OFT (RLinf, PPO on ManiSkill3 PutOnPlateInScene25) WidowX bridge policy, evaluated on SimplerEnv WidowX carrot-on-plate. Loaded in-process via transformers custom-code (trust_remote_code), NF4 for 8 GB hosts. MIT license. # Action vocabulary for the reasoner LLM tool palette. actions: - "pick" - "place" objects: - "object" scenes: - "tabletop"