Stretcher walker sandbox · Stage 1

A rigid frame on 4 corners. Each corner has an inner and an outer limb on one shared hip axis, and both feet land on one track. 16 MG90S servos on PCA9685 channels 0–15. Every servo reads 90° in the stand pose (foot under the hip at stand height), so set each horn to 90° and attach the limb in that pose.

3D view

Inner limb Outer limb Filled foot = planted

Gait timing

Load check

Settings

Motors

Click a row to chart that limb. Channel = corner × 4 + limb × 2 + joint (corners FL, FR, RL, RR; inner then outer; hip then knee). Min, max, trim, pulse range and invert apply to each servo; empty pulse cells use the servo model default. Right-side servos start inverted because they mount mirrored. Every command is clamped to min/max. Red values go past that servo’s limits.

ChMotorAngle nowPulse nowRange in cycleSwingPeak speedMinMaxTrimPulse 0°Pulse 180°InvertStatus

Gait table for the ESP32

Records the simulation at 50 Hz (one row every 20 ms) for all 16 channels, in 0.1° units, clamped to each servo’s limits. On power-up the sketch moves to the stand pose one corner at a time, plays the startup rows once (lower the body, step each limb into place, one warm-up cycle), then loops the gait rows. Playback only: no live tuning or mode commands. Generate again after changing settings.