RTM セミナー RT ミドルウェアによる実時間ロボット 制御系の構築とソフトウェア教育 静岡大学大学院工学研究科機械工学専攻 清水昌幸

Similar documents
ホンダにおける RT ミドルウェア開発と標準化活動 株式会社本田技術研究所基礎技術研究センター関谷眞

TopSE並行システム はじめに

スライド 1

スライド 1

組込みシステムにおける UMLモデルカタログの実践研究

Raspberry Pi で WEB カメラを使用 会津大学 RT ミドルウェア講習会 2017 The University of Aizu

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

スライド 1

スライド 1

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

HMD を用いた PT カメラのインターネット遠隔操作芝浦工業大学知能機械システム研究室 HMD(Head Mounted Display) を用いた PT(Pan-Tilt) カメラのインターネット遠隔操作 ユーザマニュアル (ver1.0) 2014 年 10 月 23 日 芝浦工業大学知能機械

<基礎領域>

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No03\201i\224z\225z\227p\201j.pptx)

Microsoft PowerPoint RT講習会(送付用)_ [互換モード]

プレポスト【問題】

スライド 1

ストリームを用いたコンカレントカーネルプログラミングと最適化 エヌビディアジャパン CUDAエンジニア森野慎也 GTC Japan 2014

Microsoft PowerPoint _3.RTMによるプログラミング_final.pptx

PowerPoint Presentation

組込み用Linuxボード,BeagleBone Blackにおける RTミドルウェアの動作と開発支援ツール

二次元連続動的計画法による知的画像処理システム ImageFileSelector RTC 機能仕様書 ImageFileSelectorRTC Ver.1.0 ( 株 ) 東日本計算センター 1 / 11

ObjectPartner Pro

機能仕様書 ロボット Raspberry Pi カメラ RTC Ver 発行日 2017 年 12 月 27 日公立大学法人会津大学株式会社東日本計算センター

講義の進め方 第 1 回イントロダクション ( 第 1 章 ) 第 2 ~ 7 回第 2 章 ~ 第 5 章 第 8 回中間ミニテスト (11 月 15 日 ) 第 9 回第 6 章 ~ 第 回ローム記念館 2Fの実習室で UML によるロボット制御実習 定期試験 2

ソフトウェア工学 ( 入門編 ) 掛下哲郎 ( 佐賀大学 )

Microsoft Word 基_シラバス.doc

CPUスケジューリング

ユーザーズマニュアル 有線ネットワークシステム 発行日 2016 年 3 月 30 日

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

スライド 1

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門 作品のタイトル : Toppers_JSP と Scicos_lab / (Scilab でも可 ) による 組込みメカトロニクス制御シミュレーション 作成者 : 塩出武 ( シオデタ

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

Using VectorCAST/C++ with Test Driven Development

PowerPoint プレゼンテーション

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

改版履歴 Ver 改版日内容 /02/07 新規作成 2 / 18

システムインテグレータのIPv6対応

スライド 1

プログラミング基礎

TFTP serverの実装

CSPの紹介

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

スライド 1

Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1

Microsoft PowerPoint - 04_01_text_UML_03-Sequence-Com.ppt

リソース制約下における組込みソフトウェアの性能検証および最適化方法

課題情報シート テーマ名 : 動画中継ラジコンカーの製作 担当指導員名 : 土山博剛実施年度 : 25 年度施設名 : 四国職業能力開発大学校課程名 : 専門課程訓練科名 : 電子情報技術科課題の区分 : 総合制作実習課題学生数 : 1 時間 : 12 単位 (216h) 課題制作 開発のポイント

05-scheduling.ppt

スライド 1

PowerPoint Presentation

Microsoft PowerPoint - 6.PID制御.pptx

Taro-82ADAカ.jtd

2008 年度下期未踏 IT 人材発掘 育成事業採択案件評価書 1. 担当 PM 石川裕 PM ( 東京大学大学院情報理工学系研究科教授 ) 2. 採択者氏名 チーフクリエータ : 加藤淳 ( 東京大学理学部情報科学科学部学生 ) コクリエータ : なし 3. プロジェクト管理組織 株式会社メルコホ

スライド 1

.NET テクノロジー概説 /WindowsAzure 入門 コード P-2 0:00~7:00 ( 休憩 時間含む ) 前提条件 Windows の操作経験 ( エクスプローラの操作 ファイルの操作 ) があること 最低開講人数 0 名.NET テクノロジー概説 /WindowsAzure 入門

目次 研究目的 背景システム開発について実験および評価結論

Microsoft PowerPoint - FormsUpgrade_Tune.ppt

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED

計算機アーキテクチャ

Microsoft Word - WatchUsbManager for Web リソースモニター結果.docx

intra-mart Accel Platform

VLSI工学

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

OS

1. 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は JCA 仕様準拠のコンテナとして多くの J2EE 準拠アプリケーションサーバーについて動作

第3部:プログラミング実習

PowerPoint プレゼンテーション

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

はじめに : ご提案のポイント

EV3 の初期設定

プログラミング実習I

1. はじめに 本書は スプリット演算器 MFS2 用コンフィギュレータソフトウェア の取扱方法 操作手順 注意事項などを説明したものです Windows の操作や用語を理解している方を前提にしています Windows の操作や用語については それぞれのマニュアルを参照してください 1.1. MFS

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

RTMツール講習会

CalDAVを軸とした カレンダの共有を支援するシステムの提案

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

SimulinkによるReal-Time Test環境の構築

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

NEDO次世代ロボット知能化技術開発プロジェクト

今週の進捗

AN424 Modbus/TCP クイックスタートガイド CIE-H14

ヤマハDante機器と他社AES67機器の接続ガイド

Microsoft PowerPoint pptx

6-2- 応ネットワークセキュリティに関する知識 1 独立行政法人情報処理推進機構

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

Ver ceil floor FunctionGenerator (PTZCameraSony)

OS バージョンアップ実行後のご注意 OS バージョンアップ後 更新完了通知が自動的にNECカシオモバイルコミュニケーションズ株式会社の運用するサーバへ送信されます なお NECカシオモバイルコミュニケーションズ株式会社は送信された情報を OS バージョンアップ以外の目的には利用いたしません また

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

Microsoft PowerPoint ppt

MS916 バッチ操作ガイド FW バージョン 0.52 向け バッチ操作の基本 MS916 のバッチ操作について バッチ操作では 読取ったバーコードデータはすべて 不揮発性のメモリ (1MB ROM JAN-13 約 50,000 件 ) に保存されます メモリに保存されたデータは任意のタイミング

Studuinoプログラミング環境

PowerPoint プレゼンテーション

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ

改訂履歴 項番版数作成日 / 改訂日変更箇所変更内容. 平成 28 年 5 月 3 日新規章構成の変更, 分冊化に伴い新規作成 (i)

MicrosoftVisualStudio.NET による ASP.NETWeb アプリケーションの開発 (#2334)(MP301)5 日間 () コースの概要 このコースでは VisualBasic.NETまたは C# プログラマで Web 開発の初心者が ASP.NETを使用して Web アプ

Transcription:

RTM セミナー 2013.11.12 RT ミドルウェアによる実時間ロボット 制御系の構築とソフトウェア教育 静岡大学大学院工学研究科機械工学専攻 清水昌幸

2 内容 RT ミドルウェアを用いた実時間ロボット制御系の構築 実時間制御の実現方法. ART-Linux を用いた実現例と実時間性能. ソフトウェア教育 研究室配属学生 ( 学部 4 年生 ) への導入教育の実施内容と結果.

3 ロボット制御系の一例 フィードバック制御系 x d + - e Controller u Robot x x: ロボットの現在状態 x d : ロボットの目標状態 e: 偏差 u: 操作量

4 RT コンポーネントを用いた制御系の実現 x d + - e Controller u Robot x x d Controller RTC u x Robot RTC ロボット RTC: 操作量 u に従ってロボットを制御し, 現在状態 x を出力する. 制御器 RTC: 現在状態 x と目標状態 x d に基づいて計算した操作量 u を出力する.

5 制御処理 周期実行処理の順序 1 ロボット RTC が現在状態を送信する. 2 制御器 RTC が現在状態と目標状態を受信し, 操作量を計算する. 3 制御器 RTC が操作量を送信する. 4 ロボット RTC が操作量を受信し, その操作量に従ってロボットを制御する. この順序通り指定周期で実時間実行する. x d 2 3 4 Controller RTC u x 1 Robot RTC

6 実時間制御を実現するための要件 1. 各 RTC の制御処理が実時間で実行される. 2. 系全体の制御処理が規定の順序通りに実行される (RTC の同期実行 ). 3. データ送受信処理が実時間で実行される. x d 2 3 4 Controller RTC u x 1 Robot RTC

7 RTC の実行方法 RTC のコアロジックは実行コンテキスト (EC) で駆動される. EC の実体はスレッド. 周期 EC の場合, 周期的にコアロジックを駆動. EC (Thread) RTC Core Logic

8 方法 実時間 OS の導入 RTC の実行の実時間化 ART-Linux Linux with RT-Preempt, etc. スレッド (EC) の優先度を上げる. 実現例 OpenRTM-aist-1.1.0(C++) で提供されている EC ArtExecutionContext (for ART-Linux) RTPreemptEC (for RT-Preempt Linux)

9 実時間制御を実現するための要件 1. 各 RTC の制御処理が実時間で実行される. 2. 系全体の制御処理が規定の順序通りに実行される (RTC の同期実行 ). 3. データ送受信処理が実時間で実行される. x d 2 3 4 Controller RTC u x 1 Robot RTC

10 複数 RTC の実行 通常, 各 RTCはそれぞれ異なるECで駆動される. = 各 RTCの実行は並列で非同期. RTCの実行順序を制御できない. RTC を同期実行する方法が必要. EC1 EC2 RTC1 RTC2 各 EC の動作は互いに依存しない

11 同期の実現方法 (1) 複合コンポーネントを使う. 内部のRTCは直列に実行される. = 同期実行が可能. 内部の RTC 全てが同一プロセス上で動作していなければ, 同期実行の実時間性は保証されない ( コアロジックの駆動に CORBA を用いた場合 ). EC Composite RTC RTC1 RTC2 RTC3

12 同期の実現方法 (2) 外部トリガー実行コンテキストを使う. OpenRTM-aist における ExtTrigExecutionContext. RTC の実行は外部トリガーに同期. 外部トリガーにシグナルを用いる場合, 同期実行の実時間性は保証されない. EC External Trigger (Signal) RTC

13 同期の実現方法 (3) 同期実行コンテキストを使う. OpenRTM-aist における SynchExtTriggerEC. 同期実行が必要な RTC のコアロジックを直接駆動する. コアロジックの駆動に CORBA を用いる場合, 実時間性が保証されない. EC tick() RTC

14 タイミング図 非実時間同期 EC の問題点 Robot sd RTC exec. timing Running tick() Sleeping Data Controller Running Sleeping Data tick() Overrun! Controller RTC Robot RTC 非実時間 CORBA 呼び出しの tick() に長時間費やされるため, 指定周期内に処理を完了できない.

15 同期の実現方法 (4) RTC の実行をデータに同期させる [1]. 制御系の構成要素は SISO システム. 各要素はデータ入力があった時だけ処理を実行し, 処理結果のデータを出力するだけでよい. 入力データに同期して RTC を駆動する EC が必要 x d + - e Controller u Robot x [1] 清水, 石綿, 尹, 加賀美, ART-Linux における RT コンポーネント間の同期方法の検討,Robomec2013.

16 データ同期実行コンテキストの設計 基本アイディア EC の周期タイマが起床してからデータが到着するまでの時間分だけタイマ起床時間をずらす. 同期が取れていない状態 ( むだ時間あり ) sd RTC exec. timing 同期が取れている状態 ( むだ時間なし ) sd RTC exec. timing Controller Robot Running Sleeping Running Sleeping Data Data Dead Time Controller Robot Running Sleeping Running Sleeping Data Data Data Data EC の起床タイミング タイミングシフト

17 データ同期実行コンテキストの実装例 実時間 OS として ART-Linux を用いる. データ到着待ちには,art_wait_phase() を用いる ( スリープしながらデータ到着を待つ ). EC のタイミングずれ時間は PC のクロックで計測する. EC のタイミングずれ補正量は, データ到着時間のばらつきを考慮して決定する. t adj t ˆ 2 ˆ 0 タイミング補正には,art_shift() を用いる. ˆ 0 and σˆ 0 ˆ 2 ˆ ˆ 2 ˆ

18 データ同期実行コンテキストの実装例 実行コンテキスト本体 RTC::PeriodicExecutionContextの派生クラスにする. ArtDataSyncEC PeriodicExecutionContext OpenRTM-aistにダイナミックロードできる. 同期データの指定データ入力ポートを登録するメソッドをECに追加.

19 実時間制御を実現するための要件 1. 各 RTC の制御処理が実時間で実行される. 2. 系全体の制御処理が規定の順序通りに実行される (RTC の同期実行 ). 3. データ送受信処理が実時間で実行される. x d 2 3 4 Controller RTC u x 1 Robot RTC

20 OpenRTM-aist におけるデータ送受信方法 OutPort から InPort への一方向データフロー バッファ データの生成と送受信のタイミングは非同期. 一時的なデータ保管が必要. データフロー型 Push 型 Pull 型 Last Data First Data FIFO Buffer Request Push-type Request Pull-type

21 OpenRTM-aist におけるデータ送受信方法 データの送受信 : サーバ クライアント方式. プロバイダ ( サーバ ) とコンシューマ ( クライアント ) Push 型 : InPortProvider + InPortConsumer InPortConsumer put() InPortProvider Pull 型 : OutPortProvider + OutPortConsumer OutPortProvider get() OutPortConsumer

22 OpenRTM-aist におけるデータ送受信方法 OpenRTM-aist 標準のプロバイダ コンシューマ Push 型 InPortCorbaCdrProvider InPortCorbaCdrConsumer Pull 型 OutPortCorbaCdrProvider OutPortCorbaCdrConsumer データ送受信の実時間性 CORBA を用いているため実時間性が保証されない. CORBA を用いないデータ送受信方法が必要

23 実時間データ送受信の実現方法 RTC システムの構成によって異なる. 構成 1 全 RTC が同一 PC 上の同一プロセスで動作. 構成 2 全 RTC が同一 PC 上で動作するが, 各 RTC は異なるプロセスで動作. 構成 3 各 RTC が異なる PC 上で動作. PC1 PC1 PC1 PC2 ProcessA ProcA ProcB ProcA ProcB 同一 PC, 同一プロセス 同一 PC, 複数プロセス 複数 PC, 複数プロセス

24 実時間データ送受信の実現方法 構成 1 の場合 CORBA 実装に omniorb を用いれば, 標準の方法でも実時間データ送受信を実現可能. 同一プロセス内の CORBA 呼び出しは通常の関数呼び出しに変換されるため. PC1 ProcessA put() get() 通常の関数呼び出し

25 実時間データ送受信の実現方法 構成 2 の場合 データ送受信にはプロセス間通信が必要. ソケット通信 (CORBAで利用されている) メッセージキュー 共有メモリ, など 実時間性を考慮すると, 共有メモリ方式が最適 PC1 ProcA ProcB

26 実時間データ送受信の実現方法 構成 3 の場合 データ送受信には通信ハードウェアが必要. 実時間データ送受信を実現するためには, ハードウェアレベルの実時間性も考慮に入れる必要がある. 実現例 SI2013(2013 年 12 月開催 ) で発表予定. PC1 ProcA PC2 ProcB

27 共有メモリを用いたデータ送受信方法 バッファ 共有メモリ上に作成する. データ送信 Shared Memory 共有メモリ上のバッファにデータを書き込む. データ受信 共有メモリ上のバッファからデータを読み出す. OutPort::write() Buffer InPort::read() CORBA を用いないため実時間データ送受信が実現可能

28 共有メモリを用いたデータ送受信の実装例 [2] 実時間 OSとしてART-Linuxを利用する. バッファ CdrArtShmBuffer CdrBufferBase プロバイダ コンシューマ (Push 型 ) InPortArtShmProvider InPortProvider InPortArtShmConsumer InPortConsumer 各基底クラスの仕様に従ってモジュールを作成 ダイナミックロードでOpenRTM-aistに組み込める [2] 清水, 石綿, 尹, 加賀美, AMP 版 ART-Linux の共有メモリを用いた RT コンポーネント間のデータ通信の実現,SI2012.

29 開発したモジュールの使用法 1. EC, バッファ, プロバイダ, コンシューマのロードと EC の指定. rtc.conf に記述する. exec_cxt.periodic.type: ArtDataSyncEC manager.modules.preload: ArtDataSyncEC.so, CdrArtShmBuffer.so, InPortArtShmProvider.so, InPortArtShmConsumer.so 2. ポート接続時にインタフェースを指定する. RTSystemEditor の場合 artshm_cdr を選択する.

30 ART-Linux を用いた実時間性能試験 AMP に対応した ART-Linux の概要 http://www.dh.aist.go.jp/jp/research/assist/art-linux/ Kernel Non-Realtime SMP-Linux ART ART Processor P0 (BSP) P1 (BSP) P2 (AP) P3 (AP) Memory Shared

31 ART-Linux を用いた実時間性能試験 使用したシステム Controller RTC Robot RTC システムの実行順序 1. ロボットRTCがデータを送信する. 2. 制御器 RTCがデータを受信する. 3. 制御器 RTCがデータを送信する. 4. ロボットRTCがデータを受信する.

32 ART-Linux を用いた実時間性能試験 システム構成 AP0 ProcA AP1 ProcB 実験条件 制御周期 : 1ms 実行コンテキスト ロボットRTC: ArtExecutionContext 制御器 RTC: ArtDataSyncEC データ送受信方法 : 共有メモリ方式

33 ART-Linux を用いた実時間性能試験 測定した時間 T1: 制御系全体の実行周期 Controller RTC T2: ロボット RTC の周期処理の実行時間 T3: 制御器 RTC からのデータ到着待ち時間 T4: 制御器 RTC の周期処理の実行時間 T5: ロボット RTC から制御器 RTC へのデータ送信時間 T6: 制御器 RTC からロボット RTC へのデータ送信時間 T7: ロボット RTC におけるデータ受信時間 T8: 制御器 RTC におけるデータ受信時間 T4 T6 T8 T7 T5 T2 Robot RTC

34 結果 ART-Linux を用いた実時間性能試験 T1 T2 T3 T4 T5 T6 T7 T8 平均 1005 100 93 4 1 1 2 2 標準偏差 11 7 8 2 1 1 1 2 最大値 1029 112 106 16 6 4 12 12 系全体の実行周期 T1は制御周期とほぼ同じ. 系全体の実行処理時間 T2は最大で112μ 秒 = すべての処理が規定時間内に完了. 提案方法で実時間制御を実現できる. ( 単位 :μs)

35 ART-Linux を用いた実時間性能試験 比較実験の条件 制御器 RTC の EC を SynchExtTriggerEC に変更. 比較実験結果 ( 単位 :μs) T1 T2 T3 T4 T5 T6 T7 T8 平均 2011 1213 1205 6 2 1 2 2 標準偏差 8 57 56 0 0 0 0 0 最大値 2224 1616 1610 21 5 10 6 11 系全体の実行周期 T1は制御周期を大きく超えている. 系全体の実行処理時間 T2は最大で1616μ 秒 = 規定時間内に処理を完了できていない.

36 内容 RT ミドルウェアを用いた実時間ロボット制御系の構築 実時間制御の実現方法. ART-Linux を用いた実現例と実時間性能. ソフトウェア教育 研究室配属学生 ( 学部 4 年生 ) への導入教育の実施内容と結果.

37 学部生のプログラミングスキル 静岡大学工学部機械工学科のカリキュラム プログラミング Ⅰ( 学部 2 年前期 ) データ型,for 文,while 文などの基礎文法の学習 プログラミング Ⅱ( 学部 2 年後期 ) 関数, ポインタ, ファイル入出力などの学習とプログラミング演習 数値解析 ( 学部 3 年前期 ) 数値計算アルゴリズムの講義とレポートによる演習 プログラミング (C 言語 ) は 2 年生の時にしか習わない.

38 現状 学部生のプログラミングスキル 研究室配属 (4 年生 ) 段階で, プログラミングについてはほとんど忘れている ( 何をやったかすら記憶にない ). プログラミングの講義では, プログラム作成のためのヒントが与えられており, それが無ければ白紙からプログラムを作成することは難しい. プログラムの設計については講義や経験が無いためできない. C++ や Java 等のオブジェクト指向言語を習っていないため, オブジェクト指向の概念がわからない.

39 現在実施中のロボット研究への導入教育 ロボット工学の学習 (2 か月間 ) 運動学, 動力学, 制御理論などの基礎知識を英語の本を読んで習得する. マニピュレータ制御プログラミング (3 か月間 ) 運動学,PID 制御系, 軌道生成の C++ プログラミング. 関節速度制御器の RTC の作成. 現状は 運動学の計算や軌道生成の理論の理解に時間がかかり過ぎて,C++ プログラミングまで満足に到達できない学生がいる.

40 C++ プログラミングの教育 これまでに試した事と結果 C++ プログラミングを始める前に,C++ の基礎文法とプログラム設計のキーポイントを講義形式で解説. プログラミングを全くしたことがない段階では, 説明を聞いても実際のコーディングまでイメージできない. 独学でC++ プログラミングを学ばせる. C 言語ライクなプログラミングから抜け出せない. オブジェクト指向やカプセル化が理解できていない. 見本のプログラムを与えて, 独学させる. 見本のキーポイントを理解できず, 意味がわからないまま写すだけになる ( 応用力が身につかない ).

41 現在の教育方法 RTM の教育 OpenRTM の Web ページのチュートリアルで独学させ, 分からない所は質問に答える形で教える. 学生を観察して分かったこと C++ でオブジェクトベースのプログラミングが出来なければ,RTC 開発までたどり着けない. 逆に,C++ でオブジェクトベースの開発が出来るようになれば, コンポーネント指向のシステム設計や RTC 開発も独学でできるようになる.

42 まとめ RTM を用いた実時間ロボット制御系の構築手法 RTCの実行の実時間化 複数 RTC 間の実時間同期実行 データ送受信の実時間化 ART-Linuxを用いた実装例と実時間性能の検証 ソフトウェア教育 学生のプログラミングスキルの現状. 研究室配属学生への導入教育の実施内容と結果.