1

私は Android で GPS を使用しており、位置の計算の遅れによるエラーを除去するために、位置を速度補正する必要があります。これはヨット用であるため、私の関心のある速度は時速 5 ~ 10 マイルの範囲です。

これが私のコードです:

        public double[] correctLocation(double pLat,double pLong,double pAngle,double pSpeed, double factor){
        double[] latLong = new double[2];
        latLong[0] = pLat + factor * pSpeed * Math.cos(pAngle * Math.PI / 180);
        latLong[1] = pLong + factor * pSpeed * Math.sin(pAngle * Math.PI / 180) / Math.cos(pLat * Math.PI / 180);
        return latLong;
    }

私は車で時速 25 マイルでテスト走行を行い、係数は 3E-6 になるはずであると計算しましたが、走ったり歩いたりする速度で試してみると、6E-6 に近い係数が必要であることが明らかです。たとえば、Googleの自動運転車で人々がこれを行っていることは知っていますが、Googleを通じてこれに関する参照を見つけることはできません。私は他の人がこの種の修正をしていると思います。

誰か助けてくれませんか?GPS は、MTK チップセットを搭載した Qstarz A1000XT です。この単純化されたアプローチでは、私が見逃している可能性があるものがあります。(これは加速の時定数が1分の重いボートなので、加速は必要ないと思います)。

4

1 に答える 1

0

6E-6が正解でした。いくつかのエラーがあり、これについてしばらく混乱していました。私は最終的に、25MPH で両方向からスポットに移動し、そのスポットに ping を送信してテストしました。タイミングと更新レートが要因にならないように、GPS の読み取り値を補間しました。これを10回やりました。これにより、2 つのポイントのクラスターが得られ、グラフィカルな方法を使用して、クラスターが重なるまで補正係数を調整しました。別の方法として、1 秒間隔の最後の 2 つの読み取り値の緯度と経度の差を使用し、秒単位の補正係数を適用する方法があります。私の場合、それは 1.25 秒でした。どちらの方法でも、クラスターに関して同じ結果が得られました。速度補正は、スキャッターで少し近づきましたが、それほどではありませんでした.

于 2012-12-12T18:26:29.800 に答える