Saturday, April 25, 2009

Determining Body Movement with Mobile Phone

Currently I'm trying to develop a solution which would determine the type of movement by measuring accelerations with mobile phone.

By reading acceleration data many things can be discovered. The persons's walk pattern is almost as unique as fingerprint. By reading the walk (movement) patterns early stages of a possible disease could be recognized as well. Another thing that could be implemented is fall/collision detection and automatic emergency call. These are just a few of the possible uses of the solution.

So far the mobile devices haven't been powerful enough to perform all the required processes independently, but luckily the data transmission is cheap and fast enough so the main analysis can be performed on the server.

The accelerometers are cheap so almost every new phone have built-in sensors. Currently I'm using HTC Dream G1 (Android) phone and developing client application in Java. The server-side application has been built in C# .NET.

So far I have established the connection between the phone and server. The phone sends the location data and acceleration measurements to the server which runs the analysis.
I've managed to determine some simple user behaviour patterns such as walk, run and rest by measuring the frequency components of the pattern.

Below there are the charts for collision and walk in time and frequency domain.

These are the acceleration values of simulated collision:

and these are the accelerations of walk:
In both cases The DFT has been performed on 32 sample points at sampling frequency 2.5 Hz.
This is the phone screen (any suggestion about the design is more than welcome). The phone gets the location address by performing reverse geocoding (part of the existing framework) and the activity status by questioning the server.

1 comment:

  1. very interesting stuff. and very smart of you to share the development process publicly.

    thumbs up!