2024年2月18日日曜日

ZED-F9PとNEO-D9Cを繋げてL6電波を利用する単独測位


背景

日本の衛星測位システム「みちびき」のL6電波を受信可能なNEO-D9CをZED-F9Pと連携させれば単独測位でもcm級誤差の精度を得られるらしいと知ったので、装置を買って動かしてみました。
備忘録として設定方法と取得できる値を記事に残します。

使ったもの


F9Pで「みちびき」のL6情報を扱うにはファームウェアは1.30以上が必要

D9CX1使用説明書によるとみちびきの情報を扱うにはファームウェア1.30以上が必要です。

「使ったもの」の一覧で共有したF9Pには現時点で最新の1.32のファームウェアが書き込まれていたのでそのまま使えましたが、1.30未満のファームウェアが書き込まれているF9Pを利用している場合はファームウェア1.30以上への更新が必要です。


ファームウェアの更新にはとu-center(とwindows pc)が必要です。
下記のページが参考になります。

ZED-F9Pファームウェアのバージョンアップ

D9CのUART2 TXとF9PのUART2 RXを接続

ジオセンスのD9CとF9PはUART2のRXとTXが入れ替わるように配置されているので、端の端子をそれぞれ繋げばUART2を接続できます。


どちらもUSBケーブルでPCに繋ぐ場合はD9CのUART2 TXとF9PのUART2 RXだけの接続で良いですが、今回はF9Pへの給電でD9Cも動いて欲しいので、RXとTXがあるピンの並び全て(GND、V5V、PWR、RX2-TX2、TX2-RX2)を接続します。
PWRピンはどちらも1.8~4Vの電源の入力端子なので、繋いでも無意味ですが故障はしません。

さて、購入した装置の「アンテナ接続用の端子の背の高さと足の出っ張り」が「ピンヘッダとピンソケットを組み合わせたときの高さ」を上回るため、実装面を同じ向きにするとピンソケットとピンヘッダでは繋げません。


幸い欲しい信号線は基板の端にあるため、実装面を互い違いにするとピンソケットとピンヘッダで繋げました。


繋ぐとこうなりました。


D9Cのアンテナへの電力供給線は開放したままにします。
F9Pから供給されるからです。


D9CのUART2の設定を変更

F9PにUART2経由でL6電波の情報を送るために、u-centerやpygpsclientを利用してD9CのUART2設定を下記のように変更します。
  • CFG_UART2_BAUDRATE を 38400
    F9PのUART2の工場出荷時の通信速度が38400なので、それに合わせます。
  • CFG_UART2OUTPORT_UBX を 1
    UART2からのUBX配信を有効にしてL6の受信情報を配信できます。

上記の設定はRAMだけでなくFLASH書き込みが可能なので、FLASHも書き換えるとD9Cを再起動しても設定を維持できて便利です。



F9PとD9Cとアンテナを繋いでF9Pから配信される情報を確認

空が開けたところで装置をUSB接続して情報を取得すると測位情報がFix状態になります。


会社の駐車場で動作確認しました。


Fix時は下記の情報がF9Pから配信されました。
$GNRMC,055707.00,A,3610.56537,N,13917.57079,E,0.007,,180224,,,R,V*0A
$GNVTG,,T,,M,0.007,N,0.013,K,D*3D
$GNGGA,055707.00,3610.56537,N,13917.57079,E,4,12,0.78,57.6,M,38.5,M,5.0,0000*5D
$GNGSA,A,3,02,07,08,30,16,21,10,26,27,,,,1.32,0.78,1.07,1*02
$GNGSA,A,3,74,73,75,84,85,,,,,,,,1.32,0.78,1.07,2*0F
$GNGSA,A,3,13,21,26,27,15,,,,,,,,1.32,0.78,1.07,3*0E
$GNGSA,A,3,07,09,10,16,25,23,24,11,06,12,,,1.32,0.78,1.07,4*00
$GNGSA,A,3,07,02,03,,,,,,,,,,1.32,0.78,1.07,5*0A
$GPGSV,3,1,12,01,,,43,02,45,206,46,07,41,292,47,08,67,338,45,1*5E
$GPGSV,3,2,12,10,20,078,43,16,38,108,44,21,61,198,46,26,12,123,31,1*6B
$GPGSV,3,3,12,27,46,049,46,30,18,315,35,41,18,249,41,50,46,200,43,1*60
$GPGSV,2,1,06,07,41,292,43,08,67,338,47,10,20,078,43,26,12,123,31,6*66
$GPGSV,2,2,06,27,46,049,47,30,18,315,39,6*6B
$GPGSV,1,1,01,23,09,045,,0*5D
$GLGSV,2,1,06,73,27,144,48,74,74,132,40,75,45,330,47,84,59,019,37,1*79
$GLGSV,2,2,06,85,54,238,48,86,06,222,40,1*79
$GLGSV,2,1,05,73,27,144,50,75,45,330,47,84,59,019,43,85,54,238,47,3*70
$GLGSV,2,2,05,86,06,222,39,3*4F
$GLGSV,1,1,01,83,00,036,,0*46
$GAGSV,2,1,07,04,01,293,32,13,74,090,50,14,65,289,50,15,26,041,37,2*72
$GAGSV,2,2,07,21,76,001,50,26,40,200,49,27,40,112,50,2*4E
$GAGSV,2,1,06,13,74,090,45,14,65,289,46,15,26,041,33,21,76,001,44,7*7E
$GAGSV,2,2,06,26,40,200,46,27,40,112,46,7*74
$GAGSV,1,1,01,19,01,241,,0*4B
$GBGSV,2,1,08,07,51,292,43,09,48,250,45,10,38,286,42,12,51,039,47,1*7D
$GBGSV,2,2,08,16,41,223,46,23,30,314,45,24,37,153,46,25,75,257,47,1*79
$GBGSV,2,1,07,06,43,228,45,07,51,292,47,09,48,250,47,10,38,286,45,B*06
$GBGSV,2,2,07,11,67,255,50,12,51,039,51,16,41,223,44,B*3C
$GBGSV,4,1,14,01,46,171,,02,18,246,,03,37,222,,04,42,148,,0*72
$GBGSV,4,2,14,34,79,348,,38,05,182,,39,33,212,,40,56,308,,0*70
$GBGSV,4,3,14,43,42,245,,44,28,049,,59,46,179,,60,15,249,,0*7C
$GBGSV,4,4,14,61,38,223,,62,45,146,,0*7B
$GQGSV,1,1,04,02,85,104,43,03,69,177,43,04,09,185,30,07,46,200,40,1*67
$GQGSV,1,1,04,02,85,104,47,03,69,177,47,04,09,185,39,07,46,200,46,6*6F
$GNGLL,3610.56537,N,13917.57079,E,055707.00,A,D*75

GGAに注目すると、測位状態(Eの後)がRTK FIXを意味する4になっていました。
$GNGGA,055707.00,3610.56537,N,13917.57079,E,4,12,0.78,57.6,M,38.5,M,5.0,0000*5D

今回はRTKを使っていないのですが、L6を利用した高精度単独測位を意味する状態が無いためRTKのFIXを使っていると推測します。

L6を利用した単独測位はRTKに比べると不安定な印象

会社にRTK装置(softbankのichimil)があるので今回のL6を利用するF9PとFIX具合を比較したところ、RTKの方が安定していました。

L6を利用するF9Pは装置を持ち歩いて数m移動するとFixからFloat状態になることが多かったです。
一方、RTKは大体問題なく動きました。
移動者の胸元あたりにアンテナ部分を抱えて移動したので、頭にアンテナを固定する防止やヘルメットを作れば安定するのかもしれません。

また、重要な衛星があるであろう方向は、2階建ての建物から5m以上離れないとL6を利用するF9PはFixしませんでした。
RTKは精度は不明ですが、空が見えていれば大体Fixしてくれます。

精度や安定度を上げる設定などをご存知でしたら、コメントなどで教えていただけると嬉しいです。

おわり

ZED-F9PとNEO-D9Cを組み合わせて、みちびきのL6電波を受信して単独測位を行えました。
RTKに比べるとFixの安定度は低かったですが、動かせて良かったです。

参考

利用したF9PとD9Cの基板の説明書です。
F9PX1使用説明書
D9CX1使用説明書

以前手持ちのF9Pを2台使ってRTKを試したときの記事です。
pygpsclientを利用した設定値の書き換え方法も解説しています。
ZED-F9P 2台とpygpslientを利用してntripのserverかつcasterとclientとして動かしてRTKで位置を推定

0 件のコメント :