Robotics
LeRobot
English
OpenRAL
rskill
smolvla
vision-language-action
franka_panda
vla
so100
libero
manipulation
Instructions to use OpenRAL/rskill-smolvla-franka_panda-libero_spatial-bf16 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use OpenRAL/rskill-smolvla-franka_panda-libero_spatial-bf16 with LeRobot:
# See https://github.com/huggingface/lerobot?tab=readme-ov-file#installation for more details git clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e .[smolvla]
# Launch finetuning on your dataset python lerobot/scripts/train.py \ --policy.path=OpenRAL/rskill-smolvla-franka_panda-libero_spatial-bf16 \ --dataset.repo_id=lerobot/svla_so101_pickplace \ --batch_size=64 \ --steps=20000 \ --output_dir=outputs/train/my_smolvla \ --job_name=my_smolvla_training \ --policy.device=cuda \ --wandb.enable=true
# Run the policy using the record function python -m lerobot.record \ --robot.type=so101_follower \ --robot.port=/dev/ttyACM0 \ # <- Use your port --robot.id=my_blue_follower_arm \ # <- Use your robot id --robot.cameras="{ front: {type: opencv, index_or_path: 8, width: 640, height: 480, fps: 30}}" \ # <- Use your cameras --dataset.single_task="Grasp a lego block and put it in the bin." \ # <- Use the same task description you used in your dataset recording --dataset.repo_id=HF_USER/dataset_name \ # <- This will be the dataset name on HF Hub --dataset.episode_time_s=50 \ --dataset.num_episodes=10 \ --policy.path=OpenRAL/rskill-smolvla-franka_panda-libero_spatial-bf16 - Notebooks
- Google Colab
- Kaggle
chore: canonical naming migration
Browse files- rskill.yaml +16 -15
rskill.yaml
CHANGED
|
@@ -13,12 +13,12 @@
|
|
| 13 |
|
| 14 |
# ββ Identity βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 15 |
schema_version: "0.1"
|
| 16 |
-
name: "OpenRAL/rskill-smolvla-
|
| 17 |
-
evaluated_tasks: ["libero_spatial", "libero_object", "libero_goal", "libero_10"] #
|
| 18 |
version: "0.1.0"
|
| 19 |
license: "apache-2.0"
|
| 20 |
role: "s1"
|
| 21 |
-
kind: "vla" #
|
| 22 |
|
| 23 |
# ββ Policy identity ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 24 |
model_family: "smolvla"
|
|
@@ -27,7 +27,7 @@ model_family: "smolvla"
|
|
| 27 |
# LIBERO benchmark targets table-top manipulation with a Franka Panda
|
| 28 |
# arm β the canonical embodiment used under
|
| 29 |
# `openral sim run --config smolvla_libero_spatial.yaml` (matches the
|
| 30 |
-
# pi05-libero-
|
| 31 |
embodiment_tags:
|
| 32 |
- "franka_panda"
|
| 33 |
|
|
@@ -44,7 +44,7 @@ sensors_required:
|
|
| 44 |
min_width: 224
|
| 45 |
min_height: 224
|
| 46 |
|
| 47 |
-
# Output side
|
| 48 |
# loader auto-fills n_dof + vla_action_key from robots/franka_panda/robot.yaml.
|
| 49 |
actuators_required:
|
| 50 |
- kind: "joint_position"
|
|
@@ -56,15 +56,16 @@ runtime: "pytorch"
|
|
| 56 |
quantization:
|
| 57 |
dtype: "bf16"
|
| 58 |
backend: "pytorch"
|
| 59 |
-
#
|
| 60 |
# paired reward model co-reside on the GPU before loading. bf16 measured at 0.93 GB
|
| 61 |
# weights at load (RTX 4070); 1.2 GB declared with inference-activation headroom.
|
| 62 |
min_vram_gb:
|
| 63 |
bf16: 1.2
|
| 64 |
-
#
|
| 65 |
-
# progress monitor resident alongside it
|
| 66 |
-
# default; 1.2 + 3.6 = 4.8 GB fits an 8 GB
|
| 67 |
-
|
|
|
|
| 68 |
# Pin to the HEAD SHA at packaging time for reproducibility (principle 8).
|
| 69 |
# Update by re-running: tools/rskill_publisher.py --bump-revision
|
| 70 |
weights_uri: "hf://lerobot/smolvla_libero"
|
|
@@ -85,13 +86,13 @@ image_preprocessing:
|
|
| 85 |
top: "image"
|
| 86 |
wrist: "image2"
|
| 87 |
state_contract:
|
| 88 |
-
#
|
| 89 |
# (eef_pos β eef_axisangle β gripper). The benchmark (`openral sim run`)
|
| 90 |
# supplies it directly; deploy (`openral deploy sim`) assembles it from live
|
| 91 |
# TF + JointState via the `libero_eef8d` state-adapter. Without the layout the
|
| 92 |
# runner falls back to raw joint-space state and the policy never reaches the
|
| 93 |
# target. The franka deploy sim publishes a static `world -> panda_link0` from
|
| 94 |
-
# the sim's robot mount pose (sim_sensor_bridge
|
| 95 |
# read in the same world frame as robosuite's `robot0_eef_pos`.
|
| 96 |
layout: "libero_eef8d"
|
| 97 |
dim: 8
|
|
@@ -142,7 +143,7 @@ description: >
|
|
| 142 |
here matches the paper's reported configuration on all five
|
| 143 |
architecture fields β see header comment for the rejected sibling.
|
| 144 |
|
| 145 |
-
#
|
| 146 |
# palette so it can pick this skill by what it does (action verb +
|
| 147 |
# object + scene), not just by its slug.
|
| 148 |
actions:
|
|
@@ -159,11 +160,11 @@ scenes:
|
|
| 159 |
- "tabletop"
|
| 160 |
- "kitchen"
|
| 161 |
|
| 162 |
-
#
|
| 163 |
# to bind the LeRobot v3 `action` feature shape).
|
| 164 |
action_contract:
|
| 165 |
dim: 7
|
| 166 |
-
#
|
| 167 |
# Declaring the representation makes deploy-sim dispatch cartesian_delta +
|
| 168 |
# gripper (via canonical_slots_for_representation) instead of defaulting the
|
| 169 |
# whole vector to JOINT_POSITION, which the joint-space envelope rejects.
|
|
|
|
| 13 |
|
| 14 |
# ββ Identity βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 15 |
schema_version: "0.1"
|
| 16 |
+
name: "OpenRAL/rskill-smolvla-franka_panda-libero_spatial-bf16"
|
| 17 |
+
evaluated_tasks: ["libero_spatial", "libero_object", "libero_goal", "libero_10"] # trained on the full LIBERO set (all 4 suites, 40 tasks)
|
| 18 |
version: "0.1.0"
|
| 19 |
license: "apache-2.0"
|
| 20 |
role: "s1"
|
| 21 |
+
kind: "vla" # rSkill kind discriminator. "vla" = learnable Vision-Language-Action policy.
|
| 22 |
|
| 23 |
# ββ Policy identity ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
| 24 |
model_family: "smolvla"
|
|
|
|
| 27 |
# LIBERO benchmark targets table-top manipulation with a Franka Panda
|
| 28 |
# arm β the canonical embodiment used under
|
| 29 |
# `openral sim run --config smolvla_libero_spatial.yaml` (matches the
|
| 30 |
+
# pi05-libero-int8 / xvla-libero manifests).
|
| 31 |
embodiment_tags:
|
| 32 |
- "franka_panda"
|
| 33 |
|
|
|
|
| 44 |
min_width: 224
|
| 45 |
min_height: 224
|
| 46 |
|
| 47 |
+
# Output side. For the canonical franka_panda embodiment the
|
| 48 |
# loader auto-fills n_dof + vla_action_key from robots/franka_panda/robot.yaml.
|
| 49 |
actuators_required:
|
| 50 |
- kind: "joint_position"
|
|
|
|
| 56 |
quantization:
|
| 57 |
dtype: "bf16"
|
| 58 |
backend: "pytorch"
|
| 59 |
+
# VRAM footprint per dtype, so the deploy can verify this VLA + its
|
| 60 |
# paired reward model co-reside on the GPU before loading. bf16 measured at 0.93 GB
|
| 61 |
# weights at load (RTX 4070); 1.2 GB declared with inference-activation headroom.
|
| 62 |
min_vram_gb:
|
| 63 |
bf16: 1.2
|
| 64 |
+
# A VLA emits no success signal of its own, so it runs with a reward /
|
| 65 |
+
# progress monitor resident alongside it as the model's completion signal.
|
| 66 |
+
# Robometer (NF4, 3.6 GB) is the default; 1.2 + 3.6 = 4.8 GB fits an 8 GB
|
| 67 |
+
# card with room to spare.
|
| 68 |
+
reward_rskill_name: "OpenRAL/rskill-robometer_4b-any-general-nf4"
|
| 69 |
# Pin to the HEAD SHA at packaging time for reproducibility (principle 8).
|
| 70 |
# Update by re-running: tools/rskill_publisher.py --bump-revision
|
| 71 |
weights_uri: "hf://lerobot/smolvla_libero"
|
|
|
|
| 86 |
top: "image"
|
| 87 |
wrist: "image2"
|
| 88 |
state_contract:
|
| 89 |
+
# the LIBERO checkpoint trains on 8-D TASK-SPACE proprio
|
| 90 |
# (eef_pos β eef_axisangle β gripper). The benchmark (`openral sim run`)
|
| 91 |
# supplies it directly; deploy (`openral deploy sim`) assembles it from live
|
| 92 |
# TF + JointState via the `libero_eef8d` state-adapter. Without the layout the
|
| 93 |
# runner falls back to raw joint-space state and the policy never reaches the
|
| 94 |
# target. The franka deploy sim publishes a static `world -> panda_link0` from
|
| 95 |
+
# the sim's robot mount pose (sim_sensor_bridge) so the EE pose is
|
| 96 |
# read in the same world frame as robosuite's `robot0_eef_pos`.
|
| 97 |
layout: "libero_eef8d"
|
| 98 |
dim: 8
|
|
|
|
| 143 |
here matches the paper's reported configuration on all five
|
| 144 |
architecture fields β see header comment for the rejected sibling.
|
| 145 |
|
| 146 |
+
# Action vocabulary surfaced to the reasoner LLM tool
|
| 147 |
# palette so it can pick this skill by what it does (action verb +
|
| 148 |
# object + scene), not just by its slug.
|
| 149 |
actions:
|
|
|
|
| 160 |
- "tabletop"
|
| 161 |
- "kitchen"
|
| 162 |
|
| 163 |
+
# Per-checkpoint action contract (consumed by the dataset bridge
|
| 164 |
# to bind the LeRobot v3 `action` feature shape).
|
| 165 |
action_contract:
|
| 166 |
dim: 7
|
| 167 |
+
# LIBERO action space is 6-D OSC end-effector delta + gripper.
|
| 168 |
# Declaring the representation makes deploy-sim dispatch cartesian_delta +
|
| 169 |
# gripper (via canonical_slots_for_representation) instead of defaulting the
|
| 170 |
# whole vector to JOINT_POSITION, which the joint-space envelope rejects.
|