箱庭のプロトタイプ開発と異種レイヤ間の時間同期機構
2020/06/12
森 崇（永和システムマネジメント）
⾼瀬 英希（京都⼤学／JSTさきがけ）© Copyright 2020, ESM, Inc.

2⽬次
1. 箱庭プロトタイプ・モデルの紹介• 単体ロボット(ETロボコン)向けシミュレータ• ROS・マルチECU向けシミュレータ• ロボット間協調動作向けシミュレータ(RDBOX連携)• 箱庭プロトタイプ・モデルの開発状況
2. シミュレーション時間同期機構の紹介• シミュレーション時間同期の仕組み• 時間同期の実装⽅式(UDP⽅式/MMAP⽅式)• 適⽤事例紹介© Copyright 2020, ESM, Inc.

3

箱庭のプロト・タイプモデル
箱庭コンセプトの実現/技術研鑽するために，以下の３つのプロトタイプモデルを構築する予定です．
仮想化 プロト・タイプモデル
レベル
1,2

A︓
単体ロボット向けシミュレータ

2

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

3

⽬的・時間同期の仕組み
・広報活動

・ヘテロ環境の机上構築
・通信可視化・箱庭アセット仕組み
C︓・クラウド連携
ロボット間協調動作向けシミュレータ ・ロボット連携© Copyright 2020, ESM, Inc.

4

A︓単体ロボット(ETロボコン)向けシミュレータ
マイコン・シミュレータ
制御処理(C/C++)
EV3RT
ASP3/ASP
athrillETロボコンを題材として構築

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

技術研鑽視点での狙い︓
・物理シミュレータとマイコンシミュレータ間のHackEVのUnityアセットは，ETロボコン実⾏委員会より提供いただいたデータを基に作成しています．
連携⽅法の検討
実⾏委員会の皆さまに深く感謝いたします．
ただし本アセットはETロボコンの本番環境とは異なりま・異なるシミュレータ間の時間同期の検討すので，⼤会に参加予定の⽅はご注意ください．
その他の狙い︓
また，本アセットは，個⼈利⽤または教育利⽤に限・ETロボコンユーザ層に箱庭を広める（広報活動） 定してご利⽤ください．
© Copyright 2020, ESM, Inc.

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

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

病室

FPGA/GPU

センサ
画像認識(athrill/mROS)

ロボット
制御

モータ
制御

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

仮想マイコン

仮想Linuxマシン(QEMU)

6

トピック
• クラウド IDE とエミュレータを利⽤した実機レス開発環境とも連携します︕• 2019年/TOPPERS 活⽤アイデア・アプリケーション開発コンテスト受賞作品(⾦賞)★クラウドIDEを箱庭の開発環境として︕

まずは，箱庭プロトタイプの開発・検証環境として利⽤させて頂きます︕︕★庭野さんに感謝★
© Copyright 2020, ESM, Inc.

7

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

物理シミュレータ

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

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

8

箱庭プロトタイプ・モデルの開発状況
プロトタイプモデル
マイコン・シミュレータ

技術調査

実装

動作確認

配布

〇〇〇×

制御処理(C/C++)
EV3RT
ASP3/ASP
athrill

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

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

RDBOXとの連携⽅法/デモ内容等について構想検討中© Copyright 2020, ESM, Inc.

9

⽬次
1. 箱庭プロトタイプ・モデルの紹介• ETロボコン向けシミュレータ• ROS・マルチECU向けシミュレータ• ロボット間協調動作向けシミュレータ(RDBOX連携)• 箱庭プロトタイプ・モデルの開発状況
2. シミュレーション時間同期機構の紹介• シミュレーション時間同期の仕組み• 時間同期の実装⽅式(UDP⽅式/MMAP⽅式)• 適⽤事例紹介© Copyright 2020, ESM, Inc.

10

シミュレーション時間と時間同期の背景• 箱庭の構成要素• 様々なシミュレータが混在を許す環境です• シミュレーション時間• 各シミュレータはそれぞれ固有のシミュレーション時間を持ちます• シミュレーション時間同期• 各シミュレータが独⽴して動作するとシミュレーション実⾏タイミングがズレます• 箱庭環境では，これらのシミュレーション時間を同期させる⽅法を確⽴します
シミュレーション時間同期

シミュレーション時間１

シミュレーション時間２

シミュレーション時間３

シミュレータ１

シミュレータ２

シミュレータ３© Copyright 2020, ESM, Inc.

11

既存のシミュレータ時間同期⽅式• FMI（Functional Mock-up Interface)• 欧州の公的プロジェクトが規格化• シミュレーションツールに依存しないモデル接続のための共通インターフェース

FMI
tool1

tool2

tool3

supplier1

supplier2

supplier3• シミュレーション時間同期⽅式• ME(Model Exchange)• 完全に時間同期が可能• CS(Co-Simulation)• シミュレータ間の遅延時間(固定)を許容• 適切な遅延時間をユーザが選択する• 考察• いずれも中央制御⽅式であるため，精度調整は容易であるがシステム構成要素が増えると処理オーバーヘッドが⾼くなると考えられる.
© Copyright 2020, ESM, Inc.

12

箱庭WGで新規に検討した時間同期⽅式• 箱庭の時間同期⽅式• 中央制御⽅式ではなく，並列化が容易な分散制御⽅式でのシミュレーション時間同期⽅式を検討• 仕組み(ハーモニー)• 各シミュレータは 箱庭時間(マエストロ)をみながら，箱庭時間シミュレーション時間調整し時間同期する(ハーモニー)• 箱庭時間より早い場合• シミュレーション時間を遅くする• 箱庭時間より遅い場合

シミュレーション時間同期のためのピンポンはしない．ミュレータのベス
ト・エフォートでの並列同期を実施• シミュレーション時間を早くする• 各シミュレータ時間を可視化• 時間同期の程度を定量化• 環境スペックの妥当性を評価・調整

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

シミュレーション時間１

シミュレーション時間２

シミュレーション時間３

シミュレータ１

シミュレータ２

シミュレータ３© Copyright 2020, ESM, Inc.

13

シミュレータ間の通信⽅式(UDP/MMAP)• 箱庭時間の通信⽅式として以下の２つの⽅式があります• UDPで箱庭時間を共有する⽅式• メリット︓各シミュレータは別PCに配置可能であり，負荷分散可能• デメリット︓ディレイあり

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

シミュレータ１
シミュレータ２
シミュレータ３• MMAPで箱庭時間を共有する⽅式• メリット︓ディレイなし• デメリット︓箱庭時間管理機構と隠しシミュレータは同⼀PC内に配置する必要あり

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

シミュレータ１
シミュレータ２
シミュレータ３© Copyright 2020, ESM, Inc.

14適⽤事例紹介(単体ロボット向けの場合の構成)• UDP⽅式(MMAP⽅式も可能)• 物理シミュレータ(Unity)のセンシングデータ送信タイミングで箱庭時間通知する• マイコンシミュレータ(athrill)が箱庭時間にあわせて時間調整する

物理シミュレータ(Unity)

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

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

EV3・センシングデータ

・センシングデータ

箱庭時間同期機能

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

・センシングデータ
・時間(Unity)
UDP通信
・センシングデータ
・時間(Unity)© Copyright 2020, ESM, Inc.

15

適⽤事例紹介(デモ動画)[デモ内容]
制御アプリケーションにより，HackEVがライントレースします．
⾛⾏路にはカラーコードを配置しており，制御アプリケーションの⾊認識により，加速/減速/停⽌します．
⾚︓加速，緑︓減速，⻘︓停⽌[Athrill][Unity][条件]
Unityのシミュレーション精度︓ 5msec
制御アプリケーション周期 ︓10msec

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

16

謝辞・特記事項• Unityパッケージの設計と作成にあたっては，宝塚⼤学 東京メディア芸術学部

吉岡章夫准教授および学部⽣の杉﨑涼志さん，⽊村明美さん，千葉純平さんにご協⼒いただきました．

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

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