RTCBuilder-1.1.0

RTCBuilder-1.1.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.4以上(SDO,XSD含む) RTCBuilderが依存するEclipseプラグイン
ご使用になられるEclipseのバージョンに合ったものをご使用ください。
Eclipse GEF 3.4以上(Draw2D含む) RTCBuilderが依存する Eclipse プラグイン
ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
Eclipse Java development tools(JDT) ご使用になられる Eclipse のバージョンに合ったものをご使用ください。

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

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

RTC 作成の流れ (C++ 言語の場合)

C++ 言語で RTC を作成する場合、以下のツールが必要となります。
  1. RTCBuilder のコード生成により ソースコードの雛型と CMake の入力に必要なファイルを出力します。
  2. RTCBuilder が生成したコードから CMake により、ユーザの開発環境にあったビルドファイル(Visual Studio ソリューションファイルや GCC の Unix Makefiles など ) を生成します。
  3. CMake によって生成されたビルドファイルとソースコードからコンポーネント(dll や so)を生成します。

制限

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の初期起動時画面


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

表示された新規プロジェクト作成ダイアログにて、プロジェクト名を入力します。

CreateProject2.png
RTCBuilder 用プロジェクトの作成 1


ここで作成したプロジェクト配下にRTCBuilderを用いて生成したコード、RTCProfileなどが保存されます。プロジェクトは、デフォルトでは使用しているワークスペース配下に(「ロケーション」に設定されたディレクトリ内)作成されます。任意の場所にプロジェクトを作成したい場合には、「デフォルト・ロケーションの使用」チェックボックスをOFFにし、「ロケーション」にて場所を指定してください。


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

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


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

画面構成と機能(概要)

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 コンポーネントのプロファイル情報など、コンポーネントの基本情報を入力するページです。

editor-basic.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コンポーネントを区別する必要がある場合に指定します。

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

生成対象の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:ラジオボタン
・check:チェックボックス
・ordered_list:順序付きリスト
Step 入力用コントロールとして、「slider」を選択した場合に、スライダの刻み幅を指定します。
パラメータ名 現在選択されているユーザ定義コンフィギュレーション・パラメータを表示します。
データ名 ユーザ定義コンフィギュレーション・パラメータの名称に対する説明を記述します。
デフォルト値 ユーザ定義コンフィギュレーション・パラメータのデフォルト値に対する説明を記述します。
概要説明 ユーザ定義コンフィギュレーション・パラメータに対する概要説明を記述します。
単位 ユーザ定義コンフィギュレーション・パラメータの単位に対する説明を記述します。
データレンジ ユーザ定義コンフィギュレーション・パラメータのデータ範囲に関する説明を記述します。
制約条件 ユーザ定義コンフィギュレーション・パラメータの制約条件に関する説明を記述します。
RT-Component Configuration Parameter
Configuration 設定を行うコンフィギュレーション名です。一覧から選択します。
デフォルト値 設定対象コンフィギュレーションのデフォルト値です。予めデフォルト値が設定されている項目については、名称選択時にデフォルト値が設定されます。

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

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

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


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

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

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

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

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

editor-lang.png
言語・環境情報入力ページ


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

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

項目 説明 必須
言語 生成対象の言語を指定します。
Use old build environment. このチェックボックスをONにすると、旧バージョンと同様なコード(Cmakeを利用しない形式)を生成します。
環境
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コンポーネントの各種プロファイル情報を設定した後、テンプレートコードの生成を行います。 基本プロファイル入力ページの「 コード生成 」ボタンをクリックすると、入力したプロファイル情報に応じたテンプレートコードの生成が行われます。

CodeGen.png
テンプレートコードの生成


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

生成ファイル一覧

  • C++ ( 「 Use old build environment. 」のチェックボックスを ON しない場合 )
ファイル名 説明
<RTC名> Comp.cpp RT コンポーネントを起動するコードです。
<RTC名>.h RT コンポーネント本体のヘッダです。
<RTC名>.cpp RT コンポーネント本体のコードです。
<サービス型名>SVC_impl.h サービスプロバイダのヘッダです。(
ServiceProvider にて指定された Type のみが出力されます。
<サービス型名>SVC_impl. cpp サービスプロバイダの実装コードです。(
ServiceProvider にて指定された Type のみが出力されます。
CMakeLists.txt CMake 用の設定ファイルファイルです。
doc/
doxyfile.in Doxygen 用の設定ファイルファイルです。
cmake/
 uninstall_target.cmake.in アンインストールターゲット追加の雛形ファイル(CMake用)
 cpack_options.cmake WiXパッケージ作成用モジュール(CMake/WiX用)
 License.rtf パッケージ情報に含まれるライセンス表示(CMake/WiX用)
 wix.xsl.in WiXパッケージに含めるファイルを指定するテンプレート(CMake/WiX用)
cmake/Modules/
 FindOpenRTM.cmake OpenRTM-aist環境設定取得用モジュール(CMake用)
  • C++ ( 「 Use old build environment. 」のチェックボックスを ON した場合 )
ファイル名 説明
<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 サービスプロバイダの実装クラスです。(
CMakeLists.txt CMake 用の設定ファイルファイルです。
doc/
doxyfile.in Doxygen 用の設定ファイルファイルです。
cmake_modules/
 cmake_javacompile.cmake.in Javaコンパイルターゲット追加の雛形ファイル(CMake用)
 FindOpenRTMJava.cmake OpenRTM-aist-Java環境設定取得用モジュール(CMake用)
cmake/
 uninstall_target.cmake.in アンインストールターゲット追加の雛形ファイル(CMake用)
 cpack_options.cmake WiXパッケージ作成用モジュール(CMake/WiX用)
 License.rtf パッケージ情報に含まれるライセンス表示(CMake/WiX用)
cpack_resources/
 wix.xsl.in WiXパッケージに含めるファイルを指定するテンプレート(CMake/WiX用)
  • Python
ファイル名 説明
<RTC名>.py RT コンポーネントのコードです。
<サービス型名>_idl.py
<サービス型名>_idl_example.py サービスプロバイダの実装ファイルです。(
CMakeLists.txt CMake 用の設定ファイルファイルです。
doc/
doxyfile.in Doxygen 用の設定ファイルファイルです。
cmake_modules/
 FindOpenRTMPython.cmake OpenRTM-aist-Python環境設定取得用モジュール(CMake用)
cmake/
 uninstall_target.cmake.in アンインストールターゲット追加の雛形ファイル(CMake用)
 cpack_options.cmake WiXパッケージ作成用モジュール(CMake/WiX用)
 License.rtf パッケージ情報に含まれるライセンス表示(CMake/WiX用)
cpack_resources/
 Description.txt パッケージ情報に含まれる説明(CMake用)
 License.txt パッケージ情報に含まれるライセンス表示(CMake/Linux用)
 wix.xsl.in WiXパッケージに含めるファイルを指定するテンプレート(CMake/WiX用)
 ※ 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設定画面

コンパイル方法 (Windows、CMake 利用 )

Windows でのビルド方法を説明します。

環境準備

環境

Visual C++( バージョン 2005 以上 ) vc++開発環境
CMake( バージョン 2.8.5 以上 ) 開発環境にあったビルドファイルを生成するツール
Doxygen ドキュメンテーションジェネレータ
Wix Windows Installer XML toolset ( バージョン 3.0 または 3.5) Windows Installer(MSI) パッケージを作成するためのツールセット

バージョンの組み合せ

Visual C++ と Wix はバージョンの組み合せが存在します。

VC++ Wix
2010 3.5
2008 3.0
2005 3.0

ビルド手順

ビルド手順を示します。 図は VC++ 2005 、 CMake 2.8.5 です。

Cmake の設定

GUI 版 Cmake を起動してディレクトリを指定します。

Where is the source code RTCBuilder で生成したコードのフォルダを指定します。
Where to build the binaries ソリューション/プロジェクト/ワークスペースなどのファイルを出力するフォルダを指定します。

Clipboard09.png
ディレクトリを指定


Configure の実行

「Configure」を実行して、使用するプラットフォームを選択します。 例では、「Visual Studio 9 2008」を選択しています。

Clipboard04.png
プラットフォームの選択


Generate の実行

Configure が正常終了したら、「Generate」を実行します。

Clipboard05.png
「Generate」の実行


VC++ の実行

「Where to build the binaries」で指定したフォルダ内にある ソリューションファイル(*.sln)を開きます。

Clipboard06.png
ソリューションファイルを開く


ビルドの実行

[ビルド(B)]-[ソリューションのビルド(B)] を実行してソリューションをビルドします。

Clipboard08.png
ビルドの実行


ドキュメント生成手順

doxygen の実行

ソリューションエクスプローラで doxygen を選び、右クリックします。 そこでビルドを選択して実行します。

Clipboard10.png
doxygen の実行


ドキュメント

「Where to build the binaries」で指定したフォルダ配下の doc/html にドキュメントが生成されます。

Clipboard13.png
ドキュメント例


パッケージ生成手順

パッケージ生成には、CMake に同梱されている cpack と Wix を使用していますが、 cpack は、 Wix に対応しておらず、通常のままですと、パッケージ生成ことができません。 その対応として、以下ファイルを展開して、C:\Program Files\CMake 2.8 のものと差し替えてください。

CMake patch (for Wix 3.0)

doxygen の実行

ソリューションエクスプローラで doxygen を選び、右クリックします。 そこでビルドを選択して実行します。

Clipboard10.png
doxygen の実行


PACKAGE ビルドの実行

ソリューションエクスプローラで PACKAGE を選び、右クリックします。 そこでビルドを選択して実行します。

Clipboard15.png
PACKAGE ビルドの実行


パッケージ

「Where to build the binaries」で指定したフォルダ配下に msi 形式のイントールパッケージが生成されます。

rtc1.1.0-<パッケージ名>.msi

このイントールパッケージを実行すると下記へインストールされます。

C:\Program Files\OpenRTM-aist\1.1\components\<言語>/<パッケージ名>

添付サイズ
パッケージアイコン cmake-2.8-WiX-patch_v30.zip1.09 MB

その他

その他

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/

更新方法

ここでは、OpenRTP(RTCBuilder, RTSystemEditorの総称)をアップデートする手順を説明します。OpenRTPはEclipseのプラグインとして提供しておりますので、Eclipse上で操作します。

OpenRTPの更新

Eclipseのメニューで、「ヘルプ」→「新規ソフトウエアのインストール」を選択します。

openrtp_01.jpg

「インストール」ダイアログの「追加」ボタンを押しリポジトリを追加します。名前とロケーションは以下のように指定します。

OpenRTP 1.1.0 をチェックし「次へ」または「完了」を押します。
インストール途中で証明書の信頼についての問い合わせ画面がひらきますので、レ点を入れてOKを押して下さい。

openrtp_03.jpg

インストール後は指示に従い再始動すると更新が反映されます。

既存のコンポーネントへの反映方法

すでに、生成したコンポーネントのプロジェクに関しては、次の手順等で対処して下さい。

  • eclipseにもう一度読み込んでコードを再生成する(eclipse上でいったんプロジェクトを削除し、改めてインポートする)
  • eclipseのパッケージ・エクスプローラ画面で、プロジェクト内のRTC.xmlをダブルクリックし、コード生成ボタンを押す
  • この時diff画面が表示されるので、idl/CMakeLists.txt のみを更新する

LinuxやMacなら単純にsedで置換する

 $ sed -ie 's/\"\${ALL_IDL_SRCS}\"/ALL_IDL_SRCS/' idl/CMakeLists.txt

CPackを使ったパッケージ作成(Windows/Linuxでの共通設定)

はじめに

OpenRTP 1.2.0版以降を使って生成したRTコンポーネントは、CMakeのCPackによるインストーラパッケージ作成機能が 整えられています。RTCBuilderで生成されたCMakeの設定を変更することなく、実行環境によってmsi、 deb、 rpm の各パッケージを作成できます。Windows環境で実行すればmsi形式のインストーラーを、 LinuxのUbuntu、またはDebian環境ならばdebパッケージを、Fedora環境ならばrpmパッケージを作成できるということです。

(注)ただし、OpenRTP 1.2.0版でこのパッケージ作成機能が整備されているのは C++またはPythonのRTCのみで、 JavaのRTC生成時は対応しておりません

OpenRTP 1.2.0版のインストールは、OpenRTM-aist 1.2.0版のダウンロードページで紹介しています。

Windows/Linuxでの共通設定

インストーラパッケージ名

ファイル名は「RTCプロジェクト名」「RTCのバージョン番号」「アーキテクチャ」で構成されています。 
Windows用のmsiのみ、インストールされているOpenRTM-aistのバージョン番号を含んでいます。番号はドットを省いた形式で、[1.0.0] -> [100] となります。

例として、プロジェクト名はRobotControllerで、バージョン番号は1.0.0、OpenRTM-aist 1.2.0版の環境で生成したパッケージ名は以下のようになります。

  • RobotController100_rtm120_win32.msi (Windows 32bit用)
  • RobotController100_rtm120_win64.msi (Windows 64bit用)
  • robotcontroller_1.0.0_i386.deb(Ubuntu、Debian 32bit用)
  • robotcontroller_1.0.0_amd64.deb(Ubuntu、Debian 64bit用)
  • RobotController-1.0.0-i686.rpm(Fedora 32bit用)
  • RobotController-1.0.0-x86_64.rpm(Fedora 64bit用)

「RTCのバージョン番号」は、RTCBuilderの基本タブで指定した値になります。

version.png
RTCのバージョン番号

バージョン番号は、プロジェクトディレクトリ直下のCMakeLists.txtを直接編集しても変更可能です

 project(RobotController)
 string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
 include("${PROJECT_SOURCE_DIR}/cmake/utils.cmake")
 set(PROJECT_VERSION 1.0.0 CACHE STRING "RobotController version")   ←★

インストール先ディレクトリの指定

生成したインストーラパッケージを実行してインストールされる場所は、デフォルトでOpenRTM-aistのインストール先となります。 Windows環境のみインストール時のGUI画面にて、任意のインストール先に変更することができます。

デフォルトのインストール先パスは、下記の条件で決まります。
  • インストーラパッケージを作成した環境にインストールされているOpenRTM-aistのパス
  • RTCの言語
  • RTC生成時、基本タブで指定したモジュールカテゴリ(デフォルトは Category)

モジュールカテゴリは任意の文字列入力が可能です。

category.png
モジュールカテゴリ名を「Controller」に

このRTCが「C++」の場合、WindowsでOpenRTM-aist 1.2.0 の32bit版がインストールされている環境でインストーラを生成すると、そのデフォルトのインストール先は以下となります。

 C:\Program Files (x86)\OpenRTM-aist\1.2.0\Components\C++\Category\RobotController

Linux環境でパッケージを生成すると、そのインストール先は以下となります。

 /usr/share/openrtm-1.2/components/c++/Controller/RobotController

パッケージメンテナー情報