VLAI L1-Setup-Anleitung
Komplette Schritt-für-Schritt-Einrichtung für den VLAI L1 – vom Auspacken über die Dual-Arm-Kalibrierung, die mobile Basisnavigation und die Datenerfassung.
Montage und Inspektion
Checkliste zum Auspacken
- Überprüfen Sie beide 7-DOF-Arme auf Transportschäden – überprüfen Sie, ob sich alle Gelenke von Hand frei bewegen lassen
- Stellen Sie sicher, dass beide selbst entwickelten 8-Nm-Greifer sicher montiert sind
- Überprüfen Sie die Räder der mobilen Basis – beide Antriebsräder sollten sich frei drehen, ohne zu klemmen
- Überprüfen Sie, ob die Hubsäule reibungslos über den gesamten Bereich gleitet (106–162 cm).
- Vergewissern Sie sich, dass das Ethernet-Kabel und das Netzteil im Lieferumfang enthalten sind
- Lesen Sie den VLAI L1-Sicherheitsleitfaden, der im Dokumentationspaket enthalten ist
Anforderungen an den Arbeitsplatz
- Mindestgrundfläche: 2 m × 2 m freie, ebene Fläche
- Roboter-Fußabdruck: 46 cm B × 60 cm L – Freiraum auf allen Seiten lassen
- Armreichweite: 63 cm pro Arm – stellen Sie sicher, dass bei ausgestreckten Armen keine Hindernisse in Reichweite sind
- Leistung: Standard-110-V-/220-V-Steckdose im Umkreis von 2 m
SDK-Installation und Netzwerk-Setup
Anforderungen
- Python 3.10+ (3.11 empfohlen)
- Entwicklerstufe oder höher (Jugendstufe beinhaltet keinen SDK-Zugriff)
- L1 eingeschaltet und mit demselben lokalen Netzwerk verbunden (Ethernet oder 5-GHz-WLAN)
Installieren Sie das SDK
pip install roboticscenter
Stellen Sie eine Verbindung her und öffnen Sie das Teleop-Panel des Browsers
rc connect --device l1 # Terminal prints: Session ready → https://platform.roboticscenter.ai/session/RC-XXXX-XXXX # Open the URL in any browser to access the full teleop panel
Streamen Sie gemeinsame Daten über Python
from roboticscenter import L1Robot
robot = L1Robot.connect()
print(robot.session_url)
for frame in robot.stream():
joints = frame.data['joints']
print(f"Left: {joints['left_arm']}")
print(f"Right: {joints['right_arm']}")
print(f"Base: {frame.data['base']}")
rc connect --device l1 --mock um eine vollständig simulierte L1-Sitzung zu starten. Alle SDK-Methoden, das Browser-Teleop-Panel und die Datenaufzeichnung funktionieren im Mock-Modus identisch – nützlich für CI-Pipelines und Workflow-Prototyping vor der Auslieferung Ihrer Einheit.
Dual-Arm-Kalibrierung
Die L1-Arme verwenden das MIT-Motorprotokoll mit Dual-Encoder-Feedback und FOC-Steuerung. Durch die Kalibrierung werden die Ausgangspositionen festgelegt und die vollständige Genauigkeitsspezifikation von ±0,02 mm überprüft.
Überprüfen Sie den Zustand der ROS2-Verbindungen
ros2 topic list
ros2 topic echo /joint_states # verify all 16 DOF are publishing
Starten Sie MoveIt2 für die Bewegungsplanung
ros2 launch l1_moveit l1_moveit.launch.py
# Opens RViz with full dual-arm URDF, collision checking, and Cartesian planning
Kalibrierung der Grundposition
- Navigieren Sie im MoveIt2 RViz-Bedienfeld zu Planung Tab
- Wählen Sie die aus heim benanntes Ziel für beide Arme
- Klicken Planen und ausführen — Die Arme sollten sich in die neutrale gestreckte Position bewegen
- Überprüfen Sie, ob die gemeinsamen Zustände mit der erwarteten Heimkonfiguration im Terminal übereinstimmen
Greiferkalibrierung
# Open grippers fully ros2 topic pub /left_gripper/cmd std_msgs/Float32 "{data: 0.0}" ros2 topic pub /right_gripper/cmd std_msgs/Float32 "{data: 0.0}" # Close to 50% — verify 8Nm grippers engage smoothly ros2 topic pub /left_gripper/cmd std_msgs/Float32 "{data: 0.5}" ros2 topic pub /right_gripper/cmd std_msgs/Float32 "{data: 0.5}"
Mobile Basisnavigation
WASD-Tastaturlaufwerkstest
Öffnen Sie das Teleop-Panel des Browsers und steuern Sie die Differentialbasis mit den WASD-Tasten. Die Geschwindigkeitsskalierung ist über den Panel-Schieberegler einstellbar (10 %, 50 %, 100 %).
# Or command directly via ROS2 Twist ros2 topic pub /base/cmd_vel geometry_msgs/Twist \ "{linear: {x: 0.3, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}" # Stop ros2 topic pub /base/cmd_vel geometry_msgs/Twist \ "{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
Hubbereichstest
Verwenden Sie den vertikalen Schieberegler im Teleop-Panel des Browsers, um den gesamten Hubbereich (106–162 cm) bei 30 mm/s zu testen. Stellen Sie eine reibungslose Bewegung im gesamten Bereich sicher, ohne zu klemmen oder zu schleifen.
# Monitor lift height ros2 topic echo /lift/state # current height in meters
Erste Manipulationsaufgabe
Steuerelemente des Browser-Teleop-Panels
- Doppelarmansicht: Echtzeit-3D-Visualisierung beider 7-DOF-Arme – Gelenkwinkel, Endeffektorhaltung (6D) und Greiferzustand mit einer Aktualisierungsrate von <10 ms
- Wahlschalter für den Endeffektor-Modus: Wechseln Sie pro Arm unabhängig: Greifer (Standard 8 Nm), geschickte Hand oder Saugnapf
- Kamera-Feeds: Brustkamera (Developer+), Handgelenkkameras links/rechts (Developer Max)
Einfaches Pick-and-Place über MoveIt2
from roboticscenter import L1Robot robot = L1Robot.connect() # Move left arm to approach pose robot.left_arm.move_to(x=0.45, y=0.15, z=0.30, roll=0, pitch=90, yaw=0) # Open left gripper robot.left_arm.gripper.open() # Move down to grasp robot.left_arm.move_to(x=0.45, y=0.15, z=0.05, roll=0, pitch=90, yaw=0) # Close gripper to grasp robot.left_arm.gripper.close(force=0.6) # Lift robot.left_arm.move_to(x=0.45, y=0.15, z=0.35, roll=0, pitch=90, yaw=0)
VR-Teleoperation (Developer Pro und Max)
Schließen Sie ein OpenXR-kompatibles Headset an und führen Sie es aus rc vr --session RC-XXXX-XXXX um die Pose der Handsteuerung direkt dem Endeffektor jedes Arms im kartesischen Raum zuzuordnen, mit haptischem Feedback proportional zur geschätzten Kontaktkraft.
Datenerfassung und One-Click-Pipeline
Jeder rc connect Sitzung ist eine benannte Datenerfassungseinheit. Sitzungen werden beim Schließen automatisch in Ihren Fearless Platform-Arbeitsbereich hochgeladen – kein manueller Exportschritt erforderlich.
Was wird pro Frame erfasst?
- Gemeinsame Daten – Position, Geschwindigkeit und Kraftaufwand für alle 16 DOF bei ~500 Hz mit Zeitstempeln im Mikrosekundenbereich
- Kamera-Streams – Brust-RGB (Developer+), Handgelenk-RGB (Developer Max) – mit Zeitstempel versehen und innerhalb von ±1 ms mit den Gelenkdaten synchronisiert
- Strom / Kontakt — Schätzung der Greiferbackenkraft anhand des Motorstroms
- Grundzustand — Rad-Odometrie, Linear-/Winkelgeschwindigkeit, Hubhöhe
- Bedieneraktionen – Roher Teleop-Befehlsstrom für Nachahmungslernen
Episodenkennzeichnung während der Sammlung
- Drücken Raum im Browserfenster, um Episodengrenzen zu markieren
- Drücken L um den aktuellen Frame mit einer benutzerdefinierten Beschriftungszeichenfolge zu kommentieren
ROS2-Agent für Cloud Bridge
# Run on the L1's onboard computer to bridge topics to the platform
python l1_robot_agent.py \
--backend wss://platform.roboticscenter.ai \
--session RC-XXXX-XXXX \
--ros2
Exportformate für Datensätze
Bereinigte und kommentierte Sitzungen werden im LeRobot-Format (HDF5 + JSON-Manifest), RLDS oder rohem JSONL + MP4 exportiert. Benutzen Sie die Daten Registerkarte auf der Plattform, um den Export und Download zu konfigurieren.