Instructions to use angkul07/mm_SO101_teleop with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use angkul07/mm_SO101_teleop 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=angkul07/mm_SO101_teleop \ --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=angkul07/mm_SO101_teleop - Notebooks
- Google Colab
- Kaggle
| # The annotator dies on a 503 UNAVAILABLE: keypool.is_rate_limit only matches 429/quota-style | |
| # errors, so a transient "model experiencing high demand" escapes the handler and kills the | |
| # process mid-range. It resumes from its own results JSON (episodes already present are skipped), | |
| # so re-entering with backoff is safe and cheap. Keep ONE model id — the results filename embeds | |
| # it, and switching mid-run starts a fresh file. | |
| set -uo pipefail | |
| cd /workspace/fd-studio/eval/ci_mse | |
| export GEMINI_API_KEYS="AQ.Ab8RN6JI3VRv4hhZjDTbdpzxICp5A_lv-v7sEi0mWJ-XcYXZPQ,AQ.Ab8RN6J4-1le25DDURnrcp4ySEB-FOTRsgYsZhFNlw62NOOAGA,AQ.Ab8RN6LmjvzzwUZ72Eq8roPdeHbbtKvysUTEf-XrL4eXx_Kawg,AQ.Ab8RN6K1sICN6XDz3WepwiHi2ssloe9gWfOxgmMY0GL_GmHj_A" | |
| export HF_HOME=/workspace/.hf | |
| MODEL="${MODEL:-gemini-flash-lite-latest}" | |
| OUT=/workspace/evalout/ci_annot | |
| RESULTS="$OUT/test_zero_shot_${MODEL}.json" | |
| PY=/workspace/smolvla_ft/.venv/bin/python | |
| for attempt in $(seq 1 40); do | |
| n=$($PY -c " | |
| import json,sys | |
| try: print(len(json.load(open('$RESULTS')))) | |
| except Exception: print(0)" 2>/dev/null) | |
| echo "=== attempt $attempt: $n/6 episodes annotated" | |
| [[ "$n" -ge 6 ]] && { echo "ANNOTATION COMPLETE"; break; } | |
| $PY vlm_annotator/gemini_annotator.py \ | |
| --demo_path /workspace/mm_split/val --demo_type lerobot \ | |
| --prompt_config vlm_annotator/prompts/PlaceBlueCubeInOrangeBox.json \ | |
| --episode_idx "[0, 5]" --model "$MODEL" --backend gemini --downsample 3 \ | |
| --output_dir "$OUT" --video_out "$OUT/episode.mp4" 2>&1 | tail -4 | |
| sleep $(( attempt < 5 ? 15 : 45 )) | |
| done | |