**********************************************************************
セッション s1c 9/1(木) 19:30〜21:00
テーマ:シミュレータと実機を併用する開発実習をやった話
講師:祐源英俊(オムロン株式会社)
参加人数:6名
**********************************************************************

自己紹介
祐源英俊(ゆうげんひでとし)
2018年,LED-Camp6 に参加し,実行委員に(4年目)
LED-Campでは教材開発を担当
オムロン株式会社に勤務(2年目)

発表内容の概説
諸学者向けの開発実習LED-Campの実施報告
ハイブリッド(実機 + シミュレータ)形式の教材に関して
どうやって実現されたか?
実際,どうだったか?
そのあたりを踏まえて,開発型研修・教育活動・その教材に関して議論・意見交換したい

LED-Campとは
組込み初学者(学生,社会人1,2年目)向け
合宿形式
競技会を通して,アジャイル・スクラム・モデル駆動開発の講義・実習

これまでのオンサイト形式について
ラズパイ3Bベース
UML図もとにコード自動生成
外部からの操作なし

昨年の完全オンライン形式について
オンライン形式のTankをロボットシミュレータWebots
参考: デモ(https://github.com/LED-Camp/LED-Camp9_SWEST23_demo)

今年のハイブリッド形式(実機 + シミュレータ)について
ハイブリッドの意図するところ
開発のボトルネック解消
チーム3,4人に一台
コースもタイムスライスで共有
シミュレータでのソフト検証は大事
個人がシミュレータを使用して,コンパイルエラーやイージーミスは取り除ける
でも実機検証も大事
実機とシミュレータは完全には一致しない
どのくらいできるのかを体感してもらえる
実行委員の興味
ナウくね??

ハイブリッド実現の技術的な概説
設計的にまずいところがあったのでほぼ開発しなおした
参加者が作成する制御コードは書き換えなくハイブリッドでうごくようにした
ドライバやミドルウェアでうまいこと抽出化・吸収できるようにしていた
参加者のコードはある程度定型(UMLからの自動生成,内製のAPI)

おまけ
ラズパイからmicro:bit(v2.2)へ変更する計画があった
意図するところ
クロス開発が必須,組込みっぽい
調達の容易さ
課題
printfの扱いが要検討
ラズパイと比べて処理性能が…

ハイブリッド実施報告
8/29 ~ 9/1 下呂温泉木曽屋
参加者9名
社会人2,院生2,学部生1,高専生4,3人チームx3
課題:Tankで円柱を押し出す
実機にあってシミュレータにない機能の代替はどうするか
実機とシミュレータのコードは共通なので,そこは問題なし
ただし,パラメータ調整がかなり大変
シミュレータと実機で取れる値をそろえる必要
筐体の個体差を減らすためにかなりの調整を行った

参加者の様子
ハイブリッドに関してのトラブルは特になし
生成コードは共通
実行手順が容易
シミュレータも軽量
活用具合
序盤:実機の特性把握に注力
中盤:シミュレータが活躍
終盤:同上,ただし実機でのチェックも盛ん
ボトルネックの解消はかなりできていた
シミュレータでのコード整備しながら実機検証を同時並行で行う様子など
フィールド待ちの時間でシミュレータで議論
シミュレータを過信しすぎないかという心配が…
割り切って使ってもらえた
シミュレータは精度がよすぎるという認識
例年に比べて
どのチームも高得点
終盤でコンパイルエラーで焦らないから?
イージーミスが減っているから?
情報共有が盛ん

参加者の反応(アンケート結果)
Q: 教材・課題の難易度は?,A: 普通
Q: Tankは使いやすかったですか?,A: 使いやすかった
Q: シミュレータは活用できたか?,A: 一部実機との差が大きくて使いこなせなかったとの声が…

まとめ
おおむね好評だった一方,改善の余地はあり
実行委員大募集中!!!!

************************************************
ここまで発表パート / ここから議論パート
************************************************
Q:質問,O:意見,A:答弁

Q「実機との差を割り切った理由は何か,近づけることは可能なのか」
A「近づけるコストが高い
摩擦,重さ,光学センサなどのパラメータの調整
本質的なところに注力できない
参加者PCのスペックを考えると…
要件を考える軽量さは必須
実は実機のキャタピラを再現する処理が重くて,4輪で代用している
可能かに関してはかなり技術的に厳しい」

Q「序盤でシミュレータが使用されないことは想定内だったか」
A「想定されていたよりも触られなかった,実機のパラメータ調整に注力されていた」
Q「それに対し,実行委員としてはどう感じたか」
A 最初からパラメータ調整に注力するのはうまくいかないんじゃないかという不安はあったが,結果的には大丈夫だった」

O「実機とシミュレータの違いを自覚させるための教材・実験を増やすとどうか」
A「来年以降,追加の検討をしたいと思います」

O「実機とシミュレータの差を割り切って,精度が必要とされるというルール設計を改めて,甘い制御でも賢い戦略なら高得点が取れるようにルール設計するのもアリじゃないか?」
A「ありがとうございます」

Q「アンケート結果を見るととてもよいように見えたが,シミュレータを活用できた人とそうでない人の違いは何だろうか」
A「割り切れた人とそうでない人がいたのかなと思う」

Q「参加者のレベル感は?」
A「バックグラウンドはそこまで把握してないが,ソフトウェアの素人はいなかった」

Q「シミュレータWebotsを選択した理由は?」
A「調査の結果,動作が軽量でノートPCでもヌルヌル,C++のビルド環境がついてくる,Unityはさすがに重そう
実際,動かなくてお話にならないという人はいなかった」

Q「最近髪型変えた?」
A「ソフトモヒカンにしてくれといったら,あまりソフトじゃなくなりました」

Q「今年の新規実行委員志望者はいましたか?」
A「今のところ0です」

Q「オンラインの人と現地の人のハイブリッド開催はどうか」
A「今のところ考えたことはない」
O「オンライン組の疎外感がありそう…」
O「完全オンラインも懇親会がかなり難しい」
O「シミュレーション環境一個にすれば,一体感が生まれるのでは?」

以上.