先日、Raspberry Piに「みちびき」対応のGPSモジュールを接続してみました。
通常のUART端子接続のほか、GPIO端子に1PPS信号を接続しました。
NTPによる時刻同期は、PPS信号を使ったほうが同期が早く、数分で同期することがわかりました。
では、PPS信号が位置情報の精度に影響するのかどうか・・・・その疑問を、実際に実験して調べてみました。
PPS信号によるgpsd位置情報の精度の違い
位置情報は、こちらの記事の方法でGPXファイルに記録します。
PPSがない場合とある場合の2通りのGPXファイルを作成し、地図上に表示して比べようと思います。
高い精度のデータが得られるように。
背中にRaspberry Piを背負って、晴天の田んぼ道を、自転車で走ってみました。
障害物や雨雲の影響が無い、たくさんの衛星と通信できる状態でデータを取れたと思います・・・はぁはぁ(漕ぎすぎ)
位置情報データの記録頻度
gpxloggerは、-m 20オプションを付けましたので、20メートルの移動を検知した場合にデータが記録されます。
この20メートルおきに記録されるデータが、どれだけズレるか・・・ということになります。
PPS信号を使用しない場合
まずは、PPS信号が無い場合です。gpsdを次のように設定しました。
gpsdを再起動し、gpxloggerで位置情報を記録開始・・・このようになりました。
道を外れて、民家の庭先に不法侵入?
さらに蛇行運転?道路のセンターライン付近を走行・・・いえいえ、蛇行なんてしていません。おまわりさん信じて下さい。
データ収集時、もちろん不法侵入や蛇行運転はしておりません。
3キロメートル程度のデータを収集しました。全体をみるとそれほどズレはありませんが、拡大すると、図のように蛇行している箇所が多くあります。
収集した位置情報のうち、ズレが最も大きかった箇所が上の2箇所でした。5メートル程度の誤差が生じているようです。
PPS信号を使用した場合
gpsdでPPS信号を読み込むように設定して、今度は同じコースを逆回り(道路の反対側)を走ってみました。
上の写真と同じ箇所は、このようになりました。
実際は道路の左端を走行しましたので、いくらか誤差が生じているようです。
今度は蛇行運転のような位置情報ではなく、走行したルートとほぼ同じ、正しい位置が記録されています。
PPS信号を使用した位置情報のほうが、全体的に直線的でした。位置情報に誤差(位置のズレ)が生じている箇所はありますが、PPS信号を使用しない場合よりも、頻度は少ない印象です。
PPSの信号線は接続したほうが良さそう?
ざっと調べた感じでは、PPSを有効にしたgpsdの位置情報のほうが、誤差は少ない印象です。とはいえ、有効でも誤差が全くないわけではありませんでした。
傾向として、PPSが無効なら曲線的、PPSが有効なら直線的なデータになる感じでした。
gpxloggerのオプションを変更することで、もっと細かいデータの収集も可能ですが・・・筋肉痛になりそうですので、また別の機会に致します。
PPSを使うか使わないかは、gpsdのオプションを変更することで簡単に変更することができます。もしPPS信号の出力が可能なGPSモジュールをお使いでしたら、接続してみてはいかがでしょうか。