カメラ付きドローン
飛行するドローンのカメラ映像をスマホで見ながら操縦するのは楽しそうだ。
ロボで実現するなら表示はスマートグラスと考えていたが、ゲームパッド用のスマホホルダーが千円程で市販されているのを知りスマホOKに心変わり。
最終的には屋外で使いたいが、先ず自宅のWiFi環境で実現する。
作業
- 動画ストリーミング用ソフトにmjpg-streamer を選定
- セットアップ手順の確認
基本的に同ソフト配布元の情報に従うが、それはラズパイOSバージョンが buster 迄らしい。
バージョン確認【リスト1】の結果はRaspbian GNU/Linux 10 (buster) で、ひと安心(^_^)
cmakeも必要で、導入によるラズパイ既存make との競合を危惧したが杞憂だったようだ。
- セットアップ作業を実施 【リスト2】
その後、make clean と make distclean でWorkファイルを消去しラズパイの小容量ストレージを節約。
- mjpg_streamerを起動してみる
起動にあたり、カメラ映像をリモートPCにWeb表示するための引数指定は、セットアップが提供するREADME.mdの説明に頼るのが吉。
必要最小限の引数指定【リスト3】で起動後、PCのWebブラウザで所定のURL指定すると、ロボ視界が表示された。
……が…上下逆転してる… 【写真1】
ロボの製品サポートに確認→これで正常!
- コマンドラインの引数変更で動作改善を図る
- デフォルトのフレームレート(5回/秒)だと、移動体の残像が残るので30を指定
- デフォルトの640×480ピクセルを1280×720に指定すると表示遅延が1秒程に大きくなるのでデフォルトを維持
- 画面の180°回転指定追加で上下逆転を解消
最終的に【リスト4】の指定に落ち着いたが、ユーザー/パスワード指定も必要かも。
- 手持ちのスマホに表示してみる
Webなので当然とはいえAndroidスマホも問題なく表示した。ただCPUパワー不足か、PCより表示遅延が顕著だ。さてどうしたものか?
|
リスト1: OSのバージョン確認
rz2> lsb_release -a
リスト2: セットアップ作業
rz2> sudo apt update
rz2> sudo apt-get install cmake libjpeg8-dev
rz2> sudo apt auto-remove #陳腐化して不使用のライブラリ自動削除
rz2> cd ~/Downloads #作業ディレクトリへ移動(不要かも?)
rz2> git clone https://github.com/jacksonliam/mjpg-streamer.git #make用情報の取得
rz2> cd ./mjpg-streamer/mjpg-streamer-experimental #作業ディレクトリへ移動
rz2> make
rz2> make install
※ #コメント を付した行は自主的(笑)に補間実行したコマンド
リスト3: mjpg_streamer起動!
rz2> LD_LIBRARY_PATH=/usr/local/lib
rz2> mjpg_streamer -i "input_raspicam.so" \
-o "output_http.so -w /usr/local/share/mjpg-streamer/www -p 8080"
写真1: カメラ映像(動画)をPCにWeb表示

URL = ラズパイのIPアドレス:8080/stream.html
ロボ視界だけ表示→ラズパイのIPアドレス:8080/stream_simple.html
リスト4: 改善後の書式
rz2> mjpg_streamer -i "input_raspicam.so -fps 30 -rot 180"
\
-o "output_http.so -w /usr/local/share/mjpg-streamer/www -p 8080"
|