-
The Journey of Open Muscle: Democratizing Assistive Technology
07/13/2023 at 13:36 • 0 commentsOne day, while scrolling through the internet, I came across a video that stopped me in my tracks. It was about a man with no arms who had undergone surgery to move nerves into his pectoral muscles. This transformation enabled him to control two prosthetic limbs. But there was a catch – he couldn’t take these arms home. Why? Because the technology and code that powered them were proprietary. This man was denied the freedom to fully embrace these life-altering tools because of a man-made barrier. The story was not just sad; it was infuriating.
This experience became the spark that ignited the creation of Open Muscle. I saw the potential of machine learning and believed that it could provide a solution. I had an idea: a matrix of pressure sensors sampling forearm muscle movements and using a force detection labeling system to measure finger movements. In theory, AI or machine learning could predict the finger movements based on the pressure sensors’ data.
It was an ambitious plan, but I was ready to face the challenges head-on. The journey was not without its difficulties. For instance, finding the right springs for the pressure sensors was a task that felt like an endless Goldilocks conundrum. After much trial and error, the solution came in the form of a larger pressure pad, which allowed us to use firmer springs.
Another challenge was designing a system that could be adjusted and upgraded if needed. The solution was a radial design, which captured sufficient data from the muscles and was a perfect fit for machine learning.
-
Open Muscle Video Update AI Prosthetic Sensor
05/02/2023 at 16:06 • 0 comments -
Finger Movement Recognition Using Radial Pressure Sensors on the Forearm and Machine Learning Techniques
04/16/2023 at 16:14 • 0 commentsIn this study, we present a novel and cost-effective method for detecting individual finger movements using a custom pressure sensor array based on Hall effect sensors and magnets. Twelve sensors were placed radially around the forearm, and machine learning techniques, specifically a random forest regressor, were employed to distinguish between finger curls. With only 5 minutes of training data, our approach achieved a mean absolute error (MAE) of 35, demonstrating its potential as a viable and inexpensive sensor solution for finger movement and force detection. This forearm armlet-based system has applications in fields such as prosthetics, robotics, and human-computer interaction, offering a promising alternative to traditional sensor technologies.
Introduction
Hand amputations can significantly impact an individual’s quality of life and ability to perform daily tasks. Despite losing their hand, many people with amputations retain an intact forearm with functional muscle movement. However, due to the disconnected tendons, detecting and interpreting finger movements becomes challenging. In this study, we sought to develop an innovative and cost-effective sensor solution that could discern individual finger movements by sampling the force exerted by muscle contractions in the forearm. One of our main challenges was finding a low-pressure sensor system with minimal friction. We explored different designs and ultimately used a spring and clevis pin system for the best results, while also considering rubber foam for a more scalable solution in future designs.
We hypothesized that with minimal training data, our approach could provide an inexpensive and accessible solution for a wide range of individuals who could potentially benefit from this technology. To test our hypothesis, we conducted experiments on able-bodied individuals with the intention of validating the efficacy of our approach and warranting further research in the context of hand amputees. Our work was conducted using open-source and open hardware principles to contribute to the scientific community with a non-proprietary alternative to existing forearm sensor technologies. This open approach aims to foster collaboration, innovation, and widespread adoption of our proposed forearm bracelet system.
In this paper, we describe the design and implementation of our custom pressure sensor array, the machine learning techniques employed to recognize finger movements, and the performance of our system in detecting individual finger curls. We also discuss potential applications of our technology in prosthetics, robotics, and human-computer interaction, as well as future directions for research and development.
Materials & Methods
Pressure Sensors:
Custom pressure sensors were designed using Hall Effect sensors mounted on printed circuit boards (PCBs). These PCBs were attached to PLA 3D printed clevis pin holders, which featured a hole for the clevis pin piston positioned 7mm above the Hall Effect sensor. A nail head “foot” was secured to the piston, and a 5mm diameter earth magnet was glued to the foot. The piston was fitted into the clevis pin holder, and a spring and clip were attached to the opposite side. The feet were designed to make contact with the skin, and their surface area could be adjusted to modify the sensor’s overall amplitude.
A second version of the sensor utilized the same PCB but incorporated a rubber foam spring system, a rubber sheet, and a magnet. This alternative design yielded promising results and is recommended for further investigation, as its construction requires less time.
Sensor Array and Data Acquisition: The magnet array was wired together and connected to an ESP32-S2 microcontroller, which utilized MicroPython firmware and its 20 13-bit ADCs to measure the Hall sensor values.
Prototype Version 5.3.0 with the Clevis Pin Piston. Sensor consist of a hall effect sensor on a PCB, a clevis pin holder made of PLA. A magnet on the head of the clevis pin, a 20gm Cherry keyboard spring, clevis pin pin, and a foot made of PLA to increase the surface area of the skin contact surface. Machine Learning Model
Data Collection:
A Python UDP server was used to collect data from the sensor array band. The data was labeled using a Label Seeking (LASK) system, which was built on a rehabilitation device that consisted of four pistons with springs designed to strengthen the muscles responsible for finger movements. Hall Effect sensors were also incorporated into the LASK system. By providing labels to the machine learning regressor, the LASK system enabled us to identify the specific finger movements we were attempting to recognize.
Model Training:
The Scikit-Learn Python library was employed for machine learning model development. A random forest regressor was selected for training the data due to its versatility and robustness in handling complex relationships between input features and output predictions. The labeled data collected from the LASK system was used to train the random forest regressor, which aimed to identify and distinguish individual finger movements based on the pressure sensor data obtained from the forearm.
Data Collection and Transmission
The 12 sensor data points, along with the corresponding time data, were transmitted over UDP packets to a central computer running a collection server. Simultaneously, the LASK system, responsible for applying labels to the training data, sent its 4 sensor readings, time data, and processor ticks.
Data Pairing and Preprocessing
The data was saved in a JSON format and then passed through a sorting algorithm to match the pairs of data points based on their closest proximity in time. Unmatched data points were discarded. The paired data was then converted into a CSV format to be used as input for the random forest training program in Python.
Feature Selection and Dataset Preparation
The Open Muscle and LASK data pair CSV file was processed to create a feature dataset with 13 attributes, comprising 12 sensor data points and 1 time data point from the Open Muscle system, and a labeled dataset with 5 attributes, including 4 sensor data points and 1 time data point from the LASK system.
Model Training and Evaluation
The random forest regressor was trained using the prepared feature and labeled datasets. An 80/20 split was applied to the original dataset for training and testing purposes. The model’s performance was assessed using mean absolute error (MAE) as a metric. The MAE was found to have an average of 40, with a range between 25-80, depending on the quality of the data.
Testing with Prerecorded and Live Data
To further evaluate the model’s performance, tests were conducted on both prerecorded and live data. The random forest regressor demonstrated its capability to accurately detect finger movements in real-time scenarios, thereby showcasing its potential as a viable and cost-effective sensor solution for finger movement and force detection.
Live predictions of the small random forest regressor model. The bottom 12 rows are the 12 Open Muscle Sensors. The top 4 rows are the LASK system readings. Cyan is the actual signal from the LASK, Yellow is the prediction from the model. The model was trained on ‘capture_11’ on the GitHub repository. This image shows a good example of the output from 5 minutes of training data, with detectable signals and some noise. The lask system, and open muscle band (not seen and behind the camera), being tested live in a demo. Training dataset with the best results was taken during a recording that was posted on youtube:
Video of the data from this training set: https://github.com/turfptax/openmuscle/blob/main/MachineLearning/January23.csv We also tested a version that used foam instead of springs.
Open Muscle 5.6 with foam sensors instead of springs. LASK4 labeling system V2.0 Initial Test Results
All files needed to test the data found in the demo folder on the GitHub repository.
https://github.com/turfptax/openmuscle/tree/main/Demo
Results for Training on capture_11.csv (~5 minutes of data)
- Mean Squared Error: 7689.885189928801
- Mean Absolute Error: 29.919568537049315
Results for Training on January23.csv (~10 minutes of data)
All of the files are available on github to train the model and run the predictions. https://github.com/turfptax/openmuscle/tree/main/Demo
- Mean Squared Error: 6131.50072204039
- Mean Absolute Error: 23.225226598136324
- Training session video was also recorded here: https://www.youtube.com/watch?v=BRkbyyItcVQ)
The results for the training on January 23rd were also manually split up into sections and fed into the random forest regressor to ensure that there was not an error with the data split. The data yielded the same results.
predictions_vs_actualsDownload
predictions_vs_actuals-Short-SegmentDownload
predictions_vs_actuals-Short-Segment_shorterDownloadExample of extremely accurate predictions done with random movements (no scripted movement for finger curls). Example of both a single finger detection and Multiple finger curl predictions. -
More Live Prediction Tests
04/04/2023 at 12:56 • 0 commentsThe field of wearable technology and human-machine interfaces has made significant strides over the past few years. The development of ‘Open Muscle,’ an innovative system that utilizes 12 pressure sensors built with hall effect sensors and magnets with springs in between, has proven to be a game-changer in accurately predicting finger movements. This article explores the benefits of using a random forest regressor to enhance the capabilities of the ‘Open Muscle’ system, the advantages of the LASK system, and the potential for future hardware optimizations.
The Power of Random Forest Regressors
Random forest regressors, an ensemble learning technique, have been shown to yield exceptional results in a wide range of applications, from medical diagnosis to financial forecasting. In the context of predicting finger movements based on pressure sensor samples around the forearm, random forest regressors offer several key benefits:
- Robustness to noise: Given that the initial tests of the ‘Open Muscle’ system were conducted without applying any filters or hardware optimizations, the data collected might be noisy. Random forest regressors are known for their resilience to noise, which makes them an ideal choice for this application.
- Handling high-dimensional data: With 12 pressure sensors producing a large volume of data, random forest regressors can manage this high-dimensionality without compromising prediction accuracy.
- Reduced overfitting: By averaging multiple decision trees, random forest regressors are less prone to overfitting and can generalize better to new data.
- Feature importance: Random forests can rank the importance of features, helping researchers identify the most relevant pressure sensors and refine the hardware configuration accordingly.
The LASK System: Enhancing Labeling and Efficiency
The LASK system, which applies the labels to the pressure sensors, plays a crucial role in improving the ‘Open Muscle’ system’s performance. By using force measurements instead of movement alone, the LASK system provides a more reliable and accurate output for the machine learning model. This approach not only speeds up the training process but also enhances the overall efficiency of the system.
Exploring Future Optimizations
While the ‘Open Muscle’ system has shown promising initial results, there is significant potential for future improvements through hardware optimizations and the exploration of alternative machine learning algorithms. Some possible avenues for enhancement include:
- Implementing filters to minimize noise and improve signal quality.
- Optimizing hardware configurations based on feature importance from the random forest regressor.
- Comparing random forest regressors with other machine learning algorithms, such as support vector machines or neural networks, to evaluate performance and prediction accuracy.
-
Detecting Finger Movement Live with only 5 min of trainig data
03/29/2023 at 00:36 • 0 commentsI was able to get live predictions with only 5 min of training data with the sensor system.
The accuracy is lower but I just wanted to make sure that I had done everything correct.
-
Detecting Finger Movements with bracelet and Machine Learning
03/26/2023 at 23:38 • 0 commentsWe are excited to share our latest findings in predicting finger movement and pressure using machine learning. The results show that our model is capable of predicting the finger movement within a Mean Absolute Error (MAE) of 25, which is a sufficient level of accuracy for detecting both the finger movement and the pressure applied.
Taken from the models prediction. 3-26-2023 These screenshots showcase a portion of the data file available for download, which contains the actual and predicted finger movement and pressure values. Our model not only indicates that a finger is moving but also estimates the amount of pressure being applied, providing valuable insights into the intricacies of finger movements.
This achievement opens up new possibilities for applications that require precise finger movement and pressure detection, such as in rehabilitation therapy, robotics, and gesture-based user interfaces.
We invite you to download the full data file and explore the results in more detail. As we continue to refine our model and improve its accuracy, we look forward to discovering new ways to utilize this technology for the betterment of various fields and industries.
All data to train the model and code available on our Github: https://github.com/turfptax/openmuscle
-
Random Forest Regressor Model Predicted Well
03/26/2023 at 22:08 • 0 commentsThe trained model had a Mean Average Error (MAE) value of approximately 25, equating to a 12% error rate. Despite the challenges, the model was able to make real-time predictions, demonstrating its potential for a significant impact on the prosthetic industry.
Predicted Vs Actual from finger 1 or LASK1. The index finger was the most predicted pattern from the open muscle band. Here you see the Actual data from LASK1 in blue and the predicted output of the LASK1 from the model in orange. These are just preliminary data. Everything is published live on the gGitHub The model is 1.7GB so we are not providing the model but all the code is available to train the model with this exact dataset on the gGitHub From attachment predictions_vs_actuals2.csv GitHub Link for Open Muscle: https://github.com/turfptax/openmuscle
-
OM12 Updated: Replaced Clevis Pins with Foam!
03/14/2023 at 18:04 • 0 commentsI recently replaced all of the springs and clevis pins with a foam solution that produces similar results. A lot of the force goes into the elastic band and the depth of the ADCs is very important. With the ESP32-S2 I am able to obtain 1200 samples per second across all sensors or 100 samples per second for each sensor.
The resulting signals are not as 'loud' as I wished them to be but they are reading the movement of the muscles underneath the skin. Will be posting a video update with the pros/cons of this system for use in biometric muscle contraction detection of forearm muscles.