IoT時代の仮想シミュレーション環境「箱庭」の実現に向けた検討および初期実装
⾼瀬 英希
細合 晋太郎
⾼⽥ 光隆
庭野 正義
辻 悠⽃
森崇

(京都⼤学／JSTさきがけ)(チェンジビジョン)(名古屋⼤学)(アイコムシステック)(永和システムマネジメント)(永和システムマネジメント)

Agenda• IoTシステム開発時／サービス構築時の課題• 箱庭︓IoT時代の仮想シミュレーション環境• コンセプトと狙い・想定される利⽤シーン• アーキテクチャ（技術要素とコア機能）• コンセプトと狙いを実証するためのプロトタイプモデル• 単体ロボット向けシミュレータ• プロトタイプモデルの構成• 時間管理機構と通信データの仕様• 展開事例• まとめ︓今後のロードマップ

2

IoTシステム開発時の課題 (例: ⾃動運転配⾞システム)• IoT開発には様々な分野の技術領域＝技術者の結集が不可⽋• 結合テストや検証が困難である• 問題発⽣時にはその原因と経路の調査が複雑となる• 実証実験コストも⼤きくなる

管制サーバ
スマホ
Web系

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

⾞載PC

ネットワーク系⾃動運転制御系

センサ
凡例
IT系エンジニア
制御系エンジニア
ET系エンジニア

エレキ系

ICTエンジニア

CAN
メカ系

ECU制御系

ECU

交通サービス系

3

IoTサービス構築時の課題 (例: ロボットサービス)
ロボットサービス・提供者
・ロボットサービスをどう組み合わせると，効果的な新しいサービスを創出できるかわからない・新しいサービスを検討するにしても，実物のロボットでは準備・⼿間がかかりすぎる?

??

どう組み合わせればよい︖

どうやって動かす︖
実物のロボットは⼿間がかかる
作りたいロボットサービス

要件変更適⽤に時間がかかる

ロボットシステム・開発者

ロボットサービス群

要件が頻繁に変わるシステム要件

設計・実装

実証実験時に結合トラブルが頻発する

実証実験
物理シミュレータ

4Agenda• IoTシステム開発時／サービス構築時の課題• 箱庭︓IoT時代の仮想シミュレーション環境• コンセプトと狙い・想定される利⽤シーン• アーキテクチャ（技術要素とコア機能）• コンセプトと狙いを実証するためのプロトタイプモデル• 単体ロボット向けシミュレータ• プロトタイプモデルの構成• 時間管理機構と通信データの仕様• 展開事例• まとめ︓今後のロードマップ

5『箱庭』のコンセプトと狙い• 箱の中に，様々なモノをみんなの好みで配置して，いろいろ試せる︕⇒ 各技術者が開発対象と興味(=アセット)を持ち寄って，机上で実証実験
⾃動運転
制御系エンジニア

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

バックエンドサーバ系エンジニア

ECU制御系
エンジニア
交通サービス系
エンジニア

6

箱庭ドメイン・サービス

エンジニアが集まって⼿軽に全体結合/問題早期検出できる

配⾞
サービス

机上環境で⾞両全体を制御できているか確認できる

運⽤
サービス

バックエンドサーバー系エンジニア

ECU制御
エンジニア

⾞両の動作確認しながらアプリ操作感を確認できる

Web系エンジニア

運⽤アプリ

エッジサーバー

⾃動運転制御
エンジニア

配⾞アプリ

アセット配置アップロード通信

⾃動運転制御

机上で他システムと連携確認できる

ECU
制御

箱庭アセット

⾛⾏環境
モデル

机上で⾃動運転アルゴリ
ズム検証できる

歩⾏者
モデル

サーバー

様々なアセットを利⽤して，いろいろ試せる

⾞両⼒学
モデル

⾞両PC

仮想マイコン

箱庭アセット・サービス

7

『箱庭』のアーキテクチャ
⾞載系■箱庭ドメイン・サービス
様々な分野への適応を⽬指す

家電系

ロボット
サービス

航空・宇宙系

箱庭ドメイン・サービス■箱庭コア
箱庭固有のシミュレーション技術をコア技術化

Hakoniwa Engine■サードパーティ
既存のサードパーティ製は積極利⽤■箱庭アセット・サービス
シミュレーション内の登場物をアセット化
箱庭アセット数の拡充を⽬指す

サードパーティ(クラウド)

Simulink

サードパーティ(可視化)

箱庭コア
箱庭アセット・サービス

RTOS

8

『箱庭』の技術要素
組込みマイコン
シミュレータ

組込みマイコン向け
ROS 1ノード実⾏環境

Athrill

分散ロボット／IoT向け
ネットワークフレームワーク

リアルタイム3D開発
プラットフォーム

箱 庭

IoT/⾃動運転時代の仮想シミュレーション環境

9

Hakoniwa Engine:

複雑なシステムを仮想環境で動作させるためのコア機能
可視化

シミュレー
ション時間

コンポーネント化
マイコン
シミュレータ

可視化ツール

箱庭エンジン(コア機能)

アセット

アセット

スケジューリング
アセット管理

時間管理
同期・通信

物理シミュレータ

シミュレーション時間

テスト実⾏管理
シナリオ

⾃動化

10

Agenda• IoTシステム開発時／サービス構築時の課題• 箱庭︓IoT時代の仮想シミュレーション環境• コンセプトと狙い・想定される利⽤シーン• アーキテクチャ（技術要素とコア機能）• コンセプトと狙いを実証するためのプロトタイプモデル• 単体ロボット向けシミュレータ• プロトタイプモデルの構成• 時間管理機構と通信データの仕様• 展開事例• まとめ︓今後のロードマップ

11プロトタイプモデルの開発
⽬的︓箱庭コンセプトの実現可能性の実証と技術研鑽
マイコン・シミュレータ
制御処理(C/C++)
EV3RT
ASP3/ASP

プロトタイプモデル

⽬的

A︓
単体ロボット向け

・シミュレータ間の連携⽅法の検討
・アセット間の時間同期と通信⽅式の確⽴
・広報活動（ユーザ・技術者の獲得）

B︓
ROS・マルチECU向け

・ヘテロ環境(ECU/FPGA/GPU)の机上構築
・通信可視化⽅法の検討（ROS連携含む）
・箱庭アセットの仕組み検討

athrill

C︓・クラウドサービスとの連携
ロボット間協調動作向け ・ロボット間の協調連携⽅法の検討
・箱庭アセットの拡充

12

A︓単体ロボット向けシミュレータ
ETロボコンを題材として構築
技術研鑽視点での狙い︓
・物理シミュレータとマイコンシミュレータ間連携⽅法の検討
・異なるシミュレータ間の時間同期の検討
その他の狙い︓・ETロボコンユーザ層に箱庭を広める（広報活動）

マイコン・シミュレータ
制御処理(C/C++)
EV3RT
ASP3/ASP
athrill

Unityパッケージの設計と作成にあたっては，宝塚⼤学 東京メディア芸術学部 吉岡章夫准教授および学部⽣の杉﨑涼志さん，⽊村明美さん，千葉純平さんにご協⼒いただきました。
HackEVのUnityアセットは，ETロボコン実⾏委員会より提供いただいたデータを基に作成しています．
実⾏委員会の皆さまに深く感謝いたします．ただし本アセットはETロボコンの本番環境とは異なりますので，⼤会に参加予定の⽅はご注意ください．また，本アセットは，個⼈利⽤または教育利⽤に限定してご利⽤ください．

13

B︓ROS・マルチECU向けシミュレータ
マルチECUシミュレータ

物理シミュレータ
シミュレータ間通信

病室

FPGA/GPU

センサ
画像認識

仮想マイコン

仮想Linuxマシン(QEMU)(athrill/mROS)

ロボット制御モータ
制御

モーター
ROS/ROS2
技術研鑽視点での狙い︓・マルチECU/FPGA/GPU間の連携⽅法検討(シミュレーション時間同期等)
・箱庭アセット間の通信可視化⽅法の検討(ROS/ROS2連携含む)
・箱庭アセットの仕組み検討
その他の狙い︓・ROSユーザ層に箱庭を広める（広報活動）
・その他チャレンジ(つくばチャレンジ/FPGAデザインコンテスト)

14

C︓ロボット間協調動作向けシミュレータ
仮想サーバー

物理シミュレータ

シミュレータ間通信(RDBOX)
ロボット制御・シミュレータ

技術研鑽視点での狙い︓・クラウド連携⽅法検討
・ロボット間の連携⽅法検討(より複雑なロボットの動き/⼲渉に挑戦)
・箱庭アセットを増やす仕組みの検討
その他の狙い︓・RDBOX連携(開発⽀援仮想環境としての箱庭の実績作り)
・RDBOXユーザ層に箱庭を広める（広報活動/ROSCon JP 参加）

15

プロトタイプモデルの開発状況
プロトタイプモデル

技術調査

実装

動作確認

配布

〇

〇

〇

〇

EV3RTの教育向け活⽤に興味のある⽅，ETロボコンへの参加を検討される⽅向けに公開中△△△

×

仮想マイコン(docker/athrill/mROS)とUnity間連携完了FPGA/GPUおよびLinux(QEMU)との連携⽅法を検討予定

〇〇

〇

×

ET & IoT Digital 2020のTOPPERS/SESSAMEパビリオンにてRDBOXとの連携⽅法/デモ等をご紹介中︕︕

16

Agenda• IoTシステム開発時／サービス構築時の課題• 箱庭︓IoT時代の仮想シミュレーション環境• コンセプトと狙い・想定される利⽤シーン• アーキテクチャ（技術要素とコア機能）• コンセプトと狙いを実証するためのプロトタイプモデル• 単体ロボット向けシミュレータ• プロトタイプモデルの構成• 時間管理機構と通信データの仕様• 展開事例• まとめ︓今後のロードマップ

17プロトタイプモデルの構成• 1台のロボットが1個の組込みマイコンで制御• 仮想化対象︓HackEV @ETロボコン• 組込みマイコン︓athrill• カーネルとロボット制御⽤プログラムの仮想化• 実⾏プラットフォーム︓TOPPERS/EV3RT• ISA︓V850E2M <- ARMv7-A• カーネル︓TOPPERS/ASP3 <- HRP3
• 制御アプリのレベルでは互換となる• 可視化・物理演算︓Unity• センサ値の取得(カラー，超⾳波，ジャイロ)• モータ制御・LCD表⽰

マイコン・シミュレータ
制御処理(C/C++)
EV3RT
ASP3/ASP
athrill
LCD表⽰
ジャイロセンサ
超⾳波センサモータ
カラーセンサ

センサ⽤ライト18

時間同期の必要性• 箱庭は様々なシミュレータの混在を許す環境• 各シミュレータがそれぞれ固有のシミュレーション時間を持つ• 各シミュレータが独⽴して動作すると，実⾏タイミングにズレが⽣じうる
シミュレーション時間同期

シミュレーション時間１

シミュレータ１

シミュレーション時間２

シミュレータ２

シミュレーション時間３

シミュレータ３

19

箱庭の時間同期⽅式• 分散制御⽅式• シミュレータの並列動作と分散配置が容易• 仕組み︓オーケストラ⽅式• 箱庭時間(マエストロ)をみながら，時間を調整・同期(ハーモニー)する• 各シミュレータ時間を同調する• 時間同期の程度を定量化• 環境スペックの妥当性を評価・調整

各シミュレータは箱庭時間に対して⾃分のシミュレーション時間の進め⽅を調整する

箱庭時間
シミュレーション時間同期のためのピンポンはしない．各シミュレータのベスト・エフォートでの並列同期を実施

シミュレーション時間１

シミュレーション時間２

シミュレーション時間３

シミュレータ１

シミュレータ２

シミュレータ３

20

シミュレータ間の通信⽅式• UDPによる箱庭時間の共有⽅式• メリット︓各シミュレータを別PCに配置できる• デメリット︓遅延が発⽣する

箱庭時間<<UDPパケット>>
箱庭時間

シミュレータ１
シミュレータ２
シミュレータ３• MMAPによる箱庭時間の共有⽅式• メリット︓遅延は発⽣しない• デメリット︓箱庭時間の管理機構とシミュレータは同⼀環境内に配置する

箱庭時間<<MMAP>>
箱庭時間

シミュレータ１
シミュレータ２
シミュレータ３21

時間管理を含む通信データの仕様(⼀部)• Unity -> athrill• athrill->Unity
offsetsize

値の単位表現名称

offsetsize

値の単位表現

ヘッダ情報

04

ASCIIコード

ヘッダ情報

04

ASCIIコードバージョン番号44

整数値

バージョン番号

44整数値

時間同期⽤情報(Athrill側の時間)84

下位32ビット(予約領域)

88---124

上位32ビット

時間同期⽤情報(Unity側の時間)164

下位32ビット164

下位32ビット

20

4

上位32ビット

時間同期⽤情報(Unity側の時間)20

4

上位32ビット

拡張領域オフセット

244整数値

拡張領域オフセット

244整数値

拡張領域サイズ

284整数値

拡張領域サイズ

284整数値(HackEV基本機能)

32480

---

(HackEV基本機能)

32

480

---

(HackEV拡張機能)

512

512

---

(HackEV拡張機能)

512

512

---

名称

22

適⽤事例
• UDP⽅式(MMAP⽅式も可能)• 物理シミュレータ(Unity)のセンシングデータ送信タイミングで箱庭時間を通知する• マイコンシミュレータ(athrill)が箱庭時間に合わせて⾃⾝の時間を調整する

物理シミュレータ(Unity)

マイコンシミュレータ(athrill)
100msec周期

1msec周期制御アプリケーション

EV3・センシングデータ

・センシングデータ

箱庭時間同期機能

箱庭時間同期機能・時間(Unity)・時間(Unity)

・センシングデータ
・時間(Unity)
UDP通信・センシングデータ
・時間(Unity)23

ロボット教育演習への展開の想定• フロアの⾊，障害物までの距離を各種センサで検出して，ゴールまでたどり着こう• ロボットの内部状態でLEDカラーで変化させてみよう• 地⾯に落ちているボールを運んでみよう

障害物

⾛⾏ルート

ボール(運べるか？)ゴール

LEDカラー24展開事例Agenda• IoTシステム開発時／サービス構築時の課題• 箱庭︓IoT時代の仮想シミュレーション環境• コンセプトと狙い・想定される利⽤シーン• アーキテクチャ（技術要素とコア機能）• コンセプトと狙いを実証するためのプロトタイプモデル• 単体ロボット向けシミュレータ• プロトタイプモデルの構成• 時間管理機構と通信データの仕様• 展開事例• まとめ︓今後のロードマップ

26

今後のロードマップ
マイコン・シミュレータ★4th 成果

制御処理(C/C++)

システム開発者

EV3RT
ASP3/ASP★2nd 成果

athrill

サービス提供者

サービス要件の早期キャッチアップ★3rd 成果
⾊々試せる

⼿軽に試せるスケール向上

検査
⾃動化

問題早期検出

改善要望の早期リリース

全体結合シミュレーション環境
可視化技術

今はココ
箱庭プロトタイプ
モデル開発
結合環境構築(箱庭ベース環境)

スケジューリング/同期・通信/時間管理/アセット管理

箱庭WG成果物

開発者向け
機能開発
検査⾃動化
機能拡充
スケール向上機能拡充

箱庭アセット
開発者／提供者

アセット
利⽤料

アセット
提供

★1st 成果

クラウド技術

箱庭コア技術サードパーティ成果物

サービス提供者向け
機能開発

連携機能
開発

GUI機能拡充

開発者/
サービス
連携機能開発箱庭アセット拡充
箱庭コア機能拡充

27

『箱庭』研究開発のお誘い• でっかく語って，少しずつ育てております︕• https://toppers.github.io/hakoniwa/• 箱庭WGの狙い・趣旨にご賛同いただける⽅の参画をお待ちしております︕︕• まずはSlackでの議論，活動内容へのご要望，コア技術や各アセットの開発，などに参加したい⽅• 箱庭WGの活動で期待される技術成果を活⽤してみたい⽅• 製品開発に展開してみたい⽅よろしくお願いいたします︕︕

箱 庭28

謝辞・特記事項• Unityパッケージの設計と作成にあたっては，宝塚⼤学 東京メディア芸術学部 吉岡章夫准教授および学部⽣の杉﨑涼志さん，⽊村明美さん，千葉純平さんにご協⼒いただきました．

• HackEVのUnityアセットは，ETロボコン実⾏委員会より提供いただいたデータを基に作成しています．実⾏委員会の皆さまに深く感謝いたします．
ただし本アセットはETロボコンの本番環境とは異なりますので，⼤会に参加予定の⽅はご注意ください．また，本アセットは，個⼈利⽤または教育利⽤に限定してご利⽤ください．

• 本資料は，ユニティ テクノロジーズまたはその関連会社がスポンサーとなったり，ユニティ テクノロジーズまたはその関連会社と提携しているものではありません．
本資料に掲載された Unity の登録商標⼀覧に含まれる Unity の登録商標はすべて，ユニティ テクノロジーズまたはその⽶国や他の国々に所在する関連会社の登録商標または商標です．

29