2006年11月22日

GPS-CS1Kの誤差?

以前、埼玉県の彩湖に行った時のルートログをいじってたら総距離が78kmと算出された。実際に自転車に取り付けたメーターでは70kmと出ていたはずなので、11.4%も誤差があることに。。。確かに歩いて移動したところもあるのでGPSのログと自転車のメーターで違いはあるはずだが、それでもこんなに誤差があるのはおかし過ぎる!色々調べてみた。

まず、自分が使った計算式は以下の通り。

lat: 緯度、lng:経度 (いずれも単位はradian)
R = 6378137 (地球の半径[m])

Δlat = lat1 - lat0
Δlng = (lng1 - lng0) × cos( lat0 )
距離 = R × √( Δlat2 + Δlng2 )
  参照: 緯度・経度から距離を求める方法(@ 轍 〜自転車的なる日記〜

これで計算したポイント間の距離を加算して総距離を求めた。


1.明らかにおかしな点を除去

先日のログの中でひとつだけぴょこっと変な点が記録されていたのは気になっていたので、それをもっともらしい点に移動させて再度計測してみた。
→結果は76kmとなった。(誤差8.5%)

2.GPS-CS1Kの測位誤差を試算

GPS-CS1Kは測位に±10mの誤差があるらしい。とすると、以下の図の赤点のようなパターンが連続すると誤差が一番蓄積されるのかな?

彩湖に行った時のログは全部で884ポイントになっていたので、あるポイントから次のポイントまでの間隔(上の図の青点どうしの間隔)は平均約79mになっている。したがってこの場合の誤差は次の通り。
√(792 + 202) [m] / 79 [m] = 1.032 (誤差3.2%)

3.GPS-CS1Kの測位誤差を試算(2)

2はあくまでも一定の速度で走っていた場合。平均速度20km/hだとすると3時間30分で着くことになるが、実際には4時間50分かかっている。差分の1時間20分はほぼ停止していたことになる。平均速度20km/hの場合の青点どうしの距離を計算すると約109mになり、停止状態の場合の青点どうしの距離はもちろん0mなので、一番誤差が多い場合は以下のように計算できる。
( √(1092 + 202) [m] × 3時間30分 + 20 [m] × 1時間20分 )
      / ( 70 [km] × 4時間50分 ) = 1.083 (誤差8.3%)


でもGPS-CS1Kの誤差が±10mというのは「GPS衛星自体による誤差」なので、衛星をロストしてたらもっと誤差があるはず。現に極端におかしなポイントが発生しているわけだし。

ただし速度が大きくても±10mの誤差が変わらないとすると平均速度が大きいほど誤差は小さくなるので、自転車じゃなくて車の移動距離計算ならもうちょっと誤差は小さくなるはず。また、停止している時は電源を切っておくようにするともっと誤差が小さく出来る。

と、ここまで計算したところでGoogle Earthでルートログを開いて距離を見てみたらほぼ正確な値が出ている!もしやと思って以前のプログラムを見直したらバグが見つかりました。。。全ての誤差の原因はこれです。。。

過去の記事を見直したら同様に間違っているところがあったので訂正しました。
2006年11月20日掲載 鎌倉〜江ノ島〜湘南サイクリングロード(44km→37km)
2006年10月28日掲載 アメリカドライブ旅行記(約2800km→約2500km)


●分かったこと
・GPS-CS1Kでログを取る時は速度が速い方がいい?
・停止状態では電源を切っておく方が良さそう。
そして、
まずは自分を疑え!!!

はい、反省してます。。。
posted by bali117 at 09:31| 東京 ????| Comment(2) | TrackBack(0) | プログラム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
はじめまして、『轍』の作者です。

私も距離が多めに出る現象を確認していましたが、どうも停止中のわずかなバラツキが蓄積されてしまうようなのですね。
特に高度のバラツキは大きいので、三次元的に距離を計算するとさらに誤差が大きくなります。
GARMINのGPSではAUTOモードにすると停止中は取らないようにできるので、それがいいかもしれません。
『轍』でも速度が一定以下のときは距離を積算しないような工夫が必要と思いました。
Posted by windy at 2006年11月22日 14:22
はじめまして!
結局バグが原因だったというお粗末なオチの記事に対してコメント頂き恐縮です。(^^;;

確かに停止中のバタつきは気になりますね。私も一定速度以下の時は対象から外すように出来ると良いと思っています。2点間の速度だけで判断すると誤差の影響を受けやすそうなので、周辺の何点かの速度の平均を取って判定する必要があるかもしれませんね。ただしGPS-CS1Kはログの取得が15秒間隔と長めなので、あまり平均化し過ぎるとうまく行かない可能性もあり、試行錯誤しないといけないかな〜と思っていました。

でもGARMINのGPSのAUTOモードというのを使うのが一番良さそうですね。私は9月から自転車に乗り始めたのですが、GARMINの存在を知ってからはどうせ買うなら高性能なのが欲しいと思いつつも、値段の高さに悩み中でした。GPS-CS1KでGPSの面白さを確認できましたし、そろそろ本格的に考えようかと思っています。情報ありがとうございました!
Posted by bali117 at 2006年11月23日 01:16
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/28023367
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック