ZED-F9P/ZED-F9RとNEO-D9Cで、単独高精度測位システムCLASを安価に簡単に使う方法(その1)
はじめに
大学で農業用ロボットの研究をしています。
屋外で移動ロボットの位置を知るためにGPS/GNSSは便利ですが、cm精度が欲しい場合にはRTKを使う必要が有りました。
RTKは基地局からの補正情報を、LTEやWiFi、LoRa等のネットワークを介して受信する必要が有り、手間とコストが掛かるという制限があります。
ところが一昨年ぐらいから、CLASというみちびきが発信している補正情報を使って、単独でcm精度の測位を実現できるようになりました。
これを使えば、安価に簡単に精度の良い位置情報が拾えそうです。
qzss.go.jp
このページでは、これを試した結果を記録します。
まだ短時間しかテストしていませんが、良好に動いています。
準備
まず、必要な機材を用意します。
RTKより安価といっても、まだ5~10万程度の金額は掛かってしまいますので、承知おきください。
今回試験のために用意した主な機材は、次の通りです。
品名 | 型式 | メーカー名 | 個数 | 参考価格 |
---|---|---|---|---|
Qwiic - ZED-F9P搭載 GPS-RTK-SMAモジュール | ZED-F9P | SparkFun | 1 | \54,715- |
みちびき CLAS L6受信用 NEO-D9C開発ボード | D9CX1 | ジオセンス | 1 | \18,700- |
GNSS全周波ヘリックス・アンテナ | AH-4236 | Hi-Target | 1 | \15,400- |
同時にZED-F9Rでも試して、こちらも順調に動いています。
品名 | 型式 | メーカー名 | 個数 | 参考価格 |
---|---|---|---|---|
Qwiic - ZED-F9R搭載 GPS-RTK モジュール(SMA) | ZED-F9R | SparkFun | 1 | \57,700- |
ハードウェアの製作
補正情報をNEO-D9CからZED-F9P/F9Rへ送るために、信号線を接続する必要が有ります。
説明書
ジオセンスのD9CX1使用説明書に概ね必要な情報は書かれていますので、まずこれを参考にしてください。
www.geosense.co.jp
実態配線図
今回は2つの基板を、UARTを使って接続します。
ZED-F9P/F9R、NEO-D9Cともに2つのUARTを持っており、ここでは両方ともTX2/RX2を使用することにします。
まず、NEO-D9CのTX2をZED-F9Pに接続します。
つぎに、ZED-F9PのTX2をNEO-D9CのRX2に接続します。こちらは必須ではないため、実験用に入り切りできるようにJPピンを間に介しています。
電源は、ZED-F9Pの3.3VピンからNEO-D9C側のD9CX1ボードのPWRピンへ供給します。
GNDは、どちらの基板も共通です。ここでは3V3ピン近くのGNDとPWRピン近くのGNDを結んでいます。
JST XHポストをZED-F9P側に用意していますが、これはArduPilot等へ接続するための予備ですので、使わない場合には不要です。
試作基板のBOM
品名 | 型式 | メーカー名 | 個数 | 参考価格 |
---|---|---|---|---|
小型ユニバーサル基板(ガラスコンポジット片面/72×95×1.2t) | ICB-293G | サンハヤト | 1 | \399- |
ジャンプワイヤキット | SKS-100 | サンハヤト | 1 | \856- |
分割ロングピンソケット 1×42 | FHU-1x42SG | Useconn | 2 | @\80- |
ピンヘッダ 1×40 | PH-1x40SG | Useconn | 2 | @\35- |
ジャンパーピン黒(2.54mmピッチ) | MJ-254-6BK | Useconn | 1 | \100- |
XHコネクタ ベース付ポスト トップ型 9P B9B-XH-A (LF)(SN) | B9B-XH-A (LF)(SN) | JST | 1 | \25- |
ソフトウェアの設定
まず、u-centerというソフトウェアを使ってZED-F9P/F9Rのファームウェアのアップデートを確認して、必要があればアップデートします。
つぎに、ZED-F9P/F9RのRX2/TX2の設定と、NEO-D9CのTX2/RX2の設定をします。
u-centerのインストール
ZED-F9P/F9Rハublox社の製品で、同社の製品の多くはu-centerという無料の公式ソフトウェアで管理することができます。
つぎのリンクから、u-center(ver. 1の方)をダウンロードしてインストールします。
www.u-blox.com
ZED-F9P/F9Rのバージョン確認と更新
こちらも詳細はジオセンスのサイトに丁寧に書かれていますので、こちらをまず参照して熟読します。
www.geosense.co.jp
CLAS対応のファームウェアは、ZED-F9P/F9RともにHPG1.30以降です。
基本的に、最新のファームウェアを適用して問題ないはずです。
ZED-F9P module | u-blox
ZED-F9R module | u-blox
WEBページの中頃にタブが有り、Documentation&resoucesを選択すると、Firmware Updateの項目を見つけることができます。
ZED-F9P/F9RのRX2/TX2の設定
u-centerのメニューバーから[View]を選び、[Generation 9 Configuration View]を開きます。
左の枠から、[Advanced Configuration]を選び、①のように[CFG-UART2] [CFG-UART2INPROT] [CFG-UART2OUTPROT]の項目が見えるように展開します。
次の手順で設定します。
1. CFG-UART2-BAUDRATEを、②から[U4 38400]を選択してUART2を有効にします。ZED-F9Pの3つのメモリ領域 RAM, BBR, Flashのそれぞれに値を書きこむために、③④⑤のボタンを押して、Items to setにスタックしていきます。
2. 同様に、CFG-UART2INPROT-UBXを1に選択して、同様にItems to setヘスタックしていきます。
3. 続けて、CFG-UART2OUTPROT-UBXを1に設定し、他の2つをCFG-UART2OUTPROT-NMEA、CFG-UART2OUTPROT-RTCM3Xを0にします。
4. ⑥番の[Send config changes]を押して、設定値をZED-F9Pへ送ります。
この図の場合では、CFG-UART2OUTPUT-UBXを1に、CFG-UART2OUTPUT-RTCM3Xを0にしています。
NEO-D9CのTX2/RX2の設定
同様に、次の手順で設定します。
1. CFG-UART2-BAUDRATEを、②から[U4 38400]を選択してUART2を有効にします。ZED-F9Pの3つのメモリ領域 RAM, BBR, Flashのそれぞれに値を書きこむために、③④⑤のボタンを押して、Items to setにスタックしていきます。
2. 同様に、CFG-UART2INPROT-UBXを1に選択して、同様にItems to setヘスタックしていきます。
3. 続けて、CFG-UART2OUTPROT-UBXを1に設定します。
4. ⑥番の[Send config changes]を押して、設定値をNEO-D9Cへ送ります。
動作確認
周囲に高い障害物が無くて、見開きの良い場所を選んでGPSアンテナを設置します。とくに南の空に障害物が無い場所を選びます。
ZED-F9P/F9RをUSB-CケーブルでPCと接続して、u-centerを開いて5分ほど待ちます。とくにu-centerに難しい設定をする必要はありません。図のようなウィンドウが表示されていない場合、Viewの設定だけ確認してください。
Fix Modeが3D/DGNSS/FIXEDになったら、正常に動作しています。
Fix Modeが3D/Floatや3D/DGNSS/Floatのままの場合は、おそらく機器は正常に動作していますが、電波の状況があまりよくない可能性が高いです。もう少し障害物が少ない場所へ移動してみてください。また、L6対応のGPSアンテナを使用しているかどうかを再確認してください。
Fix Modeがずっと3Dのままの場合は、正しく動作していません。ハードウェアとZED-F9P/F9R・NEO-D9C両方の設定を再度確認してみてください。