Zurück zu DK1 Path

Konfiguration der Führungskräfte-/Follower-Kontrolle

Einheit 2 des DK1-Bimanual-Lernpfades. Installieren Sie das DK1-SDK, konfigurieren Sie das Lead/Follower-Paar, führen Sie Python-Verbindungs-Tests für beide Arme aus und überprüfen Sie die Synchronisation ~2 Stunden.

Einheit 2 von 6 · Führer/Follower Konfiguration · ~ 2 Stunden

Installieren Sie die DK1 SDK, konfigurieren Sie das Lead/Follower-Paar und führen Sie Python-Verbindungs-Tests für beide Arme durch. Am Ende dieser Einheit erzeugt die Bewegung des Lead-Arms eine sofortige, synchronisierte Antwort auf beiden Follower-Armen.

Die vollständige SDK-Installationsreferenz befindet sich unter hardware/dk1/software. Diese Einheit deckt die bi-manuellen konfigurierungsspezifischen Schritte ab, die über die Einarms SDK-Installation hinausgehen, die Sie für OpenArm durchgeführt haben.

Installieren Sie die DK1 SDK

Das DK1 SDK ist getrennt vom OpenArm SDK. Versuchen Sie nicht, DK1 Arme mit dem OpenArm-Paket auszuführen das Firmware-Protokoll unterscheidet sich.

# Erstellen Sie eine isolierte virtuelle Umgebung für DK1 Work python3 -m venv ~/dk1-env source ~/dk1-env/bin/activate # Installieren Sie die DK1 SDK und die bimanuellen Erweiterungen # Installieren Sie dk1-sdk[bimanual] # Überprüfen Sie die Installation von Python -c "Import dk1; Print(dk1.__version__) " # Erwartet: 0,4.0 oder höher

Konfiguration des Lead/Follower-Pairs

Das SDK liest eine YAML-Konfigurationsdatei, die es mitteilt, welches Seriengerät der Anführer ist und welche Geräte die beiden Nachfolgerarme sind.

# Genereren Sie die standard-Bimanual-Konfig-Datei dk1-config generieren --modus bimanual --output ~/dk1-config.yaml # Öffnen und bearbeiten Sie den Konfigurationsdatum Setzen Sie Ihre tatsächlichen Geräte-Wege nano ~/dk1-config.yaml

Die Schlüsselfelder in T0:

Führer: Gerät: /dev/ttyUSB2 # der Führer-Controller Arm baudrate: 1000000 Follower_links: Gerät: /dev/ttyUSB0 # linker Follower Arm baudrate: 1000000 Follower_rechts: Gerät: /dev/ttyUSB1 # rechte Follower Arm baudrate: 1000000 Synchronisierung: Frequenz_hz: 50 # Joint State Synchronisierung Rate Latenz_Tolerance_ms: 5 # max max zulässig Synchronisierung Verzögerung

Gerät-Pfadzuweisung: Die Kartierung von physischer Arm zu T1 hängt von der USB-Port-Reihenfolge ab, die zwischen den Neustartungen wechseln kann. Um stabile Alias zu erstellen, verwenden Sie T2 Regeln mit Schlüssel auf der Gerät-Serienummer. Laufen Sie T3 aus, um die Serien für jeden Arm zu finden und Regeln in T4 zu erstellen. Dies wird im Detail unter [Hardware/dk1/Software](T15 beschrieben.

Python-Verbindungsprüfung Beide Arme

Nach der Bearbeitung der Konfiguration wird ein Verbindungstest ausgeführt, der alle drei Geräte gleichzeitig ausübt:

von dk1 Import BimanualRobot Robot = BimanualRobot(config_path="~/dk1-config.yaml") robot.connect() # Drucken von Gelenkstaaten für beide Arme sollte bei 50Hz für i in der Reichweite (10): Staat = robot.get_joint_states() Drucken(f"Links: {\f'{j:.2f}' für j in state.left]}") Druckenf"Recht: {[f'{j:.2f}' für j in state.right]}") Drucken "("") Robot.disconnect)

Bei einem erfolgreichen Ausführen werden 10 Paare von Joint-State-Arrays mit konsistenten, stabilen Werten gedruckt. Wenn Sie NaN-Werte, einen Timeout-Fehler oder weniger als 6 Joint-Werte pro Arm sehen, überprüfen Sie die Gerät-Pfadzuweisungen in Ihrer Konfigurationsdatei.

Synchronisierungsprüfung

Die wichtigste Prüfung in dieser Einheit ist die Überprüfung, dass die Führungsbewegung eine synchronisierte Nachfolgerreaktion ohne spürbare Verzögerung erzeugt:

Import von dk1BimanualRobot, LeaderFollowerSession robot = BimanualRobot(config_path="~/dk1-config.yaml") Session = LeaderFollowerSession(robot) # Starten Sie den Leader/Follower Synchronisationsschleier # Bewegen Sie den Leader Arm langsam Beide Follower sollten sofort die Session spiegeln.start() Eingabe("Drucken Sie Enter, um zu stoppen...") Session.stop()

Bewegt der Führerarm langsam durch einen 30°-Bogen auf einem einzigen Gelenk. Beide Anhängerarme sollten sich ohne sichtbare Verzögerung in Einklang bewegen.

Häufige Fehler und Lösungen

Error Cause Fix
SerialException: device not found Wrong device path in config, or USB not connected Run ls /dev/ttyUSB* and update config paths. Check physical USB connections.
SyncTimeoutError: follower_right Right follower arm not responding within latency tolerance Increase latency_tolerance_ms to 10, or try a different USB port. Check cable for damage.
Joint states all zeros after connect Servos not enabled — arm is in standby mode Call robot.enable_servos() before reading joint states, or enable via the web UI first.
One follower mirrors, other is stationary Leader is paired only to one follower in config Verify both follower_left and follower_right are set in the YAML config.

Einheit 2 ist fertig, wenn...

Das DK1 SDK ist installiert und T13 liefert 0,4.0 oder höher. Der Verbindungstest druckt stabile Gelenkszustandswerte für beide Arme bei 50Hz aus. Wenn Sie eine Führer-/Follower-Sitzung starten und den Führerarm bewegen, spiegeln beide Führerarme die Bewegung ohne spürbare Verzögerung wider. Sie haben dies mit mindestens 3 verschiedenen Gelenksbewegungen auf dem Führerarm überprüft.

[← Zurück zu Wegübersicht]