
以前、FlightAware および Flightradar24 でデータをフィードする方法についての記事を書きました。これらのフィード方法については、インターネット上に数多くのドキュメントが存在しているため、まったくの初心者でも何とか対応できるでしょう。しかし、注意が必要な点もいくつかあります。特に、Flightradar24のフィーダー用ソフトウェアに関しては、すべてのアーキテクチャ向けにビルドされたバイナリが提供されているわけでは無いにも関わらず、自分でソースコードからビルドするという選択肢もないのです。
具体的には、SBC (シングルボードコンピュータ)向けとしては、armhf(32ビットのARMアーキテクチャ)用のバイナリは提供されているものの、arm64(64ビット版のARM)用のバイナリは提供されていません。この問題に対して、OSがarmhf用のライブラリに対応していれば、64ビットのSBCでも32ビットのソフトウェアを動かすことが可能な場合があります。しかし、OSが対応していない、あるいは部分的にしか対応していない場合、そのソフトウェアは動作しないことが多いのです。この状況に頭を悩ませているユーザーも少なくありません。
例えば、OrangePi Zero2というSBCでは、orangepi.orgが提供しているDebian BusterベースのOSを使用している場合、armhf用のバイナリを動作させることができました。しかし、2021年末から2022年初めにかけての時期にリリースされたArmbianでは、dpkg --add-architecture armhfコマンドを使用し、考えられる限りのarmhf用ライブラリを追加しても、エラーが発生してバイナリが正しく動作しないという問題に直面しました。このように、環境によっては少し頑張った程度では解決しない場合もあります。
この記事を書いた後、時期は不明ですがarm64版のバイナリパッケージが提供されるようになっています。Flightradar24が提供しているインストールスクリプトを使用するとフィーダー用のコンピュータのアーキテクチャに応じたバイナリパッケージが適用されるのでarm64系のコンピュータには自動でarm64のパッケージがインストールされます。
このため、2022年になり、OrangePi Zero2のOSをArmbianに移行した際、Flightradar24へのフィードができなくなってしまいました。この問題に対処するため、代替のフィード先を探すことにしました。
今回選んだのは、軍用機などの特定機種をフィルタリングせずに表示し、かつ商用サービスではないことが特徴の「ADS-B Exchange」へのフィードです。このサービスは、フィルタリングされない生のデータを提供する点で、商業サービスとは一線を画しています。
インストールと設定
すでにdump1090-faやpiawareがインストールされている環境であれば、特別な追加パッケージをインストールする必要はほとんどありません。基本的な手順は、ADS-B Exchangeの公式ドキュメントに記載されていますが、一点注意が必要です。ドキュメントでは/tmpディレクトリで実行することが推奨されていますが、SBCの/tmpはRAMディスクとして使用されていることが多く、その容量が限られている場合があります。そのため、今回はホームディレクトリで実行することにしました。
以下の手順を開始する前に、必ずdump1090-faが正常に稼働していることを確認します。これは、dump1090-faによって収集されたデータをADS-B Exchangeにフィードするためです。
$ sudo -s # wget https://adsbexchange.com/feed.sh # bash feed.sh
feed.shは、スクリプトの最初に #!/bin/bash が指定されているため、通常は chmod +x feed.sh を実行してスクリプトに実行権限を付与し、その後 ./feed.sh として実行する方法もあります。しかし、システムによっては、bash のPathが /usr/bin/bash やそれ以外の場所にある場合があるため、確実に実行するには bash feed.sh と入力して実行する方が安全です。この方法であれば、スクリプトの編集や実行属性の付与を行う必要がなく、シンプルに操作できます。
幾つか質問されます。

セットアップ中に「セットアップを行いますか?」と尋ねられる場面では、[Tab]キーを使用して「Yes」を選択し、[Enter]キーを押して進めます。この選択肢によって、必要な設定が自動的に行われます。

ADS-B Exchangeでは、特にMode S MLAT (マルチラテレーション)が重要視されています。MLATは複数の受信機からのデータを基に航空機の位置を高精度で特定する技術で、これが有効なフィーダーは、MLATマップ上に表示されます(後述)。セットアップ中には、フィーダーの登録地点やフィーダー名を指定するステップがあり、このフィーダー名を入力する必要があります。名前の付け方は自由で、英数字やハイフンなどを使用できますが、MLATマップは多くの人々が閲覧できる可能性があるため、個人や設置場所が特定されるような名前は避けるのが賢明です。また、「0」を入力すればMLAT機能を無効にすることができます。

フィーダーの正確な設置場所を登録するためには、アンテナの位置に対応する座標を入力する必要があります。緯度に関しては、北半球の場合は通常の数字を、小数点以下5桁以上で入力します(例:35.685379)。南半球の場合は負の数を使用します。座標はGoogleマップや国土地理院の地図などで簡単に調べることができます。特に国土地理院の地図では、アンテナを設置したい場所に地図の中央の「+」マークを合わせると、その地点の緯度と経度がURL欄に表示されます。また、地図の左下には標高(海抜)が表示されるので、アンテナの設置高度を足した値を入力します。
正確な座標を入力することは非常に重要です。もし誤って、あるいはわざと不正確な座標を入力した場合、MLATでのデータ整合性に問題が生じ、信頼されないフィーダーとして除外される可能性があります。このため、アンテナの位置を正確に把握し、確実なデータを提供することが求められます。

アンテナ設置場所の経度を入力します。東経の場合はそのまま数字を、西経の場合はマイナスの数字を入力してください。小数点以下の精度は高く、少なくとも5桁以上が必要です。例えば、東京(皇居)の経度を入力する場合は「139.753368」となります。

アンテナの設置高を入力します。この数値はアンテナ設置場所の標高と、地上からのアンテナの高さを足したものです。例えば、国土地理院の地図を使ってアンテナ設置場所の標高を調べ、その標高にアンテナが設置される地面からの高さを足した数値を計算してください。メートル単位で入力する場合、数値の後に「m」を付けます。例えば、標高100メートルの場所に地上から23メートルの位置にアンテナを設置した場合は「123m」と入力します。

自動設定やサービスの有効化に進みます。この時点で、ADS-B Exchangeへのフィード開始の許可を求められます。もしエラーが発生していなければ、常識的には[Tab]キーで「Yes」を選択し、[Enter]キーを押して進めてください。このインストーラーは非常によく作られており、特にDebianやUbuntu系のディストリビューションを使っている場合、エラーが発生することはほとんどないでしょう。これまでの設定が正しく行われていれば、スムーズに進行します。

設定が始まると、黒い画面に文字がズラズラと表示され、インストールが自動的に進みます。この間、dump-1090-faから情報を取得する設定も自動で行われます。設定ファイルを後から変更することも可能なので、細かな調整が必要な場合は後で修正できます。
インストールが正常に完了すると、ADS-B Exchange用のサービスが自動で有効化され、フィードの送信が始まります。この段階でフィードが正常に行われているかを確認するためのウェブURLが表示されます。
このURLは、ADS-B Exchange側がフィードを受信し、データを処理してからでないとアクセスできません。通常、フィードが開始されてから約5分後に確認ページを開くことが推奨されています。フィードが始まってすぐに確認ページを開いても表示されない可能性があるので、少し待ってから確認しましょう。
確認時には、フィーダーとして使用しているPCやSBCと、確認用のブラウザを使用しているPCやスマートフォンが、同じグローバルIPアドレスを持っていることが重要です。もしフィーダーと確認端末が同じ家庭内のLANなどに接続されている場合、特に意識する必要はありません。ただし、スマートフォンで確認する場合は、必ずフィーダーと同じLANにWi-Fi接続されているかを確認してください。スマートフォンがモバイル通信に切り替わっている場合は確認ができないため、注意が必要です。

こちらのリンクにアクセスしました。このページでは、フィードの状態を確認することができます。もしフィードが開始されていなかったり、正常にフィードができていない場合は、画面に(赤色の困り顔アイコン)が表示されます。この表示がある場合は、何らかの原因でフィードが正しく機能していないことを意味しています。

フィードが正常に動作している場合は、(緑色のニコちゃんアイコン)が表示されます。また、MLATを無効にしている場合、たとえばMLATフィーダー名の欄に「0」を入力してMLATを無効化した場合には、MLAT connectionの欄にも赤い困り顔が表示されることになります。このように、アイコンによって現在のフィードの状態を一目で確認することができるのです。

https://adsbx.org/sync を表示しました。Interactive MLAT server mapという小さな世界地図をクリックします。

最初に表示される画面はおそらく世界地図が広がっている状態でしょう。この地図の表示位置を日本に移動し、拡大して自分のフィーダーの設置場所付近を表示します。フィーダーのマークにポインタを合わせると、MLATフィーダー名が表示されるため、自身のフィーダーを探が表示されることを確認します。
ただし、初めてこれを見たときに「自分のフィーダーの位置がバレてしまうのでは?」と不安に思うかもしれません。しかし、実際にはフィーダーの座標は小数点2桁に丸められており、地図上の表示も現実の設置場所から数キロメートルずれている場合がほとんどです。したがって、プライバシーの観点からも安心してよいでしょう。ただし、座標がキリの良い数値に近い場合は、町村単位で位置が判別されることもあるかもしれません。また、自宅が周囲にほとんど建物のない場所にある場合(つまり、ポツンと一軒家の場合)、多少の位置バレのリスクを考慮する必要があります。
自身のフィーダーをクリックすると、画面の左側にフィーダーの詳細情報が表示されます。さらに、MLATが有効になっている場合、他のフィーダーと緑色の線で繋がる様子が見られます。この線は、MLATで連携しているフィーダー同士がどのように協力しているかを視覚的に示しており、一定の距離を置いたフィーダー同士が三角形の形で繋がるのが一般的です。場合によっては、2つ以上のフィーダーと連携し、より複雑なネットワークを形成することもあります。ただし、フィーダーに入力した座標や標高が不正確であったり、フィーダーの時刻がずれている場合、MLATの連携がうまくいかないことがあります。このような場合、MLATを有効にしていても、他のフィーダーと線が繋がらず、MLATの実績がほとんど増えない、あるいはゼロのままであることが考えられます。MLATを正確に動作させるためには、NTPの設定が非常に重要です。可能であればGPSモジュールを使用して、数ミリ秒単位以下の精度を持つNTPサーバーと時刻同期して運用することが推奨されます。

左側に表示されているフィーダー情報の中には「Sync stats」というリンクもあります。このリンクをクリックすると、MLATで連携している他のフィーダーとの同期カウントやエラー状況を確認できる画面が表示されます。この画面は短い時間間隔で自動的に更新され、同期中のピア(他のフィーダー)の情報が変わる様子をリアルタイムで見ることができます。特に、空港でタクシー中、離発着中、あるいは飛行中の航空機が少ない時間帯やMLATの設定がうまくいっていない場合、ピアの数が0だったり、非常に少ないこともあるでしょう。また、MLATを有効にしても、自身のフィーダーの近く(半径数百km以内)にMLAT対応のフィーダーが少ないと、うまく連携できないことがあります。この点も考慮に入れて設定を確認する必要があります。
ADS-B Exchangeは、FlightAwareやFlightradar24と異なり、公式サイトでのアカウント取得やログインが不要です。これは、フィーダーとしては手軽であることを示しています。
その他のツールや機能については、GitHubのADSBexchange.comリポジトリにいくつかのプロジェクトが公開されているようです。興味のある方はチェックしてみてください。(まだ試していませんが、興味深いツールが揃っています。)
- RTL-SDR BLOG V4を購入してみた
- ADS-B受信用の缶テナ作成
- ADS-B Exchangeにフィードする
- AndroidスマートフォンでADS-B受信
- ADS-B受信用アンテナの作り直し 再び (過去最高のアンテナ)
- 曲がってしまったアンテナを支えてみた (思った以上に失敗した例)
- dump1090-fa 7.1とpiaware 7.1のビルド・インストール・更新
- ADS-B受信用に新しいLNAを購入した
- dump1090-fa 6.0とpiaware 6.0への更新
- ADS-B用アンテナをさらに改修した話
- dump1090-fa 5.0のウェブ表示ができない問題
- RTL-SDRの受信機が届いた (再び微妙?)
- 昨年末に停まったOrangePi Zero Plusを回収した
- 粗悪なRTL-SDR受信機が届いた話
- 針金4箇所曲げるだけの高利得な謎アンテナを建て直した