0

これがどこかでカバーされている場合は申し訳ありませんが、この問題を具体的に見つけることができませんでした。

私は、事前に設定された目標速度に基づいて、あなたが何秒進んでいるか遅れているかを教えてくれる誰かのためのレーシングアプリを開発しています.

それをテストするために、車から直接速度を読み取る車載コンピューターを使用しています (GPS なし)。私のアプリは、車が減速し始めるまで車載コンピューターと多少一致しているように見え、その後アプリが不安定になります。

これは、約 1:38 に問題が発生しているビデオです http://www.youtube.com/watch?v=GhVM1VCqiA8

このアプリがときどき正確に機能するという事実は、GPS のカバレッジと時間を計算するための式が適切であると私に信じさせてくれます。

特に車が減速するとき、明らかに精度の問題があります。

これは、速度を追跡するための私のコードの一部です。

LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

LocationListener mlocListener = new MyLocationListener();

mlocManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 0, 0, mlocListener);

public class MyLocationListener implements LocationListener

{

    @Override

    public void onLocationChanged(Location loc)

    {

        actualSpeedMps = (double)loc.getSpeed();

    }
////more

GPS の更新が速すぎて、車が急に変化したときに速度が不安定になっているのではないかと考えています。

私の考えは、現在 0 である requestLocationUpdates 最小時間パラメーターを 500 のようなものに変更することでした。

私はこのクラスを基本的なチュートリアルから取ったので、誰かが私をより速くすることができるより正確なものを紹介してくれるかもしれません.

前もって感謝します

4

1 に答える 1

0

このアプリがときどき正確に機能するという事実は、GPS のカバレッジと時間を計算するための式が適切であると私に信じさせてくれます。

多くの場合、あなたの値は赤いデバイスの値の 2 倍または 3 倍です。そして、時速30m前後で運転しているとき。GPS は、中速および高速で非常に正確です (車両の場合と同様)。

したがって、問題は明らかにアルゴリズムと、GPS 位置を取得するときの仮定にあります。

GPS の更新が速すぎて、車が急に変化したときに速度が不安定になっているのではないかと考えています。

確かに、1 秒に 2 回以上更新されることはありません。静止しているときにのみ GP で問題が発生し、時速 0 km を報告しないことがよくありますが、これは別の話です。

結論:
GPS はエラーの原因ではなく、アルゴリズムです。

ヒント:

  • シミュレートされた GPS 入力で単体テストを作成して、アルゴリズムを修正してみてください
  • 1 秒に 1 回位置情報を受信すると仮定しないでください。タイムスタンプを使用して時差を計算してください。
  • 場所をファイルに記録します。速度の値が信頼できない場合は、2 つの場所の間の距離を秒で割って計算すると、それらが正しいことがわかります。
    そして、記録された場所をテスト ケースに入力し、負の値が得られた場所をデバッグします。
  • 達成したいことをより正確に書き留めてみてください。「私は 10 秒遅れている」をどのように定義しますか。たとえば、「目標速度で走行したであろう車の後ろ」などです。
  • 走行距離を記録する必要がある場合、距離をあまり正確に測定できない赤い文字のデバイスよりも優れたアプリを作成できます。
于 2013-06-05T19:22:59.733 に答える