Column ・ 2026.05.01
第1回 なぜFLARMは「鳴るべき時だけ」鳴るのか
江副 浩 / ezoe.net ・ 2026年5月
衝突警報装置を導入したことのある方なら、一度はこんな疑問を持ったことがあるはずです。
ピットインで隣に駐機している機体。エプロンに4機が並ぶ離陸前のグライダー。サーマルで同じ円を回っている2機。——どれも物理的にはとても近いのに、FLARMはほとんど鳴りません。一方で、対向するクロスカントリー機どうしが接近した瞬間には、まだ1 km以上離れていても警報が立ち上がります。
この差はどこから来るのか。今回はFLARMが現在ブロードキャストしている情報と、そこから組み立てられている衝突判定ロジックを見ていきます。
FLARMが1秒ごとに飛ばしている情報
FLARMは日本では922.4 MHz帯(欧州は868 MHz帯)で、1秒に1回、自機の状態を周囲にブロードキャストしています。現在知られている、1パケットに乗っている主要なフィールドは以下のとおりです。
| 項目 | 例 | 役割 |
|---|---|---|
| 緯度・経度 | +35.71623, +139.75189 | GPS現在位置 |
| 高度 | 44 m | 高度 |
| 昇降率 | +0.0 m/s | 上昇/下降の速度 |
| 地速 | 30 m/s | GPS対地速度 |
| 進行方位 | 090° | GPS進路 |
| 旋回率 | +12 °/s | 単位時間あたりの回転角度 |
| 水平精度 | 3 m | GPS精度 |
| 垂直精度 | 3 m | GPS精度 |
| 送信機アドレス | 6桁HEX | 機体ID |
| stealth / no_tracking | フラグ | 表示抑制の意思表示 |
ポイントは、「位置」だけではなく「動き」と「回転」までを送っていることです。これがあとで効いてきます。
さらにFLARMはこの自機情報に加え、今後数十秒のあいだ自分がどこを飛ぶつもりか——予測軌道そのものも同じパケットに乗せて送っています。FLARM公式やFLARM Technologyの取材記事、米国グライダーパイロット向け解説などが一貫して述べているとおり、各機は毎秒、自身のGPS情報から計算した予測フライトパスを無線でブロードキャストしており、受信側はそれぞれの機体の「これから」を最初から知った状態で衝突判定に入れます[1][2][3][4]。
これは設計上とても合理的です。機体タイプごとに最適な運動モデル——グライダーの旋回特性、曳航機の上昇プロファイル、ヘリのホバリング、競技機の機動——を一番よく知っているのは送信側です。送信側でその機体専用の予測モデルを適用してから飛ばせば、受信側は周囲数十機ぶんの予測計算を毎秒やり直す必要がなくなり、判定はずっと軽く、そして精度も高くなります。FLARM Technologyの特許文献では、この予測アルゴリズムは IMM (Interacting Multiple Model) と呼ばれ、機体タイプに応じてサーマル旋回/直線巡航/曳航などの運動モードを切替えながら、最大20秒先までの予測位置を出力する設計とされています[5][6]。FLARMが単なる位置発信機ではなく「協調動作する衝突防止装置」と呼ばれる所以がここにあります。
「近い=危険」ではない — 時間軸で見る衝突判定
衝突警報装置と聞くと、つい「○○m以内に他機がいたら鳴る」というイメージを持たれがちですが、FLARMはそれをしません。代わりに使うのは次の二軸です。
- TCA(Time to Closest Approach: 最接近までの時間)
- 最接近時の水平・垂直距離
判定はおおむねこんな手順で進みます。
- 自機と他機、それぞれの現在位置・速度ベクトル・旋回率から数秒先の軌道を伸ばす
- 2本の軌道が時間軸上でどこで一番近づくか(TCA)を計算する
- その最接近点で水平・垂直距離が一定以下になるかを見る
- なる場合のみ、TCAに応じて段階的に警報を出す(概ね
18秒前 → 13秒前 → 8秒前で警報レベルが上がる)
つまり「距離」ではなく「このままお互いが動き続けたら、本当にぶつかるのか」を毎秒問い直しているわけです。
これがオオカミ少年にならないための、いちばんの大原則です。
ピットで並んでいるのに鳴らない理由
地上で待機中の機体のパケットは、典型的にこうなります。
これをFLARMの判定にかけると、
- 双方が動いていない → 速度ベクトルがほぼゼロ → 軌道予測は「今いる場所にずっと留まる」
- 2機の現在位置はそれぞれ別の場所にある
- したがってTCAは∞ / 最接近距離は今の距離のまま → 衝突予測なし → 警報なし
たとえ翼端が1メートルしか離れていなくても、お互いに動く意思がない限りFLARMは黙っています。地上モードへの切り替え判定など補助的な仕組みもありますが、本質は「動かないものはぶつからない」を運動ベクトルから自然に導いている点にあります。
サーマルで同じ円を回っていても鳴らない理由
ここで旋回率フィールドが効いてきます。
サーマル内で2機が同じ方向に旋回しているとき、両機の旋回率はたとえば「+12 °/s」「+11 °/s」のように符号も大きさもほぼ同じになります。FLARMはこの旋回率を加味して軌道を「直線」ではなく「カーブ」として伸ばすため、
- 旋回率が同符号で近い値 → 予測軌道は互いに平行な円
- 円どうしは交わらない → 最接近距離が一定以上 → 警報なし
もう一つのよくある状況 — 同じ円を位相をずらして回る
サーマルソアリングでは、複数機(例えば3機)が同じ円を、同じ半径・同じ方向で、ただしお互いの位置だけを120°ずつずらして回ることがあります。これは「お互いの姿を視認できる位置関係を保ったまま、安全に高度を稼ぐ」ためにグライダーパイロットがあえて取るフォーメーションで、サーマルを共有する3機のパーティでよく見られる飛び方です。
このとき各機の旋回率は同じ(例:全機 ω = +12 °/s)、半径も同じ。幾何学的には、3機の間の角度差はいつまでも 120°/120°/120° のまま保たれます。角度差が一定ということは、機体間の直線距離(弦の長さ)も時間が経っても変化しません。
FLARMの判定軸でこれを見ると、各機の予測軌道は同じ円の上で位相をずらした「同じカーブ」になり、一対の機体について相対距離の変化率(接近レート)が限りなくゼロ。したがって接近ベクトルのデルタも限りなく0 → TCAは計算上∞ → 最接近距離は今の弦長のまま → 警報なし、という結論になります。
「翼が見える距離にお互いがいる」のにFLARMが鳴らないのは、判定が「現在の距離」ではなく「これから二者がどう動くか」を見ているからこそ実現できる結果です。視認できる距離で安心して回りたい、というパイロットの意図と、FLARMの判定が自然に一致しているところがこの設計の美しいところです。
逆に、一方が旋回中(旋回率 ≈ +12°/s)で、もう一方が直進進入してきた(旋回率 ≈ 0°/s)場合は、予測軌道が円と直線の交点を持ちます。ここでTCAが小さく出れば即警報。サーマル合流時の事故を減らしているのはこの差分です。
「同じ空域に2機・3機がいる」だけで鳴らさず、「これから軌道が交差しそうだ」というところまで踏み込んで判定している、という設計思想がよく見えるところです。
クロスカントリーで対向接近すると、なぜ「早め」に鳴るのか
対向接近の典型を数値にしてみましょう。
- A機:地速 30 m/s、進行方位 090°
- B機:地速 30 m/s、進行方位 270°
- 高度差ほぼゼロ、横方向ずれ 50 m
両機の相対速度は約60 m/s。仮に現在の機体間距離が1.2 kmあったとしても、TCAは
ちょうど第1段警報(概ね18秒前)が立ち上がる領域に入ります。さらに横ずれ50 mはFLARMの水平判定しきい値よりずっと内側なので「最接近時にぶつかる側」と判定され、警報が鳴ります。直線距離が1 km以上あっても鳴るのはこのためです。
「鳴ったときには既に手遅れ」になりがちな対向接近を、相対速度が大きいほど早めに警報を出す——これもオオカミ少年にならないための重要な設計です。意味のないタイミングで鳴らない代わりに、本当に危ないときには十分な反応時間を確保してくれます。
高度差を「垂直距離」で見る — 上下にすれ違うときも鳴らない
水平面だけで判定すると、真上をヘリコプターが横切るだけでも警報が出てしまいます。FLARMは高度情報を使って垂直方向の最接近距離も同時に評価し、十分な高度差があれば鳴らしません。
これも「水平距離が近い=危険」とは判定しない理由の一つで、上空をヘリコプターが通過するだけ、同高度で対向するときだけ——という、人間が直感的に「危ない/危なくない」と感じる線引きと、ちゃんと一致するように作られています。
stealth / no_tracking — プライバシーと安全の両立
FLARMのパケットには、機体側で立てられる2つのフラグがあります。
- stealth:表示用の位置精度を意図的に劣化させる(競技中など)
- no_tracking:地上局でのトラッキング表示を拒否する意思表示
まとめ — オオカミ少年にならない4つの仕掛け
FLARMが「鳴るべき時だけ鳴る」装置でいられている理由を、最後にもう一度整理します。
- 時間で判定する(TCA):距離ではなく「いつ最接近するか」で判定。動かないものは永遠に鳴らない。
- 旋回まで含めて軌道を予測する:同じサーマルを協調して回る複数機は、平行な円でも同円位相違いでも軌道が交差せず、機体間隔が変わらないので鳴らない。
- 垂直距離も同時に評価する:真上を通過するだけの機体は鳴らない。
- 相対速度が大きいほど早めに鳴る:対向接近など本当に危ない場面では、まだ遠くても十分な余裕をもって警報。
「無視できる警報」が一度でも混じると、パイロットはやがてすべての警報を信じなくなります。FLARMはその落とし穴を、位置・運動・回転・高度・予測軌道を毎秒共有しあうという協調動作で回避している、というのが要点です。
空の上で警報が鳴ったとき、「鳴ったからには本当に対処すべき状況だ」と即座に信じられること。——それこそが、衝突防止装置に求められる本当の性能なのだと思います。
参考文献・情報源
本資料の前提条件
本記事に示した判定ロジックは、以下が成立しているケースを前提としています。
- GPS 測位が自機・他機ともに正常に行われている(位置・速度・旋回率が継続的に正しく取得できている)
- 送信された FLARM 信号が干渉・遮蔽・距離減衰などによってロストせず、双方が継続的に受信できている
山陰や機体構造による電波遮蔽、近接他機との同時送信衝突、強磁気環境下での GPS 測位不良などでこれらの前提が崩れる場合、ここで述べた「協調動作による衝突予測」そのものが成立しません。FLARM の警報がないことは「衝突がない」ことを意味するわけではなく、最終的な見張りはあくまでパイロットの目視に依存していることに常に留意してください。
情報源
本記事中の「FLARMは予測軌道を毎秒ブロードキャストしている」「機体タイプ別の運動予測モデル」「TCAに応じた段階的警報(概ね 18 秒前/13 秒前/8 秒前)」等の記述は、以下の一次・二次情報源に基づいています。なおFLARMの無線プロトコル本体は proprietary かつ暗号化(XXTEA)されており、本文中のパケット項目は公開仕様(データポート出力)および Open Glider Network 等のリバースエンジニアリング成果から得られる範囲のものです。
- FLARM Technology 公式 FAQ — https://www.flarm.com/en/support/faq/
- FLARM — Wikipedia — https://en.wikipedia.org/wiki/FLARM
- Inside the FLARM Collision Avoidance System — Aviation Today (2023) — https://www.aviationtoday.com/2023/07/07/inside-the-flarm-collision-avoidance-system/
- What Does FLARM Do — Dave Nadler / GliderPilot.org — https://nadler.com/GliderPilotUSAflarmWeb/Flarm-WhatDoesItDo.html
- Low Altitude Traffic Awareness for Light Aircraft with FLARM — OpenSky Report 2023 — https://hal.science/hal-04630303v1/file/OpenSky_Report_2023_Low_Altitude_Traffic_Awareness_for_Light_Aircraft_with_FLARM.pdf
- On the Security of the FLARM Collision Warning System — Wang et al., ASIACCS — https://wangboya.org/assets/pdf/Flarm_ASIACCS_camera_ready.pdf
その他の参考:
- FLARM (Flight Alarm) — SKYbrary Aviation Safety — https://skybrary.aero/articles/flarm-flight-alarm
- What is FLARM? — Planevision Systems — https://planevision.systems/what-is-flarm/
- FLARM Data Port Interface Control Document (ICD) v7.19 — FLARM Technology 公式 — https://www.flarm.com/wp-content/uploads/2024/04/FTD-012-Data-Port-Interface-Control-Document-ICD-7.19.pdf
- OGN Tracking Protocol — Open Glider Network Project — http://wiki.glidernet.org/ogn-tracking-protocol
