SO-101-Setup-Anleitung
Von Teilen bis zur ersten Datenerfassung. Geschätzte Zeit: ~3–4 Stunden (ohne 3D-Druckzeit).
Montage
~60 Min. + DruckzeitDer SO-101 ist ein vollständig Open-Source-Arm. Alle Teile sind entweder 3D-gedruckt oder als Standardhardware erhältlich, die in der LeRobot-Stückliste auf HuggingFace aufgeführt ist.
Teile, die Sie brauchen
- 6× Feetech STS3215 Servomotoren
- 3D-gedruckte Strukturteile (STL-Dateien im SO-101 GitHub-Repo)
- USB-zu-Seriell-Adapterkabel (CH340- oder CP2102-Chip)
- 12-V-Stromversorgung (mindestens 3 A)
- Servokabel und Anschlusshardware (pro Stückliste)
Checkliste für den Zusammenbau
- Drucken Sie alle Strukturkomponenten (Basis, Verbindungen, Endeffektor)
- Installieren Sie STS3215-Servos in ihren jeweiligen Verbindungsgehäusen
- Führen Sie die Servokabel durch die gedruckten Kabelkanäle
- Verketten Sie die Servos in der richtigen Reihenfolge (IDs 1–6 von der Basis bis zur Spitze).
- Befestigen Sie die Basis vor dem Einschalten auf einer stabilen Oberfläche
- Lesen Sie die Sicherheitsseite bevor Sie Strom anlegen
3D-Druck der Teile
~8–16 Stunden DruckzeitAlle Strukturkomponenten des SO-101 sind mit Standard-Desktopdruckern FDM-druckbar. STL-Dateien sind für jeden Arm in Einzeldateiausdrucken organisiert, was das Schneiden vereinfacht.
Empfohlene Slicer-Einstellungen
STL-Dateien – welche gedruckt werden sollen
Für gängige Bettgrößen sind vorgefertigte Einzeldateidrucke verfügbar:
- 220×220 mm Bett (Ender 3):
- Anhängerin:
STL/SO101/Follower/Ender_Follower_SO101.stl - Führerin:
STL/SO101/Leader/Ender_Leader_SO101.stl
- Anhängerin:
- 205×250 mm Bett (Prusa / UP):
- Anhängerin:
STL/SO101/Follower/Prusa_Follower_SO101.stl - Führerin:
STL/SO101/Leader/Prusa_Leader_SO101.stl
- Anhängerin:
STL/Gauges/ und testen Sie sie gegen einen Legostein oder ein STS3215-Servo. Ein korrekter Sitz des Messgeräts bestätigt, dass Ihre Druckerkalibrierung korrekt ist. Passen Sie bei Bedarf die Skalierung an, bevor Sie den vollständigen Ausdruck vornehmen.
Softwareinstallation
~15 MinDer SO-101 wird nativ von HuggingFace LeRobot unterstützt. Es ist kein zusätzliches Plugin erforderlich – installieren Sie einfach LeRobot.
Installieren Sie LeRobot
# Using pip
pip install lerobot
# Or with uv (recommended)
uv pip install lerobot
Berechtigungen für die serielle Linux-Schnittstelle
Unter Linux, serielle Ports unter /dev/ttyACM* erfordern, dass sich der Benutzer im befindet dialout Gruppe. Führen Sie dies einmal aus und melden Sie sich ab und wieder an:
sudo usermod -aG dialout $USER
# Then log out and back in, or run:
newgrp dialout
Voraussetzungen
- Python 3.10+
- Linux (Ubuntu 22.04 empfohlen) oder macOS
- USB-zu-seriell-Treiber installiert (CH340-Treiber unter macOS; normalerweise unter Linux vorinstalliert)
Porterkennung und -kalibrierung
~20 MinSuchen Sie den richtigen seriellen USB-Anschluss für den Arm und führen Sie dann das LeRobot-Kalibrierungsskript aus, um die Servo-Nullpositionen festzulegen.
Suchen Sie den seriellen Port
python lerobot/scripts/find_motors_bus_port.py
Stecken Sie das USB-Kabel ein und aus, wenn Sie dazu aufgefordert werden. Das Skript identifiziert, mit welchem Port der Arm verbunden ist. Typische Werte:
# Linux: /dev/ttyACM0 (or ttyUSB0 for CH340 adapters)
# macOS: /dev/tty.usbmodem* or /dev/tty.usbserial-*
Führen Sie die Kalibrierung durch
Bewegen Sie den Arm über seinen gesamten Bewegungsbereich, wenn Sie dazu aufgefordert werden:
python lerobot/scripts/calibrate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
Erster Bewegungstest
~15 MinFühren Sie das Teleoperate-Skript im Einzelarmmodus aus, um zu überprüfen, ob alle Gelenke richtig reagieren, bevor Sie einen Führungsarm anschließen.
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
Was zu überprüfen ist
- Alle 6 Gelenke reagieren ohne Sprünge auf Befehle
- Keine Servo-Stall- oder Überlastwarnungen im Terminal
- Der Greifer öffnet und schließt über den gesamten Bereich
- Kein Hängenbleiben des Kabels an jeder Gelenkposition
Teleoperation
~30 MinDer SO-101 funktioniert als eigenständiger Arm oder als Folgearm mit Führungsarm für Teleoperationen. Die Verwendung eines zweiten Arms als Führungskraft führt zu qualitativ hochwertigeren Demonstrationen für das Nachahmungslernen.
Standalone-Modus (Tastatur / Programmgesteuert)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0
Mit einem Mäklerarm (z. B. DK1-Mäkler)
python lerobot/scripts/teleoperate.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--teleop.type=so101 \
--teleop.port=/dev/ttyACM1
Datenerfassung
LaufendZeichnen Sie Demonstrationen mit auf record.py. Die Daten werden im LeRobot-Format gespeichert und können zum Training direkt an HuggingFace Hub übertragen werden.
Grundlegende Aufnahme
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
Mit einer USB-Kamera
python lerobot/scripts/record.py \
--robot.type=so101 \
--robot.port=/dev/ttyACM0 \
--robot.cameras.top.type=opencv \
--robot.cameras.top.index=0 \
--dataset.repo_id=your-org/so101-dataset \
--dataset.task="pick cube"
Best Practices aufzeichnen
- Zeichnen Sie vor dem Training mindestens 50 Demonstrationen pro Aufgabe auf
- Variieren Sie Objektpositionen und -ausrichtungen über Episoden hinweg
- Beschreibend verwenden
--dataset.taskNamen zur späteren Filterung - OAK-D- oder Intel RealSense-Kameras eignen sich gut für die Tiefendatenerfassung
- Überprüfen Sie nach jeder Sitzung die Datensatz-Uploads auf HuggingFace Hub
Nächste Schritte
Sobald Sie die Daten gesammelt haben, trainieren Sie ein ACT- oder Diffusionsrichtlinienmodell mit den Trainingsskripten von LeRobot. Lesen Sie den vollständigen Text SO-101-Lernpfad für einen strukturierten Ablauf vom Setup bis zur Modellbereitstellung.