Dropbox

EACHINE ROTG01 PROで受信したVTXからの映像4台分を一つのHDMI画面にまとめてみようという試みです。つまりはHawkeye Four EyesあるいはHDZero Event VRXの真似をしようということです。

[ 目的 ]
TinyViewPlusNGFPVTrackSideの入力として使用するためです。

TinyViewPlusのMac版ではROTG01 PROを4台接続することは出来ますが、どの受信機が何番目に出てくるかが全く制御できません。レースの現場ではとても使用できるものではありませんでした。Four EyesやEvent VRXで一つの映像にまとめたものをTinyViewPlusNGでそれを分割することがMacにおける唯一の解です。
– FPVTrackSideでは今の所、複数のROTG01 PROを接続しても一つの画像しか得られません。そのため画面分割を使用するしかありません。Windows版は複数ROTG01 PROが使用できるように改善される見込みです。
– そもそもPCのUSBポートが少なくて4台もROTG01 PROを接続できない。そのためFour Eyesを使えるようにということでTinyViewPlus-NGが出来たそうです。

[ ハードウェア ]
– ROTG01 PROという受信機でUVC (USB Video Class)を持ったものを4台。他の似たような受信機も使用できると思います。
– Raspberry Pi4BとRaspberry Pi5でテストしました。 (メモリーはおそらく小さめでも大丈夫です)
– microHDMIケーブル。Raspberry PiのHDMIコネクターはとても小さいやつです。
– HDMI to USB変換器、私が使っているのは「GUERMOK USB 3.0 HDMI to USB C オーディオ キャプチャ カード」というやつです。似たようなものでも性能的に問題がある製品もあるようなので要注意です。

USB-AにROOTG01 PROを接続します。システムが立ち上がってからUSBを挿入していくと、その順番でデバイス番号が割り当てられます。電源投入前に全て接続しておけば、USBコネクターとデバイス番号がいつも同じ関係に出来ます。HDMIコネクターは二つあるどちらでも稼働できるようにシステムを構成しています。
電源はRaspberry Pi用に販売している容量の少し大きいものを使用しています。
必要性はよくわかりませんがRaspberry Piには冷却ファンを付けています。この構成で12時間以上連続稼働可能でした。

[ ソフトウェア ]
githubでraspi4eyesを公開しました。導入手順も詳しく書いてますので、実際の導入にあたってはgithubをご覧ください。導入にあたっていくつかの選択肢があります。それについて書いておきます。

< Raspberry Pi Desktop上で動かす >
README.mdに書いてある手順に従ってください。

< 軽量化システムを構築する >
Rasoverry Piのシステムは容量小さめのMicroSDカードに収まります。専用のシステムを構築するのが良いと思います。Desktopを使わない「Cageを使用したヘッドレス環境での起動手順」というのを用意しています。私はRaspiberry Pi4BにOSはRaspberry Pi OS Lite (64-bit)を新規に導入して専用システムを構築しました。
またOSの起動時に自動的にraspi4eyesが立ち上げる設定についても、この手順書に書いてあります。
軽量化システムのメモリーの様子です。

               total        used        free      shared  buff/cache   available
Mem:         3886904      399860     3189784       65496      424224     3487044
Swap:              0           0           0

< ターンキーシステム化 >
いきなり電源オフしても壊れないようにします。使用後にいちいちログインしてシャットダウンするのはあまりカッコの良いものではありません。使用する時は、必要な接続を行い電源を入れるだけ。使用後は電源をいきなり止めて仕舞えば良いという構成にすれば使い勝手がとてもよくなります。最近のRaspberry OSではとても簡単に実現できます。「ターンキーシステム化のための Overlay File System 設定手順

< noise_threshold >
raspi4eyesの機能の一つに砂嵐画面を検知して黒い画面に切り替えるというものがあります。これはHDZero Event VRXの同様の機能を真似してみようと実装しました。それを制御するための項目がconfig.jsonの中の”noise_threshold”です。規定値として0.4が入っています。受信機の特性や環境によっては砂嵐が時々見えてしまうかも知れません。その時はこの数値を少し増やしてみてください。私はある一つの受信機のために数値を0.42に変更しました。おそらく0.5くらいまでは増やしても大丈夫そうです。


< adjust.json >
砂嵐画面を出さないと困ることがひとつあります。それはROTG01 PROの周波数調整を行う時です。微調整はドローンからの画像が出ているときにすれば良いですが、最初に設定する時は砂嵐画面を出しておきたいです。そのためには先の”noise_threshold”を0にすれば良いです。これを0にしたconfigファイルadjust.jsonを用意しています。これをconfig.jsonの代わりに使用すれば良いです。DISPLAY=:0 .venv/bin/python raspi4eyes.py --config adjust.jsonあるいはcage -s -- .venv/bin/python raspi4eyes.py --config adjust.jsonのように使用します。

[ TinyViewPlusNG ]
fpv.xmlをこんなふうに設定しました。

<camera>
    <name>USB3 Video</name>
    <camnum>4</camnum>
    <description>4:3</description>
    <grab>
        <width>1920</width>
        <height>1080</height>
    </grab>
    <crop>
        <x>0</x>
        <y>0</y>
        <width>1920</width>
        <height>1080</height>
    </crop>
    <draw>
        <aspectRatio>4:3</aspectRatio>
    </draw>
    <fourCamHorizontal>0</fourCamHorizontal>
</camera>

[ FPVTrackSide ]
最初、4:3の解像度を選ぶべきと思っていましたが、どれが最適かよくわかっていないです。いろいろ試してみて下さい。レートは60Hzが良いと思います。
Video Inputの設定でChannel Splitsを2 x 2にすると画面を4分割してくれます。

Trackback

no comment untill now

Sorry, comments closed.