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 の選択、およびログレベル指定により、表示をフィルタリングする。
表示項目は次のとおり。
・タイムスタンプ
・ログレベル(ERROR/WARN/INFO/NORMAL/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 を設定した場合はタイムアウトしません。

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
接続周期と同期タイムアウト待ち時間の関係


その他

その他

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.