He intentado varias formas de medir los pasos que un usuario hace con un iPhone leyendo el acelerómetro, pero ninguno ha sido muy preciso. La aplicación más precisa que he utilizado es el siguiente:¿Cómo puedo mejorar la precisión de este algoritmo de podómetro?
float xx = acceleration.x;
float yy = acceleration.y;
float zz = acceleration.z;
float dot = (mOldAccX * xx) + (mOldAccY * yy) + (mOldAccZ * zz);
float a = ABS(sqrt(mOldAccX * mOldAccX + mOldAccY * mOldAccY + mOldAccZ * mOldAccZ));
float b = ABS(sqrt(xx * xx + yy * yy + zz * zz));
dot /= (a * b);
if (dot <= 0.994 && dot > 0.90) // bounce
{
if (!isChange)
{
isChange = YES;
mNumberOfSteps += 1;
} else {
isChange = NO;
}
}
mOldAccX = xx;
mOldAccY = yy;
mOldAccZ = zz;
}
Sin embargo, esto sólo capta el 80% de los pasos del usuario. ¿Cómo puedo mejorar la precisión de mi podómetro?
multiplicar el resultado por un factor de añadir a los desaparecidos 20% - apuesto a que eso es lo podómetros baratos hacerlo - que tienen un dial de sensibilidad en ellos;) – deanWombourne