The inspiration for the SoccerSock began with a trip to Brazil that Yanni a member of the team took in his sophomore year of high school. After observing many of the children there playing soccer with nothing but their bare feet and even joining in himself for a few games, he realized that even though it was extremely unfortunate that these kids did not have the money to afford shoes, growing up playing bare foot is what has allowed all the great Brazilian players to develop such an amazing touch and skill on the ball. Yanni wanted to find a way to bring the Brazilian style of play and training back to the US, so the SoccerSock, a hybrid shoe and sock that gives the user the feel of playing barefoot but provides the protection of a regular shoe, was born. Since then the SoccerSock team has grown in order to bring the product into the emerging and disruptive fields of wearable technology and artificial intelligence. With added sensors and machine learning algorithms the SoccerSock can not only naturally allow the player to develop a better touch on the ball but also track their training data and even act as a coach by letting the player know how their technique can be improved. The big picture vision for the SoccerSock is to be able to expand the underlying data tracking and analysis technology within the product so that it can be used in other sports such as football, basketball and volleyball as well as other industries such as physical therapy.
What it does
First, accelerometer and gyroscope data are recorded using a BNO055 sensor. The data is then imported into matlab where we can calculate the corresponding position of each kick. Once we do this, we save the new data and run it through a neural network to detect what kind of kick it was (pass, chip, cross, etc.). Once we have extracted the type of kick, we can pass this data into Unity where we can visualize both an ideal kick (from the training data), and the new kick to see how the new kick differs from an ideal kick. With this, the user should then be able to correct and adjust his form to become a better player. What differs us from other motion detecting devices and applications is that we only use an IMU to capture rotation and position, so our product is more portable and feasible for users to setup and use.
How we built it
We already had the custom sock manufactured, and we created velostat sensors using copper to detect a kick through a change in voltage. Using an IMU we were able to capture accelerometer and gyroscope data which we then used to calculate orientation (with quaternions) and position data (through double integration). To try and mitigate the effects of drift, we ran the positional data through high and low pass filters which helped us achieve better results. With this data collection method, we were then able to gather training data for a machine learning model to use. We kicked a ball over 100 times and varied the kick to gather good kicks and bad kicks which the machine learning model can then use to predict the type of kick of new data. Once the model finds the type of kick, we then use Unity to visualize both the ideal kick, and the new kick to help the user ientify where they can improve their form.
Challenges we ran into
The biggest challenge we had was converting the accelerometer and gyroscope data into accurate position measurements without drift. Due to imperfect sensor readings, when double integrating acceleration to position, an error can accumulate (drift) due to the small errors in the sensor readings. Another challenge we ran into was differing between a world and local frame in the gyroscope data and Unity as Euler angles can encounter gimbal locks so we had to use quaternions to try to accurately visualize the rotation data.
Accomplishments that we're proud of
Being able to finally figure out an accurate way of integrating from accelerometer data to position data was definitely a big challenge as we mentioned above, so we were very excited when we were able to figure out how to make it work. Another accomplishment we were proud of was just the consistency we were able to achieve with the data output when doing real time kicks to train our machine learning algorithm.
What we learned
How to accurately convert accelerometer data into position data while taking drift into account, how to create web sockets, how to sew both by hand and with a machine, how to create our own pressure sensors from scratch using velostat, how to use Unity to visualize position and rotation data
What's next for SoccerSock
This is just the tip of the iceberg of the capabilities of this technology. Not only could this be used for soccer kicks but for data recording and analysis of all different types of techniques used in sports such as a jump shot in basketball, a quarterbacks throw in football or a serve in volleyball and the list goes on. We have also contemplated the feasibility of this technology in the Physical Therapy field where it could be used to track the progress of patients over the span of their recovery (ex. range of motion improvements week to week, improvements on form when doing rehabilitation exercises)
Some of the next steps that need to be taken to meet these goals are: Improve sensor mapping of foot as well as overall SoccerSock prototype Improvements on algorithm and the training of the algorithm so that it can give the user more specific and useful feedback so that they can correct their technique more effectively and easily Begin to plan the best way to apply the technology to the different sports mentioned above as well as physical therapy