箱庭とは、シミュレーション・ハブです。さまざまな技術──ゲームエンジン(UnityやUnreal Engine)、Pythonプログラム、マイコンシミュレータなど──を箱庭というハブ(プラットフォーム)に接続することで、異なるシステム同士がシームレスにコミュニケーションできる場を提供します。
そして、箱庭は、コミュニティ・ハブでもあります。ゲームエンジニア、組み込みエンジニア、制御エンジニア、AIエンジニア、機械系エンジニアなど、さまざまな分野のエンジニアが集うことで、技術論や課題について互いに意見を交わし、成長し合える場が生まれています。
今回のブログでは、箱庭が「技術」と「コミュニティ」をどのように結びつけているか、その一端をお話ししたいと思います。
体験イベント:ロボットストリート
箱庭ラボは、10/26-27、ATCロボットストリートというイベントにて、箱庭ドローンシミュレータを題材にしたリアルとバーチャルの融合体験を一般来場者の方々に体験いただきました。
今回のデモ展示では、JASAドローンWGの岡田さんが、プライベートでお忙しい中にもかかわらず協力してくださいました。心より感謝申し上げます。
展示ブースでは、来場された子供たちにQuest 3を装着してもらい、目の前に現れるドローンをコントローラーで操作してもらいました。デモ中、子供たちの集中力には驚かされました。わずか5分ほどで、リアルな物理モデルに基づくドローンの操作を習得し、荷物を運ぶまでできるようになったのです。そして、ドローンが自分の手の届く位置に来ると、手で触るようにして、「キャハハー」と無邪気に笑いながら楽しむ姿を見て、心から「作ってよかった」と感じました。
新たな出会いと見えてきた課題
ロボットストリートの展示をしている中で、MR技術者であり経営者でもある山地さん(https://ho-lo.jp/about-us/)と出会いました。展示会1日目の後、懇親会の席で山地さんのバックグラウンドや今後の目標をお聞きしながら、自分自身も箱庭の技術、MR技術者の必要性、自分が持つ限界についてお話しさせていただきました。この対話を通じて、「技術分野やコミュニティの壁を越えていきたい」という思いが、改めて自分の中で強くなりました。
自分はもともと、永和システムマネジメントの組み込みエンジニアとして活動していましたが、箱庭の可能性に魅了され、この技術は一企業の枠に収まらないと直感しました。そこで、TOPPERSコミュニティのメンバーとともに箱庭の活動を進めることにしました。
6年以上にわたる活動の中で、組み込み技術とゲーム/Web技術、さらには制御系技術をつなげようと試行錯誤し、アーキテクチャや技術の幅を広げながら様々なコードを書き続けてきました。しかし、それだけでは不十分だと実感しています。人と人がつながり、互いに想いや技術を伝え合うことがなければ、「箱庭」は完成しないのです。たかだか、一人でできるコード量や技術の幅には限界があるのです。
箱庭の新しいアーキテクチャ
ロボットストリートのデモ展示での体験と出会いを通じて、どうしようもないもどかしさを感じて、あらためて自分がやれるところを整理して、自分にできることを1つずつ作ろう思いました。その絵が、この箱庭の新しいアーキテクチャです。
このアーキテクチャの重要なポイントは、「左」と「右」にあります。
左は、「デジタルツイン」を実現する箱庭ブリッジです。リアルな世界とバーチャルな世界をつなげる技術として考え出された箱庭の新機能です。これは、ROSConJP 2024でも紹介させていただいたものです。
右は、「メタバース」、「Web系」の世界をつなげる技術です。箱庭Webサーバーを箱庭の上に用意して、WebSocketでリアルタイムにデータ交換できるようにするための箱庭の新機能です。
どちらも、まだまだ未完成なんです。ロボットストリートでのデモ展示を通じて、このアーキテクチャの完成度を充実させて、さらに、このアーキテクチャを大阪万博向けのデモ展示で適用したいという思いに駆られました。
機能拡張のポイントとして、箱庭ブリッジではZenoh以外の通信プロトコルのサポートを検討しています。現場では、ROSやZenoh以外にも、UDP/TCPやMAVLINK通信などが使用されており、それらも箱庭に接続できるようにすることで、既存のロボットをそのままバーチャルな世界とつなげられるようにしたいと考えています。
そして、箱庭Webサーバー向けの機能拡張ポイントは、箱庭PDU通信機能のパッケージ化です。
箱庭PDU通信機能のパッケージ化
箱庭はUnityとの親和性が高く、XRとの連携も容易に行えます。ただし、XRアプリと箱庭を連携させるには、箱庭のコア機能と通信する必要があります。
これまでは、必要なデータを個別に選定し、UDP通信を通じてXRアプリと連携を図っていました。しかし、この方法では新しいデータを追加するたびに通信データ型の定義と通信プログラムの作成が必要となり、拡張性が限られていました。
そこで、箱庭PDU通信機能を新たに開発し、Unityパッケージマネージャからインストール可能な構成とすることにしました。これにより、XRアプリケーションと箱庭の通信がより簡単かつ柔軟に実現できるようになります。(下図)
本アーキテクチャの特徴としては、以下の通りです。
- 通信データのアクセスAPIと通信方式(通信プロトコル)を分離
- 通信データはROS IDL準拠
- 任意のROSデータ型でのI/Oが可能
- custom.jsonファイルで利用するROSデータ型を定義
- 通信プロトコルの柔軟性
- 現時点で、通信プロトコルは、WebSocket(2種類)とUDP通信をサポートしています。今後、Zenoh通信なども対応していく予定
パッケージ公開
先週の日曜日から順に機能実装を進め、本日、箱庭PDU通信機能のパッケージを以下のURLで公開いたしました(READMEは今後整備する予定です)。
Unityパッケージマネージャからインストールするには、「Add package from git URL」で以下のURLを指定するだけです。
- https://github.com/toppers/hakoniwa-pdu-csharp.git
使い方については、こちらのテストプログラムをご参照ください(ROSのTwistデータ型の通信プログラムのテストです)。
- https://github.com/toppers/hakoniwa-pdu-csharp/blob/4919ca9ea0ab6739aca9bc273dd2e28d5c44ba78/Tests/tests/hakoniwa.uc.test/UnitTest.cs#L83-L141
箱庭なかま
昨日、金沢出張の帰りに福井に立ち寄られるという方とお会いし、お立場や現状の課題をお聞きしながら、自分もつい熱く箱庭の世界観について語らせていただきました。箱庭は、一企業の枠を超えて、コミュニティの中で育てていくべきものだと考えています。そこで育むのは、単なる技術だけでなく、その技術が見せてくれる夢や可能性、そしてそれを実現するための知恵と努力、さらには一緒に力を貸してくれる仲間たちです。
ロボットストリートで無邪気に楽しんでくれた子供たち、デモ展示で無償で協力してくれた仲間(岡田さん)、技術の壁を前に、もどかしさを感じながらも挑戦し続けている技術者たち──彼らがいるからこそ、箱庭はただの技術ではなく、夢と挑戦を共有する場として生きているのだと強く感じています。そして、彼らが箱庭の原動力でもあります。
TOPPERS/箱庭プロジェクトでは、箱庭イベントを不定期に開催しています。年内にもう一度、「箱庭まつり」を予定していますので、ぜひご参加ください。
もしこの『箱庭』の世界観に共感していただけるなら、どうぞ私たちの仲間に加わってください。一緒に、技術の枠を超え、箱庭の可能性を広げていけることを楽しみにしています。
コメントを残す