The objective of this project is to create and improve a wearable, user-friendly automatic fall detection and alert device. At this current time, the device has been created, but improvements are needed. The self-activating fall alert must be a wearable, wireless device which collects the acceleration and orientation data of the user prior, during, and after the event of a fall. It also must be able to autonomously send alerts to a series of caregivers when an incident has occured. The device must be able to go extended periods of times without needing to be charged.


We will be using the following parts for our system:
     9DOF Razor IMU
     Bluetooth Mate Gold Module
     400 mAh Lithium-Ion Battery
     3D Printed Attachable Case

device    attachable case

Fall-Detection Algorithm

The fall-detection algorithm was designed last year. The last group had developed an alogrithm that automatically detects the falls based on the IMU data. They had determined that they could detect falls soley using the acceleration data. Last year, they did testing for different scenarios that were based on daily actions. Some of the tests consisted of sitting, standing, walking and laying down. From these tests the acceleration was determined to be different from the acceleration data from a fall. From all of the data that was gathered, the team was able to set up a baseline and threshold for the different events. The algorithm is based on the fall threshold value, and if the magnitude of accelecration was to exceed the determined threshold.

The fall-detection algorithm that was designed this year utilizes either the accelerometer or magnetometer sensor readings.Using a built-in Python library, numpy, all imported data gets stored into an array. The next step is to calculate the magnitude of the accelerometer sensor data and compare it to a threshold. For a second comparison, the algorithm uses the relative error of the acceleration compared to a second threshold. The relative error is based on the previous and current acceleration data point from the dataset. To determine and optimize the thresholds the script runs a differential evolution algorithm. This allows for the fall detection error to be minimized. It is important to note that the small amount of variables being optimized will not cause overfitting of the data and will not result in any issues. During the process of developing this algorithm, it was found that the magnetometer, and the accelerometer are both capable of producing accurate results. However, at this point only the magnetometer is being utilized.


The current algorithm utilizes two optimal thresholds. These optimizations were originally performed on the single threshold algorithm that was previously being used. During the process of optimizing the number of false positives that occurred, it was found that the previous detection algorithm had the capability to correctly identify whether a fall had occurred in 23 of the 30 SD card datasets. Based on these findings, it was determined that the success rate was 76.67%. The current algorithm has the capability of correctly identifying whether a fall has occurred in 27 of the 30 SD card datasets. This algorithm currently has a success rate of 90%. Both of these algorithms were using the accelerometer readings prior to observing that the magnetometer had better accuracy. Using the data provided by the magnetometer the current algorithm was able to correctly identify 26 of the 30 datasets. Based on these findings using the magnetometer and the current algorithm the success rate was 86.67%. Even though this success rate is lower than the success rate when using the accelerometer it is still a significant improvement comparatively to the old algorithm.

Fall-Response Algorithm

The fall-response algorithm was also designed last year. The team used postfix to send email messages, which then gets converted to SMS through a email-to-text services provided by phone carriers. It works by waiting for the fall flag to become high. When this event happens the alogrithm sends an email addressed to a phone number conntected to a carrier's email, which automatically converts the message to SMS and sends that messge to the recipient's phone.

Some changes that were done this year was adding the capability to have any number of emergency contacts. There was also an error checking method thrown in for if a phone number was not of the correct length, so the algorithm would not waste time or cause any data charges.

An example of the text can be seen below, as well as a video of the post analysis and alert being sent.