The App Dev Team Hard at Work
Initial Architecture Drawing
We've often heard of the importance of good posture and lifting technique, but it's easy to lose focus and use incorrect form when moving large or heavy items. Persistent use of incorrect lifting technique across decades of employment can lead to serious medical problems and be a substantial expense to companies in increased health insurance premiums, workers compensation, and decreased productivity.
What it does
Liftr alleviates this issue by giving employees real-time feedback on their lifting technique. Because Liftr communicates with users haptic feedback, it will quickly quickly transform into an "invisible" sixth sense, providing constructive feedback on lifting technique in an unobtrusive way.
For supervisors and managers, Liftr aggregates lift quality data into beautiful, intuitive reports. Are training sessions having a significant impact? Liftr can tell you! Are specific employees struggling with their technique? See it at a glance with Liftr!
How we built it
Liftr uses Inertial Measurement Units (IMUs) applied to the top and bottom of a users back to measure how much their spine is bending and/or twisting. By comparing data from the IMUs, Liftr calculates a "lift score." Once a score passes a threshold, the hardware vibrates with intensity proportional to the severity of the issue.
Because of the difficulties in processing raw IMU data into stable, usable values we decided to use Andoid phones as our IMUs for this project. The Android OS has very high quality pre-processing of angular position data, as this data is often used for things like games. Since the data is collected on the phone, we need two Android phones to communicate with each other, and to a server. We used Bluetooth to communicate between the phones, and sent the final score data to the central server over the internet as a JSON file.
When the score data hits the server, the request is handled by a php script that parses the JSON, pulls out the values, and inserts them into the database. An R script is called regularly to process the data. It places it's results into a separate table. Then, when a user visits a dashboard page data is pulled from the results table and displayed.
As for infrastructure, our web server is a LAMP stack on an EC2 instance and our database is mySQL hosted in RDS. Our website code is tracked in a git repository (hosted in GitHub) and automatically deployed to the server using web-hooks and a php script.
Our dev tools include R Studio for R, Android Studio for Android app development, and Visual Studio Code for web development. AMPPS is used for testing our web code on the development machine. Atlassian Source Tree and Windows Git Bash are used with our GitHub hosted git repo. DBeaver is used for development access to the database. Eclipse is used for some test programs.
Challenges we ran into
We encountered many challenges while developing LiftR. The most substantial challenges derived from our ambition to learn and use unfamiliar technologies.
For example, three of our four developers have learned new languages from the ground up for this project, and one of our developers learned SQL for the first time.
Accomplishments that we're proud of
All of it! Every piece of the project represents a lot of learning and hard work. Even just making an Android app with a button, or connecting to a database with R is something we've never done before.
What we learned
We learned a lot! Perry, our resident mathematician, learned R and RStudio, our electrical and mechanical engineers, Jacob and Will, learned how to write Android Apps, and we all got lots of experience working with development.
What's next for LiftR
In the short term, we're looking to collaborate with an ergonomics and human factors engineer to improve and validate the algorithms used to calculate lift-quality scores. After that, the next step would be to manufacture production prototypes and partner with a potential client to conduct live beta testing. After ironing out any issues that come up in live testing, we would be ready to begin manufacturing and distribution.
Long term, once established in the market we would look to expand into other sectors. Similar systems could be adapted for use in athletics, fitness, and physical therapy. Another promising prospect is to use machine learning to improve our algorithm accuracy.