OpoenRTMプラグインの詳細¶
OpenRTMプラグインの全体構成を以下に示します。
OpenRTMプラグインは、以下のビューから構成されています。
- RTCリスト
指定したネームサービスに登録されているRTCをツリー表示するためのビューです。OpenRTM-aistではRTCを管理・公開するためにネームサービスが使用されています。RTCリストは、RTシステムを構築する際に使用可能なRTCの一覧をツリー表示します。
- RTCダイアグラム
RTシステムを構築するためのビューです。RTシステムで使用するRTCや各RTCが持つポート情報を確認/編集したり、ポート間の接続関係を確認/編集するために使用します。
- RTCコンフィギュレーション
RTCのコンフィギュレーション情報を確認/編集するためのビューです。RTCの「コンフィギュレーション情報」とは、各RTCがコアロジック内部で使用しているパラメータの事です。本ビューを用いることで、ユーザがコンフィギュレーション情報を変更することができます。
- RTプロパティ
RTCの詳細情報や、RTCダイアグラムで設定したポート間の接続情報を表示するためのビューです。
各ビューを開く際には、画面上部のツールバーから「表示」-「ビューの表示」を選択してください。また、ビューの操作方法の詳細については、 画面構成 の「ビュー」の部分を参照してください。
RTCリスト¶
OpenRTM-aistではRTCを管理・公開するためにネームサービスが使用されています。RTCリストは、指定したネームサービスに登録されているRTCをツリー形式で表示するためのビューです。本ビューに表示されたRTCを使用して、RTシステムの構築を行います。
注釈
OpenRTMプラグインを組み込んだ状態でChoreonoidを起動すると、ネームサービスが自動的にデフォルト設定(IPアドレス:localhost、ポート番号:2809)で起動されます。このため、ネームサービスを明示的に起動する必要はありません。
ネームサーバへの接続¶
指定したネームサーバにコンポーネントが登録されていると、登録内容がツリー形式で表示されます。各アイコンの意味は以下の通りです。
アイコン | 種類(KIND) | 詳細 |
---|---|---|
host_cxt | ホストコンテキスト | |
mgr_cxt | マネージャコンテキスト | |
cate_cxt | カテゴリコンテキスト | |
mod_cxt | モジュールコンテキスト | |
上記以外 | フォルダ(上記以外にコンテキスト) | |
なし | RTコンポーネント | |
なし | オブジェクト(RTコンポーネント以外のオブジェクト) | |
なし | ネームサーバーにエントリされてはいるが、実体のオブジェクトにアクセスできないゾンビオブジェクト |
ネームサーバの情報更新¶
ネームサービスへのエントリ/オブジェクトの追加,削除¶
注釈
コンテキストの追加は、ホストコンテキスト、マネージャコンテキスト、カテゴリコンテキスト、モジュールコンテキスト、その他のコンテキストに対して行うことができます。また、各コンテキストは「名称」+「種類」で識別されています。このため、あるコンテキストの直下に「名称」「種類」が重複するコンテキストを追加することはできません。
注釈
オブジェクトの追加は、ホストコンテキスト、マネージャコンテキスト、カテゴリコンテキスト、モジュールコンテキスト、その他のコンテキストに対して行うことができます。
RTCの状態変更¶
アクション名 | 詳細 |
---|---|
Activate | 対象RTCを活性化する。RTCの状態がDeactiveの場合のみ実行可能。 |
Deactivate | 対象RTCを非活性化する。RTCの状態がActiveの場合のみ実行可能。 |
Reset | 対象RTCをエラー状態からリセットする。RTCの状態がErrorの場合のみ実行可能。 |
Exist | 対象RTCを停止し、終了する。 |
Start | 対象RTCの実行コンテキスト(EcecutionContext:EC)の動作を開始する。ECが停止している場合のみ実行可能。 |
Stop | 対象RTCの実行コンテキスト(EcecutionContext:EC)の動作を停止する。ECが起動している場合のみ実行可能。 |
RTCダイアグラム¶
RTCの追加、削除¶
RTシステムを構築するRTCを追加するには、対象RTCをRTCリストからRTCダイアグラムへドラッグ&ドロップします。
注釈
同一RTCを複数回配置することはできません。ただし、RTCリスト上で同一IORを持つRTCを別パスとして登録している場合は、それぞれのRTCを追加することができます(同一RTCであるかどうかは、IORではなくRTCリスト上のフルパスで判断しています)。
RTシステムの状態更新¶
RTCの状態を変更¶
RTCダイアグラムでは、配置されているRTCの状態を変更することができます。操作対象のRTCを選択し、コンテキストメニューから実行する操作を選択してください。
アクション名 | 詳細 |
---|---|
Activate | 対象RTCを活性化する。RTCの状態がDeactiveの場合のみ実行可能。 |
Deactivate | 対象RTCを非活性化する。RTCの状態がActiveの場合のみ実行可能。 |
Reset | 対象RTCをエラー状態からリセットする。RTCの状態がErrorの場合のみ実行可能。 |
Start | 対象RTCの実行コンテキスト(EcecutionContext:EC)の動作を開始する。ECが停止している場合のみ実行可能。 |
Stop | 対象RTCの実行コンテキスト(EcecutionContext:EC)の動作を停止する。ECが起動している場合のみ実行可能。 |
注釈
RTシステムアイテム配下のRTCは、シミュレーション開始時に自動的に活性化され、終了時に自動的に非活性化されます。
ポート間の接続、切断¶
注釈
ポートの接続可否判断では、次のチェックを行います。「接続対象ポートの種類(データポート、サービスポート)が同一か?」接続対象がデータポートの場合は、更に次のチェックを行います。「接続対象のポートの向き(in/out)が逆になっているか?」「接続対象のポートに設定されている「データ型」「インターフェースタイプ」「サブスクリプションタイプ」に共通の要素が存在するか?」
各設定項目の意味は以下の通りです。
項目名 | 詳細 |
---|---|
名前 | コネクションの名称です。任意の名前を設定することができます。 |
Data Type | ポート間で送受信するデータの型。接続対象のポートで定義されている内容から選択。 |
インタフェースタイプ | データを送受信するポートの型。接続対象のポートで定義されている内容から選択。 |
データフロータイプ | データの送受信方法。 |
サブスクリプションタイプ | データの送信タイミング。以下から選択。データフロータイプが「Push」の場合のみ有効。
New : バッファ内に新規データが格納されたタイミングで送信
Periodic : 一定周期で定期的にデータを送信
Flush : バッファを介さず即座に送信
|
Push Rate | データ送信周期(単位:Hz)。サブスクリプションタイプが「Periodic」の場合のみ有効 |
Push Policy | データ送信ポリシー。以下から選択。サブスクリプションタイプが「New」「Periodic」の場合のみ有効
all : バッファ内のデータを一括送信
fifo : バッファ内のデータをFIFOで1個づつ送信
skip : バッファ内のデータを間引いて送信
new : バッファ内のデータの最新値を送信(未送信の古いデータは捨てられる)
|
Skip Count | 送信データスキップ数。Push Policyが「Skip」の場合のみ有効 |
Buffer length | バッファの大きさ |
Buffer full policy | データ書き込み時に、バッファがフルだった場合の処理。以下から選択。
overwrite : 上書き
block : 書き込みをブロック
do_nothing : なにもしない
|
Buffer write timeout | データ書き込み時に、タイムアウトイベントを発生させるまでの時間(単位:秒)。「0.0」を設定した場合には、タイムアウトは発生しない。 |
Buffer empty policy | データ読み出し時に、バッファが空だった場合の処理。以下から選択。
readback : 最後の要素を再読み出し
block : 読み出しをブロック
do_nothing : なにもしない
|
Buffer read timeout | データ読み出し時に、タイムアウトイベントを発生させるまでの時間(単位:秒)。「0.0」を設定した場合には、タイムアウトは発生しない。 |
上記で規定された項目以外を接続プロファイルに設定したい場合には、画面下部の一覧表を使用することで、任意のプロパティを設定する事が可能です。
注釈
「Data Type」「インターフェースタイプ」「データフロータイプ」「サブスクリプションタイプ」は、接続対象ポートのPortPrfileを取得し、接続先ポート/接続元ポートで一致した項目のみが表示されます。PortProfileの情報は、RTCを作成する際に定義する情報であるため、実行時に項目を追加する事はできません。もしも、希望する項目が表示されない場会には、対象RTCの定義内容を確認してください。
注釈
Buffer Policyを「block」に設定し、timeout時間が指定されている場合、指定された時間分読み出し/書き込みが不可能な場合にタイムアウトが発生します。
RTCコンフィギュレーション¶
RTCのコンフィギュレーション情報を表示/編集するためのビューです。RTCリストやRTCダイアグラムで選択したRTCの情報を表示します。画面左側ではConfigurationSetのリストが、右側ではConfigurationSet内のプロパティをそれぞれ表示します。
各項目の内容は以下の通りです。
番号 | 内容 |
---|---|
① | 選択されているRTCの名称。 |
② | 選択されているConfigurationSetの名称。 |
③ | アクティブになっているConfigurationSet。ラジオボタンを使用することで、アクティブなConfigurationSetを変更することができる。 |
④ | ConfigurationSetのリスト |
⑤ | 左側で選択しているConfigurationSetのプロパティの名称。 |
⑥ | 左側で選択しているConfigurationSetのプロパティの値。 |
⑦ | ConfigurationSetを複製/追加/削除するボタン。 |
⑧ | プロパティを追加/削除するボタン。 |
⑨ | 変更内容を適用/キャンセルするボタン。 |
左右グリッド下部の「詳細表示」チェックボックスをONにすると、ConfigurationSetに設定されている全ての情報が表示されます。
注釈
ConfigurationSetには、通常の動作に仕様する情報と、各プロパティの制約などを定義した「隠し要素」があります。「詳細表示」チェックボックスをONにすると、「隠し要素」が表示されるようになります。「隠し要素」の定義方法、内容につきましては、OpenRTM-aist公式サイトのRTCBuilderのページを参照してください。
RTCプロパティ¶
RTCの詳細情報や、ポート間の接続情報を表示するためのビューです。RTCリストやRTCダイアグラムで選択したRTC/ポート間接続線の情報を表示します。
設定画面¶
上部ツールバーの「ツール」-「OpenRTM」-「設定画面」を選択することで、OpenRTMプラグインに関連した設定画面が表示されます。
各設定項目の意味は以下の通りです。
項目名 | 詳細 |
---|---|
ログ出力 | 各RTCのログ情報を出力するかどうかをチェックボックスで指定します。 |
ログレベル | RTCのログレベルを設定します。「ログ出力」がONの場合のみ設定可能です。 |
設定ファイル | Choreonoidで使用しているOpenRTM-aistのマネージャの設定ファイルを指定します。使用するネームサーバ指定する方法の例を以下に示します。設定可能な情報および設定方法の詳細については、OpenRTM-aist公式サイトを参照してください。 |
ベンダ名 | RTシステムの「ベンダ名」のデフォルト値を設定します。RTシステムアイテムを新規作成した際に設定されます。 |
バージョン番号 | RTシステムの「バージョン番号」のデフォルト値を設定します。RTシステムアイテムを新規作成した際に設定されます。 |
corba.nameservers: 192.168.0.11:2809