ツール

RTSystemEditor-1.2.0

RTSystemEditorとは

現在 OMG にて、ロボット開発の効率を高める Robot Technology Component(以下RTC)の仕様策定が行われています。 この RTC 仕様を実装および適用した共通プラットフォームとして、独立行政法人産業技術総合研究所・知能システム研究部門・タスクインテリジェンス研究グループでは OpenRTM-aist を提供しています。 RTSystemEditor は、この OpenRTM-aist に含まれる開発ツールの1つであり、RTC をリアルタイムにグラフィカル操作する機能を持っています。 また、Eclipse 統合開発環境のプラグインとして作成されており、Eclipse 上にて既存のプラグインとシームレスに操作を行うことができます。

概要・システム構築の流れ

OpenRTM-aist RT System Editor 概要

現在 OMG にて、ロボット開発の効率を高める Robot Technology Component(以下RTC)の仕様策定が行われています。 この RTC 仕様を実装および適用した共通プラットフォームとして、独立行政法人産業技術総合研究所・知能システム研究部門・統合知能研究グループでは OpenRTM-aist を提供しています。
RTSystemEditor は、この OpenRTM-aist に含まれる開発ツールの1つであり、RTC をリアルタイムにグラフィカル操作する機能を持っています。 また、その名前のとおり Eclipse 統合開発環境のプラグインとして作成されており、Eclipse 上にて既存のプラグインとシームレスに操作を行うことができます。

対象

本ドキュメントは、RTC についての基本知識を既に持っている方を対象としています。 RTC の内容については、OMG のドキュメントや こちらを参照してください。

画面例

ここでは、OpenRTM-aist RT System Editor (以下 RTSystemEditor) の画面例を示します。

RTCBuilder1.1.2_011.jpg
RTSystemEditor の画面例


機能概要

RTSystemEditor は、 RTC をリアルタイムにグラフィカル操作する機能を持っています。提供される機能の一覧は以下のとおりです。

機能概要一覧

機能名称 機能概要
コンポーネントコンフィグレーション表示/編集機能 選択したコンポーネントのコンフィギュレーションプロファイル情報をコンフィグレーションビューに表示し編集する。
コンポーネント動作変更機能 選択したコンポーネントの動作を変更する。
RTシステム組み立て機能 システムエディタ上でシステムの組み立てを行う。
システムセーブ/オープン機能 システムエディタの内容をRTSプロファイルとしてセーブする。RTSプロファイルをシステムエディタでオープンする。システムのポート接続、コンフィグレーションを変更しない)
システム復元機能 RTS プロファイルをシステムエディタでオープンし、プロファイルの内容を元にシステムを復元する。(プロファイルの内容でシステムのポート接続、コンフィグレーションを再構築する)

動作環境

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

動作環境

環境 備考
Java Development Kit 6 注意:Java1.5(5.0)では動作しません。
Eclipse 3.4以上 Eclipse 本体
Eclipse EMF 2.4以上(SDO,XSD含む) RTSystemEditor が依存する Eclipse プラグイン
※ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
Eclipse GEF 3.4以上 RTSystemEditor が依存する Eclipse プラグイン
※ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
RT Name Service View RTSystemEditorが依存するOpenRTM-aist に含まれる開発ツール
RT Repository View RTSystemEditorが依存するOpenRTM-aist に含まれる開発ツール

制限

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

インストールおよび起動

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

RTSystemEditor のインストール

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

RTSystemEditor の起動

  1. インストール後、 Eclipse を初めて起動すると、以下のような「ようこそ」画面が表示されます。
    画面左上の「✖」をクリックし、「ようこそ」画面を閉じます。

    RTCBuilder1.1.2_021.jpg


  2. 以下の画面で、右上の [パースペクティブを開く] ボタンをクリックします。

    RTCBuilder1.1.2_022.jpg


  3. [RT System Editor] を選択し、[OK] ボタンをクリックします。

    RTCBuilder1.1.2_023.jpg


  4. RTSystemEditor が起動します。

    RTCBuilder1.1.2_024.jpg


ビュー(概要)

RTSystemEditor では、以下のようなビューを使用します。

fig6RTSystemEditorView_all.png
fig6RTSystemEditorView_part.png
RT System Editorのビュー


ビュー 一覧

ビュー名 説明
ネームサービスビュー RTC が登録されているネームサービスの内容をツリー表示します。
コンフィグレーションビュー 選択されている RTC のコンフィグレーション情報を表示/編集します。
マネージャコントロールビュー 選択されているマネージャを制御します。
複合コンポーネントビュー 選択されている複合 RTC のポート公開情報を表示/設定します。
実行コンテキストビュー 選択されている RTC が属する実行コンテキスト(EC)の一覧を表示し、RTC、EC のアクション実行、EC への RTC のアタッチ/デタッチを行います。
ログビュー ログ通知オブザーバーにより通知されるログメッセージを表示します。
プロパティビュー 選択されている RTC のプロファイル情報を表示します。
システムエディタ RTC をグラフィカルに表示し、RTシステムを作成します。
オフラインシステムエディタ RTリポジトリやローカルの RTコンポーネント仕様ファイルの内容をグラフィカルに表示し、RTシステムを作成します。

この後の節では、各ビューについてそれぞれ解説していきます。

ビュー(ネームサービスビュー編)

ここでは、ネームサービスビューについて解説します。
OpenRTM-aist では RTC を管理・公開するためにネームサービスが使用されており、ネームサービスビューでは、この内容を表示/編集することができます。

機能概要

ネームサービスビューは、RTC をリアルタイムにグラフィカル操作する機能を持っています。提供される機能の一覧は以下のとおりです。

機能概要一覧

No. 機能名称 機能概要
1 ネームサーバー接続/編集機能 ネームサーバーに接続し、登録されているコンポーネントをネームサービスビューにツリー形式で表示する。
2 コンポーネントプロファイル表示機能 選択したコンポーネントのプロファイル情報をプロパティビューに表示する。

ネームサービスビューの起動

メニューから[ウインドウ] > [ビューの表示] > [Name Service View] を選択すると、ネームサービスビューが表示されます。

RTCBuilder1.1.2_0301.jpg
ビューの表示


RTCBuilder1.1.2_0302.jpg
ネームサービスビューの初期起動時画面


ネームサーバーに接続するには

ネームサーバーに接続するには、ネームサービスビューの上部に存在する [ネームサーバを追加] ボタンをクリックするか、コンテキストメニューから [ネームサーバを追加] を選択します。

RTCBuilder1.1.2_0303.jpg
ネームサーバーに接続する


ネームサーバー接続ダイアログでは、IPアドレスおよびポート番号を入力します。(ポート番号が省略された場合には、設定画面で設定されたポート番号が使用されます。デフォルトのポート番号は2809番ポートです)

RTCBuilder1.1.2_0304.jpg
ネームサーバーの接続ダイアログ


Eclipseの(再)起動時には最後に接続したアドレスへ自動的に接続します。存在しない場合には、ローカルホストの2809番ポートに接続を試みます。

ネームサーバーを画面から削除するには

接続しているネームサーバーを画面から削除するには、ネームサーバーを右クリックし [ビューから削除] を選択します。

RTCBuilder1.1.2_0305.jpg
ネームサーバーを画面から削除する


ネームサーバーの内容を表示する

接続したネームサーバーにコンポーネントが登録されていると、以下のように登録内容がツリー形式で表示されます。

RTCBuilder1.1.2_0306.jpg

ネームサービスビュー


各アイコンの意味は以下のとおりです。

ネームサーバーアイコンの一覧

アイコン 種類(KIND) 名前
1
IconHostCxt.png
host_cxt ホストコンテキスト
2
IconMgrCxt.png
mgr_cxt マネージャコンテキスト
3
IconCateCxt.png
cate_cxt カテゴリコンテキスト
4
IconModCxt.png
mod_cxt モジュールコンテキスト
5
IconElse.png
上記以外 フォルダー(上記以外のコンテキスト)
6
IconRTC.png
なし RTC
7
IconMgr.png
なし マネージャ
8
IconObj.png
なし オブジェクト(RTC 以外のオブジェクト)
9
IconZombi.png
なし ネームサーバーにエントリされてはいるが、実体のオブジェクトにアクセスできないゾンビオブジェクト

ネームサービスビューは、接続先の各ネームサーバーを常に監視し、表示の同期・更新を行っています。(監視の周期は、設定画面の[[接続周期:]]で変更することができます)。 また、明示的にネームサーバーの内容を再取得する場合は更新を行います。更新を行うには、ネームサービスビューの上部の [更新] ボタンをクリックするか、コンテキストメニューにて [更新] を選択します。

RTCBuilder1.1.2_0307.jpg
リフレッシュ


ネームサービスビューの表示範囲を変更する

ネームサービスビューでは、RTC の数が多くなることによって操作する範囲が煩雑化するのを防ぐために、表示ルートの位置を移動する機能があります。
表示ルートを移動するには、移動する先を選択し、ネームサービスビューの上部の [次へジャンプ] ボタンをクリックするか、コンテキストメニューにて [次へジャンプ] を選択します。

RTCBuilder1.1.2_0308.jpg
表示ルート変更


RTCBuilder1.1.2_0309.jpg
表示ルート変更例


移動後は、[戻る] で1階層上に戻ることができます。また、[ホームへ戻る] で最上位の階層に戻ります。

ネームサービスビューの表示内容をフィルターする

ネームサービスビューでは、RTC の数が多くなることによって操作する範囲が煩雑化するのを防ぐための、もうひとつの方法として、フィルター(表示するエントリの種類を限定)する機能があります。
フィルターを設定するには、ネームサービスビューの上部に存在する [フィルタを設定] ボタンをクリックします。

RTCBuilder1.1.2_0310.jpg
フィルターの指示


「フィルタを設定」ダイアログでは、非表示にするエントリの種類を、「ビューから除外するエレメントを選択」欄から選択します。

RTCBuilder1.1.2_0311.jpg
ネームサービスフィルタダイアログ


ネームサービスビューの表示から除外したい要素にチェックをつけると、ネームサービスビューに表示されなくなります。
「ネーミングオブジェクト名」を有効にすると、オブジェクト名の条件に一致するものが非表示となります。
オブジェクト名の条件は前方一致と部分一致が選択できます。

RTCBuilder1.1.2_0312.jpg
オブジェクト名によるフィルタリング


ネームサービスからエントリを削除する

ネームサービスビューでは、ネームサービスのネーミングオブジェクトのエントリを削除することができます。ネーミングオブジェクトを削除するには、コンテキストメニューにて [ネームサービスから削除] ボタンをクリックします。

RTCBuilder1.1.2_0313.jpg
ネームサービスから削除する


ネームサービスへオブジェクトを登録する

ネームサービスビューで、ネームサービスにオブジェクトのエントリを登録することができます。
オブジェクトを登録するには、配下にオブジェクトを追加したいコンテキストおよびオブジェクトのコンテキストメニューから、[オブジェクトを追加] を選択します。

RTCBuilder1.1.2_0314.jpg
オブジェクトを追加する


RTCBuilder1.1.2_0315.jpg
オブジェクト追加ダイアログ


「オブジェクトを追加」ダイアログでは、オブジェクトの名前(Name)、種類(Kind)、および IOR を指定します。

ネームサービスへコンテキストを登録する

ネームサービスビューで、ネームサービスにコンテキストのエントリを登録することができます。
コンテキストを登録するには、配下にコンテキストを追加したいコンテキストのコンテキストメニューから、[コンテキストを追加] を選択します。

RTCBuilder1.1.2_0316.jpg
コンテキストを追加する


RTCBuilder1.1.2_0317.jpg
コンテキスト追加ダイアログ


「コンテキストを追加」ダイアログでは、コンテキストの名前(Name)、種類(Kind)を指定します。
種類(Kind)には以下のいずれかの値を選択します。

コンテキストの種類(kind)の一覧

種類(Kind) 名前
1 host_cxt ホストコンテキスト
2 mgr_cxt マネージャコンテキスト
3 cate_cxt カテゴリコンテキスト
4 mod_cxt モジュールコンテキスト
5 上記以外を入力 フォルダー(上記以外のコンテキスト)

ゾンビオブジェクトを削除する

ネームサービスビューには、ゾンビオブジェクトを一括して削除する機能があります。ゾンビオブジェクトをすべて削除するには、ネームサービスビュー上部の [ゾンビをクリア] ボタンをクリックします。

RTCBuilder1.1.2_0318.jpg
ゾンビをクリア


ビュー(リポジトリビュー編)

ここでは、リポジトリビューについて解説します。
リポジトリビューは、RTコンポーネント仕様記述ファイルを読み込み、ツリービューで表示する機能をもっています。

RTCBuilder1.1.2_041.jpg
リポジトリビュー


ファイルのロード

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

RTCBuilder1.1.2_042.jpg
ファイルのロード


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

ディレクトリーのロード

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

RTCBuilder1.1.2_043.jpg
ディレクトリーのロード


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

削除

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

RTCBuilder1.1.2_044.jpg
コンポーネントの削除


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

ビュー(コンフィグレーションビュー編)

ここでは、コンフィグレーションビューについて説明します。

RTCBuilder1.1.2_051.jpg
コンフィグレーションビューの位置


コンフィグレーションビューでは、選択された RTC のコンフィグレーションを表示/編集することができます。左側に CofigurationSet のリストが表示され、右側に ConfigurationSet 内のプロパティが表示されます。

RTCBuilder1.1.2_052.jpg
コンフィグレーションビュー


コンフィグレーションビューの画面構成

No. 説明
選択されているコンポーネント名。
選択されている ConfigurationSet 名。
アクティブになっている ConfigurationSet。また、アクティブな ConfigurationSet を変更することができる。
ConfigurationSet のリスト。
左側で選択されている ConfigurationSet のプロパティの名前。
左側で選択されている ConfigurationSet のプロパティの値。
ConfigurationSet を追加/削除するボタン。
プロパティを追加/削除するボタン。
設定値の編集ダイアログを開くボタン、および変更内容を適用/キャンセルするボタン。

コンフィグレーションビューで編集中の情報は、⑨の [適用] ボタンがクリックされるまで適用されません。また、修正中(未適用)の情報は赤く表示されます。

RTCBuilder1.1.2_053.jpg
修正中のコンフィグレーションビュー


コンフィグレーションの設定値を編集するには⑨の [編集] ボタンをクリックし、編集用のダイアログを開いて編集を行います。

RTCBuilder1.1.2_054.jpg
コンフィグレーション編集ダイアログ


複数の ConfigurationSet がある場合は、ダイアログ上部のタブ(⑩)で編集対象を切替えることができます。
コンフィグレーションの各パラメーターには、編集用の widget を指定することができ、ConfigurationSet に widget 種別が定義されていれば、指定の widget でパラメーターを編集できます(⑪)。 widget 種別にはスライダー、スピナ、ラジオボタン、チェックボックス、および順序付きリストがあり、widget 種別の指定がない場合はデフォルトでテキストボックスを使用します。
また、各パラメーターには制約条件を指定することができ、widget 種別がスライダー、スピンの場合は制約条件の指定が必須となります。該当の widget 種別が定義されていて、制約条件が指定されていない場合はデフォルトのテキストボックスとなります。

widget種別一覧

widget種別 イメージ 説明
スライダ
IconSlider.png
制約条件で指定された最小値、最大値の範囲をスライダーで選択します。テキストボックスへの入力も可能です。
スピナ
IconSpinner.PNG
制約条件で指定された最小値、最大値の範囲をスピナで選択します。小数の精度は制約条件の最小値、最大値の記述に準拠します。ただし、負数の指定はできません。
例) 最大値が「10.00」の場合は小数2桁
ラジオボタン
IconRadioButton.png
ラジオボタンで値を選択します。
チェックボックス
IconCheckbox.png
チェックボックスで値を選択します。複数の値を選択でき、カンマ区切りで設定されます。
順序付きリスト
IconOrderedList.png
左の選択リストから値を選択します。複数の値を選択でき、順序を保持し、また、重複を許可します。選択した値はチェックボックス同様、カンマ区切りで設定されます。
テキストボックス
IconTextBox.png
通常のテキスト入力で設定します。

各パラメーターに制約条件が指定されていると入力値に対して制約条件のチェックが行われ、条件を満たさない場合はフォームを赤で示します。 また、[OK] ボタンで編集確定時に変更のあった ConfigurationSet の全パラメーターに対して制約条件チェックを行い、制約条件を満たさないパラメーターがあったときにはエラーダイアログを表示します。

fig11ConfigurationError.png
制約条件チェックエラーの表示


コンフィグレーション編集ダイアログの [Apply] チェックボックス(⑫)をチェック中は、RTC に対してリアルタイムで設定値の変更が反映されます。

コンフィグレーションビューに表示される情報は、RTC 選択時に最新の情報をキャッシュして表示しています(コンフィグレーションの編集に備えるため)。 このため、いつまでも同じ RTC を選択し続けると、システムとの情報差が発生します。RT System Editor は編集の適用時に、この差を意識することなく編集中の情報を正として完全に上書きしますのでご注意ください。
また、RTC の仕様上では、プロパティの Value にはあらゆるオブジェクトを登録可能ですが、RT System Editor から登録/編集できるのは文字列のみとなります。

ビュー(マネージャコントロールビュー編)

ここではマネージャコントロールビューについて説明します。

fig12ManagerControlView.png
マネージャコントロールビューの位置


ネームサービスビューでマネージャを選択すると、マネージャコントロールビューがアクティブになり、選択されたマネージャを制御できるようになります。

fig13ManagerControlView.png
マネージャコントロールビュー


マネージャコントロールビューの画面構成

No. 説明
ロード可能モジュール一覧表示ボタン。
ロード済みモジュール一覧表示ボタン。
コンポーネント一覧表示ボタン。
コンポーネント生成ボタン。
コンポーネント作成ダイアログを開き、新しくコンポーネントを生成します。生成されたコンポーネントは③のコンポーネント一覧表示で表示されます。
マネージャ複製ボタン。新しいマネージャを起動します。※現在、仕様未定のため使用不可
マネージャ終了ボタン。選択中のマネージャを終了します。※現在、仕様未定のため使用不可
モジュール、およびコンポーネントの一覧を表示するテーブル。
モジュールを URL 指定でロードする場合に URL を指定します。
モジュールのロード、アンロードボタン。
⑦のテーブルで選択中のモジュール、もしくは URL で指定したモジュールをロード、アンロードします。

マネージャにモジュールをロードするには [Loadable Modules] ボタンをクリックし、表示されたロード可能モジュールを選択すると、[Load] ボタンが有効になり、クリックするとモジュールがロードされます。
また、「URL:」のテキストボックスにモジュールの URL を入力して [Load] ボタンをクリックすることにより、URL 指定でモジュールを追加することもできます。

fig14LoadModule.png
モジュールのロード


モジュールをアンロードするには [Loaded Modules] ボタンをクリックし、表示されたロード済みモジュールを選択すると、[Unload] ボタンが有効になり、クリックするとモジュールがアンロードされます。

fig15UnLoadModule.png
モジュールのアンロード


新しくコンポーネントを生成するには [Create] ボタンをクリックして、コンポーネント生成ダイアログを開き、生成するコンポーネントの種別を選択し、[OK] をクリックするとコンポーネントが生成されます。
生成されたコンポーネントはマネージャによってネームサービスに登録され、[Active Components] ボタンで表示されるコンポーネント一覧に表示されるようになります。

fig16ComponentDialog.png
コンポーネント生成ダイアログ


コンポーネントの種別は、マネージャにロード済みのモジュールで定義されているコンポーネントから選択します。
Parameter にはコンポーネント生成パラメーターを指定することができ、「param1=value1&param2=value2」の形式で記述します。以下の共通パラメーターは、すべてのコンポーネントで設定可能です。

コンポーネント生成の共通パラメーター

パラメーター名 説明
instance_name コンポーネントのインスタンス名。
指定しない場合はコンポーネント種別 (type_name)に通番を付与
type_name コンポーネントの種別
description コンポーネントの説明
version コンポーネントのバージョン
vendor コンポーネントの提供元
category コンポーネントのカテゴリ

また、コンポーネント生成パラメーターで ConfigurationSet の値も指定することができます。
ConfigurationSet のパラメーターは「conf.NNNN.PPPP=VVVV」の形式で、NNNN には ConfigurationSet 名、PPPP にはパラメーター名、VVVV には設定値をそれぞれ指定します。
例として、ConsoleIn のコンポーネントを生成し、mode1という名前の ConfigurationSet を作成し、input_mode、input_cycle というパラメーターを指定する場合は以下のようになります。

fig17ConfigurationSet.png
コンポーネント生成時に ConfigurationSet パラメーターを指定


その他にも、コンポーネントによって任意のパラメーターを指定することができます。

ビュー(実行コンテキストビュー編)

ここでは実行コンテキストビューについて説明します。

fig23ECView.jpg
実行コンテキストビューの位置


実行コンテキストビューでは、選択中の RTC が属する実行コンテキスト(EC)の一覧を表示し、EC の開始/終了、RTC のアクション実行、EC への RTC のアタッチ/デタッチを行うことができます。また、EC の実行周期の設定を行うことができます。

fig24ECView.png
実行コンテキストビュー


実行コンテキストビューの画面構成

No. 説明
RTC のインスタンス名。
RTC が属する EC のリストを表示。
RTC がオーナーの EC は「owned*」、RTC が参加のみの EC は「participate*」で表示。
②で選択中の EC の実行レート。

選択中の EC のプロパティを Name、Value の一覧として表示。
 id: EC の ID。オンラインの場合は context_handle を ID として表示。
 kind: EC 種別 (PERIODIC/EVENT_DRIVEN/OTHER)
 state: EC の状態 (RUNNING/STOPPING)
 component_state: 選択中の RTC の EC 上での状態 (ACTIVE/INACTIVE/ERROR)
 owner: この EC のオーナー RTC のインスタンス名
 participants: この EC に参加中の RTC の数
その他、EC に設定された任意のプロパティを表示。
入力された実行レートを EC へ反映させる。
選択中の EC を開始する。(オフラインでは使用不可)
選択中の EC を停止する。(オフラインでは使用不可)
選択中の RTC の、選択中の EC 上での状態をアクティブにする。(オフラインでは使用不可)
選択中の RTC の、選択中の EC 上での状態を非アクティブにする。(オフラインでは使用不可)
選択中の RTC の、選択中の EC 上での状態をリセットする。(オフラインでは使用不可)
選択中の RTC を、選択中の EC からデタッチする。
ただし、RTC 自身が EC のオーナーの場合はデタッチ不可。
システムエディタ上の RTC の選択ダイアログを開き、選択した RTC を EC にアタッチする。

実行レートの編集中の値は、⑥の [Apply] ボタンがクリックされるまで適用されません。また、修正中(未適用)の情報は薄い赤色で表示されます。入力値が不正な場合は赤色で表示されます。

fig25EditRate.png
実行レートの編集中


fig26EditRateError.png
実行レートの設定値が不正な場合


オンラインエディタの場合は EC の操作や、その EC 上での RTC の状態を変更することができます。
[Start] ボタンをクリックすると EC を開始し、プロパティの state が「RUNNING」となり、[Stop] ボタンをクリックすると EC を停止し、state が「STOPPING」となります。
EC 上での RTC の状態を変更するには [Activate]、[Deactivate] ボタンをクリックします。アクティブ化すると、プロパティの component_state が「ACTIVE」となり、非アクティブ化すると component_state が「INACTIVE」となります。
何らかの理由で RTC が「ERROR」状態となったときは、[Reset] ボタンをクリックして復旧します。

fig27ActionAndStatus.png
EC の操作、および RTC の状態変更


RTC は複数の EC にアタッチすることができます。
RTC を追加したい EC を選択して、[Attach] ボタンをクリックすると、RTC の選択ダイアログが開きます。選択ダイアログには、システムエディタ上にある RTC の一覧が表示されます。

fig28SelectDialog.png
RTC 選択ダイアログ


RTC を選択して [OK] をクリックすると、EC に RTC が追加され、追加した RTC の participate ECの一覧に新しく EC が追加されます。

fig29AttachContext.png
EC への RTC のアタッチ


EC のアタッチを解除するには、participate の EC を選択して [Detach] ボタンをクリックします。

fig30DetachContext.png
EC から RTC をデタッチ


ビュー(複合コンポーネントビュー編)

ここでは複合コンポーネントビューについて説明します。

fig18CompositeComponentView.jpg
複合コンポーネントビューの位置


複合コンポーネントビューでは、選択された複合 RTC のポート公開情報が表示され、ポートの公開/非公開を設定することができます。

fig19CompositeComponentView.png
複合コンポーネントビュー


複合コンポーネントビューの画面構成

No. 説明
複合 RTC のインスタンス名。
複合 RTC のタイプ名。
ポートの公開/非公開の状態。
複合 RTC に含まれる子 RTC のインスタンス名。
複合 RTC に含まれる子 RTC のポート名。
ポートの公開/非公開の変更を反映させます。
ポートの公開/非公開の変更をキャンセルします。

複合コンポーネントビューで編集中の情報は、⑥の [Apply] ボタンがクリックされるまで適用されません。また、修正中(未適用)の情報は薄い赤色で表示されます。また、システムエディタ上で選択したポートは薄い黄色で表示されます。

fig20CompsiteComponentView.png
ポート公開/非公開の編集中


fig21CompsiteComponentView.png
システムエディタ上で選択中のポート


複合コンポーネントのポートが、別のコンポーネントのポートと接続されている場合は、複合コンポーネントビューで該当のポートがグレイで表示され、編集不可となります。

fig22CompsiteComponentView.png
他のポートと接続中の場合


ビュー(ログビュー編)

ここではログビューについて説明します。

fig31LogView.jpg
ログビューの位置


ログビューは、選択したダイアグラム上のログ収集対象の RTC 一覧を表示し、RTC から通知されたログメッセージを表示します。
表示したい RTC を選択でき、また、ログレベルによって表示をフィルタリングすることもできます。

fig32LogView.png
ログビュー


ログビューの画面構成

No. 説明
選択中のダイアグラム内の RTC のうち、ログ収集対象となっているものの一覧を表示。
ここでチェックをつけた RTC のログが表示される。
表示するログレベルのしきい値を指定。
指定されたレベル以上のログメッセージを表示する。
ログメッセージを表示。
RTC の選択、およびログレベル指定により、表示をフィルタリングする。
表示項目は次のとおり。
・タイムスタンプ
・ログレベル(SILENT/ERROR/WARN/INFO/DEBUG/TRACE/VERBOSE/PARANOID)
・RTC のインスタンス名
・ログ通知対象
・ログメッセージ

ダイアグラムを選択すると、ダイアグラム上のログ収集対象 RTC の一覧を①に表示します。ログは、ログ通知オブザーバー機能により RTC から通知され、オブザーバーを登録したものがログ収集対象となります。
一覧からログを表示したい RTC を選択(チェック)すると、③のログ表示テーブルにメッセージを表示します。
また、ログメッセージはログレベルによって表示をフィルタリングすることができます。②のコンボボックスでしきい値となるレベルを選択すると、選択したレベル以上のログのみ表示します。たとえば、コンボボックスで「INFO」を選択すると、「ERROR」「WARN」「INFO」のメッセージのみ表示されます。

fig33LogFiltering.png
ログ表示のフィルタリング


ビュー(プロパティビュー編)

ここではプロパティビューについて説明します。

SystemEditor_Property_01.jpg
プロパティビューの位置


プロパティビューでは、 System Dialog で選択された RTC やコネクタのプロファイル情報をリアルタイムに表示します。( RTC の選択中であっても変更が検出されれば即座に反映されます)

RTCの場合 複合RTCの場合 マネージャの場合
fig353TypePropertyView1.png
fig353TypePropertyView2.png
fig353TypePropertyView3.png

プロパティビュー


表示されるアイコンの意味は以下のとおりです。

プロパティアイコンの一覧

No. アイコン 名前 表示内容
1
IconRTC2.png
RTC InstanceName、TypeName、Description、Vender、Category、State(※1番目の ExecutionContext の LifeCycleState を基にして表示される)
2
IconExecContext.png
ExecutionContext State、Kind、Rate
3
IconServicePort.png
ServicePort Name、プロパティ情報のリスト
4
IconOutPort.png
Outport Name、プロパティ情報のリスト
5
IconInPort.png
Inport Name、プロパティ情報のリスト
6
IconPIP.png
PortInterfaceProfile InterfaceName、TypeName、PortInterfacePolarity
7
IconMgr.png
マネージャー Components (生成したコンポーネント名のリスト)
Loadable Modules (ロード可能なモジュール名のリスト)
Loaded Modules (ロード済みのモジュール名のリスト)
なお、RTC の仕様では、RTC のLifeCycleState は ExecutionContext ごとに存在します。したがって、状態は複数存在しますが、RT System Editorでは1番目の ExecutionContext のみを使用して STATE を 表示します。

システムエディタ(基本操作編)

ここでは、システムエディタの概要と基本操作について説明します。

概要

システムエディタでは、RTC の状態がリアルタイムで表示されます。またポート間の接続や、RTC の状態を変更することでシステム構築、動作検証を行うことができます。

SystemEditor_011.jpg
SystemEditor_012.jpg
システムエディタの位置 システムエディタ

基本操作

RTC のポート間の接続方法と RTC を実行する方法を説明します。

システムエディタを開く

新しいシステムエディタを開くには、ツールバーの [Open New System Editor] ボタンをクリックするか、メニューバーの [File] > [Open New System Editor] を選択します。

SystemEditor_013.jpg
ツールバーから Open New System Editor


SystemEditor_014.jpg
Fileメニューから Open New System Editor


RTC をシステムエディタに配置する

RTC をシステムエディタに配置するには、ネームサービスビューから RTC をドラッグ&ドロップします。

fig40EditorComponentDnD.png
RTC をシステムエディタに配置する


ネームサービス上で [Ctrl] キーを押しながらクリックし、複数RTC を選択すれば、まとめてシステムエディタ上へ配置することができます。

fig41EditorComponentMultiDnD.png
複数の RTC をまとめてシステムエディタに配置する


なお、すでにシステムエディタ上に配置された RTC、もしくは複合RTC の親RTC、子RTCを重複して追加することはできません。 複数 RTC の配置では重複する RTC はスルーされ、単体RTC の配置ではエラーダイアログが表示されます。

fig42DeployComponentError.png
RTC 配置の重複エラーダイアログ


RTC の状態を変更する

ここでは、 RTC の状態を変更する方法を説明します。
システムダイアグラムでは、RTCを選択し、「Activate」、「Deactivate」、「Reset」、「Finalize」、「Exit」、「Start」、「Stop」を実行することができます。 また、ネームサービスビューでも同様に実行することができます。

fig51RTCStatusChangeNS.png
fig51RTCStatusChangeEditor.png

ネームサービスビュー(左)とシステムエディタ(右)から RTC 状態を変更する


これらのアクションの意味は以下のとおりです。実行先にご注意ください。

RTCの状態を変更するアクション

No. アクション名 実行先 意味
1 Activate 選択された RTC とその1番目の ExecutionContext に対して実行 Activate を要求する
2 Deactivate Deactivate を要求する
3 Reset Reset を要求する
4 Exit 選択された RTC に対して実行 Exit を要求する
5 Start 選択された RTC の1番目の ExecutionContext に対して実行 Start を要求する
6 Stop Activate を要求する

設定画面」のオンラインエディタの項目で、アクションの実行確認を有効にしている場合は、アクションの実行前に確認のダイアログが表示されます。

fig52RTCStatusChangeConfirm.png
アクションの実行確認ダイアログ


初期設定では、事前確認を行わないようになっています。
Activate、Deactivate については、ショートカットキーが割り当てられています。初期設定では以下の設定になっています。
・Activate → Ctrl + Alt + A
・Deactivate → Ctrl + Alt + D
キーバインドを変更するには、Eclipse 標準の設定メニューの「一般」→「キー」で設定することができます。
また、簡易にシステムを操作するための機能として、システムエディタに含まれるすべての RTC へ Activate、Deactivate、Start、Stop、変更を要求することがツールバーとコンテキストメニューからできます。

fig53AllExec.png
All 実行(ツールバーは左からAll Activate、All Deactivate、All Start、All Stop)


All 系のアクションは、1番目以外の ExecutionContext についても行われます。 Activate やStart を画面内の RTC に1つずつおこなった場合と結果が異なることにご注意ください。

ポート間を接続する

システムエディタでは、 RTC のポート間を接続することができます。
ポート間を接続するには、ポートとポートをドラッグ&ドロップでつなぎます。

fig54ConnectPort.png
ポート間接続


ドラッグ&ドロップ終了後、接続に必要な情報の入力を促すダイアログが表示されます。

SystemEditor_015.jpg
ConnectorProfileダイアログの例


このダイアログでは、 ConnectorProfile を作成します。 ConnectorProfile は、それぞれのポートが必要とする条件が満たされるように作成される必要がありますが、このダイアログは必要な条件を満たす値のみが入力されるようプルダウンで促します。 必要な条件を満たすことができない接続の場合には、ドラッグ&ドロップの接続時に禁止マークが表示され、ドラッグ&ドロップを行うことができません。

fig56ConnectedProhibitionMark.png
接続禁止マーク


ポート間の接続は、大きくデータポート間接続とサービスポート間接続に分かれます。詳細については「システムエディタ(ポート間の接続 編)」を参照願います。

ポート間の接続を切断する

ポート間の接続を切断するには、接続を選択し [Delete] ボタンをクリックするか、コンテキストメニューに表示される [Delete] をクリックします。

fig61Disconnect.png
接続の削除


ポート間の接続をすべて切断する

ポートの接続をすべて切断するには、ポートを選択して、右クリックし「All Disconnect」を実行します。

fig62AllDisconnect.png
接続の全切断


単独ポートの接続を設定する

単独のポート接続へ ConnectorProfile を設定することができます。
ポートを右クリックし、コンテクストメニューから「Connect」を選択すると、ポート間接続のときと同様に、ConnectorProfile の設定ダイアログが開きます。

fig63ConnectSinglePort.png
単独のポート接続


単独のポート接続を削除するには、同じく右クリックのコンテキストメニューから「Disconnect」を選択し、ポート切断ダイアログから操作します。 ダイアログに表示された ConnectorProfile の一覧から対象を削除し、[OK] ボタンをクリックすると切断処理が実施されます。

fig64DisconnectPort.png
ポートの切断


fig65DisconnectPortDialog.png
ポートの切断ダイアログ


なお、ポート切断ダイアログには単独ポート接続や、通常のポート間接続のすべての ConnectorProfile の一覧が表示されるので、ダイアグラムに描画されない単独ポート接続の確認にも利用できます。

ログを収集する

ログ通知オブザーバにより、RTC のログメッセージをツールで収集することができます。(OpenRTM-aist 1.1以降)
ダイアグラム上の RTC を右クリックし、コンテキストメニューの「Start Logging」を選択するとログ収集を開始します。 すでにログ収集を開始している RTC の場合は、メニュー表示が「Stop Logging」となり、ログ収集を停止します。
なお、オブザーバに対応していない RTC の場合は、メニューが非活性となります。

ログ収集の開始 ログ収集の停止
fig79LoggingStart.png
fig79LoggingStop.png

ログ収集の開始/停止

ログ収集は、状態通知オブザーバと同様、ログ通知のオブザーバの参照を RTC に登録し、通知を受けます。 コンテキストメニューからログ収集開始時にオブザーバを登録し、ログ収集停止時にオブザーバを解除します。 また、状態通知オブザーバと同じく、ダイアグラムから RTC を削除するとオブザーバを解除します。
ログ通知では、時刻やログレベルを含んだデータ構造(ログレコード)が RTC から送られ、ツールはログのデータを蓄積します。 蓄積されたログは、ログビューを使って参照することができます。

fig80LogObserver.png
ログ通知オブザーバ


システムエディタ(複合コンポーネント編)

複合コンポーネントの操作を説明します。

複合コンポーネントを作成する

複数のコンポーネントをまとめて複合コンポーネントにすることができます。
複合コンポーネントにしたいコンポーネントを選択して、右クリックして「Create Composite Component」を選択すると、複合コンポーネント生成ダイアログが表示されます。

fig66CreateCompositeComponent.png
複合コンポーネントの作成


SystemEditor_1302.jpg
複合コンポーネント生成ダイアログ


ダイアログの各項目は以下のとおりです。

複合コンポーネント生成のダイアログ項目と必要条件

No. ダイアログ説明 説明
Manager ネームサービスビューに表示されているマネージャ一覧からマネージャを選択します。ここで選択されたマネージャが複合コンポーネントを生成します。
Name 複合コンポーネントのインスタンス名を指定します。
Type 複合コンポーネントの種別を指定します。指定可能な種別は以下のとおり。
[PeriodicECShared]
各RTCが ExecutionContext のみを共有する形で動作します。各RTCの状態は独立しているため、複合コンポーネント内で複数の状態が存在することもあります。
[PeriodicStateShared]
各RTCが同一の ExecutionContext を共有するとともに、状態も共有する形で動作します。
[Grouping]
各RTCが何も共有しない複合コンポーネントで、各RTCがそれぞれ ExecutionContext、状態を保持します。
Path 複合コンポーネントに設定するパスを指定します。
Port 子のコンポーネントのポート一覧から、複合コンポーネントに表示するポートを選択します。
ここで選択されたポートに対して、複合コンポーネントにプロキシ用のポートが作成されます。
- ポートの全選択・全解除ボタン

複合コンポーネントを作成すると、子のコンポーネントとして選択していたコンポーネントはシステムエディタ上から表示が消え、新しい複合コンポーネントが描画されます。
複合コンポーネントのダイアグラムをダブルクリックするか、右クリックして「エディタで開く」を選択すると、新しいシステムダイアグラムが開き、複合コンポーネント内部が表示されます。

fig68CompositeOpenWithSE.png
複合コンポーネントをシステムエディタで開く


fig69ViewCompositeComponent.png
複合コンポーネント内を表示するシステムエディタ


※ ただし、システム構成の保存時には、コンポーネントの描画情報はコンポーネントに対して1つしか保存できないため、複合コンポーネント内を表示するシステムダイアグラムで変更した描画情報は保存されません。

複合コンポーネントの子を追加する

複合コンポーネント内を表示するシステムエディタを開いて、ネームサービスビューから RTC をドラッグ&ドロップすることで、複合コンポーネントの子が追加されます。追加された子RTCのポートはすべて非公開に設定されます。

fig70CompositeComponentAddRTC.png
子RTCの追加


複合コンポーネントの子を削除する

複合コンポーネント内を表示するシステムエディタを開いて、そこで子のコンポーネントを削除することで、複合コンポーネントの子が削除されます。
削除された子のコンポーネントは、複合コンポーネント内から表示が消え、元のシステムダイアグラム(複合コンポーネント自身が表示されているダイアグラム)に表示されます。

fig71DeleteChildComponent.png
複合コンポーネント内から子のコンポーネントを削除


fig72ChildComponent.png
複合コンポーネントが表示されているシステムエディタ上に子のコンポーネント表示


複合コンポーネントを削除する

複合コンポーネント上で右クリックして「Delete」を選択すると、複合コンポーネントがダイアグラムから削除されます。
削除時に複合コンポーネントを別のシステムダイアグラムで開いていると、エディタの終了確認のダイアログが表示されます。

fig73DeleteCompositeComponent.png
複合コンポーネントの削除


fig74CloseCompositeComponentDialog.png
複合コンポーネントを表示するエディタの終了確認ダイアログ


複合コンポーネントを解除する

複合コンポーネント上で右クリックして「Decompose Composite Component」を選択すると、複合コンポーネントへexist()が送られ、コンポーネント自体を終了します。
解除時に複合コンポーネントを別のシステムダイアグラムで開いていると、エディタの終了確認のダイアログが表示されます。
複合コンポーネントが解除されると、子のコンポーネントが元のシステムダイアグラム(複合コンポーネントが表示されていたダイアグラム)に表示されます。

fig75DecomposeCompositeComponent.png
複合コンポーネントの解除


fig76CloseCompositeComponentDialog.png
複合コンポーネントを表示するエディタの終了確認ダイアログ


ポートの公開/非公開を切り替える

複合コンポーネント内を表示するシステムエディタにあるコンポーネントのポートが複合コンポーネント上に公開されている場合、下記のように別のアイコンで表示されます。

子RTCの公開されているポートのアイコン

No. 名前 形状
1 InPort
IconExportedInPort.png
2 OutPort
IconExportedOutPort.png
3 ServicePort
IconExportedServicePort.png

公開されているポートを右クリックして、「Unexport」を選択すると、そのポートが公開されていない状態に変わります。また、公開されていないポートを右クリックして、「Export」を選択すると、そのポートが公開されている状態に変わります。

fig77ExportPort.png
fig77UnexportPort.png

ポートの公開/非公開


ただし、ポートが別のコンポーネントのポートと接続されている場合は、「Unexport」にすることができません。

fig78CantUnexport.png
ポートの接続がある場合


システムエディタ(セーブ編)

システムエディタのセーブとオープンについて説明します。

システムエディタをセーブする

システムエディタはセーブすることができます。セーブするには、メニューの [File] もしくはエディタを右クリックして「Save」を選択します。(「Save As…」では、セーブするファイルを任意選択することができます)

SystemEditor_1401.jpg
SystemEditor_1402.jpg
システムエディタのセーブ メニュー コンテキストメニュー


システムのセーブを選択すると、プロファイル情報ダイアログが開き、必要な項目を設定して [OK] ボタンをクリックすると、システムの情報がファイルにセーブされます。

SystemEditor_1403.jpg
プロファイル情報ダイアログ


プロファイル情報の項目

名前 形状
Vendor ベンダ名。RTシステムの識別子を構成する要素。
必須項目。
System Name システム名。RTシステムの識別子を構成する要素。
必須項目。
Version システムのバージョン。RTシステムの識別子を構成する要素。
必須項目。
Path システムをセーブするファイル名。
必須項目。
Update Log バージョンの補足説明などを記述。
Required RTシステムを動作させるのに必須の RTC にチェックをつける。

セーブしたシステムエディタをオープンする

セーブしたシステムエディタをオープンするには、エディタを右クリックして「Open」を選択します。

SystemEditor_1404.jpg
システムエディタをオープンする


オープン後は、 RT System Editor はリモートのシステムを正として最新の情報へと更新を行います。セーブ内容をシステムへ復元するには、次の節で説明する「Open and Restore…」を使用してください。

セーブしたシステムをオープンおよび復元する

セーブしたシステムエディタをオープンおよび復元するには、エディタを右クリックして「Open and Restore...」、もしくは「Open and Quick Restore...」を選択します。

SystemEditor_1405.jpg
システムエディタをオープンおよび復元する


システムへ復元されるのは以下の内容です。
  • ポート間の接続(セーブ時のコネクタが存在しない場合)
  • コンフィグレーション情報
    復元時には、コンポーネントのパスIDでネームサービスを検索してリモートのコンポーネントを取得します。
    「Quick Restore」を選択した場合は、ネームサービスにアクセスする前に、プロファイルに保存された IOR にてリモートのコンポーネントの取得を試み、取得できなかった場合にネームサービスから検索を行います。
    復元に失敗した場合には、エラー内容が表示されます。
    fig85ErrorMessageOfRestorationFailure.png
    復元失敗のエラーメッセージ

また、RT System Editorはエラー発生時でも、できる限りの復元を試みます。

システムエディタ(RTC の表示 / 描画編集 編)

RTC の表示と RTC の描画編集の操作を説明します。

RTC の表示

システムエディタに配置された RTC は矩形で表示され、ポートはその矩形の周りに表示されます。また、それぞれの状態が色で表現されます。

fig43RTCDisplayExample.png
RTC 表示の例


アイコンと状態色の一覧は以下のとおりです。

コンポーネントとポートのアイコン

No. 名前 形状 状態 デフォルト色(※)
RTC
IconShape.png
CREATED
IconWhite.png
White
INACTIVE
IconBlue.png
Blue
ACTIVE
IconLightGreen.png
Light Green
ERROR
IconRed.png
Red
UNKNOWN
IconBlack.png
Black
2 Execution Context
(1番目のみ)
(RTCの矩形の外周線) RUNNING
IconGray.png
Gray
STOPPED
IconBlack.png
Black
3 InPort
IconInport.png
未接続
IconBlue.png
Blue
接続済(1つ以上)
IconLightGreen.png
Light Green
4 OutPort
IconOutport.png
未接続
IconBlue.png
Blue
接続済(1つ以上)
IconLightGreen.png
Light Green
5 ServicePort
IconServiceport.png
未接続
IconLightBlue.png
Light Blue
接続済(1つ以上)
IconCyan.png
Cyan

※各状態の色は、設定画面の 表示色 にて変更することができます。

また、RTC の種別やカテゴリに合わせてアイコン画像をつけることができます。

fig44RTCDisplayIconExample.png
RTC のアイコン画像表示の例


※アイコン画像は、設定画面の アイコン にて変更することができます。

RTC の同期

システムエディタへ配置した RTC の状態を監視し、リアルタイムに表示を更新します。
監視方法には状態通知オブザーバ方式(OpenRTM-aist 1.1以降)、もしくはポーリングによる周期チェックがあり、設定画面の接続にて監視パラメーターを変更することができます。
システムエディタへ RTC を配置するときに、ミドルウェアのバージョンをチェックし、オブザーバ対応であれば RTC へオブザーバを登録します。オブザーバ未対応の場合は周期的に状態の問い合わせを行います。

fig45StatusObserver.png
状態通知オブザーバー


システムエディタから RTC を削除すると、オブザーバも解除します。
状態通知オブザーバが通知する内容は次のとおりです。

状態通知オブザーバの通知内容

通知 説明
COMPONENT_PROFILE RTC のコンポーネントプロファイルに変更があった場合に通知
RTC_STATUS RTC の状態
新しい状態と対象となる EC の ID を通知
EC_STATUS 実行コンテキストの状態
実行レートの変更、EC の開始/停止、RTC のアタッチ/デタッチを通知
PORT_PROFILE ポートの状態
ポートの追加/削除、コネクションの接続/切断を通知
CONFIGURATION コンフィグレーションの状態
コンフィグレーションの追加/変更/削除、アクティブなコンフィグレーションの切り替えを通知
また、RTC の生存確認のため、一定間隔でハートビートを通知します。
ハートビートが一定回数通知されないと、RTC が異常終了したとみなしてシステムエディタ上から削除します。

RTC の描画編集

ここでは、RTC の描画編集について説明していきます。(「編集」ではなく「描画編集」とあえてしているのは、ここで説明される作業は描画の編集であり、システムに対する影響は全くないためです。)

  • RTC の大きさの変更と移動(システムに対する影響なし)
    RTC を移動するには、RTC を選択後、ドラッグして動かします。 RTC の大きさを変更するには、 RTC を選択することで表示されるハンドルをドラッグして動かします。
    fig46RTCMoveResize.png
    RTC の移動(左)とRTC の大きさの変更(右)


また、選択された RTC の位置と大きさがステータスバーに表示されます。

fig47StatusBar.png
ステータスバー


  • RTC の回転(システムに対する影響なし)
    対象のコンポーネントを選択し、Ctrlキーを押しながらマウスの右ボタンをクリックすることで、水平の向きへ回転します。Shiftキーを押しながらマウスの右ボタンをクリックすることで、垂直の向きへ回転します。それぞれ同じ操作を繰り返し行うことで逆の水平の向き、逆の垂直の向きへ変更でき、上下左右の向きへ操作することができます。
    fig48RTCRotate.png
    回転された RTC

  • RTC の削除(システムに対する影響なし)
    RTC を削除するには、RTCを選択し [Delete] ボタンをクリックするか、コンテキストメニューから [Delete] を選択してください。
    fig49DeleteComponent.png
    RTC の削除

  • ポート間の接続線を移動する(システムに対する影響なし)
    接続線を移動するには、接続線を選択し表示されるハンドラを移動します。垂直線は左右に、水平線は上下に移動することができます。
    fig50MoveConnection.png
    垂直線(左)と水平線の(右)の接続線の移動

システムエディタ(ポート間の接続 編)

データポート間、サービスポート間の接続について説明します。

データポート間接続

データポートの接続で、「InPort」と「OutPort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。なお、初期表示時には「Buffer」の設定項目は隠れています。

fig57DataConnectDialog.png
データポートのコネクタプロファイルダイアログ


ダイアログの項目と条件は以下のとおりです。

データポート接続のダイアログ項目と必要条件

ダイアログ項目名 ConnectorProfile 必要条件
Name name 特になし
Data Type <<properties>>
dataport.data_type
このコネクタで接続されているデータポート間で送受信するデータ型を指定します。
それぞれのポートで互いに送受信可能なデータ型から選択します。ただし、Any を含む場合は相手ポートのどのような値も許容します。
Instance Type <<properties>>
dataport.interface_type
RTシステム設計者が想定する、もしくは RTC が動作する RTミドルウェア上でサポートされているインターフェース種別を指定します。
それぞれのポートで互いにサポートしているインターフェース種別から選択します。ただし、Any を含む場合は相手ポートのどのようなインターフェースも許容します。
Dataflow Type <<properties>>
dataport.dataflow_type
RTシステム設計者が想定する、もしくは RTC が動作する RTミドルウェア上でサポートされているデータフロー型を指定します。
それぞれのポートで互いにサポートしているデータフロー型から選択します。ただし、Any を含む場合は相手ポートのどのようなデータフローも許容します。
Subscription Type <<properties>>
dataport.subscription_type
[Dataflow Typeの値がPushの時に必要な条件]
RTシステム設計者が想定する、もしくはRTCが動作するRTミドルウェア上でサポートされているサブスクリプション種別を指定します。
それぞれのポートで互いにサポートしているサブスクリプション種別から選択します。ただし、Anyを含む場合は相手のどのようなサブスクリプション種別も許容します。
Push Rate(Hz) <<properties>>
dataport.push_interval
[Dataflow Typeの値が”Push”でかつSubscription Typeが”Periodic”の時に必要な条件]
サブスクリプション種別が「Periodic」な場合にデータの送信周期を指定します。送信周期は正数値(小数可)で指定します。
Push Policy <<properties>>
dataport.publisher.push_policy
データ送信ポリシー。[Dataflow Typeの値が”Push”でかつSubscription Typeが”Periodic”の時に必要な条件]all、fifo、skip、new から選択します。
all:バッファ内のデータを一括送信
fifo:バッファ内のデータをFIFOで1個ずつ送信
skip:バッファ内のデータを間引いて送信
new:バッファ内のデータの最新値を送信(古い値は捨てられます。)
Skip Count <<properties>>
dataport.publisher.skip_count
送信データスキップ数。[Push Policy の値が”skip”の時に必要な条件]バッファ内のデータがこの設定値で間引されて送信されます。
詳細 チェックボックスをチェックすると、入出力ポートのバッファの詳細設定項目が表示されます。
ダイアログの初期表示時は隠れています。

Buffer length
(OutPort/InPort)
<<properties>>
buffer.length
バッファの長さ

Buffer full policy
(OutPort/InPort)
<<properties>>
buffer.write.full_policy
バッファへのデータ書き込み時に、バッファフルだった場合の挙動。overwrite、do_nothing、block から選択します。
overwrite:データを上書きします。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後書き込み不可能であればタイムアウトします。 デフォルトは overwrite (上書き)です。

Buffer write timeout
(OutPort/InPort)
<<properties>>
buffer.write.timeout
バッファへのデータ書き込み時に、タイムアウトアウトイベントを発生させるまでの時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0を設定した場合はタイムアウトしません。

Buffer empty policy
(OutPort/InPort)
<<properties>>
buffer.read.empty_policy
バッファからのデータ読み出し時に、バッファが空だった場合の挙動。readblock、do_nothing、block から選択します。
readblock:最後の要素を再読み出します。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後読み出し不可能であればタイムアウトします。 デフォルトは readbackです。

Buffer read timeout
(OutPort/InPort)
<<properties>>
buffer.read.timeout
バッファからのデータ読み出し時に、タイムアウトイベントを発生させるための時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0 を設定した場合はタイムアウトしません。

21
Name/Value <<properties>>
Name
任意のプロパティを設定
[追加] ボタンで項目の追加、[削除] ボタンで項目の削除が可能です。
入力された項目は NVList の形式で ConnectorProfileのProperties に設定されます。
同一 Key の Property は設定する事はできません。

②~⑤までの項目について、RT System Editor は指定可能な値を、それぞれのポートの値リストから文字列のマッチングを行って作成します。 双方のポートに対して ANY しか指定されていないような場合には、入力可能な値を判断することができません。 このため、双方のポートに ANY が含まれている場合に、RT System Editor は任意の文字列を入力できるようにしています。任意の文字列が入力可能な項目には、「任意入力可」と表示されます。

fig58ConnectParamAny.png
任意入力可のときの表示


サービスポート間接続

サービスポート間の接続では、「ServicePort」と「ServicePort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。

fig59ServiceConnectDailog.png
サービスポートのコネクタプロファイルダイアログ


ダイアログの項目と条件は以下のとおりです。

サービスポート接続のダイアログ項目と必要条件

ダイアログ項目名 ConnectorProfile 必要条件
Name Name 特になし
詳細 チェックボックスをチェックすると、Consumer/Provider の詳細設定項目が表示されます。
ダイアログの初期表示時は隠れています。
Consumer 接続するサービスポートに設定されたインターフェースの Consumer のリストから選択します。
ComboBox の選択リストには<コンポーネント名>:<インターフェース名>:<インスタンス名>の形式で表示されます。
追加された Consumer/Provider のペアは、ConsumerのIDをプロパティのキー、Provider の ID をプロパティの値として、ConnectorProfile に格納されます。
なお、Consumer/Provider の ID は以下の形式で表現します。
<rtc_name>.port.<port_name>.<if_polality>.<if_tname>.<if_iname>
- rtc_nameはコンポーネント名
- port_name はポート名
- if_polalityは Consumer は「required」、Provider は「provided」
- if_tnameはインターフェースのタイプ名
- if_inameはインターフェースのインスタンス名
Provider <<properties>>
Consumer の ID をキーとして設定
Consumerと同様、接続するサービスポートに設定されたインターフェースの Provider のリストから選択します。
Add Consumer/Provider の新規エントリを追加します。
Delete 選択中の Consumer/Provider のエントリを削除します。

Name/Value <<properties>>
Name
任意のプロパティを設定
[追加] ボタンで項目の追加、[削除] ボタンで項目の削除が可能です。
入力された項目は NVList の形式で ConnectorProfile の Properties に設定されます。
同一 Key の Property は設定する事はできません。

サービスポートの場合、必須となる接続の条件はありません。しかし、 ServicePort 間での PortInterfaceProfile が完全にマッチング(※1)しない場合、接続ダイアログにて警告を表示します。

fig60ServicePortWarningDialog.png
サービスポートの接続ダイアログの警告表示


※1 ここでいう完全なマッチングとは、PortInterfaceProfile の「type」が同じで、「polarity」がお互いに PROVIDED と REQUIred になっていること。 また余りなく(PortInterfaceProfile はそれぞれのポートに複数存在する)すべての PortInterfaceProfile がマッチングすることを指しています。

オフラインシステムエディタ

概要

ここでは、オフラインシステムエディタの概要について説明します。

fig86OfflineSysetmEditor.png
オフラインシステムエディタの位置


オフラインシステムエディタでは、レポジトリビュー上のコンポーネントをドラッグ&ドロップでダイアグラムに追加することで、RTシステムの編集を行います。基本的な操作はオンラインのシステムエディタと同じですが、RTC の状態を変更することはできません。また、リアルタイムに RTC の状態が変更される、または更新されることもありません。

基本機能

オフラインシステムエディタを開く

新しいオフラインシステムエディタを開くには、ツールバーの「Open New Offline System Editor」ボタンをクリックするか、メニューバーの [File] > [Open New Offline System Editor] を選択します。

fig87OpenNewOfflineSystemEditorFromToolbar.png
ツールバーから Open New Offline System Editor


fig88FileOpenNewOfflineEditor.png
Fileメニューから Open New Offline System Editor


コンポーネント仕様をオフラインシステムエディタに配置する

コンポーネント仕様をオフラインシステムエディタに配置するには、リポジトリビューからコンポーネント仕様をドラッグ&ドロップします。

fig89OfflineEditorComponentDnD.png
コンポーネント仕様をオフラインシステムエディタに配置する


リポジトリビュー上で Ctrlキーを押しながらクリックし、複数コンポーネント仕様を選択すれば、まとめてオフラインシステムエディタ上へ配置することができます。

fig90OfflineEditorComponentMultiDnD.png
複数のコンポーネント仕様をまとめてオフラインシステムエディタに配置する


コンポーネント仕様をオフラインシステムエディタで編集する

オフラインシステムエディタでは、システムエディタで行えることのうち、実行時コンポーネントの動作に関すること以外のほとんどの操作を、システムエディタと同様の操作で行うことができます。

デプロイ機能

ここでは、オフラインシステムエディタを使用したデプロイ機能の概要について説明します。
デプロイ機能を用いることで、オフラインシステムエディタで作成したオフラインプロファイルから実際のシステム構築を行うことが可能となります。

デプロイ情報の設定

オフラインエディタ上に配置したコンポーネントを右クリックし、表示されたメニュー中から「Set Deploy Info.」を選択すると、デプロイ情報設定画面が表示されます。

fig91DeploySetting.png
デプロイ情報の設定


fig92DeployComp.png
fig92DeployManager.png
稼働中のRTC 稼働中のManager

デプロイ情報設定画面


デプロイ情報設定画面では、現在稼働中の RTC、Manager の一覧が表示されます。対象 RTC をデプロイする際に使用する要素を選択してください。
※デプロイ情報設定画面の内容は、NameServiceView に表示されている項目を使用しています。稼働している要素の情報が表示されない場合は、NameServiceView の表示内容を確認し、必要に応じて Refresh を行ってください。
※複合 RTC を選択した場合、Manager 情報一覧のみが表示されます。デプロイ時に使用する Manager を選択してください。

デプロイ情報の保存・読み込み

設定したデプロイ情報は、RtsProfile とは別に保存、読込する事が可能です。オフラインエディタを右クリックして表示されるメニュー中から「Save Deploy Info.」「Load Deploy Info.」をそれぞれ選択してください。

fig93DeploySave.png
デプロイ情報の保存・読み込み


※デプロイ情報を読み込む際には、コンポーネントID(ベンダ名、カテゴリ名、コンポーネント名、バージョン番号)をキーとして、該当 RTC の検索を行います。

デプロイの実行

設定したデプロイ情報を基に、実際のシステムを構築(デプロイ)する場合は、オフラインエディタを右クリックして表示されるメニュー内から「Deploy System」を選択します。

fig94Deploy.png
デプロイ


デプロイを実行すると、設定されたデプロイ情報を基に実システムの構築(デプロイ)を行います。そして、新規オンラインエディタを開き、デプロイ結果を表示します。
対象となるオフラインシステム内に、デプロイ情報が設定されていないコンポーネントが存在する場合や、設定したデプロイターゲットがデプロイ時に起動していない場合には、以下のような警告画面が表示されます。

fig95DeployWarning.png
デプロイ時警告画面


警告画面中で「キャンセル」を選択した場合は、デプロイ処理を中断します。[OK] を選択した場合は、起動中のデプロイターゲットを使用して、可能な限りシステムの構築(デプロイ)を実行します。

設定画面

RT System Editor

ここでは、 RT System Editor の設定画面について説明します。 RT System Editor の設定画面は、メニューの [window] > [preferences] > [RT System Editor] で表示することができます。

接続

接続設定では、状態通知オブザーバーのハートビートの設定、および接続周期の設定を行います。
状態通知オブザーバー対応のミドルウェア(OpenRTM-aist 1.1以降)では、オブザーバーへのハートビート送信により RTC の生存確認を行います。ハートビートの設定項目は以下のとおりです。

ハートビートの設定項目

名前 説明
ハートビート有効化 ハートビートによるタイムアウト検出を有効にするかを指定します。
ハートビート受信間隔 ハートビートの受信間隔を指定します。
単位は秒、デフォルトは1.0秒。
ハートビート受信回数 タイムアウト検出のためのハートビートの受信回数を指定します。
受信間隔x受信回数=タイムアウト時間 [秒]
デフォルトは3回。

接続周期は、従来のミドルウェア(OpenRTM-aist 1.0以前)において、システムエディタがシステム情報を収集し、表示へ反映する周期です。
単位はミリ秒、0 を指定した場合には同期は行われません。

fig87ConnectionCycleSetScreen.png
接続周期設定画面


表示色

表示色の設定画面では、システムエディタにて表示される RTC と ExecutionContext 状態の色を設定することができます。 それぞれの状態の意味については、システムエディタのRTCの表示をご覧ください。

fig88DisplayColorSettingScreen.png
表示色設定画面


アイコン

アイコンの設定画面では、システムエディタで表示する RTC に付与されるアイコン画像と、表示対象のパターンを設定することができます。 表示対象は RTC の種別、もしくはカテゴリのパターンを設定します。 アイコン画像の表示イメージは、システムエディタのRTCの表示をご覧ください。

fig89IconSettingScreen.png
アイコン画像設定画面


[Add]、[Edit]、[Delete] ボタンでアイコン画像のエントリを追加、編集、削除します。 [Add]、[Edit] ボタンをクリックするとアイコン画像設定ダイアログが開き、表示対象のパターンとアイコン画像ファイルを設定します。

fig90IconSettingDialog.png
アイコン画像設定画面


表示パターンを設定後、[Apply]、もしくは [OK] ボタンをクリックすると設定が反映されます。
[Import]、[Export] ボタンをクリックすれば、アイコン画像設定の一覧を XML ファイルから読み込み、 XML ファイルへ保存することができます。

オフラインエディタ

オフラインエディタでポート接続時に選択できるパラメーターを設定することができます。
設定可能な項目は [Interface Type]、[Data Flow Type]、[Subscription Type] で、ポート接続時にここで設定したパラメーターから値を選択することができます。 それぞれの意味についてはデータポート間接続を参照してください。

fig91OfflineEditor.png
オフライン設定画面


オンラインエディタ

オンラインエディタで、RTC のアクション実行時に、事前の実行確認を行うかを設定します。 初期値はチェックなし(確認を行わない)です。

fig92OnineEditor.png
オンライン設定画面


RT Name Service View

接続周期

接続周期とは、RT Name Service View がシステムの情報を収集して表示へ反映する周期のことです。&br 接続周期は、ネームサービスビューとシステムエディタの2つがあります。単位はミリ秒で、0 を指定した場合には、同期は行われません。

figNS20ConnectCycle.png
接続周期設定画面


同期

タイムアウト待ち時間は、システムの情報を収集する際、システムとの接続が確立されない場合に待機する時間です(単位はミリ秒)。

figNS21SyncCycle.png
接続周期設定画面


接続周期と同期タイムアウト待ち時間の関係は下図のようになります。
(例 接続周期が1000ms、同期タイムアウト待ち時間が100msの場合)

figNS22SyncCycleAndTimeOut.png
接続周期と同期タイムアウト待ち時間の関係


その他

その他

謝辞

RT System Editor は、以下のライブラリを使用して開発されました。これらのプロジェクトの開発と設計にかかわった方々に感謝します。

Apache Jakarta Commons Lang 2 . 2

Apache Jakarta Commons Lang Copyright 2001-2006 The Apache Software Foundation

This product includes software developed by The Apache Software Foundation.

RTCBuilder-1.2.0

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

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

画面要素一覧

画面要素名 説明
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 が利用する外部ライブラリの補足情報を指定します。
[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\binC:\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/

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

RTSystemEditor-1.1.0

RTSystemEditorとは

 現在 OMG にて、ロボット開発の効率を高める Robot Technology Component(以下RTC)の仕様策定が行われています。この RTC 仕様を実装および適用した共通プラットフォームとして、独立行政法人産業技術総合研究所・知能システム研究部門・タスクインテリジェンス研究グループでは OpenRTM-aist を提供しています。 RTSystemEditor は、この OpenRTM-aist に含まれる開発ツールの1つであり、RTC をリアルタイムにグラフィカル操作する機能を持っています。また、Eclipse 統合開発環境のプラグインとして作成されており、Eclipse 上にて既存のプラグインとシームレスに操作を行うことができます。

概要・システム構築の流れ

OpenRTM-aist RT System Editor 概要

現在 OMG にて、ロボット開発の効率を高める Robot Technology Component(以下RTC)の仕様策定が行われています。この RTC 仕様を実装および適用した共通プラットフォームとして、独立行政法人産業技術総合研究所・知能システム研究部門・統合知能研究グループでは OpenRTM-aist を提供しています。
RTSystemEditor は、この OpenRTM-aist に含まれる開発ツールの1つであり、RTC をリアルタイムにグラフィカル操作する機能を持っています。また、その名前のとおり Eclipse 統合開発環境のプラグインとして作成されており、Eclipse 上にて既存のプラグインとシームレスに操作を行うことができます。

対象

本ドキュメントは、RTC についての基本知識を既に持っている方を対象としています。RTC の内容については、OMG のドキュメントや こちらを参照してください。

画面例

ここでは、OpenRTM-aist RT System Editor (以下 RTSystemEditor) の画面例を示します。

fig1InitialOfEclipseStart_1.png
RTSystemEditor の画面例


機能概要

RTSystemEditor は、 RTC をリアルタイムにグラフィカル操作する機能を持っています。提供される機能の一覧は以下のとおりです。

機能概要一覧

機能名称 機能概要
コンポーネントコンフィグレーション表示/編集機能 選択したコンポーネントのコンフィギュレーションプロファイル情報をコンフィグレーションビューに表示し編集する。
コンポーネント動作変更機能 選択したコンポーネントの動作を変更する。
RTシステム組み立て機能 システムエディタ上でシステムの組み立てを行う。
システムセーブ/オープン機能 システムエディタの内容をRTSプロファイルとしてセーブする。RTSプロファイルをシステムエディタでオープンする。システムのポート接続、コンフィグレーションを変更しない)
システム復元機能 RTS プロファイルをシステムエディタでオープンし、プロファイルの内容を元にシステムを復元する。(プロファイルの内容でシステムのポート接続、コンフィグレーションを再構築する)

動作環境

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

動作環境

環境 備考
Java Development Kit 6 注意:Java1.5(5.0)では動作しません。
Eclipse 3.4以上 Eclipse 本体
Eclipse EMF 2.4以上(SDO,XSD含む) RTSystemEditor が依存する Eclipse プラグイン
※ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
Eclipse GEF 3.4以上 RTSystemEditor が依存する Eclipse プラグイン
※ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
RT Name Service View RTSystemEditorが依存するOpenRTM-aist に含まれる開発ツール
RT Repository View RTSystemEditorが依存するOpenRTM-aist に含まれる開発ツール

制限

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

インストールおよび起動

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

RTSystemEditor のインストール

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

RTSystemEditor の起動

インストール後、 Eclipse を初めて起動すると、以下のようなページが表示されます。
画面左上の「x」をクリックし、「ようこそ」画面を閉じます。

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


以下の画面で、右上の [Open Perspective] ボタンをクリックし、プルダウンの「Other…」を選択します。

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


[RT System Editor] を選択し、[OK] ボタンをクリックします。

fig4PerspectiveSelection.png
パースペクティブの選択


RT System Editor が起動します。

fig5InitialOfRTSystemEditorStarts.png
RT System Editor の初期起動時画面


ビュー(概要)

RT System Editor では、以下のようなビューを使用します。

fig6RTSystemEditorView_all.png
fig6RTSystemEditorView_part.png
RT System Editorのビュー


ビュー一覧

ビュー名 説明
ネームサービスビュー RTC が登録されているネームサービスの内容をツリー表示します。
コンフィグレーションビュー 選択されている RTC のコンフィグレーション情報を表示/編集します。
マネージャコントロールビュー 選択されているマネージャを制御します。
複合コンポーネントビュー 選択されている複合 RTC のポート公開情報を表示/設定します。
実行コンテキストビュー 選択されている RTC が属する実行コンテキスト(EC)の一覧を表示し、RTC、EC のアクション実行、EC への RTC のアタッチ/デタッチを行います。
ログビュー ログ通知オブザーバーにより通知されるログメッセージを表示します。
プロパティビュー 選択されている RTC のプロファイル情報を表示します。
システムエディタ RTC をグラフィカルに表示し、RTシステムを作成します。
オフラインシステムエディタ RTリポジトリやローカルの RTコンポーネント仕様ファイルの内容をグラフィカルに表示し、RTシステムを作成します。

この後の節では、各ビューについてそれぞれ解説していきます。

ビュー(ネームサービスビュー編)

ここでは、ネームサービスビューについて解説します。
OpenRTM-aist では RTC を管理・公開するためにネームサービスが使用されており、ネームサービスビューでは、この内容を表示/編集することができます。

機能概要

ネームサービスビューは、RTC をリアルタイムにグラフィカル操作する機能を持っています。提供される機能の一覧は以下のとおりです。

機能概要一覧

No. 機能名称 機能概要
1 ネームサーバー接続/編集機能 ネームサーバーに接続し、登録されているコンポーネントをネームサービスビューにツリー形式で表示する。
2 コンポーネントプロファイル表示機能 選択したコンポーネントのプロファイル情報をプロパティビューに表示する。

ネームサービスビューの起動

figNS3InitialOfNameServiceViewStart.png
ビューの表示


メニューから[Window] > [Show View] > [Name Service View] を選択すると、ネームサービスビューが表示されます。

figNS4InitialOfNameServiceViewStart.png
ネームサービスビューの初期起動時画面


同様に Eclipse に標準で用意されている「プロパティ」ビューも表示します。

ネームサーバーに接続するには

ネームサーバーに接続するには、ネームサービスビューの上部に存在するボタンをクリックするか、コンテキストメニューにて [Add Name Service] を選択します。

figNS7ConnectNameService.png
ネームサーバーに接続する


ネームサーバー接続ダイアログでは、IPアドレスおよびポート番号を入力します。(ポート番号が省略された場合には、設定画面で設定されたポート番号が使用されます。デフォルトのポート番号は2809番ポートです)

figNS8NameServiceDialog.png
ネームサーバーの接続ダイアログ


Eclipseの(再)起動時には最後に接続したアドレスへ自動的に接続します。存在しない場合には、ローカルホストの2809番ポートに接続を試みます。

ネームサーバーを画面から削除するには

接続しているネームサーバーを画面から削除するには、ネームサーバーを右クリックし [Delete from View] を選択します。

figNS9DeletefromView.png
ネームサーバーを画面から削除する


ネームサーバーの内容を表示する

接続したネームサーバーにコンポーネントが登録されていると、以下のように登録内容がツリー形式で表示されます。

figNS10View.png

ネームサービスビュー


各アイコンの意味は以下のとおりです。

ネームサーバーアイコンの一覧

アイコン 種類(KIND) 名前
1
IconHostCxt.png
host_cxt ホストコンテキスト
2
IconMgrCxt.png
mgr_cxt マネージャコンテキスト
3
IconCateCxt.png
cate_cxt カテゴリコンテキスト
4
IconModCxt.png
mod_cxt モジュールコンテキスト
5
IconElse.png
上記以外 フォルダー(上記以外のコンテキスト)
6
IconRTC.png
なし RTC
7
IconMgr.png
なし マネージャ
8
IconObj.png
なし オブジェクト(RTC 以外のオブジェクト)
9
IconZombi.png
なし ネームサーバーにエントリされてはいるが、実体のオブジェクトにアクセスできないゾンビオブジェクト

ネームサービスビューは、接続先の各ネームサーバーを常に監視し、表示の同期・更新を行っています。(監視の周期は、設定画面の[[接続周期:]]で変更することができます)。 また、明示的にネームサーバーの内容を再取得する場合にはリフレッシュを行うことができます。リフレッシュを行うには、ネームサービスビューの上部の [Refresh] ボタンをクリックするか、コンテキストメニューにて [Refresh] を選択します。

figNS11Refresh.png
リフレッシュ


ネームサービスビューの表示範囲を変更する

ネームサービスビューでは、RTC の数が多くなることによって操作する範囲が煩雑化するのを防ぐために、表示ルートの位置を移動する機能があります。
表示ルートを移動するには、移動する先を選択し、ネームサービスビューの上部の [Go Into] ボタンをクリックするか、コンテキストメニューにて [Go Into] を選択します。

figNS12ChangeView.png
表示ルート変更


figNS13ChangeView.png
表示ルート変更例


移動後は、[Go Back] で1階層上に上ることができます。また、[Go Home] で最上位の階層に戻ります。

ネームサービスビューの表示内容をフィルターする

ネームサービスビューでは、RTC の数が多くなることによって操作する範囲が煩雑化するのを防ぐための、もうひとつの方法として、フィルター(表示するエントリの種類を限定)する機能があります。
フィルタを行うには、ネームサービスビューの上部に存在する [Name Serviceview Filter] ボタンをクリックします。

figNS14NameServiceFilter.png
フィルターの指示


「Name Service Filters」ダイアログでは、非表示にするエントリの種類を、「Select elements to exclude from the view」欄から選択します。

figNS15FilterDialog.png
ネームサービスフィルタダイアログ


ネームサービスビューの表示から除外したい要素にチェックをつけると、ネームサービスビューに表示されなくなります。
「Naming object name」を有効にすると、オブジェクト名の条件に一致するものが非表示となります。
オブジェクト名の条件は前方一致と部分一致が選択できます。

figNS16Filtering.png
オブジェクト名によるフィルタリング


ネームサービスからエントリを削除する

ネームサービスビューでは、ネームサービスのネーミングオブジェクトのエントリを削除することができます。ネーミングオブジェクトを削除するには、コンテキストメニューにて [Delete From Name Service] ボタンをクリックします。

figNS17DeleteFromNameService.png
ネームサービスから削除する


ネームサービスへオブジェクトを登録する

ネームサービスビューで、ネームサービスにオブジェクトのエントリを登録することができます。
オブジェクトを登録するには、配下にオブジェクトを追加したいコンテキストおよびオブジェクトのコンテキストメニューから、[Add Object] を選択します。

figNS18AddObject.png
オブジェクトを追加する


figNS19AddObjectDialog.png
オブジェクト追加ダイアログ


「オブジェクトを追加」ダイアログでは、オブジェクトの名前(Name)、種類(Kind)、および IOR を指定します。

ネームサービスへコンテキストを登録する

ネームサービスビューで、ネームサービスにコンテキストのエントリを登録することができます。
コンテキストを登録するには、配下にコンテキストを追加したいコンテキストのコンテキストメニューから、[Add Context] を選択します。

figNS20AddContext.png
コンテキストを追加する


figNS21AddContextDialog.png
コンテキスト追加ダイアログ


「コンテキストを追加」ダイアログでは、コンテキストの名前(Name)、種類(Kind)を指定します。
種類(Kind)には以下のいずれかの値を選択します。

コンテキストの種類(kind)の一覧

種類(Kind) 名前
1 host_cxt ホストコンテキスト
2 mgr_cxt マネージャコンテキスト
3 cate_cxt カテゴリコンテキスト
4 mod_cxt モジュールコンテキスト
5 上記以外を入力 フォルダー(上記以外のコンテキスト)

ゾンビオブジェクトを削除する

ネームサービスビューには、ゾンビオブジェクトを一括して削除する機能があります。ゾンビオブジェクトをすべて削除するには、ネームサービスビュー上部の [Kill All Zombies] ボタンをクリックします。

figNS22KillAllZonbies.png
ゾンビをクリア


ビュー(リポジトリビュー編)

ここでは、リポジトリビューについて解説します。
RTC-RepositoryView は、RTコンポーネント仕様記述ファイルを読み込み、ツリービューで表示する機能をもっています。

figREP2_1RepositoryView.png
RTC-RepositoryView


ファイルのロード

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

figREP2_2LoadFile.png
ファイルのロード


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

ディレクトリーのロード

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

figREP2_3LoadDir.png
ディレクトリーのロード


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

削除

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

figREP2_4Delete.png
コンポーネントの削除


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

ビュー(コンフィギュレーションビュー編)

ここでは、コンフィグレーションビューについて説明します。

fig7WindowOfConfigurationView.png
コンフィグレーションビューの位置


コンフィグレーションビューでは、選択された RTC のコンフィグレーションを表示/編集することができます。左側に CofigurationSet のリストが表示され、右側に ConfigurationSet 内のプロパティが表示されます。

fig8ConfigurationView.png
コンフィグレーションビュー


コンフィグレーションビューの画面構成

No. 説明
選択されているコンポーネント名。
選択されている ConfigurationSet 名。
アクティブになっている ConfigurationSet。また、アクティブな ConfigurationSet を変更することができる。
ConfigurationSet のリスト。
左側で選択されている ConfigurationSet のプロパティの名前。
左側で選択されている ConfigurationSet のプロパティの値。
ConfigurationSet を追加/削除するボタン。
プロパティを追加/削除するボタン。
設定値の編集ダイアログを開くボタン、および変更内容を適用/キャンセルするボタン。

コンフィグレーションビューで編集中の情報は、⑨の [Apply] ボタンがクリックされるまで適用されません。また、修正中(未適用)の情報は赤く表示されます。

fig9ChangeConfigurationView.png
修正中のコンフィグレーションビュー


コンフィグレーションの設定値を編集するには⑨の [Edit Value] ボタンをクリックし、編集用のダイアログを開いて編集を行います。

fig10ConfigurationViewDialog.png
コンフィグレーション編集ダイアログ


複数の ConfigurationSet がある場合は、ダイアログ上部のタブ(⑩)で編集対象を切替えることができます。
コンフィグレーションの各パラメーターには、編集用の widget を指定することができ、ConfigurationSet に widget 種別が定義されていれば、指定の widget でパラメーターを編集できます(⑪)。widget 種別にはスライダー、スピナ、ラジオボタン、チェックボックス、および順序付きリストがあり、widget 種別の指定がない場合はデフォルトでテキストボックスを使用します。
また、各パラメーターには制約条件を指定することができ、widget 種別がスライダー、スピンの場合は制約条件の指定が必須となります。該当の widget 種別が定義されていて、制約条件が指定されていない場合はデフォルトのテキストボックスとなります。

widget種別一覧

widget種別 イメージ 説明
スライダ
IconSlider.png
制約条件で指定された最小値、最大値の範囲をスライダーで選択します。テキストボックスへの入力も可能です。
スピナ
IconSpinner.PNG
制約条件で指定された最小値、最大値の範囲をスピナで選択します。小数の精度は制約条件の最小値、最大値の記述に準拠します。ただし、負数の指定はできません。
例) 最大値が「10.00」の場合は小数2桁
ラジオボタン
IconRadioButton.png
ラジオボタンで値を選択します。
チェックボックス
IconCheckbox.png
チェックボックスで値を選択します。複数の値を選択でき、カンマ区切りで設定されます。
順序付きリスト
IconOrderedList.png
左の選択リストから値を選択します。複数の値を選択でき、順序を保持し、また、重複を許可します。選択した値はチェックボックス同様、カンマ区切りで設定されます。
テキストボックス
IconTextBox.png
通常のテキスト入力で設定します。

各パラメーターに制約条件が指定されていると入力値に対して制約条件のチェックが行われ、条件を満たさない場合はフォームを赤で示します。また、[OK] ボタンで編集確定時に変更のあった ConfigurationSet の全パラメーターに対して制約条件チェックを行い、制約条件を満たさないパラメーターがあったときにはエラーダイアログを表示します。

fig11ConfigurationError.png
制約条件チェックエラーの表示


コンフィグレーション編集ダイアログの [Apply] チェックボックス(⑫)をチェック中は、RTC に対してリアルタイムで設定値の変更が反映されます。

コンフィグレーションビューに表示される情報は、RTC 選択時に最新の情報をキャッシュして表示しています(コンフィグレーションの編集に備えるため)。このため、いつまでも同じ RTC を選択し続けると、システムとの情報差が発生します。RT System Editor は編集の適用時に、この差を意識することなく編集中の情報を正として完全に上書きしますのでご注意ください。
また、RTC の仕様上では、プロパティの Value にはあらゆるオブジェクトを登録可能ですが、RT System Editor から登録/編集できるのは文字列のみとなります。

ビュー(マネージャコントロールビュー編)

ここではマネージャコントロールビューについて説明します。

fig12ManagerControlView.png
マネージャコントロールビューの位置


ネームサービスビューでマネージャを選択すると、マネージャコントロールビューがアクティブになり、選択されたマネージャを制御できるようになります。

fig13ManagerControlView.png
マネージャコントロールビュー


マネージャコントロールビューの画面構成

No. 説明
ロード可能モジュール一覧表示ボタン。
ロード済みモジュール一覧表示ボタン。
コンポーネント一覧表示ボタン。
コンポーネント生成ボタン。
コンポーネント作成ダイアログを開き、新しくコンポーネントを生成します。生成されたコンポーネントは③のコンポーネント一覧表示で表示されます。
マネージャ複製ボタン。新しいマネージャを起動します。※現在、仕様未定のため使用不可
マネージャ終了ボタン。選択中のマネージャを終了します。※現在、仕様未定のため使用不可
モジュール、およびコンポーネントの一覧を表示するテーブル。
モジュールを URL 指定でロードする場合に URL を指定します。
モジュールのロード、アンロードボタン。
⑦のテーブルで選択中のモジュール、もしくは URL で指定したモジュールをロード、アンロードします。

マネージャにモジュールをロードするには [Loadable Modules] ボタンをクリックし、表示されたロード可能モジュールを選択すると、[Load] ボタンが有効になり、クリックするとモジュールがロードされます。
また、「URL:」のテキストボックスにモジュールの URL を入力して [Load] ボタンをクリックすることにより、URL 指定でモジュールを追加することもできます。

fig14LoadModule.png
モジュールのロード


モジュールをアンロードするには [Loaded Modules] ボタンをクリックし、表示されたロード済みモジュールを選択すると、[Unload] ボタンが有効になり、クリックするとモジュールがアンロードされます。

fig15UnLoadModule.png
モジュールのアンロード


新しくコンポーネントを生成するには [Create] ボタンをクリックして、コンポーネント生成ダイアログを開き、生成するコンポーネントの種別を選択し、[OK] をクリックするとコンポーネントが生成されます。
生成されたコンポーネントはマネージャによってネームサービスに登録され、[Active Components] ボタンで表示されるコンポーネント一覧に表示されるようになります。

fig16ComponentDialog.png
コンポーネント生成ダイアログ


コンポーネントの種別は、マネージャにロード済みのモジュールで定義されているコンポーネントから選択します。
Parameter にはコンポーネント生成パラメーターを指定することができ、「param1=value1&param2=value2」の形式で記述します。以下の共通パラメーターは、すべてのコンポーネントで設定可能です。

コンポーネント生成の共通パラメーター

パラメーター名 説明
instance_name コンポーネントのインスタンス名。
指定しない場合はコンポーネント種別 (type_name)に通番を付与
type_name コンポーネントの種別
description コンポーネントの説明
version コンポーネントのバージョン
vendor コンポーネントの提供元
category コンポーネントのカテゴリ

また、コンポーネント生成パラメーターで ConfigurationSet の値も指定することができます。
ConfigurationSet のパラメーターは「conf.NNNN.PPPP=VVVV」の形式で、NNNN には ConfigurationSet 名、PPPP にはパラメーター名、VVVV には設定値をそれぞれ指定します。
例として、ConsoleIn のコンポーネントを生成し、mode1という名前の ConfigurationSet を作成し、input_mode、input_cycle というパラメーターを指定する場合は以下のようになります。

fig17ConfigurationSet.png
コンポーネント生成時に ConfigurationSet パラメーターを指定


その他にも、コンポーネントによって任意のパラメーターを指定することができます。

ビュー(複合コンポーネントビュー編)

ここでは複合コンポーネントビューについて説明します。

fig18CompositeComponentView.png
複合コンポーネントビューの位置


複合コンポーネントビューでは、選択された複合 RTC のポート公開情報が表示され、ポートの公開/非公開を設定することができます。

fig19CompositeComponentView.png
複合コンポーネントビュー


複合コンポーネントビューの画面構成

No. 説明
複合 RTC のインスタンス名。
複合 RTC のタイプ名。
ポートの公開/非公開の状態。
複合 RTC に含まれる子 RTC のインスタンス名。
複合 RTC に含まれる子 RTC のポート名。
ポートの公開/非公開の変更を反映させます。
ポートの公開/非公開の変更をキャンセルします。

複合コンポーネントビューで編集中の情報は、⑥の [Apply] ボタンがクリックされるまで適用されません。また、修正中(未適用)の情報は薄い赤色で表示されます。また、システムエディタ上で選択したポートは薄い黄色で表示されます。

fig20CompsiteComponentView.png
ポート公開/非公開の編集中


fig21CompsiteComponentView.png
システムエディタ上で選択中のポート


複合コンポーネントのポートが、別のコンポーネントのポートと接続されている場合は、複合コンポーネントビューで該当のポートがグレイで表示され、編集不可となります。

fig22CompsiteComponentView.png
他のポートと接続中の場合


ビュー(実行コンテキストビュー編)

ここでは実行コンテキストビューについて説明します。

fig23ECView.png
実行コンテキストビューの位置


実行コンテキストビューでは、選択中の RTC が属する実行コンテキスト(EC)の一覧を表示し、EC の開始/終了、RTC のアクション実行、EC への RTC のアタッチ/デタッチを行うことができます。また、EC の実行周期の設定を行うことができます。

fig24ECView.png
実行コンテキストビュー


実行コンテキストビューの画面構成

No. 説明
RTC のインスタンス名。
RTC が属する EC のリストを表示。
RTC がオーナーの EC は「owned*」、RTC が参加のみの EC は「participate*」で表示。
②で選択中の EC の実行レート。

選択中の EC のプロパティを Name、Value の一覧として表示。
 id: EC の ID。オンラインの場合は context_handle を ID として表示。
 kind: EC 種別 (PERIODIC/EVENT_DRIVEN/OTHER)
 state: EC の状態 (RUNNING/STOPPING)
 component_state: 選択中の RTC の EC 上での状態 (ACTIVE/INACTIVE/ERROR)
 owner: この EC のオーナー RTC のインスタンス名
 participants: この EC に参加中の RTC の数
その他、EC に設定された任意のプロパティを表示。
入力された実行レートを EC へ反映させる。
選択中の EC を開始する。(オフラインでは使用不可)
選択中の EC を停止する。(オフラインでは使用不可)
選択中の RTC の、選択中の EC 上での状態をアクティブにする。(オフラインでは使用不可)
選択中の RTC の、選択中の EC 上での状態を非アクティブにする。(オフラインでは使用不可)
選択中の RTC の、選択中の EC 上での状態をリセットする。(オフラインでは使用不可)
選択中の RTC を、選択中の EC からデタッチする。
ただし、RTC 自身が EC のオーナーの場合はデタッチ不可。
システムエディタ上の RTC の選択ダイアログを開き、選択した RTC を EC にアタッチする。

実行レートの編集中の値は、⑥の [Apply] ボタンがクリックされるまで適用されません。また、修正中(未適用)の情報は薄い赤色で表示されます。入力値が不正な場合は赤色で表示されます。

fig25EditRate.png
実行レートの編集中


fig26EditRateError.png
実行レートの設定値が不正な場合


オンラインエディタの場合は EC の操作や、その EC 上での RTC の状態を変更することができます。
[Start] ボタンをクリックすると EC を開始し、プロパティの state が「RUNNING」となり、[Stop] ボタンをクリックすると EC を停止し、state が「STOPPING」となります。
EC 上での RTC の状態を変更するには [Activate]、[Deactivate] ボタンをクリックします。アクティブ化すると、プロパティの component_state が「ACTIVE」となり、非アクティブ化すると component_state が「INACTIVE」となります。
何らかの理由で RTC が「ERROR」状態となったときは、[Reset] ボタンをクリックして復旧します。

fig27ActionAndStatus.png
EC の操作、および RTC の状態変更


RTC は複数の EC にアタッチすることができます。
RTC を追加したい EC を選択して、[Attach] ボタンをクリックすると、RTC の選択ダイアログが開きます。選択ダイアログには、システムエディタ上にある RTC の一覧が表示されます。

fig28SelectDialog.png
RTC 選択ダイアログ


RTC を選択して [OK] をクリックすると、EC に RTC が追加され、追加した RTC の participate ECの一覧に新しく EC が追加されます。

fig29AttachContext.png
EC への RTC のアタッチ


EC のアタッチを解除するには、participate の EC を選択して [Detach] ボタンをクリックします。

fig30DetachContext.png
EC から RTC をデタッチ


ビュー(ログビュー編)

ここではログビューについて説明します。

fig31LogView.png
ログビューの位置


ログビューは、選択したダイアグラム上のログ収集対象の RTC 一覧を表示し、RTC から通知されたログメッセージを表示します。
表示したい RTC を選択でき、また、ログレベルによって表示をフィルタリングすることもできます。

fig32LogView.png
ログビュー


ログビューの画面構成

No. 説明
選択中のダイアグラム内の RTC のうち、ログ収集対象となっているものの一覧を表示。
ここでチェックをつけた RTC のログが表示される。
表示するログレベルのしきい値を指定。
指定されたレベル以上のログメッセージを表示する。
ログメッセージを表示。
RTC の選択、およびログレベル指定により、表示をフィルタリングする。
表示項目は次のとおり。
・タイムスタンプ
・ログレベル(SILENT/ERROR/WARN/INFO/DEBUG/TRACE/VERBOSE/PARANOID)
・RTC のインスタンス名
・ログ通知対象
・ログメッセージ

ダイアグラムを選択すると、ダイアグラム上のログ収集対象 RTC の一覧を①に表示します。ログは、ログ通知オブザーバー機能により RTC から通知され、オブザーバーを登録したものがログ収集対象となります。
一覧からログを表示したい RTC を選択(チェック)すると、③のログ表示テーブルにメッセージを表示します。
また、ログメッセージはログレベルによって表示をフィルタリングすることができます。②のコンボボックスでしきい値となるレベルを選択すると、選択したレベル以上のログのみ表示します。たとえば、コンボボックスで「INFO」を選択すると、「ERROR」「WARN」「INFO」のメッセージのみ表示されます。

fig33LogFiltering.png
ログ表示のフィルタリング


ビュー(プロパティビュー編)

ここではプロパティビューについて説明します。

fig34propertyView.png
プロパティビューの位置


プロパティビューでは、 System Dialog で選択された RTC やコネクタのプロファイル情報をリアルタイムに表示します。( RTC の選択中であっても変更が検出されれば即座に反映されます)

RTCの場合 複合RTCの場合 マネージャの場合
fig353TypePropertyView1.png
fig353TypePropertyView2.png
fig353TypePropertyView3.png

プロパティビュー


表示されるアイコンの意味は以下のとおりです。

プロパティアイコンの一覧

No. アイコン 名前 表示内容
1
IconRTC2.png
RTC InstanceName、TypeName、Description、Vender、Category、State(※1番目の ExecutionContext の LifeCycleState を基にして表示される)
2
IconExecContext.png
ExecutionContext State、Kind、Rate
3
IconServicePort.png
ServicePort Name、プロパティ情報のリスト
4
IconOutPort.png
Outport Name、プロパティ情報のリスト
5
IconInPort.png
Inport Name、プロパティ情報のリスト
6
IconPIP.png
PortInterfaceProfile InterfaceName、TypeName、PortInterfacePolarity
7
IconMgr.png
マネージャー Components (生成したコンポーネント名のリスト)
Loadable Modules (ロード可能なモジュール名のリスト)
Loaded Modules (ロード済みのモジュール名のリスト)
なお、RTC の仕様では、RTC のLifeCycleState は ExecutionContext ごとに存在します。したがって、状態は複数存在しますが、RT System Editorでは1番目の ExecutionContext のみを使用して STATE を 表示します。

システムエディタ(基本操作編)

ここでは、システムエディタの概要と基本操作について説明します。

概要

システムエディタでは、RTC の状態がリアルタイムで表示されます。またポート間の接続や、RTC の状態を変更することでシステム構築、動作検証を行うことができます。

fig36SystemEditer.png
fig37SystemEditer.png
システムエディタの位置 システムエディタ

基本操作

RTC のポート間の接続方法と RTC を実行する方法を説明します。

システムエディタを開く

新しいシステムエディタを開くには、ツールバーの [Open New System Editor] ボタンをクリックするか、メニューバーの [File] > [Open New System Editor] を選択します。

fig38OpenNewSystemEditorFromToolbar.png
ツールバーから Open New System Editor


fig39FileOpenNewEditor.png
Fileメニューから Open New System Editor


RTC をシステムエディタに配置する

RTC をシステムエディタに配置するには、ネームサービスビューから RTC をドラッグ&ドロップします。

fig40EditorComponentDnD.png
RTC をシステムエディタに配置する


ネームサービス上で [Ctrl] キーを押しながらクリックし、複数RTC を選択すれば、まとめてシステムエディタ上へ配置することができます。

fig41EditorComponentMultiDnD.png
複数の RTC をまとめてシステムエディタに配置する


なお、すでにシステムエディタ上に配置された RTC、もしくは複合RTC の親RTC、子RTCを重複して追加することはできません。 複数 RTC の配置では重複する RTC はスルーされ、単体RTC の配置ではエラーダイアログが表示されます。

fig42DeployComponentError.png
RTC 配置の重複エラーダイアログ


RTC の状態を変更する

ここでは、 RTC の状態を変更する方法を説明します。
システムダイアグラムでは、RTCを選択し、「Activate」、「Deactivate」、「Reset」、「Finalize」、「Exit」、「Start」、「Stop」を実行することができます。 また、ネームサービスビューでも同様に実行することができます。

fig51RTCStatusChangeNS.png
fig51RTCStatusChangeEditor.png

ネームサービスビュー(左)とシステムエディタ(右)から RTC 状態を変更する


これらのアクションの意味は以下のとおりです。実行先にご注意ください。

RTCの状態を変更するアクション

No. アクション名 実行先 意味
1 Activate 選択された RTC とその1番目の ExecutionContext に対して実行 Activate を要求する
2 Deactivate Deactivate を要求する
3 Reset Reset を要求する
4 Exit 選択された RTC に対して実行 Exit を要求する
5 Start 選択された RTC の1番目の ExecutionContext に対して実行 Start を要求する
6 Stop Activate を要求する

設定画面」のオンラインエディタの項目で、アクションの実行確認を有効にしている場合は、アクションの実行前に確認のダイアログが表示されます。

fig52RTCStatusChangeConfirm.png
アクションの実行確認ダイアログ


初期設定では、事前確認を行わないようになっています。
Activate、Deactivate については、ショートカットキーが割り当てられています。初期設定では以下の設定になっています。
・Activate → Ctrl + Alt + A
・Deactivate → Ctrl + Alt + D
キーバインドを変更するには、Eclipse 標準の設定メニューの「一般」→「キー」で設定することができます。
また、簡易にシステムを操作するための機能として、システムエディタに含まれるすべての RTC へ Activate、Deactivate、Start、Stop、変更を要求することがツールバーとコンテキストメニューからできます。

fig53AllExec.png
All 実行(ツールバーは左からAll Activate、All Deactivate、All Start、All Stop)


All 系のアクションは、1番目以外の ExecutionContext についても行われます。 Activate やStart を画面内の RTC に1つずつおこなった場合と結果が異なることにご注意ください。

ポート間を接続する

システムエディタでは、 RTC のポート間を接続することができます。
ポート間を接続するには、ポートとポートをドラッグ&ドロップでつなぎます。

fig54ConnectPort.png
ポート間接続


ドラッグ&ドロップ終了後、接続に必要な情報の入力を促すダイアログが表示されます。

fig55ConnectorProfileDialog.png
ConnectorProfileダイアログの例


このダイアログでは、 ConnectorProfile を作成します。 ConnectorProfile は、それぞれのポートが必要とする条件が満たされるように作成される必要がありますが、このダイアログは必要な条件を満たす値のみが入力されるようプルダウンで促します。 必要な条件を満たすことができない接続の場合には、ドラッグ&ドロップの接続時に禁止マークが表示され、ドラッグ&ドロップを行うことができません。

fig56ConnectedProhibitionMark.png
接続禁止マーク


ポート間の接続は、大きくデータポート間接続とサービスポート間接続に分かれます。詳細については「システムエディタ(ポート間の接続 編)」を参照願います。

ポート間の接続を切断する

ポート間の接続を切断するには、接続を選択し [Delete] ボタンをクリックするか、コンテキストメニューに表示される [Delete] をクリックします。

fig61Disconnect.png
接続の削除


ポート間の接続をすべて切断する

ポートの接続をすべて切断するには、ポートを選択して、右クリックし「All Disconnect」を実行します。

fig62AllDisconnect.png
接続の全切断


単独ポートの接続を設定する

単独のポート接続へ ConnectorProfile を設定することができます。
ポートを右クリックし、コンテクストメニューから「Connect」を選択すると、ポート間接続のときと同様に、ConnectorProfile の設定ダイアログが開きます。

fig63ConnectSinglePort.png
単独のポート接続


単独のポート接続を削除するには、同じく右クリックのコンテキストメニューから「Disconnect」を選択し、ポート切断ダイアログから操作します。 ダイアログに表示された ConnectorProfile の一覧から対象を削除し、[OK] ボタンをクリックすると切断処理が実施されます。

fig64DisconnectPort.png
ポートの切断


fig65DisconnectPortDialog.png
ポートの切断ダイアログ


なお、ポート切断ダイアログには単独ポート接続や、通常のポート間接続のすべての ConnectorProfile の一覧が表示されるので、ダイアグラムに描画されない単独ポート接続の確認にも利用できます。

ログを収集する

ログ通知オブザーバにより、RTC のログメッセージをツールで収集することができます。(OpenRTM-aist 1.1以降)
ダイアグラム上の RTC を右クリックし、コンテキストメニューの「Start Logging」を選択するとログ収集を開始します。 すでにログ収集を開始している RTC の場合は、メニュー表示が「Stop Logging」となり、ログ収集を停止します。
なお、オブザーバに対応していない RTC の場合は、メニューが非活性となります。

ログ収集の開始 ログ収集の停止
fig79LoggingStart.png
fig79LoggingStop.png

ログ収集の開始/停止

ログ収集は、状態通知オブザーバと同様、ログ通知のオブザーバの参照を RTC に登録し、通知を受けます。 コンテキストメニューからログ収集開始時にオブザーバを登録し、ログ収集停止時にオブザーバを解除します。 また、状態通知オブザーバと同じく、ダイアグラムから RTC を削除するとオブザーバを解除します。
ログ通知では、時刻やログレベルを含んだデータ構造(ログレコード)が RTC から送られ、ツールはログのデータを蓄積します。 蓄積されたログは、ログビューを使って参照することができます。

fig80LogObserver.png
ログ通知オブザーバ


システムエディタ(複合コンポーネン編)

複合コンポーネントの操作を説明します。

複合コンポーネントを作成する

複数のコンポーネントをまとめて複合コンポーネントにすることができます。
複合コンポーネントにしたいコンポーネントを選択して、右クリックして「Create Composite Component」を選択すると、複合コンポーネント生成ダイアログが表示されます。

fig66CreateCompositeComponent.png
複合コンポーネントの作成


fig67CompositeComponentDialog.png
複合コンポーネント生成ダイアログ


ダイアログの各項目は以下のとおりです。

複合コンポーネント生成のダイアログ項目と必要条件

No. ダイアログ説明 説明
Manager ネームサービスビューに表示されているマネージャ一覧からマネージャを選択します。ここで選択されたマネージャが複合コンポーネントを生成します。
Name 複合コンポーネントのインスタンス名を指定します。
Type 複合コンポーネントの種別を指定します。指定可能な種別は以下のとおり。
[PeriodicECShared]
各RTCが ExecutionContext のみを共有する形で動作します。各RTCの状態は独立しているため、複合コンポーネント内で複数の状態が存在することもあります。
[PeriodicStateShared]
各RTCが同一の ExecutionContext を共有するとともに、状態も共有する形で動作します。
[Grouping]
各RTCが何も共有しない複合コンポーネントで、各RTCがそれぞれ ExecutionContext、状態を保持します。
Path 複合コンポーネントに設定するパスを指定します。
Port 子のコンポーネントのポート一覧から、複合コンポーネントに表示するポートを選択します。
ここで選択されたポートに対して、複合コンポーネントにプロキシ用のポートが作成されます。
- ポートの全選択・全解除ボタン

複合コンポーネントを作成すると、子のコンポーネントとして選択していたコンポーネントはシステムエディタ上から表示が消え、新しい複合コンポーネントが描画されます。
複合コンポーネントのダイアグラムをダブルクリックするか、右クリックして「エディタで開く」を選択すると、新しいシステムダイアグラムが開き、複合コンポーネント内部が表示されます。

fig68CompositeOpenWithSE.png
複合コンポーネントをシステムエディタで開く


fig69ViewCompositeComponent.png
複合コンポーネント内を表示するシステムエディタ


※ ただし、システム構成の保存時には、コンポーネントの描画情報はコンポーネントに対して1つしか保存できないため、複合コンポーネント内を表示するシステムダイアグラムで変更した描画情報は保存されません。

複合コンポーネントの子を追加する

複合コンポーネント内を表示するシステムエディタを開いて、ネームサービスビューから RTC をドラッグ&ドロップすることで、複合コンポーネントの子が追加されます。追加された子RTCのポートはすべて非公開に設定されます。

fig70CompositeComponentAddRTC.png
子RTCの追加


複合コンポーネントの子を削除する

複合コンポーネント内を表示するシステムエディタを開いて、そこで子のコンポーネントを削除することで、複合コンポーネントの子が削除されます。
削除された子のコンポーネントは、複合コンポーネント内から表示が消え、元のシステムダイアグラム(複合コンポーネント自身が表示されているダイアグラム)に表示されます。

fig71DeleteChildComponent.png
複合コンポーネント内から子のコンポーネントを削除


fig72ChildComponent.png
複合コンポーネントが表示されているシステムエディタ上に子のコンポーネント表示


複合コンポーネントを削除する

複合コンポーネント上で右クリックして「Delete」を選択すると、複合コンポーネントがダイアグラムから削除されます。
削除時に複合コンポーネントを別のシステムダイアグラムで開いていると、エディタの終了確認のダイアログが表示されます。

fig73DeleteCompositeComponent.png
複合コンポーネントの削除


fig74CloseCompositeComponentDialog.png
複合コンポーネントを表示するエディタの終了確認ダイアログ


複合コンポーネントを解除する

複合コンポーネント上で右クリックして「Decompose Composite Component」を選択すると、複合コンポーネントへexist()が送られ、コンポーネント自体を終了します。
解除時に複合コンポーネントを別のシステムダイアグラムで開いていると、エディタの終了確認のダイアログが表示されます。
複合コンポーネントが解除されると、子のコンポーネントが元のシステムダイアグラム(複合コンポーネントが表示されていたダイアグラム)に表示されます。

fig75DecomposeCompositeComponent.png
複合コンポーネントの解除


fig76CloseCompositeComponentDialog.png
複合コンポーネントを表示するエディタの終了確認ダイアログ


ポートの公開/非公開を切り替える

複合コンポーネント内を表示するシステムエディタにあるコンポーネントのポートが複合コンポーネント上に公開されている場合、下記のように別のアイコンで表示されます。

子RTCの公開されているポートのアイコン

No. 名前 形状
1 InPort
IconExportedInPort.png
2 OutPort
IconExportedOutPort.png
3 ServicePort
IconExportedServicePort.png

公開されているポートを右クリックして、「Unexport」を選択すると、そのポートが公開されていない状態に変わります。また、公開されていないポートを右クリックして、「Export」を選択すると、そのポートが公開されている状態に変わります。

fig77ExportPort.png
fig77UnexportPort.png

ポートの公開/非公開


ただし、ポートが別のコンポーネントのポートと接続されている場合は、「Unexport」にすることができません。

fig78CantUnexport.png
ポートの接続がある場合


システムエディタ(セーブ編)

システムエディタのセーブとオープンについて説明します。

システムエディタをセーブする

システムエディタはセーブすることができます。セーブするには、メニューの [File] もしくはエディタを右クリックして「Save」を選択します。(「Save As…」では、セーブするファイルを任意選択することができます)

fig81SaveSystemEditor2.png
fig81SaveSystemEditor3.png
システムエディタのセーブ メニュー コンテキストメニュー


システムのセーブを選択すると、プロファイル情報ダイアログが開き、必要な項目を設定して [OK] ボタンをクリックすると、システムの情報がファイルにセーブされます。

fig82ProfileInfomationDialog.png
プロファイル情報ダイアログ


プロファイル情報の項目

名前 形状
Vendor ベンダ名。RTシステムの識別子を構成する要素。
必須項目。
System Name システム名。RTシステムの識別子を構成する要素。
必須項目。
Version システムのバージョン。RTシステムの識別子を構成する要素。
必須項目。
Path システムをセーブするファイル名。
必須項目。
Update Log バージョンの補足説明などを記述。
Required RTシステムを動作させるのに必須の RTC にチェックをつける。

セーブしたシステムエディタをオープンする

セーブしたシステムエディタをオープンするには、エディタを右クリックして「Open」を選択します。

fig83OpenSavedSystemEditor.png
システムエディタをオープンする


オープン後は、 RT System Editor はリモートのシステムを正として最新の情報へと更新を行います。セーブ内容をシステムへ復元するには、次の節で説明する「Open and Restore…」を使用してください。

セーブしたシステムをオープンおよび復元する

セーブしたシステムエディタをオープンおよび復元するには、エディタを右クリックして「Open and Restore...」、もしくは「Open and Quick Restore...」を選択します。

fig84OpenAndRestore.png
システムエディタをオープンおよび復元する


システムへ復元されるのは以下の内容です。
  • ポート間の接続(セーブ時のコネクタが存在しない場合)
  • コンフィグレーション情報
    復元時には、コンポーネントのパスIDでネームサービスを検索してリモートのコンポーネントを取得します。
    「Quick Restore」を選択した場合は、ネームサービスにアクセスする前に、プロファイルに保存された IOR にてリモートのコンポーネントの取得を試み、取得できなかった場合にネームサービスから検索を行います。
    復元に失敗した場合には、エラー内容が表示されます。
    fig85ErrorMessageOfRestorationFailure.png
    復元失敗のエラーメッセージ

また、RT System Editorはエラー発生時でも、できる限りの復元を試みます。

システムエディタ(RTC の表示 / 描画編集 編)

RTC の表示と RTC の描画編集の操作を説明します。

RTC の表示

システムエディタに配置された RTC は矩形で表示され、ポートはその矩形の周りに表示されます。また、それぞれの状態が色で表現されます。

fig43RTCDisplayExample.png
RTC 表示の例


アイコンと状態色の一覧は以下のとおりです。

コンポーネントとポートのアイコン

No. 名前 形状 状態 デフォルト色(※)
RTC
IconShape.png
CREATED
IconWhite.png
White
INACTIVE
IconBlue.png
Blue
ACTIVE
IconLightGreen.png
Light Green
ERROR
IconRed.png
Red
UNKNOWN
IconBlack.png
Black
2 Execution Context
(1番目のみ)
(RTCの矩形の外周線) RUNNING
IconGray.png
Gray
STOPPED
IconBlack.png
Black
3 InPort
IconInport.png
未接続
IconBlue.png
Blue
接続済(1つ以上)
IconLightGreen.png
Light Green
4 OutPort
IconOutport.png
未接続
IconBlue.png
Blue
接続済(1つ以上)
IconLightGreen.png
Light Green
5 ServicePort
IconServiceport.png
未接続
IconLightBlue.png
Light Blue
接続済(1つ以上)
IconCyan.png
Cyan

※各状態の色は、設定画面の 表示色 にて変更することができます。

また、RTC の種別やカテゴリに合わせてアイコン画像をつけることができます。

fig44RTCDisplayIconExample.png
RTC のアイコン画像表示の例


※アイコン画像は、設定画面の アイコン にて変更することができます。

RTC の同期

システムエディタへ配置した RTC の状態を監視し、リアルタイムに表示を更新します。
監視方法には状態通知オブザーバ方式(OpenRTM-aist 1.1以降)、もしくはポーリングによる周期チェックがあり、設定画面の接続にて監視パラメーターを変更することができます。
システムエディタへ RTC を配置するときに、ミドルウェアのバージョンをチェックし、オブザーバ対応であれば RTC へオブザーバを登録します。オブザーバ未対応の場合は周期的に状態の問い合わせを行います。

fig45StatusObserver.png
状態通知オブザーバー


システムエディタから RTC を削除すると、オブザーバも解除します。
状態通知オブザーバが通知する内容は次のとおりです。

状態通知オブザーバの通知内容

通知 説明
COMPONENT_PROFILE RTC のコンポーネントプロファイルに変更があった場合に通知
RTC_STATUS RTC の状態
新しい状態と対象となる EC の ID を通知
EC_STATUS 実行コンテキストの状態
実行レートの変更、EC の開始/停止、RTC のアタッチ/デタッチを通知
PORT_PROFILE ポートの状態
ポートの追加/削除、コネクションの接続/切断を通知
CONFIGURATION コンフィグレーションの状態
コンフィグレーションの追加/変更/削除、アクティブなコンフィグレーションの切り替えを通知
また、RTC の生存確認のため、一定間隔でハートビートを通知します。
ハートビートが一定回数通知されないと、RTC が異常終了したとみなしてシステムエディタ上から削除します。

RTC の描画編集

ここでは、RTC の描画編集について説明していきます。(「編集」ではなく「描画編集」とあえてしているのは、ここで説明される作業は描画の編集であり、システムに対する影響は全くないためです。)

  • RTC の大きさの変更と移動(システムに対する影響なし)
    RTC を移動するには、RTC を選択後、ドラッグして動かします。 RTC の大きさを変更するには、 RTC を選択することで表示されるハンドルをドラッグして動かします。
    fig46RTCMoveResize.png
    RTC の移動(左)とRTC の大きさの変更(右)


また、選択された RTC の位置と大きさがステータスバーに表示されます。

fig47StatusBar.png
ステータスバー


  • RTC の回転(システムに対する影響なし)
    対象のコンポーネントを選択し、Ctrlキーを押しながらマウスの右ボタンをクリックすることで、水平の向きへ回転します。Shiftキーを押しながらマウスの右ボタンをクリックすることで、垂直の向きへ回転します。それぞれ同じ操作を繰り返し行うことで逆の水平の向き、逆の垂直の向きへ変更でき、上下左右の向きへ操作することができます。
    fig48RTCRotate.png
    回転された RTC

  • RTC の削除(システムに対する影響なし)
    RTC を削除するには、RTCを選択し [Delete] ボタンをクリックするか、コンテキストメニューから [Delete] を選択してください。
    fig49DeleteComponent.png
    RTC の削除

  • ポート間の接続線を移動する(システムに対する影響なし)
    接続線を移動するには、接続線を選択し表示されるハンドラを移動します。垂直線は左右に、水平線は上下に移動することができます。
    fig50MoveConnection.png
    垂直線(左)と水平線の(右)の接続線の移動

システムエディタ(ポート間の接続 編)

データポート間、サービスポート間の接続について説明します。

データポート間接続

データポートの接続で、「InPort」と「OutPort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。なお、初期表示時には「Buffer」の設定項目は隠れています。

fig57DataConnectDialog.png
データポートのコネクタプロファイルダイアログ


ダイアログの項目と条件は以下のとおりです。

データポート接続のダイアログ項目と必要条件

ダイアログ項目名 ConnectorProfile 必要条件
Name name 特になし
Data Type <<properties>>
dataport.data_type
このコネクタで接続されているデータポート間で送受信するデータ型を指定します。
それぞれのポートで互いに送受信可能なデータ型から選択します。ただし、Any を含む場合は相手ポートのどのような値も許容します。
Instance Type <<properties>>
dataport.interface_type
RTシステム設計者が想定する、もしくは RTC が動作する RTミドルウェア上でサポートされているインターフェース種別を指定します。
それぞれのポートで互いにサポートしているインターフェース種別から選択します。ただし、Any を含む場合は相手ポートのどのようなインターフェースも許容します。
Dataflow Type <<properties>>
dataport.dataflow_type
RTシステム設計者が想定する、もしくは RTC が動作する RTミドルウェア上でサポートされているデータフロー型を指定します。
それぞれのポートで互いにサポートしているデータフロー型から選択します。ただし、Any を含む場合は相手ポートのどのようなデータフローも許容します。
Subscription Type <<properties>>
dataport.subscription_type
[Dataflow Typeの値がPushの時に必要な条件]
RTシステム設計者が想定する、もしくはRTCが動作するRTミドルウェア上でサポートされているサブスクリプション種別を指定します。
それぞれのポートで互いにサポートしているサブスクリプション種別から選択します。ただし、Anyを含む場合は相手のどのようなサブスクリプション種別も許容します。
Push Rate(Hz) <<properties>>
dataport.push_interval
[Dataflow Typeの値が”Push”でかつSubscription Typeが”Periodic”の時に必要な条件]
サブスクリプション種別が「Periodic」な場合にデータの送信周期を指定します。送信周期は正数値(小数可)で指定します。
Push Policy <<properties>>
dataport.publisher.push_policy
データ送信ポリシー。[Dataflow Typeの値が”Push”でかつSubscription Typeが”Periodic”の時に必要な条件]all、fifo、skip、new から選択します。
all:バッファ内のデータを一括送信
fifo:バッファ内のデータをFIFOで1個ずつ送信
skip:バッファ内のデータを間引いて送信
new:バッファ内のデータの最新値を送信(古い値は捨てられます。)
Skip Count <<properties>>
dataport.publisher.skip_count
送信データスキップ数。[Push Policy の値が”skip”の時に必要な条件]バッファ内のデータがこの設定値で間引されて送信されます。
詳細 チェックボックスをチェックすると、入出力ポートのバッファの詳細設定項目が表示されます。
ダイアログの初期表示時は隠れています。

Buffer length
(OutPort/InPort)
<<properties>>
buffer.length
バッファの長さ

Buffer full policy
(OutPort/InPort)
<<properties>>
buffer.write.full_policy
バッファへのデータ書き込み時に、バッファフルだった場合の挙動。overwrite、do_nothing、block から選択します。
overwrite:データを上書きします。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後書き込み不可能であればタイムアウトします。 デフォルトは overwrite (上書き)です。

Buffer write timeout
(OutPort/InPort)
<<properties>>
buffer.write.timeout
バッファへのデータ書き込み時に、タイムアウトアウトイベントを発生させるまでの時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0を設定した場合はタイムアウトしません。

Buffer empty policy
(OutPort/InPort)
<<properties>>
buffer.read.empty_policy
バッファからのデータ読み出し時に、バッファが空だった場合の挙動。readblock、do_nothing、block から選択します。
readblock:最後の要素を再読み出します。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後読み出し不可能であればタイムアウトします。 デフォルトは readbackです。

Buffer read timeout
(OutPort/InPort)
<<properties>>
buffer.read.timeout
バッファからのデータ読み出し時に、タイムアウトイベントを発生させるための時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0 を設定した場合はタイムアウトしません。

Name/Value <<properties>>
Name
任意のプロパティを設定
[追加] ボタンで項目の追加、[削除] ボタンで項目の削除が可能です。
入力された項目は NVList の形式で ConnectorProfileのProperties に設定されます。
同一 Key の Property は設定する事はできません。

②~⑤までの項目について、RT System Editor は指定可能な値を、それぞれのポートの値リストから文字列のマッチングを行って作成します。 双方のポートに対して ANY しか指定されていないような場合には、入力可能な値を判断することができません。 このため、双方のポートに ANY が含まれている場合に、RT System Editor は任意の文字列を入力できるようにしています。任意の文字列が入力可能な項目には、「任意入力可」と表示されます。

fig58ConnectParamAny.png
任意入力可のときの表示


サービスポート間接続

サービスポート間の接続では、「ServicePort」と「ServicePort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。

fig59ServiceConnectDailog.png
サービスポートのコネクタプロファイルダイアログ


ダイアログの項目と条件は以下のとおりです。

サービスポート接続のダイアログ項目と必要条件

ダイアログ項目名 ConnectorProfile 必要条件
Name Name 特になし
詳細 チェックボックスをチェックすると、Consumer/Provider の詳細設定項目が表示されます。
ダイアログの初期表示時は隠れています。
Consumer 接続するサービスポートに設定されたインターフェースの Consumer のリストから選択します。
ComboBox の選択リストには<コンポーネント名>:<インターフェース名>:<インスタンス名>の形式で表示されます。
追加された Consumer/Provider のペアは、ConsumerのIDをプロパティのキー、Provider の ID をプロパティの値として、ConnectorProfile に格納されます。
なお、Consumer/Provider の ID は以下の形式で表現します。
<rtc_name>.port.<port_name>.<if_polality>.<if_tname>.<if_iname>
- rtc_nameはコンポーネント名
- port_name はポート名
- if_polalityは Consumer は「required」、Provider は「provided」
- if_tnameはインターフェースのタイプ名
- if_inameはインターフェースのインスタンス名
Provider <<properties>>
Consumer の ID をキーとして設定
Consumerと同様、接続するサービスポートに設定されたインターフェースの Provider のリストから選択します。
Add Consumer/Provider の新規エントリを追加します。
Delete 選択中の Consumer/Provider のエントリを削除します。

Name/Value <<properties>>
Name
任意のプロパティを設定
[追加] ボタンで項目の追加、[削除] ボタンで項目の削除が可能です。
入力された項目は NVList の形式で ConnectorProfile の Properties に設定されます。
同一 Key の Property は設定する事はできません。

サービスポートの場合、必須となる接続の条件はありません。しかし、 ServicePort 間での PortInterfaceProfile が完全にマッチング(※1)しない場合、接続ダイアログにて警告を表示します。

fig60ServicePortWarningDialog.png
サービスポートの接続ダイアログの警告表示


※1 ここでいう完全なマッチングとは、PortInterfaceProfile の「type」が同じで、「polarity」がお互いに PROVIDED と REQUIred になっていること。 また余りなく(PortInterfaceProfile はそれぞれのポートに複数存在する)すべての PortInterfaceProfile がマッチングすることを指しています。

オフラインシステムエディタ

概要

ここでは、オフラインシステムエディタの概要について説明します。

fig86OfflineSysetmEditor.png
オフラインシステムエディタの位置


オフラインシステムエディタでは、レポジトリビュー上のコンポーネントをドラッグ&ドロップでダイアグラムに追加することで、RTシステムの編集を行います。基本的な操作はオンラインのシステムエディタと同じですが、RTC の状態を変更することはできません。また、リアルタイムに RTC の状態が変更される、または更新されることもありません。

基本機能

オフラインシステムエディタを開く

新しいオフラインシステムエディタを開くには、ツールバーの「Open New Offline System Editor」ボタンをクリックするか、メニューバーの [File] > [Open New Offline System Editor] を選択します。

fig87OpenNewOfflineSystemEditorFromToolbar.png
ツールバーから Open New Offline System Editor


fig88FileOpenNewOfflineEditor.png
Fileメニューから Open New Offline System Editor


コンポーネント仕様をオフラインシステムエディタに配置する

コンポーネント仕様をオフラインシステムエディタに配置するには、リポジトリビューからコンポーネント仕様をドラッグ&ドロップします。

fig89OfflineEditorComponentDnD.png
コンポーネント仕様をオフラインシステムエディタに配置する


リポジトリビュー上で Ctrlキーを押しながらクリックし、複数コンポーネント仕様を選択すれば、まとめてオフラインシステムエディタ上へ配置することができます。

fig90OfflineEditorComponentMultiDnD.png
複数のコンポーネント仕様をまとめてオフラインシステムエディタに配置する


コンポーネント仕様をオフラインシステムエディタで編集する

オフラインシステムエディタでは、システムエディタで行えることのうち、実行時コンポーネントの動作に関すること以外のほとんどの操作を、システムエディタと同様の操作で行うことができます。

デプロイ機能

ここでは、オフラインシステムエディタを使用したデプロイ機能の概要について説明します。
デプロイ機能を用いることで、オフラインシステムエディタで作成したオフラインプロファイルから実際のシステム構築を行うことが可能となります。

デプロイ情報の設定

オフラインエディタ上に配置したコンポーネントを右クリックし、表示されたメニュー中から「Set Deploy Info.」を選択すると、デプロイ情報設定画面が表示されます。

fig91DeploySetting.png
デプロイ情報の設定


fig92DeployComp.png
fig92DeployManager.png
稼働中のRTC 稼働中のManager

デプロイ情報設定画面


デプロイ情報設定画面では、現在稼働中の RTC、Manager の一覧が表示されます。対象 RTC をデプロイする際に使用する要素を選択してください。
※デプロイ情報設定画面の内容は、NameServiceView に表示されている項目を使用しています。稼働している要素の情報が表示されない場合は、NameServiceView の表示内容を確認し、必要に応じて Refresh を行ってください。
※複合 RTC を選択した場合、Manager 情報一覧のみが表示されます。デプロイ時に使用する Manager を選択してください。

デプロイ情報の保存・読み込み

設定したデプロイ情報は、RtsProfile とは別に保存、読込する事が可能です。オフラインエディタを右クリックして表示されるメニュー中から「Save Deploy Info.」「Load Deploy Info.」をそれぞれ選択してください。

fig93DeploySave.png
デプロイ情報の保存・読み込み


※デプロイ情報を読み込む際には、コンポーネントID(ベンダ名、カテゴリ名、コンポーネント名、バージョン番号)をキーとして、該当 RTC の検索を行います。

デプロイの実行

設定したデプロイ情報を基に、実際のシステムを構築(デプロイ)する場合は、オフラインエディタを右クリックして表示されるメニュー内から「Deploy System」を選択します。

fig94Deploy.png
デプロイ


デプロイを実行すると、設定されたデプロイ情報を基に実システムの構築(デプロイ)を行います。そして、新規オンラインエディタを開き、デプロイ結果を表示します。
対象となるオフラインシステム内に、デプロイ情報が設定されていないコンポーネントが存在する場合や、設定したデプロイターゲットがデプロイ時に起動していない場合には、以下のような警告画面が表示されます。

fig95DeployWarning.png
デプロイ時警告画面


警告画面中で「キャンセル」を選択した場合は、デプロイ処理を中断します。[OK] を選択した場合は、起動中のデプロイターゲットを使用して、可能な限りシステムの構築(デプロイ)を実行します。

設定画面

RT System Editor

ここでは、 RT System Editor の設定画面について説明します。 RT System Editor の設定画面は、メニューの [window] > [preferences] > [RT System Editor] で表示することができます。

接続

接続設定では、状態通知オブザーバーのハートビートの設定、および接続周期の設定を行います。
状態通知オブザーバー対応のミドルウェア(OpenRTM-aist 1.1以降)では、オブザーバーへのハートビート送信により RTC の生存確認を行います。ハートビートの設定項目は以下のとおりです。

ハートビートの設定項目

名前 説明
ハートビート有効化 ハートビートによるタイムアウト検出を有効にするかを指定します。
ハートビート受信間隔 ハートビートの受信間隔を指定します。
単位は秒、デフォルトは1.0秒。
ハートビート受信回数 タイムアウト検出のためのハートビートの受信回数を指定します。
受信間隔x受信回数=タイムアウト時間 [秒]
デフォルトは3回。

接続周期は、従来のミドルウェア(OpenRTM-aist 1.0以前)において、システムエディタがシステム情報を収集し、表示へ反映する周期です。
単位はミリ秒、0 を指定した場合には同期は行われません。

fig87ConnectionCycleSetScreen.png
接続周期設定画面


表示色

表示色の設定画面では、システムエディタにて表示される RTC と ExecutionContext 状態の色を設定することができます。 それぞれの状態の意味については、システムエディタのRTCの表示をご覧ください。

fig88DisplayColorSettingScreen.png
表示色設定画面


アイコン

アイコンの設定画面では、システムエディタで表示する RTC に付与されるアイコン画像と、表示対象のパターンを設定することができます。 表示対象は RTC の種別、もしくはカテゴリのパターンを設定します。 アイコン画像の表示イメージは、システムエディタのRTCの表示をご覧ください。

fig89IconSettingScreen.png
アイコン画像設定画面


[Add]、[Edit]、[Delete] ボタンでアイコン画像のエントリを追加、編集、削除します。 [Add]、[Edit] ボタンをクリックするとアイコン画像設定ダイアログが開き、表示対象のパターンとアイコン画像ファイルを設定します。

fig90IconSettingDialog.png
アイコン画像設定画面


表示パターンを設定後、[Apply]、もしくは [OK] ボタンをクリックすると設定が反映されます。
[Import]、[Export] ボタンをクリックすれば、アイコン画像設定の一覧を XML ファイルから読み込み、 XML ファイルへ保存することができます。

オフラインエディタ

オフラインエディタでポート接続時に選択できるパラメーターを設定することができます。
設定可能な項目は [Interface Type]、[Data Flow Type]、[Subscription Type] で、ポート接続時にここで設定したパラメーターから値を選択することができます。 それぞれの意味についてはデータポート間接続を参照してください。

fig91OfflineEditor.png
オフライン設定画面


オンラインエディタ

オンラインエディタで、RTC のアクション実行時に、事前の実行確認を行うかを設定します。 初期値はチェックなし(確認を行わない)です。

fig92OnineEditor.png
オンライン設定画面


RT Name Service View

接続周期

接続周期とは、RT Name Service View がシステムの情報を収集して表示へ反映する周期のことです。&br 接続周期は、ネームサービスビューとシステムエディタの2つがあります。単位はミリ秒で、0 を指定した場合には、同期は行われません。

figNS20ConnectCycle.png
接続周期設定画面


同期

タイムアウト待ち時間は、システムの情報を収集する際、システムとの接続が確立されない場合に待機する時間です(単位はミリ秒)。

figNS21SyncCycle.png
接続周期設定画面


接続周期と同期タイムアウト待ち時間の関係は下図のようになります。
(例 接続周期が1000ms、同期タイムアウト待ち時間が100msの場合)

figNS22SyncCycleAndTimeOut.png
接続周期と同期タイムアウト待ち時間の関係


その他

その他

謝辞

RT System Editor は、以下のライブラリを使用して開発されました。これらのプロジェクトの開発と設計にかかわった方々に感謝します。

Apache Jakarta Commons Lang 2 . 2

Apache Jakarta Commons Lang Copyright 2001-2006 The Apache Software Foundation

This product includes software developed by The Apache Software Foundation.

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

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

画面要素一覧

画面要素名 説明
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 が利用する外部ライブラリの補足情報を指定します。
[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 ドキュメンテーションジェネレーター
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
ソリューションファイルを開く


ビルドの実行

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

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

コンパイル方法 (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/

RTSystemEditor-1.0.0について

RTSystemEditorとは

 現在 OMG にて、ロボット開発の効率を高める Robot Technology Component(以下 RTC)の仕様策定が行われています。この RTC 仕様を実装および適用した共通プラットフォームとして、独立行政法人産業技術総合研究所・知能システム研究部門・タスクインテリジェンス研究グループでは OpenRTM-aist を提供しています。  RT System Editor は、この OpenRTM-aist に含まれる開発ツールの1つであり、RTC をリアルタイムにグラフィカル操作する機能を持っています。また、Eclipse 統合開発環境のプラグインとして作成されており、Eclipse上にて既存のプラグインとシームレスに操作を行うことができます。

概要・システム構築の流れ

OpenRTM-aist RT System Editor 概要

 現在OMGにて、ロボット開発の効率を高める Robot Technology Component(以下 RTC )の仕様策定が行われています。この RTC 仕様を実装および適用した共通プラットフォームとして、独立行政法人産業技術総合研究所・知能システム研究部門・統合知能研究グループではOpenRTM-aistを提供しています。
 RT System Editor は、この OpenRTM-aist に含まれる開発ツールの1つであり、RTC をリアルタイムにグラフィカル操作する機能を持っています。また、その名前のとおり Eclipse 統合開発環境のプラグインとして作成されており、Eclipse上にて既存のプラグインとシームレスに操作を行うことができます。

対象

本ドキュメントは、RTC についての基本知識を既に持っている方を対象としています。RTC の内容については、OMG のドキュメントや こちらを参照してください。

画面例

ここでは、 OpenRTM-aist RT System Editor (以下 RTSystemEditor) の画面例を示します。

fig1InitialOfEclipseStart_1_ja.png
RTSystemEditor の画面例

機能概要

RTSystemEditor は、 RTC をリアルタイムにグラフィカル操作する機能を持っています。提供される機能の一覧は以下のとおりです。

機能概要一覧

機能名称 機能概要
コンポーネントコンフィグレーション表示/編集機能 選択したコンポーネントのコンフィギュレーションプロファイル情報をコンフィグレーションビューに表示し編集する。
コンポーネント動作変更機能 選択したコンポーネントの動作を変更する。
RTシステム組み立て機能 システムエディタ上でシステムの組み立てを行う。
システムセーブ/オープン機能 システムエディタの内容を RTS プロファイルとしてセーブする。RTS プロファイルをシステムエディタでオープンする。システムのポート接続、コンフィグレーションを変更しない)
システム復元機能 RTS プロファイルをシステムエディタでオープンし、プロファイルの内容を元にシステムを復元する。(プロファイルの内容でシステムのポート接続、コンフィグレーションを再構築する)

動作環境

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

環境 備考
Java Development Kit 6 注意:Java1.5(5.0)では動作しません。
Eclipse 3.2.1 Eclipse 本体
Eclipse EMF 2.2.4 EMF+SDO Runtime および XSD Runtime RT System Editor が依存する Eclipse プラグイン
※ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
Eclipse GEF 3.2.2 RT System Editor が依存する Eclipse プラグイン
※ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
Eclipse Java development tools(JDT) ご使用になられる Eclipse のバージョンに合ったものをご使用ください。
RT Name Service View RT System Editorが依存するOpenRTM-aistに含まれる開発ツール
RT Repository View RT System Editorが依存するOpenRTM-aistに含まれる開発ツール

制限

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

インストールおよび起動

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

RTSystemEditor のインストール

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

RT System Editorの起動

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

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


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

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


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


fig4PerspectiveSelection_ja.png
パースペクティブの選択


「 RT System Editor 」を選択することで、 RTSystemEditor が起動します。


fig5InitialOfRTSystemEditorStarts_ja.png
RTSystemEditor の初期起動時画面


ビュー(概要)

RTSystemEditor では、以下のようなビューを使用します。

fig1InitialOfEclipseStart_1_ja.png
fig6RTSystemEditorView_ja.png
fig6RTSystemEditorView2_ja.png

ビュー一覧

ビュー名 説明
ネームサービスビュー RTCが登録されているネームサービスの内容をツリー表示します。
コンフィグレーションビュー 選択されているRTCのコンフィグレーション情報を表示/編集します。
マネージャコントロールビュー 選択されているマネージャを制御します。
複合コンポーネントビュー 選択されている複合RTCのポート公開情報を表示/設定します。
プロパティビュー 選択されているRTCのプロファイル情報を表示します。
システムエディタ RTCをグラフィカルに表示し、RTシステムを作成します。
オフラインシステムエディタ RTリポジトリやローカルのRTコンポーネント仕様ファイルの内容をグラフィカルに表示し、RTシステムを作成します。

この後の節では、各ビューについてそれぞれ解説していきます。

ビュー(ネームサービスビュー編)

ここでは、ネームサービスビューについて解説します。

OpenRTM-aistではRTCを管理・公開するためにネームサービスが使用されており、ネームサービスビューでは、この内容を表示/編集することができます。

機能概要

ネームサービスビューは、RTCをリアルタイムにグラフィカル操作する機能を持っています。提供される機能の一覧は以下のとおりです。

機能概要一覧

No. 機能名称 機能概要
1 ネームサーバ接続/編集機能 ネームサーバに接続し、登録されているコンポーネントをネームサービスビューにツリー形式で表示する。
2 コンポーネントプロファイル表示機能 選択したコンポーネントのプロファイル情報をプロパティビューに表示する。

ネームサービスビューの起動

fig11InitialOfNameServiceViewStart_ja.png
ビューの表示


メニューから[ウィンドウ]-[ビューの表示]-[Name Service View]を指示すると、ネームサービスビューが表示されます。

fig12InitialOfNameServiceViewStart_ja.png
ネームサービスビューの初期起動時画面


同様にEclipseの標準として用意されている「プロパティ」ビューも表示します。

ネームサーバに接続するには

ネームサーバに接続するには、ネームサービスビューの上部に存在するボタンを押下するか、コンテキストメニューにて「ネームサーバを追加」を選択します。

fig13ConnectNameService_ja.png
ネームサーバに接続する


ネームサーバ接続ダイアログでは、IPアドレスおよびポート番号を入力します。(ポート番号が省略された場合には、設定画面で設定されたポート番号が使用されます。デフォルトのポート番号は2809番ポートです)

fig14NameServiceDialog_ja.png
ネームサーバの接続ダイアログ


Eclipseの(再)起動時には最後に接続したアドレスへ自動的に接続します。存在しない場合には、ローカルホストの2809番ポートに接続を試みます。

ネームサーバを画面から削除するには

接続しているネームサーバを画面から削除するには、ネームサーバを選択し「ビューから削除」を実行します。

fig15DeletefromView_ja.png
ネームサーバを画面から削除する


ネームサーバの内容を表示する

接続したネームサーバにコンポーネントが登録されていると、以下のように登録内容がツリー形式で表示されます。

fig16View_ja.png

ネームサービスビュー


各アイコンの意味は以下のとおりです。

ネームサーバアイコンの一覧

アイコン 種類(KIND) 名前
1
IconHostCxt.png
host_cxt ホストコンテキスト
2
IconMgrCxt.png
mgr_cxt マネージャコンテキスト
3
IconCateCxt.png
cate_cxt カテゴリコンテキスト
4
IconModCxt.png
mod_cxt モジュールコンテキスト
5
IconElse.png
上記以外 フォルダ(上記以外のコンテキスト)
6
IconRTC.png
なし RTC
7
IconMgr.png
なし マネージャ
8
IconObj.png
なし オブジェクト(RTC以外のオブジェクト)
9
IconZombi.png
なし ネームサーバにエントリされてはいるが、実体のオブジェクトにアクセスできないゾンビオブジェクト

ネームサービスビューは、接続先の各ネームサーバを常に監視し、表示の同期・更新を行っています。(監視の周期は、設定画面の[[接続周期:]]で変更することができます)。 また、明示的にネームサーバの内容を再取得する場合にはリフレッシュを行うことができます。リフレッシュを行うには、ネームサービスビューの上部に存在するボタンを押下するか、コンテキストメニューにて「更新」を選択します。

fig17Refresh_ja.png
リフレッシュ


ネームサービスビューの表示範囲を変更する

ネームサービスビューでは、RTCの数が多くなることによって操作する範囲が煩雑化するのを防ぐために、表示ルートの位置を移動する機能があります。
表示ルートを移動するには、移動する先を選択し、「次へジャンプ」で移動します。

fig18ChangeView_ja.png
表示ルート変更



fig19ChangeView_ja.png
表示ルート変更例


移動後は、「戻る」で1階層上に上ることができます。また、「ホームへ戻る」で最上位の階層に戻ります。

ネームサービスビューの表示内容をフィルターする

ネームサービスビューでは、RTCの数が多くなることによって操作する範囲が煩雑化するのを防ぐための、もうひとつの方法として、フィルター(表示するエントリの種類を限定)する機能があります。
フィルタを行うには、ネームサービスビューの上部に存在する「フィルタを設定」ボタンを押下します。

fig20NameServiceFilter_ja.png
フィルターの指示


「フィルタを設定」ダイアログでは、非表示にするエントリの種類を、「ビューから除外するエレメントを選択」欄から選択します。

fig21FilterDialog_ja.png
ネームサービスフィルタダイアログ


ネームサービスビューの表示から除外したい要素にチェックをつけると、ネームサービスビューに表示されなくなります。
「Naming object name」を有効にすると、オブジェクト名の条件に一致するものが非表示となります。
オブジェクト名の条件は前方一致と部分一致が選択できます。


fig22Filtering_ja.png
オブジェクト名によるフィルタリング


ネームサービスからエントリを削除する

ネームサービスビューでは、ネームサービスのネーミングオブジェクトのエントリを削除することができます。ネーミングオブジェクトを削除するには、コンテキストメニューにて「ネームサービスから削除」ボタンを押下します。

fig23DeleteFromNameService_ja.png
ネームサービスから削除する


ネームサービスへオブジェクトを登録する

ネームサービスビューで、ネームサービスにオブジェクトのエントリを登録することができます。
オブジェクトを登録するには、配下にオブジェクトを追加したいコンテキストおよびオブジェクトのコンテキストメニューから、「オブジェクトを追加」を指示します。


fig24AddObject_ja.png
オブジェクトを追加する



fig25AddObjectDialog_ja.png
オブジェクト追加ダイアログ


「オブジェクトを追加」ダイアログでは、オブジェクトの名前(name)、種類(kind)、およびIORを指定します。

ネームサービスへコンテキストを登録する

ネームサービスビューで、ネームサービスにコンテキストのエントリを登録することができます。
コンテキストを登録するには、配下にコンテキストを追加したいコンテキストのコンテキストメニューから、「コンテキストを追加」を指示します。


fig26AddContext_ja.png
コンテキストを追加する



fig27AddContextDialog_ja.png
コンテキスト追加ダイアログ


「コンテキストを追加」ダイアログでは、コンテキストの名前(name)、種類(kind)を指定します。
種類(kind)には以下のいずれかの値を選択します。

コンテキストの種類(kind)の一覧

種類(KIND) 名前
1 host_cxt ホストコンテキスト
2 mgr_cxt マネージャコンテキスト
3 cate_cxt カテゴリコンテキスト
4 mod_cxt モジュールコンテキスト
5 上記以外を入力 フォルダ(上記以外のコンテキスト)

ゾンビオブジェクトを削除する

ネームサービスビューには、ゾンビオブジェクトを一括して削除する機能があります。ゾンビオブジェクトをすべて削除するには、ネームサービスビューの上部に存在するボタンを押下します。

fig28KillAllZonbies_ja.png
ゾンビをクリア


ビュー(コンフィギュレーションビュー編)

ここでは、コンフィグレーションビューについて説明します。

fig29WindowOfConfigurationView_ja.png
コンフィグレーションビューの位置


コンフィグレーションビューでは、選択されたRTCのコンフィグレーションを表示/編集することができます。左側にCofigurationSetのリストが表示され、右側にConfigurationSet内のプロパティが表示されます。

fig30ConfigurationView_ja.png
コンフィグレーションビュー


No. 説明
選択されているコンポーネント名。
選択されているConfigurationSet名。
アクティブになっているConfigurationSet。また、アクティブなConfigurationSetを変更することができる。
ConfigurationSetのリスト。
左側で選択されているConfigurationSetのプロパティの名前。
左側で選択されているConfigurationSetのプロパティの値。
ConfigurationSetを追加/削除するボタン。
プロパティを追加/削除するボタン。
設定値の編集ダイアログを開くボタン、および変更内容を適用/キャンセルするボタン。

コンフィグレーションビューで編集中の情報は、⑨の適用ボタンが押下されるまで適用されません。また、修正中(未適用)の情報は赤く表示されます。

fig31ChangeConfigurationView_ja.png
修正中のコンフィグレーションビュー


コンフィグレーションの設定値を編集するには⑨の「Edit Value」ボタンを押下し、編集用のダイアログを開いて編集を行います。

fig32ConfigurationViewDialog_ja.png
コンフィグレーション編集ダイアログ


複数のConfigurationSetがある場合は、ダイアログ上部のタブ(⑩)で編集対象を切替えることができます。
コンフィグレーションの各パラメータには、編集用のwidgetを指定することができ、ConfigurationSetにwidget種別が定義されていれば、指定のwidgetでパラメータを編集できます(⑪)。widget種別にはスライダ、スピナ、およびラジオボタンがあり、widget種別の指定がない場合はデフォルトでテキストボックスを使用します。
また、各パラメータには制約条件を指定することができ、widget種別がスライダ、スピンの場合は制約条件の指定が必須となります。該当のwidget種別が定義されていて、制約条件が指定されていない場合はデフォルトのテキストボックスとなります。

widget種別一覧

widget種別 イメージ 説明
スライダ
IconSlider.png
制約条件で指定された最小値、最大値の範囲をスライダで選択します。テキストボックスへの入力も可能です。
スピナ
IconSpinner.PNG
制約条件で指定された最小値、最大値の範囲をスピナで選択します。小数の精度は制約条件の最小値、最大値の記述に準拠します。ただし、負数の指定はできません。例) 最大値が「10.00」の場合は小数2桁
ラジオボタン
IconRadioButton.png
ラジオボタンで値を選択します。
テキストボックス
IconTextBox.png
通常のテキスト入力で設定します。


各パラメータに制約条件が指定されていると入力値に対して制約条件のチェックが行われ、条件を満たさない場合はフォームを赤で示します。また、「OK」ボタンで編集確定時に変更のあったConfigurationSetの全パラメータに対して制約条件チェックを行い、制約条件を満たさないパラメータがあったときにはエラーダイアログを表示します。

fig33ConfigurationError_ja.png
制約条件チェックエラーの表示


コンフィグレーション編集ダイアログの「Apply」チェックボックス(⑫)をチェックして「OK」ボタンをクリックすると、変更のあったConfigurationSetに対して編集内容の適用が行われます。(⑨と同様)
コンフィグレーションビューに表示される情報は、RTC選択時に最新の情報をキャッシュして表示しています(コンフィグレーションの編集に備えるため)。このため、いつまでも同じRTCを選択し続けると、システムとの情報差が発生します。RTSystemEditorは編集の適用時に、この差を意識することなく編集中の情報を正として完全に上書きしますのでご注意ください。
また、RTCの仕様上では、プロパティのValueにはあらゆるオブジェクトを登録可能ですが、RTSystemEditorから登録/編集できるのは文字列のみとなります。

ビュー(マネージャコントロールビュー編)

ここではマネージャコントロールビューについて説明します。

fig34ManagerControlView_ja.png
マネージャコントロールビューの位置


ネームサービスビューでマネージャを選択すると、マネージャコントロールビューがアクティブになり、選択されたマネージャを制御できるようになります。

fig35ManagerControlView_ja.png
マネージャコントロールビュー

マネージャコントロールビューの画面構成

No. 説明
ロード可能モジュール一覧表示ボタン。
ロード済みモジュール一覧表示ボタン。
コンポーネント一覧表示ボタン。
コンポーネント生成ボタン。コンポーネント作成ダイアログを開き、新しくコンポーネントを生成します。生成されたコンポーネントは③のコンポーネント一覧表示で表示されます。
マネージャ複製ボタン。新しいマネージャを起動します。
マネージャ終了ボタン。選択中のマネージャを終了します。
モジュール、およびコンポーネントの一覧を表示するテーブル。
モジュールをURL指定でロードする場合にURLを指定します。
モジュールのロード、アンロードボタン。⑦のテーブルで選択中のモジュール、もしくはURLで指定したモジュールをロード、アンロードします。


マネージャにモジュールをロードするには「Loadable Modules」ボタンをクリックし、表示されたロード可能モジュールを選択すると、「Load」ボタンが有効になり、クリックするとモジュールがロードされます。
また、「URL:」のテキストボックスにモジュールのURLを入力して「Load」ボタンをクリックすることにより、URL指定でモジュールを追加することもできます。

fig36LoadModule.png
モジュールのロード


モジュールをアンロードするには「Loaded Modules」ボタンをクリックし、表示されたロード済みモジュールを選択すると、「Unload」ボタンが有効になり、クリックするとモジュールがアンロードされます。

fig37UnLoadModule.png
モジュールのアンロード


新しくコンポーネントを生成するには「Create」ボタンをクリックして、コンポーネント生成ダイアログを開き、生成するコンポーネントの種別を選択し、「OK」をクリックするとコンポーネントが生成されます。
生成されたコンポーネントはマネージャによってネームサービスに登録され、「Active Components」ボタンで表示されるコンポーネント一覧に表示されるようになります。

fig38ComponentDialog_ja.png
コンポーネント生成ダイアログ


コンポーネントの種別は、マネージャにロード済みのモジュールで定義されているコンポーネントから選択します。
Parameterにはコンポーネント生成パラメータを指定することができ、「param1=value1&param2=value2」の形式で記述します。以下の共通パラメータは、すべてのコンポーネントで設定可能です。

コンポーネント生成の共通パラメータ

パラメーター名 説明
instance_name コンポーネントのインスタンス名。
指定しない場合はコンポーネント種別(type_name)に通番を付与
type_name コンポーネントの種別
description コンポーネントの説明
version コンポーネントのバージョン
vendor コンポーネントの提供元
category コンポーネントのカテゴリ


また、コンポーネント生成パラメータでConfigurationSetの値も指定することができます。 ConfigurationSetのパラメータは「conf.NNNN.PPPP=VVVV」の形式で、NNNNにはConfigurationSet名、PPPPにはパラメータ名、VVVVには設定値をそれぞれ指定します。
例として、ConsoleInのコンポーネントを生成し、mode1という名前のConfigurationSetを作成し、input_mode、input_cycleというパラメータを指定する場合は以下のようになります。

fig40ConfigurationSet.png
コンポーネント生成時にConfigurationSetパラメータを指定


その他にも、コンポーネントによって任意のパラメータを指定することができます。&br

ビュー(複合コンポーネントビュー編)

ここでは複合コンポーネントビューについて説明します。

fig41CompositeComponentView_ja.png
複合コンポーネントビューの位置


複合コンポーネントビューでは、選択された複合RTCのポート公開情報が表示され、ポートの公開/非公開を設定することができます。

fig42CompositeComponentView_ja.png
複合コンポーネントビュー

複合コンポーネントビューの画面構成

No. 説明
複合RTCのインスタンス名。
複合RTCのタイプ名。
ポートの公開/非公開の状態。
複合RTCに含まれる子RTCのインスタンス名。
複合RTCに含まれる子RTCのポート名。
ポートの公開/非公開の変更を反映させます。
ポートの公開/非公開の変更をキャンセルします。

複合コンポーネントビューで編集中の情報は、⑥の適用ボタンが押下されるまで適用されません。また、修正中(未適用)の情報は薄い赤色で表示されます。また、システムエディタ上で選択したポートは薄い黄色で表示されます。

fig43CompsiteComponentView.png
ポート公開/非公開の編集中


fig44CompsiteComponentView.png
システムエディタ上で選択中のポート


複合コンポーネントのポートが、別のコンポーネントのポートと接続されている場合は、複合コンポーネントビューで該当のポートがグレイで表示され、編集不可となります。

fig45CompsiteComponentView.png

他のポートと接続中の場合


ビュー(プロパティビュー編)

ここではプロパティビューについて説明します。

fig46propertyView_ja.png
プロパティビューの位置


プロパティビューでは、 System Dialog で選択されたRTCやコネクタのプロファイル情報をリアルタイムに表示します。( RTC の選択中であっても変更が検出されれば即座に反映されます)

RTCの場合 複合RTCの場合 マネージャの場合
fig473TypePropertyView1_ja.png
fig473TypePropertyView2_ja.png
fig473TypePropertyView3_ja.png

プロパティビュー


表示されるアイコンの意味は以下のとおりです。

プロパティアイコンの一覧

No. アイコン 名前 表示内容
IconRTC2.png
RTC InstanceName、TypeName、Description、Vender、Category、State(※1番目のExecutionContextのLifeCycleStateを基にして表示される)
2
IconExecContext.png
ExecutionContext State、Kind、Rate
3
IconServicePort.png
ServicePort Name、プロパティ情報のリスト
4
IconOutPort.png
Outport Name、プロパティ情報のリスト
5
IconInPort.png
Inport Name、プロパティ情報のリスト
6
IconPIP.png
PortInterfaceProfile InterfaceName、TypeName、PortInterfacePolarity
7
IconMgr.png
マネージャー Components (生成したコンポーネント名のリスト)
Loadable Modules (ロード可能なモジュール名のリスト)
Loaded Modules (ロード済みのモジュール名のリスト)

なお、RTCの仕様では、RTCのLifeCycleStateはExecutionContextごとに存在します。つまり状態は複数存在しますが、RT Name Service Viewでは1番目のExecutionContextのみを使用してSTATEを表示します。

システムエディタ(基本操作編)

ここでは、システムエディタの概要と基本操作について説明します。

概要

システムエディタでは、RTCの状態がリアルタイムで表示されます。またポート間の接続や、RTCの状態を変更することでシステム構築、動作検証を行うことができます。

fig50SystemEditer_ja.png
fig51SystemEditer_ja.png
システムエディタの位置 システムエディタ

基本操作

RTCのポート間の接続方法とRTCを実行する方法を説明します。

システムエディタを開く

新しいシステムエディタを開くには、ツールバーの「 Open New System Editor 」ボタンを押下するか、メニューバーの [ファイル]-[ Open New System Editor] を選択します。

fig52OpenSystemEditor_ja.png
fig53OpenSystemEditor_ja.png
ツールバーからOpen New System Editor Fileメニューから Open New System Editor

RTCをシステムエディタに配置する

RTCをシステムエディタに配置するには、ネームサービスビューからRTCをドラッグ&ドロップします。

fig54SetComponentSystemEditor_ja.png
コンポーネントをシステムエディタに配置する


RTC の状態を変更する

ここでは、 RTC の状態を変更する方法を説明します。
システムダイアグラムでは、RTCを選択し、「Activate」、「Deactivate」、「Reset」、「Finalize」、「Exit」、「Start」、「Stop」を実行することができます。また、ネームサービスビューでも同様に実行することができます。

fig57RTCStatusChange_ja.png
fig57RTCStatusChange2_ja.png

ネームサービスビュー(左)とシステムエディタ(右)からRTC状態を変更する


これらのアクションの意味は以下のとおりです。実行先にご注意ください。

RTCの状態を変更するアクション

No. アクション名 実行先 意味
1 Activate 選択された RTC とその1番目の ExecutionContext に対して実行 Activate を要求する
2 Deactivate Deactivate を要求する
3 Reset Reset を要求する
4 Finalize 選択されたRTCに対して実行 Finalize を要求する
5 Exit Exit を要求する
6 Start 選択された RTC の1番目の ExecutionContext に対して実行 Start を要求する
7 Stop Activate を要求する

また、簡易にシステムを操作するための機能として、システムエディタに含まれるすべての RTC へActivate、Deactivate、Start、Stop、変更を要求することがツールバーとコンテキストメニューからできます。

fig58AllExec_ja.png
All実行 (ツールバーは左からAllActivate,AllDeactivate,AllStart,AllStop)


All 系のアクションは、1番目以外の ExecutionContext についても行われます。 Activate やStart を画面内の RTC に1つずつおこなった場合と結果が異なることにご注意ください。

ポート間を接続する

システムエディタでは、 RTC のポート間を接続することができます。
ポート間を接続するには、ポートとポートをドラッグ&ドロップでつなぎます。

fig26ConnectPort.png
ポート間接続


ドラッグ&ドロップ終了後、接続に必要な情報の入力を促すダイアログが表示されます。

fig27ConnectorProfileDialog_ja.png
ConnectorProfileダイアログの例


このダイアログでは、 ConnectorProfile を作成します。 ConnectorProfile は、それぞれのポートが必要とする条件が満たされるように作成される必要がありますが、このダイアログは必要な条件を満たす値のみが入力されるようプルダウンで促します。 必要な条件を満たすことができない接続の場合には、ドラッグ&ドロップの接続時に禁止マークが表示され、ドラッグ&ドロップを行うことができません。

fig28ConnectedProhibitionMark_ja.png
接続禁止マーク


ポート間の接続は、大きくデータポート間接続とサービスポート間接続に分かれます。詳細については「システムエディタ(ポート間の接続 編)」を参照願います。

ポート間の接続を切断する

ポート間の接続を切断するには、接続を選択し Delete ボタンを押下するか、コンテキ29ストメニューに表示される Delete を押下します。

fig60DeleteLink_ja.png
接続の削除


ポート間の接続をすべて切断する

ポートの接続をすべて切断するには、ポートを選択して、右クリックし「すべて切断」を実行します。

fig61AllDisconnect_ja.png
接続の全切断


システムエディタ(複合コンポーネン編)

複合コンポーネントの操作を説明します。

複合コンポーネントを作成する

複数のコンポーネントをまとめて複合コンポーネントにすることができます。
複合コンポーネントにしたいコンポーネントを選択して、右クリックして「複合コンポーネントの作成」を選択すると、複合コンポーネント生成ダイアログが表示されます。

fig62CreateCompositeComponent_ja.png
複合コンポーネントの作成



fig63CompositeComponentDialog_ja.png
複合コンポーネント生成ダイアログ


ダイアログの各項目は以下のとおりです。

複合コンポーネント生成のダイアログ項目と必要条件

No. ダイアログ説明 説明
Manager ネームサービスビューに表示されているマネージャ一覧からマネージャを選択します。ここで選択されたマネージャが複合コンポーネントを生成します。
Name 複合コンポーネントのインスタンス名を指定します。
Type 複合コンポーネントの種別を指定します。指定可能な種別は以下のとおり。
[PeriodicECShared]
各RTCがExecutionContextのみを共有する形で動作します。各RTCの状態は独立しているため、複合コンポーネント内で複数の状態が存在することもあります。
[PeriodicStateShared]
各RTCが同一のExecutionContextを共有するとともに、状態も共有する形で動作します。
[Grouping]
各RTCが何も共有しない複合コンポーネントで、各RTCがそれぞれExecutionContext、状態を保持します。
Path 複合コンポーネントに設定するパスを指定します。
Port 子のコンポーネントのポート一覧から、複合コンポーネントに表示するポートを選択します。
ここで選択されたポートに対して、複合コンポーネントにプロキシ用のポートが作成されます。
- ポートの全選択・全解除ボタン


複合コンポーネントを作成すると、子のコンポーネントとして選択していたコンポーネントはシステムエディタ上から表示が消え、新しい複合コンポーネントが描画されます。
複合コンポーネントのダイアグラムをダブルクリックするか、右クリックして「エディタで開く」を選択すると、新しいシステムダイアグラムが開き、複合コンポーネント内部が表示されます。

fig64CompositeOpenWithSE_ja.png
複合コンポーネントをシステムエディタで開く


fig65ViewCompositeComponent_ja.png
複合コンポーネント内を表示するシステムエディタ


ただし、システム構成の保存時には、コンポーネントの描画情報はコンポーネントに対して1つしか保存できないため、複合コンポーネント内を表示するシステムダイアグラムで変更した描画情報は保存されません。


複合コンポーネントの子を追加する

複合コンポーネント内を表示するシステムエディタを開いて、ネームサービスビューからRTCをドラッグ&ドロップすることで、複合コンポーネントの子が追加されます。追加された子RTCのポートはすべて非公開に設定されます。

fig66CompositeComponentAddRTC_ja.png
子RTCの追加


複合コンポーネントの子を削除する

複合コンポーネント内を表示するシステムエディタを開いて、そこで子のコンポーネントを削除することで、複合コンポーネントの子が削除されます。
削除された子のコンポーネントは、複合コンポーネント内から表示が消え、元のシステムダイアグラム(複合コンポーネント自身が表示されているダイアグラム)に表示されます。


fig67DeleteChildComponent_ja.png
複合コンポーネント内から子のコンポーネントを削除



fig68ChildComponent_ja.png
複合コンポーネントが表示されているシステムエディタ上に子のコンポーネント表示


複合コンポーネントを削除する

複合コンポーネント上で右クリックして「Delete」を選択すると、複合コンポーネントがダイアグラムから削除されます。
削除時に複合コンポーネントを別のシステムダイアグラムで開いていると、エディタの終了確認のダイアログが表示されます。

fig69DeleteCompositeComponent_ja.png
複合コンポーネントの削除



fig70CompositeComponentDialog_ja.png
複合コンポーネントを表示するエディタの終了確認ダイアログ


複合コンポーネントを解除する

複合コンポーネント上で右クリックして「複合コンポーネントを解除」を選択すると、複合コンポーネントへexist()が送られ、コンポーネント自体を終了します。
解除時に複合コンポーネントを別のシステムダイアグラムで開いていると、エディタの終了確認のダイアログが表示されます。
複合コンポーネントが解除されると、子のコンポーネントが元のシステムダイアグラム(複合コンポーネントが表示されていたダイアグラム)に表示されます。

fig71DecomposeCompositeComponent_ja.png
複合コンポーネントの解除



fig72CompositeComponentDialog_ja.png
複合コンポーネントを表示するエディタの終了確認ダイアログ


ポートの公開/非公開を切り替える

複合コンポーネント内を表示するシステムエディタにあるコンポーネントのポートが複合コンポーネント上に公開されている場合、下記のように別のアイコンで表示されます。

子RTCの公開されているポートのアイコン

No. 名前 形状
1 InPort
IconInPort.png
2 OutPort
IconOutPort.png
3 ServicePort
IconServicePort.png

公開されているポートを右クリックして、「非公開」を選択すると、そのポートが公開されていない状態に変わります。また、公開されていないポートを右クリックして、「公開」を選択すると、そのポートが公開されている状態に変わります。

fig73ExportUnexport_ja.png
fig73ExportUnexport2_ja.png

ポートの公開/非公開


ただし、ポートが別のコンポーネントのポートと接続されている場合は、「非公開」にすることができません。

fig74Export_ja.png
ポートの接続がある場合


システムエディタ(セーブ編)

システムエディタのセーブとオープンについて説明します。

システムエディタをセーブする

システムエディタはセーブすることができます。セーブするには、メニューの [ファイル] もしくはエディタを右クリックして「 Save 」を選択します。(「 Save As… 」では、セーブするファイルを任意選択することができます)

fig75SaveSystemEditor2_ja.png
fig75SaveSystemEditor3_ja.png
システムエディタのセーブ メニュー コンテキストメニュー


システムのセーブを選択すると、プロファイル情報ダイアログが開き、必要な項目を設定して「OK」をクリックすると、システムの情報がファイルにセーブされます。

fig76ProfileInfomationDialog_ja.png
プロファイル情報ダイアログ


プロファイル情報の項目

名前 形状
Vendor ベンダ名。RTシステムの識別子を構成する要素。
必須項目。
System Name システム名。RTシステムの識別子を構成する要素。
必須項目。
Version システムのバージョン。RTシステムの識別子を構成する要素。
必須項目。
Path システムをセーブするファイル名。
必須項目。
Update Log バージョンの補足説明などを記述。
Required RTシステムを動作させるのに必須のRTCにチェックをつける。

セーブしたシステムエディタをオープンする

セーブしたシステムエディタをオープンするには、エディタを右クリックして「 Open 」を選択します。

fig77OpenSavedSystemEditor_ja.png
システムエディタをオープンする


オープン後は、 RTSystemEditor はリモートのシステムを正として最新の情報へと更新を行います。セーブ内容をシステムへ復元するには、次の節で説明する「 Open and Restore… 」を使用してください

セーブしたシステムをオープンおよび復元する

セーブしたシステムエディタをオープンおよび復元するには、エディタを右クリックして「Open and Restore...」、もしくは「Open and Quick Restore...」を選択します。

fig78OpenAndRestore_ja.png
システムエディタをオープンおよび復元する


システムへ復元されるのは以下の内容です。
  • ポート間の接続 (セーブ時のコネクタがない場合。)
  • コンフィグレーション情報
    復元時には、コンポーネントのパスIDでネームサービスを検索してリモートのコンポーネントを取得します。
    「Quick Restore」を選択した場合は、ネームサービスにアクセスする前に、プロファイルに保存されたIORにてリモートのコンポーネントの取得を試み、取得できなかった場合にネームサービスから検索を行います。
    復元に失敗した場合には、エラー内容が表示されます。

    fig38ErrorMessageOfRestorationFailure_ja.png
    復元失敗のエラーメッセージ


また、RTSystemEditorはエラー発生時でも、できる限りの復元を試みます。

システムエディタ(RTCの表示 / 描画編集 編)

RTCの表示とRTCの描画編集の操作を説明します。

RTC の表示

システムエディタに配置された RTC は矩形で表示され、ポートはその矩形の周りに表示されます。また、それぞれの状態が色で表現されます。

fig18RTCDisplayExample_ja.png
RTC表示の例


アイコンと状態色の一覧は以下のとおりです。

コンポーネントとポートのアイコン

No. 名前 形状 状態 デフォルト色(※)
RTC
IconShape1_ja.png
CREATED
IconWhite_ja.png
White
INACTIVE
IconBlue_ja.png
Blue
ACTIVE
IconLightGreen_ja.png
Light Green
ERROR
Iconred_ja.png
Red
UNKNOWN
IconBlack_ja.png
Black
2 Execution Context
(1番目のみ)
(RTCの矩形の外周線) RUNNING
IconGray_ja.png
Gray
STOPPED
IconBlack_ja.png
Black
3 InPort
IconShape2_ja.png
未接続
IconBlue_ja.png
Blue
接続済(1つ以上)
IconLightGreen_ja.png
Light Green
4 OutPort
IconShape3_ja.png
未接続
IconBlue_ja.png
Blue
接続済(1つ以上)
IconLightGreen_ja.png
Light Green
5 ServicePort
IconShape4_ja.png
未接続
IconLightBlue_ja.png
Light Blue
接続済(1つ以上)
IconCyan_ja.png
Cyan

※各状態の色は、設定画面の表示色にて変更することができます。

またシステムエディタは、RTCの状態を監視しリアルタイムに状態を表示します。(監視の周期は、設定画面の接続周期で変更することができます)

RTC の描画編集

ここでは、RTC の描画編集について説明していきます。(「編集」ではなく「描画編集」とあえてしているのは、ここで説明される作業は描画の編集であり、システムに対する影響は全くないためです。)

  • RTC の大きさの変更と移動(システムに対する影響なし)
     RTC を移動するには、RTC を選択後、ドラッグして動かします。 RTC の大きさを変更するには、 RTC を選択することで表示されるハンドルをドラッグして動かします。
    fig19RTCMoveSize_ja.png
    RTCの移動(左)とRTCの大きさの変更(右)


また、選択された RTC の位置と大きさがステータスバーに表示されます。

fig20StatusBar_ja.png
ステータスバー


  • RTC の回転(システムに対する影響なし)
     対象のコンポーネントを選択し、Ctrlキーを押しながらマウスの右ボタンをクリックすることで、水平の向きへ回転します。Shiftキーを押しながらマウスの右ボタンをクリックすることで、垂直の向きへ回転します。それぞれ同じ操作を繰り返し行うことで逆の水平の向き、逆の垂直の向きへ変更でき、上下左右の向きへ操作することができます。
    fig21RTCRotate_ja.png
    回転されたRTC

  • RTCの削除(システムに対する影響なし)
     RTC を削除するには、RTCを選択し Delete ボタンを押下するか、コンテキストメニューから Delete を押下してください。
    fig55DeleteComponent_ja.png
    Delete

  • ポート間の接続線を移動する(システムに対する影響なし)
     接続線を移動するには、接続線を選択し表示されるハンドラを移動します。垂直線は左右に、水平線は上下に移動することができます。
    fig56SystemEditer_ja.png

    垂直線(左)と水平線の(右)の接続線の移動

システムエディタ(ポート間の接続 編)

データポート間、サービスポート間の接続について説明します。

データポート間接続

 データポートの接続で、「 InPort 」と「 OutPort 」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。

fig29ConnectDialog1_ja.png
データポートのコネクタプロファイルダイアログ

fig29ConnectDialog2_ja.png
データポートのコネクタプロファイルダイアログ(詳細)


ダイアログの項目と条件は以下のとおりです。

データポート接続のダイアログ項目と必要条件

ダイアログ項目名 ConnectorProfile 必要条件
Name name 特になし
Data Type properties “dataport.data_type” このコネクタで接続されているデータポート間で送受信するデータ型を指定します。
それぞれのポートで互いに送受信可能なデータ型から選択します。ただし、Anyを含む場合は相手ポートのどのような値も許容します。
Instance Type properties “dataport.interface_type” RTシステム設計者が想定する、もしくはRTCが動作するRTミドルウェア上でサポートされているインターフェース種別を指定します。
それぞれのポートで互いにサポートしているインターフェース種別から選択します。ただし、Anyを含む場合は相手ポートのどのようなインターフェースも許容します。
Dataflow Type properties “dataport.dataflow_type” RTシステム設計者が想定する、もしくはRTCが動作するRTミドルウェア上でサポートされているデータフロー型を指定します。
それぞれのポートで互いにサポートしているデータフロー型から選択します。ただし、Anyを含む場合は相手ポートのどのようなデータフローも許容します。
Subscription Type properties “dataport.subscription_type” [Dataflow Typeの値がPushの時に必要な条件]
RTシステム設計者が想定する、もしくはRTCが動作するRTミドルウェア上でサポートされているサブスクリプション種別を指定します。
それぞれのポートで互いにサポートしているサブスクリプション種別から選択します。ただし、Anyを含む場合は相手のどのようなサブスクリプション種別も許容します。
Push Rate(Hz) properties “dataport.push_interval” [Dataflow Typeの値が”Push”でかつSubscription Typeが”Periodic”の時に必要な条件]
サブスクリプション種別が「Periodic」な場合にデータの送信周期を指定します。送信周期は正数値(小数可)で指定します。
Push Policy properties “dataport.publisher.push_policy” データ送信ポリシー。[Dataflow Typeの値が”Push”でかつSubscription Typeが”Periodic”の時に必要な条件]all、fifo、skip、newから選択します。
all:バッファ内のデータを一括送信
fifo:バッファ内のデータをFIFOで1個ずつ送信
skip:バッファ内のデータを間引いて送信
new:バッファ内のデータの最新値を送信(古い値は捨てられます。)
Skip Count properties "dataport.publisher.skip_count" 送信データスキップ数。[Push Policyの値が”skip”の時に必要な条件]バッファ内のデータがこの設定値で間引されて送信されます。
Buffer length properties "buffer.length" バッファの長さ
Buffer full policy properties "buffer.write.full_policy" バッファへのデータ書き込み時に、バッファフルだった場合の挙動。overwrite、do_nothing、blockから選択します。
overwrite:データを上書きします。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後書き込み不可能であればタイムアウトします。 デフォルトは overwrite (上書き)です。
Buffer write timeout properties " buffer.write.timeout" バッファへのデータ書き込み時に、タイムアウトアウトイベントを発生させるまでの時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0を設定した場合はタイムアウトしません。
Buffer empty policy properties "buffer.read.empty_policy” バッファからのデータ読み出し時に、バッファが空だった場合の挙動。readblock、do_nothing、blockから選択します。
readblock:最後の要素を再読み出します。
do_nothing:何もしません。
block:ブロックします。
block を指定した場合、次の timeout 値を指定すれば、指定時間後読み出し不可能であればタイムアウトします。 デフォルトは readbackです。
Buffer read timeout properties " buffer.read.timeout" バッファからのデータ読み出し時に、タイムアウトイベントを発生させるための時間(単位:秒)
デフォルトは 1.0 [sec]です。0.0を設定した場合はタイムアウトしません。

サービスポート間接続

 サービスポート間の接続では、「ServicePort」と「ServicePort」を接続します。これらの間をドラッグ&ドロップでつなぐと以下のダイアログが表示されます。

fig30ServiceConnectDailog_ja.png
サービスポートのコネクタプロファイルダイアログ


fig30ServiceConnectDailog2_ja.png
サービスポートのコネクタプロファイルダイアログ(詳細)

ダイアログの項目と条件は以下のとおりです。

サービスポート接続のダイアログ項目と必要条件

ダイアログ項目名 ConnectorProfile 必要条件
Name Name 特になし
properties "rtc_iname"
properties "port_name"
properties "interfaces.if_iname"
インターフェース接続対象のサービスポートに複数のサービスインターフェースが定義されていた場合に有効。どのインターフェースを接続するかを指定できます。


サービスポートの場合、必須となる接続の条件はありません。しかし、 ServicePort 間での PortInterfaceProfile が完全にマッチング(※1)しない場合、接続ダイアログにて警告を表示します。

fig59ServicePortWarning_ja.png
サービスポートの接続ダイアログの警告表示


 ※1  ここでいう完全なマッチングとは、PortInterfaceProfileの「type」が同じで、「polarity」がお互いにPROVIDEDとREQUIredになっていること。また余りなく(PortInterfaceProfileはそれぞれのポートに複数存在する)すべてのPortInterfaceProfileがマッチングすることを指しています。

オフラインシステムエディタ

概要

ここでは、オフラインシステムエディタの概要について説明します。

fig79OfflineSysetmEditor_ja.png
オフラインシステムエディタの位置


オフラインシステムエディタでは、レポジトリビュー上のコンポーネントをドラッグ&ドロップでダイアグラムに追加することで、RTシステムの編集を行います。基本的な操作はオンラインのシステムエディタと同じですが、RTCの状態を変更することはできません。また、リアルタイムにRTCの状態が変更される、または更新されることもありません。

機能

オフラインシステムエディタを開く

新しいオフラインシステムエディタを開くには、ツールバーの「Open New Offline System Editor」ボタンを押下するか、メニューバーの[ファイル]-[ Open New Offline System Editor]を選択します。

fig41OpenNewSystemEditorFromToolbar_ja.png
ツールバーからOpen New System Editor



fig42FileOpenNewOfflineEditor_ja.png
Fileメニューから Open New Offline System Editor


コンポーネント仕様をオフラインシステムエディタに配置する

コンポーネント仕様をオフラインシステムエディタに配置するには、リポジトリビューからコンポーネント仕様をドラッグ&ドロップします。


fig43TheOff-lineEditorComponentArange_ja.png
コンポーネント仕様をオフラインシステムエディタに配置する


コンポーネント仕様をオフラインシステムエディタで編集する

オフラインシステムエディタでは、システムエディタで行えることのうち、実行時コンポーネントの動作に関すること以外のほとんどの操作を、システムエディタと同様の操作で行うことができます。

設定画面

RT System Editor

ここでは、 RT System Editor の設定画面について説明します。 RT System Editor の設定画面は、メニューの [window]-[preferences…]-[RT System Editor] で表示することができます。

接続周期

接続周期とは、 RT System Editor がシステムの情報を収集して表示へ反映する周期のことです。
単位はミリ秒で、0を指定した場合には、同期は行われません。


fig80ConnectionCycleSetScreen_ja.png
接続周期設定画面


表示色

表示色の設定画面では、システムエディタにて表示される RTC と ExecutionContext 状態の色を設定することができます。それぞれの状態の意味については、システムエディタのRTCの表示をご覧ください。

fig81DisplayColorSettingScreen_ja.png
表示色設定画面


オフラインエディタ

オフラインエディタでポート接続時に選択できるパラメータを設定することができます。
設定可能な項目は「Interface Type」、「Data Flow Type」、「Subscription Type」で、ポート接続時にここで設定したパラメータから値を選択することができます。それぞれの意味についてはデータポート間接続を参照して下さい。

fig82OfflineEditor_ja.png

オンラインエディタ

コンポーネントアクションの実行確認の設定ができます。
fig82OnineEditor_ja.png

RT Name Service View

接続周期

接続周期とは、RT Name Service Viewがシステムの情報を収集して表示へ反映する周期のことです。 単位はミリ秒で、0を指定した場合には、同期は行われません。デフォルトポート番号には、Name Serviceのポート番号の既定値を指定します。

fig83ConnectCycle_ja.png
接続周期設定画面


同期

タイムアウト待ち時間は、システムの情報を収集する際、システムとの接続が確立されない場合に待機する時間です(単位はミリ秒)。


fig84SyncCycle_ja.png
接続周期設定画面


接続周期と同期タイムアウト待ち時間の関係は下図のようになります。
(例 接続周期が1000ms、同期タイムアウト待ち時間が100msの場合)


fig85SyncCycleAndTimeOut.png
接続周期と同期タイムアウト待ち時間の関係


その他

その他

FAQ

RT System Editor の操作パフォーマンスが悪くなります

A. RT System Editor は常にシステムの情報を収集しながら表示に同期しています。このシステム情報を収集する際に、動作していないオブジェクトのリファレンスにアクセスするとタイムアウト待ちを起こして極端に遅くなることがあります。 動作していないオブジェクトが発生した場合には、ネームサービスビューから「 Delete from NameService 」を行って削除を行い、また動作していないオブジェクトとポート接続しているオブジェクトを、ネームサービスおよびシステムエディタから削除するとパフォーマンスが戻ることがあります。

Eclipse のワークスペースに「 RT System Editor_Files 」プロジェクトが作成されます。これは何ですか?

A.RT System Editor が実行時に内部で使用している一時的な情報が保存されています。実行時に一時的に使用しているものですので、実行中には削除しないでください。 RT System Editor の停止中にはプロジェクトごと削除しても問題ありません。

RT Name Service Viewの操作パフォーマンスが悪くなります

A. RT Name Service Viewは常にシステムの情報を収集しながら表示に同期しています。このシステム情報を収集する際に、動作していないオブジェクトのリファレンスにアクセスするとタイムアウト待ちを起こして極端に遅くなることがあります。 動作していないオブジェクトが発生した場合には、ネームサービスから「Delete from NameService」を行って削除を行い、また動作していないオブジェクトとポート接続しているオブジェクトを、ネームサービスおよびシステムエディタから削除するとパフォーマンスが戻ることがあります。

システムエディタにて同一ポート間に複数が接続(重複接続)されている場合、見分ける方法はありますか?

A. 接続線では、重複接続の区別がつきません。お手数ですが、プロジェクトファイルでご確認をお願いします。

謝辞

RT System Editor は、以下のライブラリを使用して開発されました。これらのプロジェクトの開発と設計にかかわった方々に感謝します。

Apache Jakarta Commons Lang 2 . 2

Apache Jakarta Commons Lang Copyright 2001-2006 The Apache Software Foundation

This product includes software developed by The Apache Software Foundation.

RTCBuilder-1.0.0

RTCBuilder-1.0.0とは

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

概要・RTC作成の流れ

動作環境

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

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

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

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

制限

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

インストールおよび起動

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

RTCBuilder のインストール

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

RTCBuilderの起動

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

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


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

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


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

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


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

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


RTCBuilder 用プロジェクトの作成

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

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


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

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


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

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


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

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


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

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

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

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

画面構成と機能(概要)

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

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

画面要素一覧

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


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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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



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


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

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

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

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

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

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

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


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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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


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

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


制約情報の記述方式

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

制約条件の記述方式

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

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

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

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


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

ビルドビューの表示

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

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

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

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

リポジトリビューの表示

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

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


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

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


ローカル版の概要

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

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


ファイルのロード

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

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


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

ディレクトリのロード

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

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


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

削除

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

fig2-6Delete_ja.png
削除


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