A DREAM Robotics Agent · Hexapod

WHIP

Walking Hexapod Intelligence Platform

Eighteen servos on an RTrobot controller, driven by an ESP32 that runs her gaits, WiFi and a browser control page. An MPU6050 stops her before she tips, and an ultrasonic sensor watches the way ahead.

C++ Python ESP32 18-DOF MPU6050 MIT License
WHIP's avatar: a human representation of the robot
WHIP · avatar
WHIP, the 18-DOF hexapod robot
WHIP
WHIP from another angle
Legs

Overview

Six legs, eighteen joints

Walk

Gaits

Forward, backward, turn left and turn right, plus stand, rest and shut-down poses, all tuned in the RTrobot editor.

Avoid

Obstacle mode

Walks on her own until something is within 20 cm, then stands, turns and carries on once it's clear past 35 cm.

Balance

Tilt safety

Past 10° of pitch or roll she stops and stands, and resumes once she's back under 7°.

Remote

IR remote

Arrows walk and turn while held. She stands when you let go.

Web

Browser & gamepad

A control page on port 5005, and a Python controller that drives her from a PS2-style gamepad.

Fleet

RIFT integration

She joins the NORA network and registers with the fleet, or hosts her own access point.

Hardware

What she's built from

  1. 01 ESP32 (the same module as NORA)
  2. 02 RTrobot 32-channel servo controller
  3. 03 18-DOF hexapod chassis
  4. 04 18× MG995 180° servos
  5. 05 3S LiPo battery
  6. 06 UBEC set to 6 V
  7. 07 HC-SR04 ultrasonic sensor
  8. 08 MPU6050 gyro + accelerometer
  9. 09 NEC IR receiver + remote

Power

3S LiPo ──► UBEC (6 V) ──► RTrobot servo controller V+ / GND
All grounds tied together

Set the UBEC to 6 V before connecting the servos, and make sure every module shares a common ground.

ESP32 pinout

SignalGPIO
Servo controller (UART0, 38400 baud)TX0 1 / RX0 3
Debug console (Serial2)RX2 16 / TX2 17
HC-SR04 TRIG / ECHO12 / 13
MPU6050 SDA / SCL21 / 22
IR receiver14
ServosRTrobot channels
Left side (three legs)1–9
Right side (three legs)24–32

The servo controller shares UART0 with the USB bridge, so disconnect it before uploading. scripts/servo_setup centres every channel at 1500 µs for fitting servo horns.

Controls

Three ways to drive

Boot default

Obstacle Avoidance

IR 2, the web page, or gamepad Circle.

1 · IR remote

Hold to walk

Arrows walk and turn. 350 ms without a repeat and she stands.

Web

Browser or gamepad

The page's D-pad or the Python controller. 500 ms without a command and she stands.

Python controller

InputAction
D-pad / arrow keysForward, backward, turn left, turn right
Cross (A)Web control mode (needed before driving)
Circle (B)Obstacle Avoidance mode
Square (X)IR Remote mode
Triangle (Y)Emergency stop (stand)

Driven by NORA

NORA can drive WHIP through her IR transmitter: Samsung-format IR at address 0x0DA3, with the fleet link’s commands 0x48–0x4F (drive, stop, obstacle, manual, speed). Driving switches her into IR Remote mode, and each command runs as the matching remote button. She stands once the link has been quiet for 600 ms (frames can land mid-step). She has one gait speed, so speed is ignored. Link frames print as LINK cmd=0x...

Quick start

Get her walking

  1. Flash scripts/esp32/esp32.ino with the servo controller's wires disconnected, then reconnect them.
  2. Power WHIP. She stands, joins NORA's network or starts her own WHIP AP, and starts in Obstacle Avoidance mode.
  3. Open http://<WHIP's IP>:5005/, or run the Python controller.
$ python -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt
$ python scripts/controller.py
SettingValue
NORA's networkNORA / 12345678
WHIP's own APWHIP / 12345678
Control page / RIFT port5005

Who's nearby

ESP-NOW + Bluetooth LE: the robots sense each other

Every robot sends a small "I'm here" beacon twice a second. The signal strength says roughly how close each one is, and how it changes says whether it's coming closer, steady or leaving. Coarse, for "who's around": the ultrasonic and ToF sensors still do the precise avoiding.

Zones

Very close to far

Above −45 dBm very close, −60 near, −75 medium, below that far.

Talk

In Brainfuck

Over ESP-NOW each beacon carries a program that prints park, go, wait or hand; the receiver runs it. RIFT decodes them too.

Manners

Who makes way

A parked robot isn't the one moving; a yielding one is making way; a human-driven one gets space; otherwise the alphabet decides, and everyone makes way for MILA.

WHIP hears the others over ESP-NOW (NORA, MILA) and Bluetooth LE (NORA, KIDA-00, KIDA-01). In obstacle mode she stands, then turns away, when a robot with right of way is close. GET /near shows her list.

Screens

The controllers

Captured without a robot connected, so live values show their offline state.

WHIP's controller showing the gamepad layout
Python controller (PS2 / gamepad)
The DREAM Robotics ecosystem
Minds — DREAM companion · TINA engineer · NINA caretaker · RIFT fleet hub · LYCEA training school
Robots — NORA · MILA · WHIP · KIDA-00 · KIDA-01 · IDA · ARM
Tools — CRUSH compression · Image-Generator · GloriosaAI · SynthWomb · PyVitals