Skip to main content
This guide shows how to fine-tune GR00T on datasets collected from the SO-100 robot and deploy the model on real hardware.

Dataset

Data collection

To collect datasets via teleoperation, refer to the official LeRobot documentation: SO-100 teleoperation guide

Example dataset

Dataset: izuluaga/finish_sandwich Visualize the dataset: Dataset viewer

Preparation

1

Convert dataset format

Convert from LeRobot v3 to v2 format:
2

Copy modality configuration

Fine-tuning

Run the fine-tuning script using absolute joint positions:
Feel free to experiment with relative joint positions by modifying the action modality configuration in modality.json.

Evaluation

Open-loop evaluation

Evaluate the fine-tuned model against ground truth trajectories:
This generates visualizations comparing predicted actions against ground truth: Open-loop evaluation results

Closed-loop evaluation (real robot)

For deploying on real SO-100 hardware, see eval_so100.py for Policy API usage.
1

Setup client dependencies

2

Start policy server

In Terminal 1:
3

Run evaluation client

In Terminal 2:

Hardware configuration

When deploying on real hardware, ensure:
  • Correct USB port for robot connection (/dev/ttyACM*)
  • Camera indices match your hardware setup
  • Camera resolution and FPS are compatible with your cameras
  • Robot ID matches your configured follower arm
Always test in a safe environment with emergency stop capabilities before running autonomous manipulation tasks.

Additional resources