Skip to content

Architecture ​

Status: describes the repository as built (0.2). Layer rules are enforced by import-linter (make layers).

System ​

Rendering diagram…

Repository layout ​

PathWhatOwner of truth
hardware/Tracked hardware data: kinematics, joint limits, fasteners, BOM, electronics, tolerances, contact rules, assembly corrections; the print kit (print/)YAML sources; print/ and joint_limits.yaml are generated
packages/strido-coreRobot runtime library (numpy + pyserial only): runs on the Pi, in ROS 2, simulation and toolingcode
packages/strido-cadCAD pipeline: STEP registration, kinematics extraction, Strido parts (CadQuery), vendor models, fasteners, posing, code and model generationcode + hardware/
packages/strido-verifyPhysical verification: interference, range of motion, fits and tolerances, moving clearance, sensor field of view, electronicscode + hardware/verification/
packages/strido-publishBOM optimiser, print kit, assembly manual, catalogue & book PDF, renders, web 3D viewercode
packages/strido-simMuJoCo walk demo, Gymnasium environment, PPO training/evaluationcode
packages/strido-ntxNT-X extension: catalog assets, stand skill, serial RobotPortcode; assets generated
src/strido_workspacestrido CLI and the strido-hardware MCP servercode
firmware/strido_esp32s3PlatformIO firmware; lib/strido_core is portable and natively testedcode; geometry_generated.h generated
ros2/ROS 2 packages: description (generated), bringup, controlcode
models/MuJoCo models (generated) and released policiesgenerated
docs/, requirements/Canonical documentation; docs/{bom,assembly,catalog,viewer,verification} are generatedMarkdown
docs-site/VitePress site; content/{docs,requirements,de,public/*} are synced copies (German pages rendered from i18n/)site code
i18n/German translation catalogues, one per published page and data file (i18n/README.md)translations
assistant/Assistant service behind the AI bar: conversations, documentation search, MCP server for agentscode
skills/strido/Agent Skill for the documentation (also as a ZIP with every page)Markdown
upstream/yertle/Unmodified upstream Yertle design and software (reference)upstream
.harness/Engineering harness submodule (agents, hooks, checks)upstream harness

Package layering ​

Rendering diagram…

Contracts (pyproject.toml, [tool.importlinter]): the core never imports tooling; publish → verify → cad → core is a strict layer order; simulation and the NT-X adapter never pull in the CAD stack (they run where CadQuery is not installed).

Data flow of a hardware change ​

Rendering diagram…

Interfaces ​

InterfaceDefinitionConsumers
MCU wire protocolpackages/strido-core/src/strido/protocol.py ⇄ firmware/.../protocol.h (COBS + CRC16, 12 × float32 joint targets, 103-byte state payload)ROS 2 mcu_bridge, strido-cli, NT-X StridoSerialPort
Joint conventionGo2 names and signs, order FL, FR, RL, RR × hip/thigh/calffirmware, ROS 2, MuJoCo, NT-X
ROS 2 topicssoftwareteleop, Nav2, NT-X rosbridge
NT-XRobotSpec + MJCF + skill (catalog assets), RobotPort (registry adapter strido-serial)NT-X harness and Studio
Hardware knowledgestrido-hardware MCP tools / strido CLIcoding agents, humans

MIT licence. Mechanical design derived from Yertle by Jerome Graves. CAD, simulation and native tests are not hardware evidence — see Verification.