PR

RTコンポーネント開発を始めよう

2009年6月9日(火)
菅 佑樹

RTコンポーネント開発のフロー

 いよいよ今週はRTコンポーネント(RTC)の開発を始めます。RTミドルウエアのインストールとサンプルの実行は前回(http://thinkit.jp/article/948/1/)説明しましたので、それらは完了していることを前提としてお話ししていきます。

 RTC開発の大きな流れは、以下のようになっています。

1)コンポーネントの分割度の決定
2)RTCのインターフェースの決定
3)RTC BuilderによるRTCのスケルトンコードの生成
4)イベント・ハンドラの実装
5)RTCのテスト

 まずは1)、2)のステップでRTCの分割度とインターフェースの設計を十分に吟味することが重要です。

 RTCの分割度とは、RTCにどこまでの機能を実装するか?ということです。RTCに多くの機能を実装することは簡単ですが、RTCになった時点で機能がカプセル化されるため、カスタマイズが難しくなります。

 一方で分割を細かくすれば、RTCを適用できる場面が多くなりますが、システムが複雑化しますし、処理を行うCPUの負担にもなります。

 RTCの分割度が決定すると、インターフェースを決定します。インターフェースは大きく分けて「サービスポート」と「データポート」があります。ここでは直感的でわかりやすい「データポート」について説明します。

 データポートは、まさにデータを入出力するポートのことです。例えば距離センサーから受け取る情報は「距離」ですから、多くは実数型(FloatやDouble)がやり取りされるでしょうし、キーボードのスイッチなどの情報であれば、論理(Bool)として扱われるのが直感的ですね。

 データポートで扱うことができるデータ型について、代表的なものを図1にまとめました。「Timed」という接頭辞はタイムスタンプをデータの中に持つことを表しています。また「○○Seq」はシーケンス型(配列)を表しています。

 設計が終了したら、3)のステップ、Eclipseのプラグインとして提供されているRTC Builderを使ったスケルトンコードの自動生成を行います。今回はこの部分を説明していきましょう。

番号 データ型 説明
1 TimedBool 論理型。TRUEかFALSEの2値のみ。
2 TimedLong 32ビット整数型。
3 TimedLongSeq 整数型配列。
4 TimeFloat 32ビット実数型。
5 TimeFloatSeq 実数型配列。
6 TimeDouble 倍精度実数型。
7 TimeDoubleSeq 倍精度実数型配列。
8 TimeOctet 8ビット汎用データ型。
9 TimedOctetSeq 汎用データ型配列。
10 TimedString 文字列型。

図1:データポートで扱うことができるデータ型

早稲田大学
早稲田大学創造理工学部総合機械工学科助手。博士(工学)。人間とロボットとの物理的な相互作用と飽きに関する研究に従事。その他に木登り・枝打ちロボットや、車椅子搭載型ロボットアームの開発などに携わる。計測自動制御学会RTミドルウェア賞受賞(2008年)。http://www.ysuga.net

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています