Phantast / smartnavi

SmartNavi offers OpenSource, step-based and GPS independent navigation for Android. smartnavi-app.com
Other
225 stars 79 forks source link

algorithm for step detection and sampling frequency of sensors #1

Open courdi95 opened 9 years ago

courdi95 commented 9 years ago

Hello

I had a look to your code and particularly to core.java which integrates all the signal processing on sensors data.

I am just wondering : . Masked code : a lot of code is under comments, what is the purpose of this code ? . Explanation of the algorithm : do you have a document that presents the algorithm ? (reverse engineering is not easy) . It seems that a kind of filtering is done samples ? Low pass ? Which value for cut off frequency ? Which kind of fir or iir ? . It seems that you are doing same filtering without detecting real sampling frequency, but it may be different on various devices (from 50 to 200 hz or 100 hz) : filter coefficients should be different

Best regards.

Phantast commented 9 years ago

First of all, thanks for your interest in SmartNavi!

Additional Notes: There are many different ways of filterung or correcting the orientation data. You may experiment with your own device to find a good solution. If you think you have a good enhancement for SmartNavi, I would be happy to discuss with you further or to see a pull request on github. ;)

courdi95 commented 9 years ago

Hello Martin

Thank you for your answer.

I had a look to the code :

Concerning sampling frequency you can easily get them with the app "Check the sensors sampling rate" (https://play.google.com/store/apps/details?id=cn.mountqi.sensor.rate.checker). I have only a smartphone with 100 Hz : GS3 mini.

Best regards.

Phantast commented 9 years ago

First of all, I am not Martin. :) Who is that?

For future development of the code, it would be nice if the frequency of the sensors is lowered if it is higher than needed. For example if the meanAclFreq is 125 we should lower down the frequency, because even 25Hz would be fine - and would save even more energy.

stepdetection

courdi95 commented 9 years ago

Hello Christian or Phantast,

"Martin" : I don't know him ?!? .... I have made first version of this message on my G Tab, certainly it is the automatic spelling correction that made this trick :-( ....

Concerning algorithm, you are right, I have not checked if the rate was maximum, but I tried smartnavi on my Nexus 5 it gave me so foolish direction that I wanted to check the basic algorithms.

Thank you for the diagram, it will help me understand what it is inside stepdetection().

I will look this. Do you have a figure with displayed signal explaining threshold ? Especially, what are you using only y axis ?

Could you use a combined value of all directions x2 + y2 + z**2 ? But it would give only positive values ?

Phantast commented 9 years ago

Hey courdi, you are getting into it. Keep it up! ;)

The really difficult task is to compute the direction well. This is even more difficult because in Android we are talking about ~6000 different devices that the app can be downloaded on. And even devices of the same model (e.g. two Galaxy S) may differ because of cheap sensor hardware that is built in.

Just carry on! ;)