RTシステム開発の流れ

ここでは、作成した RTC を複数組み合わせて, システムを構築する手法について説明します。

ネームサービス

分散オブジェクトミドルウエアは、任意の場所にある計算機上のオブジェクトに対して参照を保持する代理オブジェクトを介して透過的アクセスを提供します。 この参照は CORBA では IOR (Interoperable Object Reference) と呼ばれ、実体はオブジェクトが存在する計算機のアドレスやポート、オブジェクト固有のキー等がエンコードされたものです。 あるオブジェクトの IOR を別の計算機上のプログラムから利用する方法としては、ネットワーク上のサーバー上に登録する方法があります。この参照を登録したり取得したりするサービスがネームサービスです。ネームサービスは CORBA で標準的に定義されているサービスの一つであり、OpenRTM-aist では、rtm-naming というラッパーコマンドが提供されています。

システムを起動する前に、RTC を登録するネームサーバーを起動させる必要があります。また、各 RTC に対しては、ネームサーバーの場所を設定ファイル rtc.conf に記載して予め与える必要があります。例えば、ネームサーバーをホスト名 openrtm.mydomain.net 上で起動した場合、全ての RTC には、以下のように記載した rtc.conf を与える必要があります。

 corba.nameservers: openrtm.mydomain.net

また、ネームサーバーはIPアドレスでも与えることができ、「 , 」で区切ることで複数のサーバーに同時に RTC を登録することができます。ネームサーバーは、通常長時間起動したままでよく、システムにおいて固定的であるので、設定ファイルを頻繁に書き換える必要はありません。

RTSystemEditor によるシステム構築

作成されたいくつかの RTC を実行し、それらのポートを接続し、アクティブ化することでシステムが動作します。RTC 同士の接続や RTC に対してアクティブ化や非アクティブ化のコマンドを送り、システムを起動するためのツールとして RTSystemEditor が提供されています。

rtse_ja.png
RTSystemEditorによるシステム構築

RTC は起動されると、図左のネームサービスビューに表示されます。 ネームサービスビュー上の RTC を中央のエディタにドラッグアンドドロップすると、RTC がシステムエディタ内にアイコンで表示されます。 長方形の辺上の凸部がポートを表しており、これら RTC 間のポートを接続することでシステムを構築します。また、画面中央下部には RTC のコンフィギュレーションビューが表示されており、ここで任意の RTC のパラメーターを編集することができるようになっています。

システムを構築したら、エディタ上で右クリックし「All Activate」を選択することで、全ての RTC をアクティブ化することが可能です。また、エディタ上で右クリックし「Save as」を選択することで、システムの構成情報を保存することができます。保存したシステム構成情報は、再度呼び出すことでシステムの接続情報、コンフィギュレーションの情報等を復元することが可能です。

現在のところ、システム構成情報を復元する際には予め RTC を起動しておく必要がありますが、将来的には RTC の起動から接続復元までが自動で行えるようになる予定です。

最新バージョン

初めての方へ

Windows msi(インストーラ) パッケージ (サンプルの実行ができます。)

C++,Python,Java,
Toolsを含む
1.1.2-RELEASE

RTコンポーネントを開発するためには開発環境のインストールが必要です。詳細はダウンロードページ

統計

Webサイト統計
ユーザ数:1637
プロジェクト統計
RTコンポーネント286
RTミドルウエア21
ツール20
文書・仕様書1

Join our slack

Enter email address for slack invite.

旧Webサイト

OpenRTM.org旧Webサイト

OpenHRP3

動力学シミュレータ

Choreonoid

モーションエディタ/シミュレータ

OpenHRI

対話制御コンポーネント群

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク

VirCA

遠隔空間同士を接続し、実験を行うことが可能な仮想空間プラットホーム