web-dev-qa-db-ja.com

加速度計を使用して距離を計算する

加速度データに基づいて距離を測定する方法について多くのフォーラムの横にある多くの研究と論文を読んだ後、二重積分法を見つけましたが、この方法に関連するエラーは大きく、時間とともに増加します。さらに、カルマンフィルターを提案した人々を見つけましたが、それに関するいくつかの参考文献を読みましたが、使用方法が明確ではありませんでした。また、核融合センサーについて話していた人もいました...しかし、それらを読んだ後、私は新しいアイデアを得ませんでした。だから私はまだ混乱しており、従うべき正しい答えを見つけられませんでした....この長い紹介で申し訳ありません。


質問

9軸センサーを手に持って、ある方向に手を動かすと、空間内で手の新しい位置を見つける方法を考えてみましょう。最初の点から新しい点までの動きベクトルを取得する方法私は、3つの軸上の通過距離を知る方法を意味しますか?

直接的な答えがない場合...いくつかのアドバイスや参考文献が素晴らしいか、正確な答えを与えるいくつかのアルゴリズムがあり、私はそれを自分で勉強して使用することができます。どうもありがとうございました

19
steelkassel

あなたの質問に対する簡単な答えは、あなたはそれをできないということです。

二重積分法は、加速度計のみを使用して、探している情報を取得する唯一の方法です。この方法で問題が見つかりました。エラーは時間の経過とともに増加し、一般に多くの人が求めている精度を提供しません。

カルマンフィルタリングは通常2つのデバイスを必要とし、基本的に両方のデバイスのベストを取り、悪いものを除外します。以下の例を参照してください。

カルマンフィルター処理は、上級設計のために飛び込もうとした非常に難しいテーマですが、限られたテストで意味のある結果を見つけることはありませんでした。このテーマを理解し始めるのに最適な場所は、この youtube video series です。

これは、スタンフォード大学でDARPAチャレンジに勝ち、理解しやすい方法でトピックを説明した男です。コース全体は、未知の環境でロボットの位置を移動して理解するためのロボットのプログラミングに関する6ユニットのビデオシリーズです。時間と興味があるなら、時計の価値があります。

実際に特定の相対的な位置情報を提供するために、私がシニアデザインで行ったことと同様のことをしようとしているようです。

別の優れたカルマンフィルタリング これを読む (このリンクが機能しない場合は、Google Kalmanフィルターバランスボットを使用し、TKJブログリンクをクリックします)。基本的に、この男は加速度計とジャイロスコープを使用して現実世界の方向を追跡します。

調べるべき他の何か wiki Real Time Kinematic。これはトラクターで行われ、組み合わされて本当に正確な位置情報を提供します。 John Deereはシステムを販売していますが、2万ドル程度です。これは GPSとbeagleboard を使用した貧乏人のバージョンです

16
Khamey

9軸センサーによって、私はそれが以下を意味すると仮定しています:

  • 3軸ジャイロ(回転速度を測定)
  • 3軸加速度計(加速度を測定)
  • 3軸磁力計(方位を測定)

このタイプの9軸センサーから実用的な位置推定を取得することは、GPSなどの外部参照を使用する別のセンサーを使用しないと不可能です。

理論的には、空間内のオブジェクトの加速度とその初期位置と速度がわかっている場合、加速度と速度に関する情報を初期位置に伝播することでオブジェクトの新しい位置を計算できます(つまり、加速度を2回積分します) 。実際には不可能な理由は、加速度計にノイズがあるためです。このノイズの平均はゼロではないため、加速度信号を積分すると、ゼロ以外の平均ノイズが継続的に追加され、結果の速度信号に蓄積されます。これは、センサーのドリフトと見なされます。速度の推定はかなり正確に始まりますが、この蓄積ノイズのためにすぐにドリフトします。位置を取得するためにもう一度統合すると、プロセスを繰り返すことで状況が悪化するだけです。

GPSなどの外部基準を使用することで、カルマンフィルターを使用して、低速で更新されるGPS信号と高速で更新される加速度信号を組み合わせて、位置の信頼できる推定値を生成できます。 GPSには、加速度信号の積分を実行することによって蓄積されるドリフトをゼロにする効果があります。

Khameyが提案したUdacity Youtubeビデオをご覧になることをお勧めします。カルマンフィルターを学習する場合、目的が何であり、カルマンフィルターが何をしているのかを明確に概説するのに役立ちます。そうすれば、アルゴリズムの数学と実際の手順がはるかに理解しやすくなります。カルマンフィルターを学習するときに役立つもう1つのことは、状態ベクトル全体ではなく、一度に1つの状態変数に対して行うことです。これは、カルマンフィルターが実際に行っていることに注意を集中するのに役立つため、行列代数によって行き詰まることはありません。

4
ddevaz

回転を考慮せずに:

時間t=t0に位置[ x0 , y0 , z0 ]と速度ベクトル[ vx0 , vy0 , vz0 ]にいると考えてみましょう。

t=t1で、[ ax1 , ay1 , az1 ]t0およびt1からの平均加速度)の加速ベクトルを読み取ります。

すると、t=t1の速度ベクトルは次のようになります。

[ vx1 , vy1 , vz1 ] = [ vx0 + ax1 * (t1 - t0) , vy0 + ay1 * (t1 - t0) , vz0 + az1 * (t1 - t0) ] 

t0t1の間の平均速度は

[ vx01 , vy01 , vz01 ] = [ (vx0 + vx1) / 2 , (vy0 + vy1) / 2 , (vz0 + vz1) / 2 ]

t=t1の位置は次のようになります。

[ x1 , y1 , z1 ] = [x0 + vx01 * (t1 - t0), y0 + vy01 * (t1 - t0), y0 + vy01 * (t1 - t0) ]

ご覧のとおり、エラーはt^2で伝播するため、慣性システムはGPSなどの外部参照によって補正する必要があります。

4
jbaylina

ベースマップがあり、センサーが既知のパス(道路など)に沿って移動していることが保証されている場合、ベースマップを使用してノイズの多い測定値を修正できます。 Jun Han、Emmanuel Owusu、Thanh-Le Nguyen、Adrian Perrig、Joy Zhang「ACComplice:Smartphones Accelerometers using Smartphones」を参照してください。 2012年3月7日。

http://www.netsec.ethz.ch/publications/papers/han_ACComplice_comsnets12.pdf

0
vy32