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 をリアルタイムにグラフィカル操作する機能を持っています。提供される機能の一覧は以下のとおりです。

機能概要一覧

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

動作環境

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

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

ビュー一覧

№ ビュー名 説明
1 ネームサービスビュー RTCが登録されているネームサービスの内容をツリー表示します。
2 コンフィグレーションビュー 選択されているRTCのコンフィグレーション情報を表示/編集します。
3 マネージャコントロールビュー 選択されているマネージャを制御します。
4 複合コンポーネントビュー 選択されている複合RTCのポート公開情報を表示/設定します。
5 プロパティビュー 選択されているRTCのプロファイル情報を表示します。
6 システムエディタ RTCをグラフィカルに表示し、RTシステムを作成します。
7 オフラインシステムエディタ 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. アイコン 名前 表示内容
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 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. 名前 形状 状態 デフォルト色(※)
1 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.