GNSS受信機NovAtel OEM729の導入

categories: gnss
tags: oem729

高性能GNSS受信機OEM729

カナダのGNSS(global satellite navigation system)受信機メーカーNovAtel(ノバテル)の受信機OEM729を導入しました。東京海洋大学の高須先生の記事を見て、欲しくても我慢する日々を送っていましたが、我慢しきれずにAliExpressのストアに発注しました。

OEM729を利用するためには、本体受信機基板の他に、開発ボードが必要です。受信機基板の動作に必要な複数電圧電源を供給し、受信機とパソコンとをUSB接続やイーサネット接続できるようにするためのものです。この開発ボードとしてサードパーティのものを購入しました。この開発ボードは、NovAtel OEM729だけでなく、Trimble BD982などの別のGNSS受信機メーカー基板にも接続できるという、不思議なものです。受信機メーカー間でのピン配置がある程度、共通なようです。

受信機基板と開発ボードを合わせた費用は12万円程度でした。自己責任を前提に、この高性能受信機に対するこの価格に、大変な魅力があります。

機器セットアップ

受信機基板と開発ボードを別のストアに同時発注しましたが、先に開発ボードが届きました。私は開発ボード単体を発注しましたが、開発ボードはケース付きのものにしておけばよかったです。とにかく、初めて所有する高性能GNSS受信機の期待から、たくさん写真を撮りました。これは先に届いた開発ボードの表面です。

Top view of a GNSS receiver development board

この開発ボードでは、レイアウト変更がアナウンスされていましたが、届いたのは旧基板でした。RS-232-Cコネクタ位置などが新旧基板とで異なります。COM1ポートとCOM2ポートとはDSUB25ピンコネクタに出力され、COM3ポートはUSBマイクロコネクタに接続されています。また、この旧基板では、複数のGNSS受信機基板それぞれ用にSMBコネクタが取りけれられ、これらの信号線が並列接続されて、アンテナに接続するTNCコネクタにつながっていました。製品写真を見ると、新基板にはアンテナに接続するTNCコネクタがなく、GNSS受信機基板上のSMBコネクタからTNCコネクタに変換するケーブルが同梱されるようです。インピーダンスマッチングの点では新基板の方が良いです。

Bottom view of a GNSS receiver development board

開発ボード裏面には、Bluetooth副基板がついていました。COM2ポートが、DSUB25ピンコネクタとBluetoothとから選べるよう、基板上にジャンパーピンがありました。初期設定ではCOM2ポートはBluetoothにつながっていました。

Top view of NovAtel OEM729 receiver board

その後しばらくして届いたNovAtel OEM729受信機基板の表面です。中央にNovAtelのチップが、その右側にはこの受信機の型番であるBDNAV-729-FFR-5HZの文字が見えます。測位出力が1秒間に5データ出力できることを表すようです。

Bottom view of NovAtel OEM729 receiver board

OEM729受信機裏面のシールにはハードウェアリビジョン2.1の文字が書かれていました。

NovAtel OEM729 main chip

写真中央にあるチップには、NovAtel MINOS7ロゴが見えます。日本製でした。

NovAtel OEM729 and the development board

受信機基板と開発ボードを接続して、横から写した写真です。受信機基板のピンのうちのいくつかが開発ボードには接続されていませんでした。この開発ボードには、受信機基基板に接続するためのスペーサと、六角レンチネジが同梱されていました。基板上穴6箇所に対して、ネジとスペーサは5個づつですが、特に問題はありません。

NovAtel OEM729 and the development board

これはアンテナ部分です。受信機のアンテナSMBコネクタと開発ボードのSMBコネクタがちょうどよく接合されるようになっています。受信機基板についている、もう一つのSMBコネクタは、外部からのクロック信号を供給するためのものですが、この開発ボードには接続されていませんでした。

NovAtel OEM729 and the development board

この開発ボードへの電源供給は、写真左下のバレルジャックにて行います。この入力電圧範囲は、9ボルトから28ボルトです。また、この開発ボードには、商用電源から12ボルト直流を出力するアダプタが同梱されていて、すぐにGNSS受信を楽しめるようになっていました。パソコンとこの開発ボードとは、この電源バレルジャックのすぐ左にあるmicroUSBポートを通して接続します。パソコンにドライバソフトウェアを導入してこの開発ボードに接続すると、パソコン上にUSB1、USB2、およびUSB3と名付けられた3つポートが現れます。複数通信ポートを扱うため、特殊なUSBドライバソフトウェアのインストールが必要です。

受信機設定

そこで、NovAtelのダウンロードページから、Windows USB Driverバージョン5.0.1と、GUI(graphics user interface)ソフトウェアであるNovAtel Connectバージョン2.3.2をダウンロードして、Windows PCにインストールしました。また、ウェブインターフェースファームウェアOEM7 WebUIバージョン2.6.1と、受信機ファームウェア7.07.03を、さらに別ページにあるOEM7 Command Logs ManualのPDFファイルをダウンロードします。特に、このOEM7 Command Logs Manualは、全1,055ページにおよぶ大作ですが、のちの設定に必要なコマンドを全文検索を使って検索することになりますので、ダウンロードが必須です。

Device manager on my PC

USBドライバーソフトウェアを導入したWindows 10 PCに開発ボードを接続した後、検索ウィンドウからdevmgmt.mscとタイプしてデバイスマネージャーを起動しました。ここに現れたUSBシリアルポート番号(ここではCOM21、COM24、COM25)がs必要になるので、メモしました。

NovAtel Connect

NovAtel Connectを起動し、上述のポートの一つであるCOM21を選択すると、初期画面が現れました。大学最下階にある私の研究室の窓辺においたアンテナでは、GNSS衛星を受信できませんでした。安価なGNSS受信機では2基程度の衛星信号を受信できることが多いのですが、むしろ、高性能GNSS受信機では受信できないようです。

Constellation tile on NovAtel Connect

NovAtel Connectのタイルをダブルクリックすると、その詳細が表示されます。受信機を屋上に設置して、衛星配置(constellation)タイルをダブルクリックしたら、多くの衛星信号を観測することができました。

NovAtel OEM729

受信機本体とウェブインターフェースのファームウェアは、NovAtel ConnectのFirmware Updateボタンから更新できます。受信機ファームウェアファイル7.07-03-OEM.zipをNovAtel社ボームページからダウンロードして、その中にあるOM7MR0703RN0000.shexを使い本体ファームウェアを更新しました。旧バージョンはOM7MR0400SN0009、新バージョンはOM7MR0703RN0000です。

NovAtel OEM729

ファームウェア更新はいつも緊張します。ウェブインタフェースのファームウェアファイルWMC010206RN0001.zipもダウンロードして、その中にある拡張子hexのファームウェアをFirmware Updateから適用しました。

NovAtel OEM729

やっとOEM729受信機を動作させることができました。

ネットワークインタフェースの設定

さらに設定を行い、使いやすくしてゆきます。はじめにイーサネットを使えるようにします。イーサネットが使えると、パソコン上のNovAtel Connectを使わずに機器状態を確認できるだけでなく、遠隔操作やNTRIP Casterへの擬似距離やアルマナックの送信も可能になります。

NovAtel Connect下のConsoleをクリックし、コンソールウィンドウを開くと、機器のシリアル番号やファームウェアバージョンが表示されます。

<OK
[USB1]<VERSION USB1 0 56.5 FINESTEERING 2124 124438.519 02044048 3681 15823
<     3
<          GPSCARD "FFNRNN5BN" "xxxxxxxxxxxxxxx" "OEM729-2.01" "OM7MR0703RN0000" "OM7BR0002RB0000" "2019/Aug/12" "10:22:17"
<          OEM7FPGA "" "" "" "OMV070001RN0000" "" "" ""
<          DB_WWWISO "WWWISO" "0" "" "WMC010206RN0001" "" "2020/Jul/09" "13:15:54"
[USB1]

この情報は、LOG VERSIONコマンドでも表示できます。シリアル番号部分は伏字にしました。初期状態ではイーサネットインターフェースはオフなので、ETHCONFIGコマンドを使いオンにして、さらに電源再投入後にも反映されるようにSAVECONFIGコマンドで保存します。成功すると<OKの文字とプロンプト[USB1]が表示されます。大文字・小文字は区別しないようです。

[USB1] ethconfig etha auto auto auto auto

<OK
[USB1] saveconfig

<OK

DHCPにて割り当てられたIPアドレスは、DNSサーバのログなどから見つけ出します。

イーサネットインターフェースが起動すると、ブラウザ上にGNSS衛星信号の受信状態を表示でき、また、受信機を設定できるようになります。ファイアウォールのないインターネットにこの受信機を接続するなどの理由で、ブラウザ情報表示機能をオフにしたいときには、IPSERVICE WEB_SERVER DISABLEを設定します。

受信機能の表示と利用衛星群の設定

このような高機能GNSS受信機では、販売するハードウェアの種類数を減らし、その代わりに解除キーなる文字列を入力することでソフトウェア上で利用できる機能を設定できるようにすることが一般的です。機能アップをメール等で送られる解除キーで行う方法です。

はじめに、この受信機で使える機能を探ります。情報表示するためにはLOGで始まるコマンドを使用します。この受信機が持つ機能のコードを表示するコマンドがLOG AUTHCODEです。コマンド名の最後にAをつけると、要約表示になります。利用できる機能がMWP7W6などの記号で表されています。

[USB1] log authcodea once
<OK
#AUTHCODESA,USB1,0,59.0,FINESTEERING,2124,124751.000,02044048,2ad2,15823;VALID,1,SIGNATURE,TRUE,"MWP7W6,GC7PRH,47NKH7,GHPWC9,J55FP5,FFNRNN5BN"*8839ab39

さらにLOG MODELFEATURESコマンドを使い、これらの記号を可読性の高い文字列で表示します。

log modelfeatures once
<OK
[USB1]<MODELFEATURES USB1 0 68.0 FINESTEERING 2124 124976.706 02004048 141a 15823
<     21
<          5HZ MAX_MSR_RATE
<          5HZ MAX_POS_RATE
<          SINGLE ANTENNA
<          AUTHORIZED MEAS_OUTPUT
<          AUTHORIZED DGPS_TX
<          AUTHORIZED RTK_TX
<          AUTHORIZED RTK_FLOAT
<          AUTHORIZED RTK_FIXED
<          AUTHORIZED PPP
<          AUTHORIZED LOW_END_POSITIONING
<          AUTHORIZED RAIM
<          AUTHORIZED NTRIP
<          UNAUTHORIZED IMU
<          UNAUTHORIZED INS
<          UNAUTHORIZED ALIGN_HEADING
<          UNAUTHORIZED ALIGN_RELATIVE_POS
<          UNAUTHORIZED API
<          UNAUTHORIZED INTERFERENCE_MITIGATION
<          UNAUTHORIZED SPRINKLER
<          UNAUTHORIZED RTKASSIST
<          UNAUTHORIZED SCINTILLATION
[USB1]

これは、測位レート5 Hz、RTK(realtime kinematic)、精密単独測位(PPP: precise point positioning)、不確かな衛星信号除外(RAIM: receiver autonomous integrity monitoring)、測位内部情報のネットワーク伝送(NTRIP: networked transport of RTCM via internet protocol、エヌトリップと読みます)の機能が使えることを示しています。折角、許可されている機能もコマンドで消すことができてしまうので、一部のコマンド実行には注意が必要です。

次に、LOG CHANCONFIGLISTコマンドにて、予めプリセットされた利用衛星群を表示します。このコマンドを入力すると、衛星群とその衛星群の中で追尾する候補衛星数が表示されます。

log chanconfiglist

この出力は、そのままではわかりにくいです。そこで、この出力を一旦、ファイルに取り込み、エクセルにまとめてみました。

Channel configuration list of OEM729

チャネル構成5は、みちびきの補強信号が放送されるL6帯やGalileoのE6帯も受信できます。チャネル構成4は、Galileoや北斗に多くのチャネルを割り当てています。インドのNAVIC(Navigation for Indian Constellation、かつてのIRNSS: Indian Regional Navigation Satellite System)信号が受信できるのは、チャネル構成4と5だけです。みちびき信号がより多く受信できるチャネル番号5が私にとって最も良いので、これに変更しました。チャネル番号5は、GPSのL1C信号(L1 C/A信号とは別です)が受信できるのですが、みちびきのL1C信号は受信できません。私は、契約しないと使えないL-Bandの5チャネルの代わりに、みちびきL1Cを受信できるようになっていた方が嬉しいです。

selectchanconfig 5

このコマンドを実行すると、受信機が再起動します。その際に3つのUSBポートの接続が失われます。再びUSBポートに接続するためには、USBケーブルを一旦、引き抜いてつなぎ直します。私のようにリモートデスクトップで遠隔接続している場合には、Windows PCを再起動することになります。

また、初期状態ではSBAS(satellite based augmentation system、エスバスと読み、静止衛星から放送される測位信号、補強信号、および完全性判定信号)受信機能がオフでしたので、これをオンにしました。

sbascontrol enable

このチャネル構成5では、みちびき4衛星のL6信号が観測できることになっています。しかし、私の受信機にてL6信号表示が現れたのは、PRN(pseudo random noise、衛星信号を分離識別するための固有番号)193のみちびき初号機だけでした。全てのみちびきのL6信号が受信できる今後のOEM729ファームウエア更新を楽しみに待ちます。

リモート端末からの遠隔操作

リモートデスクトップやブラウザを使わずに、telnetやncなどを用いてリモート端末から受信機を設定することも可能です。しかしながら、パスワードが平文で流れますので、ファイアウォールの内側に機器があり、信頼できるネットワークにて利用できる機能です。

この遠隔操作機能はICOMというポートを経由して行います。ICOMポートは1から7まで用意されており、初期値ではTCPのポート番号3001から3007までが割り当てられています。

はじめにSETADMINPASSWORDにてパスワードを設定して、ICOMポートを起動します。

setadminpassword [旧パスワード] [新パスワード]
ipservice secure_icom enable
saveconfig

パスワードの初期値は、受信機のシリアル番号です。利用の際には、telnetコマンド、または、ncコマンドにて、例えば3001番のポートに接続します。[ICOM1]などとプロンプトが表示されますので、login admin [パスワード]と入力してから使用開始します。利用を終えたらlogoutと入力します。

パスワードを設定しないことも可能ですが、そのときには誰でも受信機を設定できてしまいます。しかしながら、このパスワードが平文で伝送されること、ブラウザではパスワードなしで受信機が設定できること、を考えると、このパスワードの意義は薄いかもしれません。

受信機設定の一覧

LOG RXCONFIG ONCEコマンドを投入すると、その受信機設定のすべてがダンプされます。この結果をファイルに保存し、viコマンドを駆使して設定CSVファイルを作りました。それをエクセルに読み込んだ結果の一部を示します。

A part of OEM729 configuration

この中にはマニュアルにも書かれていない設定もあります。マニュアルにはそのような項目は設定しないようにと書かれています。FRESETコマンドをオプションを付けずに実行すると、パスワード以外の受信機設定を工場出荷時設定に戻すことができます。

NTRIP CasterへのRTCMメッセージの送信

この受信信号により外部でRTKやPPPを行うため、または、外部情報を用いてこの受信機でRTKやPPPを行うために、NTRIPの設定を行います。NTRIP Server、または、NTRIP Clientとなるための通信ポート名はNCOMです。この受信機には、NCOM1 NCOM2 NCOM3の3つの通信ポートがありますので、同時に3グループの情報を入出力できます。

ここで使用しているGNSSアンテナJavad GrAnt-G5Tは、この受信機のアンテナリストに登録されていないため、user_antenna_1にこのアンテナ情報を新たに登録しました。また、この受信機をNTRIP Serverとして、その信号を外部ネットワークに取り出すためには、自らの座標を決定しなければならないようです。AUTOSURVEYコマンドを使い、長時間測位により自らの座標を決定することもできますが、ここでは固定座標を受信機に与えました。

antennatype add user_antenna_1 JAVGRANT_G5T 2 GPSL1 3.06  1.67 50.24 0 0.00  0.47  0.79  1.06  1.06  0.97  0.62  0.29  0.00 -0.34 -0.48 -0.72 -0.76 -0.78 -0.51  0.26  1.63 0 GPSL2 0.41 -4.16 55.95 0 0.00 -1.13 -1.51 -1.38 -1.09 -0.68 -0.30 -0.17 -0.22 -0.42 -0.76 -1.26 -1.93 -2.53 -3.33 -4.13 -4.58 0
thisantennatype user_antenna_1
ntripconfig ncom1 server v1 [NTRIP Caster IPアドレス]:[ポート番号] [マウントポイント] "" [パスワード]
interfacemode ncom1 NONE RTCMV3 OFF
log ncom1 rtcm1004 once
log ncom1 rtcm1008 once
log ncom1 rtcm1020 once
log ncom1 rtcm1006 ontime 10
log ncom1 rtcm1033 ontime 10
log ncom1 rtcm1077 ontime 0.2
log ncom1 rtcm1087 ontime 0.2
log ncom1 rtcm1097 ontime 0.2
log ncom1 rtcm1107 ontime 0.2
log ncom1 rtcm1117 ontime 0.2
log ncom1 rtcm1127 ontime 0.2
log ncom1 rtcm1019 ontime 10
log ncom1 rtcm1020 ontime 10
log ncom1 rtcm1042 ontime 10
log ncom1 rtcm1044 ontime 10
log ncom1 rtcm1045 ontime 10
log ncom1 rtcm1046 ontime 10
fix position 34.44010575 132.41478407 232.784
saveconfig

ここで、log ncom1 rtcm1004 oncelog ncom1 rtcm1008 once、および、log ncom1 rtcm1020 onceを送信しているのは、古いRTCM 1004、1008、1020メッセージと、新しいMSM(multiple signal message)との競合を防ぐためです。OEM729受信機にNTRIP Serverの設定を行うと、自動的に古いRTCMメッセージを1秒ごとに送信する設定が付加されるため、その設定を一度だけにする必要があります。外部でRTKを行うためのアンテナ位置、受信機やアンテナの型番、GPS・GLONASS・Galileo・BeiDou・みちびきの軌道情報(エフェメリス)と各衛星までの擬似距離を出力するように設定しました。

ここで、Linux端末にてnc -kl [1024以上の任意のポート番号]として簡易サーバ作り、このOEM729受信機からこのLinux端末にNTRIP接続したら、このLinux端末にHTTP/1.1の文字が現れました。RTKLIB 2.4.3 b33のstr2strで実現したNTRIP Casterで接続できるのはHTTP/1.0で通信を行うNTRIP ServerとClientですので、ここではこの受信機を他のNTRIP Casterに接続しました。そして、RTKLIBのRTKNAVIにてRTK測位を行いました。

RTK between OEM729 and ZED-F9P

上がNovAtel OEM729、下がu-blox NEO-F9Pのそれぞれ衛星信号表示で、3ペイン表示を使って左から右に、それぞれL1帯、L2帯、L5帯をプロットしています。OEM729受信機のところでは、L5帯の信号も表示されていて、嬉しいです。また、RTCM 1033メッセージに含まれる受信機名称はNOV OEM729-2.01、ファームウェアバージョンはOM7MR0703RN0000となっています。シリアル番号も送信されていました。GNSSの世界では、受信機シリアル番号は公開するものなのかもしれません。

RTK between OEM729 and ZED-F9P

NCOMポートではなく、USBポートにRTCMメッセージを送信することも可能で、さらに、RTKLIBのstrstrを用いてこのUSBポート出力をTCPのストリームに変換することも可能でした。しかし、ICOMポートにRTCMメッセージを出力するように設定しても、何も出力されませんでした。

RTKLIBとGNSS受信機を使うのはとても楽しいです。オンライン授業準備その他に追われる毎日の中の、ひとときの安らぎの時間を楽しみました。