Back to Projects
PRJ/Project

EMG Winter Soldier Robotic Arm

TinyML gesture recognition at 82% accuracy deployed on ESP32 for robotic arm control

FreeRTOSESP-IDFTensorFlowscikit-learnCPythonHDF5ESP32EMG muscle sensorsCustom 9-DOF 3D-printed armServo motors

Overview

An EMG-controlled robotic arm that classifies hand gestures in real time using TinyML models deployed on an ESP32. The full pipeline spans signal acquisition, dataset labeling, model training, and on-device inference.

Signal Acquisition Pipeline

Used DMA for non-blocking ADC sampling at 1 kHz alongside an asynchronous USB data transfer task. Muscle-onset detection labeled the signals, and datasets were stored in HDF5 format for training.

Machine Learning

Trained LDA and MLP models on EMG signal features using scikit-learn and TensorFlow, achieving 82% accuracy across 5 hand gestures. Both models were quantized and deployed on the ESP32 for fast, offline TinyML inference.

Hardware

Built a 9-DOF robotic arm with custom 3D-printed CAD shims to reduce servo stress. Modified a bicep servo motor for continuous rotation by repurposing its internal potentiometer as an elbow angle feedback sensor, enabling screw-driven actuation.