Open9

Azure Digital Twinsについてのメモ

Junpei Tsuchida(07JP27)Junpei Tsuchida(07JP27)

ADTソリューションの構築流れ

  1. ADTのデプロイ
  2. モデルの定義(DTDL)&アップロード
  3. モデルからツインのインスタンス化
  4. ツイン間でリレーションを作成してツイングラフを形成
  5. ADT(ツイングラフ)へデータインジェスト
  6. クライアントアプリの作成とADTへの接続
  7. ADTから外部サービスへのダウンストリーム構成(optional)
  8. 履歴化(optional)
Junpei Tsuchida(07JP27)Junpei Tsuchida(07JP27)

ツイングラフの定義

用語の定義

  • モデル:プロパティなどのデータシェイプを定義。テンプレートのようなもの。オブジェクト指向プログラミングで言うクラス
  • (デジタル)ツイン:モデルから実在のデバイスのツインとして具現化したもの。オブジェクト指向プログラミングで言うインスタンス
  • ツイングラフ:リレーションシップで接続されたツインの集合体

モデルの定義は Digital Twin Definition Language (DTDL) で行う
https://learn.microsoft.com/ja-jp/azure/digital-twins/concepts-models

https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/dtdlv2.md

Junpei Tsuchida(07JP27)Junpei Tsuchida(07JP27)

データイングレス & エグレス

https://learn.microsoft.com/ja-jp/azure/digital-twins/concepts-data-ingress-egress

イングレス

デバイス→ADTへの送信。Functionsなどでやる必要がある
https://learn.microsoft.com/ja-jp/azure/digital-twins/how-to-ingest-iot-hub-data

エグレス

ADTでは最新の状態しか保持できないが、ダウンストリームを構成することで外部サービスなどと統合が可能。永続サービスへデータ送信をする際は以下のうちのどれかをADTのエンドポイントにアタッチする必要がある。

履歴化

ADTのツインデータを履歴として保持したい場合は履歴化をするのが一般的のようだ。
https://learn.microsoft.com/ja-jp/azure/digital-twins/concepts-data-history

Junpei Tsuchida(07JP27)Junpei Tsuchida(07JP27)

クライアントアプリの構築

3D Scenes Studio

3D Scenes Studioを使うと3Dモデルとツインデータの紐付けが簡単にできる
https://learn.microsoft.com/ja-jp/azure/digital-twins/concepts-3d-scenes-studio
Reactアプリに埋め込むことも可能
https://learn.microsoft.com/ja-jp/azure/digital-twins/concepts-3d-scenes-studio#embeddable-viewer-component
https://github.com/microsoft/iot-cardboard-js/wiki/Embedding-3D-Scenes
https://github.com/Azure-Samples/cra-template-iot-cardboard-js

フルスクラッチで作る

SDKはあるのでデータ通信部分は問題なさそう(サンプルはcore3.1だけどね・・・)
3Dモデルを表示するUIを作りたい場合は、どう作るかが問題
https://learn.microsoft.com/ja-jp/azure/digital-twins/tutorial-code

Unityとかでも可能ぽい
https://bluebirdofoz.hatenablog.com/entry/2021/06/15/234155