Lekiwi-Mobilitätsroboter – Bedienungstutorial
Der schwarze Leader-Arm verwendet ein 5V-6A-Netzteil, der weiße Follower-Arm ein 12V-5A-Netzteil
[lerobot-Lekiwi.zip]
Die Codebasis dieses Tutorial-Repositorys wird auf der vor dem 1. März 2026 getesteten stabilen Version von LeRobot gehalten. Hugging Face hat LeRobot inzwischen sehr umfangreich erweitert und eine große Anzahl neuer Funktionen hinzugefügt. Für das neueste Tutorial folgen Sie bitte der offiziellen Dokumentation.
Lekiwi ist ein vollständig quelloffenes Roboterkarren-Projekt, das von SIGRobotics-UIUC initiiert wurde. Es enthält detaillierte 3D-Druckdateien und Betriebsanleitungen und ist dafür ausgelegt, mit dem LeRobot-Framework für Imitation Learning kompatibel zu sein. Es unterstützt den SO101-Roboterarm und ermöglicht damit einen vollständigen Imitation-Learning-Prozess.
Präzise Bauteilpositionen können im Fusion360-Online-CAD visualisiert werden.
Online-URDF-Vorschau https://urdf.d-robotics.cc/

Hauptmerkmale
- Open Source und kostengünstig: Lekiwi bietet eine quelloffene, günstige Roboterkarren-Lösung.
- LeRobot-Integration: Entwickelt für die Integration in die LeRobot-Plattform.
- Umfangreiche Lernressourcen: Vollständige Open-Source-Ressourcen mit Montage- und Kalibrierungsanleitung sowie Tutorials zu Test, Datenerfassung, Training und Deployment – für einen schnellen Einstieg in die Roboterentwicklung.
- Nvidia-kompatibel: Kombinierbar mit dem reComputer Mini J4012 Orin NX 16 GB.
- Vielseitige Einsatzbereiche: Für Bildung, Forschung, automatisierte Produktion und Robotik geeignet – effiziente, präzise Roboteroperationen für komplexe Aufgaben.
JUXI ist nur für die Qualität der Hardware selbst verantwortlich. Die Tutorials werden streng nach der offiziellen Dokumentation aktualisiert. Sollten Sie auf Software- oder Umgebungsabhängigkeitsprobleme stoßen, die Sie wirklich nicht lösen können, melden Sie diese bitte umgehend der LeRobot-Plattform oder dem LeRobot-Discord-Kanal.
Achtung
- Alle Servos im Lekiwi-Chassis benötigen 12 V. Für Anwender mit 5-V-Roboterarm liefern wir einen 12-V-zu-5-V-Abwärtswandler. Schaltungsanpassungen müssen Sie selbst vornehmen.
- 12-V-Netzteil – bei Bedarf beim Checkout auswählbar. Wer bereits ein 12-V-Netzteil besitzt, muss nur den Ausgang auf einen 5521-DC-Stecker umrüsten.
- Raspberry-Pi-Controller und Kamera – separat über die Bestellschnittstelle zu kaufen.
Stückliste (BOM)
Anfangssystemumgebung
Für Ubuntu x86:
Ubuntu 22.04
CUDA 12+
Python 3.10
Torch 2.6
Für Jetson Orin:
Jetson JetPack 6.0
Python 3.10
Torch 2.3+
Für Raspberry Pi:
- Raspberry Pi 5, 4G–16G
SSH einrichten
Nach der Einrichtung des Raspberry Pi sollten Sie SSH (Secure Shell Protocol) aktivieren und konfigurieren, um sich vom Laptop anzumelden, ohne Bildschirm, Tastatur und Maus anzuschließen. Hier finden Sie ein gutes Tutorial. Sie können sich über die Eingabeaufforderung (cmd) anmelden oder – bei VSCode – diese Erweiterung nutzen.
3D-Druck-Leitfaden
Bauteile
Wir stellen druckbare STL-Dateien für die folgenden 3D-Druckteile bereit. Die Teile lassen sich mit gängigem PLA-Filament auf Consumer-FDM-Druckern drucken. Getestet auf einem Bambu Lab P1S. Für alle Komponenten einfach in bambuslicer laden, automatisch drehen/anordnen lassen und empfohlene Stützen aktivieren.
Druckparameter
Die STL-Dateien lassen sich auf vielen FDM-Druckern direkt drucken. Folgende Einstellungen wurden getestet und empfohlen; andere können ebenfalls funktionieren.
Material: PLA+
Düsendurchmesser und Präzision: 0,2 mm Düse, Schichthöhe 0,2 mm
Füllungsdichte: 15 %
Druckgeschwindigkeit: 150 mm/s
Bei Bedarf G-Code (Slicerdatei) auf den Drucker laden und drucken
LeRobot installieren
Auf Ihrem Raspberry Pi:
1. Miniconda installieren:
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh2. Shell neu starten
In Ihrer Shell einfügen: source ~/.bashrc bzw. für Mac: source ~/.bash_profile oder source ~/.zshrc (bei zshell)
3. Neue Conda-Umgebung für LeRobot erstellen und aktivieren
conda create -y -n lerobot python=3.10Dann Conda-Umgebung aktivieren (bei jeder Shell-Nutzung von LeRobot nötig!):
conda activate lerobot4. LeRobot klonen:
git clone https://github.com/huggingface/lerobot.git ~/lerobot5. ffmpeg in der Umgebung installieren:
Bei miniconda in der Umgebung ffmpeg installieren:
conda install ffmpeg -c conda-forgeDies installiert in der Regel ffmpeg 7.X, kompiliert mit dem libsvtav1-Encoder. Falls libsvtav1 nicht unterstützt wird (prüfbar mit ffmpeg -encoders):
【Alle Plattformen】ffmpeg 7.X explizit installieren:
conda install ffmpeg=7.1.1 -c conda-forge
【Nur Linux】Build-Abhängigkeiten von ffmpeg installieren und ffmpeg mit libsvtav1 aus dem Quellcode kompilieren; mit which ffmpeg sicherstellen, dass die richtige ausführbare Datei verwendet wird.
Bei folgendem Fehler hilft der obige Befehl ebenfalls.

6. LeRobot mit feetech-Motor-Abhängigkeiten installieren:
cd ~/lerobot && pip install --no-binary=av -e ".[feetech]"
pip install -e ".[lekiwi]"7. Verbindungszeit einstellen
Unter dem Verzeichnis lerobot\src\lerobot\robots\lekiwi die Datei config_lekiwi.py finden
connection_time_s: int = 7200 # 也就是2小时

C. LeRobot auf dem Laptop installieren
Wenn LeRobot bereits auf dem Laptop installiert ist, diesen Schritt überspringen; andernfalls die gleichen Schritte wie auf dem Raspberry Pi ausführen.
Wir nutzen häufig die Eingabeaufforderung (cmd). Bei Unerfahrenheit: [Crash-Kurs Kommandozeile](https://developer.mozilla.org/en-US/docs/Learn_web_development/Getting_started/Environment_setup/Command_line).
Auf Ihrem Rechner:
1. Miniconda installieren:
2. Shell neu starten
In Ihrer Shell einfügen: source ~/.bashrc bzw. für Mac: source ~/.bash_profile oder source ~/.zshrc (bei zshell)

3. Conda-Umgebung für LeRobot erstellen und aktivieren
conda create -y -n lerobot python=3.10Dann Conda-Umgebung aktivieren (bei jeder Nutzung von LeRobot nötig!):
conda activate lerobot4. LeRobot klonen:
git clone https://github.com/huggingface/lerobot.git ~/lerobot5. ffmpeg in der Umgebung installieren:
Bei miniconda in der Umgebung ffmpeg installieren:
conda install ffmpeg -c conda-forgeDies installiert in der Regel ffmpeg 7.X mit libsvtav1-Encoder. Falls nicht unterstützt (mit ffmpeg -encoders prüfbar):
【Alle Plattformen】ffmpeg 7.X explizit:
conda install ffmpeg=7.1.1 -c conda-forge
【Nur Linux】ffmpeg-Build-Abhängigkeiten installieren und ffmpeg mit libsvtav1 aus dem Quellcode kompilieren; mit which ffmpeg prüfen.
Bei folgendem Fehler hilft der obige Befehl ebenfalls.

6. LeRobot mit feetech-Motor-Abhängigkeiten installieren:
cd ~/lerobot && pip install --no-binary=av -e ".[feetech]"
pip install -e ".[lekiwi]"Motoren konfigurieren


1. Den mit dem Roboterarm verbundenen USB-Port finden
Um den richtigen Port für einen einzelnen Motor zu finden, das folgende Utility-Skript zweimal ausführen:
lerobot-find-portBeispielausgabe (z. B. /dev/tty.usbmodem575E0031751 auf dem Mac oder /dev/ttyACM0 unter Linux):
Beispielausgabe (z. B. /dev/tty.usbmodem575E0032081 auf dem Mac oder /dev/ttyACM1 unter Linux):
Fehlerbehebung: Unter Linux ggf. USB-Portzugriff mit folgenden Befehlen gewähren:
sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM12. Motoren konfigurieren (beim fertigen Produkt überspringbar)
Jeden Motor des Chassis nacheinander einstecken und das folgende Skript ausführen – es initialisiert zuerst die Servos des Roboterarms (ID 6..1), dann die Chassis-Servos und setzt deren IDs (ID 9..7). Bei bereits kalibriertem Arm kann man mit Enter durchgehend überschreiben und überspringen:
lerobot-setup-motors \
--robot.type=lekiwi \
--robot.port=/dev/tty.usbmodem58760431551 # <- paste here the port found at previous step
3. Inländisches HuggingFace-Mirroring einrichten
- Ubuntu
sudo nano ~/.bashrc
# 在文件末尾加入
export HF_ENDPOINT=https://hf-mirror.comsource ~/.bashrc
echo $HF_ENDPOINT
# 输出
# https://hf-mirror.com- Mac
sudo nano ~/.zshrc
# 在文件末尾加入
export HF_ENDPOINT=https://hf-mirror.comsource ~/.zshrc
# 输出
# https://hf-mirror.com①Token erstellen
https://huggingface.co/settings/tokens



②Token notieren
Zum Beispiel meiner:
hf_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx③Token binden
hf auth login
hf auth whoami
④Dataset-Repository erstellen
Notieren Sie sich Owner und Namen des Datensatzes – das sind die später benötigten <hf_username> und <dateset_repo_id>



4. Die Konfiguration aktualisieren!!!
Die Konfigurationsdateien auf dem LeKiwi-LeRobot und dem Laptop sollten übereinstimmen. Zuerst müssen wir die IP-Adresse des Raspberry Pi für den mobilen Roboterarm finden. Dies ist dieselbe IP-Adresse, die auch für SSH verwendet wird. Außerdem müssen wir den USB-Port der Leader-Arm-Servo-Treiberplatine am Laptop und den Port der Servo-Treiberplatine am LeKiwi finden. Diese Ports lassen sich mit dem folgenden Skript ermitteln.
Unter Linux kann es nötig sein, den USB-Portzugriff mit dem folgenden Befehl zu gewähren:
sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM1Wichtiger Hinweis: Nachdem Sie die Portnummer der Leader-Arm und die IP-Adresse des Lekiwi-Roboterarms ermittelt haben, aktualisieren Sie bitte ip in der Netzwerkkonfiguration, port in der Leader-Arm-Konfiguration sowie port, remote_ip in der LeKiwi-Konfiguration.
Diese vier Dateien im Verzeichnis example\lekiwi ändern

①teleoperate.py ändern
remote_ip: IP-Adresse des Raspberry Pi
port: Portnummer, wenn der Leader-Arm mit einem Computer oder Linux verbunden ist

②record.py ändern
HF_REPO_ID: Benutzername und Datensatzname auf Hugging Face
remote_ip: IP-Adresse des Raspberry Pi
port: Portnummer, wenn der Leader-Arm mit einem Computer oder Linux verbunden ist

③replay.py ändern
remote_ip: IP-Adresse des Raspberry Pi
<hf_username>/<dataset_repo_id>, also der Hugging-Face-Benutzername und der Datensatzname

Kalibrierung
Jetzt müssen wir den Leader-Arm und den Follower-Arm kalibrieren. Die Servos der Omnidirektionalräder müssen nicht kalibriert werden.
Follower-Arm kalibrieren (montiert am Lekiwi-Chassis)
Führen Sie auf Ihrem Computer den folgenden Befehl aus, um den Leader-Arm zu kalibrieren. Hinweis: Das hier gezeigte Bild ist ein Beispiel für das Modell SO101.
lerobot-calibrate \
--teleop.type=so100_leader \
--teleop.port=/dev/tty.usbmodem58760431551 \ #修改为找到的端口号
--teleop.id=my_awesome_leader_armFühren Sie nun auf Ihrem Raspberry Pi den folgenden Befehl aus, um den Follower-Arm am LeKiwi zu kalibrieren. Ignorieren Sie seine aktuelle Position auf dem Tisch – die normale Kalibrierung sollte erfolgen, wenn er am Lekiwi-Chassis montiert ist.
lerobot-calibrate \
--robot.type=lekiwi \
--robot.id=my_awesome_kiwiWir haben die Kalibrierungsmethoden für die meisten Roboter vereinheitlicht. Zuerst müssen wir den Roboter in eine Position bewegen, in der sich jedes Gelenk an seinem ** Mittelpunkt des Bewegungsbereichs befindet**, und dann die Taste drücken. Zweitens bewegen wir alle Gelenke durch ihren **. Ein Video des gleichen Kalibrierungsvorgangs für SO101 finden Sie als Referenz hierEnter.
F. Fernbedienung
Öffnen Sie eine neue Anaconda-Eingabeaufforderung

Wenn Sie einen Mac verwenden, müssen Sie dem Programm „Terminal" möglicherweise den Tastaturzugriff für Fernbedienungen erlauben. Gehen Sie zu „Systemeinstellungen" > „Sicherheit & Datenschutz" > „Eingabeüberwachung" und aktivieren Sie das Kontrollkästchen „Terminal".
Für Fernbedienungen per SSH beim Raspberry Pi anmelden, den folgenden Befehl ausführen, um die Umgebung zu aktivieren: conda activate lerobot, und dann das folgende Skript starten:
python -m lerobot.robots.lekiwi.lekiwi_host --robot.id=my_awesome_kiwi
Als Nächstes auf dem Laptop ebenfalls den folgenden Befehl ausführen, um die Umgebung zu aktivieren: conda activate lerobot, und dann das folgende Skript starten:
python examples/lekiwi/teleoperate.pyDer Laptop-Bildschirm sollte eine Oberfläche ähnlich der folgenden anzeigen: [INFO] Connected to remote robot at tcp://172.17.133.91:5555 and video stream at tcp://172.17.133.91:5556. Jetzt können Sie den Steuerarm bewegen und mit den Tasten (W, A, S, D) der Tastatur den Roboter vorwärts, nach links drehen, rückwärts und nach rechts drehen. Mit den Tasten (Z, X) den Roboter links bzw. rechts drehen. Mit den Tasten (R, F) die Geschwindigkeit des mobilen Roboters erhöhen oder verringern. Insgesamt gibt es drei Geschwindigkeitsmodi – siehe folgende Tabelle:
Bei einer anderen Tastatur können Sie die Tastenbelegung für jeden Befehl in LeKiwiClientConfig ändern.
Fehlerbehebung Kommunikation
Bei Verbindungsproblemen mit dem Mobilitätsroboter SO101 wie folgt vorgehen.
1. IP-Adresskonfiguration prüfen
Sicherstellen, dass die richtige Raspberry-Pi-IP im Konfigurationsfile steht. IP abfragen (in der Pi-Konsole):
hostname -I2. Prüfen, ob der Laptop/PC den Pi erreicht
Vom Laptop aus pingen:
ping <your_pi_ip_address>Bei Fehlschlag:
Läuft der Pi und ist im selben Netzwerk?
Ist SSH auf dem Pi aktiviert?
3. SSH-Verbindung versuchen
Kein SSH-Login möglich → Verbindung evtl. nicht korrekt. Befehl:
ssh <your_pi_user_name>@<your_pi_ip_address>z. B. ssh pi@192.168.0.106
Bei Verbindungsfehler:
- SSH auf dem Pi aktivieren:
sudo raspi-config- Dann navigieren: Interfacing Options -> SSH aktivieren.
4. Konfigurationsdateien müssen übereinstimmen!!!
Sicherstellen, dass die Konfigurationsdateien auf Laptop/PC und Raspberry Pi exakt identisch sind.
G. Datensatz aufzeichnen
Nachdem Sie sich mit der Fernbedienung vertraut gemacht haben, können Sie mit LeKiwi Ihren ersten Datensatz aufzeichnen.
Zum Starten des Programms auf LeKiwi per SSH mit dem Raspberry Pi verbinden und die folgenden Befehle ausführen, um die Umgebung zu aktivieren und das Skript zu starten:
conda activate lerobot
python -m lerobot.robots.lekiwi.lekiwi_host --robot.id=my_awesome_kiwiMöchten Sie die Funktion des Hugging-Face-Hubs zum Hochladen eines Datensatzes nutzen und haben sich zuvor nicht angemeldet, melden Sie sich bitte mit einem Token mit Schreibrechten an; dieses kann in den Hugging-Face-Einstellungen erzeugt werden:
hf auth loginSpeichern Sie den Namen Ihres Hugging-Face-Repositorys in einer Variablen, um den folgenden Befehl auszuführen:
hf auth whoamiFühren Sie dann auf Ihrem Laptop den folgenden Befehl aus, um 2 Runden aufzuzeichnen und den Datensatz in den Hub hochzuladen:
python examples/lekiwi/record.pyH. Datensatz visualisieren
Aufgeladene Datensätze können online visualisiert werden – die mit dem folgenden Befehl erzeugte Repository-ID kopieren und einfügen:
echo *${HF_USER}*/my_lekiwi_datasetOhne Upload auch lokal (Browser unter http://127.0.0.1:9090):
python lerobot/scripts/visualize_dataset_html.py \
--repo-id *${HF_USER}*/lekiwi_test \
--local-files-only 1Datensatz visualisieren (überspringbar, optional)
echo ${HF_USER}/my_lekiwi_datasetBei Upload auch lokal:
lerobot-dataset-viz \
--repo-id ${HF_USER}/my_lekiwi_dataset \Ohne Upload auch lokal:
lerobot-dataset-viz \
--repo-id juxi/my_lekiwi_dataset \Hierbei ist juxi der bei der Datenerfassung verwendete eigene repo_id.
Tipps zur Datenerfassung
Nach der Eingewöhnung größere Datensätze fürs Training erstellen. Gute Einstiegsaufgabe: Objekte an verschiedenen Positionen greifen und in einen Behälter legen. Mindestens 50 Episoden, 10 pro Position. Kameraposition fixieren, konsistente Greifbewegung beibehalten. Das Objekt muss im Kamerabild klar sichtbar sein; Faustregel: Die Aufgabe sollte nur anhand des Kamerabilds lösbar sein.
Im nächsten Kapitel trainieren Sie das neuronale Netz. Nach zuverlässiger Greifleistung kann mehr Variation eingeführt werden (mehr Greifpositionen, andere Techniken, Kameraposition ändern).
Nicht zu schnell zu viel Variation – das kann die Ergebnisse beeinträchtigen.
Mehr zu diesem Thema: Blogartikel über gute Datensätze.
Fehlerbehebung:
Unter Linux kommt es bei der Datenerfassung vor, dass die Pfeiltasten links/rechts und die Esc-Taste nicht funktionieren. Stellen Sie in diesem Fall sicher, dass die Umgebungsvariable $DISPLAY gesetzt ist. Siehe Einschränkungen von pynput
I. Eine Runde abspielen
Versuchen Sie nun, die erste Runde auf Ihrem Roboter abzuspielen:
python examples/lekiwi/replay.pyHerzlichen Glückwunsch 🎉, Ihr Roboter ist bereit für autonome Lernaufgaben. Folgen Sie dem Trainingsteil dieses Tutorials, um mit dem Training zu beginnen: Einführung in reale Roboter
K. Strategie bewerten
Achten Sie darauf, remote_ip, port und HF_MODEL_ID zu ändern
evaluate.py ändern
HF_MODEL_ID="<hf_username>/<model_repo_id>" sollte auf den Namen des nach dem Training auf Hugging Face hochgeladenen Datensatzes (sofern hochgeladen) bzw. auf das Verzeichnis geändert werden, in das das Modell nach dem Training lokal exportiert wurde
HF_DATASET_ID = "< hf_username >/< eval_dataset_id >" – Benutzernamen und Namen des von Ihnen erstellten eval-Datensatzes ändern
remote_ip: IP-Adresse des Raspberry Pi

Dann den folgenden Befehl ausführen:
python examples/lekiwi/evaluate.pyDer Name des Datensatzes beginnt mit
eval, um anzuzeigen, dass Sie eine Inferenz ausführen (z. B.${HF_USER}/eval_act_lekiwi_test).Tritt in der Auswertungsphase
File exists: 'home/xxxx/.cache/huggingface/lerobot/xxxxx/juxi/eval_xxxx'auf, löschen Sie bitte zuerst den Ordner, der mit eval_ beginnt, und führen Sie das Programm erneut aus.
Simulationstraining siehe
https://github.com/Ekumen-OS/lekiwi/tree/main
https://github.com/SIGRobotics-UIUC/LeKiwi-sim
Hilfe 🙋
Bei Hardware-Problemen wenden Sie sich bitte an den Kundendienst. Bei Anwendungsproblemen treten Sie bitte dem Discord bei.

