Accelerometer frequency

Showing 1-6 of 8 messages
Accelerometer frequency ashu 2/11/09 2:33 AM
Hey, I wanted to get the frequency of accelerometer output.  How many
readings can I get per second?  And to what precision do I get?  Thanks
Re: Accelerometer frequency iranai 2/11/09 6:14 AM
Supposedly you pass a 3rd parameter to the sensormanager's
registerLister function but It doesnt seem to make any difference.
Re: Accelerometer frequency ashu 2/17/09 1:39 AM
So my question still stands.  Frequency? Precision?  Thanks for the
attempt, Jubei.

On Feb 11, 6:14 am, Jubei <nkatza...@gmail.com> wrote:
> Supposedly you pass a 3rd parameter to the sensormanager's
> registerLister function but It doesnt seem to make any difference.
>
> On Feb 11, 7:33 pm,ashu<montoo...@gmail.com> wrote:
>
>
>
> > Hey, I wanted to get the frequency of accelerometer output.  How many
> > readings can I get per second?  And to what precision do I get?  Thanks- Hide quoted text -
>
> - Show quoted text -
Re: Accelerometer frequency gjs 2/17/09 11:08 PM
Hi,

Try logging the data received with timestamps ( in memory ) for
android.hardware.SensorListener.onSensorChanged(int sensor, float[]
values) and you'll soon work out the Frequency, I have found
accelerometer updates being received at approximately 30~40ms
intervals on a G1 eg:

1227266554492 2 [0] = 0.16344418 [1] = -9.629586 [2] = -1.3620348 [3]
= 0.16344418 [4] = -9.629586 [5] = -1.3620348
1227266554495 1 [0] = 7.3883734 [1] = -82.0 [2] = 1.0 [3] = 7.3883734
[4] = -82.0 [5] = 1.0
1227266554525 8 [0] = 8.3125 [1] = 12.875 [2] = -71.5625 [3] = 8.3125
[4] = 12.875 [5] = -71.5625
1227266554528 2 [0] = 0.05448139 [1] = -9.684067 [2] = -1.3075534 [3]
= 0.05448139 [4] = -9.684067 [5] = -1.3075534
1227266554531 1 [0] = 7.5050936 [1] = -82.0 [2] = 0.0 [3] = 7.5050936
[4] = -82.0 [5] = 0.0
1227266554564 8 [0] = 8.5625 [1] = 12.125 [2] = -71.5625 [3] = 8.5625
[4] = 12.125 [5] = -71.5625
1227266554566 2 [0] = 0.040861044 [1] = -9.670447 [2] = -1.3211738 [3]
= 0.040861044 [4] = -9.670447 [5] = -1.3211738
1227266554603 8 [0] = 8.0625 [1] = 12.375 [2] = -71.8125 [3] = 8.0625
[4] = 12.375 [5] = -71.8125
1227266554606 2 [0] = -0.013620348 [1] = -9.724928 [2] = -1.2666923
[3] = -0.013620348 [4] = -9.724928 [5] = -1.2666923
1227266554609 1 [0] = 7.5050936 [1] = -83.0 [2] = 0.0 [3] = 7.5050936
[4] = -83.0 [5] = 0.0
1227266554643 8 [0] = 8.3125 [1] = 12.375 [2] = -71.8125 [3] = 8.3125
[4] = 12.375 [5] = -71.8125
1227266554646 2 [0] = -0.013620348 [1] = -9.615966 [2] = -1.2666923
[3] = -0.013620348 [4] = -9.615966 [5] = -1.2666923
1227266554649 1 [0] = 7.5050936 [1] = -82.0 [2] = 0.0 [3] = 7.5050936
[4] = -82.0 [5] = 0.0
1227266554683 8 [0] = 7.8125 [1] = 11.625 [2] = -71.5625 [3] = 7.8125
[4] = 11.625 [5] = -71.5625
1227266554686 2 [0] = 0.040861044 [1] = -9.615966 [2] = -1.2666923 [3]
= 0.040861044 [4] = -9.615966 [5] = -1.2666923

(These examples were when using SENSOR_DELAY_GAME rate, you can
probably do better if you listen just for the accelerometer updates
and use a faster RATE)

You can also vary this Frequency (rate) with
android.hardware.SensorManager.registerListener(SensorListener
listener, int sensors, int rate)

int        SENSOR_DELAY_FASTEST        get sensor data as fast as possible
int        SENSOR_DELAY_GAME        rate suitable for games
int        SENSOR_DELAY_NORMAL        rate (default) suitable for screen orientation
changes
int        SENSOR_DELAY_UI        rate suitable for the user interface

I can't help you with the Precision, maybe have a look at
android.hardware.SensorListener.onAccuracyChanged (int sensor, int
accuracy).

Another idea is to find the specs for the sensor being used in the g1
or g2, but there is nothing like measuring it for yourself....

Regards
Re: Accelerometer frequency Jordan Frank 2/19/09 9:10 AM
I've done some experiments with the accelerometers, and so I figured
that I would share the results.

As for precision, the values are floats. I don't know how else to
quantify the precision without looking at the specs for the actual
sensors being used. Qualitatively, the noise in these sensors is very
low. I've worked with accelerometers in other devices, and the G1
sensors have the least amount of noise of all the sensors that I've
used. For my experiments, I'm not interested in large forces, more the
kind that occur during natural human motion. The sensor readings tend
to lie in the (-3g,3g) range.

In the documentation, it says that there are 6 sensor values:
x,y,z,raw_x,raw_y,raw_z. The documentation states that the x,y,z
values may be smoothed, while the raw ones are the raw sensor
readings. However, on the G1, the raw readings are identical to the
"smoothed" readings. One thing that I'm suspicious of is that the low
noise in the readings is actually due to the G1 doing some smoothing
of the data, and the raw values aren't in fact the raw values, but are
also smoothed. I'm not sure how to figure out if this is what is
really happening.

I first tried SENSOR_DELAY_FASTEST. I collected data over a 15 minute
period. The average frequency was 21.0025, with standard deviation of
8.0061. I then tried SENSOR_DELAY_GAME, and found that the frequency
was more consistent. I went for a 2 minute walk and the average
frequency was 40.2894 with a standard deviation of only 3.3162.

I hope that someone finds this useful.

Cheers,
Jordan Frank
Ang.: Accelerometer frequency Dag Rende 5/29/11 11:37 AM
Hi,

I made some more tests on my Nexus S with OS 2.3.4.

Sensor reading period averages for different sensor delays.

Sensor.TYPE_GYROSCOPE
  • SENSOR_DELAY_NORMAL 9.2ms
  • SENSOR_DELAY_UI 9.2ms
  • SENSOR_DELAY_GAME 9.2ms
  • SENSOR_DELAY_FASTEST 1.15ms
Sensor.TYPE_ACCELEROMETER
  • SENSOR_DELAY_NORMAL 161ms
  • SENSOR_DELAY_UI 20ms
  • SENSOR_DELAY_GAME 20ms
  • SENSOR_DELAY_FASTEST 20ms
Sensor.TYPE_MAGNETIC_FIELD
  • SENSOR_DELAY_NORMAL 125ms
  • SENSOR_DELAY_UI 60ms
  • SENSOR_DELAY_GAME 20ms
  • SENSOR_DELAY_FASTEST 16.7ms
Regards,
Dag