広域・低電力無線

RTK測位

センチメートル級の高精度測位技術。

概要

RTK(Real Time Kinematic)測位は、GNSS(GPS等)の測定誤差を補正することでセンチメートル(cm)級の高精度位置情報をリアルタイムに得る技術です。標準的なGPSGNSSの精度が3〜10m程度であるのに対し、RTKは水平方向1〜2cm、垂直方向2〜3cmという圧倒的な精度を実現します。

RTKは「基準局(Reference Station)」と「移動局(Rover)」という2つのGNSS受信機を使います。既知の正確な位置に設置した基準局の観測値と、移動局の観測値の差分(相対測位)を使って誤差を相殺する仕組みです。基準局の補正データをリアルタイムで移動局に送信(通常はLTE-M・Wi-Fi・LoRaWAN等)することで、リアルタイムにcm精度の位置を求められます。

精密農業(農機の自動操舵)・建設機械の自動制御・ドローンの精密着陸・GIS測量・橋梁・ダムの変形監視など、高精度な位置情報が不可欠な分野で広く使われています。

歴史・背景

RTKの基礎となる「搬送波位相測定」技術は1980年代から測量分野で使われていましたが、リアルタイム処理が可能になったのは1990年代のコンピュータ性能向上によります。

1990年代後半には農業機械メーカー(John Deere等)がRTKシステムを農業向けに商品化し、農機の自動操舵(オートパイロット)として急速に普及しました。2000年代にはGalileoやGLONASSの整備が進み、マルチコンステレーションRTKが可能になったことで精度・可用性が向上しました。

2010年代以降はu-blox ZED-F9P等の低コスト高精度GNSSチップが登場し、従来は数百万円していたRTKシステムが数万円以下で構築できるようになりました。これによりドローン・ロボット・農業IoTへの応用が一気に広まりました。

技術仕様

RTKの測定原理

RTKが高精度を実現する核心は「搬送波位相(Carrier Phase)」測定です:

通常のGPS測距(コード測距):
  PRNコードの遅延時間 × 光速 = 疑似距離
  精度: 1〜10m(コード波長 300m の1%程度)

搬送波位相測距(RTK):
  L1搬送波(波長 = 3×10⁸/1575.42×10⁶ ≈ 19.0cm)の位相を測定
  精度: 波長の1〜2%程度 → 2〜4mm の分解能

整数アンビギュイティ(N):
  衛星〜受信機間の搬送波の「整数サイクル数」が不明
  φ_受信 = φ_送信 - N × λ + δ(雑音)
  N(整数アンビギュイティ)を確定することが初期化の核心

アンビギュイティ確定後:
  mm〜cm精度の測距が可能
  一般的に初期化(Fix)に数秒〜数分かかる

2周波RTK vs 1周波RTK

方式周波数初期化時間精度コスト
1周波RTK(L1/E1のみ)1波数分〜1〜3cm
2周波RTK(L1+L2/L5等)2波数秒〜30秒1〜2cm中〜高
マルチバンドRTK3波以上1〜5秒1cm

2周波以上を使うと「ワイドレーン」という等価波長の長い信号が生成でき、アンビギュイティの確定が大幅に速くなります。

Fix状態とFloat状態

RTKの測位状態:

No Fix(測位なし):
  - GNSS信号受信不十分
  - 位置精度: なし

Float(浮動小数解):
  - 搬送波位相を測定しているが、整数アンビギュイティ未確定
  - 位置精度: 数十cm〜数m
  - NMEA GGAのQuality indicator: 5

Fix(整数解確定):
  - 整数アンビギュイティ確定済み
  - 位置精度: 1〜5cm(水平)
  - NMEA GGAのQuality indicator: 4

FIX状態の信頼性(Ratio test):
  最良解 / 次点解の比率(Fix Ratio)> 3 で信頼性が高いとされる

補正データフォーマット(RTCM 3.x)

基準局から移動局への補正データはRTCM(Radio Technical Commission for Maritime Services)フォーマットで送信されます:

RTCM 3.x 主要メッセージタイプ:
  1001-1004: GPS観測値(L1/L2搬送波・コード)
  1005/1006: 基準局の基準点座標
  1007/1008: アンテナ情報
  1009-1012: GLONASS観測値
  1033: 受信機・アンテナ情報
  1074-1077: GPS MSM(Multiple Signal Message)
  1084-1087: GLONASS MSM
  1094-1097: Galileo MSM
  1114-1117: QZSS MSM
  1124-1127: BeiDou MSM

典型的なRTCM 3.2通信レート:
  1秒間隔の観測値: 約1〜5kbps
  → LTE-MやWi-Fiで容易に伝送可能
  → LoRaWANでは帯域不足の場合あり

動作原理

RTKシステムの構成

構成1: 自前基準局 + 移動局(プライベートRTK)

[基準局]
既知位置に固定したGNSS受信機
(例: u-blox ZED-F9P + 測量済み三脚台)
     │ RTCM補正データ
     │ (Serial/USB → Raspberry Pi等)

[補正配信サーバー]
(例: NTRIP Caster on Raspberry Pi)
     │ LTE/Wi-Fi経由

[移動局GNSS受信機]
(例: ZED-F9P搭載IoT機器)
     → cm精度の位置を算出

構成2: ネットワークRTK(VRS等)

国土地理院 電子基準点ネットワーク
     → CORS(Continuously Operating Reference Station)
     → NTRIP形式で補正データ配信
     → 月額サービス料で利用(数千円〜)

NTRIP(Networked Transport of RTCM via Internet Protocol)

NTRIPは、RTCM補正データをインターネット経由で配信するプロトコルです:

NTRIPの構成:
  NTRIP Source(基準局)→ NTRIP Caster(配信サーバー)→ NTRIP Client(移動局)

国内の主なNTRIPサービス:
  国土地理院 配信サービス(無料・要登録)
  NetStar GNSS(有料)
  Aichi CORS(愛知県)等の地方公共団体サービス
  SORACOM Napterと組み合わせたプライベートNTRIP

NTRIP Client実装例(疑似コード):
  http_get("ntrip.gsi.go.jp", 2101, "/MOUNTPOINT", credentials)
  → HTTPストリームでRTCMデータを受信
  → UARTでGNSS受信機にRTCMを送信

u-blox ZED-F9Pを使ったRTK実装

// u-blox ZED-F9P RTK移動局設定(UBX-CFGコマンド)

// UBX-CFG-TMODE3: RTK移動局モードに設定
uint8_t ubx_cfg_tmode3_rover[] = {
    0xB5, 0x62,        // UBXシンクロナイザ
    0x06, 0x71,        // クラス/ID (CFG-TMODE3)
    0x28, 0x00,        // ペイロード長 40バイト
    0x00, 0x00,        // バージョン
    0x00, 0x00,        // フラグ(モード: 0=Disabled, 1=Survey-in, 2=Fixed)
    // mode=0: 移動局モード
    // ...以下40バイトのペイロード
};

// RTCM入力設定(UBX-CFG-PRT)
// ポート2(UART2)でRTCM3.xを受け付ける
uint8_t ubx_cfg_prt[] = {
    0xB5, 0x62, 0x06, 0x00,
    0x14, 0x00,          // ペイロード16バイト
    0x02,                // ポートID=2 (UART2)
    0x00, 0x00, 0x00,    // 予約
    0xD0, 0x08, 0x00, 0x00, // UART設定 (8N1, 115200bps)
    0x00, 0xC2, 0x01, 0x00, // ボーレート 115200
    0x07, 0x00,          // 入力プロトコル: UBX+NMEA+RTCM3
    0x03, 0x00,          // 出力プロトコル: UBX+NMEA
    0x00, 0x00,          // フラグ
    0x00, 0x00,          // 予約
    0x00, 0x00           // チェックサム(要計算)
};

// Fix状態の監視
void monitor_rtk_status(void) {
    // UBX-NAV-PVTからfixType・carSolnを読み取り
    // fixType=3, carSoln=2 → RTK Fix(cm精度)
    // fixType=3, carSoln=1 → RTK Float(数十cm精度)
    uint8_t ubx_poll_pvt[] = {0xB5, 0x62, 0x01, 0x07, 0x00, 0x00, 0x08, 0x19};
    uart_send(ubx_poll_pvt, sizeof(ubx_poll_pvt));
    // 応答解析...
}

用途・ユースケース

精密農業

農機の自動操舵でのRTK精度: 2〜3cm以内のクロスレロー(列ずれ)

農業RTKの具体的効果:
  - 農薬・肥料散布のオーバーラップをゼロに近づける
  - 播種の等間隔を高精度に維持
  - 深夜・視界不良時でも精密作業が可能
  - 収穫量マッピングとの組み合わせで収益最大化

建設機械制御(ICT建機)

国土交通省のi-Constructionで推進されるICT建機では、バックホウ・ブルドーザーのバケット位置をRTKで管理し、設計面通りに自動制御します。

ドローン・UAM

  • 精密着陸(±5cm以内)
  • 農薬散布ドローンの自律飛行コース維持
  • 点検ドローンの対象物との距離維持

変形・沈下監視

  • ダム・橋梁の微細変形(mm〜cm単位)の継続監視
  • 地すべり地域の移動量計測
  • 軟弱地盤上の建物沈下モニタリング

実装・開発のポイント

RTK対応GNSSモジュール比較

モジュールメーカー周波数特徴価格帯
ZED-F9Pu-bloxL1/L2 デュアル業界標準、豊富な実績2〜4万円
LC29HQuectelL1/L5 デュアル小型、低コスト1〜2万円
F9Hu-bloxL1/L2 (移動局専用)低コスト版ZED-F9P1〜2万円
mosaic-X5SeptentrioL1/L2/L5高精度・高信頼性5〜10万円
C099-F9Pu-blox評価ボード開発・評価向け3〜5万円

LoRaWANでのRTCM伝送

RTCM補正データは通常1〜5kbpsのビットレートが必要です。LoRaWANでの伝送には工夫が必要です:

RTCMデータ量の削減策:
1. 観測間隔を5〜10秒に延ばす(精度多少低下)
2. 必要なRTCMメッセージタイプのみ配信
   (1005/1006 + 1074/1084/1094のMSMのみ等)
3. 圧縮アルゴリズム(gzip等)を適用
4. L1信号のみ使用(2周波差分なし)→ 速度を減らす

現実的な選択:
  LoRaWAN SF7: 5.5kbps → 低密度RTCMなら通信可能
  LoRaWAN SF12: 0.29kbps → RTCMには不十分
  → 実際にはLTE-MやWi-Fiが推奨

他技術との比較

RTKとPPP(精密単独測位)の比較

PPP(Precise Point Positioning)はRTKとは別の高精度測位技術で、基準局なしにcm精度を目指します:

比較項目RTKPPP
基準局必要(数十km以内)不要
精度1〜2cm(Fix時)2〜10cm
初期化時間数秒〜数分(2周波)10〜30分(収束)
通信RTCM補正が必要衛星軌道・時計補正のみ
主な用途農業・建設・ドローン船舶・航空(広域)

クラウドRTK(PPP-RTK, Fast-PPP等)は両者の中間として、基準局ネットワークを使いつつ広域カバレッジとRTK速度を両立させる新しいアプローチとして注目されています(例: u-blox PointPerfect、Trimble RTX)。

関連用語

参考リンク