4

重複の可能性:
Core Motion
Android 加速度計精度 (慣性航法)を使用して加速度計データから変位を取得する

コア モーション ユーザーの加速度値を使用し、それらを二重に統合して移動距離を導き出そうとしています。テーブル上の 30 cm のログ定規に対して、iPhone を Y 軸に沿って直線的に動かします。まず、デバイスを 10 秒間静止させ、それぞれのユーザーの加速度値を平均して、3 つの軸に沿ってオフセットを計算します。移動距離を計算しようとすると、X、Y、および Z オフセットが加速度値から差し引かれます。オフセット減算後、これらの値はもちろんローパス フィルターとメディアン フィルターを個別に通過します。フィルターは線形フィルターであり、カットオフ周波数は、ローパスで平均が取得され、メディアン フィルターで中央値が取得される隣接値の数によって指定されます。この数値を 1 から 100 までさまざまな値で実験しました。これらのフィルタリングされた値は、距離を取得するために台形規則を使用して二重積分されます。しかし、計算された距離は 30 cm に近いところはありません。私が得た最も近い値は-22cmでした(デバイスを正のY方向に動かしたのに、なぜ負の値が得られるのか疑問に思っています)。私もこれに出くわしました: http://ajnaware.wordpress.com/2008/09/05/accelerating-iphones/ 同じことについての古い投稿で、返された加速度計の読み取り値は約 0.18m/s^2 (つまり、約 0.018g) の量であると思われ、非常に大きな累積誤差がすぐに発生します。つまり、この誤差が問題にならないようにするには、デバイスをほぼ 1.8m/s^2 加速する必要がありますが、これは距離/長さの測定では事実上不可能です。小さな動きの場合、そのような非現実的な速度/加速度の制約なしで、最適なフィルターと高次の数値積分法を使用して距離を計算する可能性があるようには見えません。出来ますか?加速度とタイムスタンプのデータを使用して、時間の経過とともに増加する多項式を補間するのはどうでしょうか。これは、加速度と時間の曲線をほぼ表すモーションの更新が増えるにつれてです。この多項式の二重積分は簡単なことです。ただし、距離が短い場合、多項式には大きな誤差成分が含まれます。デバイスが受ける予測可能な既知の動きを使用して、膨大な数のスナップショット (計算された距離と実際の既知の距離) を取得して、同様の方法でエラー多項式を計算し、それを最初の多項式から減算したいと考えています。これは機能しますか?

4

1 に答える 1

3

これは StackOverflow には当てはまりませんが、質問ではなく議論なので、私の考えをまとめてみます。

すでに述べたように、加速度計は非常に不正確であり、特にこのような短い距離を測定しようとしている場合は、この種のタスクには非常に高い精度が必要です. さらに、加速度計はデバイスごとに異なるため、デバイスが異なれば同じ動きでも異なる結果が得られます。さらに、非常に大きなランダムエラー。

私の推測では、デバイスを調整し、「測定の動き」を数回、たとえば 10 回行うことで、ランダム性/エラーの大部分を取り除くことができると思います。その後、実際の値に近づく可能性のある平均を取得するのに十分なデータが得られます。

キャリブレーションはここで重要な部分です。たとえば、ユーザーがデバイスをさまざまな速度でさまざまな距離に移動できるようにするなど、キャリブレーションの賢い方法を考える必要があります。

しかし、これは単なる理論です。私は本当にあなたの結果を見たいと思っていますが、ノイズが多すぎるため、可能な限り最高のフィルター/アルゴリズムを使用しても十分に機能するとは思えません.

于 2012-12-20T10:11:09.987 に答える