Augmented Reality

拡張現実

拡張現実(AR)は、入力されたビデオやライブ映像の上にRoboDKステーションの要素を重ね合わせることができます。

この機能はRoboDKで画像処理エディタアドインを有効にすることで利用できます。

注意: 画像処理エディタアドインにアクセスするには、RoboDKに連絡してください。

ビデオこのビデオチュートリアルでは、Augmented Reality(拡張現実)をシミュレーションに統合するための手順をまとめています(https://youtu.be/Phj3_sQNSp0)

ツール]→[アドインマネージャ] を開き、[画像処理エディタ] を有効にします。

Augmented Reality - 画像 1

画像処理エディタ(Image Processing Editor)アドインを有効にすると、AR(拡張現実)用にステーションを準備する必要があります。ARレンダリングを成功させるために必要なステップは、3つのセクションに要約できます:

1.フィデューシャルマーカーを選択して作成します。マーカーをRoboDKにインポートします。

2.RoboDKでシミュレーションカメラを作成します。

3.検出パイプラインを作成します。

フィデューシャルマーカーの選択と作成

拡張現実アドインでは、カメラのポーズと軌道を推定するためにマーカーを使用する必要があります。

RoboDKは4種類のOpenCVマーカーをサポートしています:Aruco、Chessboard、Charuco Diamond、Charucoboardです:

Augmented Reality - 画像 2Augmented Reality - 画像 3Augmented Reality - 画像 4Augmented Reality - 画像 5

マーカーを選択する際に考慮すべき要素はたくさんあります。ステーションの大きさ、カメラの解像度、フレームレート、動き、照明、およびオクルージョンを考慮することが重要です。例えば、固定された非オクルージョンカメラを備えた大きなステーションでは、Aruco マーカーを使用すると大きなメリットがあります。なぜなら、1 つのマーカー ID は、同じサイズの Charuco Diamond や Charucoboard マーカーにある 4 つ以上のID よりもはるかに遠くから検出でき、モーションブラーやオクルージョンがないため、常にマーカーを検出できることが保証されるからです。マーカーが時々部分的に隠れる場合は、カメラ位置を決定するためにすべての ID を検出する必要がないため、シャルコボードを選択する必要があります。以下はマーカーの種類を選択する際に役立つ表です:

アルコ

シャルコ・ダイヤモンド

シャルコボード

チェス盤

 

長所

- より簡単なセットアップ

- 最速のレンダリング時間

- 最もバランスの取れた選択肢

(精度/レンダリング時間)

- 部分咬合に強い

- 最も正確

- カメラキャリブレーション

 

短所

 

(マーカーは常にカメラに映っていなければなりません。)

 

- オクルード時の追従性低下

- 最も正確でないポーズ

- オクルード時の追従性低下

- セットアップが難しい

- 長いレンダリング時間

- ライブARが苦手

- 検出が困難

- オクルード不可

 

 

 

推奨アプリケーション

- 高FPS/低解像度ライブAR

- ロングビデオ

- 遮るもののないビデオ

- 固定カメラ

- 大型ステーション

- ライブARのトラッキング向上

- 高解像度ビデオ

- スローモーション

- マーカーの部分的なオクルージョンを含むビデオ

- 高いポーズ精度が要求される動画

- カメラキャリブレーション

(一般的なキャリブレーションで十分でない場合、チェスボードを使用してカスタムカメラのキャリブレーションファイルを生成できます)

適切なマーカーを選択すると、マーカーのID、サイズ、チェッカーボードのレイアウト、マスのサイズをカスタマイズできます

その後、マーカーを保存して印刷する必要があります。名前を付けて保存... "機能を使えば、マーカーを PNG 形式でコンピュータに保存することができます。マーカーを印刷するには、"クリップボードにコピー" オプションを使って画像を Word や GIMP のようなテキスト/画像エディタに素早くインポートし、サイズを変更して印刷することができます。

注意: できあがったマーカーのサイズを計算するには、ピクセルフィールドを mm に変換する必要があります。RoboDK におけるピクセルと mm の変換は 1px = 0.265mm です。

重要: 印刷されたマーカーと RoboDK にインポートされたバーチャルマーカーは同じサイズでなければなりません。物理的なマーカーを測定し、RoboDK のメジャーとスケールツールを使って、RoboDK のマーカーを物理的なマーカーと同じサイズに調整するのがよい方法です。

マーカーのインポート

RoboDK でマーカーをインポートして、ロボットや他のオブジェクトに対してマーカーの位置を示す必要があります。

マーカーを正しく配置するには、以下の手順に従ってください:

1.RoboDKステーションで、新しい参照フレームを作成します。

2.新しい参照フレームを右クリックし、"Add Item... "を選択します。

3.Fiducial Marker Generatorで作成したマーカーPNGを見つけて選択します。

4.仮想マーカーのスケールを実際のマーカーのサイズに合わせて調整します:

例Charuco Diamond のマーカーはデフォルトで 106.186mm x 106.186mm です。印刷するマーカーのサイズが 280mm x 280mm の場合、2.63688 → ( 280 / 106.186 ) のスケールファクターを適用する必要があります。これは、マーカーオブジェクトをダブルクリックし、[その他のオプション]→[スケールの適用]を選択することで実行できます。

5.マーカーの中心を参照フレームの原点に合わせ、Y軸をトップIDに向けます。

例マーカーを移動するには、マーカーオブジェクトをダブルクリックし、マーカーフレームに対してオブジェクトの位置を変更します。この例では、マーカーを X 軸上で 140mm 移動し、Y 軸上で 140mm 移動し、Z 軸上で 180° 回転する必要がありました。正しい位置の例については、下の画像を参照してください。

Augmented Reality - 画像 6

6.マーカーフレームをステーションに配置し、マーカーに対するステーションのオブジェクトの位置を合わせます。

模擬カメラのセットアップ

ビデオフィードにステーションのアセットを正確にオーバーレイするには、シミュレーションカメラを作成する必要があります。このシミュレーションカメラは、フィデューシャルマーカーを使用して計算されたカメラのポーズと軌道を使用して、入力ビデオフィードと同じ角度、距離、軌道から RoboDK ステーションを記録します。

このシミュレートされたカメラの解像度は、マーカのスケーリングを正確に行うために入力ビデオと一致する必要があります。仮想カメラをステーションに追加する手順は以下のとおりです:

1.ツールバーの「画像処理エディタ」→「RoboDKカメラの追加」を選択してステーションにカメラを追加します。

2.カメラまたはカメラフィードを右クリックし、「カメラ設定」を選択します。

3.入力ビデオフィードの解像度に合うように、バーチャルカメラの設定を調整します。

4.シミュレートされたカメラが仮想Arucoマーカーを見ることができるように基準フレームを合わせます。

Augmented Reality - 画像 7

最良の結果を得るためには、物理的な入力映像は以下の点に注意して録画してください:

1.マーカーは、明るい環境の平らな面に置いてください。最適な結果を得るためには、仮想ステーションのオブジェクトのサイズと距離を、マーカーと記録環境に応じて考慮してください。

2.一貫したカメラ設定(リアルカメラとシミュレートカメラの解像度が一致していること)。

3.読みやすいアルコID(カメラはIDを読みやすく保つ必要があります。避けるべきこと高速/不鮮明な映像、低いカメラ解像度、カメラからマーカーまでの距離が遠い)

4.ビデオは.mp4または.avi形式であることを確認してください。

カスタムカメラキャリブレーションファイルの作成

カスタムカメラキャリブレーションファイルを作成するには、チェス盤を印刷し、ビデオ撮影時と同じ設定で、チェス盤をカメラで10~20枚程度撮影します。

各画像にはチェス盤全体が含まれている必要があります。画像はチェス盤の向きと位置を画像ごとに変えてください。

画像を撮影したら、[画像処理エディタ] メニューから [ファイルからキャリブレーション...] を選択し、チェスボードのパラメータを入力します。次に画像を選択します。RoboDKがキャリブレーションファイルを作成します。

検出パイプラインの作成

RoboDKステーションをAR用に準備する最後のステップは、フィデューシャルマーカーを検出するパイプラインを作成することです。この検出パイプラインを使用して、実際のマーカーと仮想マーカーからポーズを計算し、入力ビデオフィードの上にシミュレーションされたRoboDKカメラのアセットをオーバーレイします。

以下の手順に従って、検出パイプラインを作成します:

1.ツールバーの「画像処理エディタ」→「画像処理エディタ」を開きます。

2.ビデオARの場合はシミュレーションしたRoboDKカメラを、カメラARの場合はカメラソースを選択します。

3.Detectors à Charuco Diamond Markers(検出器)]でマーカーを選択します。

4.物理的なマーカーの寸法に基づいて必要なパラメータを設定します。

5.Device]で[Calibration File]を設定します。Generic Calibrationの使用をお勧めします。

6.File à Save Project As...でパイプラインプロジェクトを保存します

ステーションを準備し、入力ビデオを録画し、処理パイプラインを保存すれば、ARビデオを作り始めることができます。次のセクションでは、ARビデオとライブARレンダリングの作成方法と、望ましくないレンダリングを修正するためのトラブルシューティングについて説明します。

ビデオフィードからARを作成

Video ARツールは、録画済みのビデオの上にARオーバーレイを作成するために使用します。デモンストレーションやプロモーションビデオに最適です。ビデオのレンダリング中にステーションを変更することができ、変更は即座に適用されます。

ビデオにARオーバーレイ効果を作成するには、以下の手順に従ってください:

1.ARビデオにレンダリングしたくないステーション内のオブジェクトはすべて非表示にしてください。

2.画像処理エディタ → AugmentedReality(ビデオ)を選択します。

3.複数のパイプラインが保存されている場合は、マーカーに適したパイプラインを選択します。

4.マーカーを含む参照フレームを選択します。

5.入力ビデオファイルを選択します。

6.出力ビデオの場所と名前を選択します。

7.レンダリングプロセスを監視し、望ましい品質を達成するために必要な変更を加えます。

8.ビデオのレンダリングが完了したら、ARカメラフレームを閉じることができます。

複合現実

RoboDK における MR (Mixed Reality) とは、RoboDK の背景を VR ヘッドセットからのライブパススルーフィードで置き換えることを指します。RoboDK VRでこれを行うと、ローカル環境、SteamVR、RoboDKを混在させることができます。

必要条件

Quest 2 / Quest 3 VRヘッドセットとVR対応PC

仮想デスクトップ + 仮想デスクトリーマー

SteamVR + メタクエストリンク

Mixed Realityを有効にするには、以下の手順に従ってください:

1.Quest 2/3の開発者モードを有効にしてください:

メタクエスト3で開発者モードを有効にするには?(vr-expert.com)

2.PC で Meta Quest Link を起動し、指示に従ってヘッドセットを PC にリンクします:

メタクエストリンク、エアリンクの設定・接続|メタストア

3.仮想デスクトップを使ってPCに接続

4.Virtual Desktopアプリケーションで、VRパススルーAPIを有効にします。

5.VR パススルーの設定を変更します:パススルーのマスクの色を0、255、0(緑)に設定します。

Augmented Reality - 画像 8

6.RoboDKで、上下の背景オプションを同じ緑色に設定します:

ツール」→「オプション」→「ディスプレイ」→「背景色」→「0, 255, 0(緑)」に設定

Augmented Reality - 画像 9

7.Virtual Desktop から SteamVR を起動します。

8.RoboDK を起動し、VR モードを有効にします:➔ VRヘッドセットを接続します。