Zum Inhalt springen

Elektronik, Verkabelung und Stromversorgung ​

Strido teilt den Roboter in zwei Versorgungsdomänen mit gemeinsamer Masse:

  • Servodomäne (6,0 V): Akku → 25-A-Hauptsicherung → Arming-Loop-Key → zwei Hobbywing UBEC-10A → WAGO-Servobus im vorderen und hinteren Hohlraum → 12 Servos. Der PCA9685 liefert nur die Servo-Signale; Servostrom fließt nie über eine Logikplatine.
  • Logikdomäne (5 V): Akku → 25-A-Hauptsicherung → 7,5-A-Logiksicherung → Pololu-Tasterschalter → INA260 (misst Akkuspannung und Logikstrom) → Pololu D36V50F5 5 V/5,5 A → 5-V-GPIO-Pins des Raspberry Pi 5. Der Pi versorgt den XIAO ESP32-S3 (Bewegungscontroller) und den LiDAR-Adapter über USB.

Die Platinenpositionen sind im CAD festgelegt; die Durchdringungsprüfung erfasst jede Platine, jeden Abstandsbolzen und jeden Steckverbinderkörper. Auch jedes Kabel wird im CAD verlegt (hardware/wiring.yaml, siehe Kabelbaum): Die Renderings, die 3D-Ansicht und die Montageanleitung stellen es dar, und die Verkabelungsprüfung weist nach, dass jede Leitung ihr Ziel erreicht, jede Schlaufe über ein Hüftgelenk über den gesamten Hüftbereich Spiel hat und kein Kabel in den Betriebsposen ein bewegtes Teil berührt.

Stromversorgung (Servodomäne links, Logikdomäne rechts):

Diagramm wird gezeichnet…

Signale:

Diagramm wird gezeichnet…

Nennwerte und Begründung der Teileauswahl ​

ElementNennwertLast in diesem RoboterReserve / Hinweis
Servo SPT5435LVnur 4,8–6,0 V; PWM-Signal 3,3–5,0 V; 35 kg·cm @ 6 V; Blockierstrom 3,5 AStehen ≈ 0,7 N·m am Knie (MuJoCo)6,0 V ist die Obergrenze: Verwenden Sie nicht die 7,4-V-Einstellung des UBEC. Der PCA9685 gibt 3,3-V-Pulse aus (VCC = XIAO 3V3), genau den niedrigsten zulässigen Signalpegel des Servos: innerhalb der Spezifikation, ohne Reserve
Hobbywing UBEC-10A ×22–6S Eingang; 6,0 V ohne Jumper; je 10 A dauerhaft, 15 A Spitzeje 6 Servosinsgesamt 20 A dauerhaft / 30 A Spitze. Sechs blockierte Servos ziehen 21 A, mehr als die 15 A Spitze eines UBEC: Fahren Sie nie alle Beine gegen harte Anschläge und schalten Sie nie Strom zu, während Servos angesteuert werden (siehe erstes Einschalten)
WAGO 221-41532 A, 0,2–4 mm²≤ 3 Servos + Einspeisung je Klemme2 Klemmen (+/–) je Bein, insgesamt 8
Hauptsicherung (ATO)25 AServozweig (≤ 2 × 10 A UBEC-Ausgang ≈ 21 A bei leerem Akku) + Logikschützt die 14-AWG-Hauptleitung dahinter; W01 (≈ 0,15 m vom Akkueingang) ist wie die eigene Leitung des Akkus ungesichert
Logiksicherung (ATO)7,5 ALogikzweig ≤ 3 Aschützt die 18-AWG-Logikverkabelung nach ihrem Halter. Der Abgriff von W02 ist die eigene 14-AWG-Leitung des Halters, daher liegt kein Draht dünner als 14 AWG allein hinter der 25-A-Sicherung
Pololu #2813 (Big Pushbutton Power Switch HP)4,5–40 V; 6 A dauerhaft bei 55 °CLogikzweig ≤ 3 Anie im Servozweig; kein Not-Aus (Pololu)
INA26036 V, 15 A, 1,25 mA LSBLogikzweigmisst die Akkuspannung für die Unterspannungsabschaltung. Erforderlich: ohne ihn verweigert die Firmware die Ansteuerung der Servos
Pololu D36V50F55 V ± 4 %, 5,5 A typisch dauerhaftPi 5 + USB + Kamera ≈ 2–3 APi benötigt PSU_MAX_CURRENT=5000 (siehe unten)
XT60-Arming-Port30 A dauerhaftServozweigder Loop-Key ist ein XT60 mit 14-AWG-Brücke, siehe die Steckerregel unten

Jeder Versorgungseingang und jedes Logiksignal wird von python -m strido_verify.electronics gegen seinen Nennbereich geprüft (Schienen, Versorgungen und Signale in hardware/electronics.yaml; Bericht in verification/electronics.md). Drei bestehen ohne Reserve: Servo-PWM und LCD laufen mit 3,3 V, dem niedrigsten Pegel, den beide akzeptieren; eine schwache 3V3-Schiene des XIAO (unter 3,3 V) ist daher das Erste, was Sie messen sollten, wenn ein Servo zittert oder das LCD dunkel bleibt.

XT60-Kontaktregel (der Loop-Key darf nie auf den Akku passen) ​

Beschreiben Sie XT60-Hälften nach ihren Kontakten, nicht als „Stecker/Buchse“ (Händler verwenden beide Wörter für beide Hälften): Eine Hälfte hat Stifte, die andere Buchsenkontakte (Amass: XT60-M = Stifte, XT60-F = Buchsenkontakte). Der Loop-Key ist ein kurzgeschlossener Steckverbinder, daher muss er denselben Kontakttyp wie der Steckverbinder des Akkus tragen: Dann lässt er sich nicht mit dem Akku verbinden. Der Akkueingang des Roboters und der Arming-Port tragen den anderen Typ. Beispiel: Akku mit Buchsenkontakten → Akkueingang des Roboters Stifte, Arming-Port Stifte, Loop-Key Buchsenkontakte. Das CAD modelliert einen Arming-Port XT60H-F (Buchsenkontakte), also einen Akku mit Stiften; tauschen Sie alle drei, wenn Ihr Akku Buchsenkontakte hat.

Prüfen Sie vor dem Brücken des Steckers: Nehmen Sie das ungebrückte Steckergehäuse und versuchen Sie es auf den Akkustecker zu stecken; es darf nicht passen. Testen Sie nie mit einem gebrückten Stecker. Der Akku selbst passt in den Arming-Port; beschriften Sie den Port mit „ARM“ und schließen Sie den Akku immer am Akkueingang unter dem Deck an (W00 in den XT60H von W01/W04).

Verkabelungsliste ​

Jedes Kabel aus hardware/wiring.yaml; Verläufe, Zuschnittlängen und die Prüfungen stehen in der Verkabelungsprüfung (aus dem CAD neu erzeugt). Farbe: rot = +, schwarz/braun = –, Signale wie angegeben.

IDVonNachKabelAnschluss
W00Akku (eigene 12-AWG-Leitung)Akkueingang XT60H, unter dem Deckmit dem Akku geliefertin Schritt 22 einstecken
W01Akkueingang XT60H (+)Halter der 25-A-Hauptsicherung (hinterer Hohlraum)14 AWG rot in Spiralschlauchlöten, Schrumpfschlauch; an die auf 20 mm gekürzte Halterleitung gespleißt; ungesichert
W02Ausgang Hauptsicherung (Halterleitung auf 20 mm gekürzt)Spleiß in der Rückschale → Arming-Port Kontakt 1 und eigene Eingangsleitung des Logiksicherungshalters (auf Zuschnittlänge gekürzt)14 AWG rotlöten + Schrumpfschlauch an den Spleißen
W03Arming-Port Kontakt 2Spleiß unter dem Deck → UBEC vorne IN+ und UBEC hinten IN+14 AWG rotlöten; der Loop-Key verbindet die beiden Kontakte des Ports
W04Akkueingang XT60H (–)Massestern daneben → UBEC IN– ×2 (14 AWG), Schalter GND (18 AWG)14 / 18 AWG schwarzein Sternpunkt am Akkueingang
W05 / W06UBEC vorne / hinten OUTPort 0 von WAGO-Platz 0, vorderer / hinterer HohlraumUBEC-Leitung mit 18-AWG-Paar verlängert11 mm abisolieren, in das WAGO-Paar (rot V+ oben, schwarz GND unten)
W07 / W08WAGO-Port 4 von Platz 0Port 0 von Platz 1 (zweites Bein des Hohlraums)18 AWG, ein Draht je Schieneentlang der WAGO-Stirnseiten
S-leg-joint (12)Servokabelam Basis-Kabelbinder aufgeteilt: rot/braun → WAGO-Paar des Beins (Port Hüfte 1, Oberschenkel 2, Knie 3); orange → PCA9685-Kanaleigenes 260-mm-Servokabel, auf Länge gekürztrot/braun abisoliert in die WAGO; orange neu gecrimpt (Dupont-Buchse, 1-poliges Gehäuse)
W09Ausgang 7,5-A-Logiksicherung (Halterleitung auf 20 mm gekürzt)Schalter VIN18 AWG rotSpleiß am Halter, Schraubklemme am Schalter; seine Masse ist W04
W10Schalter VOUTINA260 VIN+18 AWG rotSchraubklemmen; der INA260 ist ein High-Side-Shunt
W11INA260 VIN–D36V50F5 VIN18 AWG rotSchraubklemme, löten
W24Schalter GNDD36V50F5 GND18 AWG schwarzdie Klemmleiste des INA260 nimmt nur VIN+ und VIN– auf; seine Logikmasse kommt über I²C (W19)
W12D36V50F5 VOUT / GNDPi-5-Header Pins 2 + 4 (5 V), 6 + 14 (GND)22 AWG ×4Dupont-Buchse gecrimpt, ein Draht je Pin (2 × 1,5 A je Schiene)
W1312-mm-TasterSchalter A und B22-AWG-Paarlöten, Schrumpfschlauch
W14Pi 5 USB-A (unterer Port des linken Stapels)XIAO USB-C20 cm USB-A (90°) → CÜberlänge im vorderen Hohlraum falten
W15Pi 5 USB-A (oberer Port)LiDAR-USB-Adapter (im Sockel)20 cm USB-A (90°) → Cüber den Pi neben dem Kühlerlüfter, nach oben durch den Schlitz der Oberschale
W16Pi 5 CAM/DISP 0Camera Module 3 WideFlachbandkabel 22→15 Pin, 300 mmdurch beide Schulterrahmenöffnungen und den Schlitz der Frontschale; flach falten
W17XIAO D4/D5 (SDA/SCL), 3V3, GNDlinker Header des PCA9685 (SDA, SCL, VCC, GND)22 AWG ×4an die XIAO-Pins gelötet (kein Platz für Gehäuse unter dem oberen Schulterrahmen), Dupont-Crimps am PCA
W18rechter Header des PCA9685 (VCC, SDA, SCL, GND)LSM6DSOX STEMMA QTSTEMMA QT → Buchsenkontakte, 150 mmdie IMU sitzt 2,5 mm unter dem Pi: nur der flache STEMMA-QT-Stecker passt
W19zweiter STEMMA QT des LSM6DSOXINA260-Header (VCC, SDA, SCL, GND)STEMMA QT → Buchsenkontakte, 150 mmINA260-Jumper A0 gebrückt → 0x41
W20XIAO D3PCA9685 OE22 AWG grünhigh = alle Servoausgänge aus. Löten Sie einen 2,2-kΩ-Widerstand von OE nach VCC am PCA9685-Header: Die Platine zieht OE auf low, ohne ihn bleiben die Ausgänge also aktiv, während der XIAO zurückgesetzt wird oder im Bootloader steht
W21XIAO D8, D10, D9, D0, D1, D2, 3V3, GNDLCD CLK, DIN, DC, CS, RST, BL, VCC, GNDDisplaykabel (PH2.0 8-polig, 200 mm, mitgeliefert)seine Dupont-Enden an die XIAO-Pins gelötet; 3V3 und GND teilen sich die Pins mit W17
W22 (optional)Pi 5 GPIO 26 (Pin 37)Schalter OFF22 AWG weißDupont-Crimp am Pi, am Schalter gelötet; ermöglicht dem Pi, nach dem Herunterfahren die eigene Versorgung abzuschalten, siehe unten
W23RPLIDAR C1sein USB-Adaptereigenes Kabel des Sensorsdurch die Kerbe vorne am Sockel

Pinbelegungen ​

XIAO ESP32-S3 (firmware/strido_esp32s3/src/board_config.h ist die maßgebliche Quelle)

XIAO-PinGPIOFunktion
D01LCD CS
D12LCD RST
D23LCD-Hintergrundbeleuchtung (PWM; Strapping-Pin, erst nach dem Booten angesteuert)
D34PCA9685 OE (Low-aktive Freigabe; Firmware hält ihn bis zum Scharfschalten auf high)
D45I²C SDA
D56I²C SCL
D87LCD SCK
D98LCD DC
D109LCD MOSI
—21Onboard-Benutzer-LED (Status)

PCA9685-Kanäle (200 Hz, 500–2500 µs)

BeinHüfteOberschenkelKniekurbel
FL15117
FR14106
RL1395
RR1284

I²C-Bus: PCA9685 0x40 (und seine All-Call-Adresse 0x70), LSM6DSOX 0x6A, INA260 0x41 (A0 gebrückt; 0x40 würde mit dem PCA9685 kollidieren).

Leistungsbudget und Laufzeit ​

VerbraucherTypischSpitzeQuelle
12 Servos stehend≈ 30 W (≈ 5 A bei 6 V)—[ESTIMATE] aus den MuJoCo-Stehmomenten und dem Blockierstrom von 3,5 A bei 3,43 N·m
12 Servos im Trot≈ 50 W> 150 W für ms[ESTIMATE]
Pi 5 + Kühler5–7 W12 WRaspberry Pi
RPLIDAR C1≈ 1,2 W—Slamtec-Datenblatt
Kamera, XIAO, LCD, IMU, PCA≈ 1,5 W—Datenblätter
Gesamt im Trot≈ 60 W aus dem Akku (90 % Wandler)

2S 5000 mAh ≈ 37 Wh, 80 % nutzbar → ≈ 30 min Trot, ≈ 45 min Stehen [ESTIMATE; messen Sie mit /battery_state und den Strom am Loop-Key mit einer Strommesszange]. Die Firmware warnt bei 6,8 V (3,4 V/Zelle) und entspannt die Servos bei 6,4 V (3,2 V/Zelle).

Kabelbaum ​

Der verlegte Kabelbaum mit abgenommenen Schalen, oberen Sensoren und oberen Schulterrahmen

Der Kabelbaum wird im CAD konstruiert, nicht beim Bau improvisiert: hardware/wiring.yaml benennt jedes Kabel, den Steckverbinder an jedem Ende und die Befestigungspunkte, die es passiert; strido_cad.wiring verlegt die Abschnitte zwischen diesen Punkten durch den freien Raum des Roboters (jedes Basisteil und alles, was die Beine über ihre Gelenkbereiche überstreichen, wird ausgespart), und das Ergebnis wird in den Renderings, der 3D-Ansicht und der Montageanleitung (Schritte 14–16, die Schalenschritte und Schritt 20) dargestellt. Die Verkabelungsprüfung weist dann unabhängig vom Router nach:

  • Reichweite: jede fertig konfektionierte Leitung (Servokabel 260 mm, USB 200 mm, Flachband 300 mm, STEMMA QT 150 mm, Akkuleitung) deckt ihren Verlauf mit mindestens 10 mm Reserve ab;
  • Material: die Zuschnittliste (Verlauf + Abisolier-/Lötzugabe + 8 % Spiel) passt zu Draht, Spiralschlauch und Kabelbindern in der Stückliste;
  • Hüftschlaufen: die Servokabel der Oberschenkel- und Knieservos laufen auf der Hüfte mit und kreuzen das Hüftgelenk nahe seiner Achse; jedes hat eine freie Schlaufe von mindestens dem 1,2-Fachen des größten Abstands, den seine zwei Befestigungspunkte über den gesamten Hüftbereich erreichen (36 mm Oberschenkel, 40 mm Knie);
  • Freigang: kein Kabel verläuft durch ein Teil, und gegenüber jedem Teil eines anderen Körpers (Beine, Hörner, Koppeln) hält es in den 13 Betriebsposen den Laufabstand der Prüfung bewegter Teile ein (der Router hält Kabel aus allem heraus, was die Beine über ein Raster von Gelenkwinkeln überstreichen);
  • Ports: ein Kabel je WAGO-Eingang, ein Stecker je PCA9685-Kanal.

Bauablauf (die Anleitung stellt jeden Schritt dar):

  1. Servobus. Klipsen Sie die vier WAGO 221-415 in jeden Bushalter: je Bein eine V+-Klemme (oben) und eine GND-Klemme (unten); alle Eingänge zeigen zur linken Seite des Roboters. Platz 0 (vorne in jedem Hohlraum): UBEC-Einspeisung Port 0, Hüfte/Oberschenkel/Knie Ports 1–3, Brücke Port 4. Platz 1: Brücke Port 0, Servos 1–3, Port 4 frei. Klipsen Sie ein WAGO-Paar aus, um seine Hebel zu öffnen: Auf Platz 0 blockiert die XIAO-Plattform sie.
  2. UBECs. Lassen Sie den Ausgangsjumper offen (6,0 V). Messen Sie die Leerlaufausgangsspannung, bevor Sie ein Servo anschließen: zulässig sind 5,8–6,0 V (das Servo ist bis 6,0 V spezifiziert; senden Sie ein Gerät mit höherem Messwert zurück). Kleben Sie beide UBECs mit Schaumklebeband in die Seitentaschen unter dem Deck.
  3. Stromeingang (Schritt 14). Akkueingang XT60H mit W01 (rot, im Spiralschlauch) und W04 (schwarz) in der Tasche neben dem Akku; Massestern; Hauptsicherungshalter (Leitungen auf 20 mm gekürzt) am hinteren WAGO-Bus, am oberen Schulterrahmen befestigt; W02, W03 und W09 laufen in den Raum der Rückschale; noch keine Sicherungen.
  4. Servokabel (Schritt 15). Binden Sie jedes Oberschenkel- und Kniekabel an der Servohalterplatte fest, lassen Sie die freie Schlaufe, binden Sie es am Schulterrahmen oder Bushalter fest; teilen Sie es dort auf: rot/braun auf Länge gekürzt in das WAGO-Paar des Beins, orange auf Länge gekürzt und neu gecrimpt für seinen PCA9685-Kanal. Die Kabel der Hüftservos werden an der Öffnung des inneren Rahmens aufgeteilt.
  5. Logik und Signale (Schritt 16). W10/W11 (18 AWG rot) vom Schalter über den INA260 (A0 gebrückt) zum D36V50F5, W24 (18 AWG schwarz) Schalter-GND zu Regler-GND, W12 gecrimpt, aber noch nicht eingesteckt in den Pi, W14, W17–W20, W22.
  6. Schalenschritte. Displaykabel W21 (Schritt 17), Kamera-Flachbandkabel W16 (Schritt 18); Rückwand (Schritt 19): Taster W13, W02/W03 an den Arming-Port gelötet, Logiksicherungshalter in W02 und W09 gespleißt.
  7. Versorgungsprüfung und Kabelführung (Schritt 20). Akku kurz eingesteckt, beide Sicherungen eingesetzt, Loop-Key gezogen, Taster gedrückt: 4,8–5,2 V an den Dupont-Enden von W12 (D36V50F5: 5 V ± 4 %); Sicherungen wieder heraus, dann W12 auf die Pi-Pins 2/4/6/14 stecken. Spiralschlauch über jedes Bündel aus drei oder mehr Kabeln und über W01, Kabelbinder an den markierten Punkten, zwei selbstklebende Kabelbinder-Sockel auf dem Deck; bewegen Sie jedes Bein von Hand durch seinen Bereich und prüfen Sie, dass nichts zieht oder scheuert. Die LiDAR-Kabel kommen mit der Oberschale (Schritt 21), die Akkuleitung mit dem Akku (Schritt 22).
  8. Rauchtest ohne Servos: Sicherungen eingesetzt, Loop-Key gezogen, einschalten → Pi bootet, ros2 topic echo /battery_state zeigt die Akkuspannung, /diagnostics zeigt pwm_ok, imu_ok, power_ok. Halten Sie die BOOT-Taste des XIAO und drücken Sie RESET: OE muss ≥ 2,4 V (Ausgänge aus) anzeigen, solange er im Bootloader steht.

Warum der Kabelbaum so ausgelegt ist: Kabelmanagement (Entscheidung: ADR-011).

Konfiguration des Raspberry Pi ​

Die Versorgung über die 5-V-GPIO-Pins umgeht USB-PD; teilen Sie dem Pi daher mit, dass die Versorgung 5 A liefern kann:

bash
sudo rpi-eeprom-config --edit        # add:  PSU_MAX_CURRENT=5000
echo "usb_max_current_enable=1" | sudo tee -a /boot/firmware/config.txt

Stabile Gerätenamen (ros2/strido_bringup/config/99-strido.rules):

bash
sudo cp ros2/strido_bringup/config/99-strido.rules /etc/udev/rules.d/ && sudo udevadm control --reload && sudo udevadm trigger

Optionale Selbstabschaltung (W22): dtoverlay=gpio-poweroff,gpiopin=26 in config.txt setzt GPIO 26 nach dem Herunterfahren auf high, was einen Puls auf den OFF-Eingang des Schalters gibt. [UNVERIFIED on Pi 5: test with the servos disarmed before relying on it.]

Sicherheitsregeln ​

  • Laden Sie nur in einem LiPo-Sack mit einem Balancer-Ladegerät; lassen Sie den Ladevorgang nie unbeaufsichtigt.
  • Der Loop-Key ist die Servo-Abschaltung: Ziehen Sie ihn zum Entschärfen. Der Tasterschalter ist kein Not-Aus (Pololu sagt das ausdrücklich).
  • /strido/estop rastet ein: Die Firmware setzt PCA9685 OE auf high und stoppt alle Pulse.
  • Einschaltreihenfolge: Logik ein → Roboter liegt in der Ruhepose (Beine eingeklappt) → Loop-Key einsetzen (Servos bleiben schlaff; der Controller sendet vor dem ersten Positionsbefehl keine Pulse) → ros2 launch strido_bringup robot.launch.py starten (Servos fahren in die Ruhepose, dann 3 s Aufstehen). Setzen Sie den Loop-Key nie ein, während Positionsbefehle laufen: Alle Servos würden gleichzeitig springen.
  • Die Firmware verweigert die Ansteuerung ohne funktionierenden INA260 (sonst gäbe es keine Unterspannungsabschaltung). Die Abschaltung benötigt 5 aufeinanderfolgende Messwerte (0,5 s) unter 6,4 V, damit Spannungseinbrüche unter Last den Roboter nicht mitten im Schritt absetzen.
  • Ohne Befehle für 200 ms halten die Servos ihre Pose; 2 s später entspannen sie. Es gibt kein separates Keep-alive: Fällt der Gait- oder Policy-Node aus, hält der Roboter und entspannt dann.

MIT-Lizenz. Mechanik abgeleitet von Yertle (Jerome Graves). CAD, Simulation und native Tests sind kein Hardware-Nachweis – siehe Verifikation.