UnityでRealSense D435とD435iを1台のPCで動作させる方法をまとめました。
本記事ではPoinCloudDepthAndColorシーンで2台のRealSenseを動作させるまでを解説します。
確認環境
Windows 10
Unity 2017.4.15f1
RealSense SDK 2.0(build 2.18.0)
準備
- 2台のReal SenseをPCに接続する。
- RealSense SDK 2.0のIntel.RealSenseViewerをダウンロードして実行。
- RealSense Viewerで2台とも認識できていることを確認する。
※2台目は左上の「Add Source」から追加。
Stereo ModuleとRGB Cameraを有効にして映像が取得出来ていることを確認する。 - infoボタンを押して2台のReal Senseの Selial Numberを控えておく。
※後でUnityで設定します。
確認出来たらRealSense Viewerは終了しましょう。
Unity側設定
- Unityで新規プロジェクトを作成
- RealSense SDK 2.0のIntel.RealSense.unitypackageをダウンロードしてインポートする
- Assets>RealSenseSDK2.0>Scenes>Samples>PoinCloudDepthAndColorシーンを開いて実行。
1台のみ認識してPointCloudが表示されることを確認してください。
2台目のRealSenseを動作させる。
ここからが本題です。
HierarchyのRsDeviceを選択してInspectorを見ると「Required Serial Number」という項目があります。
ここにIntel.RealSenseViewerで調べたSerial Numberを入力すれば、RsDeviceの入力ソースとして使用するReal Senseを指定することが出来ます。
PointCloudの描画にはこのRsDevice(とその子供のPointCloud/Color)、RsProcessingPipeが関係しているようなので、これらを2つのデバイス分用意すれば良さそうです。
- RsProcessingPipeをRsDeviceの子に移動
※参照関係を維持したままコピーしたいので。
- 2台目用にRsDeviceをコピー
- RsDevice/RsDevice(1)のRequire Serial Numberにそれぞれ1台目、2台目のReal SenseのSerial Numberを入力
これで実行すれば2台のRealSense分のPointCloudが表示される。。。と思いきや、2台とも動作はしているようですがPointCloudは1台目のものしか表示されません。
PointCloudの描画に使われているMaterialも2台分用意しないといけないようです。 - 2台目用にPointCloudMatをコピー
Assets>RealSenseSDK2.0>Materials>PointCloudMatをコピーする。
- RsDevice(1) > Color > Rs Stream Texture RendererコンポーネントへPointCloudMat 1を設定する。
TextureBindingへPointCloudMat 1を設定。
Material.mainTextureを選択(Material 1をセットするとここがNo Functionにクリアされるので再設定が必要です) - RsDevice(1) > PointCloudへPointCloudMat 1を設定。
これで一通りの設定が完了しました。実行すると2台のReal Sense分のPointCloudが表示されると思います。
パフォーマンスについて
確認PCスペック
CPU:Core i7 4790K 4GHZ
GPU:GTX970M
UnityEditorで実行
2台同時接続でも1台の場合と比べパフォーマンスに大きな影響はなく、FPSは80台中ほどで推移。
遅延もほとんど感じられませんでした。
補足
Liveモードでの2台同時動作は出来ましたが、Recordモードでの2台同時記録はこの方法では出来ませんでした。
おわりに
本件はLooking GlassでRealSenseのPoint Cloudを表示するために試してみました。
1台ではどうしてもRealSenseからの死角部分が描画されないので、2台使って補完しようという意図です。
結果は以下のツイートの通り。
2台のRealSenseの位置合わせについても、後日記事にまとめたいと思います。
RealSense 2台で簡易リアルタイム3Dスキャナを作ってLooking Glassに表示してみました。
Real Sense1台で試した時より死角が少なくなりました。
カメラは両サイドにあるのに正面から目線が合うのがちょっと面白い。#LookingGlass #RealSense pic.twitter.com/O9AtNixEmF— afjk(エーエフ) (@afjk01) January 27, 2019