​Real-time Fitness Assistance via WiFi


People cannot dedicate appropriate time during the day to travel to dedicated exercises places, resulting in a population that either does not exercise, or attempts to exercise at home. Unfortunately, those who work out at home have difficulty analyzing their exercise form, which could result in harmful muscle strain or other personal injury. Personalized trainers, while possibly effective, run a significant cost. Fit-bits cannot measure exercise form, only heart rate and select other things. Smart sensor suites are expensive and have to be attached to a body to be effective, which is uncomfortable, unnatural, and may impede exercise form. Our solution is a device-free personalized fitness assistant that analyzes the channel state information of existing WiFi infrastructure. Our system detects four common exercises (push-ups, squats, sit-ups/crunches, and curls) and analyzes several factors to assess the workout quality for the user.

Problem in Depth

As people's lives become sedentary, they are at increased risk for chronic illnesses such as obesity and heart disease. As a result, the desire for maintaining good health has increased. One of the most important and efficient ways of becoming and maintaining good health is through good exercise. However, it is hard for people to dedicate necessary time to perform exercises during the day. Thus, more people are not exercising in dedicated exercise places, and instead exercising at their home or office.

There are previous solutions to monitoring exercises at home, but all have drawbacks which leave more to be desired. Personal trainers are beneficial to monitoring exercise form, but have many complications. Trainers can have multiple clients, and thus a schedule that an exerciser might not be able to adhere to on a week-by-week basis. Trainers are also expensive, averaging about $55 for an hour session in 2019. Group fitness training is a little cheaper, at $35 a class, but that is still expensive for some consumers. Fit-bits and smartphones also have exercise monitoring software, such as heart rate monitors and step counters. However, these tools are more useful for endurance exercises. Additionally, these devices cannot measure exercise form, which may lead the user to having an inefficient work out or suffer a personal injury. Recently, smart sensor suites have been developed which can monitor user's exercises. Unfortunately, these suites usually require people to attach sensors to themselves and their exercise equipment, which is uncomfortable, unnatural, and expensive.

Solution in Depth

Our solution uses the channel state information (CSI) that is embedded in WiFi signals to determine what exercise a user is performing. WiFi is the best candidate because it is ubiquitous in a most settings, meaning users would not have to buy dedicated devices for exercise monitoring. Additionally, individual features can be derived from CSI, allowing the detection of different exercises. To extract these features, we implemented a Deep Neural Network that searches for repetitive patterns in the CSI data using autocorrelation, which compares a signal to a copy of itself at a different point in time.


We used a TP-LINK router at the 5GHz frequencies. To receive the CSI data from WiFi, we used a Dell Laptop with an Ubuntu 14.02 kernal and an Intel !Wifi Wireless Link 5300 MIMO radio (IWL5300). We used the Linux 802.11n CSI Tool (created by Daniel Halperin, Wenjun Hu, Anmol Sheth, and David Wetherall), which is built off of the IWL5300. This tool allowed us to collect and read CSI data on the client computer.

Using Python, we created a socket server on a Dell G3 laptop equipped with Windows 10. Additionally, we modified a fork of the tool (fork by Piotr Gawlowicz) to turn the binary streams of CSI data into complex numbers which we could then graph and perform computations with. For graphing, we used PyQt5, a GUI toolkit, PyQtGraph, a lightweight plotting module that has improved performance for real-time plotting of data. For our deep learning, we used TensorFlow, a popular library used for machine learning.


We choose four exercises to test the effectiveness of our system. These exercises are popular and work out most muscle groups of the body:

  • Push-ups
    • Triceps
    • Chest
  • Squats
    • Legs
  • Sit-ups/Crunches
    • Abs
  • Curls
    • Biceps

Languages and Libraries

  • Python
    • PyQt5
    • PyQtGraph
    • TensorFlow
    • NumPy
    • Socket
  • C
  • Matlab


Justin Esposito
Electrical Engineering and Computer Science

Class of 2022
Rutgers University
Sachin Mathew
Electrical Engineering and Computer Science

Class of 2022
Rutgers University
Amit Patel
Electrical Engineering

Class of 2022
Rutgers University
Rishika Sakhuja
Electrical and Computer Engineering

Class of 2023
Rutgers University
Kushaan Misra
High School Student

Class of 2020
Singapore American School
Last modified 2 years ago Last modified on Aug 15, 2019, 3:56:27 PM
Note: See TracWiki for help on using the wiki.