control_loop.sim live

Telemetry

stateSCAN
claw x,y
height z
picked0

Cable length (m)

winch A
winch B
winch C
winch D
— or click on the floor to add an item
9 lb
payload reach
63%
room volume
±1 cm
grab accuracy
29
tests passing
8
printed parts
$230
total build
status: simulation + analysis validated · parts ordered · hardware bring-up next
01

How it works

Four subsystems, each isolated behind a clean interface so the same control code runs the simulator and the real motors.

Kinematics

Where's the claw?

A cable's length is just the distance from its ceiling corner to the claw. Invert that and you convert go to (x,y,z) into four spool lengths.

Perception

Find the laundry

An open-vocabulary vision model (YOLO-World) detects clothes by name, then maps each pixel to a floor coordinate.

Grip

Tentacle hand

Five tendon-driven curling fingers rake and wrap crumpled cloth — one servo closes them all. Better than a rigid claw on a soft target.

Control

Scan → grab → deliver

An explicit state machine clears the floor nearest-first, geofenced away from the walls and the ceiling fan.

┌ perception ─────────────────────┐   ┌ planning ──────────────────┐
camera ▸ YOLO-World ▸ floor (x,y) ──▸ state machine ▸ inverse kinematics ▸ 4 cable lengths
└─────────────────────────────────┘   └────────────────────────────┘
                              USB serial ──▸ Arduino + 4× DRV8825 ──▸ corner winches
                              WiFi ──▸ ESP32 on the claw ──▸ tentacle gripper (battery)
02

Engineering analysis

The physics is closed-form, so the design validates itself. These charts render live from the same equations that drive the robot.

Cable-tension cost map

peak motor load across the floor · z = 0.3 m

12 Nworst case
40 Nmotor limit
3.3×headroom

Maximum payload

load where the busiest cable hits the motor limit

4 kganywhere
10.6 kgat center
0.9 kga pair of jeans

Force explorer — solve the statics yourself

drag the claw or drive it with the sliders — the four cable tensions are solved live from the robot's equilibrium equations · dynamic load = m·(g + a)

A
B
C
D
max payload here: —
Calibration sensitivity

How precisely to measure the ceiling

Perturbing the anchor positions and re-solving the forward kinematics shows claw error ≈ measurement error. Target: measure each corner to ~1 cm for ~1–2 cm grab accuracy.

Statics

Cables pull, never push

Holding the claw means finding four non-negative tensions that cancel gravity. Where none exist — near the walls, behind the fan — is exactly the unreachable border, computed, not guessed.

03

The gripper

CAD render of the tentacle gripper: a frame with five curling fingers

Grabbing flat, crumpled cloth off a hard floor is the classic failure point. The answer isn't a claw — it's a ring of soft, tendon-driven tentacles that curl inward and gather the laundry toward the center.

  • Fully parametric — modeled in code (CadQuery), exports STEP + STL
  • Five TPU fingers with ventral notches that close when a tendon pulls
  • One servo curls all five together; needle-gripper fallback for flat socks
  • Wireless: an ESP32 + battery on the claw take grip commands over WiFi
04

Bill of materials

Everything mechanical that could be printed, was — eight parametric parts modeled in code. The bought parts were each sized from the analysis above (motor torque from the tension map, line strength from peak load, supply wattage from total draw). Total build ≈ $230, reusing a computer for vision.

Motion & structure — the four corner winches and what holds them up
ComponentPurposeQtyEst.
NEMA 17 stepper, 42 N·cmCeiling winches — sized to 2.6× the worst-case cable tension4 + 1 spare$33
Winch spool · motor mount · corner guide3D-printed drivetrain (parametric CadQuery, PETG)4 each
UHMWPE (Dyneema) braided line, 50 lbThe cables — near-zero stretch keeps position accurate; ~15× load margin150 m$8
Stainless lag eye anchors, 700 lb, closed-eyeInto ceiling joists — the one part that must never be plastic4$14
Control & power — one wired controller drives all four axes
ComponentPurposeQtyEst.
Arduino Uno + CNC Shield + 4× DRV88254-axis step/dir motor control; custom firmware speaks a simple serial protocol1 kit$17
Roller-lever limit switchesHoming — each winch finds its zero cable length at startup4 + spares$6
12 V 6 A supply + 7.5 A inline fuseMotor rail, killed by a switched power strip; fuse protects the wiring1$28
Extensions, hookup wire, ceiling racewayCorner runs hidden along the ceiling seams — no visible wiringset$45
Perception — one camera sees the whole floor
ComponentPurposeQtyEst.
1080p UVC board camera, 130° FOVCeiling-mounted; wide angle covers every floor corner (computed, not guessed)1$19
Vision computeReused PC runs YOLO-World open-vocabulary detection$0
Wireless effector — only the four cables touch the claw
ComponentPurposeQtyEst.
MG996R servo (180° positional)One servo curls all five tentacle tendons1 + 3 spares$18
ESP32 dev boardWiFi grip/release server riding on the claw1 + 1 spare$13
2S LiPo + charger + 6 V buck + switchSelf-contained power; dock-charging at the rest pose is the end-state1 set$38
Printed parts & fasteners — eight parametric models, STEP + STL in the repo
ComponentPurposeQtyEst.
Tentacle fingers (TPU 95A)Tendon-driven curling fingers — dorsal skin + ventral notches5$22 filament
Effector frame · tentacle hub · camera mountsThe claw assembly (PETG/PLA), heat-set-insert ready4 parts
M3 stainless kit + brass heat-set insertsMetal threads in plastic — the cheap upgrade that outlasts self-tapping2 kits$19
05

Built with

Robotics, computer vision, controls, mechanical CAD, and embedded firmware — one coherent system.

Python · control + kinematics NumPy / SciPy · statics & least-squares FK YOLO-World · open-vocab detection OpenCV · camera + homography CadQuery · parametric CAD → STEP/STL Arduino · 4-axis stepper firmware ESP32 · wireless gripper over WiFi Matplotlib · analysis + simulation pytest · 29 tests