Instructions to use lerobot/smolvla_robocasa with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use lerobot/smolvla_robocasa 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=lerobot/smolvla_robocasa \ --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=lerobot/smolvla_robocasa - Notebooks
- Google Colab
- Kaggle
smolvla_robocasa: observation.state is documented as 16D but checkpoint config uses 6D
#1
by Lipschitz - opened
Hi LeRobot team,
I am evaluating lerobot/smolvla_robocasa on RoboCasa with the documented command:
lerobot-eval \
--policy.path=lerobot/smolvla_robocasa \
--env.type=robocasa \
--env.task=CloseFridge \
--eval.batch_size=1 \
--eval.n_episodes=2 \
--eval.use_async_envs=false \
--policy.device=cuda \
'--rename_map={"observation.images.robot0_agentview_left": "observation.images.camera1", "observation.images.robot0_eye_in_hand": "observation.images.camera2", "observation.images.robot0_agentview_right": "observation.images.camera3"}'
The RoboCasa365 documentation says the policy input observation.state is a 16-dimensional proprioceptive state:
- base position
- base quaternion
- relative end-effector position
- relative end-effector quaternion
- gripper qpos
However, the loaded checkpoint config shows:
policy.input_features["observation.state"].shape = (6,)
policy.output_features["action"].shape = (12,)
while the environment config shows:
env.features["agent_pos"].shape = (16,)
env.features_map["agent_pos"] = "observation.state"
So during evaluation, the RoboCasa environment appears to provide a 16D state, but the released smolvla_robocasa checkpoint declares a 6D state input.
Could you clarify which one is expected?
- Was
smolvla_robocasaactually trained with the full 16D RoboCasa state? - Or was it trained with a 6D subset of the state?
- If it was trained with 16D, should the checkpoint
config.json/ preprocessor metadata be updated from 6D to 16D? - If it was trained with 6D, should the RoboCasa365 documentation/model card mention the exact 6D state representation and how the 16D environment state is reduced?
This matters because users trying to evaluate or adapt the checkpoint need to know whether to feed the full RoboCasa 16D state, crop it to 6D, or retrain/fine-tune with a consistent 16D representation.
Thanks!