GNSS受信機bynav C1-FS

categories: gnss
tags: qzss rtk

はじめに

開発ボード(EVK)込みの予算10万円未満で、新しいGNSS(global navigation satellite system)受信機を試してみたくなりました。

候補として、unicore UB4B0と、bynav C1-FSとに絞り、オンライン説明書をダウンロードして検討しました。unicore UB4B0は、432チャネル同時受信できるNebulasIIチップ搭載で、GPS L1CA/L2C/L2P(Y)/L5、GLO L1/L2、GAL E1/E5a/E5b、QZS L1CA/L2/L5、BDS B1I/B2I/B3I/B1C/B2aのそれぞれの信号が20 Hzで受信できることになっています。一方、bynav C1-FSにはAlitaチップが搭載され、GPS L1CA/L1C/L2C/L2P(Y)/L5、GLO L1/L2、GAL E1/E5a/E5b、QZS L1CA/L1C/L2C/L5、BDS B1I/B2I/B3I/B1C/B2a/B2b、IRN L5、SBAS L1CAのそれぞれの信号が10 Hzで受信できるそうですが、それらの同時受信チャネル数は記載されていません。両者ともに有線イーサネット・インターフェースを備え、また、基板上のアンテナコネクタ形式はMMCXです。

どちらのEVKも良いと思いましたが、東京海洋大学の高須先生がbynav C1-F8やA1-3Lを利用されていることと、対応信号数の多さから、C1-FSを選択しました。

bynav C1-FS購入

bynav C1-FS梱品

電源は9ボルトから24ボルトまでの直流です。プラスを赤線と黒線の両方に、マイナスを黄線と白線の両方に、それぞれ接続します。黒線にプラス電源を供給することには勇気が必要ですが、テスタで基板上の赤線端子と黒線端子との間に導通があることを確認しましたので、この通りに接続しました。

bynav C1-FS EVK表面

これはEVK表面の写真です。モジュール基板は名刺大の大きさですが、EVKがやや大きめです。中央にベースバンドチップAlitaが見えます。

bynav C1-FS EVK裏面

EVK裏面には、モジュールの2本のMMCXアンテナ端子が見えます。C1-FSは、シングルアンテナの機種ですが、アンテナ端子は2つありました。デュアルアンテナタイプのC1-FDと共通になっているようです。デュアルアンテナ観測ができることを、少しだけ期待してしまいました。

C1シリーズ受信機のパンフレットには、モジュールにSDHCスロットがあることになっています。しかし、高須先生のものと同様、私のものにもSDHCスロットはありせんでした。

bynav C1-FS EVK通電状態

電源を供給すると、電源LEDPWRとアンテナ1LEDANT1が点灯、アンテナ2LEDANT2が点滅し、DIFFが消灯していました。

設定

サポートソフトウェアBYCONNECTをWindows 10 PCにインストールし、EVK COM3ポート(中央のDSUB 9コネクタ)とPCとを接続して、このソフトウェアからボード情報を読み出します。

BYCONNECT software

BYCONNECT software

Board HW Type: C1_V2.0
BatchNum:      100333390095
V7.57_91D789_T
3130303333DC5321DB504943CF423227
COM1 115200 N 8 1 IN:AUTO OUT:AUTO 
COM2 115200 N 8 1 IN:AUTO OUT:AUTO 
COM3 115200 N 8 1 IN:AUTO OUT:AUTO 
COM4 0 N 0 0 IN:NONE OUT:NONE 
ICOM1 TCP :1111 IN:AUTO OUT:AUTO 
ICOM2 TCP :2222 IN:AUTO OUT:AUTO 
ICOM3 TCP :3333 IN:AUTO OUT:AUTO 
AuthStr:       37BE7CBBD978244E9A18E94F3A35B9BF;
AuthMode:      C1-FS;
Authorization: Permanent Licence;
InsEnable:     FALSE;
DualAntEnable: FALSE;
RawOutEnable:  TRUE;
AssistEnable:  FALSE;
OdoEnable:     FALSE;
MaxInsFreq:    125;
MaxRTKFreq:    10;
FrqMask:       B1IB2IB3IB1CB2AB2BL1L1CL2CL2PL5G1G2E1E5BE5AI5;
NavSys:        GPS GLONASS GALILEO BEIDOU QZSS IRNSS;
RTKTYPE ROVER
WORKFREQS: B1IB2IB2AL1L2CL2PL5G1G2E1E5BI5
GPS:       L1L2CL2PL5
Glonass:   G1G2
Galileo:   E1E5B
BEIDOU2:   B1IB2I
BEIDOU3:   B1IB2A
QZSS:      L1L2CL5
IRNSS:     I5
WORKFREQS: B1IB3IE1E5A
GPS:       
Glonass:   
Galileo:   E1E5A
BEIDOU2:   B1IB3I
BEIDOU3:   B1IB
QZSS:      
IRNSS:     
<LOGLIST COM3 0 100.0 FINESTE
<    11
<      COM3 BESTPOSA ONTIME 0.200000 0.000000 NOHOLD
<      COM3 HEADINGA ONTIME 0.200000 0.000000 NOHOLD
<      COM3 GPGGA ONTIME 0.200000 0.000000 NOHOLD
<      COM3 GPRMC ONTIME 0.200000 0.000000 NOHOLD
<      COM3 BESTPOSB ONTIME 1.000000 0.000000 NOHOLD
<      COM3 HEADING2B ONTIME 1.000000 0.000000 NOHOLD
<      COM3 TRACKSTATB ONTIME 1.000000 0.000000 NOHOLD
<      ICOM4 BESTPOSA ONTIME 0.200000 0.000000 NOHOLD
<      ICOM4 HEADINGA ONTIME 0.2
<      ICOM4 GPGGA ONTIME 0.200000 0.000000 NOHOLD
<      ICOM4 GPRMC ONTIME 0.200000 0.000000 NOHOLD

ファームウェア・バージョンは、7.57で、現在の最新のものでした。サポートソフトウェアの画面には、多くのNMEAメッセージや、デュアルアンテナ用の方向情報やIMU情報が表示されています。アンテナ端子2ポートに2本の別々のアンテナを接続してみましたが、方向出力やIMU出力はゼロのままでした。

はじめに、DHCPによりアドレスを自動取得するようイーサネットの設定をします。

ipconfig etha dhcp
<OK
[USB1]

これで、イーサネット経由にて、私の普段使いのMacbook Airのターミナルからでも、C1-FSを制御できるようになりました。

nc -c [IP address] 1111
log version
log version
$BDVER,V7.57_91D789_T,19060377,21031038,21012830,21012850,21011325,20101504,20073004,21012209*04
<OK
[ICOM1]

以下、プロンプトである<OK[ICOM1]メッセージを省略します。このC1-FSには、IMUがついていないので、それに関連するメッセージを非表示にしました。

unlog com3 headinga
unlog com3 corrimudatab
unlog icom1 insconfig
unlog icom1 inscalstatusa
unlog icom4 headinga

イーサネット経由にてこの受信機に入出力できるICOMポート数は全部で4チャネルあります。ここでは、ICOM1ポートを普段の制御用、ICOM2ポートを生データ出力用、ICOM3ポートをRTCM3出力用、そして、ICOM4はデフォルトの状態確認用にすることにしました。ICOM1ポート番号は1111、ICOM2のそれは2222、ICOM3のそれは3333、そしてICOM4のそれは4444です。まず、ICOM2ポートに生データを出力するようにします。

log icom2 rangecmpb ontime 1
log icom2 bdsephemerisb onchanged
log icom2 galephemerisb onchanged
log icom2 gpsephemb onchanged
log icom2 gloephemerisb onchanged
log icom2 qzssephemerisb onchanged
log icom2 ionutcb onchanged

コマンド末尾のbは、バイナリデータ(生データ)を表します。

マニュアルを読んでいて気がついたのですが、NavICのエフェメリス出力形式が定義されていませんでした。他システムの類推から、navicephemerisbnavicephembを試しましたが、Invalid Message Fieldエラーとなり、これを出力できそうにありません。一方、NavIC擬似距離はrangecmpbにて出力でき、そのフォーマットも定義されています。

また、NovAtel OEM729では、みちびきの電離層情報がlog icom2 qzssionutcbとして出力可能ですが、bynav C1-FSにはこのようなメッセージはありませんでした。

次に、ICOM3ポートにRTCMメッセージを出力するようにします。

log icom3 rtcm1077 ontime 1
log icom3 rtcm1087 ontime 1
log icom3 rtcm1097 ontime 1
log icom3 rtcm1107 ontime 1
log icom3 rtcm1127 ontime 1
log icom3 rtcm1137 ontime 1
log icom3 rtcm1019 onchanged
log icom3 rtcm1020 onchanged
log icom3 rtcm1042 onchanged
log icom3 rtcm1044 onchanged
log icom3 rtcm1046 onchanged
log icom3 rtcm1048 onchanged
log icom3 rtcm1230 onchanged
log icom3 rtcm1033 ontime 5
log icom3 rtcm1005 ontime 1

高須先生もご指摘されていましたが、Galileo F/NAVのRTCM3メッセージが、マニュアルになく、出力しようとしてもできませんでした。

log icom3 rtcm1045 onchanged
<ERROR:Invalid Message Field

そして、出力が正しく設定されたことをlog loglistにて確かめます。

log loglist
<LOGLIST ICOM1 0 100.0 FINESTEERING 2187 573429.800 00000000 0000 757
<    28
<      COM3 BESTPOSA ONTIME 0.200000 0.000000 NOHOLD
<      COM3 GPGGA ONTIME 0.200000 0.000000 NOHOLD
<      COM3 GPRMC ONTIME 0.200000 0.000000 NOHOLD
<      ICOM2 RANGECMPB ONTIME 1.000000 0.000000 NOHOLD
<      ICOM2 BDSEPHEMERISB ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM2 GALEPHEMERISB ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM2 GPSEPHEMB ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM2 GLOEPHEMERISB ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM2 QZSSEPHEMERISB ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM2 IONUTCB ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM3 RTCM1077 ONTIME 1.000000 0.000000 NOHOLD
<      ICOM3 RTCM1087 ONTIME 1.000000 0.000000 NOHOLD
<      ICOM3 RTCM1097 ONTIME 1.000000 0.000000 NOHOLD
<      ICOM3 RTCM1107 ONTIME 1.000000 0.000000 NOHOLD
<      ICOM3 RTCM1127 ONTIME 1.000000 0.000000 NOHOLD
<      ICOM3 RTCM1137 ONTIME 1.000000 0.000000 NOHOLD
<      ICOM3 RTCM1019 ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM3 RTCM1020 ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM3 RTCM1042 ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM3 RTCM1044 ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM3 RTCM1046 ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM3 RTCM1048 ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM3 RTCM1230 ONCHANGED 0.000000 0.000000 NOHOLD
<      ICOM3 RTCM1033 ONTIME 5.000000 0.000000 NOHOLD
<      ICOM3 RTCM1005 ONTIME 1.000000 0.000000 NOHOLD
<      ICOM4 BESTPOSA ONTIME 0.200000 0.000000 NOHOLD
<      ICOM4 GPGGA ONTIME 0.200000 0.000000 NOHOLD
<      ICOM4 GPRMC ONTIME 0.200000 0.000000 NOHOLD
<OK
[ICOM1]

最後にこれらの設定を保存します。

saveconfig

ICOM接続は、CTRL+Dにて終了できます。

CC1-FSには、NavICエフェメリス出力やGalileo F/NAV RTCM3メッセージ出力がないなど、荒削りなところはありますが、今後のファームウェアアップデートに期待しています。

実験

その後、ICOM2出力を観測して、生データが出力されているようでした(nc -c [IPアドレス] 2222)。しかし、ICOM3出力にメッセージが現れませんでした。

bynav生データは、ある程度、NovAtel生データとの間で互換性があるようですので、RTKLIB 2.4.3b34 RTKNAVIの受信機設定OEM7でこの生データを解釈させてみました。RTKの設定を行い、基準局データとして私のNovAtel OEM729のRTCM3を設定しました(ホスト ntrip.phys.info.hiroshima-cu.ac.jp、ポート番号80、マウントポイントOEM7)。結果は次の通りです。

bynav-c1fs5

上段はこのbynav C1-FSの生データを、下段は職場のNovAtel OEM729生データをRTKLIB str2strでRTCM3データに変換したものを、それぞれ示しています。自宅で観測していますので、座標の一部を伏せています。簡易評価ですが、動作は確認できました。これから詳細にみてゆこうと思います。

C1-FSのICOM3ポートにてRTCM3出力ができなかったのは、このポートのモード設定がされていなかったためかもしれません。USB出力なども含めて、実験を進めてゆきます。