Robotics
LeRobot
English
lelab
so-100
imitation-learning
education
act
diffusion-policy
smolvla
gr00t
Instructions to use van-i/so100-imitation-learning-stand with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use van-i/so100-imitation-learning-stand 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=van-i/so100-imitation-learning-stand \ --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=van-i/so100-imitation-learning-stand - Notebooks
- Google Colab
- Kaggle
Download scripts/camera-setup.sh from van-i/so100-imitation-learning-stand: direct link, hf CLI and curl.
- Browser
- Download file 984 Bytes
-
https://huggingface.co/van-i/so100-imitation-learning-stand/resolve/main/scripts/camera-setup.sh
- Command line
-
hf download hf://van-i/so100-imitation-learning-stand/scripts/camera-setup.sh
-
curl -L -o camera-setup.sh https://huggingface.co/van-i/so100-imitation-learning-stand/resolve/main/scripts/camera-setup.sh
984 Bytes
| # Re-apply camera settings for the stand (they reset when a camera is replugged). | |
| # Cameras are found by USB port, so this works even if /dev/videoN numbers shift. | |
| set -euo pipefail | |
| declare -A PORTS=( [left]=3-12 [right]=3-11 [grip]=3-13.1 ) | |
| find_dev() { # print the /dev/videoN capture node for a USB port | |
| for d in /sys/class/video4linux/video*; do | |
| [[ "$(basename "$(readlink -f "$d/device")")" == "$1:1.0" ]] || continue | |
| [[ "$(cat "$d/index")" == 0 ]] && { echo "/dev/$(basename "$d")"; return; } | |
| done | |
| } | |
| for name in left grip right; do | |
| dev=$(find_dev "${PORTS[$name]}") | |
| [[ -n "$dev" ]] || { echo "$name: not found on USB ${PORTS[$name]}" >&2; continue; } | |
| v4l2-ctl -d "$dev" -c power_line_frequency=2 # 60 Hz mains | |
| if [[ $name == grip ]]; then | |
| v4l2-ctl -d "$dev" -c brightness=-16 -c backlight_compensation=0 # stop jaws blowing out | |
| fi | |
| echo "$name -> $dev ($(cat /sys/class/video4linux/$(basename "$dev")/name))" | |
| done | |