SparkNavi F9P GPS モジュール設定¶
SparkNavi F9P GPS モジュール は、u-blox ZED-F9P-04B 多周波 RTK 受信機と BMM150 コンパスを 36.5 × 36.5 mm のボード上に統合したモジュールです。SparkNavi Blue フライトコントローラーで GPS1、GPS2、またはデュアル構成として使用可能で、Pixhawk / ArduPilot / iNAV ファームウェアに対応します。

ハードウェア仕様¶
| 項目 | 仕様 |
|---|---|
| GNSS 受信機 | u-blox ZED-F9P-04B(多周波 L1 / L2 / E5b) |
| 対応コンステレーション | GPS(L1C/A L2C)、GLONASS(L1OF L2OF)、Galileo(E1-B/C E5b)、BeiDou(B1I B2I)、QZSS(L1C/A L2C) |
| SBAS | WAAS、EGNOS、MSAS、GAGAN、SouthPAN |
| 精度 (アンテナ依存) | <1 cm 基地局使用時 最大 35 km · 1 cm NTRIP 使用時 最大 35 km · 4 cm SSR · 1.5 m スタンドアロン · 0.9 m SBAS |
| 更新レート | デフォルト 1 Hz · 最大性能 10 Hz · 性能低下時 最大 20 Hz |
| 初回測位時間 | コールド 25 秒 / ホット 2 秒 · RTK 初回測位 35 秒(コールド) |
| コンパス | Bosch BMM150(I²C 三軸地磁気センサー) |
| 機能 | Base & Rover、RAW UBX 出力 |
| インターフェース | UART × 1、USB Type-C × 1 |
| 動作温度 | −40°C 〜 +85°C |
| 寸法 | 36.5 × 36.5 mm、ネジ穴間隔 30.5 × 30.5 mm、10.0 g |
| 生産地 | 台湾設計・台湾製造 |
アンテナ選択が実精度を決定する
上記のセンチメートル級精度は、L1 / L2 / E5b をカバーする 多周波アンテナ と、安定した位相中心およびマルチパス抑制特性(通常は測量グレードのヘリカルまたはパッチアンテナ)を前提としています。一般的な単周波パッチアンテナを使用した場合、RTK 補正が利用可能であっても、実際の精度はスタンドアロン / SBAS レベルに後退します。アンテナ選択は本モジュールで達成可能な精度を決定する最大の単一要因です。
ハードウェア配線¶
SparkNavi F9P モジュールは 6 ピンコネクタを使用します:
| Pin | 信号 | 説明 |
|---|---|---|
| 1 | +5V | モジュール電源 |
| 2 | GPS RX | UART 受信(FC TX から) |
| 3 | GPS TX | UART 送信(FC RX へ) |
| 4 | SCL | I²C クロック(BMM150 コンパス) |
| 5 | SDA | I²C データ(BMM150 コンパス) |
| 6 | GND | グランド |
SparkNavi Blue GPS1 への接続¶
SparkNavi Blue の GPS1 は 8 ピンコネクタで、最初の 5 つの信号ピンが F9P モジュールと 1 対 1 で対応します。Blue の 6–7 ピン(SAFETY_SWITCH / LED)は本モジュールでは使用しません。
| Blue GPS1 Pin | 信号 | SparkNavi F9P Pin |
|---|---|---|
| 1 | +5V | 1(+5V) |
| 2 | GPS1_TX | 2(GPS RX) |
| 3 | GPS1_RX | 3(GPS TX) |
| 4 | I2C2_SCL | 4(SCL) |
| 5 | I2C2_SDA | 5(SDA) |
| 6 | SAFETY_SWITCH | —(未接続) |
| 7 | SAFETY_SWITCH_LED | —(未接続) |
| 8 | GND | 6(GND) |
SparkNavi Blue GPS2 への接続¶
SparkNavi Blue の GPS2 は 6 ピンコネクタで、F9P モジュールと 1 対 1 で直接対応します。
| Blue GPS2 Pin | 信号 | SparkNavi F9P Pin |
|---|---|---|
| 1 | +5V | 1(+5V) |
| 2 | GPS2_TX | 2(GPS RX) |
| 3 | GPS2_RX | 3(GPS TX) |
| 4 | I2C2_SCL | 4(SCL) |
| 5 | I2C2_SDA | 5(SDA) |
| 6 | GND | 6(GND) |
Note
GPS1 と GPS2 は SparkNavi Blue 上で同一の I²C2 バスを共有します。2 つの SparkNavi F9P モジュールを同時接続する場合、両方の BMM150 コンパスが異なるアドレスで I²C2 上に検出され、ArduPilot により自動的に主・副の外部コンパスとして割り当てられます。
ArduPilot パラメータ — シングル GPS(プライマリ)¶
SparkNavi F9P モジュール 1 つを GPS1 として接続する場合、ArduPilot のデフォルトシリアル設定(GPS UART 230 400 baud)でそのまま動作します。確認すべき重要パラメータ:
| パラメータ | 値 | 説明 |
|---|---|---|
GPS1_TYPE |
2(u-Blox) |
u-blox ドライバ(F9P を自動検出) |
GPS_AUTO_CONFIG |
3 |
起動時に非 ArduPilot 設定をクリアしデフォルトを適用(u-blox Gen 9+ 推奨) |
GPS_AUTO_SWITCH |
1(Use best) |
デフォルト、測位品質に基づき切替 |
GPS_PRIMARY |
0(GPS1) |
最初の GPS をプライマリとする |
Write Params および Reboot 後、Mission Planner Status に以下が表示されるはずです:
- gpsstatus ≥
3(3D fix);4= DGPS、5= RTK Float、6= RTK Fixed - satcount は空の見通しが良い場合 20〜30 以上(マルチコンステレーション)
ArduPilot パラメータ — デュアル GPS¶
2 つの SparkNavi F9P モジュール(GPS1 + GPS2)を使用する場合、両方とも同一の多周波 F9P ユニットです。推奨される切替戦略は Blend です。
| パラメータ | 値 | 説明 |
|---|---|---|
GPS1_TYPE |
2(u-Blox) |
プライマリ GPS |
GPS2_TYPE |
2(u-Blox) |
セカンダリ GPS |
GPS_AUTO_CONFIG |
3 |
起動時に u-blox 設定をクリーンアップ |
GPS_AUTO_SWITCH |
2(Blend) |
2 つの解を平均化 |
GPS_PRIMARY |
0(GPS1) |
非ブレンディング時に GPS1 をプライマリとする |
GPS_INJECT_TO |
127(Broadcast) |
RTCM 補正データを両 GPS に転送 — RTK + NTRIP 使用時必須 |
なぜ同一の F9P 2 台に Blend を使うのか?
GPS_AUTO_SWITCH = 2(Blend)は 同じ型番・同じ品質の 2 つのユニット 向けに設計されています。両 F9P は通常同等品質の解を生成するため、ブレンディングによりいずれかのユニットの一時的誤差を抑制できます。2 つの GPS が非対称な場合(例:F9P + M8N)は 4(Use Primary if 3D fix)を使用してください。
GPS 自動設定(GPS_AUTO_CONFIG)¶
GPS_AUTO_CONFIG は、起動時に ArduPilot が GPS モジュールの内部設定を書き換えるかを制御します:
| 値 | 動作 | 使用シーン |
|---|---|---|
0 |
自動設定を無効化 | u-center でカスタム GPS 設定を手書きした場合のみ — SparkNavi F9P には非推奨 |
1 |
シリアル GPS モジュールを自動設定 | デフォルト。多くのユースケースで動作 |
2 |
DroneCAN GPS モジュールも自動設定 | GPS for Yaw / Moving Baseline を DroneCAN で構成する場合に必要 |
3 |
非 ArduPilot の u-blox 設定をすべてクリアしデフォルトを再適用 | SparkNavi F9P 推奨値 — 毎回起動時にクリーンな既知設定を保証(u-blox Gen 9+) |
Moving Baseline モードからの復帰
GPS_AUTO_CONFIG = 2 を Moving Baseline 構成で使用した後、通常の(非 moving baseline)動作に戻す場合は、DroneCAN 周辺装置に接続して内部 GPSx_TYPE パラメータを手動でデフォルトに戻す必要があります。詳細は ArduPilot Positioning Landing Page を参照してください。
GPS 自動切替(GPS_AUTO_SWITCH)¶
2 つの GPS ユニットを接続している場合、GPS_AUTO_SWITCH が ArduPilot が使用する解を決定します:
| 値 | 動作 | 推奨シーン |
|---|---|---|
0 Use Primary |
常に GPS_PRIMARY インデックスの GPS を使用 |
セカンダリが受動的バックアップのみの場合 |
1 Use Best |
測位品質が良いユニットを選択(RTK > DGPS > 3D);同点は衛星数で決定 | 両 GPS が同等品質の一般的なデフォルト |
2 Blend |
2 つの解を平均化 | 同一の SparkNavi F9P モジュール 2 台 — 推奨 |
4 Use Primary if 3D fix |
プライマリが 3D fix を維持する限り使用、ロスト時のみセカンダリへ | 非対称構成(例:F9P プライマリ + M8N バックアップ) |
EKF3 はレーン切替を伴う GPS アフィニティ にも対応します。EKF レーンを特定の GPS インスタンスに紐付け、その GPS が不健全になった場合にレーン全体を切り替えます。GPS_PRIMARY がレーンに使用され、GPS_AUTO_SWITCH が有効な場合、レーンは auto-switch の判断に従います。
GPS ジャミング対策(EK3_OPTIONS bit 0)¶
電磁ノイズが多い、または妨害環境下で運用されるプラットフォーム(防衛・産業用 UAV で一般的な要件)向けに、ArduPilot は EKF3 ジャミング対策機能を提供します:
EK3_OPTIONS bit 0(JammingExpected)を設定すると EKF3 の動作が変更され、GPS ロックが 2 秒以上失われ、推測航法(dead reckoning)が可能な場合、プリフライト整合性 GPS 品質チェック(EK3_GPS_CHECK、EK3_CHECK_SCALE)に再度合格してから GPS を再利用するようになります。
これにより、再ロック後に破損した可能性のある GPS データが即座に EKF に消費されるのを防ぎます — 意図的なジャミングやスプーフィング下で起こりうる典型的な失敗モードです。
ここでの「推測航法(dead reckoning)」の範疇について
上記で言及される dead reckoning は、EKF3 が GPS 短期消失中に内部センサー(IMU、磁気センサー、気圧計)を用いて行う 短時間の位置外挿 であり、有効時間は 秒単位(分単位ではありません)です。光ファイバージャイロ / リングレーザージャイロ(FOG / RLG)を使用した 戦術グレード純慣性航法装置(数分以上独立動作可能)とは、原理および精度オーダーの両面で異なり、混同すべきではありません。
したがって本オプションは「GPS 信号が短期間妨害された後に復旧する」シナリオでの解算品質を保護するものであり、「長時間 GPS 信号を完全に喪失した状態」での飛行能力を提供するものでは ありません。長時間 GPS-denied 運用には、他のセンサーソース(光学フロー + レーザー距離計、ビジュアル慣性オドメトリ(VIO)、SLAM)、または外部測位データの注入が必要です。詳細は ArduPilot の GPS / Non-GPS Transitions ドキュメントを参照してください。
運用シーン上の注意
ArduPilot のデフォルト動作は良好な RF 環境を前提とし、GPS が再ロックすると即座に使用します。ジャミングが想定される環境(防衛、係争空域近辺、高出力 RF 放射源近辺)で運用するプラットフォームでは、本オプションの有効化が重要な安全マージンを提供します。必ず適切なフェイルセーフ設定(GPS ロスト時の RTL / Loiter)と組み合わせ、実運用シナリオでテストしてください。
BMM150 コンパス¶
オンボードの BMM150 は ArduPilot により I²C2 バス上で自動検出されます。
配線および再起動後、Mission Planner Setup → Mandatory Hardware → Compass で以下を実施:
- 検出を確認 — BMM150 が外部コンパスとして表示される(他に外部コンパスが接続されていなければ通常 priority 1)
- 内部コンパスを無効化 — 最良の yaw 性能のため、外部コンパスが健全なら内部コンパスのチェックを外す(SparkNavi Blue には内部コンパスがないため本ステップは自動で完了)
- 方向設定 — GPS モジュールの実際の取り付け方向に合わせて
COMPASS_ORIENTを設定(PCB シルクの矢印が機体前方を指すように。回転している場合はそれに応じて設定) - キャリブレーション — on-board または Mag Cal 手順を実行し、機体を全軸方向に回転させる
デュアル GPS でのコンパス優先順位
2 つの SparkNavi F9P モジュールを接続している場合、両方の BMM150 コンパスが同じ I²C2 バス上に現れます。COMPASS_PRIO1_ID / COMPASS_PRIO2_ID(Compass 設定画面に表示されるデバイス ID で指定)を設定し、電気的ノイズ源(ESC、電源線)から より遠い GPS モジュール上のコンパスを priority 1 にしてください。
検証¶
完全に設定が完了した後、Mission Planner HUD に以下が表示されるはずです:
- 屋外で 30 秒以内に 3D Fix 以上を取得
- 空が開けている場合 Sat count が通常 20〜30 以上
- 1 分以内に HDOP が 1.0 未満
- 基地局 / NTRIP 補正が有効な場合、約 35 秒で RTK Fixed
RTK 運用時は GPS_INJECT_TO = 127 を設定し、Mission Planner(Initial Setup → Optional Hardware → RTK GPS Inject)またはカスタム NTRIP クライアントから RTCM3 補正データをストリーミングしてください。