This repository is made for anyone in the world who owns an SO101 robotic arm.
The datasets in this repository were recorded manually by me using the SO101 robot arm.
The goal is simple:
- Download the dataset
- Train the robot using SOLO CLI
- Run inference
- Make your SO101 robot perform the task automatically
Current tasks included:
- Pick and Place
- Liquid Pouring
This guide is written in a very simple copy-paste style so even beginners can follow it easily.
This guide shows how to:
- Install SOLO CLI
- Download your robotics dataset from Hugging Face
- Train a robot policy model
- Test the model
- Understand which model to use
Everything is written in simple copy-paste steps.
If you have an SO101 robotic arm, you can use these datasets to teach your robot new skills using imitation learning.
The robot learns by watching demonstrations recorded in the dataset.
You do NOT need to manually code robot movement.
The AI model learns from the demonstrations and predicts robot actions automatically.
| Dataset | Description |
|---|---|
https://huggingface.co/datasets/omkarputti/SO101_pick_and_place |
Pick and Place task |
https://huggingface.co/datasets/omkarputti/SO101_liquid_pouring |
Liquid Pouring task |
🔗 Hugging Face profile: https://huggingface.co/omkarputti
This guide uses only the ACT policy because it is reliable and works well for SO101 robot arm imitation-learning tasks like pick-and-place and liquid pouring.
Recommended:
- Ubuntu Linux
- NVIDIA GPU
- CUDA installed
- Python 3.10+
Example GPUs:
- RTX 3050
- RTX 3060
- RTX 4060
- RTX 4090
Open terminal and copy-paste:
sudo apt update
sudo apt install git git-lfs python3 python3-pip python3-venv -yEnable Git LFS:
git lfs installInstall Hugging Face CLI:
pip install -U huggingface_hubLogin:
huggingface-cli loginPaste your Hugging Face token.
Create token here: https://huggingface.co/settings/tokens
Choose: Write Access
Go to Desktop:
cd ~/DesktopClone SOLO CLI:
git clone https://github.com/GetSoloTech/solo-cliOpen folder:
cd solo-cliCreate environment:
python3 -m venv solo-envActivate environment:
source solo-env/bin/activateYour terminal should now show:
(solo-env)
Install SOLO:
pip install -e .Install training libraries:
pip install torch torchvision torchaudioInstall LeRobot:
pip install lerobotMove to a workspace folder:
mkdir -p ~/robot_datasets
cd ~/robot_datasetsDownload Pick and Place dataset:
git clone https://huggingface.co/datasets/omkarputti/SO101_pick_and_placeOR download Liquid Pouring dataset:
git clone https://huggingface.co/datasets/omkarputti/SO101_liquid_pouringRun:
cd S0101_pick_and_place
lsYou should see folders like:
meta/
data/
videos/
That means the dataset is valid.
Go back to SOLO CLI folder:
cd ~/Desktop/solo-cliOpen Python:
pythonPaste:
from datasets import load_dataset
dataset = load_dataset("omkarputti/S0101_pick_and_place")
print(dataset)If it prints dataset info — Everything works.
Exit Python:
exit()During training:
- The AI watches robot demonstrations
- Learns robot movement patterns
- Learns how to move the arm
- Learns how to complete the task
After training:
- You get a trained robot AI model
- The model can control the SO101 robotic arm
python -m lerobot.scripts.train \
--dataset.repo_id=omkarputti/S0101_pick_and_place \
--policy.type=act \
--output_dir=outputs/act_pick_place \
--job_name=act_pick_place_trainingpython -m lerobot.scripts.train \
--dataset.repo_id=omkarputti/S0101_liquid_pouring \
--policy.type=act \
--output_dir=outputs/act_liquid_pouring \
--job_name=act_liquid_pouring_trainingDuring training you will see:
loss: 0.123
step: 100
Lower loss = better learning.
Training may take 30 minutes to several hours depending on your GPU.
After training:
cd outputs
lsYou will see:
act_pick_place/
Inside it:
checkpoints/
Your trained robot model is there.
Inference means using the trained AI model to control the real robot.
After training finishes:
- The robot receives camera observations
- The AI predicts robot arm actions
- The robot performs the task automatically
python -m lerobot.scripts.eval \
--dataset.repo_id=omkarputti/S0101_pick_and_place \
--policy.path=outputs/act_pick_place/checkpoints/last/pretrained_modelCreate model repo: https://huggingface.co/new-model
Then upload:
cd outputs/act_pick_placeInitialize git:
git initAdd remote:
git remote add origin https://huggingface.co/YOUR_USERNAME/YOUR_MODEL_NAMEPush:
git add .
git commit -m "upload model"
git push -u origin mainYour dataset is relatively small, which means:
- Training is faster
- Easier debugging
- Good for learning
⚠️ But the model may overfit with limited data.
To improve performance:
- Record more trajectories
- Add different lighting
- Vary object positions
- Add failures and recoveries
Robots learn from diversity.
Check GPU:
nvidia-smiCheck PyTorch CUDA:
python -c "import torch; print(torch.cuda.is_available())"Should print: True
huggingface-cli loginUse your access token.
sudo apt install git-lfs -y
git lfs installSometimes Hugging Face needs 5–15+ minutes to index parquet files. This usually fixes itself automatically.
| Command | Description |
|---|---|
nvidia-smi |
Check GPU |
source solo-env/bin/activate |
Activate environment |
deactivate |
Deactivate environment |
pip list |
Check installed packages |
For setup errors or advanced commands: https://github.com/GetSoloTech/solo-cli
The repository contains:
- Installation help
- Training commands
- Inference commands
- Simulation setup
- Troubleshooting
- Dataset tools
This repository is designed to help SO101 robotic arm users:
- Share datasets
- Train robot policies
- Improve imitation learning
- Build open-source robotics projects
- Make robotics easier for beginners
You can also contribute:
- New datasets
- Improved trajectories
- Better camera angles
- New robot tasks
- Better trained models
| Task | Link |
|---|---|
| Pick and Place | https://huggingface.co/datasets/omkarputti/SO101_pick_and_place |
| Liquid Pouring | https://huggingface.co/datasets/omkarputti/SO101_liquid_pouring |
SO101 Robotic Arm
The datasets were collected manually and uploaded to Hugging Face for imitation-learning training.



