GPS アンタレス48USBを購入
前回のエントリに引き続き、今日は電源基板の実装をするつもりだったが部品が届かず、仕方がないのでGPSを進めた。
GPSだが、まずは、どれを買うか調査。
製品名 | URL | 価格 | 精度 |
---|---|---|---|
コメットUSB/3 | URL | 8,925円 | 単独10m,MSAS 5m |
コメットUSB/3*HL | URL | 10,500円 | 単独5m、MSAS 2.5〜5m |
イオ111wUSBs | URL | 12,800円 | 単独5m、MSAS 2m |
アンタレス48USB | URL | 24,990円 | 単独3.3m、MSAS 2.6m |
ヘミスフィア CrescentA100 | URL | 234,990円 | 単独2.5m、MSAS 1m |
つくばチャレンジでヘミスフィアA100はよく使われていた。が、23万円は出せない。という訳で、アンタレス48USBを購入。
精度のところは受信条件が良い場合の精度なので実際にはもっと悪い。幅4m〜5mの道を走るのにベストの精度が3.3mとかで意味あるのだろうか。GPSは使うとしても重みは少なめでないと余計自己位置推定誤差が増えそうな気がする。
接続はUSBにつなぐだけ。電源もバスパワー(60mAほど)でOK。ドライバとユーティリティソフトをインストール。
下記、GPS Locator Utilityとかいう動作確認ソフト。こいつで出力データのON/OFFができる。
で、自分のPC側制御ソフトのAibiUIでGPSデータの取り込み実装。しました。
下記、AibiUIの画面。単にNMEAのログが出ているだけに見えるが一応パーサも実装した。
で、シリアル通信でちょっとはまった。今までマイコンとのシリアル通信とTopURGとのシリアル通信と2回書いていたので速攻つながるかと思ったら、全然データが来ない。地図ソフトとかUtilityソフトとか、TeraTermで受信できるのに、AibiUIだけ受信できない。調べたところ、
SerialPort.RtsEnable=true;
が必要だった。RTSピンをONにする必要があった。RTSはRequest To Sendの略らしい。1時間ぐらいロスした。
パースしたのは、NMEAフォーマットのGPGGAコマンドのみ。
$GPGGA,123834.00,3540.58861,N,13946.58683,E,2,06,1.67,5.1,M,39.4,M,999.9,*7B
こんな感じのデータで、CSVフォーマット系、フィールドは、センテンス名、UTC時刻、緯度、N or S、経度、E or W、状態(2だとMSAS ON)、衛星数、HDOP値(精度)、海抜高度、海抜高度単位(M)、ジオノイド高さ、ジオノイド高さ単位(M)、DGPSデータ取得からの経過時刻(なぜかずっと999.9)。そんな感じ。
下記、AibiUIでGPSの軌跡を可視化した。会社の周りを1ブロックぐるっと回ってきたところ。
衛星は常に6個以上捕まえられていた。MSASも捕まえられていた。6個+MSASでこの精度とは。やはり全然精度でないな。ま、周りはビルや街路樹がいっぱいという環境ではあるが。あとGPSをノートPCの上に置いたままだったのもよくないかな。精度が上がるコツをもう少し調べた方がよいか。
ちなみに上の図は、本当は長方形に歩いてきたつもりだが、可視化したらひし形になっている。どうも緯度経度からXY座標に変換する計算が間違っているようだ。
あと、上図は、1秒に1回GPGGAを取得してプロットしているが、移動平均線等で可視化した方がよいかもしれない。
ロギング機能、リアルタイム可視化、ログ可視化は実装したが、Google Mapとの結合まで実装したかったが間に合わず。