Our team is composed of three student-athletes. Two of us are Olympic weightlifters and former national champions who compete in Team USA sanctioned events, and the other is a D1 athlete at the University of Minnesota -- Twin Cities. Therefore, we spend a great deal of time planning/recording our workouts by writing in a journal. After a brainstorm session and a desire to use hardware, we thought it would be cool of there was an app that could automatically record our lifts. This gave rise to our app idea: autoLift.

What it does

The user wears a Myo armband which connects to a phone via Bluetooth. By clenching a fist or grabbing a barbell / dumbbell, one would initialize the rep counting mode. Once the grip is released, the app returns the number of reps completed in the set.

How we built it

We used an Myo armband to send acceleration, orientation, and gyroscope data to our Java program. We wrote a physics-guided program to classify each rep.

Challenges we ran into

We spent most of our time with the rep counting methods and understanding how the Myo armband works. The “onAccellerometerData” function did not output the data we anticipated, so we rushed to understand the other gyroscope and orientation data to see what it is that we exactly need for our algorithm.

Furthermore, we received a lot of false positives from the onPose method from the Myo SDK. This made it tough to record when a set begins and ends.

Accomplishments that we're proud of

Learning was a big part of our goal. This was the first hackathon for 2/3 of our team, and we all encountered new concepts/skills which made for a great learning experience.

But most of all, we're proud of overcoming our challenge of classifying data from our Myo armband while making everyone on our team a key contributor to our project, regardless of how much CS experience. One of us is a physics major who came up with an algorithm to use acceleration to classify a rep and communicated his idea with pseudo code. Another one of us with experience in IT was a significant contributor to troubleshooting efforts when connecting the Myo armband to our app. And our last member who wrote the most code was the only one who had experience in Android studio which became our medium for developing our app.

What we learned

We learned how to create an Android application using Android Studio and incorporate hardware into code. Our team is composed of three students with diverse academic backgrounds, one student being a non-CS major or minor. We all learned things both from each other and from fast-paced Googling.

What's next for autoLift

We have a whole UI sketched and planned out on paper but are still in the works of completing it. The end goal for our app's "workout mode" is to classify and record the movement type, weight, and reps of each set using data sent from the Myo armband. Each set would be outputted to a text file in a row, much like how one would write in their workout journal. Ideally, we'd like to use machine learning to classify each lifting movement without the user doing anything other than perform the movement (we're currently setting the movement explicitly). Each set will be saved as a row of text in a workout log that can be viewed during and after the workout.

Share this project: