Hakoniwa-design

3.1K Views

April 10, 24

スライド概要

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

profile-image

TOPPERS/箱庭WG活動でUnityやらAthrillやらmROSやら触ってます。 最近は仕事の関係でWeb系の技術に注力しつつ、箱庭への転用を模索しています。 2023年8月1日:合同会社箱庭ラボに移動しました

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

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

2.

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

3.

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

4.

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

5.

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

6.

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

7.

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

8.

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

9.

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

10.

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

11.

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

12.

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

13.

構成パターン • 箱庭では、さまざまな構成でのシミュレーションを可能にします。 • ただ、物理シミュレータとしてUnityを利⽤する場合は、Unityと箱庭との構成可能なパターンに制約があります。 • 以下、構成可能なパターンと、Unityと箱庭との間の通信⽅式(制御向け通信とPDU通信)をマトリクスで⽰します。 OS Computer 制御向け通信 PDU通信⽅式 WSL2 PC/Docker gRPC UDP, MQTT (ネイティブ) PC Shared Memory Shared Memory MacOS Intel/ AppleSilicon PC Shared Memory Shared Memory Ubuntu ー PC Shared Memory Shared Memory Windows 13

14.

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

15.

ネイティブ向けの構成例(Mac/Linux/Windows) Hakoniwa Conductor (Server) Robot Control Program Unity Robot Robot Robot Hakoniwa Conductor (Client) Conductor API Asset API Shared Memory/MMAP Hakoniwa Core Windows/MacOS/Ubuntu 22.04.1 LTS 15

16.

エッジ向け通信構成 箱庭ブリッジ Hakoniwa Conductor (Server) Robot Control Program Unity Robot Robot Robot Hakoniwa Conductor (Client) Conductor API Asset API Shared Memory/MMAP Shared Memory Proxy ROS TOPIC ROS 2 RosProxy Zenoh Zenoh Zenoh 通信 Raspberry Pi Zenoh ROS 2 mROS 2 Raspberry Pi Embedded Device Hakoniwa Core Windows/MacOS/Ubuntu 22.04.1 LTS バーチャル側 Raspberry Pi エッジ側 16