RTCBuilder-1.2.0

RTCBuilder-1.2.0 とは

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

概要・RTC作成の流れ

動作環境

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 用の開発環境

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 を初めて起動すると、以下のような「ようこそ」画面が表示されます。

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


この「ようこそ」画面左上の「X」ボタンをクリックすると、以下のページが表示されます。 右上の [Open Perspective] ボタンをクリックし、プルダウンから「その他」を選択します。

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


「RTC Builder」を選択し、[OK] ボタンをクリックします。

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


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 の画面構成要素

画面要素一覧

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


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

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

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


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

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

№ 画面要素名 説明
1 基本プロファイル入力ページ RTコンポーネントのプロファイル情報など、コンポーネントの基本情報を入力します。
2 アクティビティ・プロファイル RTコンポーネントがサポートしているアクティビティ情報などを指定します。
3 データポート・プロファイル RTコンポーネントに付属するデータポートのプロファイルを入力します。
4 サービスポート・プロファイル RTコンポーネントに付属するサービスポートおよびサービスポートに付属するサービスインターフェースのプロファイルを入力します。
5 コンフィギュレーション RTコンポーネントに設定するユーザー定義のコンフィギュレーション・パラメーター報およびシステムのコンフィギュレーション情報を入力します。
6 ドキュメント生成 生成対象の RTコンポーネントに追加する各種ドキュメント情報を入力します。
7 言語・環境 生成対象のコード選択や OS などの実行環境に関する情報を入力します。
8 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 が利用する外部ライブラリの補足情報を指定します。 -
[Add] ボタンをクリックすると、一覧中に項目行が追加されます。そして、追加された行をクリックすると、ファイル選択ダイアログが表示されるますので対象ファイルを選択してください。

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] を選択
  • メニューバーの [ファイル] > [ファイルを開く…] を選択
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 格納ディレクトリーを新規に追加する場合は、[新規] ボタンをクリックしてください。また、[除去] ボタンをクリックすると、選択中の 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 設定画面

更新方法

ここでは、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

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

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

環境準備

環境

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 です。

Cmake の設定

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

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

rtm30.png
ディレクトリーを指定


Configure の実行

[Configure] ボタンをクリックして実行します。その後、使用するプラットフォームを選択します。 例では「Visual Studio 15 2017」を選択しています。

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


BUILD_DOCUMENTATIONを有効にする

ドキュメント生成のためにBUILD_DOCUMENTATIONオプションを有効にします。

rtm34.png
BUILD_DOCUMENTATIONを有効化


Generate の実行

Configure が正常終了したら、[Generate] ボタンをクリックします。

rtm32.png
Generate の実行


VC++ の実行

[Open Project]ボタンを押してソリューションファイル(*.sln)を開きます。

ビルドの実行

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

rtm35.png
ビルドの実行


ドキュメント生成手順

doxygen の実行

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

rtm36.png
doxygen の実行


ドキュメント

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

rtm37.png
ドキュメント例


パッケージ生成手順

パッケージ生成には、CMake に同梱されている cpack と Wix を使用しています。

PACKAGE ビルドの実行

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

rtm38.png
PACKAGE ビルドの実行


パッケージ

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

<パッケージ名>_rtm120_win64.msi

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

C:\Program Files\OpenRTM-aist\1.2.0\Components\<言語>\<カテゴリ名>\<パッケージ名>

コンパイル方法 (Windows、Java 編 )

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

準備

事前に Java Development Kit 6 をインストールする必要があります。(注意:Java1.5(5.0)では動作しません。)

RTC Builder からのビルド手順

  1. RTCプロファイルエディタ画面で、[言語・環境] タブを開き、 [Java] を選択します。

    20%


  2. [基本タブ] を開き、[コードの生成] ボタンをクリックしてコードを生成します。

    20%


  3. コード生成対象言語の開発環境用プラグインがインストールされている場合、以下の確認メッセージが表示されるので [はい] をクリックします。その後、表示されたダイアログで [Java(デフォルト)] を選択し [OK] ボタンをクリックします。
    Java 言語の場合は、JDT(Java Development Tools) があらかじめ Eclipse に含まれています。

    20%

    20%


  4. パッケージエクスプローラー内に、プロジェクトの情報が表示されますが、一部表示されていないため、メニューから [ファイル] > [更新] を選択するか、パッケージエクスプローラー内で [F5] キーをクリックして情報を更新します。

  5. [build_モジュール名.xml] のファイルを右クリックし、[実行] > [1 Ant ビルド] を選択します。

    20%


  6. ビルドが実行され、コンソール画面にビルド結果が表示されます。

    20%


コマンドプロンプトからのビルド手順

  1. Apache Ant を以下のサイトからダウンロードします。Apache Ant とはビルドを実行するためのソフトウェアです。Eclipse には Ant プラグインが標準で内蔵されていますが、コマンドプロンプトからビルドを実行するためにはダウンロードする必要があります。

    ダウンロード:the Apache Ant Website

  2. Zipファイルを解凍して、フォルダー名を任意に変更します。(例:apache-ant-x.xx.x → ant )

  3. 任意のフォルダーに移動します。(例:C:\Program Files\ant )

  4. 環境変数を設定します。(画面は Windows10 のものです)
    1. システムのプロパティ画面を開き、[環境変数] ボタンをクリックします。

      system-property_01.png


    2. 「システム環境変数」で [新規] ボタンをクリックします。

      system-property_02.png


    3. 変数名に「ANT_HOME」、変数値に「C:\Program Files\ant」を入力し [OK] ボタンをクリックします。 ※変数値は ant フォルダーのパスを指定します。

      system-property_03.png


    4. 「システム環境変数」一覧から、変数名「Path」を選択し、[編集] ボタンをクリックします。

      system-property_04.png


    5. [新規] ボタンをクリックして、「%ANT_HOME%\bin」と入力し [OK] ボタンをクリックします。

      system-property_05.png


    6. JAVA_HOME を設定します。すでに設定されている場合は不要です。
      「システム環境変数」で [新規] ボタンをクリックします。

      system-property_02.png


    7. 変数名に「JAVA_HOME」、変数値に「C:\Program Files\Java\jdkx.x.x.x_xxx」を入力し [OK] ボタンをクリックします。
      ※変数値は Java のインストール先フォルダーのパスを指定します。

      system-property_06.png


    8. システムのプロパティ画面に戻り、[OK] ボタンをクリックして画面を閉じます。

  5. PC を再起動します。

  6. 再起動後、コマンドプロンプトを起動し、「ant -version」と入力して Apache Ant のバージョンを確認してください。

    system-property_07.png


  7. 同様に「java -version」と入力し、Java のバージョンを確認してください。

    system-property_08.png


  8. コマンドプロンプトからビルドします。
    指定した RTCプロジェクトのフォルダーで、以下のコマンドを入力するとビルドが開始されます。
     ant -f  build_*****.xml  (***** はモジュール名)
    ビルドに成功すると、以下の表示となります。

    system-property_09.png


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

はじめに

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版 のダウンロードページで紹介しています。

事前準備

インストーラー、パッケージ作成に必要なソフトウエアをインストールします。

Windows 環境

OpenRTM-aist のインストール時に表示しているソフトウエア以外に、下記のソフトウエアをインストールする必要があります。

WiX Toolset msi インストーラーを作成するために必要です。
Graphviz ドキュメントにフローチャート、系統図などを含めることができます。

WiX Toolset のインストール

  1. インストーラーを起動し、[install] ボタンをクリックしてインストールを開始します。

    WiX Toolset 1-1.png

  2. [install] ボタンに「Complete」と表示されるとインストール完了です。[Exit] ボタンをクリックします。

    WiX Toolset 2-1.png

Graphviz のインストール

  1. インストーラーを起動し、[Next] ボタンをクリックします。

    Graphviz 1-1.png

  2. インストールフォルダーを任意に変更して、[Next] ボタンをクリックします。

    Graphviz 2-1.png

  3. [Next] ボタンをクリックし、インストールを開始します。

    Graphviz 3-1.png

    Graphviz 4-1.png

  4. インストール完了後、[Close] ボタンをクリックします。

    Graphviz 5-1.png


  5. msi からインストールするとパスを通してくれないため、手動で環境変数にパスを追加する必要があります。コマンドプロンプトを右クリックし、[管理者として実行] を選択します。

  6. コマンドプロンプトに以下のコマンドを入力して実行します。

    >setx /M PATH "%PATH%;[インストールフォルダーのパス]"

    Graphviz 6-1.png

    成功すると「成功:指定した値は保存されました」と表示されます。

  7. 一度、コマンドプロンプトを閉じて、再度、開き直します。

  8. Graphviz の各コマンドが使用できるか確認するため、以下のコマンドを入力します。

    >dot -V
    Graphviz 7-1.png

    バージョンが表示されれば完了となります。

Linux 環境

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/Linux での共通設定

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

Windows の場合、「RTCプロジェクト名+RTCのバージョン番号_OpenRTM-aist のバージョン番号_アーキテクチャ」で構成されます。 バージョン番号はドットを省いた形式で、[1.0.0] は [100] となります。
Linux の場合、「RTCプロジェクト名_RTCのバージョン番号_アーキテクチャ」で構成されます。

例)以下の設定でパッケージを作成した場合のパッケージ名
  • プロジェクト名:RobotController
  • バージョン番号:1.0.0
  • OpenRTM-aist のバージョン:1.2.0
  • Windows の場合
    • 32bit:RobotController100_rtm120_win32.msi
    • 64bit:RobotController100_rtm120_win64.msi
  • Ubuntu、Debian の場合
    • 32bit:robotcontroller_1.0.0_i386.deb
    • 64bit:robotcontroller_1.0.0_amd64.deb
  • Fedora の場合
    • 32bit:RobotController-1.0.0-i686.rpm
    • 64bit:RobotController-1.0.0-x86_64.rpm

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

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

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

作成したインストーラーパッケージを実行してインストールされる場所は、デフォルトで OpenRTM-aist のインストール先となります。 Windows 環境のみ、OpenRTM-aist をインストールする時の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 環境でパッケージを作成すると、インストール先は以下となります。この例はモジュールカテゴリを「Controller」とした場合です。

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

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

パッケージのメンテナー情報は、RTCBuilderの「ドキュメント生成」タブの「作成者・連絡先」で入力された内容が反映されます。 書式は「name <mail address>」で入力する必要があります。名前はローマ字表記、メールアドレスは < > で括る必要があります。 空欄の場合は「unknown」となります。(デフォルトは空欄です)

Maintener 1-1.png

CPack で msi 作成(Windows)

はじめに

msi インストーラーは Visual Studio でビルドして作成します。

doxygen ドキュメントを含めない場合の作成手順

※デフォルトでは、ドキュメントビルドは OFF になっているため生成されません。

Visual Studio のソリューション エクスプローラーから「PACKAGE」を右クリックして「ビルド」を選択し実行します。

doxygenoff 1-1.png

doxygen ドキュメントを含める場合の作成手順

プロジェクトフォルダー直下にある CMakeLists.txt の下記の行を、OFF → ON に書き換えます。
C++ RTC の場合は 86行目あたり、Python RTC の場合は 77行目あたりです。

 option(BUILD_DOCUMENTATION "Build the documentation" ON) ※この行の OFF を ON に書き換えます。(デフォルトは OFF)

  1. Visual Studio のソリューション エクスプローラーから「doc」を右クリックして「ビルド」を選択し実行します。

    doxygenon 1-1.png

  2. 「doc」でビルド完了後、「PACKAGE」を右クリックして、「ビルド」を選択します。

    doxygenon 1-2.png

【注意事項】
  • CMake の configure で「BUILD_DOCUMENTATION」にチェックが入っているのを確認すること。
  • 先に「doc」のビルドをしてから、「PACKAGE」のビルドを行うこと。「doc」のビルドをせずに「PACKAGE」のビルドを行うとエラーになります 。

msi インストーラーの保存場所、ファイル名

正常に作成できた場合は、プロジェクトディレクトリーの [build] 内に保存されます。
ファイル名は、「RTCプロジェクト名+RTCのバージョン番号_OpenRTM-aist のバージョン番号_アーキテクチャ」となります。

(例) Flip100_rtm120_win64.msi
※アーキテクチャは、[win32] または [win64] となります。
 バージョン番号は、ドットを省いた形式で、[1.0.0] は [100] となります。

msi のインストール・アンインストール

インストール

  1. 作成した msi インストーラーをダブルクリックします。

  2. [次へ] をクリックします。

    msi_install 1-1.png

  3. [使用許諾契約書に同意します] にチェックを入れ、[次へ] をクリックします。

    msi_install 2-1.png

  4. [次へ] をクリックします。
    デフォルトのインストールパスは以下になります。
    (例) C:\Program Files\OpenRTM-aist\1.2.0\Components\c++\ImageProcessing\
    ※ImageProcessing は、RTCBuilderの「モジュールカテゴリ」で指定した名前

    msi_install 3-1.png

  5. [インストール] をクリックすると、インストールが開始されます。

    msi_install 4-1.png

    msi_install 4-2.png

  6. [完了] をクリックし、インストーラーを終了します。インストール後、スタートメニューに登録されます。

    msi_install 5-1.png

アップグレードの GUID 設定

アップグレードをするときに、すでにインストールされているバージョンを確認するため GUID を設定する必要があります。 GUID は、デフォルトで設定されていないため、Visual Studio で PACKAGE をビルドをする度に新しい GUID が割り当てられてしまいます。 事前に GUID を設定しておくことで、アップグレードなのか、新規インストールなのかを判断することができます。
以下に、GUID の設定手順を示します。

  1. Visual Studio のソリューション エクスプローラーから「PACKAGE」を右クリックし、「ビルド」を選択し実行します。

    msi_upgrade 1-1.png

  2. ビルドが完了すると、以下の出力画面に GUID が表示されるので、選択してコピーします。

    msi_upgrade 2-1.png

  3. ソリューション エクスプローラーから「ALL_BILD」を展開し、CMakeLists.txt をクリックします。

    msi_upgrade 3-1.png

  4. 手順2でコピーした GUID を以下の画面のように貼り付け、CMakeLists.txt を上書き保存します。

    msi_upgrade 4-1.png

  5. 再度、ソリューション エクスプローラーから「PACKAGE」を右クリックし、「ビルド」を選択し実行します。

    msi_upgrade 5-1.png

[補足]
GUID の作成には上記のほかに、GUID を新規に作成する方法もあります。
Visual Studio のメニューから [ツール] > [GUID の作成] を選択し、「GUID の作成」ダイアログを表示させます。

  1. [GUID 形式] で、[4. レジストリ形式・・・] を選択します。
  2. [新規 GUID] ボタンをクリックします。
  3. [コピー] ボタンをクリックします。
  4. [終了] ボタンをクリックして、ダイアログを閉じます。

    msi_upgrade 6-1.png

  5. 以下の画面のように、CMakeLists.txt に貼り付けて、上書き保存します。※数字のみを貼り付けます。

    msi_upgrade 4-1.png

アンインストール

以下、アンインストール手順です。

コントロールパネルから削除する方法

  1. [コントロールパネル] を開き、[プログラムのアンインストール] をクリックします。

    msi_uninstall 0-1.png

  2. インストールしたパッケージ名を選択し、[アンインストール] をクリックします。

    msi_uninstall 0-2.png

  3. コントロールパネルの一覧から表示が消えていればアンインストール完了です。

    インストーラーから削除する方法

  1. 作成した msi インストーラーをダブルクリックします。

  2. [削除] をクリックします。

    msi_uninstall 1-1.png

  3. [削除]をクリックします。

    msi_uninstall 2-1.png

    msi_uninstall 2-2.png

  4. [完了] をクリックし、インストーラーを終了します。

    msi_uninstall 3-1.png

サービスポートを持つ Python RTC の IDLコンパイル処理

サービスポートを持つ 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 ★

CPack で deb 作成 (Linux)

はじめに

deb パッケージの作成方法を以下に示します。

doxygen ドキュメントを含めない場合の作成手順

※デフォルトでは、ドキュメントビルドは OFF になっているため生成されません。

  • C++ RTC の場合

 $ cd プロジェクトディレクトリー
 $ mkdir build
 $ cd build
 $ cmake ..
 $ make
 $ cpack

  • Pyrhon RTC での場合

 $ cd プロジェクトディレクトリー
 $ mkdir build
 $ cd build
 $ cmake ..
 $ cpack

doxygen ドキュメントを含める場合の作成手順

プロジェクトディレクトリー直下にある CMakeLists.txt の下記の行を、OFF → ON に書き換えます。
C++ RTC の場合は 86行目あたり、Python RTC の場合は 77行目あたりです。

 option(BUILD_DOCUMENTATION "Build the documentation" ON) ※この行の OFF を ON に書き換えます。(デフォルトは OFF)

  • C++ RTC の場合

 $ cd プロジェクトディレクトリー
 $ mkdir build
 $ cd build
 $ cmake ..
 $ make
 $ make doc
 $ cpack

  • Pyrhon RTC での場合

 $ 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".

deb パッケージの保存場所、ファイル名

正常に作成できた場合は、プロジェクトディレクトリーの [build] 内に保存されます。
ファイル名は、「RTCプロジェクト名_RTCのバージョン番号_アーキテクチャ」となります。

(例) Flip_1.2.0_amd64.deb
※アーキテクチャは、[i386] または [amd64] となります。

deb パッケージの確認方法

  • less コマンドで、deb パッケージの確認をする場合

 $ 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 component

less を終了させるには「q」を押します。

  • deb パッケージの内容を抽出して確認する場合
    tree コマンドがインストールされていない場合は、インストールします。

 $ 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

deb パッケージのインストール・アンインストール

インストール

インストールは以下のコマンドを実行します。

 $ cd プロジェクトディレクトリー/build 
 $ sudo dpkg -i Flip_1.2.0_amd64.deb 

アンインストール

アンインストールは以下のコマンドを実行します。

 $ sudo dpkg -r Flip

サービスポートを持つ Python RTC の IDL コンパイル処理

サービスポートを持つ 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

CPack で rpm 作成 (Linux)

はじめに

rpm パッケージの作成方法を以下に示します。

doxygen ドキュメントを含めない場合の作成手順

※デフォルトでは、ドキュメントビルドは OFF になっているため生成されません。

  • C++ RTC の場合

 $ cd プロジェクトディレクトリー
 $ mkdir build
 $ cd build
 $ cmake ..
 $ make
 $ cpack

  • Pyrhon RTC での場合

 $ cd プロジェクトディレクトリー
 $ mkdir build
 $ cd build
 $ cmake ..
 $ cpack

doxygen ドキュメントを含める場合の作成手順

プロジェクトディレクトリー直下にある CMakeLists.txt の下記の行を、OFF → ON に書き換えます。
C++ RTC の場合は 86行目あたり、Python RTC の場合は 77行目あたりです。

 option(BUILD_DOCUMENTATION "Build the documentation" ON) ※この行の OFF を ON に書き換えます。(デフォルトは OFF)

  • C++ RTC の場合

 $ cd プロジェクトディレクトリー
 $ mkdir build
 $ cd build
 $ cmake ..
 $ make
 $ make doc
 $ cpack

  • Pyrhon RTC での場合

 $ 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".

rpm パッケージの保存場所、ファイル名

正常に作成できた場合は、プロジェクトディレクトリー内の [build] に保存されます。
ファイル名は、「RTCプロジェクト名-RTCのバージョン番号-アーキテクチャ」となります。

(例) Flip-1.2.0-x86_64.rpm
※アーキテクチャは、[i686] または [x86_64] となります。

rpm パッケージの確認方法

  • less コマンドで、rpm パッケージの確認をする場合

 $ 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」を押します。

  • rpm パッケージの内容を抽出して確認する場合
    tree コマンドがインストールされていない場合は、インストールします。

 $ 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

rpm パッケージのインストール・アンインストール

インストール

インストールは以下のコマンドを実行します。

 $ cd プロジェクトディレクトリー/build 
 $ sudo rpm -i Flip-1.2.0-x86_64.rpm

アンインストール

アンインストールは以下のコマンドを実行します。

 $ sudo rpm -e Flip

サービスポートを持つ Python RTC の IDL コンパイル処理

サービスポートを持つ 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

その他

その他

謝辞

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/

言語プラグインの追加手順