SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
C#/Java & Linux で始める ET ロボコン
ET ロボコン北海道地区大会
実行委員会
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
ETロボコン2015競技内容
1
プライマリー
アドバンスト
イノベーター部門
走行体 コース
難易度は2014年同様
ハイレベルな課題
指定なし
自由度向上
デ
ベ
ロ
ッ
パ
ー
部
門
 ベーシック
 難所 少
 ベーシック
 難所 多
 ショートカット
 ダイナミック
パフォーマ
ンス
エリア
 助走なし
 プレゼン重視
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
 目的
 若手技術者や学生向けの学習の場を提供・育成
 開催概要
 自律走行ロボットの、走行実技と設計を競う
 年間スケジュール
 実施説明会(3/B)~参加申し込み(4/M)
 技術教育1、2 (5/M~6/B)
 試走会1、2(8、9月)
 モデル提出~モデル審査(9/M~10/B)
 地区大会実技コンテスト(一般公開)(9/M~10/B)
どんなコンテスト?
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
 目的
 若手技術者や学生向けの学習の場を提供・育成
 開催概要
 自律走行ロボットの、走行実技と設計を競う
 年間スケジュール
 実施説明会(3/B)~参加申し込み(4/M)
 技術教育1、2 (5/M~6/B)
 試走会1、2(8、9月)
 モデル提出~モデル審査
 地区大会実技コンテスト(一般公開)(9/M~10/B)
 全国チャンピオンシップ大会(11/M @横浜)
どんなコンテスト?
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
2015年 参加チーム
4
地区大会 参加チーム数 地区大会 参加可能チーム数
北海道 15 北陸 12
東北 25 関西 31
北関東 25 中四国 24
東京 83 九州北 24
南関東 31 九州南 10
東海 44 沖縄 22
2015年 参加チーム数 346
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
部門構成と変遷
 2013: アーキテクト部門の創設(※2015名称変更)
 2014: ディベロッパー部門のクラス分け
 新走行体(トライク型)を導入
 2015: 新プラットフォームの導入(移行)
 LEGO Mindstorms NXT から EV3 へ
 ARM7 48MHz → ARM9 300MHz (64KB → 16MB)
 Linux ベースのプラットフォームにも対応
 公式プラットフォーム: RTOS (TOPPERS EV3RT)
 認定プラットフォーム: leJOS (Java), MonoBrick (C#)
5
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
部門構成と変遷
 2013: アーキテクト部門の創設(※2015名称変更)
 2014: ディベロッパー部門のクラス分け
 新走行体(トライク型)を導入
 2015: 新プラットフォームの導入(移行)
 LEGO Mindstorms NXT から EV3 へ
 ARM7 48MHz → ARM9 300MHz (64KB → 16MB)
 Linux ベースのプラットフォームにも対応
 公式プラットフォーム: RTOS (TOPPERS EV3RT)
 認定プラットフォーム: leJOS (Java), MonoBrick (C#)
6
EV3way(二輪倒立振子):
プライマリークラス
ETrikeV(トライク型):
アドバンストクラス
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
ETロボコン2015競技内容
7
プライマリー
アドバンスト
イノベーター部門
走行体 コース
難易度は2014年同様
ハイレベルな課題
指定なし
自由度向上
デ
ベ
ロ
ッ
パ
ー
部
門
 ベーシック
 難所 少
 ベーシック
 難所 多
 ショートカット
 ダイナミック
パフォーマ
ンス
エリア
 助走なし
 プレゼン重視
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
ETロボコン2015競技内容
8
プライマリー
アドバンスト
イノベーター部門
走行体 コース
難易度は2014年同様
ハイレベルな課題
指定なし
自由度向上
デ
ベ
ロ
ッ
パ
ー
部
門
 ベーシック
 難所 少
 ベーシック
 難所 多
 ショートカット
 ダイナミック
パフォーマ
ンス
エリア
 助走なし
 プレゼン重視
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
ETロボコン2015競技内容
9
プライマリー
アドバンスト
イノベーター部門
走行体 コース
難易度は2014年同様
ハイレベルな課題
指定なし
自由度向上
デ
ベ
ロ
ッ
パ
ー
部
門
 ベーシック
 難所 少
 ベーシック
 難所 多
 ショートカット
 ダイナミック
パフォーマ
ンス
エリア
 助走なし
 プレゼン重視
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
ETロボコン2015部門構成
10
プライマリー
クラス
アドバンスト
クラス
イノベーター部門
1.対象となる
エンジニア明確に
2.学ぶステップを
明確に、
より教育効果を
高める
デ
ベ
ロ
ッ
パ
|
部
門
基礎
応用
生み出す
部門名称変更
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
公式サポートする開発環境
11
項目 NXT EV3
名称 nxtOSEK EV3RT MonoBrick leJOS
OS種別 TOPPERSリアルタイム Linux
言語 C、C++ C、C++ C# Java
統合
開発環境
- -
Mono-
Develop
Eclipse
デバッガ - - ◯ ◯
プログラム
転送
USB cable
SDカード
Bluetooth
USB cable
Bluetooth
WiFi
USB cable
Bluetooth
WiFi
EV3開発環境構築ガイド https://sourceforge.net/p/etroboev3/wiki/
※実行委員会によるサポートは行われないが、上記以外の環境でも参加は可能(Ruby、Python等)
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
サンプルコードとデモ
 http://sourceforge.net/p/etroboev3/code/ci/m
aster/tree/SampleCode/
12
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
サンプルコードとデモ
 http://sourceforge.net/p/etroboev3/code/ci/m
aster/tree/SampleCode/
13
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
RTOS について
 Linux に比べて何かいいことあるの?
 どんな特徴があるの?
14
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
C# (MonoBrick) の場合
15
// 2輪倒立振子ライントレースロボットの MonoBrick 用 c# サンプルプログラム。
namespace ETTobocon.EV3.Sample
{
class MainClass
{
...
static void run(EV3body body, NetworkStream connection){
int battery = Brick.GetVoltageMilliVolt();
float forward = 0.0F;
float turn = 0.0F;
...
while (! body.touch.IsPressed()) {
...
int gyroNow = body.gyro.Read(); // gyro right
int thetaL = body.motorL.GetTachoCount();
int theTaR = body.motorR.GetTachoCount();
sbyte pwmL, pwmR;
Balancer.control(
(float)forward, (float)turn, (float)gyroNow, (float)GYRO_OFFSET,
(float)thetaL, (float)theTaR, (float)battery,
out pwmL, out pwmR);
body.motorL.SetPower(pwmL);
body.motorR.SetPower(pwmR);
// バランス制御のみだと3msecで安定
// 尻尾制御と障害物検知を使用する場合2msecで安定
Thread.Sleep(2);
}
}
...
}
}
本来は、4ms 周期で倒立振子制御動作を
行わなければならない!
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
C# (MonoBrick) の場合
16
時間応答性が正確ではない:
- 仮想マシン方式のプログラム実行(C#, Java)
- 汎用OS (Linux) の特性
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
RTOS (EV3RT, nxtOSEK)
Real Time Operating System
17
Copyright © 2015 ETロボコン実行委員会 All rights reserved. 18
代表的な仕組み
 RTOS とは
 特徴:リアルタイム応答性能
 一定時間内に、指定した動作を実行
 倒立振子制御など、時間制約の厳しい処理に適している
 アプリケーションプログラムの実行
 アプリケーションが OS と一体になるものも
 アプリケーションを一つしか動かせない場合も
 汎用 OS (Linux, Windows, OS X, etc.) との比較
 動作の「軽さ」(起動時間、応答時間): ◎
 マルチプロセス、動的ロード、仮想記憶の有無:△
 メモリ保護、カーネル(OS 本体)保護の有無: △
タスク(スレッド)切り替えや割り込み
応答の時間をなるべく短くするために、
汎用 OS に比べると、機能に制限があり
ます。
汎用 OS に比べると
制限がある反面、低
機能なプロセッサで
も十分動く!
Copyright © 2015 ETロボコン実行委員会 All rights reserved. 19
代表的な仕組み
 リアルタイム制御
 実現要素
 タスクと割り込み通知
 タスク:汎用 OS のスレッドに相当
 定周期動作:一定の時間間隔で動作を実行
 実現方策(定周期動作)
 ループ内でのスリープ
 一定の時間間隔になるようスリープ関数で調整
 周期起動タスク・周期ハンドラ
 一定周期で繰り返し起動(実行)されるタスク
 周期アラームによる起床 + ループ中での休止
ハードウェアによる割り込みを OS が応答処理。
OS が、必要に応じてアプリケーションのタスクに
通知(アラームやイベントフラグの発火)。
汎用 OS とは異なり、
RTOS では、このタイ
ミングが極めて正確で
す。
RTOS でのプログラミング:タスクが
実行する処理を、関数として実装
複数の定周期動作を行う場合(例:倒立振子制御と
Bluetooth 通信)、一つのタスクでスリープ関数を
使うだけでは、正確なタイミング合わせが難しい。
複数のタスクを
動かす時の方策
RTOS は、タスク起動のオーバーヘッドが
小さいので、数[ms]おきでも問題ない。
スリープ関数なし
でも大丈夫。
複数のタスクが存在する場合、最も優先度の高いタスクに CPU が割り当
てられて実行され、そのタスクが終了したり待ち状態になるまで、それよ
り低い優先度のタスクは実行されません:絶対優先度(RTOS の特徴)
Copyright © 2015 ETロボコン実行委員会 All rights reserved. 20
EV3RT と nxtOSEK
 EV3RT の特徴
 カーネル保護/メモリ保護
 アプリケーションの動的ローディング
 実行開始点(エントリポイント)
 nxtOSEK
 特徴
 カーネル保護/メモリ保護:無し
 アプリケーションと OS が結合
 開発環境とハードウェア(NXT)
 C/C++ コンパイラのバージョン
 搭載メモリ量による制約(Flash メモリ、RAM)
一般的な C/C++ プログラムとは違い、main() ルーチンでは
なく、(メインタスクの)タスク関数から実行が始まります。 より正確に言うと、コンフィグレーショ
ンファイル(.cfg)で設定されたタスク
のうち、起動状態での生成を指定された
ものの中で、最高優先度のタスクが最初
に実行されます。EV3RT では、API 内
部の初期化タスクが最初に実行されます。
サンプルコードでは、main_task() を
メインタスクのタスク関数として設定し
ています(初期化タスクより低優先度)。
nxtOSEK に比べて良い点
少し古いバージョン(GCC 4.0)です。
サイズが大きいプログラムや、
メモリを多く使うプログラム
は動きません。(EV3RT 比)
Copyright © 2015 ETロボコン実行委員会 All rights reserved. 21
EV3RT での開発
 汎用 OS との違い
 タスク(スレッド)を動的に生成できない
 他のカーネルオブジェクトも同様(アラームやイベントフラグ)
 コンフィグレーションファイル(.cfg)
 静的 API の呼び出しを .cfg ファイルに記述して設定
 .cfg ファイルをコンフィグレータで処理
 アプリケーションの作成に必要なもの
 ソースファイルとヘッダファイル(.c, .cpp, .h, .hpp)
 コンフィグレーションファイル(.cfg)
 makefile(Makefile.inc, Makefile.app, Makefile.appmod)
OS の動作を「軽く」するための制限。
全て、アプリケーション(や OS)の初期化時にしか生成できない!
コンフィグレータが、.cfg の内容に従って初期化処理のコードを生成する。
make コマンドを使って
ビルドします。
静的 API で生成。
Copyright © 2015 ETロボコン実行委員会 All rights reserved.
モデル審査について
22
Copyright(c) ETロボコン実行委員会 All rights reserved. 23
機能実現
表現
指定された機能を実現する
ための構成・方法が
正しく記載されているか?
モデルの内容が、正しく・
分かりやすく記載されてい
るか?
「ソフトウェアの内容をモデルで正しく表現」
することを重視した審査を行います
• 選択した機能を実現するための方法が、
モデルで正しく分かり易く提示できていることを
審査します
プライマリークラスの審査基準
ここが大事⇒
⇐ここは前提
Copyright(c) ETロボコン実行委員会 All rights reserved. 24
「技術を応用するスキル」を競うために、高性能
を実現する制御技術と、それをソフトウェアとし
て実現するための設計技術を評価します
• 「未確定仕様への対応」では、段階的に確定される
仕様に対して、迅速に対応するための工夫がなされ
ているか、を評価します
アドバンストクラスの審査基準
⇐ここに期待!
未確定
仕様への
対応
設計技術
制御技術
制御技術で記載された内容をソ
フトウェアとして実現するため
のアーキテクチャが十分に検討
されているか?機能を実現するために必要な
要素技術と、それらを使って
コースをどのように走行する
かの手順・方法が十分に検討
されているか?
段階的に確定される仕様に対
応して、ソフトウェアを効率
的に修正可能とするための工
夫がなされているか?

Más contenido relacionado

La actualidad más candente

Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMKoichi Sakata
 
AngulaとElixirの新しい関係
AngulaとElixirの新しい関係AngulaとElixirの新しい関係
AngulaとElixirの新しい関係陸 谷出
 
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座Shinichiro Yoshida
 
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介Shinichiro Yoshida
 
2015 summercamp 04
2015 summercamp 042015 summercamp 04
2015 summercamp 04openrtm
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02openrtm
 
2015 summercamp 01
2015 summercamp 012015 summercamp 01
2015 summercamp 01openrtm
 
RTM on Androidの紹介
RTM on Androidの紹介RTM on Androidの紹介
RTM on Androidの紹介openrtm
 
2013 summercamp 04
2013 summercamp 042013 summercamp 04
2013 summercamp 04openrtm
 
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory  for the robot programing ...Portable RT-Middleware environment on a USB memory  for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...s15mh218
 
自動アングル機能を有したロボットカメラSi
自動アングル機能を有したロボットカメラSi自動アングル機能を有したロボットカメラSi
自動アングル機能を有したロボットカメラSiShogo Namatame
 
2015 summercamp 09
2015 summercamp 092015 summercamp 09
2015 summercamp 09openrtm
 
Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境openrtm
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた徹 上野山
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 
2017 06-04.overview
2017 06-04.overview2017 06-04.overview
2017 06-04.overviewShin-ya Koga
 
2013 summercamp 05
2013 summercamp 052013 summercamp 05
2013 summercamp 05openrtm
 
Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターRansui Iso
 
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)openrtm
 
5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズ5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズYusuke Naka
 

La actualidad más candente (20)

Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVM
 
AngulaとElixirの新しい関係
AngulaとElixirの新しい関係AngulaとElixirの新しい関係
AngulaとElixirの新しい関係
 
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座TV会議をオープンソースで実現!RED5によるストリーミング配信講座
TV会議をオープンソースで実現!RED5によるストリーミング配信講座
 
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
リアルタイム通信アプリはつくれる!『Red5 Media Server』の機能と事例のご紹介
 
2015 summercamp 04
2015 summercamp 042015 summercamp 04
2015 summercamp 04
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02
 
2015 summercamp 01
2015 summercamp 012015 summercamp 01
2015 summercamp 01
 
RTM on Androidの紹介
RTM on Androidの紹介RTM on Androidの紹介
RTM on Androidの紹介
 
2013 summercamp 04
2013 summercamp 042013 summercamp 04
2013 summercamp 04
 
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory  for the robot programing ...Portable RT-Middleware environment on a USB memory  for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
 
自動アングル機能を有したロボットカメラSi
自動アングル機能を有したロボットカメラSi自動アングル機能を有したロボットカメラSi
自動アングル機能を有したロボットカメラSi
 
2015 summercamp 09
2015 summercamp 092015 summercamp 09
2015 summercamp 09
 
Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
2017 06-04.overview
2017 06-04.overview2017 06-04.overview
2017 06-04.overview
 
2013 summercamp 05
2013 summercamp 052013 summercamp 05
2013 summercamp 05
 
Pythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクターPythonで作る俺様サウンドエフェクター
Pythonで作る俺様サウンドエフェクター
 
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
 
5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズ5分で分るWebRTCコーデックウォーズ
5分で分るWebRTCコーデックウォーズ
 

Destacado

コードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めようコードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めようShin-ya Koga
 
Mid-term presentation
Mid-term presentationMid-term presentation
Mid-term presentationYuta Goto
 
Etロボコンのすゝめ
EtロボコンのすゝめEtロボコンのすゝめ
Etロボコンのすゝめkichimura
 
TOPPERS TECS WG 2016
TOPPERS TECS WG 2016TOPPERS TECS WG 2016
TOPPERS TECS WG 2016Hiroshi Oyama
 
ROSを核としたロボティクス教育(中部大学ロボット理工学科の紹介)
ROSを核としたロボティクス教育(中部大学ロボット理工学科の紹介)ROSを核としたロボティクス教育(中部大学ロボット理工学科の紹介)
ROSを核としたロボティクス教育(中部大学ロボット理工学科の紹介)Hironobu Fujiyoshi
 
Tutorial for robot programming with LEGO mindstorms EV3
Tutorial for robot programming with LEGO mindstorms EV3 Tutorial for robot programming with LEGO mindstorms EV3
Tutorial for robot programming with LEGO mindstorms EV3 Hironobu Fujiyoshi
 
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかC#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかYoshifumi Kawai
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 

Destacado (10)

コードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めようコードを書かずにLチカ。から始めよう
コードを書かずにLチカ。から始めよう
 
EV3 + MonoBrick + C#
EV3 + MonoBrick + C# EV3 + MonoBrick + C#
EV3 + MonoBrick + C#
 
Mid-term presentation
Mid-term presentationMid-term presentation
Mid-term presentation
 
Etロボコンのすゝめ
EtロボコンのすゝめEtロボコンのすゝめ
Etロボコンのすゝめ
 
TOPPERS TECS WG 2016
TOPPERS TECS WG 2016TOPPERS TECS WG 2016
TOPPERS TECS WG 2016
 
ROSを核としたロボティクス教育(中部大学ロボット理工学科の紹介)
ROSを核としたロボティクス教育(中部大学ロボット理工学科の紹介)ROSを核としたロボティクス教育(中部大学ロボット理工学科の紹介)
ROSを核としたロボティクス教育(中部大学ロボット理工学科の紹介)
 
Tutorial for robot programming with LEGO mindstorms EV3
Tutorial for robot programming with LEGO mindstorms EV3 Tutorial for robot programming with LEGO mindstorms EV3
Tutorial for robot programming with LEGO mindstorms EV3
 
C#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのかC#の強み、或いは何故PHPから乗り換えるのか
C#の強み、或いは何故PHPから乗り換えるのか
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similar a C#/Java & Linux で始める ET ロボコン

Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストAtsuhiro Kubo
 
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo 【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo 智治 長沢
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]David Buck
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -Toshiyuki Hirata
 
SeasarCon 2009 White TDD
SeasarCon 2009 White TDDSeasarCon 2009 White TDD
SeasarCon 2009 White TDDTakuto Wada
 
Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Takahiro Kujirai
 
BridgePointを使ったモデル駆動開発(ETロボコン環境のご紹介)
BridgePointを使ったモデル駆動開発(ETロボコン環境のご紹介)BridgePointを使ったモデル駆動開発(ETロボコン環境のご紹介)
BridgePointを使ったモデル駆動開発(ETロボコン環境のご紹介)Yuki Tsuchitoi
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストAtsuhiro Kubo
 
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIUKengo Okitsu
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGUehara Junji
 
Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編株式会社 NTTテクノクロス
 
Lpicl304セミナー資料20140727
Lpicl304セミナー資料20140727Lpicl304セミナー資料20140727
Lpicl304セミナー資料20140727Takahiro Kujirai
 
.NET Micro Framework is my spirit.
.NET Micro Framework is my spirit..NET Micro Framework is my spirit.
.NET Micro Framework is my spirit.Atomu Hidaka
 
マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞DMM.com
 
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて次世代Webコンテナ Undertowについて
次世代Webコンテナ UndertowについてYoshimasa Tanabe
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーションYuta Matsumura
 
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...智治 長沢
 
1.コース概要
1.コース概要1.コース概要
1.コース概要openrtm
 

Similar a C#/Java & Linux で始める ET ロボコン (20)

Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
 
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo 【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
【QCon】 Get Clean, Stay Clean 価値を向上し続けるための秘訣 #QConTokyo
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 
Spring I/O 2015 報告
Spring I/O 2015 報告Spring I/O 2015 報告
Spring I/O 2015 報告
 
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
iOSアプリ開発のテスト環境 - テストをはじめる最初の一歩 -
 
SeasarCon 2009 White TDD
SeasarCon 2009 White TDDSeasarCon 2009 White TDD
SeasarCon 2009 White TDD
 
Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118
 
BridgePointを使ったモデル駆動開発(ETロボコン環境のご紹介)
BridgePointを使ったモデル駆動開発(ETロボコン環境のご紹介)BridgePointを使ったモデル駆動開発(ETロボコン環境のご紹介)
BridgePointを使ったモデル駆動開発(ETロボコン環境のご紹介)
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
 
java-ja TDD 2nd
java-ja TDD 2ndjava-ja TDD 2nd
java-ja TDD 2nd
 
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
第六回コンテナ型仮想化情報交換会_LinuxContainerLivemigrationCRIU
 
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
 
Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編Androidテスティング実践3 ユニットテスト・CI編
Androidテスティング実践3 ユニットテスト・CI編
 
Lpicl304セミナー資料20140727
Lpicl304セミナー資料20140727Lpicl304セミナー資料20140727
Lpicl304セミナー資料20140727
 
.NET Micro Framework is my spirit.
.NET Micro Framework is my spirit..NET Micro Framework is my spirit.
.NET Micro Framework is my spirit.
 
マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞マイクロサービス時代の動画配信基Ruby×go=∞
マイクロサービス時代の動画配信基Ruby×go=∞
 
次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて次世代Webコンテナ Undertowについて
次世代Webコンテナ Undertowについて
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
 
1.コース概要
1.コース概要1.コース概要
1.コース概要
 

Más de Shin-ya Koga

2022-09-15.studyMeeting.pdf
2022-09-15.studyMeeting.pdf2022-09-15.studyMeeting.pdf
2022-09-15.studyMeeting.pdfShin-ya Koga
 
2021 12-02.koga.lecture note-revised
2021 12-02.koga.lecture note-revised2021 12-02.koga.lecture note-revised
2021 12-02.koga.lecture note-revisedShin-ya Koga
 
2021 10-12.linx device-tree
2021 10-12.linx device-tree2021 10-12.linx device-tree
2021 10-12.linx device-treeShin-ya Koga
 
品質管理グループ Linux 勉強会
品質管理グループ Linux 勉強会品質管理グループ Linux 勉強会
品質管理グループ Linux 勉強会Shin-ya Koga
 
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)Shin-ya Koga
 
2014年の社内新人教育テキスト #2(関数型言語からオブジェクト指向言語へ)
2014年の社内新人教育テキスト #2(関数型言語からオブジェクト指向言語へ)2014年の社内新人教育テキスト #2(関数型言語からオブジェクト指向言語へ)
2014年の社内新人教育テキスト #2(関数型言語からオブジェクト指向言語へ)Shin-ya Koga
 
2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)Shin-ya Koga
 
2019 05-19.overview
2019 05-19.overview2019 05-19.overview
2019 05-19.overviewShin-ya Koga
 
2018 08-31.946oss revised
2018 08-31.946oss revised2018 08-31.946oss revised
2018 08-31.946oss revisedShin-ya Koga
 
正解は一つじゃない: 選択肢と最適解
正解は一つじゃない:選択肢と最適解正解は一つじゃない:選択肢と最適解
正解は一つじゃない: 選択肢と最適解Shin-ya Koga
 
Universal Apps (UWP)
Universal Apps (UWP)Universal Apps (UWP)
Universal Apps (UWP)Shin-ya Koga
 
IoT あるじゃん北海道支部勉強会
IoT あるじゃん北海道支部勉強会IoT あるじゃん北海道支部勉強会
IoT あるじゃん北海道支部勉強会Shin-ya Koga
 
組み込みから IoT へ
組み込みから IoT へ組み込みから IoT へ
組み込みから IoT へShin-ya Koga
 
デバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoTデバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoTShin-ya Koga
 
組み込みでもマルチコア。WEC2013での対応
組み込みでもマルチコア。WEC2013での対応組み込みでもマルチコア。WEC2013での対応
組み込みでもマルチコア。WEC2013での対応Shin-ya Koga
 
CLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LTCLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LTShin-ya Koga
 
OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料Shin-ya Koga
 
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~Shin-ya Koga
 
2011 06-11.koga.osc lt
2011 06-11.koga.osc lt2011 06-11.koga.osc lt
2011 06-11.koga.osc ltShin-ya Koga
 

Más de Shin-ya Koga (19)

2022-09-15.studyMeeting.pdf
2022-09-15.studyMeeting.pdf2022-09-15.studyMeeting.pdf
2022-09-15.studyMeeting.pdf
 
2021 12-02.koga.lecture note-revised
2021 12-02.koga.lecture note-revised2021 12-02.koga.lecture note-revised
2021 12-02.koga.lecture note-revised
 
2021 10-12.linx device-tree
2021 10-12.linx device-tree2021 10-12.linx device-tree
2021 10-12.linx device-tree
 
品質管理グループ Linux 勉強会
品質管理グループ Linux 勉強会品質管理グループ Linux 勉強会
品質管理グループ Linux 勉強会
 
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
2014年の社内新人教育テキスト #3(オブジェクト指向言語ふりかえり)
 
2014年の社内新人教育テキスト #2(関数型言語からオブジェクト指向言語へ)
2014年の社内新人教育テキスト #2(関数型言語からオブジェクト指向言語へ)2014年の社内新人教育テキスト #2(関数型言語からオブジェクト指向言語へ)
2014年の社内新人教育テキスト #2(関数型言語からオブジェクト指向言語へ)
 
2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)2014年の社内新人教育テキスト #1(プログラミング言語概論)
2014年の社内新人教育テキスト #1(プログラミング言語概論)
 
2019 05-19.overview
2019 05-19.overview2019 05-19.overview
2019 05-19.overview
 
2018 08-31.946oss revised
2018 08-31.946oss revised2018 08-31.946oss revised
2018 08-31.946oss revised
 
正解は一つじゃない: 選択肢と最適解
正解は一つじゃない:選択肢と最適解正解は一つじゃない:選択肢と最適解
正解は一つじゃない: 選択肢と最適解
 
Universal Apps (UWP)
Universal Apps (UWP)Universal Apps (UWP)
Universal Apps (UWP)
 
IoT あるじゃん北海道支部勉強会
IoT あるじゃん北海道支部勉強会IoT あるじゃん北海道支部勉強会
IoT あるじゃん北海道支部勉強会
 
組み込みから IoT へ
組み込みから IoT へ組み込みから IoT へ
組み込みから IoT へ
 
デバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoTデバイスからクラウドへ ~組み込みエンジニアと IoT
デバイスからクラウドへ ~組み込みエンジニアと IoT
 
組み込みでもマルチコア。WEC2013での対応
組み込みでもマルチコア。WEC2013での対応組み込みでもマルチコア。WEC2013での対応
組み込みでもマルチコア。WEC2013での対応
 
CLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LTCLR/H 第 79 回勉強会での LT
CLR/H 第 79 回勉強会での LT
 
OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料OSC 2012 Hokkaido でのプレゼン資料
OSC 2012 Hokkaido でのプレゼン資料
 
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
 
2011 06-11.koga.osc lt
2011 06-11.koga.osc lt2011 06-11.koga.osc lt
2011 06-11.koga.osc lt
 

C#/Java & Linux で始める ET ロボコン

  • 1. Copyright © 2015 ETロボコン実行委員会 All rights reserved. C#/Java & Linux で始める ET ロボコン ET ロボコン北海道地区大会 実行委員会
  • 2. Copyright © 2015 ETロボコン実行委員会 All rights reserved. ETロボコン2015競技内容 1 プライマリー アドバンスト イノベーター部門 走行体 コース 難易度は2014年同様 ハイレベルな課題 指定なし 自由度向上 デ ベ ロ ッ パ ー 部 門  ベーシック  難所 少  ベーシック  難所 多  ショートカット  ダイナミック パフォーマ ンス エリア  助走なし  プレゼン重視
  • 3. Copyright © 2015 ETロボコン実行委員会 All rights reserved.  目的  若手技術者や学生向けの学習の場を提供・育成  開催概要  自律走行ロボットの、走行実技と設計を競う  年間スケジュール  実施説明会(3/B)~参加申し込み(4/M)  技術教育1、2 (5/M~6/B)  試走会1、2(8、9月)  モデル提出~モデル審査(9/M~10/B)  地区大会実技コンテスト(一般公開)(9/M~10/B) どんなコンテスト?
  • 4. Copyright © 2015 ETロボコン実行委員会 All rights reserved.  目的  若手技術者や学生向けの学習の場を提供・育成  開催概要  自律走行ロボットの、走行実技と設計を競う  年間スケジュール  実施説明会(3/B)~参加申し込み(4/M)  技術教育1、2 (5/M~6/B)  試走会1、2(8、9月)  モデル提出~モデル審査  地区大会実技コンテスト(一般公開)(9/M~10/B)  全国チャンピオンシップ大会(11/M @横浜) どんなコンテスト?
  • 5. Copyright © 2015 ETロボコン実行委員会 All rights reserved. 2015年 参加チーム 4 地区大会 参加チーム数 地区大会 参加可能チーム数 北海道 15 北陸 12 東北 25 関西 31 北関東 25 中四国 24 東京 83 九州北 24 南関東 31 九州南 10 東海 44 沖縄 22 2015年 参加チーム数 346
  • 6. Copyright © 2015 ETロボコン実行委員会 All rights reserved. 部門構成と変遷  2013: アーキテクト部門の創設(※2015名称変更)  2014: ディベロッパー部門のクラス分け  新走行体(トライク型)を導入  2015: 新プラットフォームの導入(移行)  LEGO Mindstorms NXT から EV3 へ  ARM7 48MHz → ARM9 300MHz (64KB → 16MB)  Linux ベースのプラットフォームにも対応  公式プラットフォーム: RTOS (TOPPERS EV3RT)  認定プラットフォーム: leJOS (Java), MonoBrick (C#) 5
  • 7. Copyright © 2015 ETロボコン実行委員会 All rights reserved. 部門構成と変遷  2013: アーキテクト部門の創設(※2015名称変更)  2014: ディベロッパー部門のクラス分け  新走行体(トライク型)を導入  2015: 新プラットフォームの導入(移行)  LEGO Mindstorms NXT から EV3 へ  ARM7 48MHz → ARM9 300MHz (64KB → 16MB)  Linux ベースのプラットフォームにも対応  公式プラットフォーム: RTOS (TOPPERS EV3RT)  認定プラットフォーム: leJOS (Java), MonoBrick (C#) 6 EV3way(二輪倒立振子): プライマリークラス ETrikeV(トライク型): アドバンストクラス
  • 8. Copyright © 2015 ETロボコン実行委員会 All rights reserved. ETロボコン2015競技内容 7 プライマリー アドバンスト イノベーター部門 走行体 コース 難易度は2014年同様 ハイレベルな課題 指定なし 自由度向上 デ ベ ロ ッ パ ー 部 門  ベーシック  難所 少  ベーシック  難所 多  ショートカット  ダイナミック パフォーマ ンス エリア  助走なし  プレゼン重視
  • 9. Copyright © 2015 ETロボコン実行委員会 All rights reserved. ETロボコン2015競技内容 8 プライマリー アドバンスト イノベーター部門 走行体 コース 難易度は2014年同様 ハイレベルな課題 指定なし 自由度向上 デ ベ ロ ッ パ ー 部 門  ベーシック  難所 少  ベーシック  難所 多  ショートカット  ダイナミック パフォーマ ンス エリア  助走なし  プレゼン重視
  • 10. Copyright © 2015 ETロボコン実行委員会 All rights reserved. ETロボコン2015競技内容 9 プライマリー アドバンスト イノベーター部門 走行体 コース 難易度は2014年同様 ハイレベルな課題 指定なし 自由度向上 デ ベ ロ ッ パ ー 部 門  ベーシック  難所 少  ベーシック  難所 多  ショートカット  ダイナミック パフォーマ ンス エリア  助走なし  プレゼン重視
  • 11. Copyright © 2015 ETロボコン実行委員会 All rights reserved. ETロボコン2015部門構成 10 プライマリー クラス アドバンスト クラス イノベーター部門 1.対象となる エンジニア明確に 2.学ぶステップを 明確に、 より教育効果を 高める デ ベ ロ ッ パ | 部 門 基礎 応用 生み出す 部門名称変更
  • 12. Copyright © 2015 ETロボコン実行委員会 All rights reserved. 公式サポートする開発環境 11 項目 NXT EV3 名称 nxtOSEK EV3RT MonoBrick leJOS OS種別 TOPPERSリアルタイム Linux 言語 C、C++ C、C++ C# Java 統合 開発環境 - - Mono- Develop Eclipse デバッガ - - ◯ ◯ プログラム 転送 USB cable SDカード Bluetooth USB cable Bluetooth WiFi USB cable Bluetooth WiFi EV3開発環境構築ガイド https://sourceforge.net/p/etroboev3/wiki/ ※実行委員会によるサポートは行われないが、上記以外の環境でも参加は可能(Ruby、Python等)
  • 13. Copyright © 2015 ETロボコン実行委員会 All rights reserved. サンプルコードとデモ  http://sourceforge.net/p/etroboev3/code/ci/m aster/tree/SampleCode/ 12
  • 14. Copyright © 2015 ETロボコン実行委員会 All rights reserved. サンプルコードとデモ  http://sourceforge.net/p/etroboev3/code/ci/m aster/tree/SampleCode/ 13
  • 15. Copyright © 2015 ETロボコン実行委員会 All rights reserved. RTOS について  Linux に比べて何かいいことあるの?  どんな特徴があるの? 14
  • 16. Copyright © 2015 ETロボコン実行委員会 All rights reserved. C# (MonoBrick) の場合 15 // 2輪倒立振子ライントレースロボットの MonoBrick 用 c# サンプルプログラム。 namespace ETTobocon.EV3.Sample { class MainClass { ... static void run(EV3body body, NetworkStream connection){ int battery = Brick.GetVoltageMilliVolt(); float forward = 0.0F; float turn = 0.0F; ... while (! body.touch.IsPressed()) { ... int gyroNow = body.gyro.Read(); // gyro right int thetaL = body.motorL.GetTachoCount(); int theTaR = body.motorR.GetTachoCount(); sbyte pwmL, pwmR; Balancer.control( (float)forward, (float)turn, (float)gyroNow, (float)GYRO_OFFSET, (float)thetaL, (float)theTaR, (float)battery, out pwmL, out pwmR); body.motorL.SetPower(pwmL); body.motorR.SetPower(pwmR); // バランス制御のみだと3msecで安定 // 尻尾制御と障害物検知を使用する場合2msecで安定 Thread.Sleep(2); } } ... } } 本来は、4ms 周期で倒立振子制御動作を 行わなければならない!
  • 17. Copyright © 2015 ETロボコン実行委員会 All rights reserved. C# (MonoBrick) の場合 16 時間応答性が正確ではない: - 仮想マシン方式のプログラム実行(C#, Java) - 汎用OS (Linux) の特性
  • 18. Copyright © 2015 ETロボコン実行委員会 All rights reserved. RTOS (EV3RT, nxtOSEK) Real Time Operating System 17
  • 19. Copyright © 2015 ETロボコン実行委員会 All rights reserved. 18 代表的な仕組み  RTOS とは  特徴:リアルタイム応答性能  一定時間内に、指定した動作を実行  倒立振子制御など、時間制約の厳しい処理に適している  アプリケーションプログラムの実行  アプリケーションが OS と一体になるものも  アプリケーションを一つしか動かせない場合も  汎用 OS (Linux, Windows, OS X, etc.) との比較  動作の「軽さ」(起動時間、応答時間): ◎  マルチプロセス、動的ロード、仮想記憶の有無:△  メモリ保護、カーネル(OS 本体)保護の有無: △ タスク(スレッド)切り替えや割り込み 応答の時間をなるべく短くするために、 汎用 OS に比べると、機能に制限があり ます。 汎用 OS に比べると 制限がある反面、低 機能なプロセッサで も十分動く!
  • 20. Copyright © 2015 ETロボコン実行委員会 All rights reserved. 19 代表的な仕組み  リアルタイム制御  実現要素  タスクと割り込み通知  タスク:汎用 OS のスレッドに相当  定周期動作:一定の時間間隔で動作を実行  実現方策(定周期動作)  ループ内でのスリープ  一定の時間間隔になるようスリープ関数で調整  周期起動タスク・周期ハンドラ  一定周期で繰り返し起動(実行)されるタスク  周期アラームによる起床 + ループ中での休止 ハードウェアによる割り込みを OS が応答処理。 OS が、必要に応じてアプリケーションのタスクに 通知(アラームやイベントフラグの発火)。 汎用 OS とは異なり、 RTOS では、このタイ ミングが極めて正確で す。 RTOS でのプログラミング:タスクが 実行する処理を、関数として実装 複数の定周期動作を行う場合(例:倒立振子制御と Bluetooth 通信)、一つのタスクでスリープ関数を 使うだけでは、正確なタイミング合わせが難しい。 複数のタスクを 動かす時の方策 RTOS は、タスク起動のオーバーヘッドが 小さいので、数[ms]おきでも問題ない。 スリープ関数なし でも大丈夫。 複数のタスクが存在する場合、最も優先度の高いタスクに CPU が割り当 てられて実行され、そのタスクが終了したり待ち状態になるまで、それよ り低い優先度のタスクは実行されません:絶対優先度(RTOS の特徴)
  • 21. Copyright © 2015 ETロボコン実行委員会 All rights reserved. 20 EV3RT と nxtOSEK  EV3RT の特徴  カーネル保護/メモリ保護  アプリケーションの動的ローディング  実行開始点(エントリポイント)  nxtOSEK  特徴  カーネル保護/メモリ保護:無し  アプリケーションと OS が結合  開発環境とハードウェア(NXT)  C/C++ コンパイラのバージョン  搭載メモリ量による制約(Flash メモリ、RAM) 一般的な C/C++ プログラムとは違い、main() ルーチンでは なく、(メインタスクの)タスク関数から実行が始まります。 より正確に言うと、コンフィグレーショ ンファイル(.cfg)で設定されたタスク のうち、起動状態での生成を指定された ものの中で、最高優先度のタスクが最初 に実行されます。EV3RT では、API 内 部の初期化タスクが最初に実行されます。 サンプルコードでは、main_task() を メインタスクのタスク関数として設定し ています(初期化タスクより低優先度)。 nxtOSEK に比べて良い点 少し古いバージョン(GCC 4.0)です。 サイズが大きいプログラムや、 メモリを多く使うプログラム は動きません。(EV3RT 比)
  • 22. Copyright © 2015 ETロボコン実行委員会 All rights reserved. 21 EV3RT での開発  汎用 OS との違い  タスク(スレッド)を動的に生成できない  他のカーネルオブジェクトも同様(アラームやイベントフラグ)  コンフィグレーションファイル(.cfg)  静的 API の呼び出しを .cfg ファイルに記述して設定  .cfg ファイルをコンフィグレータで処理  アプリケーションの作成に必要なもの  ソースファイルとヘッダファイル(.c, .cpp, .h, .hpp)  コンフィグレーションファイル(.cfg)  makefile(Makefile.inc, Makefile.app, Makefile.appmod) OS の動作を「軽く」するための制限。 全て、アプリケーション(や OS)の初期化時にしか生成できない! コンフィグレータが、.cfg の内容に従って初期化処理のコードを生成する。 make コマンドを使って ビルドします。 静的 API で生成。
  • 23. Copyright © 2015 ETロボコン実行委員会 All rights reserved. モデル審査について 22
  • 24. Copyright(c) ETロボコン実行委員会 All rights reserved. 23 機能実現 表現 指定された機能を実現する ための構成・方法が 正しく記載されているか? モデルの内容が、正しく・ 分かりやすく記載されてい るか? 「ソフトウェアの内容をモデルで正しく表現」 することを重視した審査を行います • 選択した機能を実現するための方法が、 モデルで正しく分かり易く提示できていることを 審査します プライマリークラスの審査基準 ここが大事⇒ ⇐ここは前提
  • 25. Copyright(c) ETロボコン実行委員会 All rights reserved. 24 「技術を応用するスキル」を競うために、高性能 を実現する制御技術と、それをソフトウェアとし て実現するための設計技術を評価します • 「未確定仕様への対応」では、段階的に確定される 仕様に対して、迅速に対応するための工夫がなされ ているか、を評価します アドバンストクラスの審査基準 ⇐ここに期待! 未確定 仕様への 対応 設計技術 制御技術 制御技術で記載された内容をソ フトウェアとして実現するため のアーキテクチャが十分に検討 されているか?機能を実現するために必要な 要素技術と、それらを使って コースをどのように走行する かの手順・方法が十分に検討 されているか? 段階的に確定される仕様に対 応して、ソフトウェアを効率 的に修正可能とするための工 夫がなされているか?