3

毎秒 5 回更新されるリアルタイムの GPS データがあります。平均して、データの 80% はかなり正確です。しかし、データの約 20% はぎくしゃくしています。さらに、実際の軌跡から遠く離れた誤ったデータ ポイントなど、外れ値を取得することもあります。

私は次のことを達成できるアルゴリズムを探しています:

  • ジャーキネスがなくなるようにデータを滑らかにします。
  • 外れ値データを平滑化するのではなく、それらの誤ったデータ ポイントを削除し、外挿された値に置き換えます。

状況を説明するために、最初にstackoverflow.comサイトで同様のトピックを検索したところ、次のリンクが見つかりました。

スムーズな GPS データ

私のソフトウェア エンジニアは、上記のリンクで提供されている KalmanLatLong ルーチンを実装しました。しかし、次の問題が発生しました。

  • アルゴが外挿値を生成している間、アルゴリズムは意味に遅れをとっており、より多くの GPS データ ポイントが到着します (データはリアルタイムで到着していることを思い出してください)。

  • 時折外れ値が発生した場合、アルゴリズムはそれをうまく平滑化します。一方、目標は、そのような外れ値を排除することです。それらは誤ったデータであるためです。

リアルタイムで動作し、5 Hz で GPS の更新を処理し、異常値を排除しながらデータを平滑化できるアルゴリズムを探しています。

どうぞよろしくお願いいたします。

4

2 に答える 2

1

基本的なアプローチは次のようになります。

  • 最後の x ポイントを取得し、平均デルタ ベクトルを計算します。
  • それを最後のポイントに適用して、外挿された新しいポイントを取得します (新しいポイントがあると予想される場所)。
  • 外挿されたポイントを GPS から取得したポイントと比較します。
  • 外挿されたノードと取得したノードの間の距離がしきい値よりも小さい場合、これが適切なデータ ポイントであると見なし、外挿されたノードとブレンドすることができます (新しいポイントは P* GPS_point + (1-P) * extrapolated_point です0 と 1 の間の P の場合)。
  • 距離がしきい値を超えている場合、それはおそらく外れ値であるため、完全に削除し、外挿されたポイントのみを使用します。

X、P、およびしきい値の値を試して、何がうまくいくかを確認する必要があります。高速レースに適したものは、ウォーキング用途には適していません。また、外挿ノードが多すぎる場合はチェックを追加します。これは、このアルゴリズムがほとんどのデータが間違っていると見なし、それが真実であってはならないことを意味するためです。ポイントのリストを空にして、最初からやり直すことができます。

于 2015-11-30T16:36:38.230 に答える
0

観測の拒否をカルマン フィルター自体に組み込むことができます。これは、データ スヌーピングと呼ばれることもあります。

GPS データだけを持っていて、インスタントの測定値を組み込むか、(緯度だけを捨てるのではなく) それらをすべて破棄したいという単純なケースがあると思います。

表記はWiki記事に準拠

更新ステップでは、計算します

V = y'*inv(S)*y

(y は残差ベクトル、S は残差共分散) フィルターが正しく調整されている場合、緯度と経度のみを使用している場合はカイ 2 乗 (2) 分布、使用している場合はカイ 2 乗 (3) 分布になります。高さも。V が、たとえばこの分布の上位 0.1% パーセンタイルを超える場合、観測を拒否します。つまり、ゲインを計算したり、状態または状態の共分散を更新したりしません。

于 2015-12-01T14:10:47.630 に答える