https://github.com/neuro-mechatronics-interfaces/python_intan
Tools and demos for working with EMG data from intan using python
https://github.com/neuro-mechatronics-interfaces/python_intan
circuitpython cuda emg pico python realtime tensorflow
Last synced: 5 months ago
JSON representation
Tools and demos for working with EMG data from intan using python
- Host: GitHub
- URL: https://github.com/neuro-mechatronics-interfaces/python_intan
- Owner: Neuro-Mechatronics-Interfaces
- License: mit
- Created: 2024-10-14T18:59:42.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-01-07T16:54:33.000Z (6 months ago)
- Last Synced: 2025-02-19T23:41:39.961Z (5 months ago)
- Topics: circuitpython, cuda, emg, pico, python, realtime, tensorflow
- Language: Python
- Homepage:
- Size: 10.7 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Python Intan
This repository provides a set of tools and demonstrations for working with electromyography (EMG) data collected using Intan systems. It includes scripts for data preprocessing, feature extraction, machine learning (ML) model training, and real-time classification. These tools are designed to facilitate gesture recognition from sEMG signals, which can be applied in prosthetics, robotics, and neuromuscular research.

Code was written and tested using Windows 11, Python 3.10.

## Repository Structure
* `3D_printed_arm_control` - Hardware and software resources for robot arm control using microcontroller supporting CircuitPython.
* `realtime_decoder` - Perform inference on an EMG signal in real-time using a trained model.
* `gesture_classifier` - Scripts for training and testing machine learning models for gesture classification.
* `utilities` - Helper functions for data preprocessing, feature extraction, and model evaluation.## Installation
1. It is recommended to use a virtual environment to manage dependencies. To create a new virtual environment with [anaconda](https://www.anaconda.com/products/individual), use the following command:```bash
conda create -n intan python=3.10
conda activate intan
```
2. Download the repository using git:
```bash
git clone https://github.com/Neuro-Mechatronics-Interfaces/Python_Intan.git
cd Intan_EMG_Python
```
3. To install dependencies, use the provided requirements file:
```bash
pip install -r requirements.txt
```
## Demo
A demo script in the main directory shows a quick example of opening and plotting EMG waveforms from a .rhd file. Run the following command:
```bash
python load_rhd_demo.py
```
## Future Improvements
- [x] Add support for other classifiers
- [x] Expand feature extraction to support CNN architectures.
- [x] Add support for real-time classification using the trained models.
- [x] Integrate with the Intan RHX system via TCP for real-time data streaming.
- [x] Integrate support for sending serial commands to operate robot arm in realtime.
- [ ] Refine realtime classification to include a GUI for visualizing the data.
- [ ] Allow downloading of dataset to perform actual training and testing.
- [ ] Allow data analysis methods to be used on the dataset.