SO-101-Setup-Anleitung

Von Teilen bis zur ersten Datenerfassung. Geschätzte Zeit: ~3–4 Stunden (ohne 3D-Druckzeit).

1

Montage

~60 Min. + Druckzeit

Der 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
Wo erhalten Sie die Stücklisten- und STL-Dateien: Die vollständige Stückliste und die druckbaren Teile werden im HuggingFace LeRobot-Repository verwaltet. Suchen Sie im Internet nach „SO-101“. LeRobot GitHub.
1b

3D-Druck der Teile

~8–16 Stunden Druckzeit

Alle 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

Einstellung Wert
Material PLA+
Düsendurchmesser 0,4 mm (oder 0,6 mm)
Schichthöhe 0,2 mm (0,4 mm für 0,6 mm Düse)
Fülldichte 15%
Unterstützt Überall; Ignorieren Sie Steigungen >45°
Betthaftung Standard-Klebestift auf PEI oder Glas
Getestete Drucker Prusa MINI+, Creality Ender 3, Bambu Lab A/P/X-Serie

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
  • 205×250 mm Bett (Prusa / UP):
    • Anhängerin: STL/SO101/Follower/Prusa_Follower_SO101.stl
    • Führerin: STL/SO101/Leader/Prusa_Leader_SO101.stl
Überprüfen Sie zunächst die Maßhaltigkeit. Drucken Sie vor dem Drucken des gesamten Arms die Messgerät-STLs aus 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.
⚠
Sie besitzen keinen Drucker? Siehe die 3DPRINT.md-Anleitung im SO-ARM100-Repo für Druckdienstoptionen. Vorgedruckte Bausätze sind ebenfalls erhältlich bei PartaBot (UNS), Seeed Studio (international) und Automatische Erkennung (EU).
2

Softwareinstallation

~15 Min

Der 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)
3

Porterkennung und -kalibrierung

~20 Min

Suchen 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
Nach jedem Zusammenbau neu kalibrieren. Kalibrierungsdaten werden lokal gespeichert. Wenn Sie Verbindungen zerlegen und wieder zusammenbauen, führen Sie die Kalibrierung erneut durch, um genaue Nullpositionen wiederherzustellen.
4

Erster Bewegungstest

~15 Min

Fü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
⚠
Nothalt Trennen Sie das USB-Kabel, um die Kommunikation zum Arm sofort zu unterbrechen. Halten Sie während des motorisierten Betriebs Ihre Hände vom Arbeitsbereich fern.
5

Teleoperation

~30 Min

Der 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
Bimanuelles Setup: Der SO-101 kann als Folgearm mit dem DK1-Führungsarm verwendet werden. Beide sind LeRobot-nativ und kommunizieren über USB seriell. Siehe die DK1-Seite Ausführliche Informationen zur bimanuellen Einrichtung finden Sie hier.
6

Datenerfassung

Laufend

Zeichnen 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.task Namen 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.

Einrichtung abgeschlossen?

Treten Sie der Community bei, um Ergebnisse zu teilen und Hilfe bei erweiterten Konfigurationen zu erhalten.