Slide 1

Slide 1 text

箱庭(Hakoniwa) Design 合同会社箱庭ラボ 森崇

Slide 2

Slide 2 text

はじめに • この資料では、箱庭の全体設計情報を整理しています。 • アーキテクチャ • 箱庭アセット • アーキテクチャ詳細 • ネットワーク構成とインフラストラクチャ 2

Slide 3

Slide 3 text

アーキテクチャ • 箱庭アーキテクチャの概要 • 箱庭アーキテクチャの説明 3

Slide 4

Slide 4 text

箱庭アーキテクチャの概要 4

Slide 5

Slide 5 text

箱庭アーキテクチャの説明 • 箱庭の中核をなす機能(箱庭コア機能)は、⾮常にシンプルで、以下の4 つに集約されます。 • スケジューリング(Scheduling) • 同期・通信(Synchronization & Communication) • 時間管理(Time Management) • アセット管理(Asset Management) • 箱庭コア機能の利⽤者は「箱庭アセット」であり、箱庭のAPIを呼び出して箱 庭の機能を呼び出しする構成です。 5

Slide 6

Slide 6 text

箱庭アセット(1/2) • 箱庭アセット定義 • 『箱庭のAPIを利⽤して作成された再利⽤可能なアプリケーション』 • 箱庭アセットの分類︓ • 被制御対象 • ロボット、ドローン、信号機、踏切、電⾞、⾞などなど • 制御プログラム • 被制御対象を制御するためのプログラムであり、様々な⾔語で開発されたプログラム (Python, C/C++, Rust, Ruby, Elixir,..) • シミュレータ • 被制御対象向けのシミュレータ(Unity, Unreal Engine, Gazebo, PyBullet など) • 制御プログラム向けのシミュレータ(マイコンシミュレータAthrillなど) 6

Slide 7

Slide 7 text

箱庭アセット(2/3) • シミュレーション⾃動化機能 • 箱庭のAPIには、シミュレーションを実⾏、停⽌、リセットする機能があります。 • これらの機能を利⽤する、以下のような⾃動化機能が実現できます。 • ロボットの強化学習(アクション→評価→再実⾏を繰り返す) • 物理シミュレーションを含めた全体結合テスト⾃動実⾏(CI/CD環境として) • ビジュアライズ機能 • 箱庭アセットとして、Unity等を利⽤すれば被制御対象であるロボット等を容易に可視 化できます。また、制御プログラムとの間の通信データは、箱庭の通信データ(PDU) を参照することで、データの流れを可視化できます。 • さらに、そのデータをROS2のデータとしても可視化できるようになります。 7

Slide 8

Slide 8 text

箱庭アセット(3/3) • さらなる応⽤機能 • 箱庭の上では、様々な制御プログラムを利⽤できますので、 • 箱庭アセットの可能性はとても広いと考えています。 • 特に、Pythonはその応⽤範囲は広く、AIとの連携が期待できます。 • 例えば、Python上でAIエージェントを作成して、 • 箱庭APIを使ってシミュレーション連携させるようなことも容易に実現できます。 8

Slide 9

Slide 9 text

アーキテクチャ詳細 9 • 箱庭アーキテクチャの詳細レベルのビューは下図のとおりです。

Slide 10

Slide 10 text

ネットワーク構成とインフラストラクチャ • ネットワークの基本構成 • インフラストラクチャの基本構成 • 構成パターン • 構成適⽤例 • Windows WSL2の構成例 10

Slide 11

Slide 11 text

ネットワークの基本構成 11

Slide 12

Slide 12 text

インフラストラクチャの基本構成 • ネットワークの基本構成図にある Computer は、以下の3パターンあります。 • Personal Computer • Docker Container • Embedded Device(Raspberry PI や mROS 2 サポート対応機器など) • また、OSのパターンとしては、以下があります。 • Windows/WSL2 • MacOS(Intel) • MacOS(AppleSilicon) • Ubuntu 12

Slide 13

Slide 13 text

構成パターン • 箱庭では、さまざまな構成でのシミュレーションを可能にします。 • ただ、物理シミュレータとしてUnityを利⽤する場合は、Unityと箱庭との構成可能なパターンに制約があります。 • 以下、構成可能なパターンと、Unityと箱庭との間の通信⽅式(制御向け通信とPDU通信)をマトリクスで⽰します。 13

Slide 14

Slide 14 text

Windows WSL2の構成例 14 https://github.com/toppers/hakoniwa-document/blob/main/architecture/examples/README-win.md

Slide 15

Slide 15 text

ネイティブ向けの構成例(Mac/Linux/Windows) 15