Inspiration

We were inspired by our teammate Luqman who ran track for a lot of his life. He lived with knee pain whenever running and that gave us the idea to model the knee. In his physical therapy he realized that sometimes he was out of town and regularly missed physical therapy sessions because of that.

What it does

Flexion is a wearable knee brace that measures how far your knee bends and straightens during a seated leg extension which is a common movement for ROM (range of motion) diagnostics during physical therapy. Two accelerometers placed above and below the knee and a 3rd person camera, stream data to a laptop at about 100 times a second. The laptop turns it into knee angle and drives a live 3D model of your leg that moves with you. The model is pre equipped with the diameter of thigh and calf measurements to assure model accuracy with your specific leg.

This model reports to your doctor or physical therapist but does not diagnose. This is for helping monitor the healing process of the knee or joint.

How we built it

Brace (3D Printed): We designed a brace is Python CAD code. It is fully printed with no screws or bought hardware, only what was available at the 1819 makerspace. Two bars are affixed to the thigh and calf with keyed pockets that hold the accelerometer.

Hardware: We used an Arduino with two Grove MMA7660 accelerometers strapped above and below the knee. The firmware streams both readings over USB at about 100 Hz and runs a sensor self-check on command.

Camera (OpenCV ArUco): A side-on webcam detects markers on the knee, thigh and shin. The knee marker sets the origin, and the markers' set the size correct based on the pixel. Converts the pixels to centimeters.

Visualization (C++/OpenGL): We wrote a 3D viewer from scratch with GLFW, GLAD and GLM. The thigh and calf are smooth and tapered based on the measurements of your real thighs and calves. If the signal is dropped from the camera or accelerometers it holds the last angle and tells you that the signal is lost.

Challenges we ran into

One of our biggest challenges was 3D printing our model as we were on a huge time crunch. Three hours in with a low quality sewed brace, we realized that we could design a hinged brace with the sturdy print filament. That's when we realized that we had to get our 3D print in before six hours into our project. That time crunch made the whole team get together and we got the print off with ten minutes later. After that, we were successfully able to model our prototype and continue on our merry way.

Accomplishments that we're proud of

We are very proud of our team for completing a full Hackathon this year, as we have attended ones before that ended less than optimal. We came in with an idea that we planned, prototyped and built in the span of 24 hours.

We are also very proud of the full pipeline of taking sensor data to filter the angle to angle the 3D model in real time. Flexion gives honest data that can be used in practice for almost any joint on the body.

What we learned

We learned a lot more about hardware and connecting Arduinos to software. We also learned that splitting our work across hardware, firmware and software was a very viable option that was fun and doable in our teams skillsets.

What's next for Flexion

A few ideas that we came up with for Flexion is a rep-counting and per rep range of motion that can be carried across sessions. Also, with some different hardware, such as gyroscope to measure rotation or more sensor points could give accurate data. There is also possibility of a Clinician View so a physical therapist can view the model alongside a video of the patient to review the progress the patient is making without being in the same room. More dynamic or compound movements definitely lies in the future. More secure bracing and better sensors can model jumping and squat like movements

Built With

Share this project:

Updates

Submission history