hakoniwa


箱庭は、従来のような単機能・単目的のシミュレータではありません。
物理、視覚、制御、通信など異なる機能を持つソフトウェアやプログラムを、同一の仮想時間で協調動作させる「シミュレーション・ハブ」です。
多様な分野のアセットを柔軟に接続・統合することで、統合型シミュレーションプラットフォームとして機能します。

なぜ「箱庭」なのか?

従来のシミュレータ──たとえば Gazebo(物理シミュレーション)、Unity や Unreal Engine(視覚再現)など──は、それぞれ特定用途に特化した設計がなされており、単体で完結するユースケースには適しています。

一方で、近年注目されているデジタルツインデジタルライフラインなどの文脈では、複数分野のリアルタイム連携が求められるようになっています。今後、次のようなシナリオに対応可能な柔軟な統合システムが必要とされるでしょう:

  • ロボットとドローンの協調動作:作業効率を高めるための統合検証
  • 産業オートメーション × IoT連携:製造ラインのリアルタイム最適化と検証
  • AIエージェントとの協働:意思決定アルゴリズムの実験や安全性確認

こうした複雑な要求に既存シミュレータを拡張して対応することも可能ですが、それでは特定用途に閉じた構成となりがちで、汎用性や再利用性に課題が残ります。さらに、オープンソースシミュレータであっても、コードの把握やカスタマイズには高度な専門知識が必要であり、導入のハードルが高いのが実情です。また、複数の独立したシミュレータを同一時刻で動かすヘテロジニアス(異種統合)シミュレーションのニーズも、今後ますます高まっていくと考えられます。

箱庭が目指すもの

箱庭は、こうした課題を解決するために、異なる分野のシミュレータやプログラムを統合可能な、高い柔軟性と汎用性を持つオープンプラットフォームを提供します。その中核にあるのが、オープンソースという設計思想です。コードの透明性と再利用性を確保しつつ、コミュニティによって専門知識が集まり、継続的な拡張が可能となります。これにより、新たな技術や要求にもスムーズに対応できるエコシステムが形成されつつあります。

箱庭の全体像

箱庭はこのような複雑な要件に対応するため、以下のような構成で設計されています。
下図はそのアーキテクチャ全体像を示しており、箱庭がどのように異種アセットを接続・制御しているかを視覚的に表現しています。

複数の3Dシミュレータ、環境モデル、制御アプリケーションなど、異なるソフトウェア/ハードウェアコンポーネントを接続し、一元的なシミュレーション制御を実現しています。

  • 左側:「環境モデル」「3Dモデル」「Unity等3Dシミュレータ」など、視覚的・物理的な再現を担うアセット群。
  • 右側:「制御アプリケーション」「通信ミドルウェア」「ランタイム」など、制御や通信、外部連携を担当するシステム
  • 下部(緑の領域):箱庭の中核機能であり、以下の役割を果たします:
    • 📦 アセット管理・制御:個別のアセットを一元的に管理・制御。
    • 🔌 アセット間通信:異なるモジュール間のPDU通信を仲介。
    • ⏱ スケジューリング・時間管理:全体を同一時間軸で統合。
    • 🏁 シミュレーション制御:開始・停止・再実行などの統一的な実行制御。

このように、箱庭は異種アセットを統一的に扱うための柔軟な基盤として、教育・研究・産業応用など多様な分野での活用が期待されています。
未来の複雑なリアルとバーチャルの融合を支える、分散型・統合型シミュレーション基盤として、さらなる進化を続けていきます。

箱庭の全体アーキテクチャ

箱庭は、シミュレーション・ハブとして機能するために、中核となる「箱庭コア機能」を提供しています。これは、複数のシミュレータやシステムを連携させ、統一された時間軸で動作させるための基盤であり、いわばシミュレータ用のリアルタイムOSとも言える存在です。

箱庭は、以下の5つの主要要素で構成されており、それぞれがシミュレーション・ハブとしての機能を支えています(図参照)。

  1. 🟨 箱庭アセット
    既存のシミュレータや制御プログラムを「箱庭アセット」として登録し、後述する箱庭APIを通じて接続します。これにより、異なる環境・実装のモジュール間でも通信の統一と相互運用が可能になります。
    ユースケース例:
    – Gazeboによる物理シミュレーションと、Unityによる視覚的ビジュアライズを同時に実行
    – ROSベースの制御ノードと、C#ベースのXRアプリケーションを連携
    – 箱庭ドローンシミュレータと、Unity、MAVLink、XR連携
  2. 🔌 箱庭API
    箱庭APIは、モジュール化を支える中核的インターフェースです。
    マルチ言語対応(Python、C/C++、C#、Rust、Elixirなど)を前提とした設計により、様々な実装スタイルに対応可能です。これにより、既存資産を活かした柔軟なアセット開発や統合が実現できます。
  3. ⏱ 箱庭時刻同期
    分散環境において整合性のあるシミュレーションを成立させるには、アセット間の時刻同期が不可欠です。
    箱庭では、最大許容遅延時間を考慮した独自の時刻同期機構を導入しており、リアルタイム性と再現性のバランスを保ちつつ、複数アセットの並行実行を実現します。
  4. 📨 箱庭PDUデータ
    箱庭アセット間の通信データは、「PDU(Protocol Data Unit)」形式で標準化されます。ROS IDL(Interface Definition Language)を用いてデータ構造を定義し、各アセットで自動的に型変換・シリアライズ/デシリアライズを行う仕組みです。
    対応する通信方式も豊富で、以下のようなプロトコルを柔軟に切り替えることができます:
    – ROS 2 / DDS
    – Zenoh
    – MQTT
    – UDP
    – 共有メモリ(MMAP)
  5. 🟩 箱庭コンポーネント
    箱庭は、箱庭コンダクタや箱庭ブリッジといった主要なコンポーネントを提供しています。
    – 箱庭コンダクタ:シミュレーション環境全体の制御を担い、時刻同期や負荷分散を実現します
    – 箱庭ブリッジ:仮想空間と現実空間を繋ぐ中継役として機能し、リアルタイム通信を円滑に行います。

箱庭の応用事例:ETロボコン仮想大会でのシミュレーション環境

2020年、コロナ禍によりETロボコンは従来の現地開催が困難となり、仮想環境での大会開催が求められました。
TOPPERS/箱庭WGは、JASAのETロボコン実行委員会と連携し、ETロボコン・シミュレータを開発しました。

このプロジェクトでは、以下の要素を統合しています:

  • μs(マイクロ秒)単位の精度でマイコン動作を再現する「Athrill」マイコンシミュレータ
  • Unity上でのロボットシミュレーションによる可視化・動作確認
  • 両者をリアルタイムかつ高再現性で統合制御する箱庭の時刻同期機能

このシステムにより、競技環境の再構築が実現され、遠隔地からの安全な参加公平な競技環境が提供されました。

本事例は、箱庭が持つ柔軟かつ信頼性の高い時刻同期・統合制御機能が、実社会の課題に直接応用された好例といえます。

箱庭の応用事例:STAMP/STPAの安全分析での箱庭の活用

こちらは、複雑なシステムの安全分析手法「STAMP/STPA」を、箱庭シミュレーションで可視化・共有可能にした事例です。
遮断桿の誤動作による踏切事故シナリオを、Python制御+Unity可視化で再現。
構造的な分析と直感的な体験を組み合わせることで、AI/IoT時代のリスク設計に新しい視点を提供します。

詳細はこちらを参照ください。

箱庭の応用事例:ロボット強化学習

こちらは、Unity上の様々なロボット(運搬ロボット・競技機・EV3電車・TurtleBot3・ドローンなど)を、Pythonエージェントによる強化学習環境として活用した事例です。強化学習の学習ループ(アクション→観測&報酬→改善)を、箱庭の時刻同期と統合制御機能を用いてリアルタイムに実行可能です。

詳細は、こちらを参照ください。

箱庭の応用事例:VR体験

こちらは、箱庭のロボットシミュレーションをVR空間で体験したものです。Meta Quest2 を装着し、普段シミュレーションしているロボット(TurtleBot3)に近づき、触れたり、ぶつかったりしながら、楽しむことができます。

詳細はこちらを参照ください。

PAGE TOP