合同会社タキカワ飛行機

News ・ 2026.07.01

フライトサービス支援システム FEELDSCOPE を提供

← お知らせ一覧へ

FEELDSCOPE は、FLARM を搭載した滑空機や小型機から発信される信号を受信し、地図上で位置管理するシステムです。

  • 離着陸時間の自動検知
  • 離脱高度と距離の自動検知
  • 低パスの滑空機を自動検知

ソースコードは GitHub(FEELDSCOPE-OGN)↗ にて公開しています。

セットアップガイド

必要なもの

ハードウェアRaspberry Pi 4 (2GB+)
SDカード8GB 以上 (16GB 推奨)
SDRドングルRTL-SDR Blog V3 / V4 推奨(922 MHz 帯対応)
ネットワークWi-Fi または Ethernet

Step 1: OGN 公式イメージの書き込み

1イメージのダウンロード

OGN 公式サイトからRaspberry Pi用イメージをダウンロードします:

http://download.glidernet.org/seb-ogn-rpi-image/

最新の .img.zip ファイルを選択してください。

2SDカードへの書き込み

Raspberry Pi ImagerbalenaEtcher を使って、 ダウンロードした .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"
ReceiverName は OGN の命名規則に従ってください。 日本の場合は ICAO空港コード + 連番 (例: RJTTTK001) を推奨します。 詳細: 命名規則

4初回起動

SDカードをRaspberry Piに挿入し、SDRドングルを接続して電源を入れます。

初回起動時にOGNソフトウェアが自動的にダウンロード・設定されます。起動完了まで数分かかります。

Step 2: OverlayFS の無効化

OGN公式イメージは OverlayFS が有効になっており、再起動するとファイルシステムへの変更がすべて消えます。 FEELDSCOPEをインストールするために、まずOverlayFSを無効化します。

1SSH で接続

ssh pi@<raspberry-pi-ip>

パスワードは OGN-receiver.conf で設定した piUserPassword の値です。

IPアドレスはルーターの管理画面や nmap -sn 192.168.x.0/24 で確認できます。 ホスト名 ogn-receiver.local でも接続できる場合があります。

2OverlayFS を無効化して再起動

sudo overlayctl disable
sudo reboot

再起動後、ファイルシステムへの変更が永続化されるようになります。

Step 3: パーティションの拡張

OGN公式イメージのルートパーティションは約 1.6GB に制限されています。 FEELDSCOPEのインストールにはNode.jsやnpmパッケージが必要なため、 SDカード全体を使えるようにパーティションを拡張します。

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 サービスの登録・起動
SDR ドングルについて: RTL-SDR Blog V3V4 はどちらも本ソフトでサポートしますが、推奨は V4 (TCXO 内蔵で周波数安定、感度も高い)。
互換クローン品の RTL2832 ドングルでも動作することはありますが、922 MHz の PLL ロックや感度が個体差で大きくバラつくため、本番運用では純正品を推奨します。
ビルドには RPi4 で 10〜15分程度かかります。途中で電源を切らないでください。

2動作確認

インストール完了後、ブラウザでアクセスします:

http://<raspberry-pi-ip>/

地図画面が表示され、受信したFLARM機器がマーカーとして表示されます。

Step 5: OverlayFS の再有効化 (推奨)

運用環境では OverlayFS を再有効化することでSDカードの書き込み劣化を防ぎます。 有効化後はファイルシステムの変更が再起動で消えるため、SDカードの寿命が大幅に延びます。

1FEELDSCOPE の Web UI から設定

  1. ブラウザで http://<raspberry-pi-ip>/ を開く
  2. 設定 画面を開く
  3. システム固定化「固定化を有効にして再起動」 をクリック

自動的にOverlayFSが有効化されてシステムが再起動します。再起動後、SDカードへの書き込みが保護されます。

OverlayFS 有効時にFEELDSCOPEをアップデートする場合は、
設定画面で 「固定化を解除して再起動」 → アップデート → 「固定化を有効にして再起動」
の手順で行います。

オプション: ADS-B 表示

別のRaspberry Pi等で tar1090 / dump1090 が稼働している場合、 そのADS-Bデータを FEELDSCOPE の地図上に重ねて表示できます。

FEELDSCOPE の Web UI から Settings ページを開き:

  1. ADS-B を有効化
  2. URL に tar1090 の aircraft.json エンドポイントを入力
    (例: http://192.168.x.x/tar1090/data/aircraft.json)
  3. Interval を設定 (3秒推奨)

ADS-Bデータはローカル表示のみで、OGNネットワークにはアップロードされません。

オプション: 履歴再生機能

FEELDSCOPEには、過去のフライトログ(IGCファイル)を使って、 あたかもリアルタイムで飛行しているかのように地図上に再現する履歴再生機能があります。

用途

  • フライトサービスの訓練 — 実際のフライトがない日でも、過去のフライトデータを使って発航管理や位置把握の練習ができます
  • システムの操作学習 — FEELDSCOPEの画面操作や機能を、実機が飛んでいなくても体験できます
  • フライトの振り返り — 過去のフライトを再生して、飛行経路やパターンを地図上で確認できます

仕組み

IGCファイルには緯度・経度・高度・時刻が記録されています。 履歴再生では、記録された飛行データの時刻を現在時刻に自動的にずらして再生します。 例えば、2024年5月に記録されたフライトでも、再生を開始すると「今この瞬間に飛んでいる」ように 地図上にリアルタイムで軌跡が描かれます。再生速度は1〜20倍速に調整でき、ループ再生にも対応しています。

使い方

  1. OLC (Online Contest) などのサイトからIGCファイルをダウンロード
  2. 設定画面の IGC ファイル管理 からアップロード
  3. データソース切替履歴再生 を選択(再生倍速を調整可能)
  4. 地図画面に切り替えると、アップロードしたフライトが現在時刻で再生されます
OGNデータの送信は継続されます — 履歴再生中も、OGN受信機(ogn-rf / ogn-decode)は独立して動作しており、 実際に受信したFLARMデータのOGNサーバへのアップロードは中断されません。 履歴再生はFEELDSCOPEのWeb表示のみを切り替える機能であり、受信局としての機能には影響しません。

フライトログ

地図画面の下部に表示されるフライトログテーブルには、 FLARMから受信した離着陸情報が自動的に記録されます。

内容
登録番号機体の登録番号(機体データベースに登録がある場合)
離陸離陸検出時刻(手動編集可)
着陸着陸検出時刻(飛行中は「飛行中」と表示、手動編集可)
飛行時間離陸〜着陸の経過時間(自動計算)
離脱高度曳航離脱時の高度(手動編集可)
離脱距離離脱時の滑空場からの距離
データはサーバ側メモリに保存されます。 複数のブラウザ・端末から同じフライトログを参照でき、ブラウザを閉じてもデータは保持されます。 フライトログは毎日日本時間 AM 5:00 に自動リセットされます。

設定項目リファレンス

📖 詳細マニュアルはWeb UIのヘルプから: Webアプリ右上の「ヘルプ」→「マニュアル」で、全タブ・全項目の詳しい説明(マップアイコン一覧、ステータス項目の意味、各設定の保存先など)を参照できます。本セットアップガイドでは設定項目の概要のみ記載します。

設定画面(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 URLaircraft.json のエンドポイントURLサーバ
ポーリング間隔(秒)データ取得間隔(1〜30秒)サーバ

5. 表示設定

地図やサイドバーの表示に関する設定です。これらの設定はブラウザごとに保存されます。

項目選択肢保存先
機体ラベル表示名コンテスト番号 / 登録番号 / パイロット名ブラウザ
高度m / ftブラウザ
速度km/h / knotブラウザ
上昇率m/s / knot/sブラウザ
距離km / nmブラウザ
安全滑空比1〜100(デフォルト: 15)ブラウザ

6. ネットワーク設定

Wi-Fiおよび有線LANの接続設定です。変更はシステムの設定ファイルに直接反映されます。

固定化(OverlayFS)がONの場合、ネットワーク設定の変更は再起動時にリセットされます。 恒久的に変更するには固定化をOFFにしてから設定してください。
項目説明
ホスト名(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アプリが一時的に利用できなくなります。

固定化(OverlayFS)がONの場合はアップデートできません。先に固定化をOFFにして再起動してください。
サービスの稼働状況(Mosquitto / ogn-mqtt / igc-simulator / adsb-poller)はステータスタブに集約されています。

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等への電源供給。通常アンテナでは絶対に有効化しないこと
OGNBINARYURLOGNバイナリのダウンロード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-ognOGN RF受信 + デコードはい (init.d)
mosquittoMQTT ブローカーはい
ogn-mqttFLARM → MQTT ブリッジはい
feeldscope-webappWeb UI (ポート 80)はい
adsb-pollerADS-B → MQTT (オプション)設定時のみ
igc-simulatorIGC 履歴再生 → 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