Instructions to use openrob-furg/smolvla-openarm-single-pick-place-lego-n50 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use openrob-furg/smolvla-openarm-single-pick-place-lego-n50 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=openrob-furg/smolvla-openarm-single-pick-place-lego-n50 \ --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=openrob-furg/smolvla-openarm-single-pick-place-lego-n50 - Notebooks
- Google Colab
- Kaggle
SmolVLA fine tuned on OpenArm Lego pick and place (n50)
This is a SmolVLA policy fine tuned on 50 teleoperated demonstrations of a single arm pick and place task on the OpenArm. It was trained by the OPENROB project at FURG as the 50 episode condition of a data scale study.
Task
The right arm picks a single white Lego brick from the table and places it inside a container at a fixed position. The brick position and orientation vary between episodes.
Instruction: put the lego brick in the box
Training data
Dataset: openrob-furg/openarm-single-pick-place-lego
This model was trained on episodes 0 to 49 of that dataset (13,104 frames at 30 fps).
Inputs and outputs
| Key | Description | |
|---|---|---|
| Input | observation.images.cam_chest |
RGB, Intel RealSense D435i on the chest |
| Input | observation.images.right_cam_wrist |
RGB, Intel RealSense D405 on the right wrist |
| Input | observation.state |
8 values: right arm joints 1 to 7 and the gripper |
| Output | action |
Chunks of 50 absolute joint position targets (8 values each) |
The camera names are mapped to the SmolVLA image slots by the saved preprocessor, so the policy expects the keys above.
Training setup
| Setting | Value |
|---|---|
| Base model | lerobot/smolvla_base (0.45B parameters) |
| Trained parameters | Action expert and state projection; vision encoder and language model frozen |
| Steps / batch size | 20,000 / 32 |
| Optimizer | AdamW, peak learning rate 1e-4, cosine decay to 2.5e-6, 666 warmup steps |
| Seed | 1000 |
| Hardware | 1x NVIDIA RTX 4070 Ti (12 GB), about 3 hours |
| Software | LeRobot 0.6.1 |
Usage
from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy
policy = SmolVLAPolicy.from_pretrained("openrob-furg/smolvla-openarm-single-pick-place-lego-n50")
Use the same LeRobot version (0.6.1) for inference to avoid configuration mismatches.
Related models
| Model | Training episodes |
|---|---|
| openrob-furg/smolvla-openarm-single-pick-place-lego-n50 | 50 |
| openrob-furg/smolvla-openarm-single-pick-place-lego-n100 | 100 |
| openrob-furg/smolvla-openarm-single-pick-place-lego-n200 | 200 |
- Downloads last month
- 24
Model tree for openrob-furg/smolvla-openarm-single-pick-place-lego-n50
Base model
HuggingFaceTB/SmolLM2-360M