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 Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

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