Modernized RTKLIB (MRTKLIB) Web UI

category: gnss
tags: mrtklib rtk rtklib

はじめに

衛星測位の研究では、東京海洋大学 高須知二先生のオープンソースソフトウェアRTKILIB(アールティーケイ・リブ、Real Time Kinematic Library)が広く用いられています。RTKLIBは、内閣府のオープンソースソフトウェアCLASLIBMADOCALIB、また、JAXAのMALIBにも採用されています。

RTKLIBの資産を受け継ぎつつ、新しいソフトウェア技術で再構築したModernized RTKLIB (MRTKLIB)が公開されました。MRTKLIBには、CLASLIB、MADOCALIB、demo5 RTKLIBが統合されています。これらは、元となるRTKLIBのバージョンが異なるため、統合には大変な労力を要したと想像しております。

今回、Docker(ドッカー)を用いたMRTKLIB Webユーザインターフェース(Web UI)も公開されましたので、早速、試してみます。

MRTKLIB Web UI

Dockerイメージのビルド

ここでは、Docker DesktopをインストールしたmacOS上で、MRTKLIB Web UIを利用してみます。

Gitを用いてこのソースコードをダウンロードし、docker compose up -dを実行すれば、イメージのビルドからバックグランド起動までを全自動で行えます。ビルドの際には、インターネット接続が必要です。

git clone https://github.com/h-shiono/mrtklib-docker-ui
cd mrtklib-docker-ui
docker compose up -d

終了するには、このディレクトリで、docker compose downを実行します。再びバックグランド起動するためには、docker compose up -dを実行します。

すでにビルドされたDockerのイメージファイルも用意されています。しかし、MRTKLIBやそのWeb UIは改良が続けられているソフトウェアですので、git pullで最新ソースコードにキャッチアップした上で、docker compose buildにて自らでDockerイメージをリビルドするのが良いように思います。

現時点のtagはv0.2.0-alpha、ハッシュ値はe3a7185です。

RTKの実時間処理

MRTKLIB Web UIをバックグランド起動し、ブラウザでhttp://localhost:8080/にアクセスすると、Web UIが現れます。画面上部には、

  • 後処理タブ(Post Processing、RTKLIBのrnx2rtkpに相当)、
  • 実時間処理タブ(Real-Time、RTKLIBのrtkrcvに相当)、
  • ストリームサーバータブ(RTKLIBのstr2strに相当)、
  • 生データ等の変換タブ(Conversion、RTKLIBのconvbinに相当)、そして
  • 便利ツールタブ(Tools、GPS時刻変換)

があります。

ここでは、RTKの実時間処理を試しますので、Real-Timeタブを選択します。

次に、左側のメニューのI/O Streamsをクリックして、観測局(Rover)と基準局(Base Station)の情報を設定します。ここでは、両者のTypeとしてNTRIP Client(エヌトリップ・クライアント)を、FormatとしてRTCM3を選びました。Path欄については、

  • Roverにntrip.rnav.hiroshima-cu.ac.jp:80/F9P (広島市立大学GNSS観測局のu-blox F9P受信機)
  • Base Statinにntrip.rnav.hiroshima-cu.ac.jp:80/OEM7 (同NovAtel OEM729受信機)

を選びました。両者のアンテナ間距離は2メートル程度です。

MRTKLIB Web UI

RTKには、基準局アンテナ座標の設定が必要です。この情報は、左側メニューのAntennaにて設定します。この基準局のアンテナ座標はRTCM3メッセージで自動設定できますので、Position TypeとしてRTCM Antenna Posを選んでください。

MRTKLIB Web UI

そして、Startボタンをクリックすると、観測局と基準局にNTRIP形式にて接続され、測位が始まります。すぐにフロート解が出力され、黄色のプロットが現れました。

MRTKLIB Web UI

Solutionタブでは、日時、座標、品質(Quality)が表示されています。フロート解はQ=2、フィックス解はQ=1です。単独測位について、RTKLIBはQ=5ですが、MRTKLIBではQ=0となっているようです。

MRTKLIB Web UI

ChartのSeriesタブには、AR (ambiguity resolution)、レシオテスト値、利用衛星数の時刻変化が表示されています。見ていて楽しいです。

MRTKLIB Web UI

ChartのSky+SNRタブには、スカイプロット(衛星配置)と衛星ごとの信号強度が表示されています。

MRTKLIB Web UI

しばらくすると、フィックス解になり、緑色のプロットが現れました。素晴らしいです。

MRTKLIB Web UI

単独測位の後処理実行

次に、後処理を行います。ここでは、国土地理院の電子基準点データ提供サービスにて、基準点「広島2A」(基準点番号1157)の2026年5月1日(1月1日から121日経過)の1日分データを用いました。ダウンロードしたファイルは圧縮されていますので、あらかじめ解凍しておきます。

今度は、上部のPost Processingタブを選択し、左側のPOSITIONINGのModeタブをクリックし、Basic StrategyのPositioning ModeとしてSingleを選択します。

MRTKLIB Web UI

次に、左側のExectionのInput Filesタブをクリックし、Rover OBSに観測ファイル11571210.26oを、NavitationにGPS航法データファイル11571210.26nを設定しました。Executeボタンを押すと、単独測位結果が右画面に現れます。

MRTKLIB Web UI

国土地理院のこのファイル名部分11571210は、基準点番号(1157)、1月1日からの経過日数(121)、そして1日分を表すゼロからなります。また、拡張子は、西暦の下2桁(26)と内容1英文字からなります。内容oは観測データを表します。また、

  • nはGPSの航法データを、
  • gはGLONASSの航法データを、
  • lはGalileoの航法データを、
  • qはみちびきの航法データを

それぞれ表します。現時点では、複数の航法データを設定できないようです。

便利ツール

MRTKLIB Web UIには、時刻計算ツールがあります。GPS週番号や、1月1日からの経過日数などが簡単に計算できます。

MRTKLIB Web UI

おわりに 

MRTKLIBのWeb UIを利用してみました。macOS上でもプロット表示が利用でき、楽しいです。MRTKLIBは、CLASのVRS(Virtual Reference Station)によるPPP-RTK測位もできるようです。コマンドラインツールとともに、MRTKLIBを探検してみたいと思います。