TinyViewPlus As Sensors (tvpas)
1. 概要
tvpas は、FPVドローンレースのラップタイム計測ソフトウェアである TinyViewPlus を元に、レース管理ソフトウェア FPVTrackside と連携させるためのソフトウェアです。
実際の連携では、tvpas は tvpas-relay-server を介して FPVTrackside と連携します。tvpas-relay-server は、あたかも Rotorhazard のように振る舞い、FPVTrackside と必要な通信を行います。
この手順を実行することで、TinyViewPlus で実現した手軽に利用できるArUcoマーカーによるラップ計測を、FPVTrackside で利用することができます。
2. 機器構成
tvpas と FPVTrackside を組み合わせて運用する場合の機器構成について解説します。本格的に導入する際に、どのような機器が別途必要になるかの参考にしてください。
2.1. 構成案1-A: Eachine Skydroid FUAV等のUSB受信機を利用する場合
-
要件:
- 1台のPCで全てを実行させるためには、ある程度処理能力の高いPCが必要です。
-
tvpasの出力映像をHDMI->UVCデバイスを使用して、仮想カメラとしてFPVTracksideに取り込むため、PCの2画面目がtvpasに占有されます(追加のモニタもほぼ必須です)。 - レースでの同時飛行台数 + 1台のUSBビデオキャプチャデバイス(UVC)を接続する必要があります。Windows PCでは、USB-HUBを利用してUVCデバイスの接続を増やすことはできない点に注意してください。
2.2. 構成案1-B: HDZero EventVRXを使用する構成
HDZero EventVRX は最大4つのビデオフィードを同時に受信し、個別のHDMIに出力します。また、最大4つの映像を1つの画面に合成して出力することも可能です。この合成された映像をUVCに変換してPCに入力します。
-
利点:
- PCに接続するUVCデバイスが1台で済むため、USBポートの制約を軽減できます。
-
HDZero EventVRX は、アナログビデオ信号のインターレースを正確に処理するため、適切な60FPSの動画を
tvpasに渡すことができ、マーカー検出率の向上が期待できます。
-
欠点:
- HDZero EventVRX は高価です。
2.3. 構成案1-C: HDZero EventVRXを使用し、外付けモニタなし
-
利点:
-
tvpasの映像をFPVTracksideで利用しないため、tvpasを全画面で表示する必要がありません。
-
-
欠点:
-
FPVTracksideには受信機の映像が直接映るため、マーカー検出の黄色枠や赤枠は表示されません。
-
2.4. 構成案1-D: OBSにプラグインを導入し、1つのUVC入力から分配
最後に紹介するのは、OBS を利用してHDMI->UVCデバイスを1台で済ます方法です。機器の接続は最もシンプルですが、ソフトウェアの負荷は高めになります。
図では受信機の映像を2つに分配する説明ですが、tvpas にUVCの映像を取り込み、OBSで tvpas をキャプチャ -> 仮想カメラで出力 -> FPVTrackside に入力、という方法も考えられます。
-
利点:
- 必要な機材が最も少なくて済みます。
-
欠点:
- 低スペックPCでは、動作が重くなる可能性があります。
- OBSの設定が必要です。
2.5. 構成案2: PC2台構成
これは現在の私の構成でもあります。
-
利点:
- 手持ちの機材でまず1台のPCで試し、動作が重い場合は中古PCをもう1台購入することで、安価にシステムを構築できます。
-
欠点:
- PC2台の持ち運びは不便です。
3. ソフトウェアの導入
実行に必要なファイルはこちらから TinyViewPlusAsSensors1.0.1beta.zip をダウンロードします。ダウンロード後、適当な場所に解凍してください。
3.1. tvpas-relay-server の設定
次に、tvpas-relay-server を動作させるために必要な Node.js をインストールします。公式サイトからダウンロードしてインストールしてください(Windowsインストーラー形式を推奨)。
tvpas-relay-server のフォルダを開き cmd と入力し、enterキーを押します。
npm install と入力し、Enterキーを押します。
これでインストールは完了です。
relay.bat をクリックして tvpas-relay-server を起動します。
tvpas が起動していないため、「tvpasのハートビート待ち」というメッセージが表示されます。サーバーはこのまま起動しておきます。
3.2. tvpas の設定
受信機が ROTG FUAV Skydroid などのUSB接続タイプの場合は、特に設定は必要ありません。
受信機映像を4-in-1で tvpas に入力する場合は、UVCの設定が必要です。
data/camera/fpv.xml の書き換えが必要になります。example フォルダを開くと、
このように、機材に応じた設定ファイルが格納されています。例えば、HDZERO Monitorで4-in-1した映像なら、HDZero 720p フォルダの中にある fpv.xml を、先ほどの data/camera/fpv.xml に上書きします。(ENENT VRXやHAWKEYEならHAWKEYEフォルダ)
上書き後、fpv.xml をメモ帳で開き、
<device_name> タグの部分を、デバイスマネージャーで確認したUVCデバイス名に書き換えて保存してください。
以上の作業を終了後、TinyViewPlusAsSensors.exe を実行し、カメラ選択画面でスペースキーを押すと、マーカーの検出が始まります。
tvpas-relay-server の画面も更新され、tvpas からのheartbeatを受け取り、リレー機能が有効になり、FPVTrackside からの接続を待っていることが表示されるはずです。
tvpas を2画面目でフルスクリーン表示(Fキーを押す)にし、その2画面目をUVCデバイスに接続し、PCのUSBポートに挿します(これは FPVTrackside でのFPV画面キャプチャ用です)。
4. FPVTrackside の設定
FPVTrackside の初回起動時は、以下のような画面になります。
テストには、Video Settings, Channel Settings, Timing Settings の3つの設定が必要です。
4.1. Channel Settings
起動画面で Channel Settings を押します。
Add を押して、E1, Fatshark1, Fatshark4 を追加します。3つとも追加したら OK を押して終了します。
4.2. Video Settings
起動画面で Video Settings を押します。
この画面で Add を押します。
UVCデバイスの一覧が表示されるので、tvpas の画面をキャプチャしているUVCデバイスを選択します。
(私の場合、Hagibis が tvpas の画面をキャプチャしているUVCデバイス、C8 USB3.0 Video が受信機の映像を tvpas に取り込むためのUVCデバイスです。)
初期状態では、全画面が E1 になっているので、この画面を4分割していきます。
4分割画像の上で右クリックし、Crop >> Crop 4:3 を選びます。
左右の余白がカットされました。
再度画像の上で右クリックし、Split >> Split 2x2 を選びます。
画面が4分割され、それぞれの分割部分にチャンネルが割り当てられました。
(画像ではチェックされていませんが、下から4つ目の Record Video Replays にチェックを入れると、レース終了後にリプレイができて便利です。)
OK を押して Video Settings を終了します。
4.3. Timing Settings
起動画面で Timing Settings を押します。
Add を押し、RotorHazard 4.0+ を選択します。
-
Role:
Primary -
Hostname:
tvpas-relay-serverが動作するPCのIPアドレスになります。-
FPVTracksideと同一のPCで動作している場合:localhost - 別PCで動作している場合: そのPCのIPv4アドレス (例:
192.168.1.10)
-
-
Port:
5000 - Sync Pilot Names: チェックを外します。
以上を確認して OK を押します。
5. 総合的なテスト
起動画面で Continue を押します。
イベント選択画面にて、「Language:」と表示されているところをクリックすると、日本語が選べます。
開く を押すと、次に進みます。
5.1. パイロットの登録
画面左の赤枠の所で右クリックすると、パイロットを登録できます。
3人のパイロットを追加しました。
パイロット名入力時にIMEが使えないため、漢字やひらがな等の名前を登録したい場合は、メモ帳などに入力したテキストをコピーし、Ctrl+V で貼り付けます。
5.2. ラウンドの作成
画面右上の ラウンド を押します。
赤枠内で右クリックし、「レースを追加」を選択します。
パイロットをクリックしてドラッグすると、レースにパイロットが追加されます。
パイロットが登録された状態で、赤枠のあたりをクリックすると、レース画面に遷移します。
5.3. レースの開始
画面右下の開始を押すと、レースが開始されます。ラップが正常に記録されるか、確認してみてください。

































