分野・地域を越えた実践的情報教育協働ネットワーク 名古屋大学 李奕驍 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)
© Copyright 2024 ExpyDoc