EMG Collection and Processing Pipeline

UBC Bionics | GRASP Prosthetic Arm

Background & Overview

As part of the UBC Bionics Design Team, I contributed to the development of embedded systems for our bionic prosthetic arm. My work focused on EMG signal collection, processing, and integration into the main control architecture. This involved reworking the EMG pipeline, moving away from a Python-based approach, and ensuring it could run efficiently on embedded hardware such as the Raspberry Pi Pico.

1.0 Project Objectives

2.0 Methodology

2.1 EMG Collection and Processing

Originally, EMG signals were collected and thresholded using a separate Python application. This provided only basic detection of "grip" signals and was highly susceptible to noise. To improve robustness, I integrated EMG data collection and processing directly into our Rust-based control program (GPM). This included implementing filtering, thresholding logic, and safeguards against artifacts caused by motion or electrode noise.

Diagram of Old EMG Pipeline
Fig. 1: Diagram of Old EMG Pipeline
Diagram of New EMG Pipeline
Fig. 2: Diagram of New EMG Pipeline

2.2 Control Module Redesign

The original control architecture used an event-driven Rust engine (GPM) but still relied on a Python module to interpret EMG signals. While this worked on a Raspberry Pi 4, it was unsuitable for our goal of miniaturization onto a Raspberry Pi Pico. I refactored the architecture so GPM directly collected and processed EMG signals without external dependencies. This streamlined the system, reduced computational overhead, and enabled embedding all electronics within the prosthetic arm.

Initially, the team had planned to include computer vision and machine learning modules for EMG analysis. However, testing showed that running both analytics and GPM on the Pi Pico caused severe performance drops. Removing the analytics module improved responsiveness and reliability.

Old Architecture Diagram
Fig. 3: Old Architecture Diagram
New Architecture Diagram
Fig. 4: New Architecture Diagram

3.0 Results

4.0 Conclusion

By restructuring the EMG pipeline and control module architecture, the system became more efficient, resilient, and fully embedded. These improvements advance the UBC Bionics project by enabling a more compact and robust control system for the prosthetic arm.

5.0 Links