2014/06/20

u-blox NEO-M8NによるGNSS衛星の航法メッセージ出力

XBee型GPS基板の組み立てを行い、正しく動作することが確認できたので、ublox NEO-M8Nによる生データ取得を試してみました。

左からNEO-7P, NEO-M8N, NEO-6M

手始めに行ったのはTRK-SFRBX(0x030F)ページの解析です。
解析の結果は以下の通りになります。

Byte Offset Number
Format
Scaling Name Unit Description
0 U1 - reserved1 - Reserved
1 U1 - gnssId - GNSS identifier (see Satellite Numbering)
0: GPS, 1: SBAS, 2: Galileo, 3: BeiDou, 5: QZSS, 6: GLONASS
2 U1 - svid - ID of Satellite transmitting navigation message
3 U1 - reserved2 - Reserved
4 U1 - prn - PRN
5 X4 - flags? - flags?
9 U4 ? time? ? time?
13 X4[N] - dwrd - Words of Data
navigation message
(長さはGNSSにより可変
GPSの航法メッセージの格納法はRXM-SFRBと2ビットずれがあり)

少なくともGPSの航法メッセージが正しいことはNEO-7Pとの比較で確認できています。

航法メッセージが取得できたので、擬似距離・搬送波位相・ドップラーシフト等のデータがあれば測位が可能になります。
これらのデータはTRK-MEASメッセージから出力されるようなので、こちらの解析も進めたいと思います。

2014/06/02

フライトログのグラフ化スクリプト

Team'F'で使っているフライトログのグラフ化スクリプトを公開しました。

LogViewer

CSV形式のフライトログから以下のようなグラフを生成します。

スクリプトはPythonを使って書きました。
使い方の説明はReadme.mdを見ていただければおおむね把握できるかと思いますが、基本的にはログ解析用にデータの補間をscipyで行い、matplotlibで表示しているだけです。
使用しているセンサによってキャリブレーション定数が異なると思いますが、そのあたりはcalibration.pyを書き換えることで対応できると思います。

スクリプトのテスト用にTeam'F'の第36回鳥人間コンテストでのフライトログも同じ場所にアップロードしています。
こちらもご自由にお使いください。