Anthropomorphic Robot Hand - Human-Proportioned 5-Finger Hand Mirrored from Live Hand Tracking

check out the CAD!

timeline: 2026

tech stack: SolidWorks, 3D Printing, Arduino Nano, ESP32, PCA9685, C++, Python, OpenCV

Overview

A human-proportioned 5-finger robot hand that mirrors real hand motion in real time. A webcam tracks the operator's hand with OpenCV, the finger angles are streamed to an ESP32, and a 5-DOF servo system driven through a PCA9685 reproduces the pose on the printed hand. Designed in SolidWorks and 3D printed, with the joint geometry tuned until the printed fingers flexed the way the CAD said they would.

Design & Build

The hand was modelled in SolidWorks to human proportions — segment lengths and joint spacing taken from anthropometric data — with articulated phalanges driven by tendons routed back to the servos in the palm. The first prints flexed roughly 10° off the intended range because of printer tolerances at the pin joints and tendon channels. Range-of-motion checks on each joint, followed by tolerance changes to the pin clearances and channel diameters, brought the 3D-printed joint flexion error from ~10° to under 1°.

Actuation & Control

Five degrees of freedom — one tendon per finger — are actuated by servos on a PCA9685 PWM driver. An Arduino Nano handles the servo side while an ESP32 receives finger-angle targets over serial from a Python script running OpenCV hand tracking on a laptop webcam. Each tracked finger's flexion is mapped to a servo angle through a per-finger calibration curve, so the hand mirrors the operator's motion live rather than replaying canned gestures.

Results

The hand tracks individual finger movement and basic grip patterns in real time with no perceptible lag between the operator and the printed hand. Getting the mechanical error under 1° was what made the mirroring convincing — with the original ~10° flexion error, a closed fist on camera read as a half-open hand on the robot.