LED-Camp

Learning Embedded software Development Camp

実習内容

本ページは2016年8月に実施したLED-Camp4の情報を掲載しています.LED-Camp5の情報は確定次第掲載します.

概要

LED-Campは、組込みシステム開発の初学者や未経験者、組込みシステムに興味のある方を対象とした、合宿形式の教育実習プログラムです。

掃除機型ロボットiRobot Create2を教材に、その制御プログラム開発をモデル駆動開発技術やアジャイル開発技術を用いて行い、最新の開発手法の有用性を体験します。実習は初対面の参加者から構成されるグループで行います。LED-Camp4では、このようなチーム開発で重要となるチームビルディングの基礎についても学びます。

教育目標

LED-Camp4では以下のような教育目標を掲げています。
教育目標は、LED-Campの実行委員が参加者の皆さんに伝えたいこと、学んでほしいことを掲げたものです。

①組込みシステムの先進的な開発技術の習得

a) 自律走行ロボットのモデル駆動開発 ※1
b) アジャイル開発手法(スクラムフレームワーク)※2
掃除機型ロボットiRobot Create2を開発対象としてモデル駆動開発やアジャイル開発を実践します。また近年の組込み開発における先進的な開発手法を体験するとともにその有用性を学びます。
 ※1:UMLの設計モデルからソースコードを自動生成する技術
 ※2:反復的かつ増分的に開発を進める開発手法

②最高の成果を挙げる開発チームの作り方の習得

a) 目的の制定と方向性の合意
b) タスクの適切な抽出と分担
c) ふりかえりによるチームの改善
開発プロジェクトは一般的に複数の人との相互的な人間関係によって成り立ち、チームの開発の効率に密接に関わります。最高の成果を上げるためのチーム形成の方法を学びましょう。

③技術者としてのコミュニケーション能力の向上

a) 自分の能力と状況・感情を的確に開示する力
b) 議論の中で自分の意見を論理的に話す力
c) 過程や成果物を魅力的に伝える力
技術者には様々な場面において伝える力が求められます。自分の責務をチームメンバに伝える能力、議論の中の論理的思考力、また成果物の魅力を伝える能力と、場面ごとに必要となる適切なコミュニケーション能力を学びましょう。

実習スケジュール

 

詳細はカリキュラムのページをご参照ください。
スケジュールは変更される場合があります。

開発教材について

iRobot Create2

走行体として、掃除機型ロボットiRobot Create2を用います。iRobot Create2は、ご存知の自動掃除機であるRoombaをベースに、学生やロボット開発者の実習向けに開発されました。今回の合宿では、このiRobot Create2を組込みマイコンボードから制御します。

Raspberry Pi 3

組込みマイコンボードとしてRaspberry Pi 3を用います。Raspberry Pi 3は、英国のラズベリーパイ財団によって開発されたシングルボードコンピュータで、Create2の制御に用います。

astah* professional

Create2の制御ソフトウェアの設計には、ソフトウェアのモデリングツールであるastah* professionalを使用します。astah*を使用することで、ソフトウェアの構造や振る舞いを、UMLモデルを用いて可視化することができます。モデル駆動開発(MDD)におけるUMLモデルからのソースコードの生成は、LED-Camp3実行委員会で開発しているastah* professionalのMDDプラグインを使用します。
実習で使用するastah* professionalのライセンスは、(株)チェンジビジョンより提供されています。

開発の流れ

チーム開発実習では、3つのステップにより、掃除機型ロボットの制御ソフトウェアを開発します。

1.モデリングによる制御ソフトウェアの開発

実現したいシステムの動作をモデルにより設計します。制御ソフトウェアの設計は、astah*を用いてUMLで記述します。

2.Raspberry Pi 3上で動作可能なコードの自動生成

astah*のMDDプラグインを実行して、モデルに対応するPythonコードを自動生成します。コードを自動生成することで、プログラムを1行ずつ書くことなく制御ソフトウェアが開発できます。
自動生成されたPythonコードは、制御ボードとなるRaspberry Pi 3上でそのまま実行可能です。

3.iRobot Create2を動かす

Raspberry Pi 3からシリアル通信によってCreate2と通信し、その動作を制御します。
実際にロボットを動作させることで、Raspberry Pi 3上の制御ソフトウェアが設計通りに制御できているかを確認します。