LTEで運転とビデオをまかなう

ペリフェラル
image_print

今までの応用です。

  1. LTEのためのux302nc USBドングルが動くようにする。(ux302ncでDaemon化)
  2. Raspiからフライトコントローラーのテレメトリーを動作させるためにMavProxyをインストール。(mavlinkでDaemon化)
  3. ストリーミングするために標準的な水中カメラを入手。(DWEがデファクトです)RaspiのUSBに差し込むだけで動作するはず。
  4. MJPG Streamerをインストール (これはシェルコマンドmjpg_start.shを叩いてます)

以上で固定IPのsimがあれば、ミッションプランナーが繋がり、MJPG Streamerがブラウザーから見られます。

LTEですから、どれだけ長距離でも免許なしでOKです。

ただし、インターネットを使うと明らかに高速なやり取りは期待できません。通常、フライトコントローラーと接続するためのRC,専用テレメトリー、WIFIすべて自分用の伝送であるため遅延はほとんどありません。
だからMavLinkの2秒に1回のハートビートでOKです。

ところがインターネットだとそうはいきません。実際にやってみるとMission Plannerとの接続はかなりの確率で途中で切れます。

したがって、MavLink High Latencyモードを使う必要があるかもしれません。QGControlはサポートしていますが、Mission Plannerは現時点ではダメだと思われます。

もうひとつ、LTEといえどもあまりバンド幅はないようです。動画ストリーミングをするとブツブツ切れます。ですから、15fpsくらいで解像度もギリギリまで落とすことをオススメします。

このあたりはまだ追求しきれていません。

以下は試行錯誤して失敗したアイデアです。

GoPro12からプレビューをMpeg2-TRでストリーミングしてくれるらしいのですが、そのストリーミングを確認する方法がわからず、断念しています。
開発者に聞くとデモプログラムを教えてくれました。(ここ
再現から始めようと思います。

そもそもGoProのAPIを使っている人は少ないです。日本語で誰かが書いた資料は見たことないです。おそらく当ブログが唯一かもしれません。

MJPG Streamerにhttpを受け取れるプラグインがあるのですが、開発者が「これは他のMJPG Streamerのデータを受け取るためだけに作られた」と言っており、汎用的ではないようです。定義しても読んでくれません。

ビデオはカメラと異なり、ずっとレコーディングしておいて、後から不要部分を切り取ればいいので、GoProを一切コントロールしないことにしました。
ストリーミング用カメラと録画用カメラを用意したほうが構造は簡単です。

 

 

 

 

タイトルとURLをコピーしました