みちびきMADOCA-PPPの試験配信開始

categories: gnss

はじめに

本日、2022-08-18に、みちびきL6E信号にて補強情報MADOCA-PPP(Multi-GNSS Advanced Orbit and Clock Augmentation - Precise Point Positioning)の試験配信が始まりました。これまでは、MADOCA(Multi-GNSS Advanced Demonstration tool for Orbit and Clock Analysis)が試験配信されていました。配信フォーマット変更により、多くの衛星が補強対象になり、グレードアップしたと言えます。

Allystar HD9310オプションC受信機と、フリーウェアQZS L6 Toolを用いて、補強情報切り替えの様子と、MADOCA-PPPの配信内容を解析しました。

動画左画面はみちびきL6E信号の受信状態を、右画面はその内容を表しています。みちびき4機すべてが受信可能であり、同一内容が伝送されるはずなので、最も強い衛星信号を選択して解読しています。

補強情報切り替え前後の様子

QZS L6 Toolのアップデート

MADOCA-PPP配信開始は08:00UTC(日本時間17:00)頃とされていましたが、00:00UTCから01:00UTCの間に切り替わりました。この様子をQZS L6 Toolにて解析します。QZS L6 ToolについてはQZS L6 ToolのCLASメッセージ対応をご覧ください。なお、以前のコードqzsl62rtcm.pyにバグがありますので、すみませんがアップデートしてください。

cd qzsl6tool
git pull

切り替え前

はじめに、私が観測した2022-08-17 23:00 UTC(日本時間08:00)から1時間のHD9310受信機収録データ20220817x.alstを解析します。正確には、その期間の30秒前から収録開始し、その30秒後に記録終了していますので、収録期間は1時間と1分です。

cat 20220817x.alst | alst2qzsl6.py -l | qzsl62rtcm.py

alst2qzsl6.pyは、標準入力からAllystar HD9310オプションC受信機の生データを受け取り、その受信状態を出力します(先の動画の左画面)。この-lオプションは、L6メッセージ出力を表し、受信状態表示を抑制して、強度が最も高いL6信号のメッセージを出力します。qzsl62rtcm.pyは、標準入力からL6メッセージを受け取り、その内容をデコードするものです。

204 Hitachi-Ota:0* 2022-08-17 22:59:04 RTCM 1062(26) RTCM 1068(18)
205 Hitachi-Ota:0* 2022-08-17 22:59:04
205 Hitachi-Ota:0* 2022-08-17 22:59:06 RTCM 1062(26) RTCM 1068(18)
209 Hitachi-Ota:0* 2022-08-17 22:59:06
209 Hitachi-Ota:0* 2022-08-17 22:59:08 RTCM 1062(26) RTCM 1068(18)
205 Hitachi-Ota:0* 2022-08-17 22:59:08
205 Hitachi-Ota:0* 2022-08-17 22:59:10 RTCM 1062(26) RTCM 1068(18)
205 Hitachi-Ota:0* 2022-08-17 22:59:10
209 Hitachi-Ota:0* 2022-08-17 22:59:12 RTCM 1062(26) RTCM 1068(18)
209 Hitachi-Ota:0* 2022-08-17 22:59:12 RTCM 1057(8) RTCM 1061(8)
...
205 Hitachi-Ota:0* 2022-08-17 23:54:54 RTCM 1063(2) RTCM 1067(2)
205 Hitachi-Ota:0* 2022-08-17 23:54:56 RTCM 1062(26) RTCM 1068(18)
205 Hitachi-Ota:0* 2022-08-17 23:54:56
205 Hitachi-Ota:0* unknown (vendor ID 0b000)
205 Hitachi-Ota:0* unknown (vendor ID 0b000)

2022-08-18 00:00 UTCより少し前にMADOCAの配信が終了し、定義されていないベンダーID000が放送されました。L6E信号は、1秒間に1メッセージ伝送します。そこで、この未定義メッセージが放送された期間を求めてみます。

$ cat 20220817x.alst | alst2qzsl6.py -l | qzsl62rtcm.py | wc -l
3659
$ cat 20220817x.alst | alst2qzsl6.py -l | qzsl62rtcm.py | grep unknown|wc -l
305

この結果から、全3659メッセージのうち、305メッセージ(約5分)の未定義メッセージが送信されたことになりますので、2022-08-18 23:55 UTC頃にMADOCA配信が終了したと言えます。qzsl62rtcm.pyにトレースオプション-t 2(1は詳細を、2は詳細に加えてビットイメージを表示します)をつけて、vendor ID 000の中身を見てみます。

205 Hitachi-Ota:0* unknown (vendor ID 0b000)
Unknown dump: 010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010101010101010101010101010101010101010101010101010101
01010101010101010101010101010

そのペイロード(本体)には、2進数で01の交番符号が付加されていました。

切り替え後

次に、2022-08-18 00:00 UTCから1時間の収録データ20220818a.alstを解析します。

$ cat 20220818a.alst | alst2qzsl6.py -l | qzsl62rtcm.py|grep unknown | wc -l
2377

同様に考えて、MADOCA-PPPは2022-08-18 00:40 UTC頃に配信開始されたと推定できます。配信内容の抜粋は次のとおりです。

205 Hitachi-Ota:0* unknown (vendor ID 0b000)
205 Hitachi-Ota:0* unknown (vendor ID 0b000)
205 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* QZNMA
205 Hitachi-Ota:1* QZNMA
205 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* MADOCA-PPP
206 Hitachi-Ota:1* MADOCA-PPP
206 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* QZNMA
205 Hitachi-Ota:1* QZNMA
206 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* MADOCA-PPP
205 Hitachi-Ota:1* MADOCA-PPP SF1 DP1 (Clock/Ephemeris LNAV) ST1
205 Hitachi-Ota:1* MADOCA-PPP SF1 DP2 (Clock/Ephemeris LNAV)
205 Hitachi-Ota:1* MADOCA-PPP SF1 DP3 (Clock/Ephemeris LNAV) ST2 ST3
205 Hitachi-Ota:1* MADOCA-PPP SF1 DP4 (Clock/Ephemeris LNAV)
205 Hitachi-Ota:1* MADOCA-PPP SF1 DP5 (Clock/Ephemeris LNAV)

MADOCA-PPPにおいても、MADOCAと同様に、アラートフラグがオン状態で放送されていました。局名の後のアスタリスクが、アラートフラグオンを表しています。

(2022-08-22追記) このアラートフラグは、06:10:30 UTC頃にオフになりました。

その後も、常陸太田局からMADOCA-PPPが放送されていて、神戸局からのものは観測できませんでした。みちびきの補強情報は、常陸太田局の2系統と、神戸局の2系統とを合わせた4系統で作成し、地上局が先に受けた情報を衛星にアップロードしているようです。MADOCA-PPP配信後にいつでもMADOCAに切り戻しできるようにするため、準備期間中に、神戸局2システムの配信情報作成を待機状態にし、常陸太田局のシステムの一方でMADOCAを作成して、その他方でMADOCA-PPPの作成準備をしていたと推測しています。

現在のMADOCA-PPPは、クロックとエフェメリス(Clock/Ephemeris)の補強情報を配信しています。将来のMADOCA-PPPには、電離層(Ionospheric)補強情報が含まれる予定です。また、航法メッセージとして、L1 C/A信号で使用されるLNAV(legacy navigation)メッセージが選択されています(「準天頂衛星システムサービスユーザインタフェース仕様書衛星測位サービス編」について)。将来は、みちびきやGPSのL2C信号やL5信号で放送されるCNAV(civil navigation)や、L1C信号で放送されるCNAV2に対する補強も選択(CNAVと表示)されるかもしれません。

MADOCA-PPPの補強情報

MADOCAは、SSR(space state representation)RTCMメッセージから、CRC(cyclic redundancy check)符号部分を除いたものを、そのまま伝送していました。それに対して、MADOCA-PPPは、CSSR(compact SSR)形式にてメッセージを伝送します。メッセージ内容種別はサブタイプ(ST)で識別されます。

CSSR解読は、ST1メッセージを見つけることからはじめます。ここに、補強対象衛星とその信号がビットイメージで表現されます。それ以降の情報は、ビットがオンとなった衛星や信号に関する情報のみを続けて伝送する可変長構造になっているので、このST1メッセージを復号できないとその後のメッセージ復号ができません。そこで、qzsl62rtcm.pyにトレースオプション-t 1をつけて、この補強対象衛星とその信号を調べます。

$ cat 20220818a.alst | alst2qzsl6.py -l | qzsl62rtcm.py -t 1 | grep -v unknown

ST1 G02 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G03 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G04 L1 C/A L1 Z-tracking L1 L1C(D+P) L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G05 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G06 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G07 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G08 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G11 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G12 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G13 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G14 L1 C/A L1 Z-tracking L1 L1C(D+P) L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G15 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G16 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G17 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G18 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G19 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G20 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G21 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G22 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G24 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G25 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G27 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G30 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 G31 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking
ST1 G32 L1 C/A L1 Z-tracking L2 L2C(M+L) L2 Z-tracking L5 I+Q
ST1 R01 G1 C/A G1 P G2 C/A G2 P
ST1 R02 G1 C/A G1 P G2 C/A G2 P
ST1 R03 G1 C/A G1 P G2 C/A G2 P
ST1 R04 G1 C/A G1 P G2 C/A G2 P
ST1 R07 G1 C/A G1 P G2 C/A G2 P
ST1 R08 G1 C/A G1 P G2 C/A G2 P
ST1 R11 G1 C/A G1 P G2 C/A G2 P
ST1 R12 G1 C/A G1 P G2 C/A G2 P
ST1 R13 G1 C/A G1 P G2 C/A G2 P
ST1 R14 G1 C/A G1 P G2 C/A G2 P
ST1 R15 G1 C/A G1 P G2 C/A G2 P
ST1 R17 G1 C/A G1 P G2 C/A G2 P
ST1 R18 G1 C/A G1 P G2 C/A G2 P
ST1 R19 G1 C/A G1 P G2 C/A G2 P
ST1 R20 G1 C/A G1 P G2 C/A G2 P
ST1 R21 G1 C/A G1 P G2 C/A G2 P
ST1 R24 G1 C/A G1 P G2 C/A G2 P
ST1 E01 E1 B+C E5a I+Q
ST1 E02 E1 B+C E5a I+Q
ST1 E03 E1 B+C E5a I+Q
ST1 E04 E1 B+C E5a I+Q
ST1 E05 E1 B+C E5a I+Q
ST1 E08 E1 B+C E5a I+Q
ST1 E09 E1 B+C E5a I+Q
ST1 E11 E1 B+C E5a I+Q
ST1 E12 E1 B+C E5a I+Q
ST1 E13 E1 B+C E5a I+Q
ST1 E15 E1 B+C E5a I+Q
ST1 E19 E1 B+C E5a I+Q
ST1 E24 E1 B+C E5a I+Q
ST1 E25 E1 B+C E5a I+Q
ST1 E26 E1 B+C E5a I+Q
ST1 E27 E1 B+C E5a I+Q
ST1 E30 E1 B+C E5a I+Q
ST1 E31 E1 B+C E5a I+Q
ST1 E33 E1 B+C E5a I+Q
ST1 E36 E1 B+C E5a I+Q
ST1 J02 L1 C/A L1 L1C(D+P) L2 L2C(M+L) L5 I+Q
ST1 J03 L1 C/A L1 L1C(D+P) L2 L2C(M+L) L5 I+Q
ST1 J07 L1 C/A L1 L1C(D+P) L2 L2C(M+L) L5 I+Q

MADOCA-PPP最初の補強対象衛星は、GPS 25衛星、Glonass 17衛星、Galileo 20衛星、および、みちびき 3衛星で、全65衛星が補強対象でした。ちなみに、直前まで放送されていたMADOCAの補強対象衛星は、GPS 26衛星とGlonass 18衛星の合計44衛星で、みちびきは補強対象外でした。MADOCA-PPPにおいても、まだ、みちびき初号機後継機QZS-1R(J04)の補強情報は作成されていないようです。

次に、qzsl62rtcm.py-t 2オプションをつけて、みちびき航法メッセージ認証QZNMA(quasi-zenith satellite navigation message authentication)の中身を見てみます。試験配信期間中、このQZNMA情報には、無効情報がセットされるとアナウンスされていました。観測したところ、すべてのQZNAメッセージにおいて、次の同一内容が放送されていました。

QZNMA dump: 11110000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000001111000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000

QZNMAのインターフェース仕様書(IS-QZSS-SAS(signal authentication service)はまだ公開されていません。Galileoの航法メッセージ認証OSNMAはとても複雑なので、QZNMAではより簡明な認証を望んでいます。

Allystar受信機リアルタイム・ストリームの期間限定公開

MADOCA-PPP受信を試してみませんか?

期間限定で、HD9310オプションCのリアルタイム生データをNTRIP形式で公開します。接続情報は次のとおりです。

  • アドレス: ntrip.phys.info.hiroshima-cu.ac.jp
  • マウントポイント: MADOCA
  • ユーザ名・パスワード: なし(空欄)

例えば、RTKLIBのCUIアプリケーションstr2strとQZS L6 Toolを用いて、MADOCA-PPPを観測するためには、次のコマンドを実行します。

str2str -in ntrip://ntrip.phys.info.hiroshima-cu.ac.jp/MADOCA 2> /dev/null | alst2qzsl6.py -l | qzsl62rtcm.py

209 Hitachi-Ota:0  MADOCA-PPP
209 Hitachi-Ota:0  MADOCA-PPP
209 Hitachi-Ota:0  MADOCA-PPP
209 Hitachi-Ota:0  QZNMA
209 Hitachi-Ota:0  QZNMA
209 Hitachi-Ota:0  MADOCA-PPP
209 Hitachi-Ota:0  MADOCA-PPP
209 Hitachi-Ota:0  MADOCA-PPP
205 Hitachi-Ota:0  MADOCA-PPP SF1 DP1 (Clock/Ephemeris LNAV) ST1
205 Hitachi-Ota:0  MADOCA-PPP SF1 DP2 (Clock/Ephemeris LNAV)
209 Hitachi-Ota:0  MADOCA-PPP SF1 DP3 (Clock/Ephemeris LNAV) ST2 ST3
209 Hitachi-Ota:0  MADOCA-PPP SF1 DP4 (Clock/Ephemeris LNAV)
209 Hitachi-Ota:0  MADOCA-PPP SF1 DP5 (Clock/Ephemeris LNAV)
209 Hitachi-Ota:0  QZNMA
209 Hitachi-Ota:0  QZNMA
209 Hitachi-Ota:0  MADOCA-PPP SF2 DP1 (Clock/Ephemeris LNAV) ST7 ST3
209 Hitachi-Ota:0  MADOCA-PPP SF2 DP2 (Clock/Ephemeris LNAV)
209 Hitachi-Ota:0  MADOCA-PPP SF2 DP3 (Clock/Ephemeris LNAV)

qzsl62rtcm.pyに、-t 1オプションなどをつけてお楽しみください。

みんなでみちびきを盛り上げましょう!

まとめ

みちびきL6E信号にて、MADOCA-PPPの試験配信がはじまりました。QZS L6 Toolを改良し、CSSRからRTCM SSRに変換できるようにして、RTKLIBなどで高精度測位ができるようにしてみたいです。