TL;DR ── 構築コスト
| 項目 | 費用 |
|---|---|
| Drogger RWS(GNSS受信機) | 約4〜6万円 |
| GNSSアンテナ | 受信機に付属 or 別途数千〜数万円 |
| AWS EC2(NTRIP Caster) | 月 約550円 |
| 格安SIM(通信回線) | 月 300〜500円 |
初期費用 約5万円、維持費 月1,000円程度。
以前は数百万円規模だった常設RTK基準局を、この金額で24時間運用できる。個人がクラウド上に測位インフラを持てる時代になった。
本記事ではその具体的な構築方法を解説する。
はじめに
RTK-GNSSを使い始めると、必ずぶつかる問題がある。
基準局をどうするか。
国土地理院の電子基準点サービス(日本GPSデータサービスなど)や、ソフトバンク ichimill のような民間補正サービスを利用する方法もある。しかし、以下のようなケースでは「自前の基準局」を持ちたくなる。
- 山間部 ── 最寄りの電子基準点から遠く、VRSサービスの精度が出ない
- ドローン測量 ── 現場ごとに臨時基準局を立てるのではなく、常設局から安定配信したい
- 精密農業 ── 自動操舵トラクタに常時補正データを配信したい
- 自治体独自の基準点整備 ── 公共測量の基準局を低コストで維持したい
本記事では、BizStation社のDroggerシリーズとAWS EC2を組み合わせて、24時間運用できるGNSS基準局を構築する。
Droggerが面白い理由
普通のGNSS受信機は「受信するだけ」の装置である。基準局として使うには、PCやRaspberry Piを別途用意し、受信機からシリアルでRTCMデータを取り出し、NTRIP Serverソフトウェアを動かす必要がある。
Droggerは違う。
普通のGNSS受信機 Drogger
───────────── ─────────────
受信 受信
+
NTRIP Server内蔵
+
WiFi / イーサネット
Droggerは受信機単体でNTRIP Serverとして動作する。WiFiモジュールを内蔵しており、ルータに接続すれば受信機だけでRTCM補正データをインターネット上のNTRIP Casterへ送信できる。PCもRaspberry Piも不要である。
さらに、全モデルが基準局運用に対応しており、Androidアプリ(Drogger-GPS)とNTRIP Casterが無償提供されている。
この「受信機単体で基準局が完結する」という特性が、個人でも低コストにRTK基準局を構築できる最大の理由である。
主な受信機ラインナップ
| モデル | 周波数 | GNSSモジュール | 特徴 |
|---|---|---|---|
| RWSシリーズ | 2周波(L1/L2) | u-blox ZED-F9P | 低コスト、基準局に十分な性能 |
| RZS.Dシリーズ | 3周波(L1/L2/L5) | Septentrio mosaic-X5 | 高精度、国土地理院1級GNSS測量機登録あり |
基準局用途であれば、RWSシリーズ(受信機単体で数万円台)で十分実用的である。
2024年12月にはイーサネットモジュール(RWE-ETH)もリリースされており、WiFiではなく有線LANによる安定接続も選択可能になっている。
システム構成の全体像
一般的なRTK構成
RTK測位は、基準局・NTRIP Caster・移動局の3者で成り立つ。
基準局(GNSS受信機)
│
│ RTCM3(補正データ)
▼
NTRIP Caster(中継サーバ)
│
│ NTRIP Protocol
▼
移動局(GNSS受信機 + 端末)
問題は中央のNTRIP Casterである。自宅PCで動かすこともできるが、停電・回線断・グローバルIPの変更など、24時間運用には不安が残る。
本記事の構成
固定アンテナ
│
Drogger受信機(NTRIP Server)
│ RTCM3
4Gルータ / 有線LAN
│
─── Internet ───
│
AWS EC2(NTRIP Caster)
│
─── Internet ───
│
移動局(複数台同時接続可)
AWS側にオープンソースのNTRIP Casterを導入し、Droggerから送信されるRTCM補正データを中継する。移動局はインターネット経由で接続するため、全国どこからでも利用可能になる。
その他の機材
- GNSSアンテナ ── 受信機に対応したアンテナ(HX-CSX601Aなど)。基準局は屋外固定設置のため、マルチパス対策としてグランドプレーン付きが望ましい
- 通信手段 ── 4G/LTEルータ(SIM付き)、または有線インターネット接続
- 電源 ── USB給電。屋外設置の場合はソーラー+バッテリーの組み合わせも可
- アンテナ設置用金具 ── 三脚やポール固定金具。恒久設置ならコンクリート基礎上のステンレスポールが理想
AWS EC2の構築
インスタンス仕様
NTRIP Casterが中継するデータ量はごくわずかである。RTCMストリームは数kbps程度なので、最小クラスのインスタンスで十分動作する。
| 項目 | 設定値 |
|---|---|
| リージョン | ap-northeast-1(東京) |
| AMI | Amazon Linux 2023 |
| インスタンスタイプ | t4g.nano(2 vCPU, 0.5 GiB RAM) |
| ストレージ | 8 GiB gp3 |
| Elastic IP | 1個(固定IP必須) |
月額コスト概算
| 項目 | 月額(USD) |
|---|---|
| t4g.nano(オンデマンド) | 約 $3.07 |
| EBS 8GiB gp3 | 約 $0.64 |
| Elastic IP(稼働中) | $0.00 |
| データ転送(数GB以下) | ほぼ $0.00 |
| 合計 | 約 $3.7(≒ 550円前後) |
Reserved Instanceを利用すればさらに安くなる。Amazon Lightsailなら月額$3.50~でさらに手軽だが、本記事ではEC2で構築する。
セキュリティグループ設定
NTRIP Casterのデフォルトポートは2101/TCPである。
| タイプ | プロトコル | ポート | ソース | 用途 |
|---|---|---|---|---|
| SSH | TCP | 22 | 管理者IPのみ | サーバ管理 |
| カスタムTCP | TCP | 2101 | 0.0.0.0/0 | NTRIP Caster |
公開運用しない場合は、2101ポートのソースを基準局と移動局のIPに制限することを推奨する。
NTRIP Casterの構築
NTRIP Casterにはいくつかの選択肢がある。本記事では2つの方法を紹介する。
方法1:BKG NtripCaster(推奨)
ドイツ連邦地理測地局(BKG)が公開していたオープンソース実装のフォークが利用可能である。
# 必要パッケージのインストール
sudo dnf update -y
sudo dnf install git gcc make -y
# ソースの取得とビルド
cd ~
git clone https://github.com/tomohirosuenaga/ntripcaster.git
cd ntripcaster
./configure --prefix=/usr/local/ntripcaster
make
sudo make install
設定ファイルの編集
cd /usr/local/ntripcaster/conf
sudo cp ntripcaster.conf.dist ntripcaster.conf
sudo cp sourcetable.dat.dist sourcetable.dat
sudo cp mountpos.conf.dist mountpos.conf
ntripcaster.conf を編集する。
# サーバの識別名
server_name your-caster.example.jp
# 最大接続数
max_clients 10
max_sources 5
# NTRIP Server(基準局)からの接続パスワード
encoder_password your_server_password
# NTRIP Client(移動局)からの接続パスワード(不要なら空欄可)
# client_password your_client_password
# 待ち受けポート
port 2101
sourcetable.dat を編集し、マウントポイントを定義する。
STR;MYBASE;YourCity;RTCM3.2;1077(1),1087(1),1097(1),1117(1),1127(1),1005(10);2;GPS+GLO+GAL+BDS+QZS;;JPN;35.00;140.00;0;0;Drogger RWS;none;N;N;8000;
ENDSOURCETABLE
各フィールドの意味は RTCM NTRIP Sourcetable仕様 を参照のこと。緯度・経度は基準局の概略位置を記載する。
systemdサービス化
24時間運用のために、systemdで自動起動を設定する。
sudo tee /etc/systemd/system/ntripcaster.service << 'EOF'
[Unit]
Description=NTRIP Caster
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/ntripcaster/bin/ntripcaster
WorkingDirectory=/usr/local/ntripcaster/bin
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable ntripcaster
sudo systemctl start ntripcaster
動作確認
# Sourcetableの取得テスト
curl http://localhost:2101
# 出力例:
# SOURCETABLE 200 OK
# ...
# STR;MYBASE;YourCity;RTCM3.2;...
# ENDSOURCETABLE
外部からElastic IPに対して同様のリクエストが通ればOKである。
方法2:RTKLIBのstr2str(簡易構成)
RTKLIBに含まれるstr2strコマンドは、単体でNTRIP Casterとして動作させることもできる。BKG NtripCasterよりも導入が簡単だが、複数クライアントの管理機能などは限定的である。
# RTKLIBのビルド
cd ~
git clone -b rtklib_2.4.3 https://github.com/tomojitakasu/RTKLIB.git
cd RTKLIB/app/str2str/gcc
make
# NTRIP Casterとして起動(Droggerからの入力をNTRIPで中継)
./str2str -in ntrips://:your_server_password@:2101/MYBASE \
-out ntripc://:2101/MYBASE
テスト用途や移動局が1~2台の小規模運用ならこの方法で十分である。
Droggerの基準局設定
基準局座標の決定
RTKの測位精度は基準局のアンテナ座標の正確さに直結する。適当な座標を設定すると、接続する全移動局に系統的な誤差が伝播する。
座標決定の方法は以下のいずれかを用いる。
- 長時間スタティック観測 + 後処理解析 ── Drogger Processorを使い、最寄りの電子基準点データと合わせて基線解析を行う。数時間の観測で数mmの精度が得られる
- PPP解析 ── 長時間(24時間以上)の観測データをPPPサービス(CSRS-PPPなど)に送信し、絶対座標を取得する
- 既知点への設置 ── 公共基準点上にアンテナを設置する(測量法に基づく使用許可が必要な場合がある)
Drogger-GPSアプリにはスタティック観測・セッション記録機能があり、Drogger Processorで基線解析から三次元網平均計算まで実行できる。
NTRIP Serverの設定
Drogger-GPSアプリから以下を設定する。
- RTKの設定 → 基準局 をONにする
- 基準局の緯度・経度・楕円体高 に決定済みの座標を入力
- 基準局用キャスターホスト を以下のように設定
ホスト: <EC2のElastic IP>
ポート: 2101
マウントポイント: MYBASE
パスワード: your_server_password
- スタートすると、DroggerがNTRIP ServerとしてRTCM補正データをAWSへ送信し始める
RWSシリーズの場合、Android端末なしでも受信機単体でNTRIP Serverとして動作可能である(WiFi経由でルータに接続)。RWE-ETHイーサネットモジュールを使えば有線LAN接続も可能で、屋外常設基準局の信頼性が大幅に向上する。
移動局からの接続
移動局側のDrogger-GPS(またはRTKLIB、その他NTRIP対応アプリ)で以下を設定する。
ホスト: <EC2のElastic IP>
ポート: 2101
マウントポイント: MYBASE
ユーザ: (ntripcaster.confでclient_passwordを設定した場合のみ)
パスワード: (同上)
接続後、数秒でFIX解が得られる。水平精度は概ね1~3cm程度で、ネットワーク経由でも十分実用的である。
運用上のメリット
どこからでも利用可能
基準局が山形県にあっても、AWSを経由することで遠隔地の移動局から接続できる(ただし基準局との距離が離れるほどRTK精度は低下する。後述の「注意点」を参照)。
複数利用者の同時接続
1台の基準局から、測量・ドローン・農業機械など複数の移動局へ同時にRTCMデータを配信できる。NTRIP Casterが中継を担うため、基準局の受信機には負荷がかからない。
ログの保存と解析
AWS上でRTCMストリームをファイルに記録しておけば、障害発生時の解析や、後処理での利用が可能になる。str2strを併用すれば簡単にログを取得できる。
# RTCMストリームをファイルに記録する例
str2str -in ntrip://localhost:2101/MYBASE \
-out file:///var/log/rtcm/%Y%m%d%H_MYBASE.rtcm::S=1
注意点
基準局座標の精度管理
基準局の座標誤差は、接続する全移動局にそのまま伝播する。とりあえず動かしてみたい気持ちはわかるが、本運用前には必ずスタティック観測+後処理で座標を確定させること。
セキュリティ
NTRIP Casterをインターネットに公開する場合は、以下を検討すべきである。
- NTRIP ServerパスワードとClientパスワードの設定
- セキュリティグループでの接続元IP制限
- CloudWatch等による接続監視
近年、基準局のなりすましやRTK補正情報の改ざんに関する研究も報告されている(RTKiller: manipulation of GNSS RTK rovers by reference base spoofing, arXiv:2406.07565)。公開運用時は認証とアクセス制御を適切に設定すること。
基準局と移動局の距離
基準局と移動局の距離は、RTK精度に直接影響する。
- 数km以内 ── 高精度なRTK-FIXが安定して得られる
- 数km〜十数km ── 実用的なRTK精度を維持できるが、FIX率がやや低下する場合がある
- 20〜30kmを超える ── 電離層・対流圏の遅延差が大きくなり、FIXが困難になることがある
一般的に、2周波受信機(RWSシリーズ)の場合は基線長が短いほど有利である。3周波受信機(RZS.Dシリーズ)は電離層誤差の補正能力が高く、やや長い基線にも対応しやすい。広域をカバーしたい場合は複数基準局の設置、またはVRS型サービスの利用を検討する。
通信コスト
4Gルータ経由の場合、RTCMデータの転送量は月数百MB程度と少量だが、SIMの月額料金は別途かかる。格安SIM(月額数百円~)で十分賄える帯域である。
コスト比較
| 項目 | 従来(専用基準局システム) | 本構成 |
|---|---|---|
| GNSS受信機 | 数十万~数百万円 | 約4〜6万円(Drogger RWS) |
| NTRIP Caster | 専用サーバ or 有料サービス | 月額 約550円(AWS EC2) |
| 通信回線 | 専用回線 | 格安SIM(月額数百円) |
| ソフトウェア | 有償ライセンス | 無償(Drogger-GPS, RTKLIB) |
| 運用コスト(年間) | 数十万円~ | 約2万円以下 |
まとめ
DroggerとAWSを組み合わせることで、個人でも24時間稼働するGNSS基準局を月550円で構築できる。
構築のポイントは4つ。
- Drogger受信機 ── 全モデルが基準局対応。受信機単体でNTRIP Server動作が可能。これが最大の差別化要因
- AWS EC2 t4g.nano ── NTRIP Casterに十分な性能。Elastic IPで固定アドレスを確保
- BKG NtripCaster ── オープンソースで無料。systemdで自動起動すれば放置運用可能
- 基準局座標 ── スタティック観測+後処理で正確に決定。ここを手抜きしない
数百万円の専用システムがなくても、数万円の受信機とクラウドだけで測位インフラが手に入る。AWSの画面に流れ続けるRTCMデータを見ていると、少しだけ電子基準点を持った気分になれる。
個人がクラウド上に測位インフラを持てる時代は、もう来ている。
参考リンク
- BizStation Droggerシリーズ 公式サイト
- Drogger RTKガイド(基準局設定を含む)
- Drogger 基準局の座標決定マニュアル
- Drogger RWE-ETH イーサネットモジュール
- NTRIP Caster構築(Qiita: @m_take)
- 自分用のNTRIP Casterをたてる(Qiita: @XPT60)
- NTRIP CasterServer の構築(Qiita: @yasushi00)
- RTK基地のハンドリングスクリプト(Qiita: @yasunori_oi)
- RTKBase(Raspberry Pi向け基準局ソフトウェア)
- RTKLIB(オープンソースGNSSソフトウェア)