RTCBuilderは、OpenRTM-aist に含まれる開発ツールの1つであり、RTCのプロファイル情報から、RTCのソースコードのひな型を生成することができます。C++、Python、Javaなどのプログラム言語に対応しています。また、Eclipse 統合開発環境のプラグインとして作成されており、 Eclipse 上にて既存のプラグインとシームレスに操作を行うことができます。
RTCBuilder の動作に必要な環境は以下のとおりです。
| № | 環境 | 備考 |
| 1 | Java Development Kit 6 | 注意:Java1.5(5.0)では動作しません。 |
| 2 | Eclipse 3.4.2以上 http://www.eclipse.org/downloads/index.php http://archive.eclipse.org/eclipse/downloads/index.php |
Eclipse 本体 |
| 3 | Eclipse EMF 2.4以上(SDO,XSD含む) | RTCBuilder が依存する Eclipse プラグイン ※ご使用になられる Eclipse のバージョンに合ったものをご使用ください。 |
| 4 | Eclipse GEF 3.4以上(Draw2D含む) | RTCBuilderが依存する Eclipse プラグイン ※ご使用になられる Eclipse のバージョンに合ったものをご使用ください。 |
| 5 | Eclipse Java development tools(JDT) | ※ご使用になられる Eclipse のバージョンに合ったものをご使用ください。 |
また以下の開発を行う言語によっては以下の環境をインストールしておくと便利です。
| № | 環境 | 備考 |
| 1 | Eclipse CDT | C++ 用の開発環境 |
| 2 | Pydev for Eclipse | python 用の開発環境 |
また以下のソフトウェアを導入することでドキュメントの生成、インストーラーの生成ができるようになります。
RTCBuilder は、OpenRTM-aist を対象に開発されたものです。その他の RTC プラットフォームに対する動作は想定しておりません。
インストール後、Eclipse を初めて起動すると、以下のような「ようこそ」画面が表示されます。
この「ようこそ」画面左上の「X」ボタンをクリックすると、以下のページが表示されます。 右上の [Open Perspective] ボタンをクリックし、プルダウンから「その他」を選択します。
「RTC Builder」を選択し、[OK] ボタンをクリックします。
RTCBuilder が起動します。
RTC プロファイルエディタを開くには、ツールバーの [Open New RtcBuilder Editor] ボタンをクリックするか、メニューバーの [ファイル] > [Open New Builder Editor] を選択します。
表示された新規プロジェクト作成ダイアログにて、プロジェクト名を入力します。
ここで作成したプロジェクト配下に RTCBuilder を用いて生成したコード、 RTCProfile などが保存されます。 プロジェクトは、デフォルトでは使用しているワークスペース配下に(「ロケーション」に設定されたディレクトリー内)作成されます。 任意の場所にプロジェクトを作成したい場合には、「デフォルト・ロケーションの使用」チェックボックスを OFF にし、「ロケーション」にて場所を指定してください。
指定した名称のプロジェクトが生成され、パッケージエクスプローラー内に追加されます。

生成したプロジェクト内には、デフォルト値が設定された RTC プロファイル XML(RTC.xml) が自動的に生成されます。
ここでは、RTプロファイルエディタについて説明します。
RTプロファイルエディタは、以下のページから構成されています。
| № | 画面要素名 | 説明 |
| 1 | 基本プロファイル入力ページ | RTコンポーネントのプロファイル情報など、コンポーネントの基本情報を入力します。 |
| 2 | アクティビティ・プロファイル | RTコンポーネントがサポートしているアクティビティ情報などを指定します。 |
| 3 | データポート・プロファイル | RTコンポーネントに付属するデータポートのプロファイルを入力します。 |
| 4 | サービスポート・プロファイル | RTコンポーネントに付属するサービスポートおよびサービスポートに付属するサービスインターフェースのプロファイルを入力します。 |
| 5 | コンフィギュレーション | RTコンポーネントに設定するユーザー定義のコンフィギュレーション・パラメーター報およびシステムのコンフィギュレーション情報を入力します。 |
| 6 | ドキュメント生成 | 生成対象の RTコンポーネントに追加する各種ドキュメント情報を入力します。 |
| 7 | 言語・環境 | 生成対象のコード選択や OS などの実行環境に関する情報を入力します。 |
| 8 | RTC.xml | 設定された情報を基に生成した RtcProfile の XML形式での表示・編集を行います。 |
RTコンポーネントのプロファイル情報など、コンポーネントの基本情報を入力するページです。
以下に各入力項目について説明いたします。
| 項目 | 説明 | 必須 |
| 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コンポーネントがサポートしているアクティビティに関する情報を入力するページです。
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コンポーネントに付属するデータポートの情報を入力するページです。
各ポート (InPort/OutPort) を新規に追加する場合は、各セクションの [Add] ボタンをクリックしてください。 また、各セクションの [Delete] ボタンをクリックすると、選択中のポートを削除することができます。 ドキュメントセクションの内容はポート毎に設定することが可能です。ドキュメントセクションには、選択中のポートに対応した内容が表示されます。 以下に各入力項目について説明いたします。
| 項目 | 説明 | 必須 |
| DataPortプロファイル | ||
| ポート名 | DataPort の名称です。半角英数字のみ入力可能です。 Data OutPort、Service Port と併せてポート名称は重複することができません。 |
○ |
| Detail | ||
| ポート名 | 現在選択されている Data Port を「ポート名(InPort/OutPort)」の形式で表示します。 | - |
| データ型 | DataPort が扱うデータ型です。 設定画面にて指定した IDL 内で定義されているデータ型が利用可能です。 |
○ |
| 変数名 | DataPort に対応する変数名です。 | - |
| 表示位置 | ビルドビュー内でのData InPortの表示位置です。 | ○ |
| 概要説明 | データポートに対する概要説明を記述します。 | - |
| データ型 | データポートの扱う型に対する説明を記述します。 | - |
| データ数 | データが配列になる場合など、データ数に関する説明を記述します。 | - |
| 意味 | データの意味の説明を記述します。 | - |
| 単位 | データ単位に関する説明を記述します。 | - |
| 発生頻度、周期 | データの発生頻度、周期に関する説明を記述します。 | - |
| 処理速度、周期 | データの処理速度、処理周期に関する説明を記述します。 | - |
RTコンポーネントに付属するサービスポートの情報を入力するページです。
新規サービスポートは、画面左側「 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 コンポーネントに設定するユーザー定義のコンフィギュレーション・パラメーター情報およびその他システムのコンフィギュレーション情報を入力するページです。
ユーザー定義コンフィギュレーション・パラメーター情報およびシステム・コンフィギュレーション情報を新規に追加する場合は、各セクションの [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コンポーネントに関する各種ドキュメント情報を入力します。

このページで入力された情報は、生成されたコードに doxygen 形式で埋め込まれます。
以下に各入力項目について説明いたします。
| 項目 | 説明 | 必須 |
| コンポーネント概要 | ||
| 概要説明 | 生成するRTコンポーネントの概要説明を記述します。 | - |
| 入出力 | RTコンポーネントの入出力に関する概略説明を記述します。 | - |
| アルゴリズムなど | RTコンポーネントが使用しているアルゴリズムなどの説明を記述します。 | - |
| その他 | ||
| 作成者・連絡先 | RTコンポーネントの作成者および連絡先に関する情報を記述します。 | - |
| ライセンス、使用条件 | RTコンポーネントのライセンス情報、使用条件に関する情報を記述します。 | - |
| 参考文献 | 参考文献情報を記述します。 | - |
| バージョンアップログ | ||
| VersionUp Log | 今回の変更内容に関するログ情報を記述します。 | - |
| ライセンス、使用条件 | 過去のバージョンアップ時のログ情報を表示します。 | - |
入力した RT コンポーネント仕様に基づき生成するテンプレート・ソースコードの言語選択や、OS 等の実行環境、依存ライブラリなどを入力するページです。
生成対象の言語ごとにセクションが分かれています。生成したい言語のセクションを選択し、各言語固有の設定情報を入力してください。 あるセクションを選択した場合には、他のセクションは全て閉じるようになっています。 コード生成実行時(基本プロファイル入力ページの [コード生成] ボタンクリック時)に選択されていたセクションの言語用テンプレートコードが生成されます。 以下に各入力項目について説明いたします。
| 項目 | 説明 | 必須 |
| 言語 | 生成対象の言語を指定します。 | ○ |
| 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 が利用する外部ライブラリの補足情報を指定します。 | - |
入力した RTコンポーネント仕様を記した XML ファイル (RTC.xml) の内容確認、編集を行うページです。 他のページで設定した内容を確認したり、GUI 画面からは入力できない項目を直接編集するために使用します。
表示される RTコンポーネント仕様の内容は、このページに切り替えた時に他ページで設定されている内容を基に作成されます。
画面右上の [Update] ボタンをクリックすると、このページで設定、変更した内容を他のページに反映させることができます (他のページへ反映させるのみで、ファイルへの書き込みは行いません) 。 また、以下のような画面が表示され、変更点を確認することができます。修正内容を他ページへ反映する場合には [OK] をクリックしてください。
このページで直接入力した内容は、このページを表示している状態で保存した場合のみ保存されます。 このページにて内容編集後、他ページを開いた状態で保存すると、他のページにて入力した項目が優先されます。 このページの内容を保存する場合には、RTC.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コンポーネントの設定内容をグラフィカルに表示するためのビューです。 ビルドビューの表示例を以下に示します。
「RTCBuilder」 パースペクティブ切り替え時にビルドビューが表示されていない場合、以下の手順にて表示することができます。 画面上部のメニューから [ウィンドウ] > [ビューの表示] > [その他] を選択。表示された 「ビューの表示」 画面にて、[OpenRTP Tools] > [BuildView] を選択。
生成対象 RTコンポーネントの各種プロファイル情報を設定した後、テンプレートコードの生成を行います。 基本プロファイル入力ページの [コード生成] ボタンをクリックすると、入力したプロファイル情報に応じたテンプレートコードの生成が行われます。
各言語を選択した際のコード生成実行時に生成されるテンプレートファイルは以下のとおりです。
| ファイル名 | 説明 |
| <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用) |
| ファイル名 | 説明 |
| <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 用プロパティ・ファイルです。 |
| ファイル名 | 説明 |
| <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用) |
| ファイル名 | 説明 |
| <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 は、生成したファイルと同名のファイルが出力先に既に存在し、既存ファイルと生成ファイルの間で出力内容に差異が存在する場合、どちらの出力を利用するかを選択する確認画面が表示されます。
※1 Mergeでは、<rtc-template block=”block”>タグで囲まれた範囲のみを最新の生成内容で上書します。生成したテンプレートは、ユーザーが変更しない範囲をあらかじめこのタグで囲んでいます。 このタグの中は変更後もマージすることで消えてしまいますので、修正しないようにしてください。
生成対象言語の開発環境用プラグインがインストールされている場合、コード生成実行後にパースペクティブ切り替えの確認メッセージが表示されます。 対象のプラグインがインストールされている場合には以下のようなメッセージが表示されますので、パースペクティブの切り替えを行うかどうかを選択してください。
※各言語用の開発環境用プラグインがインストールされており、出力対象プロジェクトが新規作成プロジェクトの場合は、各プロジェクトのプロパティに対象言語の属性が設定されます。
生成したテンプレートファイル、テンプレートファイルを基に作成した RT コンポーネントの実行用バイナリファイルなどを各種形式でアーカイブする機能です。 基本プロファイル入力ページの [パッケージ化] ボタンをクリックすると、パッケージング内容を設定するための「RTコンポーネント パッケージ化」画面が表示されます。
以下、各項目について説明いたします。
| 項目 | 説明 |
| 対象プロジェクト | パッケージング対象のプロジェクトを選択してください。 |
| 宛先ディレクトリ | パッケージングした成果物を出力するディレクトリーを入力してください。「参照」ボタンを使用することで、ディレクトリー選択ダイアログが表示されます。 |
| アーカイブ方式 | 作成するアーカイブの形式を選択してください。 |
| オプション | 各アクション内での動作に関する概要説明。省略可能項目。 |
| アーカイブ形式 | ZIP フォーマットを利用したアーカイブと、tar フォーマットを利用したアーカイブを作成することが可能です。使用するフォーマット形式を選択してください。 |
| アーカイブ内容の圧縮 | アーカイブ内容を圧縮する場合には、チェックボックスを ON にしてください。 |
| ディレクトリー構造 | アーカイブ対象プロジェクトのディレクトリ構造をそのまま保持した形でアーカイブを行うか、全てルートディレクトリに入れた形でアーカイブを行うかを選択してください。 |
※アーカイブ方式(「ソース」「バイナリ」「ソース+バイナリ」)ごとに、どのファイル種類をアーカイブに含めるかは、後述の「設定画面」にて設定することができます。
RTCBuilder では、RTC プロファイルエディタで入力した内容を RTC プロファイル XML(RTC.xml) に保存したり、保存した内容を再度読み込むことが可能です。
※[Save As…] を選んだ場合、任意のプロジェクト内に保存することが可能です。
RTC プロファイルエディタで入力、設定した内容を XML形式、 YAML形式で外部ファイルにエクスポート、エクスポートしたファイルをインポートする機能です。 基本プロファイル入力ページの [エクスポート] ボタンをクリックすると、プロファイル情報をエクスポートする先を選択するファイルダイアログが、[インポート] ボタンをクリックすると、インポート元のプロファイル情報を選択するファイルダイアログが表示されます。
※エクスポート処理時の形式は、「エクスポート」 ダイアログの 「ファイルの種類」 によって選択することが可能です。
ここでは RTCBuilder の各種設定について説明します。 RTCBuilder の設定画面は、画面上部メニューの [ウィンドウ] > [設定....] を選択して表示される「設定」画面から 「RTCBuilder」 を選択すると表示されます。
Data Port および Configuration パラメーターで設定するデータ型を定義した IDL ファイルの位置を設定することができます。 IDL 格納ディレクトリーを新規に追加する場合は、[新規] ボタンをクリックしてください。また、[除去] ボタンをクリックすると、選択中の IDL 格納ディレクトリーを削除することができます。 IDL 格納ディレクトリーの実際の位置は、「IDL File Directories」 欄内をクリックして表示されるディレクトリー選択画面にて選択してください。
RTC プロファイルエディタの基本プロファイル入力ページおよびコンフィギュレーション・プロファイル入力ページにて新規エディタ表示時、新規項目追加時にデフォルトで設定される内容を設定することができます。
なお、この設定画面中のデフォルト設定([デフォルトの復元] ボタンをクリックした際に設定される内容)は以下のとおりです。
| 項目 | デフォルト値 |
| 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 | |
RTC プロファイルエディタのデータポート・プロファイル入力ページおよびサービスポート・プロファイル入力ページにて新規項目を追加した際にデフォルトで設定される内容を設定することができます。
なお、この設定画面中のデフォルト設定([デフォルトの復元] ボタンをクリックした際に設定される内容)は以下のとおりです。
| 項目 | デフォルト値 |
| 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 |
RTC プロファイルエディタのコンフィギュレーション・プロファイル入力ページのシステム・コンフィギュレーション情報に表示される項目を設定することができます。
なお、この設定画面中のデフォルト設定([デフォルトの復元] ボタンをクリックした際に設定される内容)は以下のとおりです。
| 項目 | デフォルト値 |
| exec_cxt.periodic.type | PeriodicExecutionContext |
| exec_cxt.periodic.rate | 1000 |
| exec_cxt.evdriven.type | EventDrivenExecutionContext |
RT コンポーネントのパッケージング機能の各アーカイブ形式に含めるファイルを設定することができます。
設定画面はアーカイブ形式ごとのセクション(Source Export,Binary Export,Source+Binary Export)に分かれています。また、各セクションは拡張子指定部と、ファイル名指定部から構成されています。
拡張子指定部では、各アーカイブ形式に含めるファイルの拡張子を設定することができます。[タイプの選択] ボタンをクリックすると、以下のようなタイプ選択画面が表示されますので、アーカイブに含めたいファイルタイプを選択してください。
ファイル設定部ではアーカイブに含めるファイル名を設定することができます。「ファイル名」リスト下部の [Add] ボタンをクリックすると新しい行が追加されますので、アーカイブに含めたいファイル名を直接入力してください。また、[Delete] ボタンをクリックすると、選択している行を削除することができます。 上図の Export 設定画面(セクション)の例では、アーカイブ方式として 「Source+Binary」 を選択した際に、拡張子が 「cpp」 「h」であるファイルと、ファイル名が 「Makefile」 「README」 であるファイルをアーカイブに含める設定となります。 なお、この設定画面中のデフォルト設定([デフォルトの復元] ボタンをクリックした際に設定される内容)は以下のとおりです。
| 項目 | デフォルト値 |
| 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 内に表示されるアイコンの色情報を設定することができます。
それぞれの色設定ボタンにより、コンポーネント本体、DataInPort、DataOutPort、ServicePort、ServiceInterface の色設定を変更することが可能です。
各アクティビティの有効無効属性(ON/OFF)を設定することができます。
ここでは、OpenRTP(RTCBuilder、RTSystemEditorの総称)をアップデートする手順を説明します。OpenRTP は Eclipse のプラグインとして提供しているので、Eclipse 上で操作します。
Eclipse のメニューで、[ヘルプ] > [新規ソフトウエアのインストール] を選択します。
「インストール」ダイアログの [追加] ボタンをクリックし、リポジトリを追加します。名前とロケーションは以下のように指定します。OpenRTP 1.1.0 をチェックし [次へ] または [完了] ボタンをクリックします。
インストール途中で証明書の信頼についての問い合わせ画面が開きますので、レ点を入れて [OK] ボタンをクリックしてください。
インストール後は指示に従い再始動すると更新が反映されます。
すでに、生成したコンポーネントのプロジェクトに関しては、次の手順等で対処してください。
Linux や Mac なら単純に sed で置換します。
$ sed -ie 's/\"\${ALL_IDL_SRCS}\"/ALL_IDL_SRCS/' idl/CMakeLists.txtWindows でのビルド方法を説明します。
| Visual C++( バージョン 2005 以上 ) | vc++開発環境 |
| CMake( バージョン 2.8.5 以上 ) | 開発環境にあったビルドファイルを生成するツール |
| Doxygen | ドキュメンテーションジェネレーター |
| Graphviz | dot言語で記述したグラフ構造を画像に出力するツール |
| Wix Windows Installer XML toolset ( バージョン 3.5以上) | Windows Installer(MSI) パッケージを作成するためのツールセット |
Wix、Graphvizをインストールしたディレクトリ(C:\Program Files (x86)\WiX Toolset v3.11\bin、C:\Program Files (x86)\Graphviz2.44.1\bin)が環境変数PATHに設定されていない場合は設定してください。
Graphvizはインストール後にプラグインの登録状況を dot -v コマンドで確認して下さい。 手順については こちら のページをご覧ください。
ビルド手順を示します。 図は VC++ 2017 、CMake 3.14.1 です。
GUI 版 Cmake を起動してディレクトリーを指定します。
| Where is the source code | RTCBuilder で生成したコードのフォルダーを指定します。 |
| Where to build the binaries | ソリューション/プロジェクト/ワークスペースなどのファイルを出力するフォルダーを指定します。 |
[Configure] ボタンをクリックして実行します。その後、使用するプラットフォームを選択します。 例では「Visual Studio 15 2017」を選択しています。
ドキュメント生成のためにBUILD_DOCUMENTATIONオプションを有効にします。
Configure が正常終了したら、[Generate] ボタンをクリックします。
[Open Project]ボタンを押してソリューションファイル(*.sln)を開きます。
[ビルド] > [ソリューションのビルド] を実行してソリューションをビルドします。
ソリューションエクスプローラで「doc」を選び、右クリックします。 そこで「ビルド」を選択して実行します。
「Where to build the binaries」で指定したフォルダー配下の doc/html/doxygen/html にドキュメントが生成されます。
パッケージ生成には、CMake に同梱されている cpack と Wix を使用しています。
ソリューションエクスプローラで「PACKAGE」を選び、右クリックします。 そこで「ビルド」を選択して実行します。
「Where to build the binaries」で指定したフォルダー配下に msi 形式のイントールパッケージが生成されます。
<パッケージ名>_rtm120_win64.msi
このイントールパッケージを実行すると下記へインストールされます。
C:\Program Files\OpenRTM-aist\1.2.0\Components\<言語>\<カテゴリ名>\<パッケージ名>
事前に Java Development Kit 6 をインストールする必要があります。(注意:Java1.5(5.0)では動作しません。)
ant -f build_*****.xml (***** はモジュール名)
CMake には CPack によるインストーラーパッケージを作成する機能があります。 OpenRTP 1.2.0版 以降を使って生成した RTコンポーネントは、RTCBuilder で生成された CMake の設定を変更することなく、インストーラーパッケージを作成することができます。 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版 のダウンロードページで紹介しています。
インストーラー、パッケージ作成に必要なソフトウエアをインストールします。
OpenRTM-aist のインストール時に表示しているソフトウエア以外に、下記のソフトウエアをインストールする必要があります。
| WiX Toolset | msi インストーラーを作成するために必要です。 |
| Graphviz | ドキュメントにフローチャート、系統図などを含めることができます。 |
OpenRTM-aist を インストールする際に使ったスクリプトで必要なパッケージをインストールできます。
| pkg_install_ubuntu.sh pkg_install_debian.sh pkg_install_fedora.sh pkg_install_raspbian.sh |
$ sudo sh pkg_install_***.sh -l c++ -l python -c --yes |
Ubuntu、Debian、Fedora、Raspbian の 一括インストール手順はこちら をご覧ください。
Windows の場合、「RTCプロジェクト名+RTCのバージョン番号_OpenRTM-aist のバージョン番号_アーキテクチャ」で構成されます。 バージョン番号はドットを省いた形式で、[1.0.0] は [100] となります。
Linux の場合、「RTCプロジェクト名_RTCのバージョン番号_アーキテクチャ」で構成されます。
「RTCのバージョン番号」は、RTCBuilder の「基本」タブで指定した値になります。

作成したインストーラーパッケージを実行してインストールされる場所は、デフォルトで OpenRTM-aist のインストール先となります。 Windows 環境のみ、OpenRTM-aist をインストールする時のGUI画面で、任意にインストール先に変更することができます。
デフォルトのインストール先パスは、下記の条件で決まります。モジュールカテゴリは任意の文字列入力が可能です。

このRTCが「C++」の場合、Windows で OpenRTM-aist 1.2.0 の 32bit 版がインストールされている環境でインストーラーを作成すると、デフォルトのインストール先は以下となります。
C:\Program Files (x86)\OpenRTM-aist\1.2.0\Components\C++\Category\RobotController
Linux 環境でパッケージを作成すると、インストール先は以下となります。この例はモジュールカテゴリを「Controller」とした場合です。
/usr/share/openrtm-1.2/components/c++/Controller/RobotController
パッケージのメンテナー情報は、RTCBuilderの「ドキュメント生成」タブの「作成者・連絡先」で入力された内容が反映されます。 書式は「name <mail address>」で入力する必要があります。名前はローマ字表記、メールアドレスは < > で括る必要があります。 空欄の場合は「unknown」となります。(デフォルトは空欄です)
msi インストーラーは Visual Studio でビルドして作成します。
※デフォルトでは、ドキュメントビルドは OFF になっているため生成されません。
Visual Studio のソリューション エクスプローラーから「PACKAGE」を右クリックして「ビルド」を選択し実行します。
プロジェクトフォルダー直下にある CMakeLists.txt の下記の行を、OFF → ON に書き換えます。
C++ RTC の場合は 86行目あたり、Python RTC の場合は 77行目あたりです。
option(BUILD_DOCUMENTATION "Build the documentation" ON) ※この行の OFF を ON に書き換えます。(デフォルトは OFF)
正常に作成できた場合は、プロジェクトディレクトリーの [build] 内に保存されます。
ファイル名は、「RTCプロジェクト名+RTCのバージョン番号_OpenRTM-aist のバージョン番号_アーキテクチャ」となります。
(例) Flip100_rtm120_win64.msi
※アーキテクチャは、[win32] または [win64] となります。
バージョン番号は、ドットを省いた形式で、[1.0.0] は [100] となります。
サービスポートを持つ Python RTC は、パッケージインストール時に IDL コンパイルを実行します。 IDL コンパイル実行時にプロジェクトフォルダー内にある idlcompile.bat、delete.bat でこの動作を実現させているため、これらのファイルを削除してしまうと機能しなくなってしまうので注意が必要です。
コントロールパネルからアンインストールすることで、IDL コンパイル実行後に生成したファイルも削除されます。
以下、msi インストーラーによりインストールされるファイル一覧です。★マークが IDL コンパイルで生成されるファイルです。
tree /f インストールディレクトリー\OpenRTM-aist\1.2.0\Components\Python\Category\FlipGUI
C:\インストールディレクトリー\OpenRTM-aist\1.2.0\Components\Python\Category\FlipGUI
│ BasicDataType_idl.py ★
│ CalibrationService_idl.py ★
│ delete.bat
│ ExtendedDataTypes_idl.py ★
│ idlcompile.bat
│ InterfaceDataTypes_idl.py ★
│ RTC.xml
│ rtutil.py
│ setup.py
│ flipgui.py
│ FlipGUIComp.py
│
├─idl
│ BasicDataType.idl
│ CalibrationService.idl
│ CMakeLists.txt
│ ExtendedDataTypes.idl
│ InterfaceDataTypes.idl
│
├─ImageCalibService ★
│ __init__.py ★
│
├─ImageCalibService__POA ★
│ __init__.py ★
│
├─RTC ★
│ __init__.py ★
│
└─RTC__POA ★
__init__.py ★deb パッケージの作成方法を以下に示します。
※デフォルトでは、ドキュメントビルドは OFF になっているため生成されません。
$ cd プロジェクトディレクトリー $ mkdir build $ cd build $ cmake .. $ make $ cpack
$ cd プロジェクトディレクトリー $ mkdir build $ cd build $ cmake .. $ cpack
プロジェクトディレクトリー直下にある CMakeLists.txt の下記の行を、OFF → ON に書き換えます。
C++ RTC の場合は 86行目あたり、Python RTC の場合は 77行目あたりです。
option(BUILD_DOCUMENTATION "Build the documentation" ON) ※この行の OFF を ON に書き換えます。(デフォルトは OFF)
$ cd プロジェクトディレクトリー $ mkdir build $ cd build $ cmake .. $ make $ make doc $ cpack
$ cd プロジェクトディレクトリー $ mkdir build $ cd build $ cmake .. $ make doc $ cpack
【注意事項】
ドキュメントビルドを ON にして、「make doc」 をせずに 「cpack」 を実行すると以下のようなエラーになります。
CMake Error at /home/プロジェクトディレクトリー/build/doc/cmake_install.cmake:36 (file): file INSTALL cannot find "/home/プロジェクトディレクトリー/build/doc/html/doxygen/html".
正常に作成できた場合は、プロジェクトディレクトリーの [build] 内に保存されます。
ファイル名は、「RTCプロジェクト名_RTCのバージョン番号_アーキテクチャ」となります。
(例) Flip_1.2.0_amd64.deb
※アーキテクチャは、[i386] または [amd64] となります。
$ cd プロジェクトディレクトリー/build
$ less Flip_1.2.0_amd64.deb
Flip_1.2.0_amd64.deb
新形式 debian パッケージ、バージョン 2.0。
サイズ 258304 バイト: コントロールアーカイブ = 2797 バイト。
162 バイト、 9 行 control
10062 バイト、 92 行 md5sums
Package: affine
Version: 1.2.0
Section: devel
Priority: optional
Architecture: amd64
Installed-Size: 884
Maintainer: unknown ※パッケージメンテナー情報を定義していないと「unknown」になります
Description: Flip image componentless を終了させるには「q」を押します。
$ sudo apt-get install tree
$ cd プロジェクトディレクトリー/build
$ dpkg -x Flip_1.2.0_amd64.deb .
$ tree usr
usr
└─ share
└─ openrtm-1.2
└─ components
└─ python
└─ Category ※指定したインストール先ディレクトリー
└─ FlipGUI
├─ RTC.xml
├─ FlipGUIComp.py
├─ idl
│ ├─ BasicDataType.idl
│ ├─ CMakeLists.txt
│ ├─ CalibrationService.idl
│ ├─ ExtendedDataTypes.idl
│ └─ InterfaceDataTypes.idl
├─ idlcompile.sh
├─ rtutil.py
├─ setup.py
└─ flipgui.pyインストールは以下のコマンドを実行します。
$ cd プロジェクトディレクトリー/build $ sudo dpkg -i Flip_1.2.0_amd64.deb
アンインストールは以下のコマンドを実行します。
$ sudo dpkg -r Flip
サービスポートを持つ Python RTC は、パッケージインストール時に IDL コンパイルを実行します。 IDL コンパイル実行時に、プロジェクトディレクトリー内にある postinst.in、prerm.in でこの動作を実現させているため、これらのファイルを削除してしまうと機能しなくなるので注意が必要です。
以下、debパッケージからインストールされるファイル一覧です。★マークが IDL コンパイルで生成されるファイルです。
$ tree /usr/share/openrtm-1.2/components/python/Category/FlipGUI/ /usr/share/openrtm-1.2/components/python/Category/FlipGUI/ ├─ BasicDataType_idl.py ★ ├─ CalibrationService_idl.py ★ ├─ ExtendedDataTypes_idl.py ★ ├─ ImageCalibService ★ │ └─ __init__.py ★ ├─ ImageCalibService__POA ★ │ └─ __init__.py ★ ├─ InterfaceDataTypes_idl.py ★ ├─ RTC ★ │ └─ __init__.py ★ ├─ RTC.xml ├─ RTC__POA ★ │ └─ __init__.py ★ ├─ FlipGUIComp.py ├─ idl │ ├─ BasicDataType.idl │ ├─ CMakeLists.txt │ ├─ CalibrationService.idl │ ├─ ExtendedDataTypes.idl │ └─ InterfaceDataTypes.idl ├─ idlcompile.sh ├─ rtutil.py ├─ setup.py └─ flipgui.py
rpm パッケージの作成方法を以下に示します。
※デフォルトでは、ドキュメントビルドは OFF になっているため生成されません。
$ cd プロジェクトディレクトリー $ mkdir build $ cd build $ cmake .. $ make $ cpack
$ cd プロジェクトディレクトリー $ mkdir build $ cd build $ cmake .. $ cpack
プロジェクトディレクトリー直下にある CMakeLists.txt の下記の行を、OFF → ON に書き換えます。
C++ RTC の場合は 86行目あたり、Python RTC の場合は 77行目あたりです。
option(BUILD_DOCUMENTATION "Build the documentation" ON) ※この行の OFF を ON に書き換えます。(デフォルトは OFF)
$ cd プロジェクトディレクトリー $ mkdir build $ cd build $ cmake .. $ make $ make doc $ cpack
$ cd プロジェクトディレクトリー $ mkdir build $ cd build $ cmake .. $ make doc $ cpack
【注意事項】
ドキュメントビルドを ON にして、「make doc」 をせずに 「cpack」 を実行すると以下のようなエラーになります。
CMake Error at /home/プロジェクトディレクトリー/build/doc/cmake_install.cmake:36 (file): file INSTALL cannot find "/home/プロジェクトディレクトリー/build/doc/html/doxygen/html".
正常に作成できた場合は、プロジェクトディレクトリー内の [build] に保存されます。
ファイル名は、「RTCプロジェクト名-RTCのバージョン番号-アーキテクチャ」となります。
(例) Flip-1.2.0-x86_64.rpm
※アーキテクチャは、[i686] または [x86_64] となります。
$ cd プロジェクトディレクトリー/build $ less Flip-1.2.0-x86_64.rpm Name : Flip Version : 1.2.0 Release : 1 Architecture: x86_64 Install Date: (not installed) Group : unknown Size : 506080 License : unknown Signature : (none) Source RPM : Flip-1.2.0-1.src.rpm Build Date : 2017年xx月xx日 xx時xx分x秒 Build Host : localhost Relocations : /usr Vendor : AIST Summary : Flip image component Description : DESCRIPTION
less を終了させるには「q」を押します。
$ sudo apt-get install tree
$ cd プロジェクトディレクトリー/build
$ dpkg -x Flip-1.2.0-x86_64.rpm .
$ tree usr
usr
└─ share
└─ openrtm-1.2
└─ components
└─ python
└─ Category ※指定したインストール先ディレクトリー
└─ FlipGUI
├─ RTC.xml
├─ FlipGUIComp.py
├─ idl
│ ├─ BasicDataType.idl
│ ├─ CMakeLists.txt
│ ├─ CalibrationService.idl
│ ├─ ExtendedDataTypes.idl
│ └─ InterfaceDataTypes.idl
├─ idlcompile.sh
├─ rtutil.py
├─ setup.py
└─ flipgui.pyインストールは以下のコマンドを実行します。
$ cd プロジェクトディレクトリー/build $ sudo rpm -i Flip-1.2.0-x86_64.rpm
アンインストールは以下のコマンドを実行します。
$ sudo rpm -e Flip
サービスポートを持つ Python RTC は、パッケージインストール時に IDL コンパイルを実行します。 IDL コンパイル実行時に、プロジェクトディレクトリー内にある postinst.in、prerm.in でこの動作を実現させているため、これらのファイルを削除してしまうと機能しなくなるので注意が必要です。
以下、rpm パッケージからインストールされるファイル一覧です。★マークが IDL コンパイルで生成されるファイルです。
$ tree /usr/share/openrtm-1.2/components/python/Category/FlipGUI/ /usr/share/openrtm-1.2/components/python/Category/FlipGUI/ ├─ BasicDataType_idl.py ★ ├─ CalibrationService_idl.py ★ ├─ ExtendedDataTypes_idl.py ★ ├─ ImageCalibService ★ │ └─ __init__.py ★ ├─ ImageCalibService__POA ★ │ └─ __init__.py ★ ├─ InterfaceDataTypes_idl.py ★ ├─ RTC ★ │ └─ __init__.py ★ ├─ RTC.xml ├─ RTC__POA ★ │ └─ __init__.py ★ ├─ FlipGUIComp.py ├─ idl │ ├─ BasicDataType.idl │ ├─ CMakeLists.txt │ ├─ CalibrationService.idl │ ├─ ExtendedDataTypes.idl │ └─ InterfaceDataTypes.idl ├─ idlcompile.sh ├─ rtutil.py ├─ setup.py └─ flipgui.py