Create a device that can give us measurements of the movements of the swimmer’s hand. Give real measurements of the pitch, roll and yaw movement of the hand of a swimmer. The data will be read by a gyroscope, an accelerometer and a magnetometer. Then will be send to a pc to display it in a human machine interface


Progamming using C, Comunication protocols, Analog and Digital Sensors, and LabView


J. Cabrera, O. Vargas, M. Arellano, and D. Azúa


15 weeks

My role

I collaborated rewriting the algorithm to adapt it to the system we proposed, obtain the angles in degrees for each axis. Also, I draw the paddle in a Computer-aided design software, and then obtain the pertaining 3D file. After it was printed we tested inside a swimming pool in order to ensure it was completely sealed.

Proof of concept

Tecnológico de Monterrey 2016


In swimming an efficient technique is more important than fitness. There are few low-cost methods to retrieve real time data from swimmers.

Our solution


Our Approach to Design



There were several sketches and models until we had 2D and 3D representations of the final prototype. Next, the computer-aided design and model was created for all the components of the device. Then, all the components were 3D printed and we checked tolerances and adjustment to then reprint them again if necessary. Finally, we post-processed the parts, sanding and painting.

Primary research

We interviewed a class instructor, a lab manager, and a student to understand how the current inventory management system works in the University of Washington laboratories. Then we created surveys for students and lab staff, to understand the manual process to manage the laboratory equipment and items. Also, we sent surveys to potential users, including users of labs, warehouse employees, and libraries administrators to obtain information related to potential features and concerns about interacting with robots.

User Testing

First, we did 1:1 User Evaluation to test the Hardware/Software and the check-in/check-out process. Participants performed a series of tasks under instruction by one of our team members. Notes and video recording were taken, six participants are involved in each round of the 1:1 evaluation. Then, we ran a Fly On The Wall session to observe the Human-Robot Interaction. We took notes of people’s behaviors when the mobile robot was navigating through the environment, without and with sound alerts. The robot received a series of navigation goals sent by the operator and it was up to the navigation stack to do the routing and planning. We observed users for 20 mins in the GIX laboratory. 

Functional Testing

First, we defined metrics for each part of the system. For the navigation, we sent a navigation goal to the Fetch and then we measured the success rate, time, distance from the nav goal, and the number of collisions. Next, for the Fetch and Kinova  grasping, we also measured the pick and place time and success rate. 

Secondary Research

We started talking with the coach of the swimming team, to understand how they are actually measuring and the importance of the hand position in swimming. After defining the features, we started looking for sensors and algorithms that could help us to provide coaches useful information related to the athlete. 


The STM32f3 Discovery Microcontroller reads the inputs, process the input, and finally sends the output to a PC. This microcontroller have tri-axis gyroscopes, accelerometers, a MARG sensor array, and a tri-axis magnetometers. The roll, pitch and yaw is calculated using the microcontroller’s gyroscope and accelerometer and employing the Madgwick’s Inertial Measurement Unit (IMU) and IHRS sensor fusion algorithm. This algorithm is developed in C language using the IDE MicroVision to then interface it with the STM32f3. We based in an IMU project that was already wrote in C language. Also we ensure that the program can run in the architecture of the microcontroller. The Microcontroller used didn’t have a Bluetooth module, we used a Bluetooth Chip BC04 that will be works as Slave. The module received the output from the STM32f3 and then sent it to the PC as a string. Through the PC Bluetooth COM the computer will received the output of the microcontroller. Then it will displayed in a LabVIEW dashboard in real time. We decided to have two different ways of sending the data. When the paddle is outside the water (for tests) and we sent the data in real time. And when the paddle is inside the water, we saved the data obtained and after the swimmer ends its routine the data is sent to the PC to avoid interference.

My takeaways

We collaborated with the swimming team to build this device, to understand how we could give them useful metrics. During this project we did a lot of testing inside the water since it's an environment where the communication is not stable. Also we understand how to integrate multiple sensors and algorithms to obtain accurate measurements using a low-cost microcontroller.

Designing using emerging technologies in new and impactful ways.