Instructions to use dobri420/smolvla-so101-pick-cube with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use dobri420/smolvla-so101-pick-cube 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=dobri420/smolvla-so101-pick-cube \ --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=dobri420/smolvla-so101-pick-cube - Notebooks
- Google Colab
- Kaggle
Pick-Cube SO-101 — SmolVLA policy
A SmolVLA policy finetuned to "grab the cube and put it in the box" on the SO-101 arm, from three camera views. Trained on the dobri420/pick-cube-so101 teleoperation dataset.
89% grab rate (72/81) on the real arm — the best of a coverage-vs-optimization sweep, and balanced across reach depth (25 / 20 / 15 cm = 89 / 93 / 85 %).
Training corpus vs. performance
Same workspace half-disk in both panels (rings = reach in cm from the shoulder-pan axis, radials = target angle), so coverage and success line up cell-for-cell. Left: where the training demos actually grasped (SO-101 forward kinematics on the jaw center). Right: where the resulting policy succeeds, measured on a held-out grid of 81 targets (27 per depth).
| training coverage (grasp position) | eval (grab rate) |
![]() |
![]() |
Training
- Base:
lerobot/smolvla_base(expert finetuned, VLM frozen). - Data: the first 340 episodes of
dobri420/pick-cube-so101(the five tranches through twist-CCW; the dataset has since grown to 440 with a twist-CW tranche not used here). - Schedule: 2.56M samples @ batch 64 (40k steps), bf16, on a single B200.
- Inputs: three 256×256 camera views (
camera1/2/3) + 6-DoF joint state. Output: 6-DoF action, 50-step chunks.
Usage
from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy
policy = SmolVLAPolicy.from_pretrained("dobri420/pick-cube-so101")
The repo ships the runnable inference bundle: model weights, config.json, and the
normalization pre/post-processor pipelines (the mean/std that map real joint units
↔ the model's normalized space live in the *_processor.safetensors — they are
required for inference). train_config.json records the full training recipe.
Built with LeRobot.
- Downloads last month
- 3
Model tree for dobri420/smolvla-so101-pick-cube
Base model
lerobot/smolvla_base
