Mindstorms EV3用プラットフォーム構築

分野・地域を越えた実践的情報教育協働ネットワーク
名古屋大学 李奕驍
Mindstorms EV3用プラットフォーム構築
背景
目標
• EV3は多くの教育や研究で活用されているロボット
開発キットシリーズ「Mindstorms」の最新版
• 標準開発環境では、複雑なプログラムを作り難い
• C言語等のプログラミング言語で開発できない
• ハードリアルタイム性を保証できない
• 開発者向けの便利なプラットフォームを構築
• RTOSを導入して、マルチタスク等の機能をサポート
• 普通のプログラミング言語で開発できる
• リアルタイム性を保証できるAPIを提供
• 開発支援機能を提供
アーキテクチャ
プラットフォーム機能
TOPPERS/HRP2カーネル
User Application Layer
 優先度ベースのマルチタスク機能
 メモリ保護機能
 拡張サービスコール機能
Applications
API Bindings for C++
EV3 API for C
Newlib
HRP2 API
Platform Interface Layer
Device Driver Interface
Newlib Stubs
tool_svc.h
Core Services Layer
Dynamic Module Loader
Time
Synchronization
DCRE
ISR
UART
PWM
Speaker
Analog
BT




サーボモータ(PWM制御)
各種センサ(ジャイロ、超音波等)
EV3本体(ボタン、LEDやスピーカ等)
データ通信と管理(FatFS、BTstack)
Application Programming Interface
Device Drivers
Task
デバイスドライバ
GPIO
FatFS
TOPPERS/HRP2
活動成果物
 調査結果報告書
 標準ファムウエアのソースコード解析
 Linuxドライバの再利用手法の提案
 適用できるBluetooth Stackの調査
 標準開発環境の機能の調査
 開発ドキュメント
 プラットフォーム設計書
 機能仕様書
 ユーザーズマニュアル(Cygwin版とUbuntu版)
 APIリファレンス(Doxygenで自動生成)
 ソースコード
 プラットフォームのソースコード
 プラットフォームのテストプログラムHelloEV3
 二輪型倒立振子ロボット制御用のサンプル(Gyroboy)
 研究発表会へ論文投稿
 An RTOS-based Platform for LEGO Mindstorms EV3 @
ETNET 2014
 A Platform for LEGO Mindstorms EV3 Based on an RTOS
with MMU Support @ OSPERT 2014
今後の方針
 開発ドキュメントの詳細化とリリースの準備
 サンプルプログラムの追加(NXTrike for EV3等)
 LCDドライバの実装
 標準Cライブラリ(Newlib)
 RTOS API(TOPPERS HRP2 API)
 EV3 C言語/C++ API(センサ、モータ等)
Bluetooth通信機能
 送信機能(タスクログの出力等)
 受信機能(リモートコントロール)
 DMA方式とBufferingで性能改善
ファイルシステム機能
 FatFSでμSDカード内のファイルの操作
 音声ファイル(wav)の再生
 アプリケーションファイルの読み込み
開発支援機能
 Workspace管理機能
 アプリケーションの動的ローディング機能
 テストプログラムHelloEV3
今後の方針
保護機能
 アプリケーションは非特権モードで実行
 非特権モード割込み機能(ボタンハンドラ等)
 Bluetooth通信のQoS確保
性能評価
 起動速度が7倍に向上(35秒➔5秒)
 オーバヘッドが1%に削減(モータ制御の場合)
 メモリ残量が14倍に向上(4.3MB ➔60.8MB)