Skip to content

Product requirements ​

Status: requirement catalogue for Strido 0.2. The Status column states what the repository demonstrates today; evidence tiers are defined in docs/verification.md. CAD, simulation and native tests are not hardware evidence.

Strido is a small, affordable, 3D-printed quadruped that a developer builds at home to develop ROS 2 and learning software that later transfers to a Unitree Go2 at work, and that runs in the NT-X harness. It reuses the proven Yertle legs and frame and adds what a Mini Pupper 4 class robot offers: a face display, a 360° LiDAR, a wide camera and an onboard computer.

Families ​

FamilyScope
MECHMechanical design, fits, motion
MAKEPrinting, purchasing, assembly documentation
ELECPower, wiring, pins
FWMotion-controller firmware
SWRobot software (ROS 2, bench tools)
SIMSimulation and learning
NTXNT-X harness integration
DOCDocumentation site, catalogue, renders
ENGEngineering harness, checks, release

Requirements ​

IDRequirement and observable acceptancePrioStatusEvidence
MECH-00112 actuated joints (hip abduction, thigh, knee per leg) in Go2 joint naming and order.MUSTmet (Q1)models/mujoco/strido.xml, hardware/joint_limits.yaml
MECH-002No two solids of the assembled robot intersect except designed contacts (threads, seats, press fits), in every reference pose.MUSTmet (Q1)interference
MECH-003Every screw passes through clearance holes or forms its thread in a pilot of 0.70–0.97 d (printed size), is held by a nut, pilot or threaded part, and engages ≥ 1.0 d; every bearing seat is within −0.15…+0.30 mm of the bearing OD.MUSTmet (Q1)fits
MECH-004Parts on different rigid bodies keep ≥ 0.3 mm running clearance in every operating pose (stand/crouch/tall, trot cycle, hip limits).MUSTmet (Q1)clearance
MECH-005Joint limits come from a collision and linkage sweep (incl. the mirrored partner leg and 0.3 mm clearance) and are enforced identically in firmware, Python and simulation.MUSTmet (Q0/Q1)make drift, hardware/joint_limits.yaml
MECH-006Sensor head: 2" LCD face, 360° LiDAR with an unobstructed scan plane, wide camera that does not see the robot.MUSTmet (Q1)sensors
MAKE-001Every printed part ships as an oriented STL and on 220 × 220 mm 3MF plates that fit a 220 × 220 × 250 mm bed; closed manifold.MUSTmet (Q1)hardware/print/
MAKE-002The BOM covers every purchased part and fastener of the CAD (fasteners + 10 %, ≥ 2 spares) in every shopping strategy; offers cite a vendor, SKU, price and date.MUSTmet (Q1)make bom, BOM
MAKE-003Shopping plan minimises the delivered cost (shipping thresholds, per-order fees) and offers fewest-shops, EU-only and genuine-board alternatives.SHOULDmet (Q1)shopping list
MAKE-004IKEA-style assembly: every printed part, purchased part and fastener appears in exactly one step's parts box, with a CAD drawing per step.MUSTmet (Q1)assembly
MAKE-005A4 catalogue & assembly book (PDF): printed and purchased part catalogues, fasteners at 1:1, shopping plan, tools, all steps, wiring, software appendix.MUSTmet (Q1)catalogue PDF
ELEC-001Servo current never flows through a logic board; separate fused servo (6.0 V) and logic (5 V) domains with a physical arming key.MUSTmet (design)electronics
ELEC-002Pins, I²C addresses, servo channels, fuses and wire gauges are machine-checked against the firmware header and the load.MUSTmet (Q0)electronics check
FW-001Command watchdog (hold 200 ms, relax 2 s), latched e-stop via PCA9685 OE, low-battery cut-off, refusal to drive without the power monitor.MUSTmet (Q0 native)make test-firmware
FW-002Joint ↔ servo mapping is linkage-exact (knee driven through the crank four-bar) and identical to the Python mirror.MUSTmet (Q0)firmware tests with Python golden values
SW-001ROS 2 Jazzy bringup with a Go2-style contract: /cmd_vel, /joint_states, /imu/data, /scan, /battery_state, /tf.MUSTmet (Q2 sim)make sim-gazebo
SW-002Bench CLI to centre, pulse, calibrate and monitor the servos without ROS.MUSTmet (Q0)tests/core/test_cli.py
SIM-001MuJoCo and Gazebo models generated from the verified CAD (masses, inertias, limits).MUSTmet (Q2)make models, make sim-walk
SIM-002A velocity-tracking policy trained in simulation runs through the same numpy runtime as on the robot.SHOULDpartial (sim only)make rl-smoke, models/policies/ppo-v1
NTX-001The robot appears in the NT-X catalog (robot spec + MJCF + stand skill) without NT-X core changes, and stands in NT-X MuJoCo.MUSTmet (Q2)make ntx-smoke
NTX-002A RobotPort drives the real robot over the MCU protocol with explicit semantics (no odometry, commanded q, latched protective stop).MUSTmet (protocol-level fake MCU)make ntx-smoke, tests/ntx/
NTX-003NT-X sessions open the Strido port through the registry.SHOULDopen: NT-X core dispatches hardware only to Unitree SDK2NT-X integration
DOC-001Documentation site with the catalogue, an interactive 3D model (explode, step-through, part picking), renders, guides and verification reports.MUSTmet (Q2)make docs-build
DOC-002Renders of the complete robot including the display face, LiDAR and camera.MUSTmetdocs/images/
ENG-001Engineering harness installed (checks profile) with project skills, a hardware MCP server and gates for lint, types, architecture, drift, tests, firmware and CAD verification.MUSTmet (Q0)make check-fast, make harness-check
ENG-002One command builds a release zip with the full repository, print plates, the PDF, the walk video and the policy.MUSTmetmake package
HW-001A built robot stands, walks under teleoperation, and its measured mass, current and runtime are recorded.MUSTopen: no robot built yetTODO

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