ETロボコン2020開催発表会(概要)docs.etrobo.jp/information/et2020presentation.pdfCS...

88
ETロボコン2020 開催発表会資料/ETロボコン実行委員会 1 ETロボコン2020 開催発表 2020年2月14日 ETロボコン実行委員会

Transcript of ETロボコン2020開催発表会(概要)docs.etrobo.jp/information/et2020presentation.pdfCS...

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 1

ETロボコン2020開催発表

2020年2月14日

ETロボコン実行委員会

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

1.主催者挨拶2.ETロボコン2020 開催概要3.競技内容について4.モデル審査について5.ETロボコン活用事例紹介、パネルディスカッション6.募集告知、各種重要案内7.コース披露、走行デモ8.ETロボコン2020への期待9.質疑応答、交流会

2

プログラム

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 3

主催者挨拶

理事 渡辺 博之

一般社団法人

組込みシステム技術協会

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 4

2020年2月14日

本部運営委員長

櫻井 隆

ETロボコン2020開催発表会資料

ETロボコン2020全体内容

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 5

1. エンジニア人材不足2. 3分でわかるETロボコン3. 2020年の取り組み4. ETロボコンに参加する理由

●アジェンダ

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 6

エンジニア人材不足

●Step 1/4

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 7

エンジニア人材の不足

技術の発展にともない、今後ますますエンジニア人材の不足が拡大していくと言われています。特に組込み技術やIT、AIやIoTなど新しい技術に対応できるエンジニアの大幅な不足が予想され、業界

にとって深刻な問題となっています。

取巻く業界の風

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 8

エンジニア人材の不足

「エンジニア人材不足」でなく新しい技術に対応できるエンジニア

の人材が不足している(挑戦し続けないエンジニアは淘汰される?)

取巻く業界の風

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 9

学生への影響は?

リテラシー教育だけでなくもう一歩先のスキルが必要

プログラミングや、設計技法といった基本的なスキルを取得しておくべき

取巻く業界の風

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 10

企業人はどうしたらいいのか?

個人のスキルアップと企業の成長は「表裏一体」

新しい取り組みに挑戦することで共に成長する

取巻く業界の風

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 11

3分でわかるETロボコン

●Step 2/4

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 12

技術教育機会の提供

5年後、10年後に世界をリードするエンジニアの育成を目指し、初心者からベテランまで

幅広い層が相互に刺激し合える場を提供する

ETロボコンとは

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 13

今年で19年目全国12地区展開(地区大会は9地区)

世界的にも珍しいソフトウエア重視の教育ロボコン(使用するロボットは同じ規格)

ETロボコンとは

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 14

今年で19年目全国12地区展開(地区大会は9地区)

ETロボコンとは

各地区の代表が全国大会へ

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 15

ETロボコンとは

ロボットは全クラス共通

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 16

ETロボコンとは

広さ12畳LとRのコースを走行する

ベストタイム方式

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 17

ETロボコンとは(ロボコンスキルマップ)

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 18

ETロボコンとは(ロボコンスキルマップ)

テクニカルスキルだけでなくヒューマンスキルやコミュニケーションスキルも

体験できる

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 19

ETロボコンとは(年間スケジュール)

今年のルール、コース発表をいち早くキャッチすることができます

開催発表会2020.02

制御要素技術・モデリング基礎の教育をあわせて2回開催し、初参加チームでも基礎から学ぶことができます

技術教育2020.05~06

競技会ロボットの競技を実施します

モデリングワークショップシステム開発技術力向上を目指し、審査員と参加者がともに議論します

懇親会参加者と実行委員会が同じテーマで交流できる貴重な場

地区大会2020.09

各地区の実行委員会が参加にあたるルールや参加条項などを説明します

実施説明会2020.03

本番コースによる走行を試します※本番コースで走行できる少ない機会

試走会2020.07~08

全国の猛者から真の王者を決める大会※大会プログラムは地区大会と同じ

チャンピオンシップ大会2020.11

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 20

ETロボコンとは(チャンピオンシップ大会)

チャンピオンシップ大会

北海道地区

南関東地区

東京・北関東合同地区

東北地区

東海地区

関西・北陸合同地区

中四国地区

九州北地区九州南地区

沖縄地区

※各地区大会の優秀チームがチャンピオンシップ大会の出場権を獲得※エントリークラスは、地区大会までの出場とします(チャンピオンシップ大会の出場はなし)

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 21

地区大会の合同開催

開催地区

対象地区 合同開催

北陸地区 関西・北陸合同地区 各イベントを合同で開催

北関東地区 東京・合同地区

九州南地区 九州北・九州南地区大会 地区大会のみ合同開催

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 22

「競技」と「設計書(モデリング)」で勝負

なぜ「設計書(モデリング)」が必要なのか?

ETロボコンとは

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 23

「競技」と「設計書(モデリング)」で勝負

ETロボコンとは

複雑化するシステム要求を明確にするために、不必要な情報をそぎ落とし、本質的な部分に焦点を当てて、情報を正しく確実に

伝えることが目的である

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 24

「競技」と「設計書(モデリング)」で勝負

ETロボコンとは

複雑化するシステム要求を明確にするために、不必要な情報をそぎ落とし、本質的な部分に焦点を当てて、情報を正しく確実に

伝えることが目的である

設計技術を学び開発工程に生かす

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 25

ETロボコンとは

設計図(モデル図)

競技(走行)

総合成績

両者の成績が良くないとダメ

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 26

2020年の取り組み

●Step 3/4

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 27

2019年経済産業大臣賞受賞

2020年の変革

経済産業省が経済社会の情報化の促進に貢献したと認められる企業、団体、機関等を表彰する令和元年度「情報化促進貢献個人等表彰」にて、情報処理推進機構(IPA)殿のご推薦により、「経済産業大臣賞」の受賞となりました

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 28

2019年経済産業大臣賞受賞

2020年の変革

・平成14年から毎年主催し、本取組を通じて組込み産業界の人材育成に大きく貢献・本ロボットコンテストは、教育効果を高める工夫が多くなされていることが大きな特徴で、実績面でも北海道から沖縄まで全国12地区で地区大会を実施し、参加者は累計で4095チーム・22700名にのぼるなど、十分なものが認められました

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 29

いろいろなスキルレベルに合わせたステージを用意

2020年の変革

エントリークラス(新設) 入門スキルプライマリークラス 基礎スキルアドバンストクラス 応用スキル

CS選抜なしCS選抜ありCS選抜あり

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 30

初めての人でも参加できる仕掛け

2020年の変革

入門者向けのエントリークラスを新設(学校)情報工学系、(企業)組込み・IT業界はもちろんのこと、他分野からの参加も視野に入れる

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 31

3つの学び場(クラス)を提供

2020年の変革

クラス名 概要

エントリークラス 今までやったことない人がものづくりの場

プライマリークラス モデルを使うことで品質を良くする場

アドバンストクラス

自分たちで課題をつくり、それをモデルで解き、新しい技術を使ってみる場

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 32

なぜETロボコンに参加するのか?

●Step 4/4

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

チーム管理者アンケート結果

33

学んでほしいことや身につけてほしいこと

プログラミング19.0%

コミュニケーション(チーム内、社内、社外)

14.3%

9.5%

プレゼン(人前で話す、発表)

2.4%

チームマネージメント

26.2%

モデリング28.6%

成功体験

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 34

チーム管理者アンケート結果

プロジェクトを遂行する際に遭遇する様々な困難な場面への対応力、原因の探求力

チーム内で意見の対立等あったが、解決に向けて方向性を修正しながら取り組むことができた

自ら学んで実行することができるようになったと感じています

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 35

チーム管理者アンケート結果

社会と接する機会が増え、精神的にも大人になり社会的な常識がわかるようになった

ソフトウェアの品質検証やタスク管理の重要さに気づいた。例えば、卒業研究で開発しているソフトウェアのテストを積極的にするようになり、タスクの見える化を図って付箋等を壁に貼るようになった

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 36

チーム管理者アンケート結果

スケジュールを意識した開発を行うようになった、 同じ開発をする仲間同士、情報共有をしっかりと行うようになった

今まで経験したことのなかったチーム開発を経験したことで知識・技術を共有することの大切さを知った

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 37

組織の醸成

エンプロイーエクスペリエンスの向上(Employee Experience)

取巻く環境で体験する経験価値

合理的・人間的で満足度が向上

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 38

組織の醸成

エンプロイーエクスペリエンスの向上(Employee Experience)

取巻く環境で体験する経験価値

合理的・人間的で満足度が向上やりがいや成長を実感組織と共に成長する

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 39

2020年2月14日

本部運営委員長

櫻井 隆

ETロボコン2020開催発表会資料

ETロボコン2020全体内容

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 40

ETロボコン2020開催発表会資料

ETロボコン2020 競技内容

2020年2月14日

本部技術委員長

高橋 寛之

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

はじめに

• ETロボコンでは、 競技部門 と モデル審査部門 の総合 で順位を競います

※どちらか一方のみの参加はできません

• 競技部門の実施内容をご紹介します

41

競技部門結果

モデル審査部門結果

総合結果

※2020年2月14日時点の情報であり、今後一部見直しとなる可能性があります。確定内容は2020年4月下旬発行予定の競技規約にて公開されます。

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

競技内容:クラス構成

プライマリー

アドバンスト

42

エントリー

統一走行体

HackEV

ライントレース

画像処理・A

I応用

走行体制御

走行体 競技内容 学び場

今までやったことがない人がものつくりに触れる場

ものつくり体験

単一システム開発

複数システム開発

モデルを使うことで品質良く作る場

AI/IoT時代のシステム作りにモデルを応用する場

エンジニアの学び場~ホップ、ステップ、ジャンプで未来にはばたけ!

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

コース

43

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

基本ルール

44

前半:ライントレース⇒「走行タイム」取得

後半:難所攻略⇒「ボーナスタイム」取得

走行タイムー ボーナスタイム

リザルトタイム

Lコース・Rコースを走行、良い方のリザルトタイムで

順位付け

合わせて2分以内に攻略

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

難所紹介

プライマリー

アドバンスト

45

エントリー

統一走行体

HackEV

ライントレース

画像処理・A

I応用

走行体 競技内容 学び場

今までやったことがない人がものつくりに触れる場

ものつくり体験

単一システム開発

複数システム開発

モデルを使うことで品質良く作る場

AI/IoT時代のシステム作りにモデルを応用する場

エンジニアの学び場~ホップ、ステップ、ジャンプで未来にはばたけ!

走行体制御

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

難所紹介:ブロック運び

ブロックを前方のボーナスエリアへ運ぶ

• 運んだ距離に応じてボーナス獲得

• 距離が足りなかったり、行き過ぎていたらボーナス獲得不可

46

エントリー

ルール

ポイント

ラインに頼ることなく、狙った方向・距離を直進させる

運ぶ

ボーナスエリア

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

難所紹介

アドバンスト

47

エントリー

統一走行体

HackEV

ライントレース

画像処理・A

I応用

走行体 競技内容 学び場

今までやったことがない人がものつくりに触れる場

ものつくり体験

複数システム開発

AI/IoT時代のシステム作りにモデルを応用する場

エンジニアの学び場~ホップ、ステップ、ジャンプで未来にはばたけ!

プライマリー単一システム開発

モデルを使うことで品質良く作る場走

行体制御

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

難所紹介①:スラローム

障害物が置かれた板の上を通過する

• 進入ラインから乗り、通過ラインから降りる

• 障害物を倒さず通過できると追加ボーナス

48

プライマリー

ルール

ポイント

ラインに頼ることなく、狙った方向・距離を蛇行させる

すり抜ける

進入ライン通過ライン

障害物

障害物

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

難所紹介②:ガレージ

ガレージ内に停止する

• ガレージに触れてはならない

• ブロックビンゴ2020エリア内にあるブロックを運び入れると追加ボーナス

49

プライマリー

ルール

ポイント

狙った位置へ正確に走行体を移動、停止させる

ブロックを運び入れるには、さらに高度な自律走行制御が必要

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

難所紹介

50

エントリー

統一走行体

HackEV

ライントレース

画像処理・A

I応用

走行体 競技内容 学び場

今までやったことがない人がものつくりに触れる場

ものつくり体験

エンジニアの学び場~ホップ、ステップ、ジャンプで未来にはばたけ!

プライマリー単一システム開発

モデルを使うことで品質良く作る場

アドバンスト複数システム開発

AI/IoT時代のシステム作りにモデルを応用する場走

行体制御

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

難所紹介①:ブロックビンゴ2020

ブロックを同じ色の円に運び、縦・横のビンゴを完成させる

• 各ブロックの初期配置はスタート直前に決まる

• 色ブロック1つは配置済

• ビンゴ成立の数に応じてボーナス

51

アドバンスト

ルール

2数字カード

数字なし黒ブロック

数字つき黒ブロック

数字なし黒ブロック→数字カードが指定する円へ

数字つき黒ブロック→その数字の円へ

黒ブロックを指定された数字の円に運ぶと追加ボーナス

ビンゴ成立例(横1列)

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

難所紹介①:ブロックビンゴ2020(続き)

カメラ撮影画像を利用

• 各ブロックの位置、色の把握

• 数字カードの数字の把握

• 数字つき黒ブロックの数字の把握

⇒ 画像処理技術、AIを用いた認識技術などを応用して攻略

52

アドバンスト

ポイント

2

カメラ

カメラ撮影画像の例

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

難所紹介②:ガレージ

プライマリークラスと同じだが、ブロックを運び入れることによる追加ボーナスはない

53

アドバンスト

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

走行体 HackEV

54

ジャイロセンサ

タッチセンサ

超音波センサ

モータ(車輪用)

カラーセンサ

モータ(尻尾用)(背面)

モータ(アーム用)

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

開発環境

• 開発環境は自由に選択可能

• 技術教育では以下を使用

リアルタイムOS TOPPERS/EV3RT

プログラミング言語 C++

• ETロボコン EV3サポートサイトにて随時発信

http://etrobocon.github.io/etroboEV3/

55

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 56

ETロボコン2020開催発表会資料

ETロボコン2020 競技内容

2020年2月14日

本部技術委員長

高橋 寛之

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 57

ETロボコン2020開催発表会資料

ETロボコン2020 モデル審査内容

2020年2月14日

本部審査委員長

土樋 祐希

ETロボコンのモデル審査位置付け

58

⚫ ETロボコン競技を題材に、提出モデルの達成度を評価する事で、参加チームにモデリングスキル定着・向上の機会を提供

⚫ 大会後も審査委員のフィードバックや他チームのモデル/評価を参考に、さらなるレベルアップができるようにする

本日の内容は2/14時点でのものであり、正式な審査規約で変更される可能性があります。審査規約の公開は4月末を予定しております

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

2020年度の審査方針

エントリー、プライマリー、アドバンストの各クラスでモデリングを段階的に学べる場とする

59

エントリー

プライマリー

アドバンスト

モデルを見て変更する

モデルとコードの対応を理解する

自らモデルを構築する

モデルを使って課題を解決する

複数システムのモデリング

単一システムのモデリング

5年後10年後活躍するエンジニアに!

AI/IoT技術の活用

モデリング未経験者 モデリングへの興味

Hop!

Step!

Jump!

モデルを使って品質を高める

はばたけ!

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

モデル関連スケジュール

3 4 5 6 7 8 9 10 11

60

申し込み締め切り(5/end)

4/end

審査規約確定

申し込み開始

技術教育

地区大会モデル提出(地区大会2-4週前)

地区大会モデル審査

各チームのモデル提出準備期間

CS大会

CSモデル審査申し込みから地区大会のモデル提出までは最長6ヶ月程度を確保

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

エントリークラス審査概要

• 狙い– モデリング未経験・ソフトウェア開発初心者がモデルを読んで理解し、

改良を加えることで、モデルの使い方を体験する

– 設計と実装の繋がりを把握する

• 実施内容– 教材として提供されるモデルとソースコードをベースに競技課題に

合わせて変更を行う

– 提供されるコードはC++。実装としては他の言語を使用しても良い(コードは審査対象ではありません)

– 作成するモデルはA3用紙 1〜3ページ

• 審査ポイント– 図を使って構造と振る舞いの変更点を

表現できているか

– 伝えることを重視し、モデルの厳密な正確性については緩めに評価します

61

エントリー

運ぶ

ボーナスエリア

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

エントリークラス:提供モデル例

• サンプルとして提供される設計モデル(教材のモデル)

62

エントリー

走る()

ランダムウォーカー

スタートボタンが押されているか調べる()

スターター

走行する向きを計算する()

走る()

ライントレーサー

走る()

シナリオトレーサー

指定時間を設定する()

指定時間経過したか調べる()

時間を測り始める()

経過時間開始時間指定時間

シンプルタイマー

シンプルタイマー

1

1

乱数を取得する()

ライブラリ関数

スターター1

1

ライントレーサー1

1

シナリオトレーサー1

1

シンプルタイマー1

1

ライブラリ関数1

1

構造モデル

entry / 初期化する

スタート待ち

exit / タイマーを停止するdo / ライントレースするentry / タイマーを起動する(乱数時間)

ライントレース中

スタートボタンが押された

exit / タイマーを停止するdo / シナリオトレースする

entry / タイマーを起動する(乱数時間)

シナリオトレース中

指定時間経過した

指定時間経過した

振舞いモデル(ステートマシン図)

教材には本モデルに対応する実装モデルおよびソースコードが提供されます。設計と実装の繋がりを理解することができます

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

プライマリークラス審査概要

• 狙い– モデリング初級者が競技課題に合わせてモデルを構築する事で、モデリング

の基礎を身につける

– 品質向上に向けた取り組みを行う

• 実施内容– 選択した機能に対してモデルを作成

• 「コースを完走する」 「スラロームを通過する」「ブロックを運ぶ」「ガレージで停止する」から選択

• 機能、構造、振る舞いの各モデルを記述

– 作成するモデルはA3用紙 1〜6ページ

– 性能向上や信頼性向上における工夫点の記述(オプション)

• 審査ポイント– ソフトウェアの内容をモデルで正しく表現できているか

• プライマリーでは表記上の正確性も評価対象

– 工夫点の記述が論理的か。その工夫は効果的か。

63

プライマリー

すり抜ける

進⼊ライン通過ライン

障害物

障害物

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

プライマリークラス審査課題(予定)

• 下記のモデルを作成し提出

64

プライマリー

モデル 内容 主に使用する図(UMLの場合)

アブストラクトページ

下記モデル全体を1枚にまとめて短く表したもの

自然言語、任意の図

機能モデル選択した機能を実現するために、走行体に搭載する機能、および、それを実現するための仕様

ユースケース図、ユースケース記述、アクティビティ図等

構造モデル機能を実現するために必要な要素とそれらの関係

クラス図、オブジェクト図等

振る舞いモデル

構造モデルで定義された要素を用いて、機能を実現する方法

シーケンス図、コミュニケーション図、ステートマシン図、アクティビティ図等

工夫点(オプション)

選択した機能を実現する上で、性能や信頼性を向上させるために行った工夫

自然言語、任意の図

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

プライマリーモデル例

• 2019年度見るべきモデル大賞:tadaima G4

65

プライマリー

構想動作仕様

構造

振舞い

工夫点

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

アドバンストクラス審査概要

• 狙い– 技術を応用して活用できるスキルを身につける

• モデルによる課題解決

– 複数のシステムを連携させたシステムを構築する

– AI/画像処理などの技術を活用する機会

• 実施内容– 「ブロックビンゴ2020」を中心としたモデルを作成

– 作成するモデルはA3用紙 1〜6ページ

– 要求、分析、設計、制御について記述• 2020年度は複数システムによる設計を重視

– AI/画像処理をシステムに組込み、課題解決に活用

• 審査ポイント– 課題の有効な解き方を示すモデルになっているか

– システム間の分担・連携について妥当な記述がされているか

– 制御戦略・要素技術の検討内容とその効果

– AI/画像処理などの有効な活用とシステムへの組み込み方66

アドバンスト

ビンゴ成⽴例(横1列)

据置式カメラ HackEV

Bluetooth通信LAN

エッジサーバ

(PC)

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

アドバンストクラス審査課題(予定)

• 下記のモデルを作成し提出

67

アドバンスト

モデル 内容 主に使用する図(UMLの場合)

アブストラクトページ

下記モデル全体を1枚にまとめて短く表したもの

自然言語、任意の図

要求モデル開発の目標と、それを達成するために必要な機能性要求およびそこに付随する品質や制約などの要求

ユースケース図、ユースケース記述、アクティビティ図等UML以外では、要求図、自然言語等信頼性、時間効率性などの品質要求には必ずその上位要求としての機能性要求が存在することに注意すること

分析モデルゲームを解くために必要な情報の定義と、それを使ったゲームの解き方などの分析

クラス図、オブジェクト図、コミュニケーション図、シーケンス図、ステートマシン図等

設計モデルゲームに必要な機能や要求、分析結果を実現するシステムの構造と振る舞いの設計

コンポーネント図、パッケージ図、クラス図、オブジェクト図、コミュニケーション図、シーケンス図、状態マシン図等

制御モデル要求・分析モデルで定義された機能を実現するための制御戦略と、その戦略で用いられる要素技術の検討内容と結果

アクティビティ図、ステートマシン図等UML以外では、ブロック線図、フローチャート、自然言語等

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

アドバンストクラスモデル例

• 2019年エクセレントモデル「デンソルジャー」

68

アドバンスト

sd 初期情報設定

カメラシステム マスエリア

ブロック配置を判定する()

数字を判定する()

初期情報を判定する()

初期情報を設定する(初期情報)

sd 初期情報の取得

運搬計画 マスエリアブロックビンゴ攻略(仮)

alt

[初期情報が更新されていない]

デフォルト運搬順序を最適な運搬順序に設定する()

初期情報を取得する(): 初期情報初期化する()

sd 最適運搬経路の決定

経路計画 ブロック ⾛⾏体 ノード経路 ⾛⾏体動作

loop

[経路の終端 = = False]

loop

[全通⾏可能ノードに対する移動コストの計算が完了 = = False]

loop

[⽬標ノードに到達 = = False]

現在位置を取得する(): ノード

動作実⾏時間を取得する(): int

ノードの通⾏可否を判断する(ノード): boolean

所持ブロックを取得する(): ブロック

隣接ノードを取得する(): List<ノード>

向きを取得する(): 向き

現在位置を取得する(): ノード

次のノードを決定する(): ノード

現在位置を取得する(): ノード

最短経路を探索する(ノード, ノード): 経路

コストを計算する(): int

最短経路を探索する(ノード, ノード): 経路

現在位置を取得する(): ノード

ノードを追加する(ノード)

現在位置を取得する(): ノード

sd ボーナスタイムの計算

ビンゴ条件 列 マス ブロックサークルブロック

alt

[有効移動成⽴ = = True]

loop

[全ての列の判定が完了 = = False]

loop

[全ブロックの有効移動取得が完了 = = False]

座標を取得する(): 座標

現在座標を取得する(): 座標

ビンゴボーナスタイムを計算する(ビンゴ成⽴数): int

⾊を取得する(): ⾊

座標を取得する(): 座標

座標を取得する(): 座標

ブロックサークルの座標を取得する(): 座標

有効移動成⽴を取得する(): boolean

座標の組を取得する(): List<座標>

ビンゴ成⽴を判定する(列, List<ブロック> ): boolean

sd BingoGameシーケンス図(運搬計画)

経路計画運搬計画 マスエリアブロックビンゴ攻略

(仮)

loop

[!全ブロックの運搬完了]

運搬順序

loop

[!全運搬経路の⽣成完了]

ビンゴ条件 経路運搬経路

ref最適運搬経路の決定

refボーナスタイムの計算

ref最適退出経路の決定

ボーナスタイムを算出する(): int

合計コストを集計する(): int

全ブロックを取得する(): List<ブロック>

獲得ボーナスタイムを集計する(): int

合計コストを取得する()

運搬対象を決定する(): ブロック

コストを取得する(): int

運搬経路を追加する(運搬経路)

退出経路を追加する(経路)

全運搬順序を求める()

経路全体のコストを取得する(): int

最適な運搬経路を作成する(ブロック, ノード): 運搬経路

最適な退出経路を作成する(ノード): 経路

最適な運搬順序を決定する(): 運搬順序

エリア情報を取得する()

全ノードを取得する(): List<ノード>

退出先を決定する(): ノード

運搬先を決定する(): ノード

2 -4 .解法 の続き■運搬順序の決定実⾏時のシーケンス図

■「最適な運搬経路決定」のシーケンス図 ■ボーナスタイム算出時のシーケンス図(例:ビンゴボーナス)

■初期情報設定・取得時のシーケンス図

運搬順序を網羅的に探索するため、全ブロックを取得して

未運搬のブロックの中から

機械的に運搬対象を決定する。

運搬対象に選択したブロック対して、設置すると有効移動となるノードの中から

機械的に運搬先を決定する。

現在位置から運搬対象を運搬先に運ぶ

経路を作成する

現在⽣成した運搬経路までで獲得できるボーナスタイムを計算する

1つのブロックに対する最適(コストが最⼩となる)運搬経路が決定する。

( 1回のループの処理)

これを未運搬のブロックがなくなるまで繰り返すことで、全てのブロックを運搬する運搬経路が決定する。

前ページの最後に記載した解法のクラス図の振る舞いをシーン別にシーケンス図で記述した。

運搬順序を網羅的に作成し、コストが制限時間内に収まる運搬順序を探索する。

運搬開始位置を取得

「運搬計画」クラスから運搬対象(ブロック)と運搬先(ノード)を引数で受け取っている

運搬対象位置を取得

取得経路ô算出öõ処理

隣接ノードのブロック有無から通過可否を判断し、

次に移動するノードを決定する

現在位置や向きなどから次のノードへ移動

するための動作を判定し、

コスト(時間)を取得する

経路のコストが最⼩となる隣接ノードを⾒つける

全ブロックに対して、有効移動が成⽴しているかを確認する

運搬対象取得後の位置を取得

設置経路(取得後位置から運搬先への最短経路)を算出する

※内容は取得経路算出と同じため省略

置かれている場所(ブロックサークル)とその⾊から成⽴を判定する

有効移動が成⽴しているブロックの座標を取得する

有効移動が成⽴しているブロックの座標と「列」を形成している

ブロックサークルの座標の組が

⼀致しているかを確認する。↓

⼀致している=その「列」はビンゴ成⽴

ビンゴ成⽴数からビンゴボーナスタイムを算出

運搬順序の作成フロー

全てブロック運搬後のノードから退出先となるノードまでの

経路(退出経路)を決定する。

運搬経路と退出経路の持つコストを合計することで運搬順序の持つ

合計コストを算出する

運搬順序の決定処理は外部より呼び出される

処理の内容は、現在ノードから退出先ノードまでの最短経路探索で「最適運搬経路の決定」とほぼ同じであるため、

詳細は割愛する。

設置経路

通信途絶(初期情報の更新がなし)の場合

図2-4 :運搬順序の決定(シーケンス図)

図2-5 :最適な運搬経路決定(シーケンス図)

図2-6 :ボーナスタイム算出(シーケンス図)

図2-7 :初期情報設定・取得(シーケンス図)

sd ⾛⾏体タスク

動作実⾏タスク :動作管理 通信タスク

動作⽣成タスク 情報更新タスク :⾊検知

:⼊⼒操作

:時刻

:平均電圧

:⾛⾏速度

:⾃⼰位置

:送信管理

カメラシステムタスク

:画像認識

:マスエリア

:運搬計画

:送信管理

:動作変換

:受信管理

:受信管理

:画⾯表⽰

:動作

:経路計画

7. 表⽰する(): void

2. 推定する(): void

1. 最適な運搬経路

を作成する(): void

2. 実⾏する(): void

1. 更新する(): void

4. 更新する(): void

1. スタートを受信

する(): void

2. ブロックビンゴ初期状態を認識する(): void

1. 次の 動作を決定する(): void

3. 初期情報を設定

する(): void

2. 動作変換する(): void

5. 運搬経路を送信する(): void

3. 推定する(): void

6. 更新する(): void

1. スタートを送信

する(): void

2. 運搬順序を受信する(): void

5. 更新する(): void

4. 最適な運搬順序を

決定する(): void

3 -1 .設計意図・⽅針ソフトウェア設計⽅針の検討 要求分析にて抽出したソフトウェア設計に関する要件から設計の⽅針を決定した。

3 -2 .構造設計( 全体)

3 -3 .振舞設計( タスク)

ソフトウェア設計⽅針の検討

パッケージ設計

要求分析にて抽出したソフトウェア設計に関する要件から設計の⽅針を決定した。

ブロックビンゴの分析結果および、ソフトウェアの設計⽅針を元にソフトウェア全体の構造設計を⾏った。

タスク設計 ブロックビンゴの分析結果および、構造設計【3-2】の結果を基にソフトウェア全体のタスク設計を⾏った。また、構造設計【3-4】の結果を基に詳細なタスク設計を⾏った。

(紙⾯の都合上、表記順が前後している)

経路計画仕様変更時に1回の変更で走行体・カメラシステムの両方に反映でき、変更箇所が少なくなる。

通信異常時への対応のためにカメラシステムだけでなく、走行体にも共通の経路計画機能を持たせた。

・各クラス(特にセンサやアクチュエータ)の初期化が完了してから、各処理の実行を開始することで安全に動作を開始できるようにした。

・走行体制御に関わるものほど高優先度・短周期で実行することで、制御が妨げられて走行不能となるリスクを下げた。

メリット

ポイント

図3-2 カメラシステム定義( 配置図)

図3-1 ソフトウェア構造全体像( パッケージ図)

パッケージ間の疎結合によって、変更や単体テストが容易となる。

パッケージ間で相互参照が行われない構成にした(通信処理を除く)。

ポイント2

メリット

ポイント1

配置 パッケージ名 役割

共通 経路計画 ブロックビンゴを攻略する経路を算出する

カメラシステム

運搬計画 ブロックビンゴを攻略する最適順序を算出する

画像認識 カメラ画像からブロックビンゴエリアの初期状態を識別する

通信管理 ⾛⾏体との通信を管理する

カメラシステムデバイス カメラ、通信デバイス

⾛⾏体

動作管理 戦略( 動作リスト) を保持し、次の動作を決める

⾛⾏体制御 動作に基づいて、適切な出⼒を決定する

⾛⾏体 ⾛⾏体の状態推定や駆動を⾏う

動作⽣成 通信データから経路および動作を⽣成・戦略に登録する

外部情報管理 ⾛⾏体外部の情報(通信や⾊など)を管理する

⾛⾏体デバイス 各種モータ、センサ

カメラとPCをカメラシステムであると定義し( 図3-2) 、

物理配置も踏まえたソフトウェア構成を図3-1に⽰す。

deployment 配置図

«device»

⾛⾏体

カメラシステム

«device»

カメラ

«device»

PC

有線LANBluetooth

図3-3 詳細タスク設計( コミュニケーション図)

狙い 意図 設計⽅針

・パラメータの調整にかかる時間を減らしたい・パラメータ調整時に発⽣するリスク(⼈為的な変更ミス)を減らしたい

・パラメータを⾃動算出できるようにする

・調整箇所と実⾏処理部を分ける

・機能追加・変更によるソフトウェアの変更箇所を少なくしたい・複数の機能から利⽤される要素は共通化する

・複数⼈で分担して実装・テストできるようにしたい・不具合発⽣時に原因箇所の特定を容易にしたい

・機能間の結合を疎にする・機能ごとに独⽴して動作する構造にする

・機能配置の変更を容易にしたい・次⼤会以降にも再利⽤したい

⽅針④

⽅針③

b l _ 0 3 . 機能毎に容易にテストできる構造

b l _ 0 4 . 機能を容易に追加・変更できる構造

b l_ 1 8 . 調整が容易にできる構造

b l _ 2 2 . 責務分担の⽅針

b l _ 2 7 . 移植しやすい構造

⽅針①

⽅針②

⽅針③

⽅針④

タスク 周期 優先度 役割と設計意図 実⾏パッケージ

初期化タスク

― ― ・各種初期化を⾏う・最初に実⾏、下記周期タスクを起動

・( 全体)

動作実⾏タスク

4m s 最⾼・動作を実⾏する・動作が停⽌するとコース攻略が不可能となる→最⾼優先度に

・動作管理・⾛⾏体制御・⾛⾏体

情報更新タスク

4m s ⾼・⾛⾏体の情報更新・推定を⾏う・制御性能に影響する→⾼優先度に

・外部情報管理

動作⽣成タスク

20m s 中・通信データから動作を⽣成する・動作の合間に計算する→中優先度に

・動作⽣成

通信タスク 20m s 低・通信処理を実⾏する・通信が失敗しても最低限攻略可能な構成となっている→低優先度に

・外部情報管理

カメラシステムタスク

― ―・カメラシステム側の処理を実⾏する・決められた⼿順を順に処理するため、周期実⾏の必要はない

・運搬計画・画像認識・通信管理

pkg 全体構成

共通

カメラシステム

⾛⾏体

運搬計画

画像認識

動作管理

⾛⾏体

⾛⾏体制御

⾛⾏体デバイス カメラシステムデバイス

外部情報管理 通信管理

動作⽣成 経路計画

タイミングを

取得する

駆動する

経路を⽣成する

⾛⾏体情報を取得する

経路を⽣成する

動作を実⾏する

通信を管理する

環境情報を取得する駆動を指⽰する

動作を登

録する

通信する

通信を管理する

初期状態を取得する

残り時間を取得する

通信する

センサ値を取得するセンサ値を取得する

環境情報を

取得する

運搬順序送信を依頼する

画像を取得する

運搬順序を取得する

パッケージの⾊と同じ配⾊になっている

要求モデル

制御class BingoGameクラス図

ブロックサークル

- ⾊: enum- ブロックサークル番号: int

+ 隣接ノードを取得する(): List<ノード>

交点サークル

- ⾊: enum

+ 隣接ノードを取得する(): List<ノード>

カメラシステム

- 判定結果: 初期情報

+ 初期情報を判定する(): void- 数字を判定する(): void

- ブロック配置を判定する(): void

マスエリア

- デフォルト設定値: 初期情報

+ 初期情報を設定する(初期情報): void

+ ブロックサークルを取得する(): List<ノード>

ブロック

- ⾊: enum- 有効移動成⽴: boolean

+ 現在位置を設定する(ノード): void

+ 現在位置を取得する(): 座標

ボーナス条件

- ボーナスタイム: int

+ ボーナスタイムを算出する(): int

カラーブロック有効移動条件

- ボーナスタイム: int- 有効移動成⽴数: int

+ ボーナスタイムを算出する(): void

ビンゴ条件

- ボーナスタイム: int- ビンゴ成⽴数: int

+ ボーナスタイムを算出する(): int

- ビンゴ成⽴を判定する(列, List<ブロック> ): boolean- ビンゴボーナスタイムを計算する(int): int

ボーナスサークル設置条件

- ボーナスタイム: int

- ボーナスサークル設置成⽴数: int

+ ボーナスタイムを算出する(): int

マス

経路

- コスト: int

+ ノードを追加する(ノード): void

- コストを計算する(): int

経路計画

+ 最適な運搬経路を作成する(ブロック, ノード): 運搬経路+ 最適な退出経路を作成する(ノード): 経路

- 最短経路を探索する(ノード, ノード): 経路- 次のノードを決定する(): ノード- ノードの通⾏可否を判断する(ノード): boolean

ノード

- 座標: int

+ 隣接ノードを取得する(): List<ノード>

⾛⾏体

- 向き: int

+ 現在位置を取得する(): ノード+ 所持ブロックを取得する(): ブロック

+ 現在位置を設定する(ノード): void

⾛⾏体動作

- 動作実⾏時間[動作種類]: int

+ 動作を判定する(ノード, ノード): int

«struct»ブロック情報

- 座標: int- ⾊: enum

運搬計画

- デフォルト運搬順序: 運搬順序

- ビンゴゲーム攻略⽬標時間: int

+ 最適な運搬順序を決定する(): 運搬順序- 全運搬順序を求める(): void

- 運搬対象を決定する(): ブロック- 運搬先を決定する(): ノード- 退出先を決定する(): ノード

«struct»

初期情報

- 数字カード: int

- ブロック[10]: ブロック情報

運搬経路

- 経路全体のコスト: int

+ 経路を追加する(経路): void- 経路全体のコストを計算する(): void

運搬順序

- 合計獲得ボーナスタイム: int- 合計コスト: int

+ 運搬経路を追加する(運搬経路): void+ 退出経路を追加する(経路): void- 合計コストを集計する(): int

- 獲得ボーナスタイムを集計する(): int

中点ノード

+ 隣接ノードを取得する(): List<ノード>

0..1

-構成要素0..*{ ordered}

1

-現在位置1

*

-2ノード間のコスト

1

1

-ボーナスタイム獲得条件

1..*

0..1 -右下の頂点1

-隣接するマス2

-隣接するマス2

1

-最適な退出経路0..1

1

-ボーナスサークル0..1

1 -ビンゴ成⽴条件8

*-探索対象*

-全ブロック 10

1-属するサークル1

1

-判定結果設定先

1

1

-ボーナスタイム獲得条件

1..*

0..1

-現在位置 1

1

-取得経路

1

1

-退出経路

1

0..1 -左下の頂点 1

3

-ビンゴとなる組 1..2

*-運搬先1

1

-探索中の経路*

1

-最適な運搬経路 0..1

1

-全運搬順序*

0..1

-初期位置

0..1

1

-ボーナスサークル0..1

1..3

-マスの頂点4

1

-ビンゴ候補列 4

-全ブロックの運搬経路0..9 { ordered}

1

1

-経路作成1

1-最適運搬順序 0..1

0..1

-運搬中ブロック0..1

1-運搬対象

1

0..1 -左上の頂点 1

*

-現在の向き

1

-運搬エリア情報

-隣接する中点ノード

41..2

-獲得ボーナスタイム1

*

*

-現在位置

0..1

0..1 -右上の頂点1

2 -隣接する中点ノード 2..4

1

-設置経路

1

-全てのマス 81

-ノード通⾏可否条件9 1

class BingoGame Class Diagram

ブロックサークル

- ⾊: int

- ブロックサークル番号: int- ボーナスサークル有効移動成⽴: boolean

交点サークル

- ⾊: int

カメラシステム

マスエリア

カラーブロック

- 有効移動成⽴: boolean

- ⾊: int

⿊ブロック

数字カード置き場 数字カード

- 数字: int

- ビンゴ成立: boolean

ブロック

線分

- ⻑さ: int

ブロックビンゴエリア

ボーナスタイム条件

- ボーナスタイム: int

- 成⽴個数: int

- ボーナスタイム⼩計算: int

カラーブロック有効移動条件

ビンゴ条件

ボーナスサークル条件

マス

0..1

-現在位置 0..1

0..1 -左下の頂点 1

1

-ボーナスサークル 0..1

1

⾛⾏エリア1

1

-ボーナスサークル 0..1

-設置場所

1 0..1

0..1 -右下の頂点 1

1

-撮影対象1

0..1

-初期位置 0..1

3

-ビンゴとなる組1..2

1

-画像認識機能

1

1 -ボーナスタイム獲得条件 1..*

0..*

-現在位置 0..1

1

-ボーナスサークル情報

1 -全てのマス8

1

-結線

2..4

-接続先

1

-接続元

1

-結線

2..4

0..1

-初期位置 0..1

1

-撮影対象 1

0..1 -左上の頂点 1

1..3-マスの頂点 4

1

-初期情報

*

1

-属するサークル1

1

-ビンゴ候補列 4

0..1 -右上の頂点 1

-隣接するマス

2

-隣接するマス

2

1-ボーナスサークル

明⽰場所 1

2 -2 .⾛⾏体の動作定義

1 .交点サークル間移動&交点サークル跨ぎ 2 .ブロック取得

競技規約より、ビンゴゲーム攻略には以下の1 .〜6 .の動作が必要になると想定した。

A.交点サークルへの取得

B.ブロックサークルへの取得

2 -4 .解法

全運搬順序を確認し、以下の条件満たすものを⾒つける。

{ [ノード座標,ブロック把持有無] , [ノード座標,ブロック把持有無] ,…, [ノード座標,ブロック把持有無] ,チェックサム }

取得経路・・・現在ノ トー゙ から運搬対象「 」までのノードの組「 」設置経路・・・運搬対象から運 搬 先 「 」までのノードの組「 」

運搬経路

運搬順序

取得経路と設置経路を組み合わせたもの

運搬経路をブロックを運搬する順番に並べ、最後に退出経路を組み合わせたものex)ブロックを8個運搬する場合、時系列順に並べた8個の運搬経路と1個の退出経路で構成される。

⾛⾏体の動作定義の制約より、ノード上に置かれているブロックの位置からパスの通過可否を判定し、通過可能な経路を⽣成する。

有効移動不成⽴のリスク有

1個⽬

3個⽬

2個⽬

交点サークル間移動(ライントレース)

指針を実現するための構成を以下に⽰す。なお、解法に直接関係しない要素や、単純なset/getの操作は紙⾯の都合上省略した。

通信途絶時⽤のデフォルト運搬順序「指針3 」の実現⽅法

カメラシステムとの通信途絶時には、ブロックサークル置かれているブロックの位置および全ブロックの⾊が不明である。

このため、位置が判明している交点サークルに置かれているブロックを取得し、直近のブロックサークルに運搬する。

デフォルト運搬順序のイメージ図( Lコース)

「ノードの種類」と「⾛⾏体のブロック把持有無」から⾛⾏体動作へ変換する。

尻尾がブロックと接触

ブロックがブロックサークル内円からはみ出していないこと= ブロック設置時に確実にブロック

サークル内円内に設置すること

制約

交点サークル間移動時に⾛⾏体はブロックサークルの外円上に侵⼊する

5.5cm8.1cm

3 .ブロック設置

制約 ブロックを取りこぼさないために低速のライントレースで接近する

ブロック取得(低速ライントレース)

交点サークルの真ん中付近で旋回すると、⾛⾏体の尻尾が背後側のブロックサークルの内円上に侵⼊する

交点サークル跨ぎ(直進or旋回)

4 .マスエリア進⼊

16cm 13.5cm

制約ブロックサークル進⼊時に背後側のブロックサークルにブロックが存在しない事

制約

動作を実⾏する上での制約事項

B.垂直設置

5 .ブロックサークルへの移動(ブロック設置)後の復帰

制約

ブロックを設置する際に、先に設置したブロックと同⼀の⽅向からブロック設置

の動作は⾏わないこと

「垂直設置」については、交点サークルの真ん中付近での旋回が発⽣するため、ブロック

サークルへの取得と同じ制約がある

補⾜

補⾜ 動作にかかる時間は「斜め設置」の⽅が短く優位であるが、下記の制約を考慮し、「垂直設置」

の動作も採⽤することとした。

補⾜

動作に関する補⾜事項

Lコースは、「4 」の左下から進⼊し、そのままブロックを取得すると、設置ができない場合がある

進路上にブロックがあり「2」のブロックサークルに設置しに⾏けない

既に緑ブロックが置いてあるため、「6」は設置先として不適切

進⼊先として以下の3つから選択できるようにする。

①「4」の左上②「4」の左下③「6」の左下

6 .ブロックサークルへの移動(ブロック取得)後の復帰

制約

ブロック把持中に135°以上旋回する場合(⑦・⑧)は、低速で旋回する。

連続で同⼀⽅向からブロックを設置すると、先に置かれたブロックがブロックサークル外に押し出される

復帰パターンは全8通り

A. 斜め設置

B.垂直設置後の復帰A.斜め設置後の復帰

後退後、左右どちらかに旋回し線分上に復帰

する。復帰パターンは全2通り(①と②)

①後退後、左右どちらかに旋回しライントレースで

交点サークルに復帰する。復帰パターンは全2通り(①と②)

① ②

ブロックサークル上で旋回後線分の真ん中付近で旋回し、ライントレースで

交点サークルに復帰する。

① ②

③ ⑤

④ ⑥

ただし、旋回量が⼤きくなる( |θ| > = 135°※実測結果より⇒ 該当動作は背後

の線分に復帰する⑦・⑧)と、旋回時に遠⼼⼒でブロックを離してしまうリスクがある。

補⾜ 正確にブロック位置へ移動する必要があるため、旋回直前にライントレースで⾓度補正ができる垂直

取得を採⽤する(斜め取得は不採⽤)

16.8cm

⾛⾏体⾞幅( 16 . 2cm )とほぼ同じため,この間は通れない

制約

ブロックが外円にはみ出していると接触する

ブロックサークルへの取得や垂直設置後の復帰など(⾛⾏体の動作定義より)

を実現するためには線分の中央を通過点として表現する必要があるため、

中点ノード を⽤意した。

※下記は⼀部を抜粋したもの

通信途絶リスクを考慮し、⼀度に送信するデータ量を抑えるため、取得経路・設置経路ごとに送信する。また、チェックサムを導⼊し、受信側( EV3 )で正しさを確認、正しくない場合はデータの再送をPCへ依頼。

運搬順序の評価は構成される運搬経路を動作に変換した際の動作時間で⾏う。動作時間は、実際にコース上を⾛⾏し、動作に要した時間を⽤いる。※下記は⼀部

設置経路

取得経路

ビンゴゲーム攻略の流れ

初期情報(ブロック/数字カード)特定

運搬順序決定

運搬経路決定

運搬順序評価

終了判定

⾛⾏体動作変換

実際に⾛⾏体でブロック運搬

運搬順序と運搬経路の決定⽅法以下のノードとパスを⽤いて経路を決定する。

: 移動可能なノード(交点サークル)

︓ブロック取得/設置のみ移動可能なノード(ブロックサークル)

︓移動可能なパス

︓移動可能なノード(中点ノード)凡例

運搬順序の評価⽅法 ⾛⾏体動作への変換⽅法

「 → 」(ブロック無) = 交点サークル間移動

「 → 」(ブロック無) = 交点サークル跨ぎ

「 → 」(ブロック有) = 交点サークルへの取得 「 → 」(ブロック有) = 垂直設置「 → 」(ブロック無) = BCへ取得

「 → 」 = 斜め設置後の復帰

「指針1 」の実現⽅法

PCからEV3への経路情報の送信⽅法

YES

NO

終了判定(最適な運搬順序の判定⽅法)

⾛⾏体の動作

交点サークル間移動

ブロック把持有無

ブロック無

動作時間

1 . 25 (秒)

ビンゴゲームを構成する要素を分析し、整理を⾏った。まず、競技規約に掲載されているブロックビンゴエリアを図2-1に⽰す。

分析の結果、このビンゴゲームにおいて、ビンゴを表現するために独⾃の定義として「マスエリア」・「マス」・「列」という要素が必要であると考えた。

分析の結果、ビンゴゲームを構成する要素は図2-2のクラス図のようになった。

マスエリア

列マス

図2-2 :ビンゴゲームの構成要素(クラス図)

図2-1 :ブロックビンゴエリア

2 -1 .ゲームの構成要素

class BingoGame Class Diagram

ブロックサークル

- ⾊: int

- ブロックサークル番号: int

- ボーナスサークル有効移動成⽴: boolean

交点サークル

- ⾊: int

カメラシステム

マスエリア

カラーブロック

- 有効移動成⽴: boolean

- ⾊: int

⿊ブロック

数字カード置き場 数字カード

- 数字: int

- ビンゴ成立: boolean

ブロック

線分

- ⻑さ: int

ブロックビンゴエリア

ボーナスタイム条件

- ボーナスタイム: int

- 成⽴個数: int

- ボーナスタイム⼩計算: int

カラーブロック有効移動条件

ビンゴ条件

ボーナスサークル条件

マス

クラス名

クラス名

1

-ビンゴ候補列 4

1

-初期情報

*

1

-撮影対象1

1 -ボーナスタイム獲得条件 1..*

-隣接するマス

2

-隣接するマス

2

-結線

2..4

-接続先

1

1

-属するサークル1

1

-ボーナスサークル 0..1

1

-画像認識機能

1

1

⾛⾏エリア1

0..1 -左上の頂点 1

1-ボーナスサークル

明⽰場所 1

0..1

-初期位置 0..1

0..1 -右上の頂点 1

-設置場所

1 0..1

1

-ボーナスサークル 0..1

0..1

-現在位置 0..1

1..3-マスの頂点 4

1

-ボーナスサークル情報

1

0..1 -左下の頂点 1

3

-ビンゴとなる組1..2

1

-撮影対象1

0..1

-初期位置 0..1

0..1 -右下の頂点 1

-接続元

1

-結線

2..4

-全てのマス8

1

0..*

-現在位置 0..1

競技規約から抽出したブロックビンゴゲームの構成要素

分析・整理の過程で新たに追加したブロックビンゴゲームの構成要素

b l_ 12 .衝突回避経路

b l_ 13 .複数置ける経路

ポイント① ボーナスタイム満点( i= 9 )の条件を満たすものが存在しない場合、「途中までの運搬順序( i= 8 ,…)」から条件を満たすものを⾒つける。

ポイント

bl_ 14 .ボーナスタイム

算出

算出⽅法は次ページのシーケンス図(図2-6 )に記載する

bl_ 15 .攻略⽬標時間

設定

bl_ 17 .経路探索

b l_ 24 .異常時の処置

bl_ 16 .運搬経路決定条件

2

2

3

4

5

ダイクストラ法を⽤いて、コスト (動作の実⾏時間)が最⼩となる経路を算出。

運搬するブロックの選び⽅を全パターン探索し、構成する経路のコスト合計値が最⼩となるものを算出。

class Package1

クラス名 指針実現のために追加したクラス

class Package1

クラス名 ブロックビンゴゲームの構成要素

⾛⾏体の動作定義

制御モデル

→取得経路 設置経路 →取得経路 設置経路→ → ・・・ → 退出経路

経路データ を時系列順に送信する。下記は、送信する経路データの内訳。

ビンゴゲーム攻略のための指針を実現する構成

図2-3 :ビンゴゲーム攻略のための構成(クラス図)

(合計コスト< = ⽬標時間) & & (ボーナスタイム= = m ax ( Pi ) )※ m ax(Pi) ・・・ i 個運搬した時に得られる最⼤ボーナス点数

ポイント② ゴール時に探索が未完了の場合は、算出済みの運搬順序の中から条件を満たす運搬順序を⾒つけて、それを最適運搬順序とする。

2 -3 .指針 【1-2 .要件】および、ゲームの構成要請、⾛⾏体の動作定義の結果より、ビンゴゲーム攻略における課題を抽出し、それら課題解決のための指針を決定した。

※実現⽅法については制御モデルに記載する。

満点である-24 . 5秒(フルビンゴ+ ボーナスサークル設置2個)を狙う。だだし、制限時間( 90秒)以内に攻略が終了しない場合は、ブロックの運搬回数を減らし、制限時間内で獲得できる最⼤のボーナスタイムを獲得しにいく。

制限時間内で獲得できるボーナスタイムが最⼤となる運搬パターンを選択する

⾛⾏体のカラーセンサを⽤いて特定すると、判定に時間がかかるだけでなく、探索しながら運搬するため最良の運搬順序でない可能性がある。そこで、攻略時間の確保と最適解を探索するため、カメラシステムを採⽤する。カメラ画像の数字の認識については、機械学習を⽤いて認識精度向上を図る。

最⼤のボーナスタイム獲得のために、できるだけ多くの運搬パターンを探索したいが、EV3の処理能⼒ではスタートからゴールまでの間に経路選択が完了しない可能性があるので、経路の決定までを

PCで⾏うことにした。

ゴール前に経路選択(経路探索)を完了する

優先順位

1

2

ビンゴ

フルビンゴ

トリプルビンゴ

CB有効移動 BC設置 運搬回数ボーナスタイム(合計)

8 2 -24 . 5秒 9個

7 2 -22 . 0秒 8個

4 ダブルビンゴ 5 2 -19 . 0秒 6個

3 ダブルビンゴ 6 2 -19 . 5秒 7個

ブロックの⾊と位置および、数字カードの数字を特定する デメリットに対しては、以下の⽅法でリスクの低減を図る。・通信データの正しさを受信側でも確認。(誤りの場合再送)・通信途絶時は、予め⽤意した経路(デフォルト経路)を

利⽤して、最低限の攻略ができるようにしておく。

・ 計算コストの⼤きい「運搬順序」、「運搬経路」の探索処理を速く⾏うことができる。

メリット

デメリット

・経路の情報はデータサイズが⼤きく、PC-EV3間の通信を⾏う際に、通信不全・データ⽋落による⾛⾏不能のリスクが⼤きくなる。

PCとEV3の処理分担 検討結果

カメラ画像取得

ブロック認識

数字認識

運搬順序・経路決定

⾛⾏体動作⽣成

ビンゴエリア進⼊

ビンゴエリア退出

PC

EV3

ブロック運搬(⾛⾏体動作の実⾏)

データ送信↓

bl_ 21 .攻略の前提条件

bl_ 22 .責務分担の⽅針

b l_ 24 .実現⼿段検討⽅針

与えられた時間配分以内に獲得できる最⼤のボーナスタイムを確保する。

課題1

課題2

・ブロックの⾊・位置、および数字の特定にはカメラシステムを⽤いる・更に数字の特定には機械学習を⽤いた数字認識を⽤いる

課題3

ボーナスタイムの狙い⽅は以下のような優先順位となる。( 上位4つを抜粋)

・ブロックビンゴ攻略の制限時間内で運搬できるかを判定する・運搬パターンごとに獲得できるボーナスタイムを算出する

ブロックビンゴ攻略⽅針

・PCで全運搬パターンの探索を⾏う・通信異常時でも経路探索できるようにする

指針2

指針1

指針3

※ 「CB」・・・カラーブロック「BC」・・・ボーナスサークル

1

2

3

4

5

6 7

分析

設計(システム構成)

設計(構造)

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

技術教育

69

①全国共通(2日間)※a、bのどちらか、または組み合わせで実施a.走行体の基本制御とモデルによる可視化b.モデル作成とそれをコードに変換する基礎演習全国共通教育は動画での配信も予定しています②地区独自各地区ごとに独自コンテンツを提供

上記には、初学者のためのセットアップサポートや演習も含まれます。技術教育後もメーリングリストにより、技術的なサポートを受けることができます。配布資料を使った自己学習により、さらなるステップアップが可能です。

①2019年プライマリークラスモデル/コメント②2019年CS大会ワークショップ資料③走行体制御に関する参考資料

①2019年のアドバンストクラスモデル/コメント②2019年のCS大会ワークショップ資料③画像処理/通信サンプルコード・仕様書(カメラからの画像から色判定しロボットに送信する)

プライマリー提供資料

アドバンスト提供資料

技術教育(共通)

エントリー提供資料

ETロボコン2020 記者発表会資料/ETロボコン実行委員会

2020年の参加特典(審査関連)

• UMTP様のご協力により、UMTP認定試験Level1-2を特別価格で!

– 通常15,000円(税別) →10,000円(税別)

– 1チーム2名まで、先着100名様限定

– 参加申し込み時に申請

– 6月から1年間有効

– https://umtp-japan.org/about_exam/work_gaiyo• Level2を受講にするにはそのLevel1に合格している必要があります

70

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 71

ETロボコン2020開催発表会資料

ETロボコン2020 モデル審査内容

2020年2月14日

本部審査委員長

土樋 祐希

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

ETロボコン2020

パネルディスカッション

72

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

ETロボコン2020

重要案内・募集告知

73

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

• 参加資格:

– 高校生以上。エンジニア及び大学生、高専生、専門学生を主な対象と しています。 組込みシステム開発および同技術教育に興味を持っている方で、 他の競技者との意見交換、情報交換が可能であること。 ただし、未成年の場合には保護者または成年責任者による参加同意 と付き添いが必要です。参加は複数人のチームを原則とします。

– 参加者は、エントリークラス、プライマリークラス、アドバンストクラス

のいずれかに参加でき、モデル審査、競技の両方に参加することが必須です。

※企業グループに属する会社メンバーでの参加も可能です。

• 想定参加者:– 企業におけるソフトウェア開発技術教育としての参加

– ソフトウェアエンジニア個人またはエンジニア同士での技術力向上へのチャレンジ

– 大学におけるソフトウェア・エンジニアリング教育としての参加

– 高校、高専、専門学校等における、コンピュータ、ソフトウェア技術教育としての参加

• 各地区の受入数には上限がありますので、ご注意ください。

参加資格

74

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

参加申し込み方法

1)申込受付期間:

一次締め切り 3月4日(水)~4月23日(木)17:00締切

最終締め切り ~5月29日(金)17:00締切– 申込方法:ETロボコン2020ホームページの、大会参加申込みページより

登録してください。

https://www.etrobo.jp/

2)参加費のお支払い手続について:– 参加確定後、事務局指定口座へ振込となります。

(手数料は参加者にてご負担ください)

– 振込日、請求書、領収書等の情報につきましては、参加情報入力フォームにて

記入いただきます。

3)参加費のお支払い期日– 2020年5月31日までに事務局指定口座に入金されていること。

– 期日までに入金ない場合は、参加を取り止めとみなします。

75

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

2020年 地区実施説明会・地区大会

地区 実施説明会 地区大会

北海道 3/1(日)北海道情報大学札幌サテライト学習室1(北海道札幌市)

9/20(日)北海道情報大学(北海道江別市)

東北 3/14(土) 調整中 調整中 調整中

北関東 3/7(土) 群馬大学太田キャンパス

9/20(日)

9/21(月祝)

早稲田大学 西早稲田キャンパス

(東京都新宿区)

東京 3/7(土)東海大学高輪キャンパス

(東京都港区)

南関東 3/14(土)関東学院大学 KGU関内メディアセンター(神奈川県横浜市)

9月中旬 調整中

東海 3/7(土)株式会社デンソー名古屋オフィス(愛知県名古屋市)

調整中 調整中

76

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

2020年 地区実施説明会・地区大会地区 実施説明会 地区大会

北陸 3/14(土)金沢工業大学 扇が丘キャンパス(石川県野々市市)

9/21(月祝) 調整中

関西 3/21(土)

富士通ラーニングメディア

関西ラーニングセンター(大阪府大阪市)

中四国

3/7(土)福山大学 社会連携推進センター

(広島県福山市)9/20(日) 調整中

3/22(日)松江オープンソースラボ(予定)

(島根県松江市)

九州北 3/7(土)九州産業大学12号館

(福岡県福岡市) 9/13(日) 調整中

九州南 ー ー

沖縄 3/7(土)琉球大学 工学部(沖縄県中頭郡)

9/13(日)or9/27(日) 調整中

77

※日程、開催地は、運営の都合上、変更となる場合があります。

※随時、ホームページをご確認ください。(https://www.etrobo.jp/)

ETロボコン2020チャンピオンシップ大会:11/18(水)、19(木)パシフィコ横浜 会議センター3F(神奈川県横浜市)

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

➢EV3が4月より値上がりします

→2020年3月までにお買い求めすることをお勧めします

※余裕のあるスケジュールで

➢エントリークラスを新設

→プログラミング、モデリング未経験者

→組込み・IT業界以外の企業エンジニア、学生

→CS大会の選抜はなし(地区大会まで)

➢エントリークラス向けスタートセット販売

→参加権+EV3のセットを特別価格(参加しやすいお求め価格)

重要案内のまとめ

78

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

➢UMTP

→UMTP認定試験Level1-2を特別価格

通常15,000円(税別) を10,000円(税別)

1チーム2名まで、先着100名様限定

➢レプリカコース販売

→一面コース(約15万円)、半分コース(約13万円)の2種類を用意

➢参加募集期間の延長

→一次締切り:4月下旬

→最終締切り:5月下旬

重要案内のまとめ

79

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

参加費参加

カテゴリ 参加者チーム 参加費エントリークラス

参加費プライマリークラス、アドバンストクラス

技術教育追加費

企業 企業 88,000円(税込) 110,000円(税込) 11,000円(税込)

大学 大学、大学院 35,200円(税込) 44,000円(税込) 5,500円(税込)

短大短期大学

3年制以上の学科 35,200円(税込) 44,000円(税込) 5,500円(税込)

2年生までの学科 17,600円(税込) 22,000円(税込) 5,500円(税込)

専門専門学校

3年制以上の学科 35,200円(税込) 44,000円(税込) 5,500円(税込)

2年生までの学科 17,600円(税込) 22,000円(税込) 5,500円(税込)

高専高等専門学校

専攻科 35,200円(税込) 44,000円(税込) 5,500円(税込)

本科 17,600円(税込) 22,000円(税込) 5,500円(税込)

高校 高校 17,600円(税込) 22,000円(税込) 5,500円(税込)

個人 個人 35,200円(税込) 44,000円(税込) 5,500円(税込)

参加費には、技術教育への1名/チームの参加費を含みます。技術教育に2名/チームの参加を希望する場合は、上記表の技術教育追加費が必要です。

80

※別途、参加チーム限定で、レプリカコース・難所販売を予定しております。

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

エントリークラスセット販売

81

参加カテゴリ 所属 セット販売代金 税込 通常参加の場合 税込(参加費+ロボコンキットA)

企業 企業 120,000円 158,950円(88,000円+70,950円)

大学 大学・大学院 90,000円 106,150円(35,200円+70,950円)

短大 短期大学(3年以上の学科) 90,000円 106,150円(35,200円+70,950円)

短期大学(2年以上の学科) 80,000円 88,550円(17,600円+70,950円)

専門 短期大学(3年以上の学科) 90,000円 106,150円(35,200円+70,950円)

短期大学(2年以上の学科) 80,000円 88,550円(17,600円+70,950円)

高専 高等専門学校(専攻科) 90,000円 106,150円(35,200円+70,950円)

高等専門学校(本科) 80,000円 88,550円(17,600円+70,950円)

高校 高校 80,000円 88,550円(17,600円+70,950円)

個人 個人 90,000円 106,150円(35,200円+70,950円)

※上記の代金は3月末までの販売価格

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

EV3走行体

参加者向け特別セット販売

ETロボコン参加者向けに、走行体を制作するための特別セットを販売しています。

セット内容:教育版レゴ マインドストームEV3基本セット、ETロボコン専用パーツ 他※センサやモータの単品販売も受け付けておりますので、お問い合わせください。

販売協力:(株)アフレル(教育版レゴ製品国内正規代理店)同社ホームページにて http://afrel.co.jp/product/et-set

82

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

スポンサー募集

ETロボコンという教育機会を御支援ください

ETロボコンは、参加費とスポンサー費によって実現しています!

IT企業、メーカー、ツールベンダー、組込み開発企業、研修サービス企業等

ご支援をお願いします。

83

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

種類金額(万円/税込)

全国スポンサー 該当地区スポンサー

プラチナスポンサー 3,300,000

ゴールドスポンサー 1,100,000 330,000

シルバースポンサー 770,000 220,000

ブロンズスポンサー 330,000 110,000

詳細は、スポンサーシップ一覧をご覧ください。

スポンサー募集

・競技会場、公式WEBサイト等へのロゴ掲示・地区パンフレットへの広告掲載・自社ポスター(最大A1サイズ)の掲示・自社パンフレットの配布・スポンサー優待席の提供・ETロボコン全参加者メーリングリストにてツール・製品・サービス案内・ETロボコン参加権

主なスポンサーメリット ※スポンサーランクにより、メリットが異なります。

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

メディアスポンサー募集

新聞、雑誌、インターネット等、貴媒体でETロボコンのご紹介をお願いします!

ETロボコンのメディアスポンサーになりませんか?詳細は、スポンサーご案内資料をご覧ください。

85

ETロボコンという教育機会を御支援ください

ETロボコン2020 開催発表会資料/ETロボコン実行委員会

ETロボコン2020

重要案内・募集告知

86

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 87

ETロボコン2020開催発表会資料

ETロボコン2020への期待

2020年2月14日

本部実行委員長

星 光行

ETロボコン2020 開催発表会資料/ETロボコン実行委員会 88

ETロボコン2020開催発表

2020年2月14日

ETロボコン実行委員会