概要

モデルを使った開発を体験しよう!
logo

「技術教育」は、ETロボコン参加者向けの公式トレーニングです。
競技で用いる走行体を開発対象機器として、分析・設計にモデルを使った開発を実際に体験します。

走行体を動かすのに必要な開発環境・要素技術の知識を得て、モデルとコードの対応づけや要素技術をモデルに取り込む方法を学び、機能を組み合わせてシステムを開発することに挑戦します。

モデルを作るのが初めての方でも、開発にモデルを使う方法や、モデルとコードや実機環境をどのように対応づけるのかについて、実践を通して具体的に学べます。

1. 目標

技術教育では、次のような力がつくことを目標にします。

  • ソフトウェア開発にモデルを使う意義・価値を理解しています

  • ソフトウェア開発に使うモデルを読み書きできます

  • モデルとコード(プログラム)を対応づけできます

  • モデルを使って開発を進めることができます

2. 技術領域と教育範囲

この技術教育だけで、組込みシステムの開発やオブジェクト指向、モデリング等の技術のすべてを身につけることはできません。技術教育で学ぶことができるのは、組込みシステムにおけるごく初歩的なモデルの作成方法や、モデルに対応したコードを作成する簡素な方法に過ぎません。

図 1 は、ETロボコンに関係する技術領域と技術教育の関係を示した図です(技術教育のテキストからの抜粋です)。

domain
図 1. 技術領域と技術教育の教育範囲(テキストより抜粋)

さらに、図中の「モデリング教育」は、「要素技術とモデルを開発に使おう」と「開発プロセスに沿って開発する」に分かれています。

この図からわかるように、技術教育で提供しているのは、ETロボコンの参加者が必要とする技術領域のうち、走行体のデバイスの扱い方、開発環境の利用方法、モデルを使ったシステムの開発方法など、基礎的な範囲に限られます。本格的な開発には、さらに、プログラミング、組込みシステム、制御工学といった複数の分野の知識や実践力が必要になってきます。

このように、この技術教育は、みなさんにとって、組込みシステム開発やモデルを使ったシステムの開発を実践できるようになるためのスタートラインに立つ機会になっているのです。

3. 前提知識

技術教育を受講するにあたっては、次のような前提知識があることを想定しています。

  • C言語/C++ 言語のプログラミング経験、あるいは類似の言語におけるプログラミング経験があること

  • UMLの表記法に関する知識があれば、よりスムーズに演習に取り組めるでしょう

プログラミング演習ではありません

技術教育で提供するのは、プログラミングの演習ではなく、ソフトウェア開発のモデルの作成方法と、設計したモデルからコードに直す方法です。最後には設計モデルを参照して実際に走行体を動かすコードを作成しますので、プログラミングの経験がないと、演習についていけなくなることがあります。

教材は、分析・設計のためのモデリング演習に注力するため、開発言語の詳細については取り扱っていません。受講するみなさんが、C言語/C++ 言語のプログラミングがある程度身についていることを前提としています。必ずしも高度で十分な経験がなくても演習できるようにはなっていますが、事前にある程度プログラミング演習を済ませておけば、技術教育が本来提供する教育内容をよりよく理解できるようになるでしょう。

4. 所要時間

次のような所要時間を想定しています。

  • 2日間(約16時間):集合教育の実施時間

    • この時間は、教材として想定している集合して受講する時間です。

    • 環境構築、受講のための準備時間、理解や演習に必要な自己学習時間など、各自が別途必要とする時間は含みません。

    • 実際にどの教育や演習にどの程度の時間を使うのかは、地区の運営によって異なります。

必ず地区の技術教育の予定を確認しましょう

地区によっては、このガイドにはない別の教育や勉強会が提供される場合があります。 そのため、このガイドで想定してる時間配分とは異なる日程、内容で実施する場合もあります。実際のスケジュールや時間配分は、参加する地区の実行委員会に確認してください。

5. 教育の形式

実際に作って動かす演習が中心

モデルの作成・プログラミング・走行体を使ってプログラムを動かす、といった演習が中心の実践的な教育です。

参加者のみなさんが自分自身で実際に走行体やモデルを使うことで、モデルとコードのつながり、コードと走行体の動作のつながりを実感できるよう構成してあります。

必ず参加前に走行体と開発環境を準備しておきましょう

走行体を忘れたり、開発環境の準備ができていないまま受講すると、提供する演習が実施できません。実際に作ったり動かしたりすることで体験を通じて学び、どのような知識や技術が必要なのかを身を持って知る機会を逸することになります。

6. 技術教育に持参するもの

6.1. 走行体(プライマリークラスの方)

走行体は「EV3Way(プライマリークラスの走行体)」です。
必ず 2019年版の組立図を確認して 作成してください。

2019年版は「EV3way-ET/HackEV 組み立て手順書」となっています。

走行体を組立てるときは トレーニング用補助脚 を忘れずに!

最初の演習は、倒立振子ライブラリを使いません。補助脚がないと演習できませんので注意しましょう。

2019年版の「EV3way-ET組み立て手順書」に従い、必ず「 トレーニング用補助脚 」 をつけたものを用意してください。
「トレーニング用補助脚の装着」にトレーニング用補助脚の装着方法に書いてあります。

EV3Way front and rear view
図 2. トレーニング用補助脚つきEV3Way(2019年版)

6.2. 走行体(アドバンストクラスの方)

アドバンストクラスの参加者も技術教育の演習は実施できるようになっています。
走行体は「HackEV」でかまいません(組み直さないでも演習できます)が、センサーポート、センサーのしきい値などに少しだけ変更が必要です。

変更箇所の詳細は下記の文書に記載してあります。予め参照しておいてください。

  • 「技術教育の演習にHackEVを使うには」

    • settings_for_HackEV_user.pdf

6.3. バッテリー、USBケーブル、SDカード

演習に困らないよう、走行体に使う付属品を忘れないようにしましょう。

  • 電池またはリチャージャブルバッテリーパック

    • リチャージャブルバッテリーパックは充電してくださいね

  • プログラムを転送するためのUSBケーブル

    • 技術教育の会場ではUSBを使ってプログラムを転送してもらいます

  • SDカード

  • その他の付属品(必要に応じて)

どうして Bluetooth ではなく USB を使うの?

PCから走行体へのプログラムの転送には Bluetooth も利用可能です。しかし、技術教育の会場のような、まだ設定が不十分ではないEV3が同時にたくさん動作する可能性が高い環境では、 Bluetooth 通信のトラブルが起きがちです。また、使用するPC側の内蔵チップやBluetooth用ドングルのドライバが動作しないために接続できないといったことも起きています。

PCで直接SDカードに書き込む方法は通信がないので、この心配がありません。しかし、プログラムを更新するたびSDカードを頻繁に抜き差しすることは、操作に時間がかかるだけでなく、汚損や静電気等によってSDカードが傷む原因につながります。

以上の事情から、技術教育の会場では、安定して確実に転送できるUSBケーブル接続による方法で演習してもらって います。

6.4. ノートPC(Windows PCの方)

技術教育の演習は、Windows PC で Cygwin 環境を使う人を想定して準備してあります。
ほかの環境の方は、自分で環境を構築しておくか、参加者メーリングリストで相談してください。

ノートPC用のACアダプターをお忘れなく

昨年までの開発環境があっても、必ず環境を見直しましょう

必ず開発環境を見直してから参加してください。 もし、技術教育の推奨環境と自分たちの開発環境を別々に保持したい場合には、それぞれを別の場所に構築すれば併存できます。

6.5. ノートPC(Mac や Linux を使っている方)

自分で Mac や Linux 用の EV3RT 開発環境を用意できる方も参加できます。
モデリングツール astah* Professionalについても、macOS版やLinux版があります。自分たちの演習で使う環境にあった版をインストールしてください。

開発環境の問題は事前に解決しておきましょう

技術教育の当日は、原則としてWindows PCを使っている方を想定した演習を実施します。技術教育当日はmacOS や Linux に対応ができるスタッフがいるとは限りませんので、開発環境の構築、サンプルの動作確認などは、あらかじめ済ませておきましょう。問題があれば事前に参加者メーリングリストで質問するなどして解決しておいてください。

7. 事前準備の詳細

(極めて重要) あらかじめ開発環境構築と動作確認を済ませておくこと

モデリング入門の演習である「要素技術とモデルを開発に使おう」と「開発プロセスに沿って開発する」 では、実際にモデルとコードを作成し、走行体を動かす演習を実施します。

すぐ演習に入れるよう、環境環境の構築、EV3RTに添付されているサンプルによる動作確認は済んでいることを想定しています。つまり、あらかじめ演習の実施に必要なもの(走行体、開発環境、モデリングツール)を準備し、さらに演習用テキストやサンプルを入手しておく必要があります。この演習には環境環境の構築や動作確認の時間は含まれていないので注意しましょう。

繰り返します。

  • 環境構築を構築し、サンプルプログラムがビルドできることを確認してください。

  • そのサンプルプログラムを、EV3にダウンロードできることを確認してください。

  • ダウンロードしたプログラムが動作することを確認してください。
    かならず、その動作確認に使っているPCを持参してください。

みなさんの準備ができていないと技術教育の運営全体に影響します

まず、みなさんのチームが、技術教育から学べることが少なくなり、準備を済ませて技術教育に参加したチームより不利になります。

また、あるチームの準備不足が原因で演習が滞ると、教育の進行全体が滞ってしまいます。 ちゃんと準備してきたチームや、地区の運営に大きな迷惑がかります。

これだけ説明しても、技術教育の当日になって、環境設定ができていない、走行体を持ってこない、実際にEV3を使ってプログラムの動作を確認していないというチームが現れます。
そうなると、技術教育全体の進行が妨げられ、予定の内容が消化できないといった問題が起きます。

もう一度強く要請します。

  • プログラムを走行体に転送し、動くことを確認してから参加しましょう

  • 動作の確認に使った PCと走行体の組を持参しましょう

どの参加チームも、参加費を払って参加しています。他のチームに迷惑をかけないよう配慮しましょう。

7.1. 技術教育のテキストやサンプルを入手しておく

参加者ページのダウンロードのページから、次の資料を入手します。 また、アドバンストクラス向けには、技術教育の演習は提供していませんが資料を配布しています。参考にするとよいでしょう。

表 1. テキストやサンプルのファイル
演習 ファイル名

開発環境・要素技術セミナー

basics.zip

要素技術とモデルを開発に使おう

beginners.zip

開発プロセスに沿って開発する

chap-00-04.zip

chap-05-07.zip

chap-08-apx.zip

同上、演習結果
(これらはパスワードで保護されています)

chap-05-ans.zip

chap-06-ans.zip

chap-07-ans.zip

アドバンスト向け技術教育資料

advanced.zip

これらのファイル群は、配布作業や地区の運営事情などによって、参加者に配布する際には個別のファイルではなく、まとめられた形で配布する場合があります。 参加者ページのダウンロードページに関する説明を読んで、必要なファイルが入手できるよう気をつけましょう。

7.2. モデリングツールが使えることを確認しておく

スポンサー様より技術教育期間を通じて利用できるライセンスを提供していただいます。
ツールとライセンスの入手方法は、技術教育開始までに本部事務局から案内があります。
(詳細は、地区の実行委員会、本部事務局に問合せてください)

7.2.1. モデリングツールの入手

「要素技術とモデルを開発に使おう」と「開発プロセスに沿って開発する」では、モデル図を作成する演習があります。ツールスポンサーとして、チェンジビジョン殿より astah* Professional と参加者向けライセンスが提供されています。このツールを使うことで、モデル図の作成の演習を容易にします。

参加者向けに提供される astah* Professional のダウンロード方法、ライセンスの取得方法、ライセンスの設定方法は、次のページに掲載されています:

ダウンロードやライセンスの取得方法、ライセンスの設定方法についてわからないことがあれば、地区や本部事務局に問い合わせることもできます。

astah* Professional と参加者向けラインセンス(技術教育期間中利用可能)を入手しましょう

(株)チェンジビジョン様には、ツールスポンサーとして、製品と参加者向けライセンスを期間限定で無償提供していただいていおります。 いくつかの演習は、astah* Professional の提供する機能を使って演習します。必ず astah* Professional とライセンスを入手しておきましょう。 また、参加者のみなさんも、できる範囲でフィードバック等に協力するとよいでしょう。

7.2.2. インストールとライセンスの設定

astah* Professional のダウンロード方法に従って入手したら、インストール手順に従ってastah* Professional をインストールしてください。

取得したライセンスファイルを、ライセンスの設定方法に従って設定します。

7.2.3. 動作を確認する

「図」メニューから「マインドマップ」→「新規マインドマップ」を選択して、簡単なマインドマップを作成してみてください。 astah* Professional をインストールして使える状態になっていれば、マインドマップが作成できるはずです。

7.3. テキストエディタを用意する

プログラムを作成するのにメモ帳や WordPad を使うのはやめましょう。プログラミングを目的に作られた、テキストエディタや Eclipseのような統合環境(IDE)を用意しましょう。

7.3.1. テキストエディタの例

例 1. Windows用

Notepad++、TeraPad、サクラエディタ、Atom、Brackets、Emacs、Vim、Sublime Text、Visual Studio Codeなど

例 2. OS X(Mac)用

CotEditor、mi、TextMate、Atom、Brackets、Emacs、Vim、Sublime Text、Visual Studio Codeなど

7.3.2. テキストエディタに慣れておく

技術教育では、テキストエディタとコマンドラインツールを使ってプログラムを作成します。
演習中は、みなさんで同じやり方で進めましょう。

次のような基本操作を確認しておきましょう

  • ファイルの作成、削除、保存、別名での保存、扱えるファイル拡張子の確認

  • 文字単位、単語単位、行頭・行末、文頭・文末などへのカーソルの移動

  • テキストの入力、削除、コピーやペースト、検索、置換

  • その他提供されているコマンドの使い方

7.4. 開発環境を構築し走行体を動かしておく

必ず「技術教育より前」に開発環境を構築し、走行体の動作を確認しておいてください。

開発環境を構築し、走行体を動かせるようになっていないと、技術教育1、2の演習はできません。また、開発環境の構築には時間がかかりますので、技術教育の当日に環境を構築していると、教育自体を受けることができなくなってしまいます。

演習用の補助脚も忘れないようにしましょう。

7.4.1. 開発環境を構築しておく

技術教育の受講までに、EV3RTの開発環境構築(Cygwin、TOPPERS/EV3RT、GCC ARMなどのインストール)を済ませておきましょう。

開発環境の構築とEV3本体の動作の確認には、以下のWebサイトを参照してください。 このサイトでEV3RTを配布しています。また、EV3RTの説明、環境構築の手順、動作確認の手順が提供されています。

必ず、EV3RTのβ7を使いましょう

2019年度の技術教育では、EV3RTのβ7(ev3rt-beta7-2-release)を使います。異なる版では、演習のプログラムがコンパイルできない、期待通り動作しないといったことが起きる場合があります。 もし、以前の環境がある場合は、技術教育に合わせて新しい版で環境を構築しましょう(旧版が保存したいときは、別の場所に構築すれば併存できます)。 また、SDカードの中にPC上とは異なる版のEV3RTで作成したイメージが含まれていると、プログラムが転送できません。必ずSDカードの中身も更新しましょう。

7.4.2. 走行体の動作を確認しておく

技術教育の受講までに、EV3RTの開発環境で動作確認用のサンプルプログラムを作成し、走行体を使って動作確認を済ませておきましょう。

次の資料には、TOPPERS/EV3RTのWebサイトの説明を補足し、確認すべきポイントを説明してあります。

表 2. 開発環境構築の補助資料
資料 ファイル名

EV3開発環境の構築

preparing_EV3_dev_env.pdf

事前チェック_Win編

self_checking_win.pdf

技術教育の演習にHackEVを使うには

settings_for_HackEV_user.pdf

8. 演習の進行

技術教育の演習の大まかな進行です。実際の進行は、開催する地区の事情によって変わることがありますので、自分が参加する地区の提供する予定を確認してください。

必ず地区の技術教育の予定を確認しましょう

地区によっては、このガイドにはない、別の教育や勉強会が提供される場合があります。 そのため、このガイドで想定してる時間配分とは異なる日程、内容で実施する場合もあります。実際のスケジュールや時間配分は、参加する地区の実行委員会に確認してください。

8.1. 技術教育1(1回目)

演習 使うもの

午前

開発環境・要素技術セミナー

講義資料

午後

要素技術とモデルを開発に使おう
(モデルとコードのつながりを知る演習、
要素技術をモデルに組込む演習)

走行体、 演習テキスト、 ノートPC
(EV3RT環境、astah* Pro)

8.2. 技術教育2(2回目)

演習 使うもの

午前

開発プロセスに沿って開発する(1)
(開発プロセスの講義と最初の演習)

走行体、 演習テキスト、 ノートPC
(EV3RT環境、astah* Pro)

午後

開発プロセスに沿って開発する(2)
(演習1から演習3、まとめ)

走行体、 演習テキスト、 ノートPC
(EV3RT環境、astah* Pro)

9. 演習の内容

9.1. 開発環境・要素技術セミナー

項目 内容

ハードウェアの特性

ジャイロセンサー、カラーセンサー、外乱の影響、超音波センサー、モータに関する解説

倒立振子ライブラリ

倒立振子ライブラリに関する解説、使い方の注意

EV3の開発環境

公式サポート開発環境やOSによる制御方式の違いなどを解説

RTOS (EV3RT)

代表的なしくみ、EV3RTの紹介、EV3RTで開発する手順などを解説

EV3RT API

モータ、カラーセンサー、タッチセンサー、ジャイロセンサーなどを使うためのAPIに関する解説

お願い

競技上のお願い、自動停止機能、ライブラリ改変に関するお願いなど

9.2. 要素技術とモデルを開発に使おう

使用するもの

走行体、演習テキスト、ノートPC (EV3RT環境、astah* Pro)

やること
  1. 事前準備のチェック

    • EV3用の開発環境の確認
      (確認が目的、開発環境はこの日までに構築しておくこと)

      • モデリングツールのインストールと参加者向けライセンスのチェック

      • テキストと演習用データが入手できていることの確認

      • テキストエディタの確認

  2. コードとモデル図を対応づけてみよう

    • サンプルコードからモデル図を作る

    • 見なおしたモデル図からコードを作る

  3. 要素技術をシステムに組込もう

    • サンプルプログラムの振舞いの図を描いてみる

    • なめらかに動かすための調査と実験

    • 実験結果をモデル図に反映する

    • モデル図に対応したコードを作る

  4. 倒立振子ライブラリをモデル図に組込む

    • 倒立振子を使ったサンプルを動かしてみる

    • サンプルの構造をモデル図に表す

    • ライブラリの使われ方を調べる

    • ライブラリをクラスに仕立てる

    • モデル図を更新して、対応するコードを作る

9.3. 開発プロセスに沿って開発する(1)

使用するもの

走行体、演習テキスト、ノートPC (EV3RT環境、astah* Pro)

やること

0章: 演習の準備

  • EV3を使ったシステムを開発するために使用する開発環境の構築

  • モデリングに使うツールのインストールと参加者向けライセンスの設定

  • 演習用データの入手

1章:なぜ、モデルが必要なのか?

  • 組込みソフトウェアの開発に、モデルを使うことの理由・意味の理解

2章:ソフトウェアの開発の進め方とモデルの活用

  • 組込みソフトウェアの開発手順(開発プロセス)の理解

  • 開発プロセスにおける、モデルの活用方法の理解

3章:例題)モデルと部品を使ってソフトウェアを設計する

  • 開発環境と実際の演習に使う環境、ライントレースの方法についての説明

  • ライントレースを題材にした、モデルと部品を使ったソフトウェア設計の手順の紹介

4章:例題の続き)モデルからソースコードを作る

  • 前の演習で作成したモデルを、ソースコードに変換する具体的な方法の説明

9.4. 開発プロセスに沿って開発する(2)

使用するもの

走行体、演習テキスト、ノートPC (EV3RT環境、astah* Pro)

やること

5章:演習1)システムに新しい機能を追加する

  • 部品とモデルを使ったソフトウェア開発を実際に体験する

  • これまでの演習で学んだ開発方法を使って、ロボットに別の機能を追加する

6章:演習2)異なる機能を持つロボットを開発する

  • モデルを使った差分開発を体験する

  • これまでの開発に使った部品の一部を再利用して、別の機能を持つロボットを開発する

7章:演習3)これまでの部品を使って新たな機能を実現する

  • 既存の部品を再利用した開発を体験する

  • これまでに開発した機能を部品とし、これらを組合せた新たな機能を持つロボットを開発する

8章:参考文献、その他の情報

  • モデリングやモデルを使った開発の参考になる文献の紹介

  • モデリングに使うことができるその他の記法の紹介

  • 学習の発展のために紹介しておきたい技術や情報の紹介

9章:演習のまとめ

  • 講義や例題で演習したことの確認

  • 演習1)から演習3)で学んだことの確認

本資料について

資料名: トレーニングガイド: ETロボコン技術教育 (技術資料)
作成者: © 2019 by ETロボコン実行委員会
この文書は、ETロボコン公式トレーニング「モデリング入門」2015のシラバスをもとに、2016年以降のETロボコンの技術教育全体のシラバスに再編集したものです。2019年からは誤解を受けるシラバスという呼称をやめ、トレーニングガイドと呼ぶことにしました。

v2.4, 2019-05-13 11:37:22, 2019年用