RaspberryPi4で運用していたGPSシステムを古いノートPC試してみます。
Raspiでは電源の問題や、SSHでターミナルコマンドを送信するなど手間の問題があります。
古いノートPCにLinuxをインストールし サーバー&デスクトップ環境でGPS軌跡リアルタイムシステムを作ってみました。
ノートPCはCore i 5 第4世代、メモリは4G、SSDは128GB 液晶タッチパネル搭載
Linuxは Ubuntu系の Linux Mintをインストールしました。

OSのインストール:
Linux Mintのイメージファイルをダウンロードし、USBメモリに作成してPCにインストールします。
ログインすると、Windowsライクなデスクトップ(Cinamon)で 予想以上に快適に使用できます。
WiFiの設定を行いアプリ(パッケージ管理)をアップデート&インストールを行います。
サーバーのインストール: Apache2
sudo apt install -y apache2
1. `pip3 install -r requirements.txt` (Pythonパッケージのインストール)
※ WARNING: Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
と警告がでます。この警告は無視してもインストールは続行されます。ただし、システムのPythonパッケージとの競合に注意してください。
現状維持(注意が必要)
既にrootでインストール済みの場合:
# インストール済みパッケージを確認
pip3 list
# システムパッケージとの競合をチェック
dpkg -l | grep python3
注意点:
- システムアップデート時に問題が発生する可能性
- 他のPythonアプリに影響する可能性
現在の状況確認
# インストール済みパッケージを確認
pip3 list | grep -E “(flask|websockets|gpsd)”
# システムパッケージとの重複を確認 dpkg -l | grep -E “python3-(flask|websockets)”
- 警告を無視してもインストールは続行される
- システムパッケージとの競合リスクあり
- 可能であれば仮想環境の使用を推奨
- 既にインストール済みなら、動作確認を優先
現在のインストールで問題が発生していなければ、そのまま使用しても問題ありません。問題が発生した場合は、仮想環境への移行を検討してください。
2. `python3 gps_tracker_v2.py` (サーバーの起動)
3. ブラウザで `http://localhost:5000` にアクセス
GPSDのインストール
GPSDと関連ツールをインストール
sudo apt install -y gpsd gpsd-clients python3-gps
# インストールされたバージョンを確認
gpsd –version
“`
#### 1.2 GPSデバイスの確認
“`bash
# USB接続のGPSデバイスを確認
ls -l /dev/ttyUSB*
動作確認ができたら、GPSDを自動起動するように設定します:
“`bash
# GPSDサービスを有効化
sudo systemctl enable gpsd
# GPSDサービスを起動
sudo systemctl start gpsd
# GPSDサービスのステータスを確認
sudo systemctl status gpsd


PCを持って(iphoneデザリングまたは モバイルWiFiを用意)ログを取りに行ってみましょう。

地図表示に遅延(約1分)がありました。 gps_worker()で取得したデータがWebSocketに即時送信されていないことです。gps_worker()で取得したデータをWebSocketクライアントにリアルタイムでブロードキャストするように修正します。 そして GPSDソケットを非ブロッキングにし、データ取得の応答性を改善します。
データ取得間隔を50msに短縮(GPS 10Hz対応)
ヘッダーを小さく、また コントローラーをアイコン化してみました。
また、OpenStreet Mapに対応し GoogleMap と切り替えが可能。 MAP API キーがなくても表示できます。

次回 リアルタイム表示が改善されているか 確認したいと思います。