The emBRACE has two WICED sensors that are placed into two small pockets that were sown onto a commercial off the shelf (COTS) knee brace. One sensor is located directly above the knee and the other sensor is located directly below the knee. Each sensor captures three directions of acceleration (via the accelerometer) and three directions of absolute position (via the gyroscope). This information is sent to the emBRACE App running on the Android operating system via a BLE connection. From the App, the information is sent to the Amazon Web Services cloud by a regular internet HTTP/S connection. AWS hosts an Elastic Compute Cloud where the data is received and stored to a Dynamo Data Base as a relational DB.
The data is sent through a low pass filter as well a kalman filter to smooth it out and make it easier to classify. The classifier is developed by training a multi-class SVM. The scikit-learn Python machine learning library was used to run the SVM. Scikit-learn is a simple open source tool that is especially useful for data mining and data analysis. Several hundred samples of training data were collected by the team and then labeled in one of four states:
Using Scikit-learn, the SVM then trained on this data to classify real data according to the four different states. The output of the Machine Learning process was written back into DynamoDB and then sent to the web application over an HTTP/S connection. The web app written using IBM's bluemix platform took this data and populated two different plots, a Range of Motion plot that measures knee angle over time, and an Activity plot which determines the amount of time that the user was standing vs sitting over a specific period. These visualizations can then be reviewed by the user and his or her doctor. The figure below presents a detailed description of the system architecture.
The data is sent through a low pass filter as well a kalman filter to smooth it out and make it easier to classify. The classifier is developed by training a multi-class SVM. The scikit-learn Python machine learning library was used to run the SVM. Scikit-learn is a simple open source tool that is especially useful for data mining and data analysis. Several hundred samples of training data were collected by the team and then labeled in one of four states:
- Standing up, with the knee extended at 180 degrees
- Sitting down with the legs parallel to the floor and the knee extended 180 degrees
- Sitting down with the legs forming a right angle and the knee at 90 degrees
- Sitting down with the legs stretched out at 45 degrees with relation to the ground, and the knees extended straight out
Using Scikit-learn, the SVM then trained on this data to classify real data according to the four different states. The output of the Machine Learning process was written back into DynamoDB and then sent to the web application over an HTTP/S connection. The web app written using IBM's bluemix platform took this data and populated two different plots, a Range of Motion plot that measures knee angle over time, and an Activity plot which determines the amount of time that the user was standing vs sitting over a specific period. These visualizations can then be reviewed by the user and his or her doctor. The figure below presents a detailed description of the system architecture.