AWS IoT TwinMaker Samples のクッキー工場バージョン3(CookieFactoryV3)を試してみた 〜その1環境構築編〜

2024.01.22

こんにちは、CX 事業本部製造ビジネステクノロジー部の若槻です。

AWS IoT TwinMaker Samples は、OSS で提供されている AWS IoT TwinMaker でクッキー工場のデジタルツインを作成できるサンプルです。以前に下記のブログでやってみた内容を紹介しました。

上記ブログで試したのは CookieFactory の「V1」ですが、現在の最新バージョンとして下記の「V3」が提供されています。機能としてデジタルツインを利用したモニタリングアシスタントの実装が可能となっているようです。

今回は、この AWS IoT TwinMaker Samples のクッキー工場バージョン 3(CookieFactoryV3)を試してみたので、本ブログでは「環境構築」部分を中心に紹介します。

構築用スクリプト

構築手順でに以下の 2 つのスクリプトを実行します。

  • cdk/install.sh
  • dashboard/install.sh

cdk/install.sh

スクリプトsrc/workspaces/cookiefactoryv3/cdk/install.shの実行により、以下のリソース作成処理が行われます。

  • IoT TwinMaker ワークスペースの実行ロール作成
  • IoT TwinMaker ワークスペースのリソース保管バケット作成
  • IoT TwinMaker ワークスペース作成
  • CDK デプロイ(作成リソースは後述)
  • リソース保管バケットへの 3D モデルおよびメタデータのアップロード

CDK デプロイ

スクリプト cdk/install.sh での CDK デプロイにより、以下の CloudFormation スタックが作成されます。

作成される主なリソースは以下の通りです。

  • AWS::Cognito::UserPool
  • AWS::Cognito::UserPoolUser
  • AWS::Cognito::UserPoolClient
  • AWS::Cognito::IdentityPool
  • AWS::Cognito::IdentityPoolRoleAttachment
  • AWS::Lambda::LayerVersion
  • AWS::Timestream::Database
  • AWS::Timestream::Table
  • AWS::IAM::Role
  • AWS::Lambda::Function
  • AWS::Lambda::Function
  • AWS::Lambda::Function
  • TmdtApp

Cognito User Pool ではダッシュボードアクセス用のユーザーの認証、Cognito Identity Pool ではユーザーが AWS リソースにアクセスするための認証情報を提供します。Timestream のデータベースおよびテーブルでは IoT TwinMaker のコンポーネントタイプで取得する時系列データを格納します。Lambda 関数は TwinMaker から Timestream にコンポーネントタイプがデータをクエリするための UDQ(User Defined Query)となります。

そして TmdtApp は「TwinMaker Development Tools(TMDT)」により作成された Construct です。TMDT を使用すると TwinMaker の各種リソースの管理を容易に行うことができます。

TMDT により下記のように TwinMaker ワークスペースにコンポーネントタイプやエンティティが作成されます。

dashboard/install.sh

スクリプトsrc/workspaces/cookiefactoryv3/dashboard/install.shの実行により、以下の設定が行われます。ダッシュボードログイン用のユーザーのパスワード設定を行います

  • Cognito ユーザーのパスワードリセット

作成されたリソースを確認してみる

IoT TwinMaker ワークスペース

シーン

TwinMaker におけるシーンはデジタルツインを表示する領域のことで、TMDT により 3 つ作成されます。

CookieFactoryはクッキー工場全体です。

Mixerは個別のミキサーを表すシーンです。

CookieFactoryTilesは工場の床面を表すシーンです。

エンティティ

TwinMaker におけるエンティティはシーン内で表したい物理的な機器や概念などのデジタル表現に、挙動や状態などのコンテキストを提供するリソースです。TMDT により 132 個作成されます。

コンポーネントタイプ

TwinMaker におけるコンポーネントタイプは先程作成したエンティティのコンテキストに使用するデータを AWS の内外のサービスから取得可能とするリソースです。

TMDT により以下の 15 個の User-defined のコンポーネントタイプが作成されます。

  • com.example.cookiefactory.alarm
  • com.example.cookiefactory.cookie-former
  • com.example.cookiefactory.cookieline
  • com.example.cookiefactory.equipment
  • com.example.cookiefactory.mixer
  • com.example.cookiefactory.processstep
  • com.example.cookiefactory.space
  • com.example.cookiefactory.watertank
  • com.example.synthetic-telemetry
  • com.example.synthetic.bufferequipment
  • com.example.synthetic.cookieformerrateequipment
  • com.example.synthetic.freezertunnelrateequipment
  • com.example.synthetic.rateequipment
  • com.example.timestream-telemetry
  • com.example.workspace.synthetics

リソースライブラリ

リソースライブラリにはシーンで 3D モデルとして使用されるファイルが格納されます。

格納されるのは以下の 4 つの GLB 形式のファイルです。

  • CF_SITE.glb(工場の外郭)
  • CookieFactoryWaterTank.glb(ウォータータンク)
  • CookieFactoryLine.glb(工場ライン)
  • CookieFactoryMixer.glb(ミキサー)

GLB 形式なのでこれらのファイルは以下のように Blender で開いたり編集したりすることができます。

ダッシュボードへのアクセス

ダッシュボードとなるフロントエンドアプリケーションをローカルで起動します。フレームワークは Vite を使用します。

はじめにユーザーロールと工場のロケーションを選ぶ UI が表示されますが、デフォルトで 1 つのみなのでそれぞれクリックして進みます。

すると TwinMaker の 3D コンポーザーが表示されました。

ネクストアクション

今回はここまでです。次回はダッシュボードの機能を実際に試してみたいと思います。

またこの V3 のサンプルに Amazon Bedrock を組み合わせたデモも提供されているので、こちらも次回以降に紹介したいと思います。

以上