[ Back to home ]
2024

Real-time gesture control of a 3D-printed robotic hand.

21 MediaPipe hand landmarks per frame, a finger-state classifier that reduces them to a five-bit command, a tight serial protocol, and five servos on an Arduino driving a custom 3D-printed hand. Webcam in, mirrored motion out, no GPU.

1. Abstract

A real-time gesture-control loop that maps a user's finger positions onto a custom 3D-printed robotic hand. MediaPipe Hands extracts 21 landmarks per frame, a per-finger classifier reduces them to a five-bit up-or-down command, a deterministic serial protocol carries it to an Arduino, and five servos with antagonistic cable actuation drive a printed PLA hand that mirrors the gesture.

The implementation is deliberately spare. No GPU. No deep model beyond MediaPipe's bundled networks. No continuous angle tracking, just five binary fingers. The serial buffer flushes every frame, so the firmware always acts on the latest hand state rather than queued stale commands.

The point is the loop, not any single piece: vision, classification, serial, firmware, and actuation chained end to end on commodity hardware. This early project is where writing each layer simply enough for the next to trust became the rule for everything after.

2. Introduction

Robotic teleoperation usually means joysticks or expensive motion-capture rigs, which make the user translate gestures into something the rig understands. That translation is the friction. MediaPipe brings precise hand tracking to a webcam and Arduino brings cheap servo control to anyone with a soldering iron, removing most of the cost barrier that kept gesture-controlled robotics in research labs.

2.1 Why binary state, not continuous angles

The first attempt mapped continuously tracked joint angles linearly to servo positions, and the result was visibly jittery. MediaPipe's landmarks carry a few pixels of frame-to-frame noise, which became a few degrees of servo command at the camera's rate, and the servos could not keep up with rapid small commands. Collapsing each finger to a binary up-or-down state, decided by comparing tip and joint landmarks, removed the noise floor entirely. The vocabulary shrinks to 32 distinct hand poses instead of a continuum, but every pose is recognisable and reproducible.

2.2 What is actually new

MediaPipe is from Google. Arduino is Arduino. The cable-actuated hand geometry is borrowed from the open-source prosthetics community. The contribution is the end-to-end loop, closed cheaply and reliably on commodity hardware.

Each section below is one layer in the loop.

3. System

3.1 Vision pipeline

3.2 Finger-state classifier

No trained model, just direct comparisons that exploit how the 21 landmarks are laid out.

3.3 Serial protocol

Five-character payload $TTTTT, where each T is the ASCII digit 0 or 1. The $ delimiter lets the firmware locate message boundaries even on partial reads.

3.4 Firmware

3.5 Mechanical hand

Articulated finger segments designed in Fusion 360 and printed in PLA. Each finger has its own cable run from a palm-mounted servo, with elastic bands providing return force. One degree of freedom per finger keeps the mechanics simple and the gestures recognisable from across a room.

4. Evaluation

Evaluation is qualitative and demo-driven, measured on the build's own setup, not an external teleoperation benchmark.

Frame rates are from the development laptop's integrated camera and CPU. The gesture claim is qualitative across a few dozen hand poses, not a quantitative accuracy figure. Read this as an early end-to-end systems exercise, not a gesture-recognition benchmark.

5. Conclusion and Implications

The same loop generalises far beyond hand-shadow puppets.

In each case the safety-critical consequence is the same: a teleoperation loop on commodity hardware, with each layer simple enough that failure modes are observable rather than buried, can be debugged by the people who deploy it.

5.1 Limitations and future work

6. Acknowledgments

Hand-landmark tracking provided by Google MediaPipe Hands. The cable-actuated 3D-printed hand geometry draws on conventions from the open-source prosthetics community. Built independently.