News ・ 2026.07.01
フライトサービス支援システム FEELDSCOPE を提供
FEELDSCOPE は、FLARM を搭載した滑空機や小型機から発信される信号を受信し、地図上で位置管理するシステムです。
- 離着陸時間の自動検知
- 離脱高度と距離の自動検知
- 低パスの滑空機を自動検知
ソースコードは GitHub(FEELDSCOPE-OGN)↗ にて公開しています。
セットアップガイド
必要なもの
Step 1: OGN 公式イメージの書き込み
1イメージのダウンロード
OGN 公式サイトからRaspberry Pi用イメージをダウンロードします:
http://download.glidernet.org/seb-ogn-rpi-image/
最新の .img.zip ファイルを選択してください。
2SDカードへの書き込み
Raspberry Pi Imager や
balenaEtcher を使って、
ダウンロードした .img ファイルをSDカードに書き込みます。
3OGN 設定ファイルの編集
書き込み後、SDカードの /boot パーティションにある OGN-receiver.conf を編集します:
### Mandatory ###
ReceiverName="YOUR_RECEIVER_NAME"
Latitude="35.6977"
Longitude="139.7548"
### Optional ###
piUserPassword="your_password"
FreqCorr="0"
GSMCenterFreq="922.4"
wifiName="Your_WiFi_SSID"
wifiPassword="your_wifi_password"
wifiCountry="JP"
OGNBINARYURL="http://download.glidernet.org/arm/rtlsdr-ogn-bin-ARM-latest.tgz?version=japan"
4初回起動
SDカードをRaspberry Piに挿入し、SDRドングルを接続して電源を入れます。
初回起動時にOGNソフトウェアが自動的にダウンロード・設定されます。起動完了まで数分かかります。
Step 2: OverlayFS の無効化
1SSH で接続
ssh pi@<raspberry-pi-ip>
パスワードは OGN-receiver.conf で設定した piUserPassword の値です。
nmap -sn 192.168.x.0/24 で確認できます。
ホスト名 ogn-receiver.local でも接続できる場合があります。
2OverlayFS を無効化して再起動
sudo overlayctl disable
sudo reboot
再起動後、ファイルシステムへの変更が永続化されるようになります。
Step 3: パーティションの拡張
1パーティションを拡張して再起動
sudo raspi-config --expand-rootfs
sudo reboot
2拡張の確認
再起動後にSSHで再接続し、容量を確認します:
df -h /
SDカードのサイズに近い容量が表示されていればOKです (例: 16GBカードなら14GB程度)。
Step 4: FEELDSCOPE のインストール
1リポジトリのクローンとインストーラーの実行
sudo apt-get update && sudo apt-get install -y git
git clone https://github.com/hezoe/FEELDSCOPE-OGN
cd FEELDSCOPE-OGN
sudo bash feeldscope-install.sh
インストーラーが以下を自動的に行います:
- システムパッケージの導入 (mosquitto, Python paho-mqtt, git, cmake, libusb-dev)
- Node.js 20.x のインストール (armhf 対応)
- Mosquitto の WebSocket 設定
- FEELDSCOPE ファイルのデプロイ
- RTL-SDR Blog 公式ドライバ (V4 対応版) のビルド・インストール — OGN 公式イメージ同梱の librtlsdr 0.6.0 は RTL-SDR Blog V4 を正しく扱えず、 922 MHz 帯で PLL がロックせず受信不能になります(V3 は問題なし)。 インストーラはドロップイン互換のドライバに自動差し替えします。
- OGN 設定の日本 FLARM 最適化 — FreqPlan = 7 (Japan, 922.4 MHz中心、50 kHz × 3 ch)、Gain は AGC 動作の初期値を低めにしてV4のADC飽和を回避、ScanMargin 80 kHz で全3チャネル捕捉。
- Webアプリのビルド (Next.js)
- systemd サービスの登録・起動
互換クローン品の RTL2832 ドングルでも動作することはありますが、922 MHz の PLL ロックや感度が個体差で大きくバラつくため、本番運用では純正品を推奨します。
2動作確認
インストール完了後、ブラウザでアクセスします:
http://<raspberry-pi-ip>/
地図画面が表示され、受信したFLARM機器がマーカーとして表示されます。
Step 5: OverlayFS の再有効化 (推奨)
1FEELDSCOPE の Web UI から設定
- ブラウザで
http://<raspberry-pi-ip>/を開く - 設定 画面を開く
- システム固定化 の 「固定化を有効にして再起動」 をクリック
自動的にOverlayFSが有効化されてシステムが再起動します。再起動後、SDカードへの書き込みが保護されます。
設定画面で 「固定化を解除して再起動」 → アップデート → 「固定化を有効にして再起動」
の手順で行います。
オプション: ADS-B 表示
別のRaspberry Pi等で tar1090 / dump1090 が稼働している場合、 そのADS-Bデータを FEELDSCOPE の地図上に重ねて表示できます。
FEELDSCOPE の Web UI から Settings ページを開き:
- ADS-B を有効化
- URL に tar1090 の aircraft.json エンドポイントを入力
(例:http://192.168.x.x/tar1090/data/aircraft.json) - Interval を設定 (3秒推奨)
ADS-Bデータはローカル表示のみで、OGNネットワークにはアップロードされません。
オプション: 履歴再生機能
FEELDSCOPEには、過去のフライトログ(IGCファイル)を使って、 あたかもリアルタイムで飛行しているかのように地図上に再現する履歴再生機能があります。
用途
- フライトサービスの訓練 — 実際のフライトがない日でも、過去のフライトデータを使って発航管理や位置把握の練習ができます
- システムの操作学習 — FEELDSCOPEの画面操作や機能を、実機が飛んでいなくても体験できます
- フライトの振り返り — 過去のフライトを再生して、飛行経路やパターンを地図上で確認できます
仕組み
IGCファイルには緯度・経度・高度・時刻が記録されています。 履歴再生では、記録された飛行データの時刻を現在時刻に自動的にずらして再生します。 例えば、2024年5月に記録されたフライトでも、再生を開始すると「今この瞬間に飛んでいる」ように 地図上にリアルタイムで軌跡が描かれます。再生速度は1〜20倍速に調整でき、ループ再生にも対応しています。
使い方
- OLC (Online Contest) などのサイトからIGCファイルをダウンロード
- 設定画面の IGC ファイル管理 からアップロード
- データソース切替 で 履歴再生 を選択(再生倍速を調整可能)
- 地図画面に切り替えると、アップロードしたフライトが現在時刻で再生されます
ogn-rf / ogn-decode)は独立して動作しており、
実際に受信したFLARMデータのOGNサーバへのアップロードは中断されません。
履歴再生はFEELDSCOPEのWeb表示のみを切り替える機能であり、受信局としての機能には影響しません。
フライトログ
地図画面の下部に表示されるフライトログテーブルには、 FLARMから受信した離着陸情報が自動的に記録されます。
| 列 | 内容 |
|---|---|
| 登録番号 | 機体の登録番号(機体データベースに登録がある場合) |
| 離陸 | 離陸検出時刻(手動編集可) |
| 着陸 | 着陸検出時刻(飛行中は「飛行中」と表示、手動編集可) |
| 飛行時間 | 離陸〜着陸の経過時間(自動計算) |
| 離脱高度 | 曳航離脱時の高度(手動編集可) |
| 離脱距離 | 離脱時の滑空場からの距離 |
設定項目リファレンス
設定画面(Settings)の各項目について説明します。上から順に記載しています。
1. 滑空場設定
マップの中心位置、パス判定の基準点、ナビゲーションの滑空場名を設定します。 ブラウザとサーバの両方に保存され、読み込み時はサーバ側の設定が優先されます。
| 項目 | 説明 | 保存先 |
|---|---|---|
| 滑空場名 | 滑空場の表示名 | ブラウザ + サーバ |
| 緯度(度) | 滑空場の緯度(十進法) | ブラウザ + サーバ |
| 経度(度) | 滑空場の経度(十進法) | ブラウザ + サーバ |
| 標高(m) | 滑空場の標高 | ブラウザ + サーバ |
2. データソース切替
表示データのソースを切り替えます。履歴再生中もOGN受信機は独立動作し、FLARMデータのOGNサーバへのアップロードは継続されます。
| モード | 説明 |
|---|---|
| リアルタイム再生 | OGNレシーバーからのFLARMデータをリアルタイムで表示 |
| 履歴再生 | IGCファイルの飛行データを現在時刻にずらして再生(1〜20倍速) |
3. IGC ファイル管理(履歴再生用)
履歴再生に使用するIGCフライトログファイルの管理。 OLC等からダウンロードしたIGCファイルをアップロード・削除できます。
4. ADS-B 受信設定
同一ネットワーク上のtar1090/dump1090からADS-Bデータを取得して地図に表示します。
| 項目 | 説明 | 保存先 |
|---|---|---|
| 有効化チェック | ADS-B受信のON/OFF | サーバ |
| tar1090 / dump1090 URL | aircraft.json のエンドポイントURL | サーバ |
| ポーリング間隔(秒) | データ取得間隔(1〜30秒) | サーバ |
5. 表示設定
地図やサイドバーの表示に関する設定です。これらの設定はブラウザごとに保存されます。
| 項目 | 選択肢 | 保存先 |
|---|---|---|
| 機体ラベル表示名 | コンテスト番号 / 登録番号 / パイロット名 | ブラウザ |
| 高度 | m / ft | ブラウザ |
| 速度 | km/h / knot | ブラウザ |
| 上昇率 | m/s / knot/s | ブラウザ |
| 距離 | km / nm | ブラウザ |
| 安全滑空比 | 1〜100(デフォルト: 15) | ブラウザ |
6. ネットワーク設定
Wi-Fiおよび有線LANの接続設定です。変更はシステムの設定ファイルに直接反映されます。
| 項目 | 説明 |
|---|---|
| ホスト名(mDNS) | 同一LAN内から <hostname>.local でアクセス可能にする名前(英数字・ハイフンのみ、63文字以内) |
| Wi-Fi SSID | 接続先のWi-Fiネットワーク名 |
| Wi-Fi パスワード | WPA2パスワード(8文字以上) |
| 有線LAN IPアドレス取得方法 | DHCP(自動)または固定IP |
| IPアドレス / サブネットマスク / ゲートウェイ / DNS | 固定IP選択時のみ表示 |
7. システムアップデート
GitHubリポジトリから最新のコードを取得してWebアプリをリビルドします。 アップデート中(約2〜3分)はWebアプリが一時的に利用できなくなります。
OGN設定タブ
ナビゲーションバーの「OGN設定」タブから、OGN受信機の全設定を変更し、受信機の稼働ステータスをリアルタイムに確認できます。
受信機ステータス(リアルタイム)
- ソフトウェアバージョン、ホスト名
- CPU負荷、CPU温度、RAM空き
- NTP誤差、NTP周波数補正
- RTL-SDRデバイス情報(名称、チューナー、シリアル)
- 中心周波数(実測)、サンプルレート、周波数補正(実測)
- 周波数プラン、OGN受信ゲイン(実測)、ノイズレベル、Live Time
設定可能項目
| 項目 | 説明 |
|---|---|
| 受信機名(APRS Call) | OGNネットワーク上の局名。英数字9文字以内(例: RJTTTK001) |
| 緯度・経度・高度 | アンテナの設置位置。OGNネットワーク上の受信局位置として公開されます |
| FreqCorr (ppm) | RTL-SDRドングルの水晶誤差補正 |
| HTTPポート | 受信機ステータスHTTPサーバのポート(デフォルト: 8082) |
| GSM中心周波数 / ゲイン | 周波数キャリブレーション用のGSMセル設定(日本: 922.4MHz) |
| Bias-T | アンテナ用LNA等への電源供給。通常アンテナでは絶対に有効化しないこと |
| OGNBINARYURL | OGNバイナリのダウンロードURL(再インストール時に使用) |
/home/pi/rtlsdr-ogn.conf(runtime)と /boot/OGN-receiver.conf(再インストール時の参照元)の両方が更新され、rtlsdr-ogn サービスが自動的に再起動します。受信は数秒間中断します。
8. システム固定化
OverlayFSのON/OFFを切り替えます。ONにするとSDカードへの書き込みが保護され、 再起動時にファイルシステムの変更がリセットされます。 ボタンをクリックすると設定変更と再起動が一度に実行されます。
9. 自動再起動
毎日決まった時刻にシステムを自動再起動します。メモリリーク防止や一時ファイル蓄積の解消に有効。
rootのcrontabに MM HH * * * /sbin/reboot 行を追加・削除します。
時刻はシステムのローカルタイムゾーン基準(dateコマンド出力と同じ)。
10. システム電源
システムの再起動およびシャットダウンを行います。 シャットダウン後の再起動には電源の抜き差しが必要です。
サービス構成
| サービス | 役割 | 自動起動 |
|---|---|---|
rtlsdr-ogn | OGN RF受信 + デコード | はい (init.d) |
mosquitto | MQTT ブローカー | はい |
ogn-mqtt | FLARM → MQTT ブリッジ | はい |
feeldscope-webapp | Web UI (ポート 80) | はい |
adsb-poller | ADS-B → MQTT (オプション) | 設定時のみ |
igc-simulator | IGC 履歴再生 → MQTT | 手動 (ogn-mqtt と排他) |
トラブルシューティング
Web UI が表示されない
sudo systemctl status feeldscope-webapp
sudo journalctl -u feeldscope-webapp -n 20
地図に航空機が表示されない
# OGN受信の確認
sudo systemctl status rtlsdr-ogn
curl -s http://localhost:8083/aircraft-list.txt
# MQTT データの確認
mosquitto_sub -t "ogn/#" -v -C 5
OverlayFS の状態確認
overlayctl status
