Software apps and online services
Hand tools and fabrication machines
The average person between the ages of 16 and 65 sits for around 8h per day, a number that got increasingly larger in the previous year due to the "c-word".
As we are all well aware, improper sitting posture leads to years of potential back pain and other complications, that's why we decided to use the power of IoT to correct our posture while sitting and thus reduce already present back pain and even avoid potential future back problems.Description
To correct our posture while sittings we need three things. First, we need a way to detect our posture, then we have to differentiate between good and bad posture and last but not least we have to inform the user that their posture is incorrect.
So if we take into account all of the things we need to make our dream of reducing back pain, our final product will consist of
- An Arduino to detect posture
- A machine-learning algorithm to differentiate between good and bad posture
- An application that will inform the user about their posture
Our device consists of an Arduino Nano 33 BLE Sense board and a strap used to attach it to the user. The Arduino features a 9 axis inertial sensor, which we will use to define and track the user's posture and a communications chipset with Bluetooth® connectivity, which we are using to send data to our web application.
We trained our machine learning model using Edge Impulse Studio, where we uploaded data from the Arduino Nano via a data forwarder.
Using the Arduino IDE we wrote code that used our machine learning model to predict a user's posture, based on incoming data from the Arduino.
Our web app presents the data to the user in a simplistic and easy-to-understand fashion. We wrote it using Microsoft Visual Studio code. It consists of two buttons ("start" and "how-to-use info") and one function - to notify the user of their posture using colors and sound.
Data for our machine learning model consists of 10-second samples recorded from the Arduino Nano 33 BLE Sense with 3 accelerometer axes (accX, accY and accZ). Each member (of the three) contributed at least 30 samples, divided into bad and good posture. Using Edge Impulse Studio's prebuilt processing and learning blocks we flattened the axes and used a Neural Network classifier to determine the outcome, resulting in 6 output features (a good and bad posture for each member). Our model sports a 92.88% accuracy, where most of its errors are between two of the same postures from different contributors. Factoring that in, we estimate an accuracy of over 99% (on training data).
It's fairly straightforward. If you have all the required components, connect your Arduino Nano BLE 33 Sense to your computer via USB and strap it on your chest as you can see in the cover image. You can use an elastic waistband or something similar to do that, just try to have Arduino as straight as possible laying on your chest. Next, open Arduino IDE on your computer and add the library with our ML model that is attached to our project. After that, compile and upload Arduino code to your device and start monitoring output (Serial monitor). Then you can start a local serverwith the attached web application and connect your browser with your device. All information on how to use our web app is provided on the website.Future updates and upgrades
Our machine learning model is still fairly simple, differentiating only between good and bad posture. A possible future update would include recognition of different kinds of bad posture and a more nuanced recognition algorithm. That can be achievable by having more manpower and budget, which would also allow us to broaden our model with more varying samples.
An obvious upgrade would also be a more robust device exterior, that would allow consistent usage and less room for user error.
Another possible upgrade would be a mobile app, which could notify the user of a bad posture even when they aren't using our web app.Conclusion
We have provided a proof-of-concept AIoT solution for bettering posture. Even though there are already some similar solutions that work well even without the help of an AI on the market, we believe we can offer a cheaper and better solution that benefits from machine learning in its accuracy for a variety of postures. Furthermore, we prove the usability and simplicity of using Artificial Intelligence in Internet of Things, which will hopefully fuel even more projects and research on that topic.