Repository files navigation

Mind-Controlled Bionic Arm — Brain to Machine

🧠 Mind-Controlled Bionic Arm with Sense of Touch

Decoding thought into motion — a non-invasive EEG-driven bionic prosthetic with haptic feedback

StarsLicenseProtocolBlog

MATLABPythonEEGNetSimulinkArduino


📋 Table of Contents


🌟 Overview

The Mind-Controlled Bionic Arm with Sense of Touch (MCBA) is an innovative, non-invasive, and cost-effective bionic prosthetic limb designed to restore complex hand function for upper-limb amputees and individuals with partial paralysis.

The system decodes non-invasive EEG brain signals into PWM control commands that drive servo motors in a 3-DOF bionic hand. Integrated haptic feedback sensors in the gripper send tactile signals back to the user, enabling intuitive object manipulation and preventing accidental slippage or injury.

Key Innovation: We combine 8-class motor imagery EEG classification with real-time haptic feedback — bridging the gap between neural intent and physical action, all without surgical implants.


🎯 Core Pillars

🧠 Mind Control

Decodes 8 distinct motor imagery states from non-invasive EEG signals using EEGNet and classical ML for thought-driven prosthetic operation.

🤖 Haptic Feedback

Tactile, force, and proximity sensors in the gripper deliver real-time sensory signals back to the user for safe, intuitive object handling.

💰 Accessibility

Non-invasive and cost-effective design eliminates surgical procedures, optimizing comfort, affordability, and global accessibility.


🏗 System Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│ MIND-CONTROLLED BIONIC ARM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ EEG Headset │───▶│ Preprocessing │───▶│ ML / EEGNet │───▶│ PWM Ctrl │ │
│ │ (16ch/64ch) │ │ BP + Notch │ │ Classification│ │ Servos │ │
│ │ 125/512 Hz │ │ CAR + Z-norm │ │ 8 Classes │ │ 3-DOF │ │
│ └─────────────┘ └──────────────┘ └──────────────┘ └─────┬─────┘ │
│ │ │
│ ┌──────────────────────────────────┐ │ │
│ │ HAPTIC FEEDBACK LOOP │ │ │
│ │ IR + Ultrasonic + Tactile Sensors│◀─────┘ │
│ │ → Sensory signal to user │ │
│ └──────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Signal Processing Pipeline

Raw EEG ─▶ Bandpass (8-30 Hz) ─▶ 60 Hz Notch ─▶ CAR ─▶ Artifact Rejection
│
┌─────────────────────────────────────────┤
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Feature Extract│ │ Raw Trials │
│ Band Power │ │ [C × T × 1] │
│ Hjorth, AR │ └───────┬──────┘
│ Wavelet, Asym. │ │
└───────┬───────┘ │
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Classical ML │ │ EEGNet │
│ SVM / RF / KNN │ │ Temporal + │
│ (368 features) │ │ Spatial CNN │
└───────┬───────┘ └───────┬──────┘
└─────────────────┬──────────────────────┘
▼
┌──────────────┐
│ Evaluation │
│ Acc / F1 / │
│ Kappa / CM │
└──────────────┘

📁 Project Structure

Mind-Control-Bionic-Arm/
│
├── main.m # 🚀 Master pipeline — run this
├── ModelCreation_8Classes.m # 📜 Legacy YAMNet approach (reference only)
│
├── src/
│ ├── preprocessing/
│ │ ├── load_milimbeeg.m # MILimbEEG dataset loader (16ch, 125Hz)
│ │ ├── load_gigadb.m # GigaDb dataset loader (64ch, 512Hz)
│ │ ├── eeg_preprocess.m # Bandpass + Notch + CAR + Artifact rejection
│ │ ├── extract_features.m # V1 features (208 dims: PSD, Hjorth, Stats)
│ │ ├── extract_features_v2.m # V2 features (368 dims: + AR, Wavelet, Asymmetry)
│ │ └── remap_labels.m # 8-class → 4/3/5 class remapping
│ │
│ ├── models/
│ │ ├── build_eegnet.m # EEGNet architecture (Lawhern et al. 2018)
│ │ ├── train_eegnet.m # EEGNet training with stratified K-fold CV
│ │ └── train_classical.m # SVM / Random Forest / KNN with class balancing
│ │
│ └── evaluation/
│ └── evaluate_model.m # Metrics: Accuracy, F1, Kappa, confusion matrix
│
├── Simulation/
│ ├── simulationModel.slx # Simulink 3-DOF arm dynamics model
│ ├── ArduinoCollectionEEGSimulation.slx # Arduino EEG acquisition simulation
│ └── classNames.mat # 8-class label definitions
│
├── Utility Functions/
│ ├── audioPreprocess.m # Legacy YAMNet mel-spectrogram preprocessor
│ ├── audioPreprocessDiff.m # Legacy variant for raw feature extraction
│ └── statsOfMeasure.m # Confusion matrix statistics calculator
│
├── datasets/ # EEG datasets (git-ignored)
│ └── datasourceDatasets/
│ ├── MILimbEEG/ # 60 subjects, 16ch, 125Hz, 8 classes
│ └── GigaDb/ # 52 subjects, 64ch, 512Hz, L/R imagery
│
├── models/ # Saved trained models (git-ignored)
├── paper/ # Research manuscript
├── assets/ # Images and media
└── env/ # Python virtual environment

⚡ Pipeline

Quick Start

% Run the entire pipeline in MATLAB
>> main

The main.m script executes the full pipeline:

StepModuleDescription
1load_milimbeeg()Load MILimbEEG dataset (60 subjects, 8 classes, 16 channels)
2eeg_preprocess()Bandpass filter (0.5–40 Hz), 50 Hz notch, CAR, artifact rejection
3extract_features()Extract 208 EEG features (band power, Hjorth, PSD, stats)
4train_classical()Train SVM, Random Forest, KNN with class balancing
5train_eegnet()Train EEGNet CNN on raw preprocessed trials
6evaluate_model()Compare all models — accuracy, F1, Cohen's Kappa

Class Mapping (8 Classes)

ClassAbbreviationMotor Action
1BEOBoth Eyes Open (Baseline)
2CLHClose Left Hand
3CRHClose Right Hand
4DLFDorsiflex Left Foot
5PLFPlantarflex Left Foot
6DRFDorsiflex Right Foot
7PRFPlantarflex Right Foot
8RestResting State

For practical BCI control, labels can be remapped using remap_labels():

% Standard 4-class BCI paradigm
[newLabels, classes, idx] = remap_labels(labels, '4class');
% → LeftHand, RightHand, Feet, Rest

📊 Datasets

MILimbEEG

Asanza et al. (2023) — Upper and lower limb motor execution & imagery

PropertyValue
Subjects60 volunteers
Channels16 (10-10 system)
Sampling Rate125 Hz
Classes8 (motor execution + imagery)
Total Recordings8,680

GigaDb

Cho et al. (2017) — Left/Right hand motor imagery

PropertyValue
Subjects52
Channels64 EEG + 4 reference
Sampling Rate512 Hz
Classes2 (Left/Right hand imagery)
Trials per Class100 per subject

🚀 Getting Started

Prerequisites

  • MATLAB R2024b+ with the following toolboxes:
    • Signal Processing Toolbox
    • Deep Learning Toolbox
    • Statistics and Machine Learning Toolbox
    • Wavelet Toolbox
    • (Optional) Audio Toolbox (for legacy YAMNet pipeline)
    • (Optional) Simulink + Simscape (for simulation models)

Installation

# Clone the repository
git clone https://github.com/Creatrix-Net/Mind-Control-Bionic-Arm.git
cd Mind-Control-Bionic-Arm

Dataset Setup

  1. MILimbEEG — Download from IEEE DataPort and extract into:

    datasets/datasourceDatasets/MILimbEEG/data/
    
  2. GigaDb — Download from GigaScience Database and extract .mat files into:

    datasets/datasourceDatasets/GigaDb/data/
    

Run

% Open MATLAB and navigate to the project root
cd('path/to/Mind-Control-Bionic-Arm')
% Run the full pipelinemain

📈 Results & Performance

Model Comparison (MILimbEEG, 4-Class)

ModelAccuracyBalanced AccuracyMethod
SVM (RBF)25.49%25.45%V2 features (368 dims)
Random Forest26.70%26.64%V2 features (368 dims)
KNN (k=11)24.81%24.82%V2 features (368 dims)
EEGNet25.80%Raw EEG (16×500)

Model Comparison (GigaDb, 2-Class Left/Right)

ModelAccuracyNotes
EEGNetTraining in progress64ch, 512Hz, 8-30Hz bandpass

Note: Motor imagery EEG classification is an inherently challenging task. State-of-the-art BCI competition results typically report 60-80% on 2-class problems. Our pipeline establishes a rigorous baseline with proper stratified cross-validation, class balancing, and comprehensive evaluation metrics. Active research continues to improve accuracy through architecture tuning and cross-dataset transfer learning.

Evaluation Metrics

Every model is evaluated with:

  • Stratified K-Fold Cross-Validation (5 folds)
  • Balanced Accuracy (class-imbalance aware)
  • Per-class Precision, Recall, F1-Score
  • Cohen's Kappa (agreement beyond chance)
  • Confusion Matrix with row/column normalized summaries
  • Precision-Recall scatter with iso-F1 curves

🔧 Simulation

Two Simulink models bridge the gap between AI classification and hardware control:

ModelFileDescription
3-DOF Arm DynamicsSimulation/simulationModel.slxSimscape model of the bionic arm mechanics, servo actuation, and control response
Arduino EEG AcquisitionSimulation/ArduinoCollectionEEGSimulation.slxModels real-time EEG signal acquisition via Arduino analog input with FIR filtering

🏆 Awards & Recognition

AwardEventYear
🥈 2nd Prize (Poster Presentation)IIT Ropar — EE Research Day2024
📜 Conference Selection & Presentation5th International Conference on Intelligent Circuits and Systems (ICICS)2023
🚀 Hackathon SelectionSmart India Hackathon (SIH) — Internal Round2023
🎙️ Pitching CompetitionIEEE SA Telehealth Pitching Competition
🎓 Student Event FeatureIEEE SysCon Systems Council Student Event
📋 Patent FiledThrough Lovely Professional University

📄 Research & Publications

  • Protocol:"Mind Controlled Bionic Arm with Sense of Touch [8 class version]"DOI: 10.17504/protocols.io.n92ldr869g5b/v2

  • Conference Paper: Presented at the 5th International Conference on Intelligent Circuits and Systems (ICICS 2023), Lovely Professional University.

  • Journal Manuscript:"Mind Control Bionic Arm with Sense of Touch" — submitted to the Journal of The Institution of Engineers (India): Series B.

  • Blog:thecreativenet.in/products/mcba


👥 Team

Dhruva Shaw
Lead Researcher
Robotics & Automation
Founder, Creative Net
GitHub

Arittrabha Sengupta
Researcher
Bioinformatics &
Data Analytics

Jay B. Khaple
Co-Researcher
Electronics &
Communication Engg.

Bhavya Chowdhary
Co-Researcher
Contributor

Dr. G. Raam Dheep
Faculty Advisor
School of EEE
Lovely Professional University


📝 Citation

If you use this work in your research, please cite:

@misc{shaw2024mcba,
title = {Mind Controlled Bionic Arm with Sense of Touch},
author = {Shaw, Dhruva and Sengupta, Arittrabha and Khaple, Jay Baswaraj and Dheep, G. Raam},
year = {2024},
publisher = {protocols.io},
doi = {10.17504/protocols.io.n92ldr869g5b/v2},
url = {https://dx.doi.org/10.17504/protocols.io.n92ldr869g5b/v2}
}

📜 License

This project is maintained by Creative Net (Creatrix-Net) — a deep-tech robotics and automation initiative registered as an MSME on the Government of India's Udyam portal.

See the LICENSE file for details.


🧠 From thought to touch — making prosthetics intelligent.

⭐ Star this repo📖 Read the blog🔬 View protocol

About

Imagine a prosthetic arm that functions like your natural arm. You wear a headband, and with the thought process, the working signal from mind connects to the prosthetic about moving the arm, it responds accordingly—just like your real arm!“

Resources

Stars

0 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Mind-Controlled Bionic Arm — Brain to Machine

🧠 Mind-Controlled Bionic Arm with Sense of Touch

Decoding thought into motion — a non-invasive EEG-driven bionic prosthetic with haptic feedback

StarsLicenseProtocolBlog

MATLABPythonEEGNetSimulinkArduino


📋 Table of Contents


🌟 Overview

The Mind-Controlled Bionic Arm with Sense of Touch (MCBA) is an innovative, non-invasive, and cost-effective bionic prosthetic limb designed to restore complex hand function for upper-limb amputees and individuals with partial paralysis.

The system decodes non-invasive EEG brain signals into PWM control commands that drive servo motors in a 3-DOF bionic hand. Integrated haptic feedback sensors in the gripper send tactile signals back to the user, enabling intuitive object manipulation and preventing accidental slippage or injury.

Key Innovation: We combine 8-class motor imagery EEG classification with real-time haptic feedback — bridging the gap between neural intent and physical action, all without surgical implants.


🎯 Core Pillars

🧠 Mind Control

Decodes 8 distinct motor imagery states from non-invasive EEG signals using EEGNet and classical ML for thought-driven prosthetic operation.

🤖 Haptic Feedback

Tactile, force, and proximity sensors in the gripper deliver real-time sensory signals back to the user for safe, intuitive object handling.

💰 Accessibility

Non-invasive and cost-effective design eliminates surgical procedures, optimizing comfort, affordability, and global accessibility.


🏗 System Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│ MIND-CONTROLLED BIONIC ARM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ EEG Headset │───▶│ Preprocessing │───▶│ ML / EEGNet │───▶│ PWM Ctrl │ │
│ │ (16ch/64ch) │ │ BP + Notch │ │ Classification│ │ Servos │ │
│ │ 125/512 Hz │ │ CAR + Z-norm │ │ 8 Classes │ │ 3-DOF │ │
│ └─────────────┘ └──────────────┘ └──────────────┘ └─────┬─────┘ │
│ │ │
│ ┌──────────────────────────────────┐ │ │
│ │ HAPTIC FEEDBACK LOOP │ │ │
│ │ IR + Ultrasonic + Tactile Sensors│◀─────┘ │
│ │ → Sensory signal to user │ │
│ └──────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Signal Processing Pipeline

Raw EEG ─▶ Bandpass (8-30 Hz) ─▶ 60 Hz Notch ─▶ CAR ─▶ Artifact Rejection
│
┌─────────────────────────────────────────┤
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Feature Extract│ │ Raw Trials │
│ Band Power │ │ [C × T × 1] │
│ Hjorth, AR │ └───────┬──────┘
│ Wavelet, Asym. │ │
└───────┬───────┘ │
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Classical ML │ │ EEGNet │
│ SVM / RF / KNN │ │ Temporal + │
│ (368 features) │ │ Spatial CNN │
└───────┬───────┘ └───────┬──────┘
└─────────────────┬──────────────────────┘
▼
┌──────────────┐
│ Evaluation │
│ Acc / F1 / │
│ Kappa / CM │
└──────────────┘

📁 Project Structure

Mind-Control-Bionic-Arm/
│
├── main.m # 🚀 Master pipeline — run this
├── ModelCreation_8Classes.m # 📜 Legacy YAMNet approach (reference only)
│
├── src/
│ ├── preprocessing/
│ │ ├── load_milimbeeg.m # MILimbEEG dataset loader (16ch, 125Hz)
│ │ ├── load_gigadb.m # GigaDb dataset loader (64ch, 512Hz)
│ │ ├── eeg_preprocess.m # Bandpass + Notch + CAR + Artifact rejection
│ │ ├── extract_features.m # V1 features (208 dims: PSD, Hjorth, Stats)
│ │ ├── extract_features_v2.m # V2 features (368 dims: + AR, Wavelet, Asymmetry)
│ │ └── remap_labels.m # 8-class → 4/3/5 class remapping
│ │
│ ├── models/
│ │ ├── build_eegnet.m # EEGNet architecture (Lawhern et al. 2018)
│ │ ├── train_eegnet.m # EEGNet training with stratified K-fold CV
│ │ └── train_classical.m # SVM / Random Forest / KNN with class balancing
│ │
│ └── evaluation/
│ └── evaluate_model.m # Metrics: Accuracy, F1, Kappa, confusion matrix
│
├── Simulation/
│ ├── simulationModel.slx # Simulink 3-DOF arm dynamics model
│ ├── ArduinoCollectionEEGSimulation.slx # Arduino EEG acquisition simulation
│ └── classNames.mat # 8-class label definitions
│
├── Utility Functions/
│ ├── audioPreprocess.m # Legacy YAMNet mel-spectrogram preprocessor
│ ├── audioPreprocessDiff.m # Legacy variant for raw feature extraction
│ └── statsOfMeasure.m # Confusion matrix statistics calculator
│
├── datasets/ # EEG datasets (git-ignored)
│ └── datasourceDatasets/
│ ├── MILimbEEG/ # 60 subjects, 16ch, 125Hz, 8 classes
│ └── GigaDb/ # 52 subjects, 64ch, 512Hz, L/R imagery
│
├── models/ # Saved trained models (git-ignored)
├── paper/ # Research manuscript
├── assets/ # Images and media
└── env/ # Python virtual environment

⚡ Pipeline

Quick Start

% Run the entire pipeline in MATLAB
>> main

The main.m script executes the full pipeline:

StepModuleDescription
1load_milimbeeg()Load MILimbEEG dataset (60 subjects, 8 classes, 16 channels)
2eeg_preprocess()Bandpass filter (0.5–40 Hz), 50 Hz notch, CAR, artifact rejection
3extract_features()Extract 208 EEG features (band power, Hjorth, PSD, stats)
4train_classical()Train SVM, Random Forest, KNN with class balancing
5train_eegnet()Train EEGNet CNN on raw preprocessed trials
6evaluate_model()Compare all models — accuracy, F1, Cohen's Kappa

Class Mapping (8 Classes)

ClassAbbreviationMotor Action
1BEOBoth Eyes Open (Baseline)
2CLHClose Left Hand
3CRHClose Right Hand
4DLFDorsiflex Left Foot
5PLFPlantarflex Left Foot
6DRFDorsiflex Right Foot
7PRFPlantarflex Right Foot
8RestResting State

For practical BCI control, labels can be remapped using remap_labels():

% Standard 4-class BCI paradigm
[newLabels, classes, idx] = remap_labels(labels, '4class');
% → LeftHand, RightHand, Feet, Rest

📊 Datasets

MILimbEEG

Asanza et al. (2023) — Upper and lower limb motor execution & imagery

PropertyValue
Subjects60 volunteers
Channels16 (10-10 system)
Sampling Rate125 Hz
Classes8 (motor execution + imagery)
Total Recordings8,680

GigaDb

Cho et al. (2017) — Left/Right hand motor imagery

PropertyValue
Subjects52
Channels64 EEG + 4 reference
Sampling Rate512 Hz
Classes2 (Left/Right hand imagery)
Trials per Class100 per subject

🚀 Getting Started

Prerequisites

  • MATLAB R2024b+ with the following toolboxes:
    • Signal Processing Toolbox
    • Deep Learning Toolbox
    • Statistics and Machine Learning Toolbox
    • Wavelet Toolbox
    • (Optional) Audio Toolbox (for legacy YAMNet pipeline)
    • (Optional) Simulink + Simscape (for simulation models)

Installation

# Clone the repository
git clone https://github.com/Creatrix-Net/Mind-Control-Bionic-Arm.git
cd Mind-Control-Bionic-Arm

Dataset Setup

  1. MILimbEEG — Download from IEEE DataPort and extract into:

    datasets/datasourceDatasets/MILimbEEG/data/
    
  2. GigaDb — Download from GigaScience Database and extract .mat files into:

    datasets/datasourceDatasets/GigaDb/data/
    

Run

% Open MATLAB and navigate to the project root
cd('path/to/Mind-Control-Bionic-Arm')
% Run the full pipelinemain

📈 Results & Performance

Model Comparison (MILimbEEG, 4-Class)

ModelAccuracyBalanced AccuracyMethod
SVM (RBF)25.49%25.45%V2 features (368 dims)
Random Forest26.70%26.64%V2 features (368 dims)
KNN (k=11)24.81%24.82%V2 features (368 dims)
EEGNet25.80%Raw EEG (16×500)

Model Comparison (GigaDb, 2-Class Left/Right)

ModelAccuracyNotes
EEGNetTraining in progress64ch, 512Hz, 8-30Hz bandpass

Note: Motor imagery EEG classification is an inherently challenging task. State-of-the-art BCI competition results typically report 60-80% on 2-class problems. Our pipeline establishes a rigorous baseline with proper stratified cross-validation, class balancing, and comprehensive evaluation metrics. Active research continues to improve accuracy through architecture tuning and cross-dataset transfer learning.

Evaluation Metrics

Every model is evaluated with:

  • Stratified K-Fold Cross-Validation (5 folds)
  • Balanced Accuracy (class-imbalance aware)
  • Per-class Precision, Recall, F1-Score
  • Cohen's Kappa (agreement beyond chance)
  • Confusion Matrix with row/column normalized summaries
  • Precision-Recall scatter with iso-F1 curves

🔧 Simulation

Two Simulink models bridge the gap between AI classification and hardware control:

ModelFileDescription
3-DOF Arm DynamicsSimulation/simulationModel.slxSimscape model of the bionic arm mechanics, servo actuation, and control response
Arduino EEG AcquisitionSimulation/ArduinoCollectionEEGSimulation.slxModels real-time EEG signal acquisition via Arduino analog input with FIR filtering

🏆 Awards & Recognition

AwardEventYear
🥈 2nd Prize (Poster Presentation)IIT Ropar — EE Research Day2024
📜 Conference Selection & Presentation5th International Conference on Intelligent Circuits and Systems (ICICS)2023
🚀 Hackathon SelectionSmart India Hackathon (SIH) — Internal Round2023
🎙️ Pitching CompetitionIEEE SA Telehealth Pitching Competition
🎓 Student Event FeatureIEEE SysCon Systems Council Student Event
📋 Patent FiledThrough Lovely Professional University

📄 Research & Publications

  • Protocol:"Mind Controlled Bionic Arm with Sense of Touch [8 class version]"DOI: 10.17504/protocols.io.n92ldr869g5b/v2

  • Conference Paper: Presented at the 5th International Conference on Intelligent Circuits and Systems (ICICS 2023), Lovely Professional University.

  • Journal Manuscript:"Mind Control Bionic Arm with Sense of Touch" — submitted to the Journal of The Institution of Engineers (India): Series B.

  • Blog:thecreativenet.in/products/mcba


👥 Team

Dhruva Shaw
Lead Researcher
Robotics & Automation
Founder, Creative Net
GitHub

Arittrabha Sengupta
Researcher
Bioinformatics &
Data Analytics

Jay B. Khaple
Co-Researcher
Electronics &
Communication Engg.

Bhavya Chowdhary
Co-Researcher
Contributor

Dr. G. Raam Dheep
Faculty Advisor
School of EEE
Lovely Professional University


📝 Citation

If you use this work in your research, please cite:

@misc{shaw2024mcba,
title = {Mind Controlled Bionic Arm with Sense of Touch},
author = {Shaw, Dhruva and Sengupta, Arittrabha and Khaple, Jay Baswaraj and Dheep, G. Raam},
year = {2024},
publisher = {protocols.io},
doi = {10.17504/protocols.io.n92ldr869g5b/v2},
url = {https://dx.doi.org/10.17504/protocols.io.n92ldr869g5b/v2}
}

📜 License

This project is maintained by Creative Net (Creatrix-Net) — a deep-tech robotics and automation initiative registered as an MSME on the Government of India's Udyam portal.

See the LICENSE file for details.


🧠 From thought to touch — making prosthetics intelligent.

⭐ Star this repo📖 Read the blog🔬 View protocol

About

Imagine a prosthetic arm that functions like your natural arm. You wear a headband, and with the thought process, the working signal from mind connects to the prosthetic about moving the arm, it responds accordingly—just like your real arm!“

Resources

Stars

0 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mind-Controlled Bionic Arm — Brain to Machine

🧠 Mind-Controlled Bionic Arm with Sense of Touch

Decoding thought into motion — a non-invasive EEG-driven bionic prosthetic with haptic feedback

StarsLicenseProtocolBlog

MATLABPythonEEGNetSimulinkArduino


📋 Table of Contents


🌟 Overview

The Mind-Controlled Bionic Arm with Sense of Touch (MCBA) is an innovative, non-invasive, and cost-effective bionic prosthetic limb designed to restore complex hand function for upper-limb amputees and individuals with partial paralysis.

The system decodes non-invasive EEG brain signals into PWM control commands that drive servo motors in a 3-DOF bionic hand. Integrated haptic feedback sensors in the gripper send tactile signals back to the user, enabling intuitive object manipulation and preventing accidental slippage or injury.

Key Innovation: We combine 8-class motor imagery EEG classification with real-time haptic feedback — bridging the gap between neural intent and physical action, all without surgical implants.


🎯 Core Pillars

🧠 Mind Control

Decodes 8 distinct motor imagery states from non-invasive EEG signals using EEGNet and classical ML for thought-driven prosthetic operation.

🤖 Haptic Feedback

Tactile, force, and proximity sensors in the gripper deliver real-time sensory signals back to the user for safe, intuitive object handling.

💰 Accessibility

Non-invasive and cost-effective design eliminates surgical procedures, optimizing comfort, affordability, and global accessibility.


🏗 System Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│ MIND-CONTROLLED BIONIC ARM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ EEG Headset │───▶│ Preprocessing │───▶│ ML / EEGNet │───▶│ PWM Ctrl │ │
│ │ (16ch/64ch) │ │ BP + Notch │ │ Classification│ │ Servos │ │
│ │ 125/512 Hz │ │ CAR + Z-norm │ │ 8 Classes │ │ 3-DOF │ │
│ └─────────────┘ └──────────────┘ └──────────────┘ └─────┬─────┘ │
│ │ │
│ ┌──────────────────────────────────┐ │ │
│ │ HAPTIC FEEDBACK LOOP │ │ │
│ │ IR + Ultrasonic + Tactile Sensors│◀─────┘ │
│ │ → Sensory signal to user │ │
│ └──────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Signal Processing Pipeline

Raw EEG ─▶ Bandpass (8-30 Hz) ─▶ 60 Hz Notch ─▶ CAR ─▶ Artifact Rejection
│
┌─────────────────────────────────────────┤
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Feature Extract│ │ Raw Trials │
│ Band Power │ │ [C × T × 1] │
│ Hjorth, AR │ └───────┬──────┘
│ Wavelet, Asym. │ │
└───────┬───────┘ │
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Classical ML │ │ EEGNet │
│ SVM / RF / KNN │ │ Temporal + │
│ (368 features) │ │ Spatial CNN │
└───────┬───────┘ └───────┬──────┘
└─────────────────┬──────────────────────┘
▼
┌──────────────┐
│ Evaluation │
│ Acc / F1 / │
│ Kappa / CM │
└──────────────┘

📁 Project Structure

Mind-Control-Bionic-Arm/
│
├── main.m # 🚀 Master pipeline — run this
├── ModelCreation_8Classes.m # 📜 Legacy YAMNet approach (reference only)
│
├── src/
│ ├── preprocessing/
│ │ ├── load_milimbeeg.m # MILimbEEG dataset loader (16ch, 125Hz)
│ │ ├── load_gigadb.m # GigaDb dataset loader (64ch, 512Hz)
│ │ ├── eeg_preprocess.m # Bandpass + Notch + CAR + Artifact rejection
│ │ ├── extract_features.m # V1 features (208 dims: PSD, Hjorth, Stats)
│ │ ├── extract_features_v2.m # V2 features (368 dims: + AR, Wavelet, Asymmetry)
│ │ └── remap_labels.m # 8-class → 4/3/5 class remapping
│ │
│ ├── models/
│ │ ├── build_eegnet.m # EEGNet architecture (Lawhern et al. 2018)
│ │ ├── train_eegnet.m # EEGNet training with stratified K-fold CV
│ │ └── train_classical.m # SVM / Random Forest / KNN with class balancing
│ │
│ └── evaluation/
│ └── evaluate_model.m # Metrics: Accuracy, F1, Kappa, confusion matrix
│
├── Simulation/
│ ├── simulationModel.slx # Simulink 3-DOF arm dynamics model
│ ├── ArduinoCollectionEEGSimulation.slx # Arduino EEG acquisition simulation
│ └── classNames.mat # 8-class label definitions
│
├── Utility Functions/
│ ├── audioPreprocess.m # Legacy YAMNet mel-spectrogram preprocessor
│ ├── audioPreprocessDiff.m # Legacy variant for raw feature extraction
│ └── statsOfMeasure.m # Confusion matrix statistics calculator
│
├── datasets/ # EEG datasets (git-ignored)
│ └── datasourceDatasets/
│ ├── MILimbEEG/ # 60 subjects, 16ch, 125Hz, 8 classes
│ └── GigaDb/ # 52 subjects, 64ch, 512Hz, L/R imagery
│
├── models/ # Saved trained models (git-ignored)
├── paper/ # Research manuscript
├── assets/ # Images and media
└── env/ # Python virtual environment

⚡ Pipeline

Quick Start

% Run the entire pipeline in MATLAB
>> main

The main.m script executes the full pipeline:

StepModuleDescription
1load_milimbeeg()Load MILimbEEG dataset (60 subjects, 8 classes, 16 channels)
2eeg_preprocess()Bandpass filter (0.5–40 Hz), 50 Hz notch, CAR, artifact rejection
3extract_features()Extract 208 EEG features (band power, Hjorth, PSD, stats)
4train_classical()Train SVM, Random Forest, KNN with class balancing
5train_eegnet()Train EEGNet CNN on raw preprocessed trials
6evaluate_model()Compare all models — accuracy, F1, Cohen's Kappa

Class Mapping (8 Classes)

ClassAbbreviationMotor Action
1BEOBoth Eyes Open (Baseline)
2CLHClose Left Hand
3CRHClose Right Hand
4DLFDorsiflex Left Foot
5PLFPlantarflex Left Foot
6DRFDorsiflex Right Foot
7PRFPlantarflex Right Foot
8RestResting State

For practical BCI control, labels can be remapped using remap_labels():

% Standard 4-class BCI paradigm
[newLabels, classes, idx] = remap_labels(labels, '4class');
% → LeftHand, RightHand, Feet, Rest

📊 Datasets

MILimbEEG

Asanza et al. (2023) — Upper and lower limb motor execution & imagery

PropertyValue
Subjects60 volunteers
Channels16 (10-10 system)
Sampling Rate125 Hz
Classes8 (motor execution + imagery)
Total Recordings8,680

GigaDb

Cho et al. (2017) — Left/Right hand motor imagery

PropertyValue
Subjects52
Channels64 EEG + 4 reference
Sampling Rate512 Hz
Classes2 (Left/Right hand imagery)
Trials per Class100 per subject

🚀 Getting Started

Prerequisites

  • MATLAB R2024b+ with the following toolboxes:
    • Signal Processing Toolbox
    • Deep Learning Toolbox
    • Statistics and Machine Learning Toolbox
    • Wavelet Toolbox
    • (Optional) Audio Toolbox (for legacy YAMNet pipeline)
    • (Optional) Simulink + Simscape (for simulation models)

Installation

# Clone the repository
git clone https://github.com/Creatrix-Net/Mind-Control-Bionic-Arm.git
cd Mind-Control-Bionic-Arm

Dataset Setup

  1. MILimbEEG — Download from IEEE DataPort and extract into:

    datasets/datasourceDatasets/MILimbEEG/data/
    
  2. GigaDb — Download from GigaScience Database and extract .mat files into:

    datasets/datasourceDatasets/GigaDb/data/
    

Run

% Open MATLAB and navigate to the project root
cd('path/to/Mind-Control-Bionic-Arm')
% Run the full pipelinemain

📈 Results & Performance

Model Comparison (MILimbEEG, 4-Class)

ModelAccuracyBalanced AccuracyMethod
SVM (RBF)25.49%25.45%V2 features (368 dims)
Random Forest26.70%26.64%V2 features (368 dims)
KNN (k=11)24.81%24.82%V2 features (368 dims)
EEGNet25.80%Raw EEG (16×500)

Model Comparison (GigaDb, 2-Class Left/Right)

ModelAccuracyNotes
EEGNetTraining in progress64ch, 512Hz, 8-30Hz bandpass

Note: Motor imagery EEG classification is an inherently challenging task. State-of-the-art BCI competition results typically report 60-80% on 2-class problems. Our pipeline establishes a rigorous baseline with proper stratified cross-validation, class balancing, and comprehensive evaluation metrics. Active research continues to improve accuracy through architecture tuning and cross-dataset transfer learning.

Evaluation Metrics

Every model is evaluated with:

  • Stratified K-Fold Cross-Validation (5 folds)
  • Balanced Accuracy (class-imbalance aware)
  • Per-class Precision, Recall, F1-Score
  • Cohen's Kappa (agreement beyond chance)
  • Confusion Matrix with row/column normalized summaries
  • Precision-Recall scatter with iso-F1 curves

🔧 Simulation

Two Simulink models bridge the gap between AI classification and hardware control:

ModelFileDescription
3-DOF Arm DynamicsSimulation/simulationModel.slxSimscape model of the bionic arm mechanics, servo actuation, and control response
Arduino EEG AcquisitionSimulation/ArduinoCollectionEEGSimulation.slxModels real-time EEG signal acquisition via Arduino analog input with FIR filtering

🏆 Awards & Recognition

AwardEventYear
🥈 2nd Prize (Poster Presentation)IIT Ropar — EE Research Day2024
📜 Conference Selection & Presentation5th International Conference on Intelligent Circuits and Systems (ICICS)2023
🚀 Hackathon SelectionSmart India Hackathon (SIH) — Internal Round2023
🎙️ Pitching CompetitionIEEE SA Telehealth Pitching Competition
🎓 Student Event FeatureIEEE SysCon Systems Council Student Event
📋 Patent FiledThrough Lovely Professional University

📄 Research & Publications

  • Protocol:"Mind Controlled Bionic Arm with Sense of Touch [8 class version]"DOI: 10.17504/protocols.io.n92ldr869g5b/v2

  • Conference Paper: Presented at the 5th International Conference on Intelligent Circuits and Systems (ICICS 2023), Lovely Professional University.

  • Journal Manuscript:"Mind Control Bionic Arm with Sense of Touch" — submitted to the Journal of The Institution of Engineers (India): Series B.

  • Blog:thecreativenet.in/products/mcba


👥 Team

Dhruva Shaw
Lead Researcher
Robotics & Automation
Founder, Creative Net
GitHub

Arittrabha Sengupta
Researcher
Bioinformatics &
Data Analytics

Jay B. Khaple
Co-Researcher
Electronics &
Communication Engg.

Bhavya Chowdhary
Co-Researcher
Contributor

Dr. G. Raam Dheep
Faculty Advisor
School of EEE
Lovely Professional University


📝 Citation

If you use this work in your research, please cite:

@misc{shaw2024mcba,
title = {Mind Controlled Bionic Arm with Sense of Touch},
author = {Shaw, Dhruva and Sengupta, Arittrabha and Khaple, Jay Baswaraj and Dheep, G. Raam},
year = {2024},
publisher = {protocols.io},
doi = {10.17504/protocols.io.n92ldr869g5b/v2},
url = {https://dx.doi.org/10.17504/protocols.io.n92ldr869g5b/v2}
}

📜 License

This project is maintained by Creative Net (Creatrix-Net) — a deep-tech robotics and automation initiative registered as an MSME on the Government of India's Udyam portal.

See the LICENSE file for details.


🧠 From thought to touch — making prosthetics intelligent.

⭐ Star this repo📖 Read the blog🔬 View protocol

About

Imagine a prosthetic arm that functions like your natural arm. You wear a headband, and with the thought process, the working signal from mind connects to the prosthetic about moving the arm, it responds accordingly—just like your real arm!“

Resources

Stars

0 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mind-Controlled Bionic Arm — Brain to Machine

🧠 Mind-Controlled Bionic Arm with Sense of Touch

Decoding thought into motion — a non-invasive EEG-driven bionic prosthetic with haptic feedback

StarsLicenseProtocolBlog

MATLABPythonEEGNetSimulinkArduino


📋 Table of Contents


🌟 Overview

The Mind-Controlled Bionic Arm with Sense of Touch (MCBA) is an innovative, non-invasive, and cost-effective bionic prosthetic limb designed to restore complex hand function for upper-limb amputees and individuals with partial paralysis.

The system decodes non-invasive EEG brain signals into PWM control commands that drive servo motors in a 3-DOF bionic hand. Integrated haptic feedback sensors in the gripper send tactile signals back to the user, enabling intuitive object manipulation and preventing accidental slippage or injury.

Key Innovation: We combine 8-class motor imagery EEG classification with real-time haptic feedback — bridging the gap between neural intent and physical action, all without surgical implants.


🎯 Core Pillars

🧠 Mind Control

Decodes 8 distinct motor imagery states from non-invasive EEG signals using EEGNet and classical ML for thought-driven prosthetic operation.

🤖 Haptic Feedback

Tactile, force, and proximity sensors in the gripper deliver real-time sensory signals back to the user for safe, intuitive object handling.

💰 Accessibility

Non-invasive and cost-effective design eliminates surgical procedures, optimizing comfort, affordability, and global accessibility.


🏗 System Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│ MIND-CONTROLLED BIONIC ARM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ EEG Headset │───▶│ Preprocessing │───▶│ ML / EEGNet │───▶│ PWM Ctrl │ │
│ │ (16ch/64ch) │ │ BP + Notch │ │ Classification│ │ Servos │ │
│ │ 125/512 Hz │ │ CAR + Z-norm │ │ 8 Classes │ │ 3-DOF │ │
│ └─────────────┘ └──────────────┘ └──────────────┘ └─────┬─────┘ │
│ │ │
│ ┌──────────────────────────────────┐ │ │
│ │ HAPTIC FEEDBACK LOOP │ │ │
│ │ IR + Ultrasonic + Tactile Sensors│◀─────┘ │
│ │ → Sensory signal to user │ │
│ └──────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Signal Processing Pipeline

Raw EEG ─▶ Bandpass (8-30 Hz) ─▶ 60 Hz Notch ─▶ CAR ─▶ Artifact Rejection
│
┌─────────────────────────────────────────┤
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Feature Extract│ │ Raw Trials │
│ Band Power │ │ [C × T × 1] │
│ Hjorth, AR │ └───────┬──────┘
│ Wavelet, Asym. │ │
└───────┬───────┘ │
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Classical ML │ │ EEGNet │
│ SVM / RF / KNN │ │ Temporal + │
│ (368 features) │ │ Spatial CNN │
└───────┬───────┘ └───────┬──────┘
└─────────────────┬──────────────────────┘
▼
┌──────────────┐
│ Evaluation │
│ Acc / F1 / │
│ Kappa / CM │
└──────────────┘

📁 Project Structure

Mind-Control-Bionic-Arm/
│
├── main.m # 🚀 Master pipeline — run this
├── ModelCreation_8Classes.m # 📜 Legacy YAMNet approach (reference only)
│
├── src/
│ ├── preprocessing/
│ │ ├── load_milimbeeg.m # MILimbEEG dataset loader (16ch, 125Hz)
│ │ ├── load_gigadb.m # GigaDb dataset loader (64ch, 512Hz)
│ │ ├── eeg_preprocess.m # Bandpass + Notch + CAR + Artifact rejection
│ │ ├── extract_features.m # V1 features (208 dims: PSD, Hjorth, Stats)
│ │ ├── extract_features_v2.m # V2 features (368 dims: + AR, Wavelet, Asymmetry)
│ │ └── remap_labels.m # 8-class → 4/3/5 class remapping
│ │
│ ├── models/
│ │ ├── build_eegnet.m # EEGNet architecture (Lawhern et al. 2018)
│ │ ├── train_eegnet.m # EEGNet training with stratified K-fold CV
│ │ └── train_classical.m # SVM / Random Forest / KNN with class balancing
│ │
│ └── evaluation/
│ └── evaluate_model.m # Metrics: Accuracy, F1, Kappa, confusion matrix
│
├── Simulation/
│ ├── simulationModel.slx # Simulink 3-DOF arm dynamics model
│ ├── ArduinoCollectionEEGSimulation.slx # Arduino EEG acquisition simulation
│ └── classNames.mat # 8-class label definitions
│
├── Utility Functions/
│ ├── audioPreprocess.m # Legacy YAMNet mel-spectrogram preprocessor
│ ├── audioPreprocessDiff.m # Legacy variant for raw feature extraction
│ └── statsOfMeasure.m # Confusion matrix statistics calculator
│
├── datasets/ # EEG datasets (git-ignored)
│ └── datasourceDatasets/
│ ├── MILimbEEG/ # 60 subjects, 16ch, 125Hz, 8 classes
│ └── GigaDb/ # 52 subjects, 64ch, 512Hz, L/R imagery
│
├── models/ # Saved trained models (git-ignored)
├── paper/ # Research manuscript
├── assets/ # Images and media
└── env/ # Python virtual environment

⚡ Pipeline

Quick Start

% Run the entire pipeline in MATLAB
>> main

The main.m script executes the full pipeline:

StepModuleDescription
1load_milimbeeg()Load MILimbEEG dataset (60 subjects, 8 classes, 16 channels)
2eeg_preprocess()Bandpass filter (0.5–40 Hz), 50 Hz notch, CAR, artifact rejection
3extract_features()Extract 208 EEG features (band power, Hjorth, PSD, stats)
4train_classical()Train SVM, Random Forest, KNN with class balancing
5train_eegnet()Train EEGNet CNN on raw preprocessed trials
6evaluate_model()Compare all models — accuracy, F1, Cohen's Kappa

Class Mapping (8 Classes)

ClassAbbreviationMotor Action
1BEOBoth Eyes Open (Baseline)
2CLHClose Left Hand
3CRHClose Right Hand
4DLFDorsiflex Left Foot
5PLFPlantarflex Left Foot
6DRFDorsiflex Right Foot
7PRFPlantarflex Right Foot
8RestResting State

For practical BCI control, labels can be remapped using remap_labels():

% Standard 4-class BCI paradigm
[newLabels, classes, idx] = remap_labels(labels, '4class');
% → LeftHand, RightHand, Feet, Rest

📊 Datasets

MILimbEEG

Asanza et al. (2023) — Upper and lower limb motor execution & imagery

PropertyValue
Subjects60 volunteers
Channels16 (10-10 system)
Sampling Rate125 Hz
Classes8 (motor execution + imagery)
Total Recordings8,680

GigaDb

Cho et al. (2017) — Left/Right hand motor imagery

PropertyValue
Subjects52
Channels64 EEG + 4 reference
Sampling Rate512 Hz
Classes2 (Left/Right hand imagery)
Trials per Class100 per subject

🚀 Getting Started

Prerequisites

  • MATLAB R2024b+ with the following toolboxes:
    • Signal Processing Toolbox
    • Deep Learning Toolbox
    • Statistics and Machine Learning Toolbox
    • Wavelet Toolbox
    • (Optional) Audio Toolbox (for legacy YAMNet pipeline)
    • (Optional) Simulink + Simscape (for simulation models)

Installation

# Clone the repository
git clone https://github.com/Creatrix-Net/Mind-Control-Bionic-Arm.git
cd Mind-Control-Bionic-Arm

Dataset Setup

  1. MILimbEEG — Download from IEEE DataPort and extract into:

    datasets/datasourceDatasets/MILimbEEG/data/
    
  2. GigaDb — Download from GigaScience Database and extract .mat files into:

    datasets/datasourceDatasets/GigaDb/data/
    

Run

% Open MATLAB and navigate to the project root
cd('path/to/Mind-Control-Bionic-Arm')
% Run the full pipelinemain

📈 Results & Performance

Model Comparison (MILimbEEG, 4-Class)

ModelAccuracyBalanced AccuracyMethod
SVM (RBF)25.49%25.45%V2 features (368 dims)
Random Forest26.70%26.64%V2 features (368 dims)
KNN (k=11)24.81%24.82%V2 features (368 dims)
EEGNet25.80%Raw EEG (16×500)

Model Comparison (GigaDb, 2-Class Left/Right)

ModelAccuracyNotes
EEGNetTraining in progress64ch, 512Hz, 8-30Hz bandpass

Note: Motor imagery EEG classification is an inherently challenging task. State-of-the-art BCI competition results typically report 60-80% on 2-class problems. Our pipeline establishes a rigorous baseline with proper stratified cross-validation, class balancing, and comprehensive evaluation metrics. Active research continues to improve accuracy through architecture tuning and cross-dataset transfer learning.

Evaluation Metrics

Every model is evaluated with:

  • Stratified K-Fold Cross-Validation (5 folds)
  • Balanced Accuracy (class-imbalance aware)
  • Per-class Precision, Recall, F1-Score
  • Cohen's Kappa (agreement beyond chance)
  • Confusion Matrix with row/column normalized summaries
  • Precision-Recall scatter with iso-F1 curves

🔧 Simulation

Two Simulink models bridge the gap between AI classification and hardware control:

ModelFileDescription
3-DOF Arm DynamicsSimulation/simulationModel.slxSimscape model of the bionic arm mechanics, servo actuation, and control response
Arduino EEG AcquisitionSimulation/ArduinoCollectionEEGSimulation.slxModels real-time EEG signal acquisition via Arduino analog input with FIR filtering

🏆 Awards & Recognition

AwardEventYear
🥈 2nd Prize (Poster Presentation)IIT Ropar — EE Research Day2024
📜 Conference Selection & Presentation5th International Conference on Intelligent Circuits and Systems (ICICS)2023
🚀 Hackathon SelectionSmart India Hackathon (SIH) — Internal Round2023
🎙️ Pitching CompetitionIEEE SA Telehealth Pitching Competition
🎓 Student Event FeatureIEEE SysCon Systems Council Student Event
📋 Patent FiledThrough Lovely Professional University

📄 Research & Publications

  • Protocol:"Mind Controlled Bionic Arm with Sense of Touch [8 class version]"DOI: 10.17504/protocols.io.n92ldr869g5b/v2

  • Conference Paper: Presented at the 5th International Conference on Intelligent Circuits and Systems (ICICS 2023), Lovely Professional University.

  • Journal Manuscript:"Mind Control Bionic Arm with Sense of Touch" — submitted to the Journal of The Institution of Engineers (India): Series B.

  • Blog:thecreativenet.in/products/mcba


👥 Team

Dhruva Shaw
Lead Researcher
Robotics & Automation
Founder, Creative Net
GitHub

Arittrabha Sengupta
Researcher
Bioinformatics &
Data Analytics

Jay B. Khaple
Co-Researcher
Electronics &
Communication Engg.

Bhavya Chowdhary
Co-Researcher
Contributor

Dr. G. Raam Dheep
Faculty Advisor
School of EEE
Lovely Professional University


📝 Citation

If you use this work in your research, please cite:

@misc{shaw2024mcba,
title = {Mind Controlled Bionic Arm with Sense of Touch},
author = {Shaw, Dhruva and Sengupta, Arittrabha and Khaple, Jay Baswaraj and Dheep, G. Raam},
year = {2024},
publisher = {protocols.io},
doi = {10.17504/protocols.io.n92ldr869g5b/v2},
url = {https://dx.doi.org/10.17504/protocols.io.n92ldr869g5b/v2}
}

📜 License

This project is maintained by Creative Net (Creatrix-Net) — a deep-tech robotics and automation initiative registered as an MSME on the Government of India's Udyam portal.

See the LICENSE file for details.


🧠 From thought to touch — making prosthetics intelligent.

⭐ Star this repo📖 Read the blog🔬 View protocol

About

Imagine a prosthetic arm that functions like your natural arm. You wear a headband, and with the thought process, the working signal from mind connects to the prosthetic about moving the arm, it responds accordingly—just like your real arm!“

Resources

Stars

0 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Mind-Controlled Bionic Arm — Brain to Machine

🧠 Mind-Controlled Bionic Arm with Sense of Touch

Decoding thought into motion — a non-invasive EEG-driven bionic prosthetic with haptic feedback

StarsLicenseProtocolBlog

MATLABPythonEEGNetSimulinkArduino


📋 Table of Contents


🌟 Overview

The Mind-Controlled Bionic Arm with Sense of Touch (MCBA) is an innovative, non-invasive, and cost-effective bionic prosthetic limb designed to restore complex hand function for upper-limb amputees and individuals with partial paralysis.

The system decodes non-invasive EEG brain signals into PWM control commands that drive servo motors in a 3-DOF bionic hand. Integrated haptic feedback sensors in the gripper send tactile signals back to the user, enabling intuitive object manipulation and preventing accidental slippage or injury.

Key Innovation: We combine 8-class motor imagery EEG classification with real-time haptic feedback — bridging the gap between neural intent and physical action, all without surgical implants.


🎯 Core Pillars

🧠 Mind Control

Decodes 8 distinct motor imagery states from non-invasive EEG signals using EEGNet and classical ML for thought-driven prosthetic operation.

🤖 Haptic Feedback

Tactile, force, and proximity sensors in the gripper deliver real-time sensory signals back to the user for safe, intuitive object handling.

💰 Accessibility

Non-invasive and cost-effective design eliminates surgical procedures, optimizing comfort, affordability, and global accessibility.


🏗 System Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│ MIND-CONTROLLED BIONIC ARM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ EEG Headset │───▶│ Preprocessing │───▶│ ML / EEGNet │───▶│ PWM Ctrl │ │
│ │ (16ch/64ch) │ │ BP + Notch │ │ Classification│ │ Servos │ │
│ │ 125/512 Hz │ │ CAR + Z-norm │ │ 8 Classes │ │ 3-DOF │ │
│ └─────────────┘ └──────────────┘ └──────────────┘ └─────┬─────┘ │
│ │ │
│ ┌──────────────────────────────────┐ │ │
│ │ HAPTIC FEEDBACK LOOP │ │ │
│ │ IR + Ultrasonic + Tactile Sensors│◀─────┘ │
│ │ → Sensory signal to user │ │
│ └──────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Signal Processing Pipeline

Raw EEG ─▶ Bandpass (8-30 Hz) ─▶ 60 Hz Notch ─▶ CAR ─▶ Artifact Rejection
│
┌─────────────────────────────────────────┤
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Feature Extract│ │ Raw Trials │
│ Band Power │ │ [C × T × 1] │
│ Hjorth, AR │ └───────┬──────┘
│ Wavelet, Asym. │ │
└───────┬───────┘ │
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Classical ML │ │ EEGNet │
│ SVM / RF / KNN │ │ Temporal + │
│ (368 features) │ │ Spatial CNN │
└───────┬───────┘ └───────┬──────┘
└─────────────────┬──────────────────────┘
▼
┌──────────────┐
│ Evaluation │
│ Acc / F1 / │
│ Kappa / CM │
└──────────────┘

📁 Project Structure

Mind-Control-Bionic-Arm/
│
├── main.m # 🚀 Master pipeline — run this
├── ModelCreation_8Classes.m # 📜 Legacy YAMNet approach (reference only)
│
├── src/
│ ├── preprocessing/
│ │ ├── load_milimbeeg.m # MILimbEEG dataset loader (16ch, 125Hz)
│ │ ├── load_gigadb.m # GigaDb dataset loader (64ch, 512Hz)
│ │ ├── eeg_preprocess.m # Bandpass + Notch + CAR + Artifact rejection
│ │ ├── extract_features.m # V1 features (208 dims: PSD, Hjorth, Stats)
│ │ ├── extract_features_v2.m # V2 features (368 dims: + AR, Wavelet, Asymmetry)
│ │ └── remap_labels.m # 8-class → 4/3/5 class remapping
│ │
│ ├── models/
│ │ ├── build_eegnet.m # EEGNet architecture (Lawhern et al. 2018)
│ │ ├── train_eegnet.m # EEGNet training with stratified K-fold CV
│ │ └── train_classical.m # SVM / Random Forest / KNN with class balancing
│ │
│ └── evaluation/
│ └── evaluate_model.m # Metrics: Accuracy, F1, Kappa, confusion matrix
│
├── Simulation/
│ ├── simulationModel.slx # Simulink 3-DOF arm dynamics model
│ ├── ArduinoCollectionEEGSimulation.slx # Arduino EEG acquisition simulation
│ └── classNames.mat # 8-class label definitions
│
├── Utility Functions/
│ ├── audioPreprocess.m # Legacy YAMNet mel-spectrogram preprocessor
│ ├── audioPreprocessDiff.m # Legacy variant for raw feature extraction
│ └── statsOfMeasure.m # Confusion matrix statistics calculator
│
├── datasets/ # EEG datasets (git-ignored)
│ └── datasourceDatasets/
│ ├── MILimbEEG/ # 60 subjects, 16ch, 125Hz, 8 classes
│ └── GigaDb/ # 52 subjects, 64ch, 512Hz, L/R imagery
│
├── models/ # Saved trained models (git-ignored)
├── paper/ # Research manuscript
├── assets/ # Images and media
└── env/ # Python virtual environment

⚡ Pipeline

Quick Start

% Run the entire pipeline in MATLAB
>> main

The main.m script executes the full pipeline:

StepModuleDescription
1load_milimbeeg()Load MILimbEEG dataset (60 subjects, 8 classes, 16 channels)
2eeg_preprocess()Bandpass filter (0.5–40 Hz), 50 Hz notch, CAR, artifact rejection
3extract_features()Extract 208 EEG features (band power, Hjorth, PSD, stats)
4train_classical()Train SVM, Random Forest, KNN with class balancing
5train_eegnet()Train EEGNet CNN on raw preprocessed trials
6evaluate_model()Compare all models — accuracy, F1, Cohen's Kappa

Class Mapping (8 Classes)

ClassAbbreviationMotor Action
1BEOBoth Eyes Open (Baseline)
2CLHClose Left Hand
3CRHClose Right Hand
4DLFDorsiflex Left Foot
5PLFPlantarflex Left Foot
6DRFDorsiflex Right Foot
7PRFPlantarflex Right Foot
8RestResting State

For practical BCI control, labels can be remapped using remap_labels():

% Standard 4-class BCI paradigm
[newLabels, classes, idx] = remap_labels(labels, '4class');
% → LeftHand, RightHand, Feet, Rest

📊 Datasets

MILimbEEG

Asanza et al. (2023) — Upper and lower limb motor execution & imagery

PropertyValue
Subjects60 volunteers
Channels16 (10-10 system)
Sampling Rate125 Hz
Classes8 (motor execution + imagery)
Total Recordings8,680

GigaDb

Cho et al. (2017) — Left/Right hand motor imagery

PropertyValue
Subjects52
Channels64 EEG + 4 reference
Sampling Rate512 Hz
Classes2 (Left/Right hand imagery)
Trials per Class100 per subject

🚀 Getting Started

Prerequisites

  • MATLAB R2024b+ with the following toolboxes:
    • Signal Processing Toolbox
    • Deep Learning Toolbox
    • Statistics and Machine Learning Toolbox
    • Wavelet Toolbox
    • (Optional) Audio Toolbox (for legacy YAMNet pipeline)
    • (Optional) Simulink + Simscape (for simulation models)

Installation

# Clone the repository
git clone https://github.com/Creatrix-Net/Mind-Control-Bionic-Arm.git
cd Mind-Control-Bionic-Arm

Dataset Setup

  1. MILimbEEG — Download from IEEE DataPort and extract into:

    datasets/datasourceDatasets/MILimbEEG/data/
    
  2. GigaDb — Download from GigaScience Database and extract .mat files into:

    datasets/datasourceDatasets/GigaDb/data/
    

Run

% Open MATLAB and navigate to the project root
cd('path/to/Mind-Control-Bionic-Arm')
% Run the full pipelinemain

📈 Results & Performance

Model Comparison (MILimbEEG, 4-Class)

ModelAccuracyBalanced AccuracyMethod
SVM (RBF)25.49%25.45%V2 features (368 dims)
Random Forest26.70%26.64%V2 features (368 dims)
KNN (k=11)24.81%24.82%V2 features (368 dims)
EEGNet25.80%Raw EEG (16×500)

Model Comparison (GigaDb, 2-Class Left/Right)

ModelAccuracyNotes
EEGNetTraining in progress64ch, 512Hz, 8-30Hz bandpass

Note: Motor imagery EEG classification is an inherently challenging task. State-of-the-art BCI competition results typically report 60-80% on 2-class problems. Our pipeline establishes a rigorous baseline with proper stratified cross-validation, class balancing, and comprehensive evaluation metrics. Active research continues to improve accuracy through architecture tuning and cross-dataset transfer learning.

Evaluation Metrics

Every model is evaluated with:

  • Stratified K-Fold Cross-Validation (5 folds)
  • Balanced Accuracy (class-imbalance aware)
  • Per-class Precision, Recall, F1-Score
  • Cohen's Kappa (agreement beyond chance)
  • Confusion Matrix with row/column normalized summaries
  • Precision-Recall scatter with iso-F1 curves

🔧 Simulation

Two Simulink models bridge the gap between AI classification and hardware control:

ModelFileDescription
3-DOF Arm DynamicsSimulation/simulationModel.slxSimscape model of the bionic arm mechanics, servo actuation, and control response
Arduino EEG AcquisitionSimulation/ArduinoCollectionEEGSimulation.slxModels real-time EEG signal acquisition via Arduino analog input with FIR filtering

🏆 Awards & Recognition

AwardEventYear
🥈 2nd Prize (Poster Presentation)IIT Ropar — EE Research Day2024
📜 Conference Selection & Presentation5th International Conference on Intelligent Circuits and Systems (ICICS)2023
🚀 Hackathon SelectionSmart India Hackathon (SIH) — Internal Round2023
🎙️ Pitching CompetitionIEEE SA Telehealth Pitching Competition
🎓 Student Event FeatureIEEE SysCon Systems Council Student Event
📋 Patent FiledThrough Lovely Professional University

📄 Research & Publications

  • Protocol:"Mind Controlled Bionic Arm with Sense of Touch [8 class version]"DOI: 10.17504/protocols.io.n92ldr869g5b/v2

  • Conference Paper: Presented at the 5th International Conference on Intelligent Circuits and Systems (ICICS 2023), Lovely Professional University.

  • Journal Manuscript:"Mind Control Bionic Arm with Sense of Touch" — submitted to the Journal of The Institution of Engineers (India): Series B.

  • Blog:thecreativenet.in/products/mcba


👥 Team

Dhruva Shaw
Lead Researcher
Robotics & Automation
Founder, Creative Net
GitHub

Arittrabha Sengupta
Researcher
Bioinformatics &
Data Analytics

Jay B. Khaple
Co-Researcher
Electronics &
Communication Engg.

Bhavya Chowdhary
Co-Researcher
Contributor

Dr. G. Raam Dheep
Faculty Advisor
School of EEE
Lovely Professional University


📝 Citation

If you use this work in your research, please cite:

@misc{shaw2024mcba,
title = {Mind Controlled Bionic Arm with Sense of Touch},
author = {Shaw, Dhruva and Sengupta, Arittrabha and Khaple, Jay Baswaraj and Dheep, G. Raam},
year = {2024},
publisher = {protocols.io},
doi = {10.17504/protocols.io.n92ldr869g5b/v2},
url = {https://dx.doi.org/10.17504/protocols.io.n92ldr869g5b/v2}
}

📜 License

This project is maintained by Creative Net (Creatrix-Net) — a deep-tech robotics and automation initiative registered as an MSME on the Government of India's Udyam portal.

See the LICENSE file for details.


🧠 From thought to touch — making prosthetics intelligent.

⭐ Star this repo📖 Read the blog🔬 View protocol

About

Imagine a prosthetic arm that functions like your natural arm. You wear a headband, and with the thought process, the working signal from mind connects to the prosthetic about moving the arm, it responds accordingly—just like your real arm!“

Resources

Stars

0 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mind-Controlled Bionic Arm — Brain to Machine

🧠 Mind-Controlled Bionic Arm with Sense of Touch

Decoding thought into motion — a non-invasive EEG-driven bionic prosthetic with haptic feedback

StarsLicenseProtocolBlog

MATLABPythonEEGNetSimulinkArduino


📋 Table of Contents


🌟 Overview

The Mind-Controlled Bionic Arm with Sense of Touch (MCBA) is an innovative, non-invasive, and cost-effective bionic prosthetic limb designed to restore complex hand function for upper-limb amputees and individuals with partial paralysis.

The system decodes non-invasive EEG brain signals into PWM control commands that drive servo motors in a 3-DOF bionic hand. Integrated haptic feedback sensors in the gripper send tactile signals back to the user, enabling intuitive object manipulation and preventing accidental slippage or injury.

Key Innovation: We combine 8-class motor imagery EEG classification with real-time haptic feedback — bridging the gap between neural intent and physical action, all without surgical implants.


🎯 Core Pillars

🧠 Mind Control

Decodes 8 distinct motor imagery states from non-invasive EEG signals using EEGNet and classical ML for thought-driven prosthetic operation.

🤖 Haptic Feedback

Tactile, force, and proximity sensors in the gripper deliver real-time sensory signals back to the user for safe, intuitive object handling.

💰 Accessibility

Non-invasive and cost-effective design eliminates surgical procedures, optimizing comfort, affordability, and global accessibility.


🏗 System Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│ MIND-CONTROLLED BIONIC ARM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ EEG Headset │───▶│ Preprocessing │───▶│ ML / EEGNet │───▶│ PWM Ctrl │ │
│ │ (16ch/64ch) │ │ BP + Notch │ │ Classification│ │ Servos │ │
│ │ 125/512 Hz │ │ CAR + Z-norm │ │ 8 Classes │ │ 3-DOF │ │
│ └─────────────┘ └──────────────┘ └──────────────┘ └─────┬─────┘ │
│ │ │
│ ┌──────────────────────────────────┐ │ │
│ │ HAPTIC FEEDBACK LOOP │ │ │
│ │ IR + Ultrasonic + Tactile Sensors│◀─────┘ │
│ │ → Sensory signal to user │ │
│ └──────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Signal Processing Pipeline

Raw EEG ─▶ Bandpass (8-30 Hz) ─▶ 60 Hz Notch ─▶ CAR ─▶ Artifact Rejection
│
┌─────────────────────────────────────────┤
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Feature Extract│ │ Raw Trials │
│ Band Power │ │ [C × T × 1] │
│ Hjorth, AR │ └───────┬──────┘
│ Wavelet, Asym. │ │
└───────┬───────┘ │
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Classical ML │ │ EEGNet │
│ SVM / RF / KNN │ │ Temporal + │
│ (368 features) │ │ Spatial CNN │
└───────┬───────┘ └───────┬──────┘
└─────────────────┬──────────────────────┘
▼
┌──────────────┐
│ Evaluation │
│ Acc / F1 / │
│ Kappa / CM │
└──────────────┘

📁 Project Structure

Mind-Control-Bionic-Arm/
│
├── main.m # 🚀 Master pipeline — run this
├── ModelCreation_8Classes.m # 📜 Legacy YAMNet approach (reference only)
│
├── src/
│ ├── preprocessing/
│ │ ├── load_milimbeeg.m # MILimbEEG dataset loader (16ch, 125Hz)
│ │ ├── load_gigadb.m # GigaDb dataset loader (64ch, 512Hz)
│ │ ├── eeg_preprocess.m # Bandpass + Notch + CAR + Artifact rejection
│ │ ├── extract_features.m # V1 features (208 dims: PSD, Hjorth, Stats)
│ │ ├── extract_features_v2.m # V2 features (368 dims: + AR, Wavelet, Asymmetry)
│ │ └── remap_labels.m # 8-class → 4/3/5 class remapping
│ │
│ ├── models/
│ │ ├── build_eegnet.m # EEGNet architecture (Lawhern et al. 2018)
│ │ ├── train_eegnet.m # EEGNet training with stratified K-fold CV
│ │ └── train_classical.m # SVM / Random Forest / KNN with class balancing
│ │
│ └── evaluation/
│ └── evaluate_model.m # Metrics: Accuracy, F1, Kappa, confusion matrix
│
├── Simulation/
│ ├── simulationModel.slx # Simulink 3-DOF arm dynamics model
│ ├── ArduinoCollectionEEGSimulation.slx # Arduino EEG acquisition simulation
│ └── classNames.mat # 8-class label definitions
│
├── Utility Functions/
│ ├── audioPreprocess.m # Legacy YAMNet mel-spectrogram preprocessor
│ ├── audioPreprocessDiff.m # Legacy variant for raw feature extraction
│ └── statsOfMeasure.m # Confusion matrix statistics calculator
│
├── datasets/ # EEG datasets (git-ignored)
│ └── datasourceDatasets/
│ ├── MILimbEEG/ # 60 subjects, 16ch, 125Hz, 8 classes
│ └── GigaDb/ # 52 subjects, 64ch, 512Hz, L/R imagery
│
├── models/ # Saved trained models (git-ignored)
├── paper/ # Research manuscript
├── assets/ # Images and media
└── env/ # Python virtual environment

⚡ Pipeline

Quick Start

% Run the entire pipeline in MATLAB
>> main

The main.m script executes the full pipeline:

StepModuleDescription
1load_milimbeeg()Load MILimbEEG dataset (60 subjects, 8 classes, 16 channels)
2eeg_preprocess()Bandpass filter (0.5–40 Hz), 50 Hz notch, CAR, artifact rejection
3extract_features()Extract 208 EEG features (band power, Hjorth, PSD, stats)
4train_classical()Train SVM, Random Forest, KNN with class balancing
5train_eegnet()Train EEGNet CNN on raw preprocessed trials
6evaluate_model()Compare all models — accuracy, F1, Cohen's Kappa

Class Mapping (8 Classes)

ClassAbbreviationMotor Action
1BEOBoth Eyes Open (Baseline)
2CLHClose Left Hand
3CRHClose Right Hand
4DLFDorsiflex Left Foot
5PLFPlantarflex Left Foot
6DRFDorsiflex Right Foot
7PRFPlantarflex Right Foot
8RestResting State

For practical BCI control, labels can be remapped using remap_labels():

% Standard 4-class BCI paradigm
[newLabels, classes, idx] = remap_labels(labels, '4class');
% → LeftHand, RightHand, Feet, Rest

📊 Datasets

MILimbEEG

Asanza et al. (2023) — Upper and lower limb motor execution & imagery

PropertyValue
Subjects60 volunteers
Channels16 (10-10 system)
Sampling Rate125 Hz
Classes8 (motor execution + imagery)
Total Recordings8,680

GigaDb

Cho et al. (2017) — Left/Right hand motor imagery

PropertyValue
Subjects52
Channels64 EEG + 4 reference
Sampling Rate512 Hz
Classes2 (Left/Right hand imagery)
Trials per Class100 per subject

🚀 Getting Started

Prerequisites

  • MATLAB R2024b+ with the following toolboxes:
    • Signal Processing Toolbox
    • Deep Learning Toolbox
    • Statistics and Machine Learning Toolbox
    • Wavelet Toolbox
    • (Optional) Audio Toolbox (for legacy YAMNet pipeline)
    • (Optional) Simulink + Simscape (for simulation models)

Installation

# Clone the repository
git clone https://github.com/Creatrix-Net/Mind-Control-Bionic-Arm.git
cd Mind-Control-Bionic-Arm

Dataset Setup

  1. MILimbEEG — Download from IEEE DataPort and extract into:

    datasets/datasourceDatasets/MILimbEEG/data/
    
  2. GigaDb — Download from GigaScience Database and extract .mat files into:

    datasets/datasourceDatasets/GigaDb/data/
    

Run

% Open MATLAB and navigate to the project root
cd('path/to/Mind-Control-Bionic-Arm')
% Run the full pipelinemain

📈 Results & Performance

Model Comparison (MILimbEEG, 4-Class)

ModelAccuracyBalanced AccuracyMethod
SVM (RBF)25.49%25.45%V2 features (368 dims)
Random Forest26.70%26.64%V2 features (368 dims)
KNN (k=11)24.81%24.82%V2 features (368 dims)
EEGNet25.80%Raw EEG (16×500)

Model Comparison (GigaDb, 2-Class Left/Right)

ModelAccuracyNotes
EEGNetTraining in progress64ch, 512Hz, 8-30Hz bandpass

Note: Motor imagery EEG classification is an inherently challenging task. State-of-the-art BCI competition results typically report 60-80% on 2-class problems. Our pipeline establishes a rigorous baseline with proper stratified cross-validation, class balancing, and comprehensive evaluation metrics. Active research continues to improve accuracy through architecture tuning and cross-dataset transfer learning.

Evaluation Metrics

Every model is evaluated with:

  • Stratified K-Fold Cross-Validation (5 folds)
  • Balanced Accuracy (class-imbalance aware)
  • Per-class Precision, Recall, F1-Score
  • Cohen's Kappa (agreement beyond chance)
  • Confusion Matrix with row/column normalized summaries
  • Precision-Recall scatter with iso-F1 curves

🔧 Simulation

Two Simulink models bridge the gap between AI classification and hardware control:

ModelFileDescription
3-DOF Arm DynamicsSimulation/simulationModel.slxSimscape model of the bionic arm mechanics, servo actuation, and control response
Arduino EEG AcquisitionSimulation/ArduinoCollectionEEGSimulation.slxModels real-time EEG signal acquisition via Arduino analog input with FIR filtering

🏆 Awards & Recognition

AwardEventYear
🥈 2nd Prize (Poster Presentation)IIT Ropar — EE Research Day2024
📜 Conference Selection & Presentation5th International Conference on Intelligent Circuits and Systems (ICICS)2023
🚀 Hackathon SelectionSmart India Hackathon (SIH) — Internal Round2023
🎙️ Pitching CompetitionIEEE SA Telehealth Pitching Competition
🎓 Student Event FeatureIEEE SysCon Systems Council Student Event
📋 Patent FiledThrough Lovely Professional University

📄 Research & Publications

  • Protocol:"Mind Controlled Bionic Arm with Sense of Touch [8 class version]"DOI: 10.17504/protocols.io.n92ldr869g5b/v2

  • Conference Paper: Presented at the 5th International Conference on Intelligent Circuits and Systems (ICICS 2023), Lovely Professional University.

  • Journal Manuscript:"Mind Control Bionic Arm with Sense of Touch" — submitted to the Journal of The Institution of Engineers (India): Series B.

  • Blog:thecreativenet.in/products/mcba


👥 Team

Dhruva Shaw
Lead Researcher
Robotics & Automation
Founder, Creative Net
GitHub

Arittrabha Sengupta
Researcher
Bioinformatics &
Data Analytics

Jay B. Khaple
Co-Researcher
Electronics &
Communication Engg.

Bhavya Chowdhary
Co-Researcher
Contributor

Dr. G. Raam Dheep
Faculty Advisor
School of EEE
Lovely Professional University


📝 Citation

If you use this work in your research, please cite:

@misc{shaw2024mcba,
title = {Mind Controlled Bionic Arm with Sense of Touch},
author = {Shaw, Dhruva and Sengupta, Arittrabha and Khaple, Jay Baswaraj and Dheep, G. Raam},
year = {2024},
publisher = {protocols.io},
doi = {10.17504/protocols.io.n92ldr869g5b/v2},
url = {https://dx.doi.org/10.17504/protocols.io.n92ldr869g5b/v2}
}

📜 License

This project is maintained by Creative Net (Creatrix-Net) — a deep-tech robotics and automation initiative registered as an MSME on the Government of India's Udyam portal.

See the LICENSE file for details.


🧠 From thought to touch — making prosthetics intelligent.

⭐ Star this repo📖 Read the blog🔬 View protocol

About

Imagine a prosthetic arm that functions like your natural arm. You wear a headband, and with the thought process, the working signal from mind connects to the prosthetic about moving the arm, it responds accordingly—just like your real arm!“

Resources

Stars

0 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Mind-Controlled Bionic Arm — Brain to Machine

🧠 Mind-Controlled Bionic Arm with Sense of Touch

Decoding thought into motion — a non-invasive EEG-driven bionic prosthetic with haptic feedback

StarsLicenseProtocolBlog

MATLABPythonEEGNetSimulinkArduino


📋 Table of Contents


🌟 Overview

The Mind-Controlled Bionic Arm with Sense of Touch (MCBA) is an innovative, non-invasive, and cost-effective bionic prosthetic limb designed to restore complex hand function for upper-limb amputees and individuals with partial paralysis.

The system decodes non-invasive EEG brain signals into PWM control commands that drive servo motors in a 3-DOF bionic hand. Integrated haptic feedback sensors in the gripper send tactile signals back to the user, enabling intuitive object manipulation and preventing accidental slippage or injury.

Key Innovation: We combine 8-class motor imagery EEG classification with real-time haptic feedback — bridging the gap between neural intent and physical action, all without surgical implants.


🎯 Core Pillars

🧠 Mind Control

Decodes 8 distinct motor imagery states from non-invasive EEG signals using EEGNet and classical ML for thought-driven prosthetic operation.

🤖 Haptic Feedback

Tactile, force, and proximity sensors in the gripper deliver real-time sensory signals back to the user for safe, intuitive object handling.

💰 Accessibility

Non-invasive and cost-effective design eliminates surgical procedures, optimizing comfort, affordability, and global accessibility.


🏗 System Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│ MIND-CONTROLLED BIONIC ARM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ EEG Headset │───▶│ Preprocessing │───▶│ ML / EEGNet │───▶│ PWM Ctrl │ │
│ │ (16ch/64ch) │ │ BP + Notch │ │ Classification│ │ Servos │ │
│ │ 125/512 Hz │ │ CAR + Z-norm │ │ 8 Classes │ │ 3-DOF │ │
│ └─────────────┘ └──────────────┘ └──────────────┘ └─────┬─────┘ │
│ │ │
│ ┌──────────────────────────────────┐ │ │
│ │ HAPTIC FEEDBACK LOOP │ │ │
│ │ IR + Ultrasonic + Tactile Sensors│◀─────┘ │
│ │ → Sensory signal to user │ │
│ └──────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Signal Processing Pipeline

Raw EEG ─▶ Bandpass (8-30 Hz) ─▶ 60 Hz Notch ─▶ CAR ─▶ Artifact Rejection
│
┌─────────────────────────────────────────┤
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Feature Extract│ │ Raw Trials │
│ Band Power │ │ [C × T × 1] │
│ Hjorth, AR │ └───────┬──────┘
│ Wavelet, Asym. │ │
└───────┬───────┘ │
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Classical ML │ │ EEGNet │
│ SVM / RF / KNN │ │ Temporal + │
│ (368 features) │ │ Spatial CNN │
└───────┬───────┘ └───────┬──────┘
└─────────────────┬──────────────────────┘
▼
┌──────────────┐
│ Evaluation │
│ Acc / F1 / │
│ Kappa / CM │
└──────────────┘

📁 Project Structure

Mind-Control-Bionic-Arm/
│
├── main.m # 🚀 Master pipeline — run this
├── ModelCreation_8Classes.m # 📜 Legacy YAMNet approach (reference only)
│
├── src/
│ ├── preprocessing/
│ │ ├── load_milimbeeg.m # MILimbEEG dataset loader (16ch, 125Hz)
│ │ ├── load_gigadb.m # GigaDb dataset loader (64ch, 512Hz)
│ │ ├── eeg_preprocess.m # Bandpass + Notch + CAR + Artifact rejection
│ │ ├── extract_features.m # V1 features (208 dims: PSD, Hjorth, Stats)
│ │ ├── extract_features_v2.m # V2 features (368 dims: + AR, Wavelet, Asymmetry)
│ │ └── remap_labels.m # 8-class → 4/3/5 class remapping
│ │
│ ├── models/
│ │ ├── build_eegnet.m # EEGNet architecture (Lawhern et al. 2018)
│ │ ├── train_eegnet.m # EEGNet training with stratified K-fold CV
│ │ └── train_classical.m # SVM / Random Forest / KNN with class balancing
│ │
│ └── evaluation/
│ └── evaluate_model.m # Metrics: Accuracy, F1, Kappa, confusion matrix
│
├── Simulation/
│ ├── simulationModel.slx # Simulink 3-DOF arm dynamics model
│ ├── ArduinoCollectionEEGSimulation.slx # Arduino EEG acquisition simulation
│ └── classNames.mat # 8-class label definitions
│
├── Utility Functions/
│ ├── audioPreprocess.m # Legacy YAMNet mel-spectrogram preprocessor
│ ├── audioPreprocessDiff.m # Legacy variant for raw feature extraction
│ └── statsOfMeasure.m # Confusion matrix statistics calculator
│
├── datasets/ # EEG datasets (git-ignored)
│ └── datasourceDatasets/
│ ├── MILimbEEG/ # 60 subjects, 16ch, 125Hz, 8 classes
│ └── GigaDb/ # 52 subjects, 64ch, 512Hz, L/R imagery
│
├── models/ # Saved trained models (git-ignored)
├── paper/ # Research manuscript
├── assets/ # Images and media
└── env/ # Python virtual environment

⚡ Pipeline

Quick Start

% Run the entire pipeline in MATLAB
>> main

The main.m script executes the full pipeline:

StepModuleDescription
1load_milimbeeg()Load MILimbEEG dataset (60 subjects, 8 classes, 16 channels)
2eeg_preprocess()Bandpass filter (0.5–40 Hz), 50 Hz notch, CAR, artifact rejection
3extract_features()Extract 208 EEG features (band power, Hjorth, PSD, stats)
4train_classical()Train SVM, Random Forest, KNN with class balancing
5train_eegnet()Train EEGNet CNN on raw preprocessed trials
6evaluate_model()Compare all models — accuracy, F1, Cohen's Kappa

Class Mapping (8 Classes)

ClassAbbreviationMotor Action
1BEOBoth Eyes Open (Baseline)
2CLHClose Left Hand
3CRHClose Right Hand
4DLFDorsiflex Left Foot
5PLFPlantarflex Left Foot
6DRFDorsiflex Right Foot
7PRFPlantarflex Right Foot
8RestResting State

For practical BCI control, labels can be remapped using remap_labels():

% Standard 4-class BCI paradigm
[newLabels, classes, idx] = remap_labels(labels, '4class');
% → LeftHand, RightHand, Feet, Rest

📊 Datasets

MILimbEEG

Asanza et al. (2023) — Upper and lower limb motor execution & imagery

PropertyValue
Subjects60 volunteers
Channels16 (10-10 system)
Sampling Rate125 Hz
Classes8 (motor execution + imagery)
Total Recordings8,680

GigaDb

Cho et al. (2017) — Left/Right hand motor imagery

PropertyValue
Subjects52
Channels64 EEG + 4 reference
Sampling Rate512 Hz
Classes2 (Left/Right hand imagery)
Trials per Class100 per subject

🚀 Getting Started

Prerequisites

  • MATLAB R2024b+ with the following toolboxes:
    • Signal Processing Toolbox
    • Deep Learning Toolbox
    • Statistics and Machine Learning Toolbox
    • Wavelet Toolbox
    • (Optional) Audio Toolbox (for legacy YAMNet pipeline)
    • (Optional) Simulink + Simscape (for simulation models)

Installation

# Clone the repository
git clone https://github.com/Creatrix-Net/Mind-Control-Bionic-Arm.git
cd Mind-Control-Bionic-Arm

Dataset Setup

  1. MILimbEEG — Download from IEEE DataPort and extract into:

    datasets/datasourceDatasets/MILimbEEG/data/
    
  2. GigaDb — Download from GigaScience Database and extract .mat files into:

    datasets/datasourceDatasets/GigaDb/data/
    

Run

% Open MATLAB and navigate to the project root
cd('path/to/Mind-Control-Bionic-Arm')
% Run the full pipelinemain

📈 Results & Performance

Model Comparison (MILimbEEG, 4-Class)

ModelAccuracyBalanced AccuracyMethod
SVM (RBF)25.49%25.45%V2 features (368 dims)
Random Forest26.70%26.64%V2 features (368 dims)
KNN (k=11)24.81%24.82%V2 features (368 dims)
EEGNet25.80%Raw EEG (16×500)

Model Comparison (GigaDb, 2-Class Left/Right)

ModelAccuracyNotes
EEGNetTraining in progress64ch, 512Hz, 8-30Hz bandpass

Note: Motor imagery EEG classification is an inherently challenging task. State-of-the-art BCI competition results typically report 60-80% on 2-class problems. Our pipeline establishes a rigorous baseline with proper stratified cross-validation, class balancing, and comprehensive evaluation metrics. Active research continues to improve accuracy through architecture tuning and cross-dataset transfer learning.

Evaluation Metrics

Every model is evaluated with:

  • Stratified K-Fold Cross-Validation (5 folds)
  • Balanced Accuracy (class-imbalance aware)
  • Per-class Precision, Recall, F1-Score
  • Cohen's Kappa (agreement beyond chance)
  • Confusion Matrix with row/column normalized summaries
  • Precision-Recall scatter with iso-F1 curves

🔧 Simulation

Two Simulink models bridge the gap between AI classification and hardware control:

ModelFileDescription
3-DOF Arm DynamicsSimulation/simulationModel.slxSimscape model of the bionic arm mechanics, servo actuation, and control response
Arduino EEG AcquisitionSimulation/ArduinoCollectionEEGSimulation.slxModels real-time EEG signal acquisition via Arduino analog input with FIR filtering

🏆 Awards & Recognition

AwardEventYear
🥈 2nd Prize (Poster Presentation)IIT Ropar — EE Research Day2024
📜 Conference Selection & Presentation5th International Conference on Intelligent Circuits and Systems (ICICS)2023
🚀 Hackathon SelectionSmart India Hackathon (SIH) — Internal Round2023
🎙️ Pitching CompetitionIEEE SA Telehealth Pitching Competition
🎓 Student Event FeatureIEEE SysCon Systems Council Student Event
📋 Patent FiledThrough Lovely Professional University

📄 Research & Publications

  • Protocol:"Mind Controlled Bionic Arm with Sense of Touch [8 class version]"DOI: 10.17504/protocols.io.n92ldr869g5b/v2

  • Conference Paper: Presented at the 5th International Conference on Intelligent Circuits and Systems (ICICS 2023), Lovely Professional University.

  • Journal Manuscript:"Mind Control Bionic Arm with Sense of Touch" — submitted to the Journal of The Institution of Engineers (India): Series B.

  • Blog:thecreativenet.in/products/mcba


👥 Team

Dhruva Shaw
Lead Researcher
Robotics & Automation
Founder, Creative Net
GitHub

Arittrabha Sengupta
Researcher
Bioinformatics &
Data Analytics

Jay B. Khaple
Co-Researcher
Electronics &
Communication Engg.

Bhavya Chowdhary
Co-Researcher
Contributor

Dr. G. Raam Dheep
Faculty Advisor
School of EEE
Lovely Professional University


📝 Citation

If you use this work in your research, please cite:

@misc{shaw2024mcba,
title = {Mind Controlled Bionic Arm with Sense of Touch},
author = {Shaw, Dhruva and Sengupta, Arittrabha and Khaple, Jay Baswaraj and Dheep, G. Raam},
year = {2024},
publisher = {protocols.io},
doi = {10.17504/protocols.io.n92ldr869g5b/v2},
url = {https://dx.doi.org/10.17504/protocols.io.n92ldr869g5b/v2}
}

📜 License

This project is maintained by Creative Net (Creatrix-Net) — a deep-tech robotics and automation initiative registered as an MSME on the Government of India's Udyam portal.

See the LICENSE file for details.


🧠 From thought to touch — making prosthetics intelligent.

⭐ Star this repo📖 Read the blog🔬 View protocol

About

Imagine a prosthetic arm that functions like your natural arm. You wear a headband, and with the thought process, the working signal from mind connects to the prosthetic about moving the arm, it responds accordingly—just like your real arm!“

Resources

Stars

0 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Mind-Controlled Bionic Arm — Brain to Machine

🧠 Mind-Controlled Bionic Arm with Sense of Touch

Decoding thought into motion — a non-invasive EEG-driven bionic prosthetic with haptic feedback

StarsLicenseProtocolBlog

MATLABPythonEEGNetSimulinkArduino


📋 Table of Contents


🌟 Overview

The Mind-Controlled Bionic Arm with Sense of Touch (MCBA) is an innovative, non-invasive, and cost-effective bionic prosthetic limb designed to restore complex hand function for upper-limb amputees and individuals with partial paralysis.

The system decodes non-invasive EEG brain signals into PWM control commands that drive servo motors in a 3-DOF bionic hand. Integrated haptic feedback sensors in the gripper send tactile signals back to the user, enabling intuitive object manipulation and preventing accidental slippage or injury.

Key Innovation: We combine 8-class motor imagery EEG classification with real-time haptic feedback — bridging the gap between neural intent and physical action, all without surgical implants.


🎯 Core Pillars

🧠 Mind Control

Decodes 8 distinct motor imagery states from non-invasive EEG signals using EEGNet and classical ML for thought-driven prosthetic operation.

🤖 Haptic Feedback

Tactile, force, and proximity sensors in the gripper deliver real-time sensory signals back to the user for safe, intuitive object handling.

💰 Accessibility

Non-invasive and cost-effective design eliminates surgical procedures, optimizing comfort, affordability, and global accessibility.


🏗 System Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│ MIND-CONTROLLED BIONIC ARM │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ EEG Headset │───▶│ Preprocessing │───▶│ ML / EEGNet │───▶│ PWM Ctrl │ │
│ │ (16ch/64ch) │ │ BP + Notch │ │ Classification│ │ Servos │ │
│ │ 125/512 Hz │ │ CAR + Z-norm │ │ 8 Classes │ │ 3-DOF │ │
│ └─────────────┘ └──────────────┘ └──────────────┘ └─────┬─────┘ │
│ │ │
│ ┌──────────────────────────────────┐ │ │
│ │ HAPTIC FEEDBACK LOOP │ │ │
│ │ IR + Ultrasonic + Tactile Sensors│◀─────┘ │
│ │ → Sensory signal to user │ │
│ └──────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Signal Processing Pipeline

Raw EEG ─▶ Bandpass (8-30 Hz) ─▶ 60 Hz Notch ─▶ CAR ─▶ Artifact Rejection
│
┌─────────────────────────────────────────┤
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Feature Extract│ │ Raw Trials │
│ Band Power │ │ [C × T × 1] │
│ Hjorth, AR │ └───────┬──────┘
│ Wavelet, Asym. │ │
└───────┬───────┘ │
▼ ▼
┌───────────────┐ ┌──────────────┐
│ Classical ML │ │ EEGNet │
│ SVM / RF / KNN │ │ Temporal + │
│ (368 features) │ │ Spatial CNN │
└───────┬───────┘ └───────┬──────┘
└─────────────────┬──────────────────────┘
▼
┌──────────────┐
│ Evaluation │
│ Acc / F1 / │
│ Kappa / CM │
└──────────────┘

📁 Project Structure

Mind-Control-Bionic-Arm/
│
├── main.m # 🚀 Master pipeline — run this
├── ModelCreation_8Classes.m # 📜 Legacy YAMNet approach (reference only)
│
├── src/
│ ├── preprocessing/
│ │ ├── load_milimbeeg.m # MILimbEEG dataset loader (16ch, 125Hz)
│ │ ├── load_gigadb.m # GigaDb dataset loader (64ch, 512Hz)
│ │ ├── eeg_preprocess.m # Bandpass + Notch + CAR + Artifact rejection
│ │ ├── extract_features.m # V1 features (208 dims: PSD, Hjorth, Stats)
│ │ ├── extract_features_v2.m # V2 features (368 dims: + AR, Wavelet, Asymmetry)
│ │ └── remap_labels.m # 8-class → 4/3/5 class remapping
│ │
│ ├── models/
│ │ ├── build_eegnet.m # EEGNet architecture (Lawhern et al. 2018)
│ │ ├── train_eegnet.m # EEGNet training with stratified K-fold CV
│ │ └── train_classical.m # SVM / Random Forest / KNN with class balancing
│ │
│ └── evaluation/
│ └── evaluate_model.m # Metrics: Accuracy, F1, Kappa, confusion matrix
│
├── Simulation/
│ ├── simulationModel.slx # Simulink 3-DOF arm dynamics model
│ ├── ArduinoCollectionEEGSimulation.slx # Arduino EEG acquisition simulation
│ └── classNames.mat # 8-class label definitions
│
├── Utility Functions/
│ ├── audioPreprocess.m # Legacy YAMNet mel-spectrogram preprocessor
│ ├── audioPreprocessDiff.m # Legacy variant for raw feature extraction
│ └── statsOfMeasure.m # Confusion matrix statistics calculator
│
├── datasets/ # EEG datasets (git-ignored)
│ └── datasourceDatasets/
│ ├── MILimbEEG/ # 60 subjects, 16ch, 125Hz, 8 classes
│ └── GigaDb/ # 52 subjects, 64ch, 512Hz, L/R imagery
│
├── models/ # Saved trained models (git-ignored)
├── paper/ # Research manuscript
├── assets/ # Images and media
└── env/ # Python virtual environment

⚡ Pipeline

Quick Start

% Run the entire pipeline in MATLAB
>> main

The main.m script executes the full pipeline:

StepModuleDescription
1load_milimbeeg()Load MILimbEEG dataset (60 subjects, 8 classes, 16 channels)
2eeg_preprocess()Bandpass filter (0.5–40 Hz), 50 Hz notch, CAR, artifact rejection
3extract_features()Extract 208 EEG features (band power, Hjorth, PSD, stats)
4train_classical()Train SVM, Random Forest, KNN with class balancing
5train_eegnet()Train EEGNet CNN on raw preprocessed trials
6evaluate_model()Compare all models — accuracy, F1, Cohen's Kappa

Class Mapping (8 Classes)

ClassAbbreviationMotor Action
1BEOBoth Eyes Open (Baseline)
2CLHClose Left Hand
3CRHClose Right Hand
4DLFDorsiflex Left Foot
5PLFPlantarflex Left Foot
6DRFDorsiflex Right Foot
7PRFPlantarflex Right Foot
8RestResting State

For practical BCI control, labels can be remapped using remap_labels():

% Standard 4-class BCI paradigm
[newLabels, classes, idx] = remap_labels(labels, '4class');
% → LeftHand, RightHand, Feet, Rest

📊 Datasets

MILimbEEG

Asanza et al. (2023) — Upper and lower limb motor execution & imagery

PropertyValue
Subjects60 volunteers
Channels16 (10-10 system)
Sampling Rate125 Hz
Classes8 (motor execution + imagery)
Total Recordings8,680

GigaDb

Cho et al. (2017) — Left/Right hand motor imagery

PropertyValue
Subjects52
Channels64 EEG + 4 reference
Sampling Rate512 Hz
Classes2 (Left/Right hand imagery)
Trials per Class100 per subject

🚀 Getting Started

Prerequisites

  • MATLAB R2024b+ with the following toolboxes:
    • Signal Processing Toolbox
    • Deep Learning Toolbox
    • Statistics and Machine Learning Toolbox
    • Wavelet Toolbox
    • (Optional) Audio Toolbox (for legacy YAMNet pipeline)
    • (Optional) Simulink + Simscape (for simulation models)

Installation

# Clone the repository
git clone https://github.com/Creatrix-Net/Mind-Control-Bionic-Arm.git
cd Mind-Control-Bionic-Arm

Dataset Setup

  1. MILimbEEG — Download from IEEE DataPort and extract into:

    datasets/datasourceDatasets/MILimbEEG/data/
    
  2. GigaDb — Download from GigaScience Database and extract .mat files into:

    datasets/datasourceDatasets/GigaDb/data/
    

Run

% Open MATLAB and navigate to the project root
cd('path/to/Mind-Control-Bionic-Arm')
% Run the full pipelinemain

📈 Results & Performance

Model Comparison (MILimbEEG, 4-Class)

ModelAccuracyBalanced AccuracyMethod
SVM (RBF)25.49%25.45%V2 features (368 dims)
Random Forest26.70%26.64%V2 features (368 dims)
KNN (k=11)24.81%24.82%V2 features (368 dims)
EEGNet25.80%Raw EEG (16×500)

Model Comparison (GigaDb, 2-Class Left/Right)

ModelAccuracyNotes
EEGNetTraining in progress64ch, 512Hz, 8-30Hz bandpass

Note: Motor imagery EEG classification is an inherently challenging task. State-of-the-art BCI competition results typically report 60-80% on 2-class problems. Our pipeline establishes a rigorous baseline with proper stratified cross-validation, class balancing, and comprehensive evaluation metrics. Active research continues to improve accuracy through architecture tuning and cross-dataset transfer learning.

Evaluation Metrics

Every model is evaluated with:

  • Stratified K-Fold Cross-Validation (5 folds)
  • Balanced Accuracy (class-imbalance aware)
  • Per-class Precision, Recall, F1-Score
  • Cohen's Kappa (agreement beyond chance)
  • Confusion Matrix with row/column normalized summaries
  • Precision-Recall scatter with iso-F1 curves

🔧 Simulation

Two Simulink models bridge the gap between AI classification and hardware control:

ModelFileDescription
3-DOF Arm DynamicsSimulation/simulationModel.slxSimscape model of the bionic arm mechanics, servo actuation, and control response
Arduino EEG AcquisitionSimulation/ArduinoCollectionEEGSimulation.slxModels real-time EEG signal acquisition via Arduino analog input with FIR filtering

🏆 Awards & Recognition

AwardEventYear
🥈 2nd Prize (Poster Presentation)IIT Ropar — EE Research Day2024
📜 Conference Selection & Presentation5th International Conference on Intelligent Circuits and Systems (ICICS)2023
🚀 Hackathon SelectionSmart India Hackathon (SIH) — Internal Round2023
🎙️ Pitching CompetitionIEEE SA Telehealth Pitching Competition
🎓 Student Event FeatureIEEE SysCon Systems Council Student Event
📋 Patent FiledThrough Lovely Professional University

📄 Research & Publications

  • Protocol:"Mind Controlled Bionic Arm with Sense of Touch [8 class version]"DOI: 10.17504/protocols.io.n92ldr869g5b/v2

  • Conference Paper: Presented at the 5th International Conference on Intelligent Circuits and Systems (ICICS 2023), Lovely Professional University.

  • Journal Manuscript:"Mind Control Bionic Arm with Sense of Touch" — submitted to the Journal of The Institution of Engineers (India): Series B.

  • Blog:thecreativenet.in/products/mcba


👥 Team

Dhruva Shaw
Lead Researcher
Robotics & Automation
Founder, Creative Net
GitHub

Arittrabha Sengupta
Researcher
Bioinformatics &
Data Analytics

Jay B. Khaple
Co-Researcher
Electronics &
Communication Engg.

Bhavya Chowdhary
Co-Researcher
Contributor

Dr. G. Raam Dheep
Faculty Advisor
School of EEE
Lovely Professional University


📝 Citation

If you use this work in your research, please cite:

@misc{shaw2024mcba,
title = {Mind Controlled Bionic Arm with Sense of Touch},
author = {Shaw, Dhruva and Sengupta, Arittrabha and Khaple, Jay Baswaraj and Dheep, G. Raam},
year = {2024},
publisher = {protocols.io},
doi = {10.17504/protocols.io.n92ldr869g5b/v2},
url = {https://dx.doi.org/10.17504/protocols.io.n92ldr869g5b/v2}
}

📜 License

This project is maintained by Creative Net (Creatrix-Net) — a deep-tech robotics and automation initiative registered as an MSME on the Government of India's Udyam portal.

See the LICENSE file for details.


🧠 From thought to touch — making prosthetics intelligent.

⭐ Star this repo📖 Read the blog🔬 View protocol

About

Imagine a prosthetic arm that functions like your natural arm. You wear a headband, and with the thought process, the working signal from mind connects to the prosthetic about moving the arm, it responds accordingly—just like your real arm!“

Resources

Stars

0 stars

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages