Modernized RTKLIB (MRTKLIB) Web UI

category: gnss
tags: mrtklib rtk rtklib

はじめに

衛星測位の研究では、東京海洋大学 高須知二先生のオープンソースソフトウェアRTKLIB(アールティーケイ・リブ、Real Time Kinematic Library)が広く用いられています。RTKLIBは、内閣府のオープンソースソフトウェアCLASLIBやMADOCALIB、また、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を利用します。以下は、今回試したバージョンでの操作記録です。

Docker Desktopを起動した状態で、Gitを使ってソースコードを取得し、docker compose up --build -dを実行します。これにより、Dockerイメージをビルドし、コンテナーをバックグラウンドで起動できます。ビルドにはインターネット接続が必要です。

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

停止してコンテナーを削除するには、このディレクトリでdocker compose downを実行します。再びバックグラウンドで起動するには、docker compose up -dを実行します。

ビルド済みのDockerイメージも用意されています。MRTKLIBやWeb UIは改良が続いているので、ソースコードから利用する場合は、git pullで更新を取得し、docker compose up --build -dでイメージの再ビルドとコンテナーへの反映を行えます。

今回試したWeb UIのタグはv0.2.0-alpha、コミットの短縮ハッシュ値はe3a7185です。

RTKの実時間処理

MRTKLIB Web UIを起動し、ブラウザーでhttp://localhost:8080/にアクセスすると、操作画面が表示されます。画面上部には、

  • 後処理タブ(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.info.hiroshima-cu.ac.jp:80/F9P (広島市立大学GNSS観測局のu-blox F9P受信機)
  • Base Stationにntrip.rnav.info.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です。掲載画面では、測位開始直後に座標がすべて0で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日(年初から数えて121日目)の1日分のデータを用います。ダウンロードしたファイルは圧縮されているため、あらかじめ解凍しておきます。

画面上部のPost Processingタブを選択し、左側のPOSITIONINGにあるModeを開きます。Basic StrategyのPositioning ModeでSingleを選択します。

MRTKLIB Web UI

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

MRTKLIB Web UI

ファイル名の11571210は、基準点番号(1157)、1月1日を1とする年内の通算日(121)、1日分のデータを表す0からなります。拡張子は、西暦の下2桁(26)とデータの種類を表す英字1文字で構成されます。oは観測データを表し、航法データは次のように区別されます。

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

それぞれ表します。今回試したバージョンでは、複数の航法データファイルを同時に指定することはできないようでした。

便利ツール

MRTKLIB Web UIには、時刻計算ツールがあります。GPS週番号や、1月1日を1とする年内の通算日などを簡単に計算できます。

MRTKLIB Web UI

おわりに

MRTKLIBのWeb UIを利用してみました。macOS上でもプロット表示が利用でき、楽しいです。MRTKLIBでは、CLASの補強情報から生成したVRS(Virtual Reference Station:仮想基準局)のデータを利用するPPP-RTK測位もできるようです。コマンドラインツールとともに、MRTKLIBを探検してみたいと思います。