編集部
GNSS受信機NEO-M8Tのパソコンへの設定 & RTKLIBのラズベリー・パイへの導入方法
トラ技ジュニア No.29(2017年春号)に掲載した記事「 GNSS/GPSプレシジョン・コンパスの製作 」の補足情報を公開します.
ユーブロックスNEO-M8Tの設定
●Windowsパソコンによる受信衛星システムの設定
NEO-M8Tはあらかじめ,Windowsパソコンによる設定が必要です.ユーブロックス社のウェブサイトからu-centerをダウンロードしてインストールしてください.
https://www.u-blox.com/ja/product/u-center-windows
NEO-M8TをUSBで接続すると,ドライバが自動的にインストールされます.設定方法は参考文献を参照してください(1).ここでは,GPSとSBAS,BeiDou,QZSSを使用する設定にします.
ラズベリー・パイへのRTKLIBの導入
ラズベリー・パイについては,くわしい説明は省きます.まず,公式サイトからRASPBIAN JESSIEをダウンロードし,SDカードにイメージを書き込みます.
●RTKLIBとは
RTKLIBは,東京海洋大学の高須知二さんが開発したオープン・ソースのソフトウェアRTKライブラリ群です.従来,受信機内部で行っていたRTKの計算を外部のコンピュータで行え,非常に低コストで高精度の測位が可能になりました.このソフトウェアをラズベリー・パイにインストールします.
特徴は,①WindowsやLinux,MacOSなどさまざまなプラットフォームで動作すること,②リアルタイム処理と後処理が行えること,③各種のGNSS受信機や入力データに対応していることなどです.現在人気が高いライブラリです.
●ラズベリー・パイの初期設定
まずは,アップデートを行います.
$ sudo apt-get update
$ sudo apt-get install
●RTKLIBのインストール
Github(ギットハブ)をインストールして,RTKLIBのダウンロード,インストールを行います(2).
$ sudo apt-get install git
新しいディレクトリを作り,移動します.
$ mkdir myRTKLIB
$ cd myRTKLIB
RTK-LIB 2.4.2を自分のディレクトリにクローンします(2.4.3ではmakeの際にエラーが出る可能性がある).
$ git clone https://github.com/tomojitakasu/RTKLIB.git
RTKLIB/appフォルダに移動しmakeします.その後,いったんhomeディレクトリに戻ります.
$ chmod 755 makeall.sh
$ ./makeall.sh
$ cd
今回使用するrtkrcvが入っているapp/rtkrcv/gccに移動して,アクセス権を変更します.
$ cd myRTKLIB/RTKLIB/app/rtkrcv/gcc/
$ chmod 755 rtkstart.sh
$ chmod 755 rtkshut.sh
USBポートに2台のM8Tボードのケーブルを挿します.以下のコマンドを入力すると,現在接続されているシリアル・ポートが表示されるので,基準局と移動局のデバイス名を覚えておいてください.どちらかわからなくなった場合は,片方を抜いて,コマンドを再び入力すれば,判別できます.
$ ls /dev/ttyA*
この後のconfファイルの設定で使用します.私の環境では,/dev/ttyACM0と/dev/ttyACM1が発見されました./dev/ttyAMA0はラズベリー・パイのピン・ヘッダのシリアル・ポートです.
●設定ファイルの設定方法
RTKLIBでは,さまざまなパラメータを設定するのに,*.confファイルを使用します.myRTKLIB/RTKLIB/app/rtkrcvディレクトリに,基本的な*.confファイルが入っているので,それを適当に変更して使用します.
私はいつも,WindowsパソコンからWinSCPというソフトを使って,ファイルのブラウズやテキスト・ファイルの修正を行っています.テキスト・エディタの文字コードは常にUTF-8になるように設定してください.日本語のコメントは入れないでください.また,各行の”=”は常に同じ場所から始まるようにしてください.パラメータの詳細については,RTKLIB/DOC/に入っているRTKLIBのマニュアルをご覧ください.
myRTKLIB/RTKLIB/app/rtkrcvに移動し,rtk.confをmyrtkbl.confと別名で保存してください.次にファイル中で以下の行を修正してください.
console-soltype =enu # 測位結果の形式をenu東,北,上にします
inpstr2-type =serial # 2つめの入力もシリアルからとします
inpstr2-path =ttyACM1:115200:8:n:1:off # デバイス名とシリアルの設定を行います
inpstr1-format =ubx # 受信機からの入力フォーマットはUBXです
outstr1-type =tcpsvr # 測位結果をネットワークで送ります
outstr2-type =file # 測位結果をファイルで保存します
outstr1-path =:52001 # 測位結果のネットワークのポート
outstr2-path =sol2_%Y%m%d%h%M.pos # 測位結果のファイル名,年月日時間分は自動的につけてくれる
outstr1-format =enu # 測位結果の形式をenu東,北,上にします
outstr2-format =enu # 測位結果の形式をenu東,北,上にします
logstr1-type =file # 移動局の生データをファイルで保存します
logstr2-type =file # 基準局の生データをファイルで保存します
logstr1-path =rov_%Y%m%d%h%M.log # 移動局の生データのファイル名
logstr2-path =ref_%Y%m%d%h%M.log # 基準局の生データのファイル名
file-cmdfile1 =../../../data/ubx_m8t_bds_raw_5hz.cmd # 受信機設定ファイル
file-cmdfile2 =../../../data/ubx_m8t_bds_raw_5hz.cmd # 受信機設定ファイル
pos1-posmode =movingbase # 移動基線モード
pos1-frequency =l1 # 使用周波数は周波数はL1のみ
pos1-elmask =25 # 仰角マスクです.FIXのしやすさを見て選んでください
#pos1-snrmask =0 # 旧バージョンに対応した項目なので,コメントアウトしてください
pos1-navsys =51 # 使用する衛星に合わせてビットマスクを設定し10進数で指定します
pos2-armode =fix-and-hold # FIXが外れにくい設定です
pos2-baselen =0.24 # アンテナ間距離をメートルで指定します
pos2-basesig =0.02 # アンテナ間の予想誤差をメートルで指定します
●rtkrcvの開始
RTKLIB/app/rtkrcv/gccに移動し,以下コマンドでrtkrcvが起動します.
$ ./rtkrcv -o ../myrtkbl.conf
rtkrcv>start
rtkserver startと出れば,スタートが成功しています.以下コマンドを入力すれば1秒おきに測位のステータスが表示されます.
rtkrcv> status 1
スタートしてから数分すると,status of solutionがfloatからfixに変わります.このとき,baseline length fixedが目的のアンテナ間距離になっていれば,大丈夫です.なかなかFIXにならない場合は,ratio of ar validationをご覧ください.この値が1前後で全く増えなければ,アンテナ設置場所の変更を検討してください.Ctrl-Cで,プロンプトに戻ります.rtkrcvを終了するには,以下のコマンドを入力してください.
rtkrcv> shutdown
●WindowsパソコンへのRTKLIBのインストール
インストール方法は,参考文献(1)をご覧ください.RTKLIB/bin/rtkplot.exeを起動して,ファイル・メニューの[File]→[Connection Setting]でOptをクリック,TCP Server Addressにラズベリー・パイのアドレスを入力してください.Portは前述の設定(outstr1-path)と同じにしてください.Solution Formatも,前述の設定に合わせてE/N/U-Baselineとしてください(図1).
[File]→[Connection]でラズベリー・パイ上のrtkrcvに接続されます.図2のようなグラフを表示できます.このグラフは,Gnd Trk(地上プロット)ですが,他には,位置,速度,加速度,衛星数などをプロットすることも可能です.ちょうど原点(基準局)から24cmあたりに移動局の位置がプロットされています.
参考文献
(1)藤沢奈緒美;高精度0.5°!3D姿勢センサGPSコンパス,pp82-84,トランジスタ技術,2016年2月号,CQ出版社.
(2)オープンソース準天頂衛星(QZSS)受信機,Raspberry PiでRTKLIB, http://blog.goo.ne.jp/osqzss/e/c6870961f79b8c688c09129301209300