Squat movement classification project

Dear All,
I am new to the community. I have a project in mind and wanted to discuss its feasibility on this forum before attempting it. I want to build a model which can determine if a squat movement has been correctly performed or not (binary classification). I will have accelerometer and gyroscope data readings as input from two sources; 1) an android smartphone strapped to the right thigh and 2) an Arduino Nano 33 BLE Sense strapped at the right wrist in a similar fashion as a wristwatch. The Arduino board should send its readings to the smartphone which will compile the received data as well as its own captured data into a dataset. In this way, I will gather a large number of datasets from willing participants. Using those datasets, I will train a DL model on Edge Impulse which I hope to eventually compile into a binary file to upload on the smartphone. The final goal is to have the smartphone run the DL model which will classify a squat movement as proper or improper using real-time data from the accelerometer and gyroscope of the smartphone and Arduino board. Any feedback on this would be much appreciated.

Hello @Nikheel,

This project seems feasible :slight_smile:
I did a similar project for a workshop, feel free to have a look: https://github.com/edgeimpulse/example-SparkFun-MicroMod-nRF52840

It classifies 4 kind of movements: squats, jumping-jacks, rest and no-movement. But you can adapt it to create your binary classification between “good squats” and “bad squats”.

On the workshop I am using the MicroMod nrf52840, which is the same microcontroller as the one in the Arduino Nano 33 BLE Sense, so the bluetooth part should be easily adaptable.

Let me know if you have some questions and feel free to share your project once you have your first iterations working.

Regards,

Louis

Hello @louis,

Many thanks for the reply as well as the positive feedback. I will most certainly take a look at your project and revert back. :slight_smile:

If I feel the project taking shape as intended, I will share it.

2 Likes

Hello @louis,

I have not been able to get hold of an Arduino Nano 33 BLE Sense since they seem to be sold out everywhere. From your experience, would an Arduino Nano RP2040 Connect or Arduino Nano 33 IoT do the trick as I only need the board for the accelerometer and gyroscope readings with BLE capabilities to transfer the data to my smartphone? Thanking you in advance.

Hello @Nikheel,

I don’t have any of those two.
The main difference I see between the Arduino Nano 33 BLE Sense is the microprocessor.

  • The Arduino Nano 33 BLE Sense has a Cortex M4 which is required for audio projects using Edge Impulse.
  • On both of your suggestions, they have a Cortex M0, which should be fine for accelerometer-based project but none are “fully supported by Edge Impulse” meaning that you’ll have to forward your data using the data-forwarder (this part is easy :wink: ) and you won’t be able to generate a pre-built binary. This does not matter if you know how to write Arduino code and want to build a custom solution anyway. In this case, you can export an Arduino Library or directly the C++ Library and integrate it to your project.

Also, considering the Cortex M0, I am not sure that it can support both inferencing and wireless communication at the same time as I have not tested it. You may need to optimize your memory resources (this part is a bit more complicated but should be fun).

Regards,

Louis

Hello @Nikheel
Very interesting and useful project! I for once also struggle with proper squats form :slight_smile:
So, seeing that you plan to run inference on a cell phone and use microcontroller just for data collection and transfer, I do not think there would be any issues with using RP2040 - it is fast enough for sure to read acceleromter/gyro data and send it over BLE to wherever you want to send it.
We are currently working on AT firmware for RP2040 chip, that would make data collection easier. Although, as @louis mentioned at the moment you can use data-forwarder, as long as required data sampling frequency is not too high.

1 Like

Hello @louis and @AIWintermuteAI,

First of all, Happy New Year 2022 to you :slight_smile:

Yes, I am concerned with the resources available on both models and if they will support data collection with transfer which is why I was going for the Arduino Nano 33 BLE Sense in the first place. Resource-wise, the RP2040 chip is better and will be able to hold up as you guys advised. I will check the performance of the Arduino Nano RP2040 Connect more thoroughly before purchasing it. Even if it does not work out, I will at least have a starting point.

2 Likes