DroggerはGPSでラップタイム計測ができるようになりました。Android端末のGPSは更新頻度が1Hzで精度もあまりよくありません。そこでAndroid用10Hz外部GPS*1を使ってどうのような精度が得られるか実験してみました。
高精度GPSの概要
AndroidのGPSは、コスト、アンテナ、電池消費などの制約から精度、更新頻度ともに性能よりもバランスを重視したものになっています。対してGPS専用製品は性能を追求しており性能に大きな差があります。
AndroidのGPSの更新頻度は最速1Hz(1秒に1回更新)ですが、高精度GPSでは10Hzや20Hzといったチップも販売されています。また、対応する衛星群(米国、ロシア、中国、EU、日本*2など)も多くなっています。市販チップの単独測位での位置精度は概ね2m ~ 2.5mといったものが中心です。
Androidでの外部GPSは、BluetoothやUSBで接続したGPSのデータを扱うプロバイダーを標準のロケーションプロバイダーと置き換えることで、GPSを使用するアプリすべてで恩恵を受けられるようになっています。
今回使用したGPSはBluetooth接続で、標準のロケーションプロバイダーと置き換えています。Droggerのアプリの変更は一切ありません。
仕様的には10Hzで位置精度は概ね2mといった製品です。高精度GPSと書いていますが正確にはGPS(米国)だけでなくGLONASS(ロシア)も使用した製品で高精度GNSS(Global Navigation Satellite System)です。
追記 2018/12/02 Android用 高精度・高更新レートのGPS(GNSS)が発売になりました。
このとき実験した高精度GPSよりも高精度です。
位置トラッキング
まず、Google Map上にトラッキングポイントを描いてみました。DroggerのラップデータをCSV形式で保存し、Google Mapにそのままインポートします。CSVデータには緯度(Latitude)、経度(Longitude)情報も含まれています。
Google Mapで詳細を見る
(ストレートでのトレースが不足しています。これはDroggerのデータは50Hzで1周約43秒 = 43 x 50 = 2150 個のデータがあるのですが、GoogleMapに扱えるのが2000個までで最後の約150個が描けないためです。)
さすが高精度で10HzのGPSです。かなりきれいに実際の走行ラインをトレースできています。
Droggerのグラフにコース図がありますが、とてもきれいなコース図になります。右はAndroidのGPSで、その差は歴然です。
スピード計測
次はスピード計測です。ホイールスピードとの違いを比べてみました。
ホイールスピードの場合、コーナーではバンキングとタイヤのラウンド形状により外周長が短くなり、実際の速度よりも少し高いスピードになります。
反対にGPSは計測ポイントと次の計測ポイントを直線で結ぶため、時間に対する距離が短くなり実際の速度よりも遅いスピードになります。ですのでストレートとコーナーを別けて比べてみたいと思います。
尚、GPSスピードは、GPSチップが計算したスピード値を使用しています。(アプリで計算することも可能ですがそれはしていません)また、どちらのデータも補正を掛けず生の値を示します。
ストレート
GPSの位置更新は10Hzですがスピードの更新はそれよりも頻度が低い様で少しギザギザしたグラフになっています。10Hzの移動距離から速度をそのまま計算すると相当誤差が出てしまうでしょうから時間間隔を広めに取っているかも知れません。
ホイールスピードと比べると少し遅い速度を示しています。全体0.2~0.4秒ほどやや遅れがあると思ってみるとほぼ同じ速度でしょうか。ただやはり、ストレートエンドでの最後の部分はバンキング開始を除いても数キロは遅めです。
ホイールスピードは、その変化がエンジン回転数とほぼ同期しています。計測パルスの生成元が異なるにも関わらず同期しているので正確と判断できます。精度はタイヤ外周長の計測にかかっていますが、1500mm程の長さに対して1%(15mm)はずれないかと思いますので1%以内の精度と考えて良いかと思います。
コーナー
計測方法の違いから、予定どおりGPSはホイールスピードに比べてかなり低いスピードを示します。どちらも真の速度は計測できていませんので直接の比較はあまり意味がないかも知れません。ただ、ホイールスピードのほうがレスポンスと滑らかさは上回っています。
また、ホイールスピードはエンジン回転数と同じように、グラフからバンキングの開始や起き上がりなどライディング操作を読み取ることができます。
ラップタイム計測
ラップタイムの精度を計測しました。
Droggerは磁気ラップセンサーで計測したデータを、あとから位置情報でラップタイムを解析きます。それを使って比較します。
磁気センサー vs 高精度GPSセンサー
ラップ |
磁気センサー |
高精度GPSセンサー |
差 |
1 |
43.681 |
43.661 |
-0.020 |
2 |
29.875 |
29.912 |
0.037 |
3 |
43.215 |
43.229 |
0.014 |
4 |
43.286 |
43.181 |
-0.105 |
5 |
43.135 |
43.180 |
0.045 |
6 |
43.602 |
43.765 |
0.163 |
7 |
43.905 |
43.811 |
-0.094 |
8 |
43.773 |
43.664 |
-0.109 |
9 |
43.718 |
43.568 |
-0.150 |
10 |
43.404 |
43.619 |
0.215 |
精度は 0.2秒程度の差が出ています。平均差は、0.0952秒で概ね0.1秒といった感じです。
AndroidGPSセンサー vs 公式タイム
次に、AndroidGPSでの比較です。MyLAPの公式データと比較してみました。12周の決勝レースでの比較です。
最初のラップ開始は、公式データはレッドシグナルが消灯した瞬間なのに対してAndroidGPSセンサーは通常どおり指定ポイント通過のため異なっていますので、1周目は除外してご覧ください。
ラップ |
Android GPS |
公式 |
差 |
1 |
44.114 |
45.324 |
-1.21 |
2 |
43.463 |
43.478 |
-0.015 |
3 |
43.031 |
43.319 |
-0.288 |
4 |
44.048 |
43.718 |
0.330 |
5 |
45.065 |
45.121 |
-0.056 |
6 |
43.961 |
43.897 |
0.064 |
7 |
44.243 |
44.229 |
0.014 |
8 |
43.344 |
43.385 |
-0.041 |
9 |
43.496 |
43.556 |
-0.06 |
10 |
43.551 |
43.329 |
0.222 |
11 |
43.005 |
43.402 |
-0.397 |
12 |
44.237 |
44.070 |
0.167 |
精度は 最大0.4秒程度の差が出ています。平均差は、0.150秒で概ね0.15秒といった感じです。
磁気センサー vs 公式タイム
最後に、磁気ラップセンサーの精度を公式データと比較しました。AndroidGPSセンサーと同じく1周目は、開始ポイントが異なりますので除外してご覧ください。
ラップ |
磁気センサー |
公式 |
差 |
1 |
44.897 |
45.324 |
-0.427 |
2 |
43.475 |
43.478 |
-0.003 |
3 |
43.314 |
43.319 |
-0.005 |
4 |
43.733 |
43.718 |
0.015 |
5 |
45.116 |
45.121 |
-0.005 |
6 |
43.903 |
43.897 |
0.006 |
7 |
44.201 |
44.229 |
-0.028 |
8 |
43.395 |
43.385 |
0.010 |
9 |
43.552 |
43.556 |
-0.004 |
10 |
43.348 |
43.329 |
0.019 |
11 |
43.410 |
43.402 |
0.008 |
12 |
44.068 |
44.070 |
-0.002 |
最大差 0.028秒で平均差 0.009545秒で0.01秒以下でした。高精度GPSと比較しても1桁違う精度です。わずかな差の原因としてMyLAPとマグネットの計測ポイントは数メートル異なっていますのでそこでの違いも多少あるかも知れません。
ラップ計測比較
上記3種類の計測方法の平均差(公式タイム差)としてグラフにまとめてみます。
正確なラップ計測は高精度GPSでも1桁足りない感じです。
高精度GPSのまとめ
- コーストレースにおいてはとても有用です。非常にきれいなトレースが可能になります。
- Android端末のGPSと比較すると、ラップ計測・スピード計測共に非常に精度が上がります。オフロードや簡易的に使いたい場合はとても良いかと思います。
- ラップ計測の絶対精度は、磁気センサーや赤外線などには遠く及びません。
- スピード計測は、マシンの動き(バンキング)やコーナーの最低速度なども含めてライディングの改善をしたい方にはあまり役立たないかも知れません。最高速などでエンジン比較などをされるだけでしたら高精度GPSでも良いかも知れません。
他に、タイム予測などを行うには簡単なアルゴリズムでできそうです。トレースのきれいさや機能の充実には不可欠かと感じます。
安くて性能の良い製品が簡単に入手できれば良いのですが、現在のところすぐにお勧めできる製品がありません。できれば、高精度のチップを使ってDrogger用のGPSユニットを作りたいなと思っています。
Droggerの詳細・ご購入は
https://www.bizstation.jp/ja/drogger/