QZS L6 Toolのコード名整理とSeptentrio受信機対応
はじめに
測位衛星は、利用者にて電波の受信のみで座標を求められるよう、測距信号と航法メッセージ信号とを重畳して放送しています。この測距信号は、測位受信機にて受信することが求められています。一方、航法メッセージについては、測位受信機で受信してもよく、インターネットなどの手段で入手することもできます。
さらに、近年の測位衛星は、災害情報メッセージ信号、測位精度を高めるための補強メッセージ信号、航法メッセージ認証信号などを提供することもあります。
この測位衛星が放送するメッセージを解読するツール QZS L6 Tool(quasi-zenith satellite L6-band tool) を公開しています。近年の受信機は、より多くのメッセージを出力できるようになりましたので、多くの受信機に対応できるよう、QZS L6 Toolのコード名を見直しました。
なお、QZS L6 Toolは、名称に準天頂衛星みちびきのL6帯を含みますが、準天頂衛星以外を扱うこともできます。名称を変えた方が良いのかもしれませんが、当面は、そのままにしようと思っています。
コード名整理
例えば、Galileo HAS(high accuracy service)メッセージを受信するため、記事QZS L6 ToolのHASメッセージ対応では、Pocket SDR受信機を利用しました。当時、Pocket SDR受信機のみがHASメッセージを受信でき、また、HASメッセージに衛星のPRN(pseudo random noise)番号が含まれていないため、HASメッセージ解読についてはPocket SDR受信機ログファイルのみ利用できるようにしました(pksdr2has.py
)。
その後、ファームウェアアップデートで、NovAtel(ノバテル)OEM729受信機もHASメッセージを受信できるようになりました。そこで、HASライブストリーム公開とともに、QZS L6 ToolにてOEM729受信機のHAS生データを扱えるようにしました(nov2has.py
)。
その後、多くの信号を扱えるSeptentrio(セプテントリオ)のmosaic受信機を入手し、また、ファームウェア更新でより多くの信号を受信できるかもしれない素晴らしい未来が現実になりつつあるので、メッセージ解読の受信機依存部分を切り離すことにしました。
これまでのQZS L6 Toolのコード名と、更新したコード名との対応を示します。なお、旧コードを新コードへのシンボリックリンクにし、新コードの中では自らのコード名を認識して、互換性を確保しています。この互換性は、test/
ディレクトリにあるテストコードdo_test.sh
にて検証しています。
旧コード名 | 新コード名(オプション指定を含む) | 説明 |
---|---|---|
alst2qzsl6.py | alstread.py -l | Allystar受信機生データからL6メッセージを抽出 |
qzsl62rtcm.py | qzsl6read.py | L6メッセージの内容を表示 |
showrtcm.py | rtcmread.py | RTCMメッセージの内容を表示 |
pksdr2qzsl6.py | psdrread.py -l | Pocket SDR受信機ログファイルからL6メッセージを抽出 |
pksdr2has.py | psdrread.py -e | gale6read.py | Pocket SDR受信機ログファイルからHASメッセージ内容を表示 |
新コードでの受信機別メッセージ出力機能を次にまとめます。受信機略称と読み取りを表すreadからなります。なお、コンピュータの世界では、このような用途にdumpの語がしばしば利用されますが、これには投げ捨てるという意味もあるそうですので、この語の使用を避けました。
新コード名 | L6メッセージ-l オプション | E6Bメッセージ-e オプション | B2bメッセージオプション-b | 説明 |
---|---|---|---|---|
psdrread.py | yes | yes | yes | Pocket SDR受信機用 |
alstread.py | yes | HD9310受信機用 | ||
novread.py | yes | yes | OEM729受信機用 | |
septread.py | yes | yes | yes | mosaic-CLAS/X5受信機用 |
また、メッセージ解読コードは次のとおりです。これらは、単独で、または、上述の受信機生データ読み出しコードとのパイプ経由で用います。今後、BDS PPP-B2b補強メッセージや、航法メッセージ認証の解析コードを追加していきたいと考えています。
新コード名 | 説明 | 対象 | 備考 |
---|---|---|---|
qzsl6read.py | QZS L6メッセージ解読 | CLAS, MADOCA-PPP, 旧MADOCA | -r オプションで、旧MADOCAのRTCM SSRメッセージや、CLASのRTCM MT4073メッセージを出力。-t 数値オプションで、メッセージ内容を出力。 |
rtcmread.py | RTCMメッセージ解読 | NAV, OBS, SSR, 基準局座標等 | -t 数値オプションで、メッセージ内容を出力。 |
gale6read.py | GAL E6(HAS)メッセージ解読 | HAS | -t 数値オプションで、メッセージ内容を出力。 |
Septentrio受信機の生データ出力設定
私は、Septentrioのmosaic-CLAS(シーラス)受信機とmosaic-X5受信機を持っています。CLASタイプは、L1・L2周波数帯の測位衛星信号を利用した上で、みちびきのCLAS補強情報を処理できます。一方、X5タイプは、L1・L2・L5周波数帯の測位信号を利用した上で、Galileo HASやBeiDou PPP-B2b補強情報を受信できます(まだ補強情報の処理まではできません)。設定により、CLAS、MADOCA-PPP、HAS、PPP-B2bの生データを出力することも可能です。
生データ出力を得ることができれば、QZS L6 Toolにてメッセージを解読することができます。さらに、mosaic受信機をネットワーク接続PCに接続すれば、別PCから受信機を利用できるので便利です。
mosaic受信機では、例えば、IPS1
というポートに、TCP 2000番ポートを割り当て、そこに生データを出力させるためには、Communication->IP Ports
メニューのNew IP Serverからポート追加します。
例えば、mosaic-CLAS受信機で、このIPS1
ポートに、みちびきのL6メッセージ(CLASまたはMADOCA-PPP)を出力させるためには、NMEA/SBF Out
メニューのNew SBF streamからメッセージQZSRawL6
を選択します。Intervalについては、OnChange(データが受信され次第、出力する)を選択します。GNSS->CLAS
メニューにて、CLAS(L6D)とMADOCA-PPP(L6E)とのどちらかを選択できます。残念ながら、CLASとMADOCA-PPPの同時受信はできません。
mosaic-X5受信機で、IPS1
ポートに、GalileoのHASメッセージ(E6B信号にあるC/NAV: commercial navigation message、シーナブ)やBeiDouのPPP-B2bを出力させるためには、New SBF streamにて、GALRawCNAV
とBDSRawB2b
を選択します。
みちびき航法メッセージ認証
準天頂衛星みちびきは、2023年7月31日より、航法メッセージ認証(QZNMA: quasi-zenith satellite navigation message authentication)の試験放送をはじめました。これは、航法メッセージの正しさを受信機にて検証できるようにするための、航法メッセージ認証情報の放送です。
QZNMAでは、GPSとGalileoに対してはみちびきのL6E信号にてMADOCA-PPPと多重化して、みちびき自身に対してはL1信号にて航法メッセージと多重化して、認証メッセージが伝送されます(仕様書IS-QZSS-SAS-001_Draft-002)。この試験放送では、L6E信号のみを用いて、すなわちGPSとGalileoに対して、航法メッセージ認証が行われています。
航法メッセージ認証については、GalileoのOSNMA(open service navigation message authentication)が先行しています(2020年11月18日)。現在のところ、OSNMAでの認証は、GPSのLNAVと、GalileoのI/NAVのみのようです。
一方、現在のQZNMAは、GPSのLNAVとCNAV、GalileoのI/NAVとF/NAVの認証サービスを提供しています。QZS L6 Toolは、QZNMAを解読できます。Pocket SDR受信機ならば-sig L6E
指定にて、Septentrio mosaic-CLAS受信機ならばみちびき受信信号をL6E信号にセットして、Allystar HD9310受信機ならばL6Eファームウェアを利用して、あるいはNTRIPでのAllystar受信機生データの公開ストリームntrip.phys.info.hiroshima-cu.ac.jp:80/MADOCA
を用いることで、QZNMAメッセージを確認することができます。
今後、航法メッセージの認証ができるようにしてみたいです。航法メッセージ認証にはその公開鍵が必要です。上述のIS-QZSS-SAS-001_Draft-002に書かれている方法で、所属先メールアドレス、住所、氏名、目的を添えて申請すると、公開鍵を入手することができます。
おわりに
互換性のある方法で測位衛星を利用する範囲では、これまでと同様に利用できます。しかし、測位衛星や、その受信機も、新技術投入の競争状態にあり、少々の努力でその先端機能を利用できます。無線通信技術や衛星測位技術を好む人々にとって、ワクワクする状態になったといえます。
新周波数でのメッセージ放送だけでなく、既存の航法メッセージについても、Galileo Improved I/NAV、Galileo OSNMA、みちびきQZNMA(L1周波数帯では2024年2月に試験放送開始予定)など、新技術投入が進んでいて、楽しい時代になったといえます。QZS L6 Toolでもこのような技術を扱えるようにしたいです。