WebRTC Native Client Momo で FPVラジコンを堪能

Home > Raspberry Pi > WebRTC Native Client Momo で FPVラジコンを堪能
すき 0
うんこ 0

またしてもTwitterですごいものを見つけました!

なんじゃこりゃー!全然遅延がないじゃないですか。。。
WebRTC Native Client Momoというものらしいです。

以前、ラズパイZeroでMJPEG-Streamerを用いたFPV(First Person View)ラジコンを作ってみたのですが
映像転送の遅延でリアルタイムには程遠いものでした。。

Raspberry Pi Zero W でFPVラジコンカー自作

ここではWebRTC Native Client Momoを用いて再びFPVラジコンを作製してみましたので報告いたします。
 

 

MJPEG-Streamer vs Momo 

まずはMomoの低遅延具合を全身で体感するべくMJPEG-Streamerと比較してみました。

MJPEG-Streamer

設定・使用方法はブログ参照ください。

Momo

ラズパイでの設定・使用方法は以下を参照ください。
 ・Raspberry Pi (Raspbian) で Momo を使ってみる

めちゃくちゃはやい!
やばい!

FPVラジコンの作製

Momoのリアルタイム性を体感できたので早速 FPVラジコンのリベンジです!

長男くんのショベルカーラジコンを改造しましたw

システム概要

Momoによる配信映像を観ながらゲームパッドでショベルカーをコントロールします。
ゲームパッドの入力はOSC(OpenSound Control)通信でPCからラズパイに送信し、ラズパイカメラによる映像はMomoでPCブラウザに転送されます。

ショベルカー構成

ショベルカーラジコンには左右のタイヤ用とアーム用の3つのDCモータが内蔵されていました。コントローラの配線を切ってモータドライバDRV8835を介してラズパイに接続しました。

部品

  • Raspberry Pi Zero WH

     
  • ラズパイカメラ

     
  • デュアルモータードライバDRV8835

  • モバイルバッテリ
     
  • 広角レンズ

 

視野角向上のために、広角レンズを装着しています。

動作

早速動作をみてください。

すごい!ラズパイZeroでFPVラジコンができてしまいました!
ちょっとタイヤが5V(モバイルバッテリの電圧)入力だと動画のように早すぎるので、
以後はPWM入力して速度低減しました。

 

PC側

ブラウザ(chrome)

ゲームパッドF310をつないでブラウザでMomoからの映像を確認します。
http://[ラズパイのIP]:8080/html/test.html で監視できます。

TouchDesigner

ゲームパッドの検出、OSC送信のためにTouchDesignerを使用しました。

ジョイスティックの十字キーとLRトリガを検出してラズパイにOSC送信します。
ポートは10000としました。

 

参考

Raspberry Pi Zero W側

Momo

ラズパイカメラの映像をMomoのテストモードで送信します。

参考

Node-RED

PCからのOSC信号をUDPノード(ポート10000)でうけて、OSC信号受信のために以下のノードを追加し挿入しました。
 node-red-contrib-osc

十字キーでタイヤのモータを制御して前後進、左右旋回します。
モータにはPWM入力(デューティ30%)してスピードを抑えています。

ゲームパッドのLRトリガでショベルカーのアームを上下します。

 

おわりに

WebRTC Native Client Momoを用いてFPVラジコンが実現できました!

いつかはもっと遠隔で屋外で試してみたいですね。

 
 
 
 
 
この投稿をInstagramで見る
 
 
 
 
 
 
 
 
 

ラジコン!

HomeMadeGarbage(@homemadegarbage)がシェアした投稿 –

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください