RTCBuilder-1.0.0

RTCBuilder-1.0.0とは

RTCBuilderは、OpenRTM-aist に含まれる開発ツールの1つであり、RTCのプロファイル情報から、RTCのソースコードのひな型を生成することができます。C++、Python、Javaなどのプログラム言語に対応しています。また、Eclipse 統合開発環境のプラグインとして作成されており、 Eclipse 上にて既存のプラグインとシームレスに操作を行うことができます。

概要・RTC作成の流れ

動作環境

RTCBuilder の動作に必要な環境は以下のとおりです。

環境 備考
Java Development Kit 6 注意:Java1.5(5.0)では動作しません。
Eclipse 3.4.2以上
http://www.eclipse.org/downloads/index.php
http://archive.eclipse.org/eclipse/downloads/index.php
Eclipse本体
Eclipse EMF 2.2以上(SDO,XSD含む) RTCBuilderが依存するEclipseプラグイン
ご使用になられるEclipseのバージョンに合ったものをご使用ください。
Eclipse GEF 3.2以上(Draw2D含む) RTCBuilderが依存する Eclipse プラグイン
ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
Eclipse Java development tools(JDT) ご使用になられる Eclipse のバージョンに合ったものをご使用ください。

また以下の開発を行う言語によっては以下の環境をインストールしておくと便利です。

環境 備考
Eclipse CDT C++用の開発環境
Pydev for Eclipse python用の開発環境

制限

RTCBuilder は、OpenRTM-aist を対象に開発されたものです。その他の RTC プラットフォームに対する動作は想定しておりません。

インストールおよび起動

ここでは、RTCBuilder のインストールおよび起動方法について説明します。

RTCBuilder のインストール

RTCBuilder は Eclipse プラグインであるため、 Eclipse 本体および依存している他の Eclipse プラグインをまずインストールする必要があります。 インストールに関しては、OpenRTM Eclipse tools のインストールを参照願います。

RTCBuilderの起動

インストール後、Eclipseを初めて起動すると、以下のようなWelcomeページが表示されます。

fig2InitialOfEclipseStart_1_ja.png
Eclipseの初期起動時の画面


このWelcomeページを左上の「X」により閉じると以下のページが表示されます。

fig3PerspectiveSwitch_ja.png
パースペクティブの切り替え


右上の「Open Perspective」ボタンを押下し、プルダウンの「その他(O)…」ボタンを押下します。

fig2-3PerspectiveSelection_ja.png
パースペクティブの選択


「RTC Builder」を選択することで、RTCBuilderが起動します。

fig2-4RTCBuilderInit_ja.png
RTCBuilderの初期起動時画面


RTCBuilder 用プロジェクトの作成

まず最初に、RT コンポーネントを作成するための Eclipse プロジェクトを作成します。 画面上部のメニューから[ファイル]-[新規]-[プロジェクト]を選択します。

fig2-5CreateProject_ja.png
RTCBuilder 用プロジェクトの作成 1


表示された「新規プロジェクト」画面において、「その他」-「 RTC ビルダ」を選択し、「次へ」をクリックします。

fig2-6CreateProject2_ja.png
RTCBuilder 用プロジェクトの作成 2


「プロジェクト名」欄に作成するプロジェクト名を入力して「終了」をクリックします。

fig2-7CreateProject3_ja.png
RTCBuilder 用プロジェクトの作成 3


指定した名称のプロジェクトが生成され、パッケージエクスプローラ内に追加されます。

fig2-8CreateProject4_ja.png
RTCBuilder 用プロジェクトの作成 4


生成したプロジェクト内には、デフォルト値が設定された RTC プロファイル XML(RTC.xml) が自動的に生成されます。

RTC プロファイルエディタの起動

RTC プロファイルエディタを開くには、ツールバーの「 Open New RtcBuilder Editor 」ボタンを押下するか、メニューバーの [ファイル]-[Open New Builder Editor] を選択します。

fig2-9ToolsBarOpenNewRtcBuilder_ja.png
fig2-10FileMenuOpenNewBuilder_ja.png
ツールバーから Open New RtcBuilder Editor ファイル メニューから Open New Builder Editor

画面構成と機能(概要)

RTCBuilder では、以下のような画面構成となっています。

fig3-1RTCBuilder_1.0.0_ja.png
RTC Builder の画面構成要素

画面要素一覧

画面要素名 説明
RTC プロファイルエディタ RT コンポーネントの仕様であるプロファイル、データポート定義、サービスポート定義、コンフィギュレーション定義、その他拡張プロファイルを編集します。
ビルドビュー 編集中の RT コンポーネントおよびデータポート、サービスポート、サービスインターフェースをアイコンでグラフィカルに表示します。
リポジトリビュー 選択した RT リポジトリの情報を表示します。


画面構成と機能(RT プロファイルエディタ 編)

ここでは、 RT プロファイルエディタについて説明します。

fig3-2RTProfileEditor_ja.png
RT プロファイルエディタ


 RTプロファイルエディタは、以下のページから構成されています。

RT プロファイルエディタ構成

画面要素名 説明
基本プロファイル入力ページ RTコンポーネントのプロファイル情報など、コンポーネントの基本情報を入力します。
アクティビティ・プロファイル RTコンポーネントがサポートしているアクティビティ情報などを指定します。
データポート・プロファイル RT コンポーネントに付属するデータポートのプロファイルを入力します。
サービスポート・プロファイル RT コンポーネントに付属するサービスポートおよびサービスポートに付属するサービスインターフェースのプロファイルを入力します。
コンフィギュレーション RTコンポーネントに設定するユーザ定義のコンフィギュレーション・パラメータセット情報およびシステムのコンフィギュレーション情報を入力します。
ドキュメント生成 生成対象のRTコンポーネントに追加する各種ドキュメント情報を入力します。
言語・環境 生成対象のコード選択やOSなどの実行環境に関する情報を入力します。
RTC.xml 設定された情報を基に生成したRtcProfileのXML形式での表示・編集を行います。
各ページの切り替えは、エディタ画面下部のタブを選択することで行うことができます。

基本プロファイル入力ページ

RT コンポーネントのプロファイル情報など、コンポーネントの基本情報を入力するページです。

fig3-3InputBaseProfile_ja.png
基本プロファイル入力ページ


以下に各入力項目について説明いたします。

基本プロファイル入力ページ 項目説明

項目 説明 必須
RT-Component Basic Profile
モジュール名 RT コンポーネントを識別する名前です。必須入力項目。この名前は、生成されるソースコード中で、コンポーネントの名前に使用されます。英数字でなければなりません。
モジュール概要 RT コンポーネントの簡単な概要説明です。 -
バージョン RT コンポーネントのバージョンです。原則 x.y.z のような形式でバージョン番号を入力します。省略可能項目 -
ベンダ名 RT コンポーネントを開発したベンダ名です。
モジュールカテゴリ RT コンポーネントのカテゴリです。
コンポーネント型 RTコンポーネントの型です。以下の選択肢の中から指定可能です。
・STATIC:静的に存在するタイプのRTCです。動的な生成、削除は行われません。
・UNIQUE:動的に生成・削除はできるが、各コンポーネントが内部に固有状態を保持しており、必ずしも交換可能ではないタイプのRTCです。
・COMMUTATIVE:動的に生成・削除が可能で、内部の状態を持たないため、生成されたコンポーネントが交換可能なタイプのRTCです。
アクティビティ型 RTコンポーネントのアクティビティタイプです。以下の選択肢の中から指定可能です。
・PERIODIC :一定周期でRTCのアクションを実行するアクティビティタイプ
・SPORADIC :RTCのアクションを不定期に実行するアクティビティタイプ
・EVENT_DRIVEN :RTCのアクションがイベントドリブンであるアクティビティタイプ
コンポーネント種類 RTコンポーネントの実行形態の種類です。以下の選択肢から選択可能です。(複数選択肢の組み合わせ可)
・DataFlow : 周期的にアクションを実行する実行形態
・FSM : 外部イベントによってアクションを実行する形態
・MultiMode : 複数の動作モードを持つ実行形態
最大インスタンス数 RT コンポーネント インスタンスの最大数です。自然数を入力してください。 -
実行型 ExecutionContextの型です。 以下から選択可能です。・PeriodicExecutionContext : 周期実行を行うExecutionContext・ExtTrigExecutionContext : 外部トリガによって実行を行うExecutionContex
実行周期 ExecutionContextの実行周期です。正のdouble型の数値が入力可能です(単位Hz)。 -
概要 RTコンポーネントに関する説明です。
RTC Type 特定機能を実現するRTコンポーネントを区別する必要がある場合に指定します。
Output Project
生成コードの出力対象プロジェクト名です。設定したプロジェクトが存在する場合には、そのプロジェクト内に、設定したプロジェクトが存在しない場合には、新規プロジェクトを生成します。

アクティビティ・プロファイル入力ページ

生成対象のRTコンポーネントがサポートしているアクティビティに関する情報を入力するページです。

fig3-4ActivityProfile_ja.png
アクティビティ・プロファイル入力ページ


Documentationセクションの内容は、アクティビティ毎に設定します。Documentationセクションには、選択中のアクティビティに対応した内容が表示されます。
以下に各入力項目について説明いたします。

アクティビティ・プロファイル入力ページ 項目説明

項目 説明 必須
Activity Profile
onInitialize 初期化処理です。コンポーネントライフサイクルの開始時に一度だけ呼ばれます。 -
onFinalize 終了処理です。コンポーネントライフサイクルの終了時に1度だけ呼ばれます。
onStartup ExecutionContextが実行を開始するとき1度だけ呼ばれます。
onShutdown ExecutionContextが実行を停止するとき1度だけ呼ばれます。
onActivated 非アクティブ状態からアクティブ化されるとき1度だけ呼ばれます。
onDeactivated アクティブ状態から非アクティブ化されるとき1度だけ呼ばれます。
onAborting ERROR状態に入る前に1度だけ呼ばれます。
onError ERROR状態にいる間に呼ばれます。
onReset ERROR状態からリセットされ非アクティブ状態に移行するときに1度だけ呼ばれます。
onExecute アクティブ状態時に周期的に呼ばれます。
onStateUpdate on_executeの後毎回呼ばれます。
onRateChanged ExecutionContextのrateが変更されたとき呼ばれます。
onAction 対応する状態に応じた動作を実行するために呼ばれます。
onModeChanged モードが変更された時に呼ばれます。
Documentation
アクティビティ名 現在選択されているアクティビティの名称を表示します。
動作概要 対象アクティビティが実行する動作の概要説明を記述します。
事前条件 対象アクティビティを実行する前に成立すべき事前条件を記述します。
事後条件 対象アクティビティを実行した後に成立する事後条件を記述します。ただし、事前条件が満たされない状態で対象アクティビティが実行された場合は事後条件の成立は保証されません。

データポート・プロファイル入力ページ

RT コンポーネントに付属するデータポートの情報を入力するページです。

fig3-4InputDataPort_ja.png
データポート・プロファイル入力ページ


 各ポート (InPort/OutPort) を新規に追加する場合は、各セクションの「 Add 」ボタンを押してください。  また、各セクションの「 Delete 」ボタンを押すと、選択中のポートを削除することができます。  ドキュメントセクションの内容はポート毎に設定することが可能です。ドキュメントセクションには、選択中のポートに対応した内容が表示されます。  以下に各入力項目について説明いたします。

データポート・プロファイル入力ページ 項目説明

項目 説明 必須
DataPortプロファイル
ポート名 DataPortの名称です。半角英数字のみ入力可能です。
Data OutPort、Service Portと併せてポート名称は重複することができません。
Detail
ポート名 現在選択されているData Portを「ポート名(InPort/OutPort)」の形式で表示します。
データ型 DataPort が扱うデータ型です。
設定画面にて指定したIDL内で定義されているデータ型が利用可能です。
変数名 DataPort に対応する変数名です。
表示位置 ビルドビュー内でのData InPortの表示位置です。
概要説明 データポートに対する概要説明を記述します。
データ型 データポートの扱う型に対する説明を記述します。
データ数 データが配列になる場合など、データ数に関する説明を記述します。
意味 データの意味の説明を記述します。
単位 データ単位に関する説明を記述します。
発生頻度,周期 データの発生頻度、周期に関する説明を記述します。
処理速度,周期 データの処理速度、処理周期に関する説明を記述します。

サービスポート・プロファイル入力ページ

RT コンポーネントに付属するサービスポートの情報を入力するページです。

fig3-5InputServicePort_ja.png
サービスポート・プロファイル入力ページ(サービスポート情報入力)



fig3-6InputServicePort2_ja.png
サービスポート・プロファイル入力ページ(サービスインターフェース情報入力)


 新規サービスポートは、画面左側「 RT-Component Service Ports 」欄の「 Add Port 」を選択することで追加することができます。 画面左側「 RT-Component Service Ports 」にてサービスポートを選択した状態で、「Add Interface 」を選択することで新規サービスインターフェースを追加することができます。 画面左側「 RT-Component Service Ports 」にて、サービスポートもしくはサービスインターフェースを選択した状態で「 Delete 」を選択することで、選択したポート/インターフェースを削除することができます。 以下に各入力項目について説明いたします。

サービスポート・プロファイル入力ページ 項目説明(サービスポート)

項目 説明 必須
RT-Component Service Port Profile
ポート名 サービスポートの名称です。半角英数字のみ入力可能です。
Data InPort、Data OutPort、Service Port名称は重複できません。
表示位置 ビルドビュー内でのサービスポートの表示位置です。
Documentation
概要説明 サービスポートに対する概要説明を記述します。
I/F概要説明 サービスポートに付属するサービスインターフェースの概要説明を記述します。

サービスポート・プロファイル入力ページ 項目説明(サービスポート)

項目 説明 必須
RT-Component Service Port Interface Profile
インターフェース名 サービスインターフェースの名称です。半角英数字のみ入力可能です。
サービスインターフェース名は重複することができません。
方向 サービスインターフェースの種類です。以下の選択肢から選択可能です。
・Provided:提供インターフェース(Service Provider用)
・Required:要求インターフェース(Service Consumer用)
インスタンス名 サービスインターフェースのインスタンス名です。半角英数字のみ入力可能です。
変数名 サービスインターフェースの変数名です。省略された場合は、インスタンス名を使用します。
IDLファイル サービスインターフェースで使用するIDLファイル名を指定します。「Browse...」ボタンをクリックすると、ファイル選択ダイアログが表示されます。
インターフェース型 サービスインターフェースで使用するサービスの型です。IDL fileを指定するとIDL内で定義されている型情報が表示されます。半角英数字のみ入力可能です。
IDL Path IDLのサーチパスです。「Browse...」ボタンをクリックすると、ディレクトリ選択ダイアログが表示されます。
Documentation
概要説明 サービスインターフェースに対する概要説明を記述します。
引数 サービスインターフェースの引数に関する説明を記述します。
戻り値 サービスインターフェースの戻り値に関する説明を記述します。
例外 サービスインターフェースの例外に関する説明を記述します。
事前条件 サービスインターフェースのオペレーションを実行前に満たしておくべき事前条件に関する説明を記述します。
事後条件 サービスインターフェースのオペレーションを実行後に満たす事後条件に関する説明を記述します。

コンフィギュレーション・プロファイル入力ページ

RT コンポーネントに設定するユーザ定義のコンフィギュレーション・パラメータ情報およびその他システムのコンフィギュレーション情報を入力するページです。


fig3-7InputConfigProfile_ja.png
コンフィギュレーション・プロファイル入力ページ


ユーザ定義コンフィギュレーション・パラメータ情報およびシステム・コンフィギュレーション情報を新規に追加する場合は、各セクションの「Add」ボタンを押してください。また、各セクションの「Delete」ボタンを押すと、選択中のコンフィギュレーション情報を削除することができます。
DetailセクションおよびDocumentationセクションの内容は、ユーザ定義コンフィギュレーション・パラメータ毎に設定することが可能です。各セクションには、選択中のユーザ定義コンフィギュレーション・パラメータに設定した内容が表示されます。
以下に各入力項目について説明いたします。

コンフィギュレーション・プロファイル入力ページ 項目説明

項目 説明 必須
RT-Component Configuration Parameter Definitions
名称 ユーザ定義コンフィギュレーション・パラメータの名称です。半角英数字のみ入力可能です。
ユーザ定義コンフィギュレーション・パラメータ名称は重複することができません。
Detail
パラメータ名 現在選択されているユーザ定義コンフィギュレーション・パラメータを表示します。
データ型 ユーザ定義コンフィギュレーション・パラメータのデータ型です。
設定画面にて指定したIDL内で定義されているデータ型が利用可能です。
デフォルト値 ユーザ定義コンフィギュレーション・パラメータのデフォルト値です。2バイト文字を含む任意の値を設定可能です。
変数名 ユーザ定義コンフィギュレーション・パラメータの変数名です。半角英数字のみ入力可能です。
単位 ユーザ定義コンフィギュレーション・パラメータの単位です。
制約条件 ユーザ定義コンフィギュレーション・パラメータに対する制約条件を記述します。制約条件の記述方法については、制約情報の記述方式を参照してください。
Widget RTSystemEditorのConfigurationViewにてコンフィギュレーション・パラメータを設定する際に利用するコントロールを指定します。以下の値から選択可能です。
・text:テキストボックス(デフォルト設定)
・slider:スライダ
・spin:スピンボタン
・radio:ラジオボタン
Step 入力用コントロールとして、「slider」を選択した場合に、スライダの刻み幅を指定します。
パラメータ名 現在選択されているユーザ定義コンフィギュレーション・パラメータを表示します。
データ名 ユーザ定義コンフィギュレーション・パラメータの名称に対する説明を記述します。
デフォルト値 ユーザ定義コンフィギュレーション・パラメータのデフォルト値に対する説明を記述します。
概要説明 ユーザ定義コンフィギュレーション・パラメータに対する概要説明を記述します。
単位 ユーザ定義コンフィギュレーション・パラメータの単位に対する説明を記述します。
データレンジ ユーザ定義コンフィギュレーション・パラメータのデータ範囲に関する説明を記述します。
制約条件 ユーザ定義コンフィギュレーション・パラメータの制約条件に関する説明を記述します。
RT-Component Configuration Parameter
Configuration 設定を行うコンフィギュレーション名です。一覧から選択します。
デフォルト値 設定対象コンフィギュレーションのデフォルト値です。予めデフォルト値が設定されている項目については、名称選択時にデフォルト値が設定されます。

ドキュメント情報設定ページ

生成対象のRTコンポーネントに関する各種ドキュメント情報を入力します。

fig3-8Documentinfo.png
ドキュメント情報入力ページ


このページで入力された情報は、生成されたコードにdoxygen形式で埋め込まれます。
以下に各入力項目について説明いたします。

ドキュメント情報設定ページ 項目説明

項目 説明 必須
コンポーネント概要
概要説明 生成するRTコンポーネントの概要説明を記述します。
入出力 RTコンポーネントの入出力に関する概略説明を記述します。
アルゴリズムなど RTコンポーネントが使用しているアルゴリズムなどの説明を記述します。
その他
作成者・連絡先 RTコンポーネントの作成者および連絡先に関する情報を記述します。
ライセンス,使用条件 RTコンポーネントのライセンス情報、使用条件に関する情報を記述します。
参考文献 参考文献情報を記述します。
バージョンアップログ
VersionUp Log 今回の変更内容に関するログ情報を記述します。
ライセンス,使用条件 過去のバージョンアップ時のログ情報を表示します。

言語・環境情報入力ページ

入力した RT コンポーネント仕様に基づき生成するテンプレート・ソースコードの言語選択や、OS 等の実行環境、依存ライブラリなどを入力するページです。

fig3-8InputLangEnv_ja.png
言語・環境情報入力ページ


 生成対象の言語ごとにセクションが分かれています。生成したい言語のセクションを選択し、各言語固有の設定情報を入力してください。 あるセクションを選択した場合には、他のセクションは全て閉じるようになっています。 コード生成実行時(基本プロファイル入力ページの「 コード生成 」ボタン押下時)に選択されていたセクションの言語用テンプレートコードが生成されます。 以下に各入力項目について説明いたします。

言語・環境情報入力ページ 項目説明

項目 説明 必須
言語 生成対象の言語を指定します。
環境
Version 生成対象RTCを実装している言語のバージョン情報を設定します。
OS 生成対象RTCが動作するOS情報を設定します。
OS Version 生成対象RTCが動作するOSのバージョン情報を設定します。
CPU 生成対象RTCが動作するCPUアーキテクチャ情報を設定します。
その他OS情報 生成対象RTCが動作するOSについて、バージョン情報以外の補足情報を設定します。
その他CPU情報 生成対象RTCが動作するCPUについて、アーキテクチャ情報以外の補足情報を設定します。
ライブラリ情報
Name 生成対象RTCが利用する外部ライブラリの名称を指定します。
Version 生成対象RTCが利用する外部ライブラリのバージョン情報を指定します。
Info. 生成対象RTCが利用する外部ライブラリの補足情報を指定します。

RTC プロファイル XML 編集ページ

入力した RT コンポーネント仕様を記した XML ファイル (RTC.xml) の内容確認、編集を行うページです。他のページで設定した内容を確認したり、GUI 画面からは入力できない項目を直接編集するために使用します。

fig3-9InputLangEnv2_ja.png
言語・環境情報入力ページ


表示されるRTコンポーネント仕様の内容は、このページに切り替えた時に他ページで設定されている内容を基に作成されます。
画面右上の「Update」ボタンをクリックすると、このページで設定、変更した内容を他のページに反映させることができます (他のページへ反映させるのみで、ファイルへの書き込みは行いません) 。また、以下のような画面が表示され、変更点を確認することができます。修正内容を他ページへ反映する場合には「OK」をクリックしてください。

fig3-9InputLangEnv3_ja.png
XML編集内容比較画面


 このページで直接入力した内容は、このページを表示している状態で保存した場合のみ保存されます。このページにて内容編集後、他ページを開いた状態で保存すると、他のページにて入力した項目が優先されます。 このページの内容を保存する場合には、RTC.xml のスキーマ定義に従ったバリデーションが行われます。バリデーション時にエラーが発見された場合は、以下のようなエラーメッセージが表示されますので、表示内容を参考に該当箇所を修正してください。

fig3-10ErrorXML_ja.png
XML バリデーションエラーの例


制約情報の記述方式

データポートおよびユーザ定義コンフィギュレーション・パラメータへの制約条件は以下の書式で設定します。

制約条件の記述方式

設定内容 設定書式
指定なし 空白
100(即値) 100
100以上 x >= 100
100以下 x<=100
100超 x>100
100未満 x<100
100以上200以下 100<=x<=200
100超200未満 100<x<200
列挙型 (9600,19200,115200)
配列型 x>100, x>200, x>300
ハッシュ型 {key0: 100<x<200, key1: x>=100}

画面構成と機能(ビルドビュー 編)

ビルドビューは作成中の RT コンポーネントの設定内容をグラフィカルに表示するためのビューです。 ビルドビューの表示例を以下に示します。

fig3-13BuildView_ja.png
ビルドビュー


 ビルドビュー内には、設定したRTコンポーネントの名称、データポート (InPort/OutPort) の数・名称、サービスポートの数・名称、サービスインターフェースの数・名称が表示されます。 また各ポートは、各設定画面で設定した表示位置に表示されます。

ビルドビューの表示

「 RTCBuilder 」パースペクティブ切り替え時にビルドビューが表示されていない場合、以下の手順にて表示することができます。 画面上部のメニューから[ウィンドウ]-[ビューの表示]-[その他]を選択。表示された「ビューの表示」画面にて、「OpenRTP Tools」-「BuildView」を選択。

fig3-14DispBuildView_ja.png
fig3-14DispBuildView2_ja.png
ビルドビューの表示

画面構成と機能(リポジトリビュー 編)

 リポジトリビューは、RT コンポーネント仕様記述ファイルを読み込み、ツリービューで表示する機能をもっています。 またリポジトリビューには、大きく分けて、ローカルに存在する仕様記述ファイルを直接読み込む機能と、リモートに存在する RT リポジトリに接続し、リポジトリ内の情報をツリー表示する機能があります。

リポジトリビューの表示

メニューの「ウィンドウ(W)」から「ビューの表示(V)」を選択し、「その他(O)」を押下します。

fig1-3SelectRepositoryView_ja.png
リポジトリビューの選択


「RepositoryView」を選択することで、リポジトリビューが起動します。

fig1-4RepositoryViewInit_ja.png
リポジトリビューの初期起動時画面


ローカル版の概要

ローカルに存在する RT コンポーネント仕様記述ファイルを読み込み、ツリービューで表示する機能です。

fig2-1RepositoryViewLocal_ja.png
リポジトリビュー(ローカル仕様記述読込時)


ファイルのロード

 ここでは、リポジトリビューに RT コンポーネント仕様記述ファイルを指定して表示する方法の説明を行います。 リポジトリビュー内で右クリックし、表示されるコンテクストメニューから「 ファイルから読込 」を選択すると、ファイル選択ダイアログが表示されます。ここでリポジトリビューに読み込む RT コンポーネント仕様記述ファイルを選択します。 このダイアログは xml ファイルのみ表示するようフィルタがかかります。

fig2-1LoadFile_ja.png
ファイルのロード


 ローカルに存在する RT コンポーネント仕様記述ファイルを読み込んだ場合、最上位階層は読み込んだ RT コンポーネント仕様記述ファイルの絶対パスを表示します。そして、2階層目は RT コンポーネント仕様記述ファイル内で定義されている category 属性の値を表示します。また3階層目は RT コンポーネント仕様記述ファイル内の name 属性に記述されている値と RT コンポーネント仕様記述ファイル名を表示します。

ディレクトリのロード

 ここでは、 RT コンポーネント仕様記述ファイルが存在するディレクトリを指定して、ディレクトリ内の全ファイルの読み込み、表示を行う方法を説明します。 リポジトリビュー上で右クリックし、表示されるコンテクストメニューから「 ディレクトリから読込 」を選択すると、ディレクトリ選択ダイアログが表示されます。リポジトリビューに読み込むディレクトリを選択します。ディレクトリ以下に存在する RT コンポーネント仕様記述ファイルを読み込みます。

fig2-5LoadDir_ja.png
ディレクトリのロード後


 表示方法はファイルのロードと同様です。 すでに展開したディレクトリに新しい RT コンポーネント仕様記述ファイルを追加し、再度読み込みを行うと追加された RT コンポーネント仕様記述ファイルのみ読み込まれます。

削除

 リポジトリビューのコンポーネントは、リポジトリビュー上で右クリックし、コンテクストメニューから「 削除 」を選択すると、削除することが可能です。 「 削除 」はパス、 category 、コンポーネントのいずれかを選択している場合のみ選択できます。

fig2-6Delete_ja.png
削除


 最上位階層であるパスを削除すると、下位の category 、コンポーネントも同時に削除されます。また3階層目のコンポーネントを削除し、他のコンポーネントが存在しない場合は再帰的に最上位階層まで削除されます。

コード生成・セーブとロード

コード生成

生成対象RTコンポーネントの各種プロファイル情報を設定した後、テンプレートコードの生成を行います。 基本プロファイル入力ページの「 コード生成 」ボタンをクリックすると、入力したプロファイル情報に応じたテンプレートコードの生成が行われます。

fig4-1GenerateTemplate_ja.png
テンプレートコードの生成


各言語を選択した際のコード生成実行時に生成されるテンプレートファイルは以下のとおりです。

生成ファイル一覧

  • 言語共通
ファイル名 説明
README_<RTC名> README ファイルです。RT コンポーネント生成時に設定した情報などが記述されています。
<RTC名>.conf コンポーネントの設定ファイルです。
rtc.conf コンフィギュレーションファイルです。ExecutionContextの実行周期などが記述されています。
  • C++
ファイル名 説明
<RTC名> Comp.cpp RT コンポーネントを起動するコードです。
<RTC名>.h RT コンポーネント本体のヘッダです。
<RTC名>.cpp RT コンポーネント本体のコードです。
<サービス型名>SVC_impl.h サービスプロバイダのヘッダです。(
ServiceProvider にて指定された Type のみが出力されます。
<サービス型名>SVC_impl. cpp サービスプロバイダの実装コードです。(
ServiceProvider にて指定された Type のみが出力されます。
Makefile.<RTC名> コンパイルするための Makefile です。
<RTC名>_vc8.sln Visual Studio 2005用のソリューションファイルです。
<RTC名>_vc8.vcproj Visual Studio 2005用のRTコンポーネントプロジェクトファイルです。
<RTC名>Comp_vc8.vcproj Visual Studio 2005用の起動コード用プロジェクトファイルです。
<RTC名>_vc9.sln Visual Studio 2008用のソリューションファイルです。
<RTC名>_vc9.vcproj Visual Studio 2008用のRTコンポーネントプロジェクトファイルです。
<RTC名>Comp_vc9.vcproj Visual Studio 2008用の起動コード用プロジェクトファイルです。
Copyprops.bat プロパティ・ファイルコピー用バッチファイルです。
User_config.vsprops ユーザ定義用プロパティ・ファイルです。
OpenRTM-aist.vsprops OpenRTM-aist 用プロパティ・ファイルです。
  • Java
ファイル名 説明
<RTC名>Comp.java RT コンポーネントの起動用クラスです。
<RTC名>.java RT コンポーネントの Component Profile, 初期化処理などを定義したクラスです。
<RTC名>Impl.java RT コンポーネントの本体です。
build_<RTC名>.xml RT コンポーネントのビルド用ファイルです。
<サービス型名> SVC_impl.java サービスプロバイダの実装クラスです。(
  • Python
ファイル名 説明
<RTC名>.py RT コンポーネントのコードです。
<サービス型名>_idl.py
<サービス型名>_idl_example.py サービスプロバイダの実装ファイルです。(
  • C#
ファイル名 説明
<RTC名>.cs RTコンポーネントのコードです。
<RTC名>.csproj RTコンポーネントのプロジェクトファイルです。
<サービス型名>Impl.cs サービスプロバイダの実装クラスです。(※)
<RTC名>.csproj.user プロパティ・ファイルです。
App.config アプリケーション用コンフィギュレーションファイルです。
Program.cs RTコンポーネントの起動用クラスです。
 ※ RtcBuilder は、このサービスプロバイダの実装ファイルを出力する際、オペレーションのテンプレートを生成するために、IDL をパースします。しかし、このパース機能には以下のような制限が存在します。
  • プリプロセッサにおいて、#include ディレクティブのみ使用可能。(#ifdef などは単に無視される)
  • 生成されるオペレーションは直接指定されたインタフェースのオペレーションのみで、親から継承したオペレーションは含まれない。

出力選択

RtcBuilder は、生成したファイルと同名のファイルが出力先に既に存在し、既存ファイルと生成ファイルの間で出力内容に差異が存在する場合、どちらの出力を利用するかを選択する確認画面が表示されます。

fig4-2SelectOutPut_ja.png
出力選択画面


出力の選択では、以下の3つ出力候補の中から選択します。
  • Original  : 既に存在するファイルをそのまま残す
  • Merge   : マージブロックを利用したマージを行う(※1
  • Generate : 新たに生成した内容で上書きする

 ※1 Mergeでは、<rtc-template block=”block”>タグで囲まれた範囲のみを最新の生成内容で上書します。生成したテンプレートは、ユーザが変更しない範囲をあらかじめこのタグで囲んでいます。このタグの中は変更後もマージすることで消えてしまいますので、修正しないようにしてください。

パースペクティブ切り替え

 生成対象言語の開発環境用プラグインがインストールされている場合、コード生成実行後にパースペクティブ切り替えの確認メッセージが表示されます。 対象のプラグインがインストールされている場合には以下のようなメッセージが表示されますので、パースペクティブの切り替えを行うかどうかを選択してください。

fig4-3MessagePerspectiveSwitch_ja.png
パースペクティブ切り替え確認メッセージ


生成言語と開発環境用プラグインの関係は以下のとおりです。
  • Java : JDT(Java Development Tools) → あらかじめEclipseに含まれている開発環境です。
  • C++ : CDT(C/C++ Development Tooling)
  • Python : PyDev

 ※各言語用の開発環境用プラグインがインストールされており、出力対象プロジェクトが新規作成プロジェクトの場合は、各プロジェクトのプロパティに対象言語の属性が設定されます。

生成ファイルのパッケージング機能

生成したテンプレートファイル、テンプレートファイルを基に作成した RT コンポーネントの実行用バイナリファイルなどを各種形式でアーカイブする機能です。 基本プロファイル入力ページの「 パッケージ化 」ボタンをクリックすると、パッケージング内容を設定するための「RTコンポーネント パッケージ化」画面が表示されます。

fig6-1FunctionPack_ja.png
各種成果物のパッケージング機能



fig6-2ExportRTC_ja.png
RTコンポーネント パッケージ化画面


以下、各項目について説明いたします。

RTコンポーネント パッケージ化画面 項目説明

項目 説明
対象プロジェクト パッケージング対象のプロジェクトを選択してください。
宛先ディレクトリ パッケージングした成果物を出力するディレクトリを入力してください。「参照」ボタンを使用することで、ディレクトリ選択ダイアログが表示されます。
アーカイブ方式 作成するアーカイブの形式を選択してください。
オプション 各アクション内での動作に関する概要説明。省略可能項目。
アーカイブ形式 ZIP フォーマットを利用したアーカイブと、tar フォーマットを利用したアーカイブを作成することが可能です。使用するフォーマット形式を選択してください。
アーカイブ内容の圧縮 アーカイブ内容を圧縮する場合には、チェックボックスを ON にしてください。
ディレクトリ構造 アーカイブ対象プロジェクトのディレクトリ構造をそのまま保持した形でアーカイブを行うか、全てルートディレクトリに入れた形でアーカイブを行うかを選択してください。

アーカイブ方式(「ソース」「バイナリ」「ソース+バイナリ」)ごとに、どのファイル種類をアーカイブに含めるかは、後述の「設定画面」にて設定することができます。


設定内容のセーブとロード

RTCBuilder では、RTC プロファイルエディタで入力した内容を RTC プロファイル XML(RTC.xml) に保存したり、保存した内容を再度読み込むことが可能です。

セーブ

 RTC プロファイルエディタで入力した内容は、RTC プロファイル XML(RTC.xml) に保存することが可能です。入力内容は以下の操作により保存することができます。
  • エディタを右クリックし、表示されたコンテクストメニューから「Save」もしくは「Save As…」を選択
  • メニューバーの[File]-[Save…]もしくは[File]-[Save As…]を選択

 ※[Save As…]を選んだ場合、任意のプロジェクト内に保存することが可能です。

fig5-1Save_ja.png
fig5-1Save2_ja.png
セーブ

ロード

RTC プロファイルエディタの内容を保存した RTC プロファイル XML(RTC.xml) は以下の操作により読み込むことが可能です。
  • エディタを右クリックし、コンテクストメニューから「Open」を選択
  • メニューバーの[File]-[Open File…]を選択
fig5-2Load_ja.png
fig5-2Load2_ja.png
ロード

プロファイルのエクスポート/インポート

RTC プロファイルエディタで入力,設定した内容をXML形式、 YAML 形式で外部ファイルにエクスポート、エクスポートしたファイルをインポートする機能です。 基本プロファイル入力ページの「 エクスポート 」ボタンをクリックすると、プロファイル情報をエクスポートする先を選択するファイルダイアログが、「 インポート 」ボタンをクリックすると、インポート元のプロファイル情報を選択するファイルダイアログがそれぞれ表示されます。

fig8-1FunctionExportImport_ja.png
プロファイル エクスポート/インポート機能



fig8-2DialogProfileExport_ja.png
プロファイル エクスポート先選択ダイアログ


  ※エクスポート処理時の形式は、「ファイル エクスポート先選択」ダイアログの「ファイルの種類」によって選択することが可能です。

各種設定

ここでは RTCBuilder の各種設定について説明します。 RTCBuilder の設定画面は、画面上部メニューの[ウィンドウ]-[設定....]を選択して表示される「設定」画面から「 RTCBuilder 」を選択すると表示されます。

fig7-1SettingRTCBuilder2_ja.png

データ型

Data PortおよびConfigurationパラメータで設定するデータ型を定義したIDLファイルの位置を設定することができます。 IDL格納ディレクトリを新規に追加する場合は、「Add」ボタンをクリックしてください。また、「Delete」ボタンをクリックすると、選択中のIDL格納ディレクトリを削除することができます。 IDL格納ディレクトリの実際の位置は、「IDL File Directories」欄内をクリックして表示されるディレクトリ選択画面にて選択してください。

fig7-1SettingRTCBuilder1_ja.png
RTCBuilder設定画面


コード生成

RTC プロファイルエディタの基本プロファイル入力ページおよびコンフィギュレーション・プロファイル入力ページにて新規エディタ表示時、新規項目追加時にデフォルトで設定される内容を設定することができます。

fig7-2SettingGenerateCode_ja.png
コード生成設定画面


なお、この設定画面中のデフォルト設定(「デフォルトの復元」ボタンをクリックした際に設定される内容)は以下のとおりです。

コード生成設定画面 デフォルト値

項目 デフォルト値
Basic
Component name ModuleName
Description ModuleDescription
Version 1.0.0
Vendor VendorName
Category Category
Component Type STATIC
Component’s activity type PERIODIC
Max. Instances 1
Component kind DataFlowComponent
Execution type PeriodicExecutionContext
Execution rate 1.0
Configuration
Name conf_name
Type conf_type
Variable Name conf_varname
Default Value conf_default
Constraint conf_constraint
Unit

Port

RTC プロファイルエディタのデータポート・プロファイル入力ページおよびサービスポート・プロファイル入力ページにて新規項目を追加した際にデフォルトで設定される内容を設定することができます。

fig7-3SettingPort_ja.png
Port設定画面


なお、この設定画面中のデフォルト設定(「デフォルトの復元」ボタンをクリックした際に設定される内容)は以下のとおりです。

Port設定画面 デフォルト値

項目 デフォルト値
Data Port
DataPort Name dp_name
DataPort Type dp_type
DataPort Variable Name dp_vname
DataPort Constraint dp_constraint
DataPort Unit
Service Port
ServicePort Name sv_name
Service Interface
Interface Name if_name
Instance Name if_instance
Variable Name if_varname

Configuration

RTC プロファイルエディタのコンフィギュレーション・プロファイル入力ページのシステム・コンフィギュレーション情報に表示される項目を設定することができます。

fig7-4SettingConfig_ja.png
Configuration設定画面


なお、この設定画面中のデフォルト設定(「デフォルトの復元」ボタンをクリックした際に設定される内容)は以下のとおりです。

Configuration 設定画面 デフォルト値

項目 デフォルト値
exec_cxt.periodic.type PeriodicExecutionContext
exec_cxt.periodic.rate 1000
exec_cxt.evdriven.type EventDrivenExecutionContext

Export

RT コンポーネントのパッケージング機能の各アーカイブ形式に含めるファイルを設定することができます。

fig7-4SettingExport_ja.png
Export設定画面


設定画面はアーカイブ形式ごとのセクション(Source Export,Binary Export,Source+Binary Export)に分かれています。また、各セクションは拡張子指定部と、ファイル名指定部から構成されています。

fig7-5SettingExport_ja.png
Export設定画面(セクション)


拡張子指定部では、各アーカイブ形式に含めるファイルの拡張子を設定することができます。「タイプの選択」ボタンをクリックすると、以下のようなタイプ選択画面が表示されますので、アーカイブに含めたいファイルタイプを選択してください。

fig7-6Select_ja.png
※ファイル拡張子リストには登録済みの拡張子のみ表示されます。リスト内に存在しないファイルを選択したい場合は、画面下部の「他の拡張子」欄に該当する拡張子を「,」区切りで入力してください。


拡張子選択画面


ファイル設定部ではアーカイブに含めるファイル名を設定することができます。「ファイル名」リスト下部の「 Add 」ボタンをクリックすると新しい行が追加されますので、アーカイブに含めたいファイル名を直接入力してください。また、「 Delete 」ボタンをクリックすると、選択している行を削除することができます。 上図の Export設定画面(セクション)の例では、アーカイブ方式として「 Source+Binary 」を選択した際に、拡張子が「 cpp 」「 h」 であるファイルと、ファイル名が「 Makefile 」「 README 」であるファイルをアーカイブに含める設定となります。 なお、この設定画面中のデフォルト設定(「デフォルトの復元」ボタンをクリックした際に設定される内容)は以下のとおりです。

Export設定画面 デフォルト値

項目 デフォルト値
Source Export
拡張子 conf,cpp,h,vcproj,java,xml,py
ファイル名 Makefile,README
Binary Export
拡張子 conf,exe,class,py
ファイル名 README
Source+Binary Export
拡張子 conf,cpp,h,vcproj,java,xml,py,exe,class
ファイル名 Makefile,README

Build View

Build View 内に表示されるアイコンの色情報を設定することができます。

fig7-7SettingBuildView_ja.png
Build View設定画面


それぞれの色設定ボタンにより、コンポーネント本体、DataInPort、DataOutPort、ServicePort、ServiceInterface の色設定を変更することが可能です。

Document

各アクティビティの有効無効属性(ON/OFF)を設定することができます。

fig7-8SettingDocument_ja.png
Document設定画面

その他

その他

FAQ

RTC プロファイルエディタで入力した内容を RTC プロファイルへ保存するときに、「 Error writing file. 」というエラーが発生します。

A. 保存先の指定が不正な場合に表示されます。保存先を任意のプロジェクト内のディレクトリにして保存してください。

謝辞

RTCBuilderは、以下のライブラリあるいは製品を使用して開発されました。これらのプロジェクトの開発と設計にかかわった方々に感謝します。
  • Apache Velocity 1.5 ~Copyright (C) 2000-2007 The Apache Software Foundation This product includes software developed by The Apache Software Foundation ( http://www.apache.org/ ).
  • Apache Jakarta Commons CLI 1.1 ~Copyright 2001-2007 The Apache Software Foundation This product includes software developed by The Apache Software Foundation ( http://www.apache.org/ ).
  • JYaml 1.3 ~Copyright (c) 2005, Yu Cheung Ho All rights reserved.
  • Java CC (生成されたソースコードを利用しています) https://javacc.dev.java.net/