**********************************************************************
セッションs2-b
テーマ:箱庭・試行の軌跡と新たなチャレンジ ~箱庭はなぜ技術屋の心を揺さぶるのか~
講師:森 崇((株)永和システムマネジメント)
日時:2022/9/2 9:30~10:00
参加人数:3+オフライン参加者数(11) 名(開始時)
**********************************************************************
自己紹介
・組込みとかを色々やっていたが、TOPPERS/箱庭WGとかにも参加した

アジェンダ
1.箱庭コンセプトと目指すところ
2.最初の3年でやってきたこと
・裏歴史中心に話していきたい
3.今年のチャレンジテーマ
4.箱庭はなぜ技術屋の心を揺さぶるのか
5.今後の方向性/ロードマップ

IoTシステム開発時の課題
・箱庭に挑戦している技術的な背景
・IoT開発には様々な分野の技術者の結集が不可欠だが、色々な技術が横断している為、実証実験時にどこで問題が出るのかがわからない
・講師自身苦労した経験があり、これを解決するために箱庭のコンセプトを立てた

箱庭の狙いとコンセプト
・仮想環境上(箱庭)に様々なもの(ロボット制御、組込み、Web 等のプログラム)を組み合わせ、実証実験前に試して問題をたたき出せれば開発が楽になると考えた

箱庭WGの目指すところ
・箱庭のターゲット:ロボットや物流などのIoTのような様々な複雑なシステム
・箱庭とは:全体結合シミュレーション環境
・箱庭の利用者
・シミュレーションを利用する人
・箱庭のアセットを提供する人
・IoTシステム開発者/提供者の為のシミュレーション環境とエコシステムを構築する
・最終ゴールはここだと思っている
 

最初の3年でやってきたこと
・mROS x Athrill x UnityでLチカ
・ビジュアライズのUnityと箱庭開発メンバーが使える技術(mROS、Athrill)を組み合わせたプロジェクト
・割と楽しかった
・Unityの理解が進んだ

・mROS x Athrill x Unityで車の制御
・Unity上の標準的に準備されている車を制御した
・mROSとAthrillで車を動かした感動が懐かしい

・Athrill x ASP3/EV3RT をブラウザでデバッグ
・箱庭合宿があり、第一弾の箱庭の出し物としてETロボコン向けのシミュレーターを開発した
・ブラウザでデバッグできるようにした
・楽しかったがこのプロジェクトのソースコードが紛失した

・Athrill x ASP3/EV3RTでUnityモータ動かす
・Unity上で差動モータを動かすことが出来た
・ETロボコンのシミュレーションが作れそうと思った

・Athrill x ASP3/EV3RTでロボット動かす!
・ロボットをシミュレーター上で組み立てて、EV3RTのサンプルプログラムを書き込んだら動かせた
・ETロボコン向けのシミュレーターが出来たと思った

・Athrill ARM対応始める!
・AthrillにARMの命令を追加していった
・命令数26個実装して“Hello ARM World!”を表示する事が出来た

・ARM版AthrillでETロボコンシミュレータを動かす
・ARM版、MAC版ともに動かすことに成功した

・ARM版Athrillの開発難航する
・ARM版の命令が多く、少しずつ追加していった

・ARM版AthrillでmROS動かしてマルチECU環境へ
・ARM版Athrillの開発のトレーニングの1つ
・トレーニングにはよかった
・この頃にコロナのごたごたが発生
・ETロボコンのシミュレーターについてARM版とV850版の品質を聞かれた
・気持ち的にはARM版を推したかったけど、V850版の方が実績はありこちらが採用された

・UnityとAthrill間で相互に時間同期させることに成功!
・箱庭としてのロボットシュミレーション環境を洗礼させていった
・ETロボコンとはまた別の話
・UnityとAthrillのそれぞれシミュレーション時間を同期させた

・C#版箱庭コア機能が出来上がり、2台のロボットを走らせることに成功
・箱庭のコア機能をC#で開発した

・様々なセンサやモータを組み込むことに成功した
・タッチセンサ、ジャイロセンサ、アーム・モータなどが追加した

・mROSを使って2台のロボットを動かすことに成功
・2020年のSWESTで発表
・mROSでHackEVを制御できるようになった

・箱庭教育演習コンテンツ作成した
・箱庭の形は出来てきたので教育演習コンテンツを整備し始めた
・講師が色んなものにはまり、このコンテンツの開発は進んでない

・gRPCにハマる
・Athrillの周辺デバイスを様々な言語で実装したいと考え、gRPCについて調べ始めた

・AthrillデバイスxgRPCでBluetoothデバイス作った
・依頼されて作成したが、多分使われていない

・箱庭のdocker対応成功!
・インストールの手間を少しでも減らすためにdockerに対応させた

・箱庭コア機能のgRPC対応を始める
・外からgRPCコードでシミュレーションの制御が出来るようになった

・箱庭単体ロボットシミュレータのmRuby対応に成功
・こちらも要望があった

・箱庭通信データのプロトコルバッファ対応に成功
・gRPCの利点の1つとしてデータの可視化ツールが使える

・箱庭コア機能の再設計・機能
・これ以降にコア機能の拡張には手を付けていない

・箱庭コア機能の時間同期がどこまでやれるかを実験していた
・箱庭のコア機能の1つ、設計上何個でも時間同期が出来る
・現状2個しかなかった
・Athrillを10個立ち上げて時間同期を試して成功した

・箱庭上でTurtleBot3を動かすことに成功!
・ROSのユーザー向けに箱庭を展開することになった
・Unityのアセット上でTurtleBot3を動かした

・Unityが正式にROS対応していた
・実際にROSトピックが流れたことが確認できた

・箱庭上で、HackEVをROSで制御できるようになった
・箱庭にROSを取り入れない手はなかった

・道路自動作成ツールの開発を始める
・箱庭は環境モデルも作る必要がある
・jsonファイルをunityで取り込んで道路モデルを作成する
・Unityのアセットを組み合わせて作成した

・クオータニオンの壁に悩まされる
・Unityで使われるデータ型「クオータニオン」が分からなかった
・会社の社長が分かりやすい記事書いてくれたのでそれで勉強した

・箱庭のROS2対応始まる!
・qiita記事で一般公開し、人気が出た

・道路自動作成ツール公開

・箱庭教育コンテンツの一般公開
・授業で使う資料の一般公開の許可がとれ、公開した

・Unityの新しい物理モデルに挑戦!
・シミュレーション精度が良いArticulation Bodyを箱庭に取り入れようとし始めた

・URDF食わせてUnityで動かせるようになった
・URDFからArticulation Bodyを作成して、箱庭上で動かせるようになった

・TB3のカメラ対応できた!箱庭仲間に感謝
・箱庭メンバーの協力のもと、Rviz上で箱庭内のカメラ情報を取得できるようになった

・ROS対応版箱には、実はこんな隠し機能があったりします
・箱庭内に監視センサを配置すると、ロボットがどこにいるか検知できる

・箱庭のWebサービスのアーキテクチャを描く
・昨年からWeb系の仕事に切り替わり、箱庭上でWebの勉強をしたかった


今年のチャレンジテーマ
・箱庭を実現するゲーム技術
・Photon Cloudで複数拠点にあるロボットを同期させた
・箱庭アバターを作成し、Oculus Quest2を通して箱庭空間にVRだいぶすることが出来た
・箱庭チュートリアル技術

箱庭はなぜ技術者の心を揺さぶるのか
・常に試行錯誤しながら自身の成長を実感しながらやり続けるのが楽しいと思えたのが一番大きい

今後の方向性・ロードマップ
・プロトタイプは出来てきたためチュートリアルを作り、箱庭ユーザーを広める活動にシフトしていく
・ターゲット
・組込み系エンジニア:ECU/AUTOSAR開発入門シミュレーション環境
・ロボット制御系エンジニア:ロボット制御モデリング/プログラミングシミュレーション環境
・ロボットAI系エンジニア:ロボット制御学習サイクル自動化入門シミュレーション環境
・目指せ、2025年大阪万博

質問
・手を動かして熱中するというのは、どういうところなのか(抽象的に)?
・箱庭のコンセプトに近づいている感があったこと
・実際にUnity等動いているのが目に見えるのが原動力になっている


・まとめ
・3年間で箱庭の開発を進めてきた
・今後ゲーム技術との連携や箱庭ユーザーを増やしていく活動をしていきたい
・試行錯誤しながら作り続けるのは楽しい(成果が目に見えると尚良し)
以上