スピードメーターとして機能する簡単なGPSアプリケーションを開発しなければならないと感じるかもしれない状況に遭遇しました。これは、シリアルGPS受信機と通信するCPU(162MHz ARM)およびRAM(4MB)制約を備えた古いPDA用に開発されます。
これは実行可能なプロジェクトですか?レース精度である必要はありませんが、制限速度に従うのに十分な距離です。
GPS仕様、シリアル経由でのデータの取得などはどこから始めればよいですか。
スピードメーターとして機能する簡単なGPSアプリケーションを開発しなければならないと感じるかもしれない状況に遭遇しました。これは、シリアルGPS受信機と通信するCPU(162MHz ARM)およびRAM(4MB)制約を備えた古いPDA用に開発されます。
これは実行可能なプロジェクトですか?レース精度である必要はありませんが、制限速度に従うのに十分な距離です。
GPS仕様、シリアル経由でのデータの取得などはどこから始めればよいですか。
PDA には、GPS からナビゲーション データを受信するのに十分なリソースが必要です。ほとんどの GPS 受信機は、標準の ASCII 形式の呼び出し NMEA センテンスを吐き出します。VTGには対地速度 (キロメートル) が含まれているため、最も関心のある文はVTG です。
特定の GPS 受信機で、送信する NMEA センテンスを選択できるかどうかを確認する必要があります。緯度/経度/高度 (一般に WGS-84 座標と呼ばれます) を提供する GGA センテンスのみを送信するものもあります。次に、自分で速度を計算するために計算を行う必要があります。アルゴリズムは、WGS-84 から地球中心地球固定 (ECEF) 座標に変換し、差をとって速度を計算します。これは、GPS が行うよりもはるかに計算量が多く、何らかのフィルタリングを追加しない限りノイズが発生しやすく、連続した読み取りの位置エラーのために不正確になる可能性があります。
You might ask why the VTG sentence would be any better in error - GPS receivers are capable of using the Doppler shift in the GPS signal to estimate velocity, which is far more accurate than differences of position. There's a good description here.
If your receiver doesn't support a NMEA sentence that includes velocity, you might check if it supports any binary formats which might include velocity.
Eric S. Raymondは、GPSによるハッキングについて優れた記事(および暴言)を書いています。