Defining Own Data Type
on OpenRTM-aist Python for Ubuntu
Ubuntu OS上のOpenRTM-aist Python版で独自データ型の使用方法を解説します。
▶ 更新履歴

4. IDLファイルの登録
作成したIDLファイルは、RTC Builderに登録することで、デフォルトのデータ型と変わらず使用することができます。
それでは、RTC BuilderにIDLファイルを登録します。
RTC Builderを起動し、メニューバーから「ウィンドウ(Window)」 > 「設定(Preferences)」と選択して下さい。
すると、設定ダイアログが立ちあがります。
①のRtcBuilderを選択し、②の新規(New)ボタンを押します。
すると、フォルダー参照ダイアログが現れるので、そこから先ほど作成したMyIDLフォルダを指定してOKバタンを押して下さい。
1. はじめに
RTコンポーネント間の通信に使用するデータポートの型は、開発者が独自に定義することができます。
ここでは、独自データ型の定義方法と、それを使用したRTCの作成方法を学びます。
独自データ型を使用したRTコンポーネントの作成手順は以下のようになります。
(1) 独自データ型が記述されたIDL(インターフェイス定義言語)ファイルの作成
(2) RTC Builderに独自データ型のIDLファイルの登録
それでは早速、RTコンポーネントを作成してみましょう。
7. おわりに
これでOpenRTM-aist Python版で独自データ型を使用できるようになりました。
この例では単純なデータ構造でしたが、送信したいデータに適した型を設計することで、データ通信とその後の処理が簡単になります。
今回はデータの長さを格納できるようにすることで、受け取り側のRTCがいちいちデータの長さを数えなくて済むようにしてみました。
*Pythonでは有効に働きませんでしたが、C++ではループの回数を決定するのに使用できます。
このように、独自データ型は適切に用いれば非常に強力な道具となります。
しかし、独自データ型で定義したデータポートは、他のRTCと交互性を保ちにくという欠点もあります。
独自データ型は、デフォルトのデータ型では表現できないときにのみ使用するよう心がけて下さい。

MyIDLフォルダを指定すると①のようにフォルダへのパスが入力されます。
次に、②のOKボタンを押せばしてください。
入力後RTC Builderを再起動します。これで、IDLファイルの登録は完了です。
5. テストRTCの作成
先ほど定義したMyLongSeq型を利用したRTCを作成します。
今回は、MyIDLTestConsoleInとMyIDLTestConsoleOutを作成します。
MyIDLTestConsoleInはMyLongSeq型のコンソールから入力されたデータを出力します。
MyIDLTestConsoleOutはMyLongSeq型のデータを受け取り、コンソール上に表示します。
いつものように、RTC Builderを使用して各RTCを作成します。
6. 動作確認
いつものように、作成したRTCを実行し、動作確認を行って下さい。
下図のように、3つの値が受け渡しができていれば成功です。