ロボット開発にフル活用するRTミドルウエア 2

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

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

菅 佑樹

2009年6月9日 20:00

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:データポートで扱うことができるデータ型

この記事のキーワード

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る