2

2D 空間でデバイスの動きを追跡するアプリケーションを作成しようとしています。オンラインで調査を行った後、線形加速度を 2 回積分する方法が 1 つであることがわかりましたが、エラーはひどいものです。

この問題の解決策はありますか? 電話を上に移動できるようにしたいと考えています。これにより、画面上に垂直線が描画され、電話が移動した距離に合わせてスケーリングされます。次に、電話を左に動かすと、水平線が描画され、電話の動きを使用して画面に効果的に描画できます.

これはまったくできますか?もしそうなら、私は開発においてどのような方向性をとるべきですか?どこから始めたらいいのかわからない...

編集: プロジェクトの詳細:

脚/腕の動きを追跡するエクササイズ アプリを作成しようとしています。

アプリは脚の繰り返しの動きを追跡します。

4

2 に答える 2

2

残念ながら、これらの携帯電話の加速度計は、慣性測定ユニットを実装するために必要なものにはほど遠いものです。大きな問題は、2回積分しているため、積分には常に定数 integral(x,dx) = x^2/2 +c が伴うため、この定数がこれを難しくしていることです。さらに悪いことに、速度を取得するために積分するときと位置を取得するときに、2 回取得します。

これを修正する方法の 1 つは、商用の慣性測定ユニットで見たもので、ゼロ速度ヌルと呼ばれます。これは、他のデータ ソースを使用して、デバイスの動きを停止したことを伝え、速度をゼロにできるようにする方法です。 . たとえば、あるプロジェクトで慣性測定ユニットを靴に取り付けたところ、靴が地面に置かれていることを検出するたびに速度がゼロになり、精度が大幅に向上するのを見ました。カメラなどを使用してこれを判断できる可能性がありますが、私はそれが行われたのを見たことがありません. あなたがこれをいじり始めたいなら、あなたは素晴らしい人です。

編集:上記の定数がエラーの蓄積場所であることを明確にする必要があります。速度をゼロにできる場合は、保存されている現在の速度から累積エラーを定期的に削除します。位置の誤差は依然として蓄積されますが、これにより、比較的静止しているときにドリフトせず、描画に問題がなくなる可能性があります.

于 2013-02-03T21:47:00.227 に答える
1

加速度を2回積分する以外に方法はありません。

さらに、デバイスにある可能性のある他のセンサーについての知識がない場合は不可能だと思います(たとえば、私のデバイスの1つには、デバイスが受信する可能性のあるさまざまな物理信号に関連する7つのセンサーがあります)。

それ以外は、センサーデータにノイズが多く、ほとんどの場合、事前にフィルタリングする必要があることを忘れないでください。たとえば、最後の10サンプルの幾何平均を使用できます。これにより、統合関数によりスムーズな入力データが提供されるため、エラーが減少します。

于 2013-02-03T21:49:12.833 に答える