What about running (not so light weight) algorithms to process the sensors data directly on the device?

matteo diana's picture

Assume I am using common IMU sensors frequently present in average to high quality smartphones. An application on the device provides a data log using the smartphone sensors for about a period length that varies from 25 seconds to few minutes. Now consider that I want to further process/filter the data in order to obtain pose estimation, user activities detection and classification which currently involve some not so fast/light algorithms ( EKF, NCF, integrations, interpolations, GUI handling). Assume now that multiple devices run the same application in order to get a data log. My idea is, since the smartphone devices that are equipped with Accelerometers, Magnetometers, Gyros for example, are also kind of better than average in computation power (I derived this basing on the fact that those IMU sensors are often mounted on the pricy models), what about running all my algorithms, still offline, but on the single device instead of sending all data logs to a central server/unit that processes the entire data log set received? In the end, what I am proposing is just distributed processing instead of a centralized one.

The main concern is, are smartphone devices that mount such sensors also powerful enough to evaluate these kind of algorithms in minutes at most without taking all CPU power that the user cannot 'use' the device for the entire processing time?

What is your opinion Sfonge crew ? ? Is it doable?

Gabor Paller's picture

You are right that modern smartphones are very powerful devices. But there is a reason, why that power is so underutilized (basically the device is always sleeping): battery consumption. There was a very good presentation held at Droidcon London 2013 about "application quality", in particular about effects on battery. I propose you to watch the video then come back with your idea. :-)
http://uk.droidcon.com/2013/sessions/understanding-the-what-and-how-of-android-app-performance-2/

matteo diana's picture

Sincerely thank you for the presentation link since it helped me to get introduced to brand new interesting topics clearly explained during the talk. Your point is quite simple and fairly understandable. So back to the idea of moving all the computations to a server, what programming languages would you recommend me to program in, considering the kind of algorithm that I am developing?

Merry Christmas to all the Sfonge crew btw!