The Bosch Hackathon's project that helps you learn boxing
In India, many talented engineers work for Bosch, one of Arduino’s partners. We would like to shed light on one of the projects that was built during the Bosch Hackathon this year. A team created a very interesting project – Eklavya – an affordable tool that helps to teach and improve skills for the sport of Boxing.
After Dileep Prabhu, Manojkumar Parmar, and Shreyas Shanbhogue were selected to participate in the Bosch Hackathon, they decided to compete in the sports category.
Creations from this hackathon could bring affordable technology to the many different sports that people play in India and all over the world. The team mainly considered three sports: synchronized swimming, fencing, and boxing. Eventually, they decided to focus on boxing. The name of the project – Eklavya – comes from an epic Indian mythological character. He had a natural ability and achieved perfect performance in archery without any coach or teacher. The team wanted to created a tool for such “Eklavyas” who cannot afford a coach for their sport or are living far away from facilities.
The plan to create this overall data architecture was broken into Hardware(Arduino) + UI(Processing) + Signal Processing (R server). As a prototype, they captured data from the BNO055 sensor on an Arduino Due board, this was then sent over a Bluetooth interface via HC05 and received or parsed via Processing s/w. The parsed data was then sent to the R server and the data analysis was performed over it. With this model, they had made the prototype to have 3 main features:
1) Stamina regime: How many punches per-minute should you aim to throw? The team showed this in real time as well as recorded the data for post processing. Haptic feedback was given in real time if the user exceeds their chosen threshold or goal of their own punch frequency. For example, you could maintain that frequency for 10 minutes, then the next workout, 15 minutes!
2) Intensity regime: How hard do you want to punch? The intensity of the punch force is calculated, based on momentum transferred to the punching bag (assumed to be 25 Kgs)
3) Punch analysis: How does an individual punch compare with the form of a perfect or good punch? The team stored “upper cut” moves which were analyzed in three dimensions. The live data of more upper cuts were continuously analyzed to see if the punch was performed again with the same orientation and intensity. If so it was counted as a good punch. In this way, individual boxers can compete with their own technique or that of famous athletes!
Arduino Due and BNO 055 generates data at an interval of 50 ms (@ 20 hZ), however this timing is really small for the application to process data and derive meaning from the information, let alone to produce a visualization. So the sampling was shifted to 100 ms (@10 hZ), but there was still a lag in processing the data. Any sampling taken at larger intervals than 100 ms was not producing adequate results either. To circumvent this issue, the team tried generating the data at an interval of 200 ms (@5 hZ) which was comprising 2 samples collected over 100 ms. This problem was solved by generating appropriate data frames in Arduino IDE and later parsing the same in Processing.
To detect a punch, the team had to utilize an edge detection mechanism using a linear acceleration sensor. The software engineers wrote an edge detection algorithm which took some tuning with appropriate parameters like threshold and high pass filter mechanism. The final result showed satisfactory accuracy to those in attendance of the hackathon.
With the punching bag, engineers had to detect the force exerted on the surface per punch. The team could’ve used another sensor in the punching bag but instead used the solution of Newton’s cradle. If a fist collides on a punching bag, the deceleration experienced by the fist is the same as the acceleration experienced by the punching bag.
This is defined by conservation of momentum and energy. The weight of the punching bag is used to calculate the punch force. This was the approximation model which was developed during the hackathon.
Overall punch analysis was performed by matching a punch template to each new punch. The perfect punch was averaging the 6 best punches from a sample size of 25 punches. For most people to use and enjoy these new tech functions, the team needed to provide a visualization. With real-time live data, they created a scatter plot in 3D for the boxer to view how they were doing.
The Eklavya project was created over the two day event and chosen as one of the top four finalists of the Bosch Hackathon in India. This would be a very fun way for people to try boxing for the first time, or for those serious about the sport to continue to improve, using data.