Para obtener la posición de la aceleración, necesita integrarla dos veces.
La aceleración de integración le da velocidad e integrando la velocidad le da la posición.
Tenga en cuenta que la integración del ruido crea deriva y la deriva de integración crea MUCHA deriva, los sensores de Android tienden a generar bastante ruido.
En mi Galaxy S3 he podido conseguir la deriva en posición hasta 0,02 m en 5 segundos utilizando el sensor de compilación lineal Acelerómetro de Google.
No estoy seguro si puede usar el sensor de acelerómetro lineal en gingerbread. Si no puedes, tendrás que eliminar la gravedad antes de integrarlo.
Si no lo ha hecho, lea todo lo que aquí http://developer.android.com/guide/topics/sensors/sensors_motion.html
una gran charla sobre los sensores de movimiento en el androide Código
http://www.youtube.com/watch?v=C7JQ7Rpwn2k
:
static final float NS2S = 1.0f/1000000000.0f;
float[] last_values = null;
float[] velocity = null;
float[] position = null;
long last_timestamp = 0;
@Override
public void onSensorChanged(SensorEvent event) {
if(last_values != null){
float dt = (event.timestamp - last_timestamp) * NS2S;
for(int index = 0; index < 3;++index){
velocity[index] += (event.values[index] + last_values[index])/2 * dt;
position[index] += velocity[index] * dt;
}
}
else{
last_values = new float[3];
velocity = new float[3];
position = new float[3];
velocity[0] = velocity[1] = velocity[2] = 0f;
position[0] = position[1] = position[2] = 0f;
}
System.arraycopy(event.values, 0, last_values, 0, 3);
last_timestamp = event.timestamp;
}
Ahora usted tiene la posición en el espacio 3D, tenga en cuenta que supone que el teléfono está estacionario cuando está muestreo de rts
Si no quita la gravedad, pronto estará muy lejos.
Esto no filtra los datos en absoluto y generará mucha deriva.
Posible duplicado de [Usando el acelerómetro, el giroscopio y la brújula para calcular el movimiento del dispositivo en el mundo 3D] (http://stackoverflow.com/questions/8264518/using-accelerometer-gyroscope-and-compass-to-calculate-disvices- superconjunto movimiento-en-3d) que también solicita el estado de rotación. –