Mixed RealityとAzure Digital Twinsを組合わせてデジタルツインを可視化するためのTips

1.7K Views

February 07, 22

スライド概要

Microsoft Developer Night(https://msdevjp.connpass.com/event/233822/)での登壇資料。
Mixed Realityとも関連が深いAzure Digital Twinsの関する資料。MS LearnやUnreal Engine用のプラグインでAzure Digital Twinsの学習を進めるにあたって必要な基本的な技術の話を共有。

profile-image

ICT業界でソフトウェアエンジニア/アプリケーションアーキテクトを担当。 社内ではXR関連技術に関する啓もう活動や技術支援に従事。 業務の傍ら、XR(特にMixed Reality領域)についての開発技術の調査、開発などを行っています。 また、「大阪駆動開発」コミュニティ所属しており、日々の調査で得た知見はコミュニティを通して情報発信を行っています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Mixed RealityとAzure Digital Twinsを組合わせて デジタルツインを可視化するためのTips 2022/02 Microsoft Developer Night takabrz1 大阪駆動開発 Takahiro Miyaura

2.

Microsoft MVP for Windows Development 2018-2022 某会社でSE(アプリケーション領域のアーキテクト的なお仕事なはず)= XRは趣味です(貢献領域:Mixed Reality) 宮浦 恭弘 (Miyaura Takahiro) ◼ 大阪駆動開発(とHolomagicians)コミュニティに生息 ◼ HoloLens日本販売してからxR系技術に取組む ◼ 普段はよくMixed Reality Toolkitに関する調査している ✓ リリース機能調べたり・・・ ✓ 面白い機能使ってみたり・・・ ✓ 新しい実験してフィードバックしたり・・・ 最近はこちらに Come Back気味 と思ったらDigital Twins ◼ 新しい技術や、MRに使えそうな技術を調べる 技術Tips : https://qiita.com/miyaura @takabrz1 ※よかったらこれを機にお知り合いになってください

3.

実はMixed Realityが薄めです。 ほとんどAzure Digital Twinsネタになっちゃいました 2022/02/03 Copyright © 2022 Takahiro Miyaura 3

4.

なぜかというと バックエンドの方の話に触れた方がいいと思ったら時間が足りなくなった。。。 便利なMS Learnやサンプルがあるので必須参照です! https://docs.microsoft.com/ja-jp/learn/paths/build-mixed-reality-azure-digital-twins-unity/ HoloLens × Azure Digital Twins × Unityなコンテンツを試しながら 各サービスについての機能や実装を確認できる。 2022/02/03 Copyright © 2022 Takahiro Miyaura 4

5.

なぜかというと バックエンドの方の話に触れた方がいいと思ったら時間が足りなくなった。。。 便利なMS Learnやサンプルがあるので必須参照です! https://github.com/Azure-Samples/azure-digital-twins-unreal-integration/ Azure Digital Twins × Unrealなコンテンツを試しながら 各サービスについての機能や実装を確認できる。 2022/02/03 Copyright © 2022 Takahiro Miyaura 5

6.

本日のお題 2022/02/03 Copyright © 2022 Takahiro Miyaura 6

7.

本日のお題 ◼ Mixed Realityでも使うAzure Digital Twinsへの理解 ✓【基礎編】 ✓ Azure Digital Twins(ADT)について ✓ Digital Twins Definition Language(DTDL)とオントロジー ✓【実践?編】 ✓ サンプルなどからみる鉄板(?)アーキテクチャ ✓ Unreal Engine向けのADT連携プラグインの解説 ✓Microsoft Igniteで紹介されていた ✓とてもよくできている 2022/02/03 Copyright © 2022 Takahiro Miyaura 7

8.

【基礎編】 Azure Digital Twins(ADT)について 2022/02/03 Copyright © 2022 Takahiro Miyaura 8

9.

【基礎編】 Azure Digital Twins(ADT)について 現実環境のデジタルモデルに基づいたデジタルツインを構築できるPaaS ◼ Json形式のデジタルモデル管理 ✓ デジタルモデルをDigital Twins Definition Language(DTDL)で定義 ✓ モデルに対するインスタンス(=デジタルツイン)を管理 ✓ クエリ言語によるインスタンスの状態更新 ◼ API経由で現実環境情報を入力 ✓ 例:Azure IoT Hubなど ◼ デジタルツインを別にサービスに出力 https://docs.microsoft.com/ja-jp/azure/digital-twins/overview ✓ 例:Time series Insights等の分析サービス 現実環境をデジタルモデルで管理運用するための中心となるサービス 2022/02/03 Copyright © 2022 Takahiro Miyaura 9

10.

【基礎編】 Azure Digital Twins(ADT)について SDKやAPI、他Azureサービスを利用して管理 ◼ デジタルツインの作り方 1. Azure Digital Twinsサービスを作成 2. Digital Twins Definition Language(DTDL)でモデルを記述 3. モデルに対するデジタルツインを作成する 1. モデルに基づいたインスタンスの作成 2. インスタンス同士のリレーションの定義 4. 現実環境の情報を作成したデジタルツインに入力 5. デジタルツインの情報を活用する 便利なツール ◼ https://docs.microsoft.com/ja-jp/azure/digital-twins/overview Digital Twins Explorer ✓ Azure Digital Twins内のモデルや、デジタルツインの情報の可視化ツール 現実環境のモデルをどう構築するかがキモ 最近はいくつかもモデル定義が標準化されている 2022/02/03 Copyright © 2022 Takahiro Miyaura 10

11.

【基礎編】 Digital Twins Definition Language(DTDL)と オントロジー 2022/02/03 Copyright © 2022 Takahiro Miyaura 11

12.

【基礎編】 Digital Twins Definition Language(DTDL) { Digital Twins Definition Language(DTDL) ◼ 現実環境をデジタル環境に定義する言語 ◼ Json形式で定義 ◼ PropertyとTelemetryがある "@id": "dtmi:com:adt:dtsample:home;1", "@type": "Interface", "@context": "dtmi:dtdl:context;2", "displayName": "Home", "contents": [ { "@type": "Property", "name": "id", "schema": "string" }, { "@type": "Relationship", "@id": "dtmi:com:adt:dtsample:home:rel_has_floors;1", "name": "rel_has_floors", "displayName": "Home has floors", "target": "dtmi:com:adt:dtsample:floor;1" } ] ◼ 右の例は・・・ ✓ Homeというデジタルツイン ✓ String型のidプロパティを持つ ✓ Floorとの接続関係がある プロパティを使った例 プロパティ=読書可能な情報 } 2022/02/03 Copyright © 2022 Takahiro Miyaura 12

13.

【基礎編】 Digital Twins Definition Language(DTDL) Digital Twins Definition Language(DTDL) ◼ 現実環境をデジタル環境に定義する言語 ◼ Json形式で定義 ◼ PropertyとTelemetryがある ◼ 右の例は・・・ ✓ Sensorというデジタルツイン ✓ double型のtemperatureテレメトリを持つ テレメトリを使った例 テレメトリ=存続期間の短いデータ 2022/02/03 { "@id": "dtmi:com:adt:dtsample:Sensor;1", "@type": "Interface", "@context": "dtmi:dtdl:context;2", "displayName": “Sensor", "contents": [ { "@type": Telemetry", "name": “temperature", "schema": “double" } ] } Copyright © 2022 Takahiro Miyaura 13

14.

【基礎編】 Digital Twins Definition Language(DTDL) 管理のためのPropertyと、アクションのためのTelemetry Room プロパティ State ロジック 18 < x < 20=適温 Sensor 温度:19 センサー 状態:適温 テレメトリ Temperature アクション ◼ Sensor:一定時間でTemperatureが取得されるツインモデル ◼ Room:部屋の温度状態がわかるツインモデル 用途を考えて・・・ モデル定義の詳細は公式ドキュメントへ https://docs.microsoft.com/ja-jp/azure/digital-twins/concepts-models 2022/02/03 Copyright © 2022 Takahiro Miyaura 14

15.

【基礎編】 Azure Digital Twins(ADT)について 現実環境のデジタルモデルに基づいたデジタルツインを構築できるPaaS ◼ Json形式のデジタルモデル管理 ✓ デジタルモデルをDigital Twins Definition Language(DTDL)で定義 ✓ ✓ ✓ ◼ 現実環境をデジタル環境に定義する言語 Json形式で定義 PropertyとTelemetryがある モデルに対するインスタンス(=デジタルツイン)を管理 ✓ クエリ言語によるインスタンスの状態更新 https://docs.microsoft.com/ja-jp/azure/digital-twins/overview ◼ API,SDKによる情報の入出力 現実環境のモデルをどう構築するかがキモ 2022/02/03 Copyright © 2022 Takahiro Miyaura 15

16.

とはいえ、 ある程度は同じようなモデルにならないの? 2022/02/03 Copyright © 2022 Takahiro Miyaura 16

17.

【基礎編】 Digital Twins Definition Language(DTDL)とオントロジー 幾つか標準化されたモデルがあります Unrealのサンプルはこ れが基本になっている RealEstateCore スマート ビル オントロジ https://docs.microsoft.com/ja-jp/azure/digital-twins/concepts-ontologies-adopt#realestatecore-smart-building-ontology https://github.com/Azure/opendigitaltwins-building モデル定義 2022/02/03 デジタルツイン表現(例) Copyright © 2022 Takahiro Miyaura 17

18.

【基礎編】 Digital Twins Definition Language(DTDL)とオントロジー 幾つか標準化されたモデルがあります スマートシティのオントロジ https://docs.microsoft.com/ja-jp/azure/digital-twins/concepts-ontologies-adopt#smart-cities-ontology https://github.com/Azure/opendigitaltwins-smartcities 2022/02/03 Copyright © 2022 Takahiro Miyaura 18

19.

【基礎編】 Digital Twins Definition Language(DTDL)とオントロジー 幾つか標準化されたモデルがあります エネルギーグリッドのオントロジ https://docs.microsoft.com/ja-jp/azure/digital-twins/concepts-ontologies-adopt#energy-grid-ontology https://github.com/Azure/opendigitaltwins-energygrid/ 2022/02/03 Copyright © 2022 Takahiro Miyaura 19

20.

【実践?編】 サンプルなどからみる鉄板(?)アーキテクチャ 2022/02/03 Copyright © 2022 Takahiro Miyaura 20

21.

【実践?編】 Username: Student Password: Pa55w.rd 鉄板(?)アーキテクチャ デジタルツイン可視化のための情報はSignalRの同報通信 Unrealのサンプル 情報の更新はSignalR MS Learnの場合 やっぱり更新はSignalR Architecture Centerの例 ここもSignalR 可視化の手段を柔軟に選択できる 複数の可視化手段にも対応可能 2022/02/03 Copyright © 2022 Takahiro Miyaura 21

22.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 ◼ ◼ ◼ ◼ 2022/02/03 概要 アーキテクチャ Unreal上の定義とADT上の定義 操作風景 Copyright © 2022 Takahiro Miyaura 22

23.

概要 2022/02/03 Copyright © 2022 Takahiro Miyaura 23

24.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 Igniteで異彩を放つセションだった。 https://myignite.microsoft.com/sessions/77f30ebe-4201-4863-8f04-b9c201c9dd69 !? ◼ セションの内容 ✓ Pixel StreamingのAzure対応 ✓ ADTLink Pluginの紹介 2022/02/03 Copyright © 2022 Takahiro Miyaura 24

25.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 Unreal Engineにはすごすごプラグインが存在する ◼ UnrealだけでADT完結 ◼ DTDLを定義したコンポーネントの作成 ◼ ADTにモデル登録 ◼ モデルからデジタルツインの作成 ◼ 各デジタルツインをオブジェクトとして追加 ◼ オブジェクト階層関係でリレーション定義 ◼ SignalRによるADTからのデータ受信 ✓ 変更されたツインのみに情報が転送される DTDLの定義すらノーコードで オブジェクトの紐づけ管理が できるうえにデジタルツインできる 2022/02/03 Copyright © 2022 Takahiro Miyaura 25

26.

アーキテクチャ 2022/02/03 Copyright © 2022 Takahiro Miyaura 26

27.

実践?編】 Unreal Engine向けのADT連携プラグインの解説 IoTセンサーから情報もらって整理して可視化 ADTLink Plugin Unreal Editor 上から Azure Digital Twinsのモデルと写像を作成 センサーデバイス →Azure Digital Twins Azure Digital Twi Azure Digital Twins →アプリケーション 2022/02/03 Copyright © 2022 Takahiro Miyaura 27

28.

Unreal上の定義とDTDL上の定義 2022/02/03 Copyright © 2022 Takahiro Miyaura 28

29.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 Unreal Engineにはすごすごプラグインが存在する ◼ UnrealだけでADT完結 ◼ DTDLを定義したコンポーネントの作成 ◼ ADTにモデル登録 ◼ モデルからデジタルツインの作成 ◼ 各デジタルツインをオブジェクトとして追加 ◼ オブジェクト階層関係でリレーション定義 ◼ SignalRによるADTからのデータ受信 ✓ 変更されたツインのみに情報が転送される DTDLの定義すらノーコードで オブジェクトの紐づけ管理が できるうえにデジタルツインできる 2022/02/03 Copyright © 2022 Takahiro Miyaura 29

30.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 部屋を表すUnreal上の定義とADT上の定義 2022/02/03 Copyright © 2022 Takahiro Miyaura 30

31.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 部屋を表すモデルのUnreal上の定義とADT上の定義 2022/02/03 Copyright © 2022 Takahiro Miyaura 31

32.

操作風景 2022/02/03 Copyright © 2022 Takahiro Miyaura 32

33.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 Unreal Engineにはすごすごプラグインが存在する ◼ UnrealだけでADT完結 ◼ DTDLを定義したコンポーネントの作成 ◼ ADTにモデル登録 ◼ モデルからデジタルツインの作成 ◼ 各デジタルツインをオブジェクトとして追加 ◼ オブジェクト階層関係でリレーション定義 ◼ SignalRによるADTからのデータ受信 ✓ 変更されたツインのみに情報が転送される DTDLの定義すらノーコードで オブジェクトの紐づけ管理が できるうえにデジタルツインできる 2022/02/03 Copyright © 2022 Takahiro Miyaura 33

34.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 DTDL定義の生成を登録 ADT設定用のウィジェットを利用 2022/02/03 Copyright © 2022 Takahiro Miyaura 34

35.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 レイアウトを整える 登録したモデルでデジタルツインを構築 ◼ ウィジェットで作成すると関連するオブジェクトが自動的に生成される 作ったモデル情報から デジタルツインを構築 2022/02/03 各デジタルツインは登録されるが関係性は不明 Copyright © 2022 Takahiro Miyaura 35

36.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 レイアウトを整える 各デジタルツインに対応するオブジェクトが追加 ◼ 実際の空間に合わせて配置を調整 コンテンツ上に展開された各デジタルツインを 表すオブジェクトの調整 2022/02/03 Copyright © 2022 Takahiro Miyaura 36

37.

【実践?編】 Unreal Engine向けのADT連携プラグインの解説 レイアウトを整える 各デジタルツインに対応するオブジェクトが追加 ◼ 実際の空間に合わせて配置を調整 ADTLinkプラグインでリレーションの設定 部屋内に存在するデジタルツインを選別可能 2022/02/03 リレーション情報が追加される Copyright © 2022 Takahiro Miyaura 37

38.

まとめ 2022/02/03 Copyright © 2022 Takahiro Miyaura 38

39.

まとめ サンプルで学ぶのに必要な情報を整理してみました ◼ Mixed Realityでも使うAzure Digital Twinsへの理解 ✓【基礎編】 ✓ Azure Digital Twins(ADT)について ✓ Digital Twins Definition Language(DTDL)とオントロジー ✓【実践?編】 ✓ 鉄板(?)アーキテクチャ ✓ Unreal Engine向けのADT連携プラグインの解説 ✓ Microsoft Igniteで紹介されていた Microsoft Learnやサンプル前に確認すると仕組みが理解しやすいかも? 色々チャレンジしてみてね! 2022/02/03 Copyright © 2022 Takahiro Miyaura 39

40.

大阪駆動開発 関西を中心に、IT系のおもしろそうなことを 楽しんでやるコミュニティ

41.

参考 詳しくは・・・ Microsoft 公式関連 ◼ ラーニングパス ✓ 「Azure Digital Twins と Unity を使用して Mixed Reality デジタル ツインを構築する」 https://docs.microsoft.com/ja-jp/learn/paths/build-mixed-reality-azure-digital-twinsunity/?WT.mc_id=MR-MVP-5003104 ◼ Microsoft Build 2021 関連セション ✓ Connect IoT data to HoloLens 2 with Azure Digital Twins and Unity https://mybuild.microsoft.com/sessions/815a692f-398b-4772-ac18-c021f5116757 (ラーニングパスの解説も兼ねているのでお勧め ) ◼ Microsoft Ignite 2021 関連セション ✓ Scaling Unreal Engine in Azure with Pixel Streaming and Integrating Azure Digital Twins https://myignite.microsoft.com/sessions/77f30ebe-4201-4863-8f04-b9c201c9dd69 2022/02/03 Copyright © 2022 Takahiro Miyaura 41

42.

参考 詳しくは・・・ Microsoft 公式関連 ◼ Azure Digital Twinsとは ✓ https://docs.microsoft.com/ja-jp/azure/digital-twins/overview ◼ Azure Architecture(Digital Twins関連) ✓ https://docs.microsoft.com/jajp/azure/architecture/browse/?expanded=azure&products=azure-digital-twins 2022/02/03 Copyright © 2022 Takahiro Miyaura 42

43.

参考 詳しくは・・・ Qiita記事 ◼「Ureal Engineで利用できるAzure Digital Twins用Pluginの解説 - サンプル動かす編」 ✓https://qiita.com/miyaura/items/77451f421f9bfc2d7699 ◼Microsoft Build 2021で話があったMixed Realityに絡むDigital Twinsについての技術要約 ✓https://qiita.com/miyaura/items/dcd76fc796d8974fd099 ◼Microsoft Learn 「Azure Digital Twins と Unity を使用して Mixed Reality デジタルツインを構築する」解説(Azure IoT Hub編) ✓https://qiita.com/miyaura/items/14812caf737afd48a460 ◼Microsoft Learn 「Azure Digital Twins と Unity を使用して Mixed Reality デジタルツインを構築する」解説(Azure Digital Twins編) ✓https://qiita.com/miyaura/items/dc78983d7094038e9f29 ◼ラーニングパス「Azure Digital Twins と Unity を使用して Mixed Reality デジタル ツインを構築する」にAzure Mapsをアドオンしてみよう ✓https://qiita.com/miyaura/items/dde60667a8e72fa14377 2022/02/03 Copyright © 2022 Takahiro Miyaura 43

44.

参考 詳しくは・・・ Github ◼Unreal Engine and Azure Digital Twins integration demo ✓https://github.com/Azure-Samples/azure-digital-twins-unreal-integration ◼Digital Twins Definition Language (DTDL) V2 ✓https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/dtdlv2.md ◼DTDLオントロジ ✓Digital Twins Definition Language-based RealEstateCore ontology for smart buildings ✓https://github.com/Azure/opendigitaltwins-building ✓Digital Twins Definition Language (DTDL) ontology for Smart Cities ✓https://github.com/Azure/opendigitaltwins-smartcities ✓Digital Twins Definition Language (DTDL) ontology for Energy Grid ✓https://github.com/Azure/opendigitaltwins-energygrid/ 2022/02/03 Copyright © 2022 Takahiro Miyaura 44