拡張現実(AR)は、入力されたビデオやライブ映像の上にRoboDKステーションの要素を重ね合わせることができます。
この機能はRoboDKで画像処理エディタアドインを有効にすることで利用できます。
注意: 画像処理エディタアドインにアクセスするには、RoboDKに連絡してください。
ビデオこのビデオチュートリアルでは、Augmented Reality(拡張現実)をシミュレーションに統合するための手順をまとめています(https://youtu.be/Phj3_sQNSp0)。
ツール]→[アドインマネージャ] を開き、[画像処理エディタ] を有効にします。
画像処理エディタ(Image Processing Editor)アドインを有効にすると、AR(拡張現実)用にステーションを準備する必要があります。ARレンダリングを成功させるために必要なステップは、3つのセクションに要約できます:
1.フィデューシャルマーカーを選択して作成します。マーカーをRoboDKにインポートします。
2.RoboDKでシミュレーションカメラを作成します。
3.検出パイプラインを作成します。
拡張現実アドインでは、カメラのポーズと軌道を推定するためにマーカーを使用する必要があります。
RoboDKは4種類のOpenCVマーカーをサポートしています:Aruco、Chessboard、Charuco Diamond、Charucoboardです:
マーカーを選択する際に考慮すべき要素はたくさんあります。ステーションの大きさ、カメラの解像度、フレームレート、動き、照明、およびオクルージョンを考慮することが重要です。例えば、固定された非オクルージョンカメラを備えた大きなステーションでは、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° 回転する必要がありました。正しい位置の例については、下の画像を参照してください。
6.マーカーフレームをステーションに配置し、マーカーに対するステーションのオブジェクトの位置を合わせます。
ビデオフィードにステーションのアセットを正確にオーバーレイするには、シミュレーションカメラを作成する必要があります。このシミュレーションカメラは、フィデューシャルマーカーを使用して計算されたカメラのポーズと軌道を使用して、入力ビデオフィードと同じ角度、距離、軌道から RoboDK ステーションを記録します。
このシミュレートされたカメラの解像度は、マーカのスケーリングを正確に行うために入力ビデオと一致する必要があります。仮想カメラをステーションに追加する手順は以下のとおりです:
1.ツールバーの「画像処理エディタ」→「RoboDKカメラの追加」を選択してステーションにカメラを追加します。
2.カメラまたはカメラフィードを右クリックし、「カメラ設定」を選択します。
3.入力ビデオフィードの解像度に合うように、バーチャルカメラの設定を調整します。
4.シミュレートされたカメラが仮想Arucoマーカーを見ることができるように基準フレームを合わせます。
最良の結果を得るためには、物理的な入力映像は以下の点に注意して録画してください:
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レンダリングの作成方法と、望ましくないレンダリングを修正するためのトラブルシューティングについて説明します。
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(緑)に設定します。
6.RoboDKで、上下の背景オプションを同じ緑色に設定します:
ツール」→「オプション」→「ディスプレイ」→「背景色」→「0, 255, 0(緑)」に設定
7.Virtual Desktop から SteamVR を起動します。
8.RoboDK を起動し、VR モードを有効にします:➔ VRヘッドセットを接続します。