Architektur
Status: beschreibt das Repository im gebauten Zustand (0.2). Die Schichtregeln werden durch import-linter erzwungen (
make layers).
System
Aufbau des Repositorys
| Pfad | Inhalt | Maßgebliche Quelle |
|---|---|---|
hardware/ | Versionierte Hardwaredaten: Kinematik, Gelenkgrenzen, Befestigungselemente, Stückliste, Elektronik, Toleranzen, Kontaktregeln, Montagekorrekturen; das Druckpaket (print/) | YAML-Quellen; print/ und joint_limits.yaml werden generiert |
packages/strido-core | Laufzeitbibliothek des Roboters (nur numpy + pyserial): läuft auf dem Pi, in ROS 2, in der Simulation und im Tooling | Code |
packages/strido-cad | CAD-Pipeline: STEP-Registrierung, Kinematikextraktion, Strido-Teile (CadQuery), Herstellermodelle, Befestigungselemente, Posen, Code- und Modellgenerierung | Code + hardware/ |
packages/strido-verify | Physische Verifikation: Durchdringung, Bewegungsbereich, Passungen und Toleranzen, Freigang in Bewegung, Sensorsichtfeld, Elektronik | Code + hardware/verification/ |
packages/strido-publish | Stücklisten-Optimierer, Druckpaket, Montageanleitung, Katalog- & Buch-PDF, Renderings, Web-3D-Ansicht | Code |
packages/strido-sim | MuJoCo-Gehdemo, Gymnasium-Umgebung, PPO-Training/-Evaluierung | Code |
packages/strido-ntx | NT-X-Erweiterung: Katalog-Assets, Steh-Skill, serieller RobotPort | Code; Assets generiert |
src/strido_workspace | strido-CLI und der strido-hardware-MCP-Server | Code |
firmware/strido_esp32s3 | PlatformIO-Firmware; lib/strido_core ist portabel und nativ getestet | Code; geometry_generated.h generiert |
ros2/ | ROS-2-Pakete: Beschreibung (generiert), Bringup, Steuerung | Code |
models/ | MuJoCo-Modelle (generiert) und veröffentlichte Policies | generiert |
docs/, requirements/ | Kanonische Dokumentation; docs/{bom,assembly,catalog,viewer,verification} werden generiert | Markdown |
docs-site/ | VitePress-Seite; content/{docs,requirements,de,public/*} sind synchronisierte Kopien (deutsche Seiten aus i18n/ gerendert) | Seitencode |
i18n/ | Deutsche Übersetzungskataloge, einer je veröffentlichter Seite und Datendatei (i18n/README.md) | Übersetzungen |
assistant/ | Assistenzdienst hinter der KI-Leiste: Unterhaltungen, Doku-Suche, MCP-Server für Agenten | Code |
skills/strido/ | Agent Skill für die Dokumentation (auch als ZIP mit jeder Seite) | Markdown |
upstream/yertle/ | Unverändertes Yertle-Design und -Software von Upstream (Referenz) | Upstream |
.harness/ | Engineering-Harness-Submodul (Agenten, Hooks, Prüfungen) | Upstream-Harness |
Paketschichtung
Verträge (pyproject.toml, [tool.importlinter]): Der Kern importiert niemals Tooling; publish → verify → cad → core ist eine strikte Schichtreihenfolge; Simulation und NT-X-Adapter ziehen niemals den CAD-Stack nach (sie laufen dort, wo CadQuery nicht installiert ist).
Datenfluss einer Hardwareänderung
Schnittstellen
| Schnittstelle | Definition | Nutzer |
|---|---|---|
| MCU-Leitungsprotokoll | packages/strido-core/src/strido/protocol.py ⇄ firmware/.../protocol.h (COBS + CRC16, 12 × float32-Gelenksollwerte, 103-Byte-Zustandsnutzlast) | ROS 2 mcu_bridge, strido-cli, NT-X StridoSerialPort |
| Gelenkkonvention | Go2-Namen und -Vorzeichen, Reihenfolge FL, FR, RL, RR × Hüfte/Oberschenkel/Unterschenkel | Firmware, ROS 2, MuJoCo, NT-X |
| ROS-2-Topics | Software | teleop, Nav2, NT-X rosbridge |
| NT-X | RobotSpec + MJCF + Skill (Katalog-Assets), RobotPort (Registry-Adapter strido-serial) | NT-X-Harness und Studio |
| Hardwarewissen | strido-hardware-MCP-Tools / strido-CLI | Coding-Agenten, Menschen |