箱庭・ショーケース
森崇(永和システムマネジメント)

自己紹介• 森 崇(もり たかし)
• 職歴/専門分野• Linuxファイルシステム/カーネル周りのお仕事(10年)• 組込みRTOS/ROS周りのお仕事(10年)• 新規ビジネス向けWebシステム開発(昨年から～)• TOPPERS/箱庭WG参加・開発(4年)• 組込みソフト/マイコンシミュレータ担当• 箱庭コア機能担当• 物理シミュレーション/ビジュアライズ
• その他いろいろ

Athrill2

アジェンダ
1. 箱庭・ショーケース[4分]2. 箱庭の狙いとコンセプト[2分]3. 今後の方向性／ロードマップ[2分]3箱庭を実現する技術
クラウド系

ロボット制御系

箱庭rillAth

組込み系

Web/ネットワーク系

4３つのプロトタイプモデル

マイコン制御ロボットシミュレーション
複数ロボットの連携制御シミュレーション

ROS制御ロボットシミュレーション

5

マイコン制御ロボットシミュレーション■狙い
Unity上のロボット(1個)と仮想マイコンを連携させたシミュレーションの実現
マイコン・シミュレータ■構成要素
ー ロボット本体
・モータ/センサ等
ー ロボットを制御するマイコン
・RTOSおよびロボット制御が動きますー 外部環境・走行コース/障害物等■広報活動
ー ETロボコンユーザ層に箱庭を広める
ー ロボット教育演習での活用

制御処理(C/C++)

EV3RT

超音波センサASP3/ASP
athrill

モーター
カラーセンサ

センサ用ライト

6

実行例

7

３つのプロトタイプモデル

マイコン制御ロボットシミュレーション
複数ロボットの連携制御シミュレーション

ROS制御ロボットシミュレーション

8

ROS制御ロボットシミュレーション■狙い
Unity上のロボット(1個)とROS2を連携させたシミュレーションの実現
ROS2プログラム■構成要素
ー ロボット本体
・ROSでよく利用されているTB3
ー ロボットを制御するROSプログラム
・ROS2でロボット制御
ー 外部環境・走行コース/障害物等制御処理(C/C++)

ROS2 API
UbuntuDocker■広報活動
ー ROSユーザ層に箱庭を広める

9

ROS制御ロボットシミュレーションの構造• Unity上の１台のTurtlebot3をROS2で動かします
ロボット制御プログラム(C++)

ROSトピック(センサデータ等)
UI/ビジュアライズ/物理演算エンジン10

３つのプロトタイプモデル

マイコン制御ロボットシミュレーション
複数ロボットの連携制御シミュレーション

ROS制御ロボットシミュレーション

11

複数ロボットの連携制御シミュレーション■狙いUnity上のロボット(複数)とROS2を連携させたシミュレーションの実現■構成要素
ー ロボット本体
・ROSでよく利用されているTB3
ー ロボットを制御するROSプログラム
・ROS2でロボット制御
ー 外部環境・走行コース/障害物等

ROS2プログラム
制御処理(C/C++)
ROS2 API
UbuntuDockerROS2プログラム
制御処理(C/C++)
ROS2 API
UbuntuDocker■広報活動
ー ROSユーザ層に箱庭を広める

12

複数のロボットを動かすための手順• たったの３ステップで，複数のロボット配置してシミュレーション実行できます！

ステップ１

ステップ２

箱庭ロボット・アセット
asset1…

asset2

asset2…

ステップ３
箱庭ロボット・シミュレータ

asset3

asset3

インストール

箱庭ロボット・コンフィギュレータ

13複数のロボットを動かす• Unity上の２台のTurtlebot3をROS2で動かします(何台でもいけます)
ロボット１

ロボット２

ロボット1の制御プログラム(C++)

ロボット2の制御プログラム(C++)

ロボット1のROSトピック
UI/ビジュアライズ/物理演算エンジン

ロボット２のROSトピック

14

複数ロボットの連携制御シミュレーションの発展型• Photonでロボット・マルチプレイする• Oculus Quest2で箱庭VR空間にダイブする！

15

Photon アーキテクチャ• Client• マルチプレイゲームに参加するプレイヤ• PUN• Photon Unity Networking• マルチプレイ対応Unityパッケージ• Photon Cloud• マルチプレイゲームを実現する• クラウドサービス• Client上のプレイヤを• クラウド上で同期する

UI/ビジュアライズ/物理演算エンジン

UI/ビジュアライズ/物理演算エンジン

UI/ビジュアライズ/物理演算エンジン

16

Photonでロボット・マルチプレイするための手順• 複数のロボットの場合と同じです• Photon用のアセットを利用して，箱庭コードをGenerateする点が異なります

ステップ１

ステップ２

箱庭ロボット・アセット
asset1…

asset2

…

PUN

ステップ３
箱庭ロボット・シミュレータ

asset3PUN
asset2

asset3

インストール

箱庭ロボット・コンフィギュレータ

17

Photonでロボット・マルチプレイする• 複数拠点にいる Turtlebot3 を Photon Cloud で同期しますPhoton Cloud
拠点１
PUN

拠点２
PUN

18

VRってなに？
言わずと知れたバーチャルリアリティ(VR)
ゲームの世界では手軽に楽しめるようになった！

Oculus Quest2

3D空間にダイブして，臨場感のあるVR体験

19

Oculus Quest2で箱庭VR空間にダイブする！
• 箱庭アバターを使って，Photon Cloudにログインして，VR体験します！

拠点３
Oculus Quest2

PUN

20

Oculus Quest2で箱庭VR空間にダイブする！

21

アジェンダ
1. 箱庭・ショーケース
2. 箱庭の狙いとコンセプト
3. 今後の方向性／ロードマップ

22

凡例

IoTシステム開発時の課題

IT系エンジニア
制御系エンジニア• IoT開発には様々な分野の技術領域＝技術者の結集が不可欠• 結合テストや検証が困難である• 問題発生時にはその原因と経路の調査が複雑となる• 実証実験コストも大きくなる

ICTエンジニア

スマホ
Web系

管制サーバ

クラウド
バックエンドサーバ系

車載PC

ネットワーク系

自動運転制御系

センサ

エレキ系

ET系エンジニア

CAN
メカ系

ECU制御系

ECU

交通サービス系

23

『箱庭』の狙いとコンセプト• 箱の中に，様々なモノをみんなの好みで配置して，いろいろ試せる！

・仮想環境上(箱庭)でIoT/ロボット・システムを開発する• ⇒ 各分野のソフトウェアを持ち寄って，机上で全体結合＆実証実験！
ロボット制御系
エンジニア

組込み系
エンジニア

ネットワーク系
エンジニア

ロボットAI系
エンジニア

Web系
エンジニア

24

現在取り組んでいる内容• ロボット向けヘテロシミュレータ箱庭(ROS2/マイコン制御を統合)
マイコン制御ロボットシミュレーション

複数ロボットの連携制御シミュレーション• マルチECUシミュレーション対応• C++版箱庭コア機能開発

25

アジェンダ
1. 箱庭・ショーケース
2. 箱庭の狙いとコンセプト3. 今後の方向性／ロードマップ

26

今後の方向性／ロードマップ
2019ー2021
公開中

2022ー2024
箱庭チュートリアル
組込み系エンジニア
ロボット制御系エンジニア
ロボットAI系エンジニア

箱庭プロトタイプ
モデル開発

箱庭ユーザを広める活動

結合環境構築(箱庭ベース環境)

箱庭チュートリアル開発&&広報活動

2025
組込み系エンジニア---------------------------ECU/AUTOSAR開発入門シ
ミュレーション環境
ロボット制御系エンジニア---------------------------ロボット制御モデリング/プログラ
ミング入門シミュレーション環境
ロボットAI系エンジニア---------------------------ロボット制御学習サイクル自動化
入門シミュレーション環境

27

https://hakoniwa.connpass.com/event/258129/

28