ツール

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\<言語>/<パッケージ名>

AttachmentSize
Package icon 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階層目のコンポーネントを削除し、他のコンポーネントが存在しない場合は再帰的に最上位階層まで削除されます。

コード生成・セーブとロード

コード生成

生成対象RTコンポーネントの各種プロファイル情報を設定した後、テンプレートコードの生成を行います。 基本プロファイル入力ページの「 コード生成 」ボタンをクリックすると、入力したプロファイル情報に応じたテンプレートコードの生成が行われます。

fig4-1GenerateTemplate_ja.png
テンプレートコードの生成


各言語を選択した際のコード生成実行時に生成されるテンプレートファイルは以下のとおりです。

生成ファイル一覧

  • 言語共通
ファイル名 説明
README_<RTC名> README ファイルです。RT コンポーネント生成時に設定した情報などが記述されています。
<RTC名>.conf コンポーネントの設定ファイルです。
rtc.conf コンフィギュレーションファイルです。ExecutionContextの実行周期などが記述されています。
  • C++
ファイル名 説明
<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 サービスプロバイダの実装クラスです。(
  • Python
ファイル名 説明
<RTC名>.py RT コンポーネントのコードです。
<サービス型名>_idl.py
<サービス型名>_idl_example.py サービスプロバイダの実装ファイルです。(
  • C#
ファイル名 説明
<RTC名>.cs RTコンポーネントのコードです。
<RTC名>.csproj RTコンポーネントのプロジェクトファイルです。
<サービス型名>Impl.cs サービスプロバイダの実装クラスです。(※)
<RTC名>.csproj.user プロパティ・ファイルです。
App.config アプリケーション用コンフィギュレーションファイルです。
Program.cs RTコンポーネントの起動用クラスです。
 ※ 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」を選択
  • メニューバーの[File]-[Open File…]を選択
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格納ディレクトリを新規に追加する場合は、「Add」ボタンをクリックしてください。また、「Delete」ボタンをクリックすると、選択中の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設定画面

その他

その他

FAQ

RTC プロファイルエディタで入力した内容を RTC プロファイルへ保存するときに、「 Error writing file. 」というエラーが発生します。

A. 保存先の指定が不正な場合に表示されます。保存先を任意のプロジェクト内のディレクトリにして保存してください。

謝辞

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/

rtshell

イントロダクション

rtshellは、ネームサーバー上に登録されているRTコンポーネントをシェルから管理できるツールです。 コンポーネントをactivate/deactivate/resetしたり、ポートの接続を行うことができます。 RTシステムの管理もできます。

このツールは、リソースの少ないシステム、GUIの利用ができない環境(特にコンポーネントを管理する他のPCとネットワークでつながっていない環境など)や、RTSystemEditorの利用ができない環境、スクリプトでRT Systemを構築する場合などで有効です。コマンドラインの利用に精通している人にも便利なツールです。

必要条件

  • rtctreeが必要です。
  • rtsprofileが必要です。
  • Python3以上、OpenRTM-aist-Pythonが必要です。

インストール

インストール方法についてはrtshellのインストールのページを参照してください。

リポジトリ

最新版のソースはgithubのリポジトリにあります(URL:http://github.com/OpenRTM/rtshell)。 [Download ZIP]をクリックしてダウンロードできます。下記のように"git clone"コマンドを使うこともできます。(gitが前もってインストールされている必要があります)。

  $ git clone git://github.com/OpenRTM/rtshell.git

ドキュメント

ドキュメントはLinuxではmanページとして提供し、/usr/local/share/manにインストールされます。Windowsの場合はHTMLにて提供し、<pythonディレクトリ>\Lib\site-packages\rtshell\data\doc\htmlの下のen、jaディレクトリの下に英語版、日本語版がそれぞれコピーされます。また本Webサイト上にも掲載しています。

rtshellコマンド・リファレンス

概要

コマンドの多くは、ネームサーバーで動作しているコンポーネントとマネージャーをファイルシステムのように扱えるようにしてあります。ディレクトリに入ったり、コンポーネントをcatのようにで読んだり、アクティブさせたり、ポートを接続できます。ほかのコマンドはRTシステムを管理するためのRTSProfileファイルに関連して使用されます。

コマンド

コマンド名 概要
rtact RTコンポーネントをアクティブにします。
rtcat RTコンポーネントのメタデータを表示します。
rtcheck 起動中のRTシステムを読み込んだRTSProfileデータと比べます。
rtcomp コンポジットコンポーネントを作ります。
rtcon ポートを接続します。
rtconf コンポーネントのコンフィグレーションを照会/設定します。
rtcryo 起動中のRTシステムのRTSProfileデータをファイルかstdoutに出力します。
rtcwd 現在の作業ディレクトリを変更します。
rtdeact コンポーネントを非アクティブにします。
rtdel ネームサーバーからオブジェクトを消去します。
rtdis ポートの接続を切ります。
rtdoc RTコンポーネントのドキュメンテーションを表示します。
rtexit RTコンポーネントを停止します。
rtfind 起動中のRTコンポーネントやマネージャなどを探します。
rtinject ポートにデータを送ります。
rtlog ポートが送るデータをログに保存して再生します。
rtls 現在の作業ディレクトリ上のオブジェクトをリストします。
rtmgr マネジャーでRTコンポーネントを管理します。
rtprint ポートが送るデータをターミナルに表示します。
rtpwd 現在の作業ディレクトリを表示します。
rtreset RTコンポーネントをリセットします。
rtresurrect RTSProfileデータを用いてRTシステムの接続を復元します。
rtstart RTSProfilleデータを用いてRTシステムを起動します。
rtstodot 起動中のRTシステムをグラフで表示します。
rtstop RTSProfielデータを用いてRTシステムを停止します。
rtteardown RTSProfileデータを用いてRTシステムを削除する。

RTCツリー

すべてのコマンドはRTCツリー上で起動します。RTCツリーとは、ネームサーバー上のコンテキスト、コンポーネント、マネージャなどをファイルシステムに見立てて扱うことができる仕組みです。通常のファイルシステムと同じように扱うことができます。

ネームサーバーはルートディレクトリ"/"直下のサブディレクトリとして扱われます。その下にはファイルやサブディレクトリが存在します。サブディレクトリはネームサーバー上のネーミングコンテクストに対応します。ファイルはコンポーネントとマネージャーに対応します。

ツリーを構築するためのネームサーバーを与える方法は2通りあります。一つはrtshellコマンドに渡したネームサーバーへの相対パスです。これは現在の作業ディレクトリからの相対パスです。また絶対パス指定して場合はルート直下のディレクトリがネームサーバーがあるホスト名(IPアドレスの場合もあり)です。

もう一つはRTCTREE_NAMESERVERS環境変数です。ネームサーバーのホストアドレスをセミコロンで区切り、リストを渡すこともできます。複数のネームサーバーがあるホストを指定した場合はそれぞれのホストがルート直下に見えるようになります。

シェルコンプリーション

Bashシェルを使う方はrtshell付属のコンプリーションスクリプトによってrtshellのコマンド入力の補完ができるようになり使いやすくできます。スクリプトは/usr/local/lib/pythonX.Y/dist-packages/rtshellにインストールされます。以下のコマンドでロードしてください:

 $ source /usr/local/lib/pythonX.Y/dist-packages/rtshell/bash_completion

また上記の行を~/.bashrcというファイルに追加すればターミナル起動時に自動的にロードされます。

コンプリーション(補完)の例:

 $ rtcwd /localhost/[TAB]
 $ rtcwd /localhost/ubuntu.host_cxt/

 $ rtcwd /localhost/ubuntu.host_cxt/[TAB][TAB]
 /localhost/ubuntu.host_cxt/ConfigSample0.rtc
 /localhost/ubuntu.host_cxt/ConsoleIn0.rtc
 /localhost/ubuntu.host_cxt/ConsoleOut0.rtc
 /localhost/ubuntu.host_cxt/manager.mgr/

 $ rtcwd localhost/ubuntu.host_cxt/[ENTER]

 $ rtconf ConfigSample0.rtc set [TAB]
 double_param0  int_param0     str_param0     vector_param0  
 double_param1  int_param1     str_param1

 $ rtcon ConsoleIn0.rtc:[TAB]
 $ rtcon ConsoleIn0.rtc:out

システムの要件

  • rtshellはrtctreeが必要です。インストールされていない場合はコマンドは起動しません。
  • RTSProfileデータを使うコマンドはrtsprofileが必要です。インストールされていない場合はこのコマンドは起動しません。
  • rtshellはPython 3.7/3.6/2.7が必要です。
  • rtinject 、rtlog及びrtprintはOpenRTM-pythonが必要です。

パス

rtshell はパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/.... のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定します。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します。) 作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定できるので必須ではありません。
RTSH_CWD
rtshellの現在の作業ディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

rtact

書式

 rtact [OPTION ...] PATH [PATH...]

概要

Inactive状態のRTコンポーネントをactive化ます。

オプション

 -e EC_ID、--exec_context=EC_ID
       状態を変更したいExecution contextのID。ディフォルトは0。
 --version  プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定することもできます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定できるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • すべてのowned ECとparticipanting EC上のConsoleOut0.rtcをactive化する。
     $ rtact /localhost/local.host_cxt/ConsoleOut0.rtc
  • すべてのowned ECとparticipanting EC上のConsoleOut0.rtcとConsoleIn0.rtcをactive化する。
     $ rtact ConsoleOut0.rtc ConsoleIn0.rtc
  • Motor0.rtcをIDが2のEC上でのみactive化する。
     $ rtact -e 2 /localhost/local.host_cxt/Motor0.rtc

rtcat

書式

 rtcat [OPTION ...] PATH

概要

POSIX(Linuxなど)のcatコマンドと同じです。RTコンポーネント、ポート及びマネージャのメタデータを読んでターミナルに表示します。

オプション(OPTION)

 -l       詳しい情報を示します。複数指定するともっと詳しい情報が表示されます。
 --version   プログラムのバージョン番号を表示します。
 -h、--help   ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定してます。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • Motor0.rtcの簡単な情報を示します。
     $ rtcat /localhost/local.host_cxt/Motor0.rtc
  • ポートとExecution Contextを含めてMotor0.rtcの詳しい情報を表示 します。
     $ rtcat /localhost/local.host_cxt/Motor0.rtc -l
  • ポートの接続を含めてMortor0.rtcの詳しい情報を表示します。
     $ rtcat /localhost/local.host_cxt/Motor0.rtc -ll
  • Mortor0.rtcのinポートのみの情報を表示します。
     $ rtcat /localhost/local.host_cxt/Motor0.rtc:in -l
  • manager.mgrというマネージャーの簡単な情報を表示します。
     $ rtcat /localhost/local.host_cxt/manager.mgr

rtcheck

書式

 rtcheck [OPTION ...] RTSPROFIE_FILE

概要

実行中のRTシステムのRTSProfileとファイルRTSPROFILE_FILEとの間に矛盾がないかをチェックします。正しくない状態にあるコンポーネントや間違った接続などのようなエラーを報告します。

デフォルトはRTSProfileファイルをXML形式として取扱います。YAML形式を使う場合は--yaml(-y)オプションを指定してください。

オプション(OPTION)

 --dry-run   何がなされるかを表示し、実際の実行はしません。
 -s STATE、--state=STATE
        全コンポーネントの期待する状態を指定します。デフォルトはActiveです。
 -x、--xml   XMLフォーマットを使います。
 -y、--yaml   YAMLフォーマットを使います。
 --version   プログラムのバージョン番号を表示します。
 -h、--help   ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンド(rtijectなど)もあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します。) 作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • sys.rtsysというRTSProfileファイルをチェックし、システムはエラーがない状態で起動中で、すべてのコンポーネントはactive状態かどうかを確認します。
     $ rtcheck sys.rtsys
  • 全コンポーネントはinactiveの状態にある以外は上記と同じです。
     $ rtcheck sys.rtsys -s Inactive
  • システムチェックのために何をするかを表示します。
     $ rtcheck sys.rtsys --dry-run

rtcomp

書式

rtcomp [OPTION...] MANAGER

概要

実行している複数のコンポーネントを、同じマネージャ上に一つのコンポジット・コンポーネントとして構成し、選択されたポートを外部にエクスポートします。Execution contextも選択することが可能です。ポートがエクスポートされているコンポーネントは自動的に構成に含まれます。

オプション

 -c COMPONENT_NAME、--comp=COMPONENT_NAME
       コンポジットコンポーネントに含むコンポーネントを指定します。このオプションは複数個の指定が可能です。
 -n NAME、--name=NAME
       コンポジットコンポーネントのインスタンス名(生成されるコンポネントの名前)を指定する。[デフォルト:CompositeRTC]
 -o OPTIONS、--options=OPTIONS
       コンポーネントを作る時の追加オプション。「&」で始めてください。
 -p PORTS、--port=PORTS
       エクスポート(外部公開)するポートを指定する。ポートがエクスポートされているコンポーネントは自動的にコンポジットコンポーネントに含まれます(-cと同じ)。
 -t TYPE、--type=TYPE
       Execution contextのタイプを指定します。[デフォルト:PeriodicECSharedComposite]
 --version  プログラムのバージョン番号を表示して終了する
 -h、--help  ヘルプを表示して終了する
 -v、--verbose より詳細な情報を出力する

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • Controller0.rtcのinポートとMotor0.rtcのoutポートをエクスポートしてMotor0.rtcとController0.rtcによってコンポジットコンポーネントを作ります。コンポジットコンポーネントのインスタンス名はMotorUnitです。
     $ rtcomp /localhost/manager.mgr -c /localhost/Motor0.rtc -p /localhost/Controller0.rtc:in -p /localhost/Motor0.rtc:out -n MotorUnit

rtcon

書式

 rtcon [OPTION ...] PATH PATH [PATH]

概要

二つ以上のデータポートやサービスポートを接続します。

オプション

 -i ID、--id=ID
        接続(コネクター)IDを指定します。
 -n NAME、--name=NAME
        接続名を指定します。
 -p PROPERTY=PROPERTY_VALUE、--property PROPERTY=PROPERTY_VALUE
        接続のプロパティーを指定します。
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。 

データポートの場合に有効なプロパティーを以下に示します:

 dataport.data_type
 dataport.dataflow_type
 dataport.interface_type
 dateport.subscription_type

サービスポートの場合に有効なプロパティーを以下に示します:

 port.port_type

OpenRTMのバージョンによっては、ほかのプロパティーも有効な場合があります。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • デフォルトプロパティーを使ってConsoleIn0.rtcのoutポートをConsoleOut0.rtcのinポートに接続します。
     $ rtcon /localhost/ConsoleIn0.rtc:out /localhost/ConsoleOut0.rtc:in
  • Pull型のコネクションによってMotor0.rtcのoutポートをSensor0.rtcのinポートに接続します。
     $ rtcon Motor0.rtc:out Sensor0.rtc:in --property dataport.dataflow_type=pull
  • Motor0.rtcのoutポートをSensor0.rtcのinポートに接続します。コネクション名はmotor_dataでIDはcon1です。
     $ rtcon Motor0.rtc:out Sensor0.rtc:in -i con1 -n motor_data
  • デフォルトプロパティーを使ってConsoleIn0.rtcのoutポートをConsoleOut0.rtcのinポートとConsoleOut1.rtcのinポートに接続します
     $ rtcon ConsoleIn0.rtc:out ConsoleOut0.rtc:in ConsoleOut1.rtc:in

rtconf

書式

 rtconf PATH [OPTION...] [list|set|get|act] [ARGS]

概要

コンフィグレーションパラメータとコンフィギュレーションセットを表示、設定します。list|set|get|actは、指定されていない場合はlistが指定されているものとします。

list
list コマンドはコンフィグレーションセットとパラメータを表示します。隠しコンフィグレーションセット(__で始まるセット名のコンフィギュレーションセット)は表示しません。
set PARAMETER_NAME VALUE
コンフィグレーションパラメータの値を設定します。パラメータ名と新しい値を指定してください。--set (-s)オプションが指定されていない場合、現在のアクティブなコンフィギュレーションセットのパラメータが設定されます。
get PARAMETER_NAME
パラメータの値を表示します。パラメータ名を指定してください。--set (-s)オプションが指定されていない場合、現在のアクティブなコンフィギュレーションセット内のパラメータの値を表示します。
act
--set=SET_NAME (-s SET_NAME)で指定したコンフィギュレーションセットをアクティブにします。

オプション(OPTION)

 -a、--all   隠しコンフィギュレーションセットを無視しない。隠しコンフィギュレーションセットを編集したい方はこのオプションを指定してください。
 -l       詳しい情報を表示します。
 -s <set name>、--set=SET_NAME
       コンフィギュレーションセットを選択する。指定されていない場合、現在アクティブになっているセットを使います。
 --version      プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • ConfigSample0.rtcのコンフィギュレーションセットを表示します。
     $ rtconf /localhost/ConfigSample0.rtc list
     +default*
     +mode0
     +mode1
  • ConfigSample0.rtcのコンフィギュレーションセットとパラメータを表示します。
     $ rtconf /localhost/ConfigSample0.rtc -l list
      -default*
      double_param0  0.99
      double_param1  -0.99
    ...
  • 隠しコンフィギュレーションセットを含めてConfigSample0.rtc のセットを表示します。
     $ rtconf /localhost/ConfigSample0.rtc -a list
     +__constraints__
     +__widget__
     +default*
     +mode0
     +mode1
  • ConfigSample0.rtcのdefaultセットのパラメータを表示します。
     $ rtconf /localhost/ConfigSample0.rtc -l -s default list
     -__constraints__
      double_param0  0<=x<=100
      double_param1
      ...
  • 現在アクティブなコンフィギュレーションセットのint_param0パラメータの値を42に設定します。
     $ rtconf /localhost/ConfigSample0.rtc set int_param0 42
  • mode0というコンフィギュレーションセットのint_param0を42に設定します。
     $ rtconf /localhost/ConfigSample0.rtc -s mode0 set int_param0 42
  • 現在アクティブなコンフィギュレーションセットのint_param0パラメータの値を表示します。
     $ rtconf /localhost/ConfigSample0.rtc get int_param0
     0
  • mode0というコンフィギュレーションセットのint_param0パラメータの値を表示します。
     $ rtconf /localhost/ConfigSample0.rtc -s mode0 get int_param0
     12345
  • コンフィギュレーションセットをmode1というコンフィギュレーションセットにします。
     $ rtconf /localhost/ConfigSample0.rtc act mode1
  • コンフィギュレーションセットを_ _widget_ _というセットにします。
     $ rtconf /localhost/ConfigSample0.rtc -a act __widget__

rtcryo

書式

rtcryo [OPTION...] [NAME_SERVER]

概要

実行中のRTシステムのRTSProfileを保存します。コンポーネント間の接続とコンポーネントの現在のコンフィグレーションパラメータを保存します。接続されていないコンポーネントは保存しません。

ファイル名を指定しない場合、RTSProfileをstdoutに出力します。デフォルトはXMLで保存します。

オプション

 -a ABSTRACT、--abstract=ABSTRACT
       RTシステムの概要を設定します。
 -n SYSNAME、--system-name=SYSNAME
       RTシステムの名前を設定します。
 -o OUTPUT_FILE、--output=OUTPUT_FILE
       出力ファイル名。指定しない場合はstdoutに出力します。
 -v VERSION、--system-version=VERSION
       RTシステムのバージョン設定します。
 -e VENDOR、--vendor=VENDOR
       RTシステムのベンダー名を設定します。
 -x、--xml   XML形式で出力します。
 -y、--yaml   YAML形式で出力します。
 --version   プログラムのバージョン番号を表示します。
 -h、--help   ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • すべて管理できるネームサーバー上のすべての接続されているコンポーネントの一つのRTシステムとしてRTSProfileをstdoutに出します。
     $ rtcryo
  • 全ての管理できるネームサーバー上のすべての接続されているコンポーネントを一つのRTシステムとしてRTSProfileをsys.rtsysというファイルに保存します。
     $ rtcryo -o sys.rtsys
  • localhostというホストのネームサーバーのすべての接続されているコンポーネントを一つのRTシステムとしてRTSProfileをstdoutに出します。
     $ rtcryo localhost
  • RTシステムの名前をmysystem、バージョンを1.0としてRTSProfile出力します。
     $ rtcryo -n 'mysystem' -v 1.0

rtcwd

書式

 rtcwd [PATH]

概要

RTCツリーの中の現在のワーキングディレクトリを変更します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • ルートディレクトリに移動します。
     $ rtcwd
  • ルートディレクトリに移動します。
     $ rtcwd /
  • /localhost/local.host_cxtというディレクトリに移動します。
     $ rtcwd /localhost/local.host_cxt
  • 親ディレクトリに移動します。
     $ rtcwd ..
  • 親の親ディレクトリに移動します。
     $ rtcwd ../..

rtdeact

書式

 rtdeact [OPTION ...] PATH [PATH ...]

概要

Active状態のRTコンポーネントを非アクティブ化します。

オプション

 -e EC_ID, --exec_context=EC_ID
       非アクティブ化するRTCのExecution contextのID。デフォルトは0。
 --version     プログラムのバージョン番号を表示します。
 -h、--help    ヘルプを表示します。
 -v、-verbose    より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • すべてEC上でConsoleOut0.rtcを非アクティブ化する。
     $ rtdeact /localhost/local.host_cxt/ConsoleOut0.rtc
  • すべてのEC上でConsoleOut0.rtcとConsoleIn0.rtcを非アクティブ化する。
     $ rtdeact ConsoleOut0.rtc ConsoleIn0.rtc
  • Motor0.rtcをIDが"2"のEC上でのみで非アクティブ化する。
     $ rtdeact -e 2 /localhost/local.host_cxt/Motor0.rtc

rtdel

書式

 rtdel [OPTIONS ...] PATH

概要

ネームサーバーから登録済みオブジェクトを消します。このコマンドでオブジェク ト自身を終了させることはできません。オブジェクトが他のところに登録されてい ない場合、そのオブジェクトに接続できない状態になるので注意してくだ さい。コンテキストやマネージャを消す時、他のオブジェクトも消す可能性が あるので注意してください。

このコマンドはゾンビを消すのに便利です。一つのコマンドですべてのゾン ビを消すことが可能です。

オプション(OPTION)

 -z、--zombies ゾンビのみを消します。
 --version    プログラムのバージョン番号を表示します。
 -h、--help   ヘルプを表示します。
 -v、--verbose  より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • localhostネームサーバーからMotor0.rtcを消します。コンポーネントは終了しません。
     $ rtdel /localhost/Motor0.rtc
  • localhostネームサーバーからMotor0.rtcというゾンビを消します。Motor0.rtcはゾンビではない場合は消しません。
     $ rtdel -z /localhost/Motor0.rtc
  • localhostネームサーバーからlocal.host_cxtというコンテキストを消します。そのコンテキスト下のコンポーネントやマネージャはすべて消されます。
     $ rtdel /localhost/local.host_cxt
  • すべてのネームサーバーからすべてのゾンビを消します。
     $ rtdel -z

rtdis

書式

rtdis [OPTION ...] PATH PATH [PATH]

概要

ポートの間の接続を切ります。一つのポートへの全ての接続を切ることも、コンポーネントの全ての接続を切ることもできます。

オプション(OPTION)

 -i ID、--id=ID 接続(コネクター)ID。
 --version      プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • ConsoleIn0.rtcのoutポートとConsoleOut0.rtcのinポート間の全て接続を切ります。
     $ rtdis /localhost/ConsoleIn0.rtc:out /localhost/ConsoleOut0.rtc:in
  • ConsoleIn0.rtcのoutポートに接続されている全ての接続を切ります。
     $ rtdis /localhost/ConsoleIn0.rtc:out
  • ConsoleIn0.rtcの全てのポートから全ての接続を切ります。
     $ rtdis /localhost/ConsoleIn0.rtc
  • ConsoleIn0.rtcのoutポートからcon1というIDを持つ接続のみを切ります。
     $ rtdis -i con1 /localhost/ConsoleIn0.rtc:out
  • ConsoleIn0.rtcのポートのうちcon1というIDの接続のみを切ります。
     $ rtdis -i con1 /localhost/ConsoleIn0.rtc

rtdoc

書式

 rtdoc [OPTION ...] PATH

注意

本セクションでは本Webサイトのシステムの都合上連続するアンダースコアがうまく記述できないところがあるため、そこでは"_ _"と間に空白をいれた形で表記しますが、これは"__"を意味しますので、置き換えてお読みください。

概要

RTコンポーネントの埋め込みドキュメンテーションを表示します。

あるRTコンポーネントはドキュメントを埋込むことができ、隠しコンフィグレーションセットとして実装されています。このコマンドでその埋め込みドキュメンテーションを複数のフォーマットで表示できます。対応フォーマットはreStructuredText、HTML、LaTex(PDF化を考慮して)です。

オプション

 -f FORMAT、--format=FORMAT
       フォーマットを選択します。rst、htmlおよびlatexから選択してください。
 -g、--graph  コンポーネントのグラフを表示させます。
 --version   プログラムのバージョン番号を表示して終了する
 -h、--help   ヘルプを表示して終了する
 -v、--verbose より詳細な情報を出力する

RTコンポーネントのドキュメンテーション

このコマンドによって取り扱われる埋め込みドキュメントは、_ _doc_ _コンフィギュレーションセットに記述します。このセット内のパラメータ(隠しでないもの)はセクションとして追加されます。

一般的なセクションは:

intro
コンポーネントの紹介。その動作目的などの概要を記載します。(Title: Introduction.)
reqs
コンポーネントを使用するための、事前にインストールされていなければいけないソフトウエアのような事前準備が必要yな事項を記載します。(Title: Pre-requisites.)
install
コンポーネントのインストール方法を記載します。(Title: Installation.)
usage
コンポーネントを起動したり使用したりする方法を記載します。 (Title: Usage.)
misc
コンポーネントを使用するにあたって知っておいたほうがよい他の重要な情報を記載します。(Title: Miscellaneous.)
changelog
コンポーネントの変更履歴を記載します。(Title: Changelog.)

また、コンポーネントがポートやコンフィギュレーションを持っていれば、そのデフォルトのコンフィギュレーションセットの中にportセクションとconfigセクションが自動的に作られます。_ _doc_ _セット内の他のセクションはすべてこの埋め込みドキュメントとして追加されます。

また、以下の3つのパラメータを追加の情報としてドキュメントの先頭部分に追加できます。

_ _license_ _
GPLやBSDなどのライセンス情報
_ _contact_ _
作者のemailアドレスなどの連絡先情報
_ _url_ _
コンポーネントに関するホームページのURL

パラメータはコンポーネントソース内にもコンポーネント起動時に読込まれるコンフィギュレーション・ファイル内で記述できます。ソース内に埋め込まれたドキュメントは、使用法や連絡先の短い情報以外は、コンポーネントのバイナリ・データ・サイズを消費するためコンフィギュレーション・ファイルに記載する方法を推奨します。

ソースコード内では例えば以下のように記述します:

 'conf.__doc__.__license__', 'LGPL',
 'conf.__doc__.__contact__', 'a@example.com',
 'conf.__doc__.__url__', 'http://www.openrtm.org',
 'conf.__doc__.intro', 'This is the introduction.',
 'conf.__doc__.reqs', 'This component requires nothing.',
 'conf.__doc__.install', 'Type "make install"',
 'conf.__doc__.usage', 'Run comp_standalone.',
 'conf.__doc__.misc', 'Extra information.',
 'conf.__doc__.changelog', 'No changes.',
 'conf.__doc__.Another', 'A non-standard section.',

デフォルトではセクションは以下の順番でインクルードされます。

 intro, reqs, usage, ports, config, misc, changelog, [other sections]

この順番は_ _doc_ _セット内の_ _order_ _パラメータで変更でき、ドキュメントのセクション中の各パラメータの名をコンマで分離したリストで指定し、例えば以下のようににします:

 'conf.__doc__.__order__', 'intro,ports,config,reqs,Another'

そこで指定されなかったセクションは、指定されたセクションの後になり、それぞれの順番は定義されません。

ポートへのドキュメントはポートのプロパティーの記述を追加し、例えば以下のようにします:

 self._inport.addProperty('description', 'This port receives stuff.')

コンフィグレーション・パラメータのドキュメントは、_ _description_ _セットでパラメータを設定し、例えば以下のようにします:,

 'conf.default.param', '0',
 'conf.__description__.param', 'A test parameter.',

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • ConsoleOut0.rtcのドキュメンテーションを標準出力に表示します。
     $ rtdoc /localhost/ConsoleOut0.rtc
  • ConsoleOut0.rtcのドキュメンテーションをdoc.htmlというファイルに保存します。
     $ rtdoc /localhost/ConsoleOut0.rtc > doc.html
  • ConsoleOut0.rtcのドキュメンテーションをreStructuredTextフォーマットで表示します。
     $ rtdoc /localhost/ConsoleOut0.rtc -f rst
  • ConsoleOut0.rtcのドキュメンテーションをrubberツールによってPDF形式で保存します。
     $ rtdoc /localhost/ConsoleOut0.rtc -f latex > doc.tex && rubber -d doc.tex

rtexit

書式

rtexit [OPTION ...] PATH

概要

実行中のRTコンポーネントを終了させます。コンポーネントは、関連するCallbackやリソースの開放などのシャットダウン処理をして終了します。

オプション(OPTION)

 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーは stderr に出力されます。

  • ConsoleOut0.rtcコンポーネントを終了します。
     $ rtexit /localhost/ConsoleOut0.rtc

rtfind

書式

rtfind SEARCH_PATH [OPTION ...]

概要

RTCツリーのネームサーバー上でコンポーネントやマネジャーなどを探索します。条件を設定もできます。

オプション(OPTION)

 -i INAME、--iname=INAME
       小文字と大文字を区別しないで名前で探す。複数回指定可能です。
 -m MAX_DEPTH、--maxdepth=MAX_DEPTH
       探す時の深さ制限します。デフォルトはすべてのツリーを探査します。
 -n NAME、--name=NAME
       小文字と大文字を区別して名前で探します。複数個指定可能です。
 -t TYPE、--type=TYPE
       オブジェクトの種類を指定します。文字で指定してください。以下の指定ができます。
       c:コンポーネント
       d:ディレクトリ
       m:マネージャ
       n:ネームサーバー
       z:ゾンビ
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバグ情報とエラーは stderr に出します。

  • RTCツリーの中のすべてのコンポーネントを探します。ルートディレクトリから探し始めます。
     $ rtfind / -t c
  • 現在のワーキングディレクトリ下のすべてのコンポーネントとマネージャを探します。
     $ rtfind . -t cm
  • 現在のワーキングダイレクトリ下で名がConsoで始まるコンポーネントを探します。
     $ rtfind . -n 'Conso*' -type c
  • 現在のワーキングディレクトリ下で名前がconsoleで始まり.rtcで終わって、その間に一字のみあるコンポーネントを探します。小文字と大文字を区別しません。
     $ rtfind . -i 'console?.rtc' -type c
  • (POSIXのみ)現在のワーキングディレクトリのすべてのコンポーネントをアクティブ化します。
     $ for c in `rtfind . -type c -m 1`; do rtact ${c}; done

rtinject

書式

rtinject [OPTIONS ...] PATH:PORT [PATH:PORT ...]

概要

値を一つ以上のポートに送ります。デフォルトは一回のみ送ります。複数回や定期的に送ることもできます。

目的のポートにデフォルトの接続を作ります。

オプション(OPTION)

 -c CONST、--const=CONST
       Pythonフォーマットでデータを指定します。POSIX系では「'」でデータ記述文字列を囲みます。
       Windowsでは「”」でデータ記述文字列を囲みます。このオプションが指定されなかった場合は、
       標準入力からデータをデータ記述文字列と見立てて動作します。データ記述文字列中の{time}の
       表記は現在の時刻を意味するものとして取扱われます。
 -m MODULES、--mod=MODULES
       Importするythonモジュールを指定します。値の必要なモジュールが自動的にロード
       されていない場合、このオプションで指定してください。モジュールとそのモジュー
       ルの__POAのモジュールもImportされます。
 -n NUMBER、--number=NUMBER
       データを何回送るかを指定します。-1を設定した場合、強制停止なされるまで送り続けます。
 -p PATHS、--path=PATHS
       モジュールのサーチパス。PythonのPYTHONPATH変数に追加されます。
 -r RATE、--rate=RATE
       頻度を指定します。単位は(回/sec)です。
 -t TIMEOUT、--timeout=TIMEOUT
       タイムアウト時間(コマンドの実行を停止するまでの時間)を秒単位で指定します。このオプ
       ションは --number と一緒に使用で来ません。
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose 冗長な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • stdinからの値をConsoleOut0.rtcのinポートに送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in
  • 42と現在の時刻をタイムスタンプとconsoleout0.rtcのinポートに送ります。「’」使ってpython形式のデータ指定を囲みます。(Windowsでは「"」を使ってください。)
     $ rtinject /localhost/ConsoleOut0.rtc:in -c 'RTC.TimedLong({time}, 42)'
  • 42をタイムスタンプ1秒としてConsoleOut0.rtcのinポートに送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in -c 'RTC.TimedLong(RTC.Time(1, 0), 42)'
  • stdinからの値を五回ConsoleOut0.rtcのinポートに送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in -n 5
  • 42を現在の時刻を元にconsoleout0.rtcのinポートに5回送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in -n 5 -c 'RTC.TimedLong({time}, 42)'
  • 42と現在の時刻を元に10回/secの頻度でconsoleout0.rtcのinポートに秒間送ります。
     $ rtinject /localhost/ConsoleOut0.rtc:in -t 5 -r 10 -c 'RTC.TimedLong({time}, 42)'
  • MyData.MyVal(84)をMyComp0.rtcのinポートに送ります。クラスはPythonのサーチパス(PYTHONPATH)に存在するモジュールに指定されています。そのモジュールはOMG IDLファイルからジェネレートされました。
     $ rtinject /localhost/MyComp0.rtc:in -c 'MyData.MyVal(84)'
  • MyData.MyVal(84)をMyComp0.rtcのinポートに送ります。クラスはPythonのサーチパス(PYTHONPATH)に存在しないモジュールに指定されています。モジュールのパスは-pで指定されます。
     $ rtinject /localhost/MyComp0.rtc:in -p /usr/local/mods -c 'MyData.MyVal(84)'
  • MyData.MyVal(84)をMyComp0.rtcのinポートに送ります。クラスはPythonのサーチパス(PYTHONPATH)に存在するmymodというモジュールを指定します。
     $ rtinject /localhost/MyComp0.rtc:in -p /usr/local/mods -m mymod -c 'MyData.MyVal(84)'

rtlog

書式

rtlog [OPTION ...] PATH:PORT [PATH:PORT ...]

概要

コンポーネントがデータポートで送るデータをログファイルに保存したり、ログファイルに記録したデータをコンポーネントに送ったり(再生)します。複数のポートでも記録が可能です。ログされたコンポーネントの出力データを再現するためにログファイルを再生しコンポーネントに送ることもできます。

ログの複数データストリームから再生されたストリームを選択できます。例えばログに複数のレーザセンサーからのデータが保存されてる場合、その中から特定の1つのみのレーザセンサー・データを再生できます。再生はログの始まりだけではなくて途中から途中までをという形や、再生レートを変えたりできます。また出力されたデータのタイムスタンプを編集できます。

デフォルトはログの保存です。コマンドで指定したポートはすべてOutPortである必要があります。再生モードの場合は、ポートはすべてInPortの必要があり、また、ログされたデータの型にポートが受付可能な型は一致している必要があります。

ログで記録されるそれぞれのポートは一つのデータストリームを作ります。再生時、このデータストリームはそれぞれ複数のInPortに送ることができます。データストリームは名前で区別されます。名前はコマンドラインで指定できますが、指定されなかった場合は、デフォルトの名前が自動的に使われます。

ログツールから目的のポートまでの接続はデフォルトのプロパティーで作られます。

オプション

 -a、--absolute-times
       ログデータからのタイムスタンプは記録されたままの値を送るようにします。
       指定しない場合、タイムスタンプは現在の時刻でオフセットされます。
 -d、--display-info
       ログの情報を表示して終了します。
 -e END、--end=END
       記録や再生を止めるタイムスタンプまたはインデクスを指定します。再生の
       場合は記録されているログ中の先頭と最後のデータの間の数値を指定してく
       ださい。-1を指定した場合は強制終了されるまで記録するか、ログの最後ま
       で再生します。インデクスで指定したい場合は--indexも指定してください。
 -f FILENAME、--filename=FILENAME
       ログファイルの名前を指定します。指定しない場合、現在の時刻をファイル名
       とします。再生の時は必須です。
 --path=PATHS    
       モジュールのサーチパスを指定します。PythonのPYTHONPATH変数に追加されます。
 -i、--index
       --startオプションや--endオプションで指定する値をタイムスタンプではなく
       インデクスとして扱うようにします。
 -l LOGGER、--logger=LOGGER
       ログ種類を選択します。デフォルトはSimplePickle(simpkl)です。テキストログ
       (text)を使うこともできます。テキストログは再生できません。
 -m MODULES、--mod=MODULES
       ImportするPythonモジュールを指定します。データを取扱うために必要な
       モジュールが自動的にロードされていない場合、このオプションで指定してくだ
       さい。モジュールとそのモジュールの__POAのモジュールもImportします。
 -n、--ignore-times
       (再生のみ)ログに記録されたタイムスタンプを無視して一定の周期でログデータ
       を再生します。周期を変える場合、--exec-rateを使ってください。
 -p、--play 再生モードにします。
 -r RATE、--rate=RATE
       (再生のみ)再生速度の倍数を指定します。
 -s START、--start=START
       (再生のみ)再生を始めるタイムスタンプまたはインデクスを指定します。ログの
       最初と最後のデータの間にすることは必須です。インデクスで指定する場合、
       --indexも指定してください。
 -t TIMEOUT、--timeout=TIMEOU
       記録または再生のタイムアウト時間を指定します。このオプションを使う場合、
       --startと--endを使うことはできません。
 -x EXEC_RATE、--exec-rate=EXEC_RATE
       コンポーネントの実行レートを指定します。単位はヘルツです。
 --version  プログラムのバージョン番号を表示して終了する
 -h、--help ヘルプを表示して終了する
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。これはストリーム名を指定するのにもつかわれます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • ConsoleIn0.rtcコンポーネントのoutポートからのデータをファイルlog.rtlogに記録します。データストリームはnumbersという名前がつけられます。
     $ rtlog -f log.rtlog /localhost/ConsoleIn0.rtc:out.numbers
  • ログファイルlog.rtlogからnumbersというデータストリームを再生しConsoleOut0.rtc:inポートへ送ります。
     $ rtlog -f log.rtlog -p /localhost/ConsoleOut0.rtc:in.numbers
  • ログの情報を表示します。ログの開始時間、終了時間、データストリームなどが含まれています。
     $ rtlog -f log.rtlog -d
  • コンピューターの時計が”1292489690”になるまで記録し、終了します。
     $ rtlog -f log.rtlog -e 1292489690 /localhost/ConsoleIn0.rtc:out.numbers
  • 10個のデータを記録して終了します。
     $ rtlog -f log.rtlog -e 10 -i /localhost/ConsoleIn0.rtc:out.numbers
  • 10秒間記録して終了します。
     $ rtlog -f log.rtlog -t 10 /localhost/ConsoleIn0.rtc:out.numbers
  • "1292489690"のタイムスタンプから再生を始めます。
     $ rtlog -f log.rtlog -p -s 1292489690 /localhost/ConsoleOut0.rtc:in.numbers
  • 先頭のデータから”1292489700”のタイムスタンプまで再生します。
     $ rtlog -f log.rtlog -p -e 1292489700 /localhost/ConsoleOut0.rtc:in.numbers
  • "1292489690"のタイムスタンプから"1292489700"のタイムスタンプまで再生します.(大体10秒のデータ。)
     $ rtlog -f log.rtlog -p -s 1292489690 -e 1292489700 /localhost/ConsoleOut0.rtc:in.numbers
  • 5番目のデータから再生を始めます。
     $ rtlog -f log.rtlog -p -s 5 -i /localhost/ConsoleOut0.rtc:in.numbers
  • 最初のデータから10番目のデータまで再生します。
     $ rtlog -f log.rtlog -p -e 10 /localhost/ConsoleOut0.rtc:in.numbers
  • 5番目のデータから10番目のデータまで再生します。
     $ rtlog -f log.rtlog -p -s 5 -e 10 /localhost/ConsoleOut0.rtc:in.numbers
  • 先頭から10秒間のデータを再生します。
     $ rtlog -f log.rtlog -p -t 10 /localhost/ConsoleOut0.rtc:in.numbers
  • ログを5倍速で再生します。
     $ rtlog -f log.rtlog -p -r 5 /localhost/ConsoleOut0.rtc:in.numbers
  • ログを0.2倍速で再生します。
     $ rtlog -f log.rtlog -p -r 0.2 /localhost/ConsoleOut0.rtc:in.numbers
  • 1秒に1個づつ再生して、最終的に5個のデータを再生します。
     $ rtlog -f log.rtlog -p -n 5 -x 1 /localhost/ConsoleOut0.rtc:in.numbers
  • 一つのファイルに三つのデータストリームを記録します。ストリームの名前はsensorとctrlとmotorです。
     $ rtlog -f log.rtlog /localhost/Sensor0.rtc:out.sensor /localhost/Controller0.rtc:out.ctrl /localhost/Motor0.rtc:out.motor
  • 一つのログから二つのデータストリームを再生し、それぞれ別々のポートへ送ります。
     $ rtlog -f log.rtlog -p /localhost/Sensor0.rtc:in.motor /localhost/Motor0.rtc:in.ctrl
  • 一つのログから二つのデータストリームを再生し同じポートへ送ります。
     $ rtlog -f log.rtlog -p /localhost/Controller0.rtc:in.sensor /localhost/Controller0.rtc:in.motor
  • ログから一つのデータストリームを再生し複数のポートへ送ります。
     $ rtlog -f log.rtlog -p /localhost/Sensor0.rtc:in.motor /localhost/Controller0.rtc:in.motor

rtls

書式

rtls [OPTION ...] [PATH]

概要

RTCツリーのディレクトリにあるオブジェクトをリストします。デフォルトは現在のワーキングディレクトリをリストします。

ロング形式の表示では、以下の項目も表示します。

 ステート
 ポートの数/接続されたポートの数
 インポートの数/接続されたインポートの数
 アウトポートの数/接続されたアウトポートの数
 サービスポートの数/接続されたサービスポートの数
 名前

オプション(OPTION)

 -l   詳細な情報を表示します
 -R、--recurse
       サブツリーの情報も表示します。
 --version プログラムのバージョン番号を表示します
 -h、--help    ヘルプを表示します
 -v、--verbose    より詳細な情報を出力します

-lオプションで表示されるフィールドの意味

  • lオプションを使用した場合、例えば、以下のように表示されます:
     C:\>rtls -l /localhost/OPENRTM-AIS57CA.host_cxt
     Active    0/0  0/0  0/0  0/0  ConfigSample0.rtc
     Inactive  1/0  0/0  1/0  0/0  ConsoleIn0.rtc
     Inactive  1/0  1/0  0/0  0/0  ConsoleOut0.rtc

ここで、表示される各行は

 STATE  AP/APC IP/IPC OP/OPC  SP/SPC NAME

となり、それぞれは以下の意味を持ちます:
STATE
Active、Inactive、Errorのどれかのコンポーネントの状態が表示されます。
APN/APC
ポートの総数/接続しているポートの数
IP/IPC
入力ポートの総数/接続している入力ポートの数
OP/OPC
出力ポートの総数/接続している出力ポートの数
SP/SPC
サービスポートの総数/接続しているサービスポートの数
NAME
ノードの名前(RTC名など)

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • 現在のワーキングディレクトリにあるオブジェクトを表示します。
     $ rtls
  • RTCツリーのルートディレクトリをリストします。このコマンドはネームサーバーを表示します。
     $ rtls /
  • localhostネームサーバーに登録されているオブジェクトをリストします。
     $ rtls /localhost
  • localhostネームサーバーに登録されたすべてのオブジェクトをリストします。
     $ rtls -R /localhost
  • localhostネームサーバーの登録されたオブジェクトの詳細な情報をリストします。コンポーネントのステートなどを見ることが可能です。
     $ rtls -l /localhost
  • localhostネームサーバーに登録されたすべてのオブジェクトの詳細な情報をリストします。
     $ rtls -lR /localhost
  • 1秒ごとに現在のワーキングディレクトリのコンポーネントの状態を表示します。(POSIX環境のみ)
     $ watch -n 1 rtls -l

rtmgr

書式

rtmgr [OPTION ...] PATH

概要

共有ライブラリ(共有モジュール)やコンポーネントを追加/削除してマネジャーの制御をします。マネジャーにロードされた共有ライブラリ(モジュール)からコンポーネントをインスタンス化します。

マネジャーのコンフィグレーションはrtconfを使用して設定してください。マネジャーの情報はrtcatによって表示できます。

複数のコマンドが実行された場合、コマンドラインに入力した順番で実行されます。

オプション(OPTION)

 -c MOD_NAME、-create=MOD_NAME
        ロードされたモジュールからコンポーネントのインスタンスを作る。プロパティ―をモジュール名
        に追加することが可能です。プロパティ―は先頭に"?”をつけて指定します。
 -d INSTANCE_NAME、--delete=INSTANCE_NAME
        コンポーネントのインスタンスを終了して消去します。
 -l MOD_PATH、--load=MOD_PATH
        マネジャーにモジュールをロードする。初期化関数はモジュールパスの後に":"で分けて指定します。
 -u MOD_PATH_U、--unload=MOD_PATH_U
        マネジャーからモジュールを削除します。
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値 成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバグ情報とエラーは stderr に出します。

 $ rtmgr /localhost/manager.mgr -l /usr/local/lib/mycomp.so:mycomp_init
マネジャーに mycomp.so というモジュールをロードします。

 $ rtmgr /localhost/manager.mgr -c mycomp
mycomp というモジュールからコンポーネントのインスタンスを作ります。

 $ rtmgr /localhost/manager.mgr -d MyComp0
マネジャーに実行中の MyComp0 というコンポーネントを終了して消します。

 $ rtmgr /localhost/manager.mgr -u /usr/local/lib/mycomp.so
マネジャーから mycomp.so というモジュールを消します。

 $ rtmgr /localhost/manager.mgr -l /usr/local/lib/mycomp.so:mycomp_init  -c mycomp
マネジャーに mycomp.so というモジュールをロードしてそしてコンポーネン トのインスタンスを作ります。

rtprint

書式

rtprint [OPTION ...] PATH:PORT [PATH:PORT ...]

概要

アウトポートが送るデータを標準出力に表示します。

デフォルトでは、強制停止するまで受け取った値を表示します。受け取るデータ個数を指定することや、受け取りに行く頻度、また受け取りを止めるまでの時間間を指定することができです。個数を指定したが、その時点で、その個数分のデータが準備できてない場合は準備できるまで待ち、その個数分の回数表示をします。

Pythonのネイティブな機能では表示できないデータを表示するためにはフォーマッタ関数を使う必要があります。ユーザーがこの関数を定義することは可能です。フォーマッタ関数の入力引数は一つ (表示するべきデータ)で、例えば下記のように定義します。

 def rawpy(data):
     return data.__repr__()

ポートまでの接続はそのポートのデフォルト設定と互換性のある設定でなされれま す。

オプション(OPTION)

 -m MODULES、--mod=MODULES
        Importする必要があるPython モジュールを指定します。接続するポートのデータを表示するために必要とされている
        モジュー ルがロードされていない場合、このオプションで指定してください。 モジュールとそのモジュールの __POA
        のモジュールもimportします。
 -n NUMBER、--number=NUMBER
        読込む回数。
 -p PATHS、--path=PATHS
        モジュールのサーチパス。PythonのPYTHONPATH変数に追加されます。
 -r RATE、--rate=RATE
        読みだし頻度(回/sec)。
 -t TIMEOUT、--timeout=TIMEOUT
        読み込み停止するまでの時間。このオプションを使う場合、--numberを使うことはできません。
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • ConsoleIn0.rtcのout ポートから出力データを表示します。
     $ rtprint /localhost/ConsoleIn0.rtc:out
  • ConsoleIn0.rtcのout ポートから5個のデータを表示します。
     $ rtprint /localhost/ConsoleIn0.rtc:out -n 5
  • ConsoleIn0.rtcのout ポートからのデータを5秒間表示します。
     $ rtprint /localhost/ConsoleIn0.rtc:out -t 5
  • ConsoleIn0.rtcのout ポートからのデータを5秒間、1秒で10回の頻度で読み、表示しま す。
     $ rtprint /localhost/ConsoleIn0.rtc:out -t 5 -r 10
  • ConsoleIn0.rtcのout ポートからの出力データをprintersモジュールのmy_formatter関数に送って結果を表示します。
     $ rtprint /localhost/ConsoleIn0.rtc:out#printers.my_formatter

rtpwd

書式

rtpwd

概要

現在の作業ディレクトリを表示します。

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテクストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

rtreset

書式

rtreset [OPTION ...] PATH [PATH ...]

概要

エラーステートにあるRTコンポーネントをリセットします。

オプション(OPTION)

 -e EC_INDEX、--exec_context=EC_INDEX
        このexecution contextの中のみでリセットする。ディフォルトは0。
 --version   プログラムのバージョン番号を表示して終了する
 -h、-help   ヘルプを表示して終了する
 -v、--verbose 冗長な情報を出力する [デフォルト: False]

パス

rtshellはパスでRTCツリーのオブジェクトを示します。ネームサーバーとネームコンテキストはディレクトリ名として指定され、マネージャとRTコンポーネントはファイル名として指定されます。コマンドに渡したパスはrtshellの現在の作業ディレクトリを元に指定されます。(相対パスの場合)。rtshellの現在の作業ディレクトリはRTCSH_CWDという環境変数に保存されて、rtcwdというコマンドで変更できます。(現時点でrtcwdコマンドはLinux環境では動作していません)

利用できるパスはコマンド実行時に参照しているネームサーバーによって変わります。ネームサーバーが実行されているホスト名はRTCTREE_NAMESERVERSという環境変数で指定できます。また、直接ルート直下のパスとして/<ホスト名>/....のような形でネームサーバーが実行されているホストを指定できます。

例えば、/localhost/comp0.rtcはlocalhostにあるネームサーバーに登録されたcomp0.rtcというRTコンポーネントを示します。/localhost/manager/comp0.rtcはlocalhostにあるネームサーバーの下のmanagerというディレクトリに登録されたcomp0.rtcというRTコンポーネントを示します。./comp0.rtcは現在の作業ディレクトリにあるcomp0.rtcというRTコンポーネントを示します。

RTコンポーネントのポートを示す場合、パスの後にコロン(「:」)で区切って指定します。例えば、/localhost/comp0.rtc:dataはcomp0.rtcというRTコンポーネントのdataというポートを意味します。

新しいポートを作れるコマンドもあり、この場合、オプションでそれらをパスに追加できます。使えるオプションは作られるポートの名前とフォーマッタです。指定方法は以下の通りです:

 <path>:<port>.<new_port_name>#<formatter>

例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff#a_printer

新たに作られるポートの名前はstuffで、データはa_printerという関数(フォーマッター)でターミナルに表示するように指定しています。(a_printerの関数はPythonが利用可能な場所に存在する必要があります。普通はユーザーがモジュールで提供します)。作られたポートはcomp0.rtcのinputというポートに接続されます。

<new_port_name>という部分は必須ではありません。指定しない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input#a_printer

<formatter>という部分は必須ではありません。書いていない場合は"."も指定しないでください。例:

 /localhost/blurg.host_cxt/comp0.rtc:input.stuff

環境変数

RTCTREE_ORB_ARGS
ORBを作る時に渡す変数です。セミコロンで区切ります。必須ではありません。
RTCTREE_NAMESERVERS
RTCツリーを作る時に参照するネームサーバーのアドレスです。アドレスをセミコロンで区切ります。リストされたアドレスはRTCツリーに追加されrtshellで参照できるようになります。ルート下のディレクトリ名としてパスで指定することもできるので必須ではありません。
RTSH_CWD
rtshellの現在のワーキングディレクトリ。rtshellが自動的に設定します。設定しないでください。

一般的な利用ではユーザーが設定する変数はRTCTREE_NAMESERVERSのみです。よく使うネームサーバーを設定しておくと便利です。例えば、Bashシェルの場合、以下のコマンドはlocalhostとポート192.168.0.1:65346およびホストexample.comにあるネームサーバーをrtshellが参照できるようにします。

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • ConsoleOut0.rtcのすべてのEC上でリセットにする。
     $ rtreset /localhost/local.host_cxt/ConsoleOut0.rtc
  • ConsoleOut0.rtcとConsoleIn0.rtcのすべてのEC上でリセットにする。
     $ rtreset ConsoleOut0.rtc ConsoleIn0.rtc
     System Message: WARNING/2 (rest/ja/rtreset.txt, line 44); backlink
     Inline literal start-string without end-string.
  • Motor0.rtcをIDが"2"のEC上でのみリセットする。
     $ rtreset -e 2 /localhost/local.host_cxt/Motor0.rtc

rtresurrect

書式

rtresurrect [OPTION ...] [RTSPROFILE_FILE]

概要

RTSProfileファイルをロードし、実行中のコンポーネントを使ってRTシステム を復元します。コンポーネントの間の接続とコンポーネントのコンフィグレーションパラメータはRTSProfileファイルに記述されたものが反映されます。 RTSProfileファイルに"required"とマークされておらず実行中ではないコンポーネントは無視されます。

ファイル名を指定しない場合、RTSProfile形式のデータをstdinから読込みます。

オプション(OPTION)

 --dry-run   復元するために何をするかを表示して終了する(実際には復元しない)
 -x, --xml   XMLフォーマットを使う
 -y, --yaml  YAMLフォーマットを使う
 --version   プログラムのバージョン番号を表示して終了する
 -h, --help  ヘルプを表示して終了する
 -v, --verbose 冗長な情報を出力する [デフォルト: False]

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • sys.rtsysというファイルを用いRTシステムを復元します。
     $ rtresurrect sys.rtsys
  • sys.rtsys というファイルを用いて復元処理をする場合に何がなされるかを表示します。(実際の復元処理は行われません。)
     $ rtresurrect sys.rtsys --dry-run

rtstart

書式

rtstart [OPTION ...] [RTSPROFILE_FILE]

概要

指定されたRTSProfileファイルの情報を元にすべてのコンポーネントをアクティブ化することによりRTシステムを起動します。コンポーネントはRTSProfileファイル内で指定された順番でアクティブ化されます。RTSProfileに”required"とマークされていないコンポ―ネントは無視されます。

ファイル名を指定されなかった場合、RTSProfile形式の情報でstdinから読込みます。

オプション(OPTION)

 --dry-run   実行する内容を表示する(実際には起動は行われない)
 -x、--xml   XMLフォーマットを使う
 -y、--yaml  YAMLフォーマットを使う
 --version   プログラムのバージョン番号を表示して終了する
 -h、--help  ヘルプを表示して終了する
 -v、--verbose より詳細な情報を出力します

ステート変更の実行シーケンス

RTSProfileファイルでは、RTシステムのコンポーネントの開始/停止の順番を指定するこが可能です。コンポーネント間で依存関係がある場合(例えば、あるコンポーネントの開始前に、別のコンポーネントの実行を開始する必要がある場合など)に、その順番を指定することが可能です。

rtstartとrtstopはこの情報を利用します。実際のところrtstartはActivationブロックに含まれている情報を利用し、rtstopはDeactivationブロックに記述されている情報を利用します。ここに記載された情報を元にしたコンポーネントのアクティブ化/非アクティブ化処理は全ての処理が完了するかエラーが発生するまで、継続します。

オプション--dry-runが指定された場合、このオプションが指定されなかった場足にどのような処理がなされるかを表示します。実際の処理はなされません。出力は以下のようになります。

 {1} Activate /localhost/ConfigSample0.rtc in execution context 0 (Required) 
 {2} [Order 1] Activate /localhost/Motor0.rtc in execution context 0 (Required)
 {4} [Order 3/Wait 5000ms] Activate /localhost/Controller0.rtc in execution context 0 (Required)
 {3} [Order 2/Sync to Motor0, Order 5/Sync to Controller0] Activate /localhost/Sensor0.rtc in execution context 0 (Required)
 {5} [Order 4/After ConfigSample0's action] Activate /localhost/ConsoleIn0.rtc in execution context 0 (Required)

各ラインの初めの括弧の中の数字は*アクションID*です。これらは実行の時にも表 示され、これによりアクションの簡単な識別が可能です。 その後に続く角括弧で囲まれた部分はその後に続くアクションを実行するにあたって必要な条件が示されていてその中で使われる特定の単語は以下のような意味を持っています:

Order
順番を管理します。RTSProfileのconditionのrts:sequence値で設定可能です。他の前条件がない場合、アクションはこの順番によってなされます。
Wait
指定された時間が経過した後にアクションが実行されます。
Sync
指定されたコンポーネントがターゲット状態になるまで待ち、その後指定のアクションが実行されます。
After
Syncと似てます。違いは、アクションが指定の別のコンポーネント上で行われるまで待つということです。言いかえれば、そのアクションは、指定の別コンポーネントが目標状態に達する前でも、そのコンポーネントでアクションが行われれば実行されます。

行のその後の部分はアクションの説明です。

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • sys.rtsysというファイルの情報を元にRTシステムを起動します。
     $ rtstart sys.rtsys
  • sys.rtsysというファイルの情報を元にRTシステムを起動するためにどのような処理がなされるかをを表示します。(実際の起動は行われません。)
     $ rtstart sys.rtsys --dry-run

rtstodot

書式

rtstodot [OPTION ...] [RTSPROFILE_FILE]

概要

GraphvizのdotフォーマットでRTシステムをグラフとして表示します。 ファイルが指定されていない場合RTSProfile形式で情報をstdinから読みます。

オプション(OPTION)

 -x、--xml   XMLフォーマットを使います
 -y、--yaml  YAMLフォーマットを使います
 --version   プログラムのバージョン番号を表示します
 -h、--help  ヘルプを表示します
 -v、--verbose より詳細な情報を出力します

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • sys.rtsysファイルを元にRTシステムを表示します。
     $ rtstodot sys.rtsys | dot -T xlib
  • sys.rtsysファイルを元にRTシステムを表示してEncapsulated PostScriptフォーマットでsys.epsファイルに保存します。
     $ rtstodot sys.rtsys | dot -T eps > sys.eps
  • 現在実行中のRTシステムを表示します。
     $ rtcryo | rtstodot | dot -T xlib

rtstop

書式H

rtstop [OPTIONS ...] [RTSPORFILE_FILE]

概要

RTSProfile形式のファイルを読み込み、その情報を用いて現在実行中のRTシステムのすべてのコンポーネントを非アクティブ化することによってRTシステムを停止します。コンポーネントはRTSProfileファイルで指定された順番で非アクティブ化が起こなわれます。RTSProfileファイル中で”required"とマークされていないコンポーネントで実行中でないものは無視されます。

ファイルが指定されてない場合、RTSProfile情報をstdinから読みます。

オプション

 --dry-run  処理の内容を表示します(実際の処理ー非アクティブ化は行われません)。
 -x、--xml   XMLフォーマットを使います。
 -y、--yaml  YAMLフォーマットを使います。
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

ステート変更の実行シーケンス

RTSProfileファイルでは、RTシステムのコンポーネントの開始/停止の順番を指定するこが可能です。コンポーネント間で依存関係がある場合(例えば、あるコンポーネントの開始前に、別のコンポーネントの実行を開始する必要がある場合など)に、その順番を指定することが可能です。

rtstartとrtstopはこの情報を利用します。実際のところrtstartはActivationブロックに含まれている情報を利用し、rtstopはDeactivationブロックに記述されている情報を利用します。ここに記載された情報を元にしたコンポーネントのアクティブ化/非アクティブ化処理は、全ての処理が完了するか、エラーが発生するまで継続します。

オプション--dry-runが指定された場合、このオプションが指定されなかった場足にどのような処理がなされるかを表示できます。実際の処理はなされません。出力の例を以下に示します。

 {1} Activate /localhost/ConfigSample0.rtc in execution context 0 (Required) 
 {2} [Order 1] Activate /localhost/Motor0.rtc in execution context 0 (Required)
 {4} [Order 3/Wait 5000ms] Activate /localhost/Controller0.rtc in execution context 0 (Required)
 {3} [Order 2/Sync to Motor0, Order 5/Sync to Controller0] Activate /localhost/Sensor0.rtc in execution context 0 (Required)
 {5} [Order 4/After ConfigSample0's action] Activate /localhost/ConsoleIn0.rtc in execution context 0 (Required)

各ラインの初めの括弧の中の数字は*アクションID*です。これらは実行の時にも表 示され、これによりアクションの簡単な識別が可能になります。 その後に続く角括弧で囲まれた部分はその後に続くアクションを実行するにあたって必要な条件が示されていてその中で使われる特定の単語は以下のような意味を持っています:

Order
順番を管理します。RTSProfileのconditionのrts:sequence値で設定可能です。他の前条件がない場合、アクションはこの順番によってなされます。
Wait
指定された時間が経過した後にアクションが実行されます。
Sync
指定されたコンポーネントがターゲット状態になるまで待ち、その後指定のアクションが実行されます。
After
Syncと似てます。違いは、アクションが指定の別コンポーネント上行われるまで待つということです。言いかえれば、そのアクションは、指定の別コンポーネントが目標状態に達する前でも、そのコンポーネントでアクションが行われれば実行されます。

行のその後の部分はアクションの説明です。

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

$ rtstop sys.rtsys sys.rtsysというファイルの情報を元にRTシステムを停止します。

$ rtstop sys.rtsys --dry-run sys.rtsysというファイルの情報を元にRTシステムの停止処理をする場合、どのような処理がなされるかを表示します。(実際には停止処理は行われません。)

rtteardown

書式

 rtteardown [OPTION ...] [RTSPROFILE_FILE]

概要

RTSProfileファイルに記述された接続情報を用いて、動作中のRTシステムの接続を削除します。

ファイル名を指定しなかった場合、RTSProfile情報をstdinから読みこみます。

オプション

 --dry-run   実行する内容を表示します(実際には削除は行われません)。
 -x、--xml   XMLフォーマットを使います。
 -y、--yaml   YAMLフォーマットを使います。
 --version   プログラムのバージョン番号を表示します。
 -h、--help  ヘルプを表示します。
 -v、--verbose より詳細な情報を出力します。

返り値

成功の場合はゼロを返します。失敗の場合はゼロではない値を返します。

デバッグ情報とエラーはstderrに出力されます。

  • sys.rtsysファイルの情報を用いて現在実行中のRTシステムの接続を削除します。
     $ rtteardown sys.rtsys
  • sys.rtsysファイルの情報を用いて現在実行中のRTシステムの接続を削除する場合、どのようなことがなされるかを表示します。(実際には、削除は行われません。)
     $ rtteardown sys.rtsys --dry-run

rtctreeモジュール

rtctree は Python で RTコンポーネントの管理をするためのライブラリです。

概要

rtctree は簡単な API で RTコンポーネントの管理をするための Python用のライブラリです。開発者は CORBA の API を知らなくとも、他のプログラムから、RTコンポーネントのシステムを管理することができます。 コンポーネントを activate したり deactivate したり、コンポーネント間の接続を行うことが可能です。

このソフトウエアは NEDO (独立行政法人 新エネルギー・産業技術総合開発機構) の次世代ロボット知能化技術開発プロジェクトの支援により、独立行政法人産業技術総合研究所によって開発されています。

必要条件

  • ominorb-py 及び omniidl と omniidl用の Python モジュールが必要となります。
  • Python 2.5 以下では存在しない機能を使うので、Python 2.6 以上が必要となります。
  • Ubuntu 9.04 を使っていたら、手動で Python 2.6 をインストールすることが必要となります。そのため、Ubuntu 9.04 以上をおすすめします。

インストール

インストールはいくつかの方法が利用可能です。

  • リポジトリ(参照:以下のリポジトリ)またはソースアーカイブからダウンロード後、適当なディレクトリーで解凍し、インストールする:
    1. ソースを展開する。
       $ cd /home/blurgle/src/
       $ tar -xvzf rtctree-2.0.0.tar.gz
    2. setup.pyを実行する。
       $ python setup.py install
    3. 必要に応じて、環境変数を設定します。これはデフォルトで設定されていますが、設定されていない場合は自分で設定する必要があります。Windows上では、Python の site-packages ディレクトリーが PYTHONPATH 環境変数に、Python スクリプトのディレクトリが PATH 環境変数に設定されていることを確認してください。通常、これらは C:\Python26\Lib\site-packages\C:\Python26\Scripts\ です(PythonがC:\Python26\にインストールされた場合)。
  • Windows ではインストーラーの使用を推奨します。setup.py を利用すれば結果より容易に設定することができます。ただし、環境によってはさらに環境変数の設定が必要な場合があります。

環境変数

以下の環境変数が使われます。

RTCTREE_ORB_ARGS ORB作成時に与えるセミコロンで区切られた引数のリスト。設定することは必要となりません。
RTCTREE_NAMESERVERS セミコロンで区切った RTC ツリーのためのネームサーバーのアドレスのリスト。この変数に書いたサーバーはツリーに追加します。設定することは必要となりません。

普通の場合、RTCTREE_ORB_ARGS を設定することは必要となりません。RTCTREE_NAMESERVERS を設定したら、rtctree を使うときにもっと便利となります。例えば、Bash シェルでしたら:

 $ export RTCTREE_NAMESERVERS=localhost;192.168.0.1:65346;example.com

RTC ツリー

ライブラリの主要部分は RTC ツリーです。

 import rtctree.tree
 tree = rtctree.tree.RTCTree()
これはネーミングコンテキスト、コンポーネントおよびマネージャを取得するためにネームサーバ〜を検索して作成したファイルシステムのようなツリーです。通常のファイルシステムを扱う場合とまったく同じように扱うことができます。ツリーはすべての既知のネームサーバーに登録されたネーミングコンテキスト、マネージャ、およびコンポーネントをツリー構造で表します。

 \  
 |-+localhost
 | |-+naming_context
 | | |--ConsoleIn0.rtc
 | | |--ConsoleOut0.rtc
 | |
 | |--another_naming_context
 | |--Sensor0.rtc
 |
 |-+192.168.0.5
   |--Motor0.rtc
   |--Controller0.rtc

ツリー内の各ディレクトリーは、通常のネーミングコンテキストまたはネームサーバーのルートコンテキストです。ネームサーバーのルートコンテキストは NameServer クラスで示します。また、ネーミングコンテクストは 'Directory クラスで示し、マネージャは Manager'' クラスで示します。

ネームサーバーは、ルートディレクトリーからのディレクトリーとして扱われます。その下はファイルとサブディレクトリーです。サブディレクトリーはルートコンテクストの下のネーミングコンテクスト及びマネージャを示します。

ファイルはコンポーネントとマネージャです。コンポーネントは Componentクラスで示します。

コンポーネントオブジェクトが表しているコンポーネントに関するさまざまな情報を格納します。コンポーネントを activate や deactivate したり、コンポーネントのポートを管理したり、ポートを接続したり、構成設定を設定したりができます。

マネージャで新しいコンポーネントインスタンスを作ったり、コンポーネントを消したりことができます。

ツリー内のすべてのノードにも、それらが表すオブジェクトには、CORBA オブジェクトの参照を格納します。このオブジェクトにアクセスすることで、IDL のメソッドを呼び出すことができます。もし現在 rtctree で実現不可能な機能があったとしても、この CORBA オブジェクトを利用し IDL メソッドを直接的に呼び出すことができます。

ツリーの構築

ツリーのファクトリ関数の引数(create_tree())は、ツリーを構築するための解析対象となるネームサーバーを指定します。詳しくは当該関数のドキュメンテーションに参照してください。一般的に、ネームサーバーのアドレスのリストまたはパスのリストを渡してツリーを構築することができます。環境変数 RTCTREE_NAMESERVERS もチェックされます。

パス

ツリー内のノードはパスで指定されます。パスはストリングのリストです。一つ右のレベルは、左のものより1レベル深くなります。絶対パスは、ツリーオブジェクトを指定するために必要となります。もしパスがノード以下に存在する場合、ノードからの相対パス指定も可能です。

これらのパス文字列は、ファイルシステムパス指定と似ています。ツリーのルートは/で示します(Windowsの場合は\)。最初のレベルはネームサーバーのアドレスです。その下のレベルはコンポーネント、マネージャ及びネーミングコンテクスト(ディレクトリーとしてしめす)です。parse_pathと言う関数は文字列のパスを RTC ツリー用のパスに変更します。

例えば、以下のパス:

 /localhost/naming_context/ConsoleIn0.rtc
localhost上で起動しているネームサーバーのnaming_contextの下に登録された ConsoleIn0.rtc と言うコンポーネントを示します。ツリーからそのコンポーネントのオブジェクトを取得したい時、パスを parse_path で Python のリストに変更する必要があります。
 ['/', 'localhost', 'naming_context', 'ConsoleIn0.rtc']

ヘルパー関数

以下は RTCTree クラス及びさまざまなノードクラスのためのヘルパー関数です。以下はすべての API を示しているわけではありません。Doxygen で記述されたAPIのドキュメンテーションを参照してください。例は rtcshell のソースを参照してください。

RTCTree.has_path ツリーのパスがあるかどうかをチェックします。コンポーネントの存在をチェックするには、この関数を使うと便利です。
RTCTree.get_node ツリーからノードを取得します。コンポーネント、ディレクトリなどを取得するためにこの関数を使ってください。
RTCTree.is_component パスはコンポーネントを指しているかどうかを調べます。ノードクラスはis_componentという同じ機能のプロパティーを持っています。is_directoryis_manager及びis_nameserverという関数およびプロパティーもあります。
RTCTree.iterate() ツリーのすべてのノードに同じ関数を実行します。すべての結果はリストとして返されます。例はrtcshellのrtlsを参照してください。
Node.children ノードのすべての子ノード。例:ディレクトリーの下のコンポーネントのリストを取得するために利用することができます。
Node.full_path ツリーのルートからこのノードまでのパス。
Node.name ノードの名前。例:ディレクトリの名前。
Node.parent_name ノードの親の名前。
Node.root このノードのツリーのルートノード。返されたオブジェクトでツリーのほとんどすべての機能ができます。
Component.activate_in_ec() コンポーネントをactivateします。通常は ec_index は 0 で構いません。
Component.deactivate_in_ec() コンポーネントをdeactivateします。
Component.reset_in_ec() コンポーネントをresetします。
Component.state_in_ec() あるexecution contextでコンポーネントのステートを得ます。
Component.alive コンポーネントがaliveかどうかをチェックします。
Component.owned_ecs コンポーネントが持っているexecution contextのリストです。
Component.participating_ecs コンポーネントが使っているexecution contextのリストです。
Component.state コンポーネントのステートです。
Component.state_string 文字列にしたコンポーネントのステートです。
Component.disconnect_all() コンポーネントのすべてのポートのすべての接続を切断します。
Component.get_port_by_name() コンポーネントのポートを名前で探す。
Component.ports コンポーネントのポートのリストです。入力ポート、出力ポート、及びサービスポートのリストが含まれ、かつ現在接続状態のポートのリストも取得できます。
Component.object コンポーネントのCORBAのLightweightRTObjectオブジェクトです。
Component.activate_conf_set コンフィグレーションセットをactivateします。
Component.set_conf_set_value コンフィグレーションセットの変数を設定します。
Component.active_conf_set 現在のactiveコンフィグレーションセットです。
Component.active_conf_set_name 現在のactiveコンフィグレーションセットの名前です。
Component.conf_sets コンフィグレーションセットのリストです。
Port.connect() このポートを別のポートに接続します。
Port.disconnect_all() このポートのすべての接続を切断します。
Port.get_connection_by_dest() このポートの接続を他のポートで探します。
Port.get_connection_by_name() このポートの接続を名前で探します。
Port.connections このポートの接続リストです。
Port.is_connected このポートは接続の状態かどうかをチェックします。
Port.name ポートの名前です。
Port.object このポートのCORBAのPortServiceオブジェクトです。
Port.name ポートのオーナー(通常はComponentオブジェクト)です。
Port.porttype ポートの種類(DataInPortDataOutPort及びCorbaPort)。
Connection.disconnect() この接続を切断します。
Connection.ports この接続のソースや目的ポートのリストです。
ConfigurationSet.has_param() このセットに変数があるかどうかをチェックします。
ConfigurationSet.set_param() このセットの変数を設定します。
ExecutionContext.activate_component() このexecution contextでコンポーネントをactivateします。
ExecutionContext.deactivate_component() このexecution contextでコンポーネントをdeactivateします。
ExecutionContext.reset_component() このexecution contextでコンポーネントをresetします。
ExecutionContext.get_component_state() このexecution contextの中のコンポーネントのステートをとります。
ExecutionContext.running このexecution contextは起動しているかどうかをチェックします。
Manager.create_component() 新しいコンポーネントインスタンスを作ります。
Manager.delete_component() コンポーネントインスタンスを削除します。
dict_to_nvlist() PythonのdictをCORBAのnamevalueリストに変更します。
nvlist_to_dict() CORBAのnamevalueリストをPythonのdictに変更します。

APIのスタイル

rtctreeはPythonの標準スタイルに従います。PEP8に参照してください。

最も重要な点は、プライベートな内部API関数はアンダースコア(「_」)で始まることです。アンダースコアで始まる関数はクラス外から証すべきではありません。もし使用した場合には、未定義の振る舞いを引き起こす可能性があります。アンダースコアで始まらず、docstringがある関数だけを使ってください。

リポジトリ

最新版のソースはgithubでGitのリポジトリにあります。「Download source」をクリックしてダウンロードをすることができます。「git clone」を使うこともできます。パッチを送りたがったら、この方法がおすすめします。

 $ git clone git://github.com/gbiggs/rtctree.git

より詳細なドキュメンテーションとサンプル

より詳細なドキュメンテーションはDoxygenで記述されたドキュメンテーションを参照してください。

サンプルはrtshellのソースを参照してください。これらはRTSystemEditorで実現可能なことをrtctreeで行う方法のほぼ全てを示しています。

Changelog

3.0

  • 例外を警告にしました。
  • ゾンビの扱いを改善しました。
  • ゾンビ検出マネージャ。
  • コンポジットコンポーネントの情報を得るAPIを追加しました。
  • ポートからIDによってコネクションを得るAPIを追加しました。
  • ORBを渡すAPIを追加しました。
  • パスフォーマッタを追加しました。
  • 例外を読みやすく表示するようにしました。
  • パフォーマンスの向上
  • 解析するパスを制限する機能を追加しました。
  • ゾンビノードを追加しました。
  • コンポーネントを終了するAPIを追加しました。
  • create_rtctree()関数を削除しました。RTCTree()を使ってください。
  • remove_node()APIを追加しました。
  • node.full_path をリストに変更し、node.full_path_str を追加しました。

2.0

  • 実行コンテキストに関してより多くの情報を解析するようにしました。
  • ORBオブジェクトを外部から与えられるようにしました。
  • reparse_connections()関数をpublicにしました。
  • ノードで使用されているORBを取得するための新しいAPIを追加しました。
  • コンテキストから名前をアンバインドするための新しいAPIを追加しました。
  • より多くのCORBAオブジェクトへのアクセスを可能にしました。
  • ゾンビの認識効率が向上しました。
  • 未知なCORBAオブジェクトの扱い方を修正しました。
  • オーナーが未知なポートの扱い方を修正しました。
  • rtctreeオブジェクトをスレッドセーフにするためのロックを追加しました。
  • ツリーのオブジェクトを再ロードするためのAPIを追加しました。
  • 適切なinheritence取り扱いのためにinit関数を修正しました。
  • 特定のECの中のコンポーネントの状態を得るための新しいAPIを追加しました。
  • 特定のECの中のコンポーネントの状態を更新するための新しいAPIを追加しました。

rtsprofileモジュール

rtsprofile は Python で RTSProfile 仕様を利用するためのライブラリです。

概要

rtsprofile は RTシステムプロファイル(RTSProfile)の仕様のインタフェースライブラリです。 この仕様は完全な RTシステムを記述し、システムを復元することや管理することができます。XML も YAML を利用可能です。

このソフトウエアは NEDO (独立行政法人 新エネルギー・産業技術総合開発機構) の次世代ロボット知能化技術開発プロジェクトの支援により、独立行政法人産業技術総合研究所によって開発されています。

必要条件

  • Python 2.5 以下では存在しない機能を使うので、Python 2.6 以上が必要となります。
  • Ubuntu 9.04 を使っていたら、手動で Python 2.6 をインストールする必要があります。Ubuntu 9.04 以上をおすすめします。

インストール

インストールはいくつかの方法が利用可能です。

  • リポジトリ(参照:以下のリポジトリ)またはソースアーカイブからダウンロード後、適当なディレクトリーで解凍し、インストールする:
    1. ソースを展開する。
       $ cd /home/blurgle/src/
       $ tar -xvzf rtsprofile-2.0.0-tar.gz
    2. setup.pyを実行する。
       $ python setup.py install
    3. 必要に応じて、環境変数を設定します。これはデフォルトで設定されていますが、設定されていない場合は自分で設定する必要があります。 Windows上では、Python の site-packages ディレクトリーが PYTHONPATH 環境変数に、Python スクリプトのディレクトリーが PATH 環境変数に設定されていることを確認してください。 通常、これらは C:\Python26\Lib\site-packages\C:\Python26\Scripts\ です(PythonがC:\Python26\にインストールされた場合)。
  • Windows ではインストーラーの使用を推奨します。setup.py を利用すれば結果より容易に設定することができます。ただし、環境によってはさらに環境変数の設定が必要な場合があります。

使い方

ライブラリは RtsProfle のクラスを提供します。このクラスのインスタンスを作った後、RTSProfile のファイルを渡すことで完全な RTシステムプロファイルが作られます。 もしくは、手動で既存の RTシステムの RTシステムプロファイルを作成し、ファイル名を渡し、そのファイルに RTSProfile を保存します。

クラスの情報は Python の property でアクセスします。メソッドではありません。

API の詳細は Doxygen で構成されたドキュメンテーションを参照してください。

テストの実行

ソースにサンプルファイルとテストのスクリプトが含めています。以下のようなコマンドで実行が可能です。

 $ python test/test.py ./test/rtsystem.xml
 $ python test/test.py ./test/rtsystem.yaml

PYTHONPATH の値によって、テストはインストールされた rtsprofile を使う可能性はあります。

API naming conventions

rtsprofile は Python の標準スタイルに従います。PEP8に参照してください。

最も重要な点は、プライベートな内部 API 関数はアンダースコア(「_」)で始まることです。アンダースコアで始まる関数はクラス外から証すべきではありません。 もし使用した場合には、未定義の振る舞いを引き起こす可能性があります。アンダースコアで始まらず、docstring がある関数だけを使ってください。

より詳細なドキュメンテーションとサンプル

より詳細なドキュメンテーションは Doxygen で記述されたドキュメンテーションを参照してください。

サンプルはrtshellのソースを参照してください。

リポジトリ

最新版のソースはgithubでGitのリポジトリにあります。「Download source」をクリックしてダウンロードをすることができます。 「git clone」を使うこともできます。パッチを送るなら、この方法がおすすめします。

 $ git clone git://github.com/gbiggs/rtsprofile.git

Changelog

2.0

  • Message Sending の情報の解析を修正しました。
  • PrecedingCondition のタイムアウトのデータ型を整数にしました。
  • YAML フォーマットを使えるようにしました。
  • テストを追加しました。
  • Preceding Conditions のデフォルトを"SYNC"に変更しました。
  • バグフィクス

ROSトランスポート(rosport)

Communicating with ROS nodes

This is the announcement for ROS support in OpenRTM-aist. This page will shortly be replaced with a tutorial on using the ports.


パッチのダウンロードはこちらです。

サンプルコンポーネントはこちらでダウンロードができます。


Although I guess it's not a common thing yet, there have been murmurings for quite a while now here in Japan about a desire to be able to use OpenRTM-aist and ROS together. We would gain the huge range of functional software and the persistent channel-based communications of ROS, and keep the strong life-cycle and execution management of OpenRTM-aist.


So here's a patch for OpenRTM-aist that does exactly that.


This patch adds a new transport type to OpenRTM-aist specifically for communicating across ROS channels. No doubt someone will find the ability to use a persistent channel for communication useful, but the main benefit is that it gives nearly-seamless communications between components written for OpenRTM-aist and nodes written for ROS. Your network of distributed components/nodes no longer has to be in just one framework.


There are no wrappers involved. It's all native communication using the same ROS libraries as you would use in a pure-ROS system - no translation layers means maximum efficiency. You create a port type for the ROS transport, and off you go. If you already know ROS, you'll feel right at home using the ports.


The one caveat is why I say nearly-seamless: we still don't have a unified set of types (also, there are some issues with the typing system in OpenRTM-aist that we're working to sort out). Fortunately, the types issue is a hot topic amongst framework designers at the moment, so I hope we will have solved that problem before too long.


I have attached both the patch, for OpenRTM-aist-1.0.0, and a set of examples for each port type (publisher/subscriber/client/server). I hope to get a web page up on the OpenRTM-aist site shortly with a more detailed explanation of usage; for now, the examples and the doxygen comments in the source will point you in the right direction - it's all pretty simple.


Comments, suggestions, and improvements are welcome.