🧪 New tutorials are being published — build from robot arms to sensors step by step
Skip to content

01 Basics ​

1.1 Working principle ​

SR-Support is a 2-DOF (shoulder + elbow) active self-righting device:

  • Mechanism: a two-joint arm mounted on a square base; the shoulder swings about the body's long axis and the elbow folds the forearm;
  • Sensing: a 6-axis IMU provides the attitude quaternion; the firmware classifies each fall into one of four poses (pitch_pos/neg, roll_pos/neg, see page 06 6.5) from the body-frame up vector;
  • Actuation: a reference-sequence executor - each pose has a waypoint schedule (20 ticks per waypoint, 0.08 rad/tick slew) that plants/levers the arm to roll the body back upright; roll_neg additionally uses elbow-wedge pumps and a whip-slam fallback;
  • Fallbacks: 14 s timeout, pose re-planning and automatic retry after the fall gate; roll_neg uses per-stage adaptive holds and exits to retract as soon as it is upright;
  • Verified: four directions stand up directly in about 1-6 s; the same model drives the MuJoCo simulation and the live hardware twin (page 08).

1.2 Overview ​

ItemSpecification
Base~88 × 82 mm, 68 mm tall (bottom plate + shoulder servo mount, 3D printed)
ArmShoulder axis 56 mm above the base, elbow 40.1 mm above the shoulder; forearm strut ~17 cm (12 mm tube)
Mass~133 g (model mass table: foot 92.1 / arm1 20.7 / arm2 20.1 g, including both servos)
ShoulderPTK7452MG; manual limits [-1.85, +1.82] rad (sim joint range [-1.07, +2.07])
ElbowPTK7452MG; manual limits [-0.90, +0.70] rad (mechanical ~±1.55 rad)
ControllerESP32-S3-DevKitC-1 (Arduino framework / PlatformIO)
AttitudeJuxi ICM42670P 6-axis IMU (I²C address 0x23, 100 kHz)
Servo driveESP32 LEDC, 50 Hz, 14 bit, 500–2500 µs pulse width

1.3 BOM ​

CategoryPartQtyNotes
Structure3D printed: bottom plate, shoulder servo mount, elbow servo mount, top strut1 eachPETG or PLA, 15% infill; servo horns are the ones bundled with the servos
ActuationPTK7452MG 180° PWM servo2Metal gear, 25T, ~12.2 g, ~3.4 kg·cm at 6 V
ControllerESP32-S3-DevKitC-11USB-C
SensorJuxi ICM42670P IMU module13.3 V supply
AdapterPassive servo adapter board1GPIO → 3-pin headers, shared V+/GND, no PCA9685
WiringUSB-C data cable, Dupont wires, servo extensionsseveral—
PowerServo supply 5 V / ≥5 A1One 5 V supply feeds the ESP32 and the servos through a 1-to-2 cable (common ground); verified for all four get-up directions

← Back to the tutorial contents