ETロボコン2020 モデル審査(シミュレーション大会改訂版)
ETロボコン実行委員会
1

ETロボコンのモデル審査位置付け⚫ ETロボコン競技を題材に、提出モデルの達成度を評価する事で、参加チームにモデリングスキル定着・向上の機会を提供⚫ 大会後も審査委員のフィードバックや他チームのモデル/評価を参考に、さらなるレベルアップができるようにする
本資料の内容は5月末時点の情報であり、今後変更される可能性があります。確定内容は7月中旬発行予定の審査規約にて公開されますETロボコン2020 開催概要資料／ETロボコン実行委員会

2

シミュレーション化に伴う変更• 大会がシミュレーションでの実施となったことと期間や大会の実施方法変更により、2/14に公開した開催発表会から方針を変更します• 主なものは以下の通りです– エントリークラス：大きな変更なし– プライマリークラス：大きな変更なし。ただし枚数を最大５枚に限定– アドバンストクラス：大会の形態の変化により、複数システムに関する記述、制御・重点技術を審査対象から外します→ 単一システムにおける設計を重点的に見ます
初のシミュレーションによる大会となるため、プライマリー同様工夫点を導入し、制御に限定せず、取り組みを広く評価します• 大会形態は変わっても、従来と同様のモデルのスキルアップができることを目指します
以下赤字の部分が主な変更点となります
ETロボコン2020 開催概要資料／ETロボコン実行委員会

3

2020年度の審査方針（改定前2/14発表）
エントリー、プライマリー、アドバンストの各クラスでモデリングを段階的に学べる場とする
5年後10年後活躍するエンジニアに！

Jump!

はばたけ！

アドバンストStep!
プライマリーAI/IoT技術の活用

複数システムのモデリング
モデルを使って課題を解決するモデルを使って品質を高める

Hop!

エントリー

自らモデルを構築する
単一システムのモデリング
モデルを見て変更する
モデルとコードの対応を理解する

モデリング未経験者
ETロボコン2020 開催概要資料／ETロボコン実行委員会

モデリングへの興味
42020年度の審査方針（変更後）エントリー、プライマリー、アドバンストの各クラスでモデリングを段階的に学べる場とする
5年後10年後活躍するエンジニアに！

Jump!

Step!
プライマリー

設計方針の記述とそれに基づく設計
モデルを使って課題を解決する

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

Hop!

エントリー

自らモデルを構築する

課題解決のために行った工夫とその説明

はばたけ！

アドバンスト単一システムのモデリング
モデルを見て変更する
モデルとコードの対応を理解する

モデリング未経験者
ETロボコン2020 開催概要資料／ETロボコン実行委員会

モデリングへの興味
シミュレーション技術(New!)5

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

エントリー

• 狙い
– モデリング未経験・ソフトウェア開発初心者がモデルを読んで理解し、改良を加えることで、モデルの使い方を体験する– 設計と実装の繋がりを把握する• 実施内容– 教材として提供されるモデルとソースコードをベースに競技課題に合わせて変更を行う– 提供されるコードはC++。実装としては他の言語を使用しても良い
ボーナスエリア（コードは審査対象ではありません）– 作成するモデルはA3用紙 1〜3ページ運ぶ• 審査ポイント– 図を使って構造と振る舞いの変更点を表現できているか– 伝えることを重視し、モデルの厳密な正確性については緩めに評価します
ETロボコン2020 開催概要資料／ETロボコン実行委員会

6

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

エントリー• サンプルとして提供される設計モデル（教材のモデル）
構造モデル
ランダムウォーカー
走る()
1

1

スターター

スターター

1

1

1
1

1

ライントレーサー

ライントレーサー

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

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

1

シナリオトレーサー

シナリオトレーサー
走る()
1

1

シンプルタイマー

シンプルタイマー

指定時間
開始時間
シンプルタイマー経過時間
1

1

ライブラリ関数ライブラリ関数乱数を取得する()

時間を測り始める()
指定時間経過したか調べる()
指定時間を設定する()

振舞いモデル（ステートマシン図）

スタート待ちentry / 初期化する
スタートボタンが押された

指定時間経過した
シナリオトレース中

ライントレース中

entry / タイマーを起動する（乱数時間）
do / シナリオトレースする
exit / タイマーを停止する

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

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

指定時間経過したETロボコン2020 開催概要資料／ETロボコン実行委員会

7

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

プライマリー• 狙い– モデリング初級者が競技課題に合わせてモデルを構築する事で、モデリングの基礎を身につける– 品質向上に向けた取り組みを行う• 実施内容– 選択した機能に対してモデルを作成• 「コースを完走する」 「スラロームを通過する」「ブロックを運ぶ」「ガレージで停止する」から選択• 機能、構造、振る舞いの各モデルを記述

通過ライン
障害物

進⼊ライン

障害物
すり抜ける

– 作成するモデルはA3用紙 1〜5ページ• 審査ポイント– ソフトウェアの内容をモデルで正しく表現できているか• プライマリーでは表記上の正確性も評価対象– 工夫点の記述が論理的か。その工夫は効果的か

ETロボコン2020 開催概要資料／ETロボコン実行委員会

8

プライマリークラス審査課題（予定）

プライマリー• 下記のモデルを作成し提出
モデル

内容

アブストラクト 下記モデル全体を１枚にまとめて短くページ表したもの

主に使用する図（UMLの場合）
自然言語、任意の図

機能モデル

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

構造モデル

機能を実現するために必要な要素とそクラス図、オブジェクト図等
れらの関係

振る舞い
モデル

構造モデルで定義された要素を用いて、 シーケンス図、コミュニケーション図、機能を実現する方法
ステートマシン図、アクティビティ図等

選択した機能を実現する上で、性能や信頼性を向上させるために行っ
工夫点（オプション） た工夫（シミュレータならではの工夫も含む)
ETロボコン2020 開催概要資料／ETロボコン実行委員会

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

自然言語、任意の図

9

プライマリーモデル例

プライマリー• 2019年度見るべきモデル大賞：tadaima G4
構想

動作仕様

振舞い
構造工夫点

ETロボコン2020 開催概要資料／ETロボコン実行委員会

10

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

アドバンスト• 狙い– 技術を応用して活用できるスキルを身につける• モデルによる課題解決

シミュレータアプリ

EV3 RT

⾛⾏ エミュレータ向け移植版– 要求に基づき設計方針を立て、それに基づいた設計を実践できる• 実施内容CPU エミュレータPC– 「ブロックビンゴ2020」を中心としたモデルを作成– 作成するモデルはA3用紙 1〜6ページ– 要求、分析、設計、工夫点について記述• 審査ポイント– 課題の有効な解き方を示すモデルになっているか– 設計方針の妥当性と、その方針に基づいた設計とビンゴ成⽴例( 横1 列)なっているか– 工夫点の記述が論理的か。その工夫は効果的か制御だけでなく、シミュレータならではの工夫など広く取り組みを評価します
ETロボコン2020 開催概要資料／ETロボコン実行委員会

11

アドバンストクラス審査課題（予定）

アドバンスト• 下記のモデルを作成し提出
モデル

内容

アブストラクトページ

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

自然言語、任意の図

要求モデル

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

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

分析モデル

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

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

設計モデル

ゲームに必要な機能や要求、分析結果を実現する設計方針の記述と、それに基づく構造と振る舞いの設計

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

工夫点

課題を解決する上で、性能や信頼性を向上させるために行った工夫（シミュレータならではの工夫も含む)

自然言語、任意の図

ETロボコン2020 開催概要資料／ETロボコン実行委員会

主に使用する図（UMLの場合）

12

3

課題1 制限時間内で獲得できるボーナスタイムが最⼤となる運搬パターンを選択する
課題3 ゴール前に経路選択( 経路探索) を完了する 攻略の前提条件 責務分担の⽅針-隣接するマスンゴエリアを図2 -1 に⽰す。
ンゴを表現するために」という要素が必要であると考えた。
は図2 -2 のクラス図のようになった。

1

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

1..2-

列

ボーナスタイム: int
成⽴個数: int
ボーナスタイム⼩計算: int---右下の頂点 1
ボーナスサークル有効
移動成⽴: boolean 0..1
ボーナスタイムの狙い⽅は以下のような優先順位となる。（

列-現在位置 0..1 -初期位置 0..1
1 -ボーナスサークル 0..10..*0..1-初期情報

1

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

1 ⾛⾏エリア

マスエリア

1

20..1
トリプルビンゴ

3ダブルビンゴ

ボーナスサークル条件
1

1 -全てのマス1

1線分

上位4 つを抜粋）
2..40..1 -初期位置 0..1
BC設置
CB有効移動
28ビンゴ
*
フルビンゴ

マスエリア

-撮影対象 1-ボーナスサークル情報

nt-結線

-現在位置

優先順位
1
ブロック

1ード

-接続元

交点サークル0..1-右上の頂点 1
指針1 ・ブロックビンゴ攻略の制限時間内で運搬できるかを判定する
12..4 ⾊: int
⾊: int⻑さ: int-左下の頂点 1
0..1
ブロックサークル番号: int ・運搬パターンごとに獲得できるボーナスタイムを算出する※ 「CB」・・・カラーブロック-接続先 -結線

ビンゴ成立: boolean

カメラシステム10..1

ブロックサークル-ビンゴ候補列 4マス-画像認識機能最⼤のボーナスタイム獲得のために、できるだけ多くの運搬パターンを探索したいが、EV3 の処理能⼒ではスタートからゴールまでの間に経路選択が完了しない可能性があるので、経路の決定までをPCで⾏うことにした。

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

アドバンストクラスモデル例
ボーナスタイム条件

0..1「BC」・・・ボーナスサークル

ボーナスタイム( 合計)-2 4 . 5 秒

数字認識2-2 2 . 0 秒

8個

62
2

-1 9 . 5 秒

7個

1デメリット

データ送信↓

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

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

1

-属するサークル-マスの頂点-隣接するマス2-左上の頂点 10..1
ブロックサークル
0..1
⾊: int0..1
ブロックサークル番号: int
ボーナスサークル有効移動成⽴: boolean 0..1-

-左下の頂点 1

⾊: int--接続元-結線

1

10..*

0..1

要求モデル
-現在位置-初期情報*

クラス名

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

0..1

カラーブロック
有効移動成⽴: boolean
⾊: int-分析
2 -4 . 解法
競技規約から抽出した
ブロックビンゴゲームの構成要素「指針1 」の実現⽅法-ボーナスタイム獲得条件

1..*

制御モデル

2

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

運搬順序決定2の動作定義動作に関する補⾜事項

クル跨ぎ 交点サークル間移動時に⾛⾏体はブロックが外円にはみ出していると接触する

3

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

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

2 . ブロック取得

ブロックサークルの外円上に侵⼊する運搬経路決定

制約

補⾜の1 . 〜6 . の動作が必要になると想定した。

ブロックサークルへの取得や垂直設置後の復帰など( ⾛⾏体の動作定義より)を実現するためには線分の中央を通過点として表現する必要があるため、中点ノード を⽤意した。

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

運搬順序と運搬経路の決定⽅法

2

45

3 -1 . 設計意図・⽅針

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

運 運搬経路をブロックを運搬する順番に並べ、最後に退出経路を組み合わせたもの
搬 ex ) ブロックを8 個運搬する場合、時系列順に並べた8 個の運搬経路と1 個の退出経路で構成される。
順
序 運搬するブロックの選び⽅を全パターン探索し、構成する経路のコスト 合計値が最⼩となるものを算出。

設置経路

3

取得
経路

運搬順序の評価⽅法

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

⾛⾏体動作変換

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

ダイクスト ラ法を⽤いて、
b l_ 1 7 .
取得経路・・・現在ﾉｰﾄﾞ から運搬対象「 」までのノードの組「」 コスト ( 動作の実⾏時間) 経路探索
設置経路・・・運搬対象から運 搬 先 「 」までのノードの組「」 が最⼩となる経路を算出。
b l_ 1 2 .
b l_ 1 3 .
ポイント ⾛⾏体の動作定義の制約より、ノード上に置かれているブロックの位置からパスの通過可否を判定し、通過可能な経路を⽣成する。 衝突回避経路 複数置ける経路

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

YES

⾛⾏体の動作定義

⾛⾏体の動作
交点サークル間移動

要求分析にて抽出したソフトウェア設計に関する要件から設計の⽅針を決定した。
実際に⾛⾏体でブロック運搬

8.1cm 5.5cm狙い

ブロック把持有無
ブロック無設計（構造）ビンゴエリア退出
PCとEV3 の処理分担 検討結果

取得経路と設置経路を組み合わせたもの: 移動可能なノード( 交点サークル)

終了判定

ビンゴエリア進⼊

指針3 ・通信異常時でも経路探索できるようにする

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

凡例

運搬順序評価A. 交点サークルへの取得

運搬
経路

⾛⾏体動作⽣成

ブロック運搬( ⾛⾏体動作の実⾏)・PCで全運搬パターンの探索を⾏う

制御モデルに記載する。

以下のノードとパスを⽤いて経路を決定する。

ビンゴゲーム攻略の流れ

1

EV 3

デメリットに対しては、以下の⽅法でリスクの低減を図る。
・通信データの正しさを受信側でも確認。( 誤りの場合再送)・通信途絶時は、予め⽤意した経路( デフォルト経路) を利⽤して、最低限の攻略ができるようにしておく。

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

・更に数字の特定には機械学習を⽤いた数字認識を⽤いる

クラス名0..1b l_ 2 4 .
実現⼿段検討⽅針

指針2 ・ブロックの⾊・位置、および数字の特定にはカメラシステムを⽤いる ※実現⽅法については

⻑さ: int

2..40..1 -初期位置 0..1ブロック

⿊ブロック

線分

2..4 --接続先 -結線-右下の頂点 1ークル 0..1 -現在位置 0..1 -初期位置 0..1

14 1..3交点サークル-右上の頂点 1

6個

⾊: int
課題2 ブロックの⾊と位置および、数字カードの数字を特定する

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

1組-1 9 . 0 秒

有効移動成⽴: boolean-マス

3

ダブルビンゴ カラーブロッ5ク

アドバンスト

運搬順序・経路決定• 2019年エクセレントモデル「デンソルジャー」
14
⿊ブロック-隣接するマス
28

カメラ画像取得
ブロック認識・ 計算コストの⼤きい「運搬順序」、「運搬経路」の探索処理を速く⾏うことができる。

運搬回数
9個

7PC

メリット

動作時間
1 . 2 5 ( 秒)

4 終了判定( 最適な運搬順序の判定⽅法) b l_ 1 6 .
運搬経路
全運搬順序を確認し、以下の条件満たすものを⾒つける。
決定条件( 合計コスト< = ⽬標時間) & & ( ボーナスタイム= = m a x ( Pi ) )※ m ax( Pi) ・・・ i 個運搬した時に得られる最⼤ボーナス点数

ポイント① ボーナスタイム満点( i= 9 ) の条件を満たすものが存在しない
場合、「途中までの運搬順序( i= 8 , …) 」から条件を満たすものを⾒つける。
ポイント② ゴール時に探索が未完了の場合は、算出済みの運搬順序の中から条件を満たす運搬順序を⾒つけて、それを最適運搬順序とする。

5 ⾛⾏体動作への変換⽅法 ※下記は⼀部を抜粋したもの「ノードの種類」と「⾛⾏体のブロック把持有無」から⾛⾏体動作へ変換する。
「→「→」( ブロック無) = 交点サークル間移動」( ブロック有) = 交点サークルへの取得 「「「→」( ブロック無) = 交点サークル跨ぎ→→」( ブロック有) = 垂直設置」( ブロック無) = BCへ取得「→」 = 斜め設置後の復帰

補⾜ 正確にブロック位置へ移動意図
設計⽅針
制約 ブロックがブロックサークル内円
制約 ブロックを取りこぼさないために
b l_ 2 4 .
「指針3 」の実現⽅法
7 通信途絶時⽤のデフォルト 運搬順序
6 PCからEV 3 への経路情報の送信⽅法
する必要があるため、旋回直前にライン⽅針①・パラメータを⾃動算出できるようにする
からはみ出していないこと
異常時の処置・パラメータの調整にかかる時間を減らしたい
低速のライントレースで接近する トレースで⾓度補正ができる垂直b l_ 1 8 . 調整が容易にできる構造
通信途絶リスクを考慮し、⼀度に送信するデータ量を抑えるため、取得経路・設置経路ごとに送信する。
＝ ブロック設置時に確実にブロック・パラメータ調整時に発⽣するリスク( ⼈為的な変更ミス)を減らしたい 斜め取得は不採⽤)
カメラシステムとの通信途絶時には、ブロックサークル置かれている取得を採⽤する(
⽅針②
・調整箇所と実⾏処理部を分ける
また、チェックサムを導⼊し、受信側( EV3 ) で正しさを確認、正しくない場合はデータの再送をPCへ依頼。
サークル内円内に設置することブロックの位置および全ブロックの⾊が不明である。
交点サークルの真ん中付近で旋回すると、⾛⾏体の尻尾が背後側の取得経路 → 設置経路 → 取得経路 → 設置経路 → ・・・ → 退出経路
b l _ 0 4 . 機能を容易に追加・変更できる構造・機能追加・変更によるソフトウェアの変更箇所を少なくしたい
このため、位置が判明している交点サークルに置かれているブロックサークルの内円上に侵⼊する
16cm 13.5cm
・複数の機能から利⽤される要素は共通化する
⽅針③
補⾜
経路データを時系列順に送信する。下記は、送信する経路データの内訳。
ブロックを取得し、直近のブロックサークルに運搬する。
「垂直設置」については、・複数⼈で分担して実装・テストできるようにしたい
尻尾がブロックと接触
b l _ 0 3 . 機能毎に容易にテストできる構造
直設置
交点サークルの真ん中付近での{ [ ノード座標,ブロック把持有無] , [ ノード座標, ブロック把持有無] , …, [ ノード座標, ブロック把持有無] , チェックサム }デフォルト運搬順序のイメージ図( Lコース)
・不具合発⽣時に原因箇所の特定を容易にしたい・機能間の結合を疎にする
旋回が発⽣するため、ブロック羅的に探索するため、
⽅針④
・機能配置の変更を容易にしたい
b l _ 2 7 . 移植しやすい構造
クを取得して サークルへの取得と同じ制約がある
・機能ごとに独⽴して動作する構造にする
指針を実現するための構成を以下に⽰す。なお、解法に直接関係しない要素や、単純なset/getの操作は紙⾯の都合上省略した。
ビンゴゲーム攻略のための指針を実現する構成
class Packag e1class Pack a g e1
・次⼤会以降にも再利⽤したいブロックの中から
b l_ 1 5 .
ブロックビンゴ
指針実現のクラス名
クラス名搬対象を決定する。
補⾜ 動作にかかる時間は「斜めboGameクラl_ 1 4 . ス図class Bing
図2 -3 : ビンゴゲーム攻略のための構成( クラス図)
攻略⽬標時間ゲームのために追加した
ボーナスタイムb l _ 2 2 . 責務分担の⽅針
制約設置」の⽅が短く優位であるが、構成要素
クラス
設定
カメラシステム算出
ブロックサークル進⼊時に背後側のブロックサークルにブロックが存在しない事
下記の制約を考慮し、「垂直設置」-運搬エリア情報-判定結果設定先
マスエリア
判定結果: 初期情報
したブロック対して、«struct»の動作も採⽤することとした。
算出⽅法は次ページのpkg 全体構成
ブロックビンゴの分析結果および、ソフトウェアの設計⽅針を元にソフトウェア全体の構造設計を⾏った。
1
1 +初期情報を判定する(): void
デフォルト設定値: 初期情報
初期情報
動となるノードの中から-隣接するマスシーケンス図( 図2 -6 ) に - 数字を判定する(): void-全てのマス
15 . ブロックサークルへの移動( ブロック設置) 後の復帰
8運搬計画
2
搬先を決定する。
+
初期情報を設定する(初期情報): void
数字カード: int
ブロック配置を判定する(): void
1
記載する
⾛⾏体
共通
カメラとPCをカメラシステムであると定義し（
図3-2 ） 、
3
ブロック[10]: ブロック情報
置かれたブロックがブロックサークル外に押し出される
デフォルト運搬順序: 運搬順序
B. 垂直設置後の復帰
マス
A. 斜め設置後の復帰
ビンゴゲーム攻略⽬標時間: int-隣接するマス 後退後、左右0..1
物理配置も踏まえたソフトウェア構成を図3-1 に⽰す。
-ビンゴとなる組
1..2
動作管理
3 個⽬
①2
動作を登後退後、左右
経路計画
動作⽣成
1+
最適な運搬順序を決定する(): 運搬順序
-ボーナスサークル
1 -属するサークル«struct»
経路を⽣成する どちらかに旋回し-左上の頂点 10..1
全運搬順序を求める(): void
録する どちらかに旋回し列
1..3
ブロック情報交点サークル1
ライントレースで運搬対象を決定する(): ブロック制約
ポイント1 ブロックサークル
現在位置から0..1-右上の頂点1-マスの頂点線分上に復帰+
ブロックサークルを取得する(): List< ノード>
4
運搬先を決定する(): ノード
座標: int
⾊: enum
交点サークルに⾊: enum
象を運搬先に運ぶ-左下の頂点 10..1
退
出先を決
定する
():ノー
ド
⾊: enum
ブロックを設置する際に、①②-ビンゴ候補列する。
4
動作を実⾏する
ブロックサークル番号: int-隣接する中点ノード+隣接ノードを取得する(): List< ノード> 22..4復帰する。
通信異常時への対応のためにカメラシステムだけでなく、路を作成する② 復帰パターンは-右下の頂点 10..1
1先に設置したブロックと1
1
残り時間を取得する経路を⽣成する+隣接ノードを取得する(): List< ノード>
復帰パターンは*-最適運搬順序-全運搬順序中点ノード
走行体にも共通の経路計画機能を持たせた。
0..1
同⼀の⽅向からブロック設置
1..2
ビンゴ条件
4
全2 通り( ①と②)
⾛⾏体制御
全2 通り( ①と②)
+隣接ノードを取得する(): List< ノード>
⽅針③
カメラシステム運搬順序の動作は⾏わないこと-隣接する中点ノード個⽬

3 -2 . 構造設計（ 全体）

設計（システム構成）
パッケージ設計

運搬計
画
6 . ブロックサークルへの移動(ブロック取得)
後の復帰
運搬順序を取得する

制御-

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

メリッ-ボーナスサークル
0..1-全ブロック
ト1 -経路作成

-運搬対象
10

1

1
経路計画

-

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

9 -ノード通⾏可否条件
1ビンゴ成⽴を判定する(列, List< ブロック> ): boolean+運搬経路を追加する(運搬経路): void
+最適な運搬経路を作成する(ブロック, ノード): 運搬経路
ブロック
復帰パターンは全8 通り ブロックサークル上で旋回後ビンゴボーナスタイムを計算する(int): int 経路計画仕様変更時に1回の変更で走行体・カメラシス+退出経路を追加する(経路): void
⾛⾏体情報を取得する+最適な退出経路を作成する(ノード): 経路
線分の真ん中付近で旋回
8-現在位置1 -運搬先 *合計コストを集計する(): int
⾊: enum変更箇所が少なくなる
テムの両方に反映でき、。
1-ビンゴ成⽴条件
最短経路を探索する(ノード, ノード): 経路①②た運搬経路までで獲得し、ライントレースで獲得ボーナスタイムを集計する(): int
環境情報を取得する
有効移動成⽴: boolean
駆動を指⽰するックを取得すると、設置ができない場合がある
0..1
ノード
次のノードを決定する(): ノード運搬順序送信を依頼する
初期状態を取得する*
1ーナスタイムを計算する* -探索対象 * ノードの通⾏可否を判断する(ノード): boolean+現在位置を設定する(ノード): void
-初期位置
交点サークルに復帰する。
11
ボーナスサークル設置条件
座標: int
1..*
1+
現在位置を取得する(): 座標
1があり
0..1
0..1
⾛⾏体
⑤ ただし、旋回量が⼤きくなる
ポイント2
環境情報を 外部③
情報管理
通信管理
ボーナスタイム: int+
隣接ノードを取得する(): List< ノード>
-全ブロックの運搬経路①
1 1
1タイミングを 画像-認識-ボーナスタイム
0..1
ボーナス
タイ
ム
ークルに 進⼊先として以下の3 つから-運搬中ブロック1..*
ボーナスサークル設置成⽴数: int-最適な運搬経路
0..1
0..9 { ordered}( | θ| > = 1 3 5 °※実測結 取得する
取得する
0..*
獲得条件
-現在位置1-構成要素
獲
得条件選択できるようにする。
容は、-探索中の経路パッケージ間で相互参照が行われない構成にした
い0..1{ ordered}*+ボーナスタイムを算出する(): int
0..1 -最適な退出経路
10..1
果より ⇒ 該当動作は背後
運搬経路
0..1④までの最短経路探索で⑥-設置経路（通信処理を除く）。 ⾛⾏体
⽅針④-現在位置の線分に復帰する⑦・⑧) と、
カラーブロック有効移動条件
経路
経路全体のコスト: int
駆動する
センサ値を取得する②
1とほぼ同じであるため、①「4 」の左上
1
1
旋回時に遠⼼⼒でブロック-取得経路
画像を取得する
センサ値を取得する
ボーナスタイム: int
向き: int
コスト: int+経路を追加する(経路): void
通信を管理する通信を管理する1
メリッ
⾛⾏体動作
置いて ②「4 」の左下愛する。
*
1
有効移動成⽴数: int*
ボーナス条件経路全体のコストを計算する(): voidを離してしまうリスクがある。
⑦⑧+現在位置を取得する(): ノード
1+ノードを追加する(ノード): void 1
制約③「6 」の左下
動作実⾏時間[動作種類]: int-退出経路+トボーナスタイムを算出する(): void+所持ブロックを取得する(): ブロック -現在のコストを計算する(): int
ボーナスタイム: int-2ノード
⾛⾏体デバイスカメラシステムデバイス
適切+現在位置を設定する(ノード): void+動作を判定する(ノード, ノード): int
間のコスト
ブロック把持中に1 3 5 °以上旋回する場合(通⑦・⑧)変更や単体テストが 向き信する は、低速で旋回する。
③+ボーナスタイムを算出する(): int 1 パッケージ間の疎結合によって、1-獲得ボーナスタイム*容易となる。

通信する

deployment 配置図ス)

ボーナスタイム算出( シーケンス図)

ロックに対して、有効移動が⽴しているかを確認する«device»
⾛⾏体

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

Bluetooth«device»PC

カメラシステム
有線LAN«device»
カメラ

配置

パッケージ名

役割

共通

経路計画

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

運搬計画

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

画像認識

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

通信管理

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

カメラシステム

カメラシステムデバイス

図3 -2 カメラシステム定義（ 配置図）

3 -3 . 振舞設計（ タスク）
ETロボコン2020 開催概要資料／ETロボコン実行委員会

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

タスク設計

⾛⾏体

カメラ、通信デバイス

動作管理

戦略（ 動作リスト） を保持し、次の動作を決める

⾛⾏体制御

動作に基づいて、適切な出⼒を決定する

⾛⾏体

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

動作⽣成

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

13

モデル審査について• 2020年度は地区大会・全国大会といった区分けがなくなったため、モデルの提出は全クラス１度だけとなります• 提出されたモデルはまず地区審査委員で評価し、上位のモデル（評価が一定以上のモデル）について本部審査員を含めて再度審査を行い、順位を確定します• 従来通り全チームに対し、モデルへのコメントがフィードバックされます
大会終了後のモデル相談も受けられます

ETロボコン2020 開催概要資料／ETロボコン実行委員会

14

技術教育
技術教育
（共通）

エントリー
提供資料

①全国共通（2日間）※a、bのどちらか、または組み合わせで実施
a.走行体の基本制御とモデルによる可視化
b.モデル作成とそれをコードに変換する基礎演習
全国共通教育は動画配信およびZoomによるオンラインサポートで行います②地区独自
各地区ごとに独自コンテンツを提供
上記には、初学者のためのセットアップサポートや演習も含まれます。
技術教育後もメーリングリストにより、技術的なサポートを受けることができます。
配布資料を使った自己学習により、さらなるステップアップが可能です。

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

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

ETロボコン2020 開催概要資料／ETロボコン実行委員会

15

2020年の参加特典（審査関連）• UMTP様のご協力により、UMTP認定試験
Level1-2を特別価格で！
– 通常15,000円（税別) →10,000円(税別)– 1チーム２名まで、先着100名様限定– 参加申し込み時に申請– https://umtp-japan.org/about_exam/work_gaiyo• Level2を受講にするにはその下のレベルに合格している必要があります

ETロボコン2020 開催概要資料／ETロボコン実行委員会

16

ETロボコン2020開催 モデル審査(シミュレーション大会改訂版)
ETロボコン実行委員会
17