Goal
The goal of this project was to design and prototype a compression sleeve embedded with sensors to provide sport-specific biomechanical feedback for amateur racket sport athletes. It should provide actionable insights for performance improvement, injury prevention, and rehabilitation. Further, the device needed to be comfortable, accurate, cheap, and have a long battery life.
Method
I was the group leader and project manager for this venture.
The sleeve is made of a lightweight and flexible nylon spandex material. All hardware is housed within 3D-printed ABS shells which were designed to be small, lightweight, and have minimal impact on the player. The shells are attached to the sleeve using both adhesive and sewed-on straps. The battery is a 1600 mAh LiPo. All IMUs are very low power.
The hardware and sensor components of the sleeve consist of 3 IMUs (BMI270) fitted at the shoulder, elbow, and wrist. These sensors track linear acceleration and angular velocity at each joint. These IMUs are interfaced with an ESP32 microcontroller board using 2 different I2C channels. Upon data collection, the microcontroller sorts the data into packets, formats the data into a JSON, and begins advertising via Bluetooth Low Energy. BLE was used to minimize the size of the required battery on the device.
The other device connects to the microcontroller via BLE and receives the data using a Python script. Upon reception, the data is transformed as necessary. 6 live Kalman Filters that track the velocity, position, and acceleration in each direction are used to reduce noise and improve the estimate. The sensor noise covariance matrices were found through analyzing sensor noise at rest and the process noise covariance matrices were determined through trial and error. Feature extraction is performed based on published data on injurious swings in racket sports. Swing count is updated based on specific thresholds in each sensor. Other metrics are recorded, as necessary. The data is then displayed live on a locally hosted dashboard built using Plotly Dash. The data is also sent to an InfluxDB cloud for long term storage and historical metrics. These metrics are displayed in a separate tab where users can search for and review their old training sessions. There is also a tab displaying lifetime stats for the user.
This project was done using Python, C++, Solidworks, HTML, and InfluxDB.
Results
- Awarded James Baleshta Special Merit Award
- Nominated for Best Prototype Award
- Highly accurate at swing detection and ignoring non-swings
- 3 hours battery life
- $252 total cost
- Adjustable to both left- and right-handed players
- Live feed and historical metrics for player
- Developed and implemented injury risk metric
- See images for the poster, prototype, diagrams, and live feed!
- See the video link for the prototype in action!
- See the attached project final report!