Agibot verbinden

1. Voraussetzungen

  • Agibot D1 Ultra eingeschaltet (Power-Knopf am Roboter, ca. 30s bis SDK bereit ist)
  • Raspberry Pi im Roboter mit laufendem dog_server.py (Autostart via restart_server.sh)
  • Mac und Pi im selben Netzwerk (WLAN oder LAN)

2. Pi-IP ermitteln

Die Adresse steht nicht in der App. So findet man sie:

  • Am Router nachsehen (Client-Liste)
  • Oder am Pi direkt: hostname -I

3. Verbindung pruefen

Im Mac-Terminal:

ping <pi-ip>
nc -vz <pi-ip> 9999

Beides muss erfolgreich sein. Port 9999 = TCP Control-Server.

4. IP in der App setzen

Oben rechts steht das Feld Pi. Adresse als IP:Port eintragen und mit der Eingabetaste bestätigen — sie bleibt im Browser gespeichert.

Für einen Bau, der den Roboter fest bedient, steht die Vorbelegung in der .env (VITE_PI_ADDR, siehe .env.example); die Desktop-App nimmt sie aus src-tauri.

5. Interne Netze (Pi ↔ Roboter)

  • Pi intern: eigene Adresse im Netz zum Roboter (eth)
  • Roboter SDK: feste Adresse des Roboters, Port aus dem SDK-Header
  • Pi extern: WLAN oder LAN zum Standortnetz
  • GPS via LTE-Modem: mmcli -m 0 --location-get

6. Protokoll (Debug)

Roh-Test ohne App:

nc <pi-ip> 9999
{"t":"c","c":"getBattery","id":1}

Commands: standUp, lieDown, passive, shakeHand, forward <m>, turn <deg>, getBattery, status

7. Troubleshooting

  • Disconnected dauerhaft: Pi-IP falsch oder Firewall blockiert Port 9999
  • SDK: false: Roboter nicht hochgefahren oder interner Ethernet-Link unterbrochen → Kommando reconnect
  • Kein GPS: LTE-Modem nicht eingebucht oder kein Fix (Outdoor noetig)
  • Kamera leer: RTSP-Stream nicht erreichbar, Pi-IP pruefen
  • Server-Log am Pi: tail -f /tmp/dog_server.log
  • Server neu starten: bash ~/d1_sdk/restart_server.sh

Perimeter-Schutz

Keine Route ausgewaehlt
Nr Koordinaten Pause
Wochentage
Wochentage
Angelegte Zeitplaene
Waveshare 25280 / LC29H(BS) Einstellungen
NTRIP Korrekturdaten (SAPOS / RTK2go / etc.)
Kompass (QMC5883L / GY-271)
  • Anschluss: VCC→3.3V, GND→GND, SDA→GPIO2 (Pin 3), SCL→GPIO3 (Pin 5)
  • I2C aktivieren: sudo raspi-config → Interface → I2C → Ja
  • Test: i2cdetect -y 1 → Adresse 0d muss erscheinen
  • Kalibrierung: Roboter waehrend 20s langsam 360° drehen
  • Deklination Deutschland ~2.5° Ost (wird automatisch kompensiert)
  • Heading-Fusion: Kompass im Stand, GNSS-COG bei Bewegung (>1 km/h)
  • Abhaengigkeit: pip install smbus2
Hinweise zum Waveshare 25280
  • UART auf dem Pi aktivieren: sudo raspi-config → Interface → Serial Port → Login Shell: Nein, Hardware: Ja
  • In /boot/firmware/config.txt: dtoverlay=uart0 und enable_uart=1
  • Serial Port: /dev/serial0 (GPIO 14/15) oder /dev/ttyAMA0
  • Default Baud: 9600 (LC29H). Aendern mit PAIR-Kommando: $PAIR864,0,0,115200*1B
  • Dualband L1+L5 liefert ~1.5m ohne RTK. Mit NTRIP-Korrekturen: ~0.3m (SBAS) bis ~0.02m (RTK fixed)
  • SAPOS (Deutschland): Kostenpflichtig, ~300 EUR/Jahr. Kostenloses Testkonto moeglich
  • RTK2go.com: Kostenloser Community-Caster (eingeschraenkte Abdeckung)
  • pyserial muss installiert sein: pip install pyserial
Camera
Fahren
Tempo 2.5 m/s
Aktionen
Haltung
Gangart
Kunststück
Aufbau
Abläufe
Patrouille
Bereit
Status / Debug Disconnected — — ▼
Connection Disconnected
SDK —
Battery —
Mode —
IMU (R/P/Y) —
Speed —
Height —
Accel (m/s2) —
Gyro (rad/s) —
World Vel —
Quaternion —
Network —
GPS —
RTK —
Navigation Idle
Patrol idle
Gamepad Disconnected
Joint Data
FRFLRRRL
Abad————
Hip————
Knee————
Foot————
Lage

Dasselbe liegt auf den Pfeiltasten: hoch und runter neigen, links und rechts rollen, mit Umschalt die Höhe.

Netzwerk