今までの応用です。
- LTEのためのux302nc USBドングルが動くようにする。(ux302ncでDaemon化)
- Raspiからフライトコントローラーのテレメトリーを動作させるためにMavProxyをインストール。(mavlinkでDaemon化)
- ストリーミングするために標準的な水中カメラを入手。(DWEがデファクトです)RaspiのUSBに差し込むだけで動作するはず。
- MJPG Streamerをインストール (これはシェルコマンドmjpg_start.shを叩いてます)
以上で固定IPのsimがあれば、ミッションプランナーが繋がり、MJPG Streamerがブラウザーから見られます。
LTEですから、どれだけ長距離でも免許なしでOKです。
ただし、インターネットを使うと明らかに高速なやり取りは期待できません。通常、フライトコントローラーと接続するためのRC,専用テレメトリー、WIFIすべて自分用の伝送であるため遅延はほとんどありません。
だからMavLinkの2秒に1回のハートビートでOKです。
ところがインターネットだとそうはいきません。実際にやってみるとMission Plannerとの接続はかなりの確率で途中で切れます。
したがって、MavLink High Latencyモードを使う必要があります。
(続く)
以下は試行錯誤して失敗したアイデアです。
GoPro12からプレビューをMpeg2-TRでストリーミングしてくれるらしいのですが、そのストリーミングを確認する方法がわからず、断念しました。
そもそもGoProのAPIを使っている人は少ないです。日本語で誰かが書いた資料は見たことないです。ん?ここが唯一?
MJPG Streamerにhttpを受け取れるプラグインがあるのですが、開発者が「これは他のMJPG Streamerのデータを受け取るためだけに作られた」と言っており、汎用的ではないようです。定義しても読んでくれません。
—
ビデオはカメラと異なり、ずっとレコーディングしておいて、後から不要部分を切り取ればいいので、GoProを一切コントロールしないことにしました。
ストリーミング用カメラと録画用カメラを用意したほうが構造は簡単です。