Tennis Trainer

a tool for physical therapy and rehabilitation

The Tennis Trainer is a tool for physical therapy and rehabilitation, it was made using two gyros, an accelerometer, an Arduino, Unity, and the programming languages C# and Processing.

Project Overview

Problem

Physical rehabilitation for disabled peoples can often be repetitive and monotonous, and it can be hard for users to match a desired movement exactly. How can we provide users with a measurable goal for how they are progressing in their physical therapy? 

Solution

Tennis is a game that has clearly defined movements and therefore is a good choice for a physical therapy and rehabilitation tool. Using our movement tracking racket, first a therapist records a “goal movement” that a patient should aim to copy by swinging the racket. That movement is shown in a visualization which show the user in real time how close their swings are to the “goal movement”. Users can see their progress in real time and learn how to copy the movement exactly.

My Role

UX Designer, UI Designer

Timeline

Oct. 2018 - Dec. 2018

Team Members

Natasha Tylosky, Matt Blanchett, Pablo McRoy

Tools

Arduino, Unity, Processing, Photoshop

TennisThresholdUI-new.gif

Testing out our movement recording system in Processing.

In the movement visualization each there are 3 sliders that represent “up/down”, “left/right” and “forward/backwards” movements. White arrows are the users’ movements in each of those directions. The 3 sliders range in color from green to red and the user tries to get arrows as far into the green area as possible. The therapist can also set a "threshold", shown as a yellow line, for what movement is close enough to the “goal movement”. The threshold to be easier or harder, this allows for progress overtime as the user gets better at matching the movement.

UI-Vid1-new.gif

Our movement visualization that provides feedback to users on how they are performing.

A user testing out the prototype.

My Contribution

This project was an assignment for my masters program where we had to design build and test an IoT device. My biggest contribution to this project was the design and creation of the movement visualization, both in terms of it’s UI and in terms of it’s interaction/UX design. I created the UI elements in Photoshop and designed and tested the interactions in Unity. the “goal movements” were recorded in Processing, and then using OSC a signal was sent to Unity, where I animated these movements. on screen.

Design Process

Research Stage

Prior to conceptualizing our tennis racket, we did a brief competitive analysis where we looked at what other tennis IoT devices already exist. While we did find that there are a variety of similar IoT tennis products, we found none that were made with the purpose of being a physical therapy and rehabilitation tool.

Zepp Tennis

Wii Sports tennis racket controller

Sony smart tennis sensor

Design Stage

An early sketch of the racket

An early UI sketch

After deciding upon our product we began ideating how we could track movement on the tennis racket and how we could teach the user what movement they should aim for. During this stage we sketched a few different ideas, including a separate arm band that would track the movement of the wrist as well as the racket, and audio prompts that would give users feedback. However we ultimately decided to focus on making an MVP (minimal viable product) before first.

We next drew up some storyboards for both how a therapist would record a movement and how a patient would practice that movement. We then began work on the interactive prototype, one team member worked on the physical device, one team member worked on the signal processing and I worked on the UI system.

Evaluation Stage

After our racket was complete we had a usability testing phase where we invited university students to come and try out our tennis racket. While the students used the racket we observed their behavior and made notes of pain points they encountered. A pain point that we found was that the users were sometimes confused as to why there were 3 sliders. Since we had 3 signals coming from the racket, X, Y and Z movements it was necessary to have 3 sliders instead of 1. Perhaps if we had continued development on this product we could have found a way to merge the 3 signals during the signal processing stage.