An experimental workspace for robot learning research with the SO-101 robot arm.
🚧 Work in Progress
This repository contains tools and experiments for:
- 🤖 Imitation Learning - Record and replay demonstrations using LeRobot
- 🎮 Deep Reinforcement Learning - Train policies with RL algorithms
- 🧠 Vision-Language-Action Models - Explore VLA-based control
- 🔬 Ablation Studies - Systematic experiments on task design and architecture
| Component | Port/Device |
|---|---|
| Follower Arm | /dev/ttyACM0 |
| Leader Arm | /dev/ttyACM1 |
| Robot Camera | /dev/video2 |
# Clone the repository
git clone git@github.com:vvrs/so101-playground.git
cd so101-playground
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install dependencies (includes LeRobot from source)
pip install -e .
# Grant serial port access
sudo usermod -aG dialout $USER
# Log out and back in for group changes to take effect# Calibrate follower arm
lerobot-calibrate \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower_arm
# Calibrate leader arm
lerobot-calibrate \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM1 \
--teleop.id=my_leader_armlerobot-teleoperate \
--robot.type=so101_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower_arm \
--teleop.type=so101_leader \
--teleop.port=/dev/ttyACM1 \
--teleop.id=my_leader_armpython record.py --episodes 10 --task "Pick and place object"python view_camera.py --device 2so101-playground/
├── record.py # Recording script for demonstrations
├── view_camera.py # Camera viewer utility
├── CHEATSHEET.md # Quick reference for common commands
├── pyproject.toml # Project configuration
└── ablations/ # Experimental studies
MIT
