デバイスの加速度計を使用して、ユーザーがカバーする正確な距離を計算する Android アプリケーションを開発しようとしています。
5 秒ごとに 2 つのベクトルがあり、1 つは加速度値を含み、もう 1 つは timeStamp を含みます。
まず、速度を表す加速度値の累積を計算し、以下のように距離を計算します。
float calcDistance(Vector<Float> samples, Vector<Float> times) {
float distance = 0;
for (int i = 1; i < samples.size(); i++)
samples.set(i, samples.get(i) + samples.get(i - 1));
for (int i = 0; i < samples.size() - 1; i++)
distance += samples.get(i) * (times.get(i + 1) - times.get(i));
return distance;
}
しかし、それは正確な距離を示していません。正確な距離を計算する方法はありますか?