SO-ARM101 – Produkteinführung

SO-ARM101 Open-Source-Roboterarm – Produkteinführung
Language

SO-ARM101 ist eine leistungsstarke Open-Source-Roboterarm-Plattform für Bildung, Forschung und Enthusiasten. Sie ist vollständig kompatibel mit dem LeRobot-Ökosystem von Hugging Face und unterstützt den gesamten Workflow des Roboter-Manipulationslernens – Datenerfassung, Modelltraining und KI-Inferenz. Damit ist sie die ideale Wahl, um Robotertechnologie zu erlernen und KI-Roboteranwendungen zu entwickeln.

📋 Hauptmerkmale

  • 6-Freiheitsgrade-Design mit flexibler Bewegungssteuerung
  • Vollständig quelloffene Hardware und Software, frei anpassbar und erweiterbar
  • Voll kompatibel mit dem LeRobot-Framework; unterstützt mehrere Lernalgorithmen für Roboter (ACT, Diffusion, Pi0, SmolVLA usw.)
  • Umfassende Tutorials und Beispiele im Lieferumfang – auch ohne Vorkenntnisse schnell einsatzbereit
  • Unterstützt den gesamten Ablauf: Master-Slave-Teleoperation, visuelles Feedback mit mehreren Kameras, Datensatzaufzeichnung und Modelltraining

🔧 Hardwarespezifikationen

Parameter Details
Freiheitsgrade 6 Achsen + Greifer
Traglast 500 g
Wiederholgenauigkeit ±0,1 mm
Arbeitsradius 520 mm
Servotyp Serielle Busservos
Stromversorgungsanforderungen Masterarm: 5 V 6 A, Slavearm: 12 V 5 A
Kommunikationsschnittstelle USB-C

🚀 Schnellstart

1. Vorbereitung der Umgebung

SO-ARM101 unterstützt zwei Plattformen: Ubuntu x86 und Jetson Orin:

Anforderungen an die Ubuntu-x86-Umgebung:

  • Ubuntu 22.04
  • CUDA 12+
  • Python 3.10
  • Torch 2.6+

Anforderungen an die Jetson-Orin-Umgebung:

  • JetPack 6.0+
  • Python 3.10
  • Torch 2.5.0a0+

2. Abhängigkeiten installieren


# Install Miniconda (Ubuntu x86 version)
mkdir -p ~/miniconda3
cd miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh
source ~/miniconda3/bin/activate
conda init --all

# Create and activate environment
conda create -y -n lerobot python=3.10
conda activate lerobot

# Clone code repository
git clone https://github.com/Juxi-Technology/lerobot.git

# Install dependencies
conda install ffmpeg -c conda-forge
cd ~/lerobot && pip install -e ".[feetech]"
            

3. Steuerung des Roboterarms

Port ermitteln


# Find USB port corresponding to the robotic arm
lerobot-find-port
            

Stecken Sie das USB-Kabel des Roboterarms wie aufgefordert ein und aus, um die entsprechende Portnummer zu ermitteln (normalerweise /dev/ttyACM0 und /dev/ttyACM1)

Port autorisieren


sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM1
            

Kalibrierung des Roboterarms


# Calibrate slave arm
lerobot-calibrate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm

# Calibrate master arm
lerobot-calibrate \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm
            

Bewegen Sie den Roboterarm wie aufgefordert in die Mittelstellung und führen Sie dann die Bereichskalibrierung aller Gelenke durch.

🎮 Beispiele für Kernfunktionen

1. Master-Slave-Teleoperation


# Basic teleoperation (without camera)
lerobot-teleoperate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm

# Teleoperation with camera display
lerobot-teleoperate \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"}}" \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm \
    --display_data=true
            

2. Datensatzaufzeichnung


# Record dataset locally
lerobot-record \
    --robot.type=so101_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_awesome_follower_arm \
    --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"}, side: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"}}" \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --teleop.id=my_awesome_leader_arm \
    --display_data=true \
    --dataset.repo_id=juxi/so101_test \
    --dataset.num_episodes=5 \
    --dataset.single_task="Put the blue cube on the black box" \
    --dataset.push_to_hub=false \
    --dataset.episode_time_s=30 \
    --dataset.reset_time_s=30
            

Die aufgezeichneten Daten werden im Verzeichnis ~/.cache/huggingface/lerobot gespeichert.

3. Modelltraining (ACT-Algorithmus)


# Train with local dataset
lerobot-train \
  --dataset.repo_id=juxi/so101_test \
  --policy.type=act \
  --output_dir=outputs/train/act_so101_test \
  --job_name=act_so101_test \
  --policy.device=cuda \
  --wandb.enable=false \
  --policy.push_to_hub=false \
  --steps=300000
            

Die trainierten Modellgewichte werden im Verzeichnis outputs/train/act_so101_test/checkpoints gespeichert.

4. KI-Inferenz ausführen


# Control robotic arm with trained model
lerobot-record \
  --robot.type=so101_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: \"MJPG\"},   side: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30,fourcc: \"MJPG\"}}" \
  --robot.id=my_awesome_follower_arm \
  --display_data=false \
  --dataset.repo_id=juxi/eval_test \
  --dataset.single_task="Put the blue cube on the black box" \
  --policy.path=outputs/train/act_so101_test/checkpoints/last/pretrained_model
            

📚 Weitere Ressourcen

  • JuxiTechnology GitHub - Neuesten Open-Source-Code und Hardwaredokumentation abrufen
  • Lark Wiki - Vollständige offizielle Dokumentation und Tutorials ansehen

🛠️ Häufige Fragen

F: Beim Ausführen wird „GPU nicht verfügbar“ gemeldet?
A: Stellen Sie sicher, dass eine zur CUDA-Version passende PyTorch-Version installiert ist. Für Jetson-Plattformen muss die spezielle Jetson-Version von PyTorch installiert werden.
F: Bei der Teleoperation reagiert die Tastatur nicht?
A: Versuchen Sie, die pynput-Version auf 1.6.8 herabzustufen:pip install pynput==1.6.8
F: Was tun, wenn die Kalibrierung fehlschlägt?
A: Prüfen Sie, ob die seriellen Portberechtigungen korrekt sind, löschen Sie die alten Kalibrierungsdateien im Verzeichnis ~/.cache/huggingface/lerobot/calibration und versuchen Sie es erneut.

Der SO-ARM101 bietet vollständige Ökosystem-Unterstützung für das Lernen und die Entwicklung von Robotern. Ob im Bildungsbereich, in der Forschung oder als Hobby – alle können schnell eigene Roboteranwendungen entwickeln.

Dieser Artikel ist eine Zusammenfassung. Lesen Sie die vollständige technische Dokumentation im Wiki.

Vollständigen Artikel im Wiki lesen →

Im Feishu-Wiki öffnen