rtcname形式、rtcloc形式でのRTCへのアクセス

概要

OpenRTM-aistにはrtcname形式、rtcloc形式という文字列からRTCへアクセスする機能が利用できます。

rtcname形式は指定のネームサーバーに登録されたRTCにアクセスする方式であり、接続するネームサーバーのアドレス、ネーミングコンテキスト、RTCのバインディング名を指定することでRTCのオブジェクトリファレンスを取得できます。

 rtcname://{ネームサーバーのIPアドレス}:{ネームサーバーのポート番号}/{ネーミングコンテキスト名(省略可)}/{RTCのバインディング名}

rtcloc形式は指定のマスターマネージャに登録されたスレーブマネージャからRTCにアクセスする方式であり、接続するマスターマネージャのアドレス、RTCのカテゴリ名、RTCのインスタンス名を指定することでRTCのオブジェクトリファレンスを取得できます。

 rtcloc://{マスターマネージャのIPアドレス}:{マスターマネージャのポート番号}/{RTCのカテゴリ名(省略可)}/{RTCのインスタンス名}

rtcname形式でのRTCへのアクセス

以下のようにrtc.confのmanager.components.preconnectmanager.components.preactivationでrtcname形式によりRTCを指定することで、外部のプロセスで起動したポートの接続やRTCのアクティブ化ができます。

 manager.components.preconnect: ConsoleIn0.out?port=rtcname://localhost:2809/test.host_cxt/ConsoleOut0.in
 manager.components.preactivation: ConsoleIn0, rtcname://localhost:2809/test.host_cxt/ConsoleOut0

ただし、ネーミングコンテキスト(この例ではtest.host_cxt)は以下のように省略できます。

 manager.components.preconnect: ConsoleIn0.out?port=rtcname://localhost:2809/*/ConsoleOut0.in
 manager.components.preactivation: ConsoleIn0, rtcname://localhost:2809/*/ConsoleOut0

プロトコルの指定

※以下の機能はリリース版のOpenRTM-aist 2.0.0で未サポートの場合があります。機能を使う場合はソースコードからビルドする必要があります。

OpenRTM-aistはデフォルトでIIOP通信を行いますが、設定を変更することでomniORBのSSLIOP、HTTP、HTTPS、WebSocket、WebSocket over SSL/TLS通信、TAOのSSLIOP、HTIOP、SHMIOP通信で外部のRTCにアクセスすることができます。 以下のようにrtcnameの後にプロトコル名を指定することで設定できます。

 rtcname.{プロトコル名}://{ネームサーバーのIPアドレス}:{ネームサーバーのポート番号}/{ネーミングコンテキスト名(省略可)}/{RTCのバインディング名}

ただし、設定する通信プロトコルをOpenRTM-aistで使用できるように設定する必要があります。 使用例についても以下のページを参考にしてください。

rtcloc形式でのRTCへのアクセス

以下のようにrtc.confのmanager.components.preconnectmanager.components.preactivationでrtcloc形式によりRTCを指定することで、外部のプロセスで起動したポートの接続やRTCのアクティブ化ができます。 rtcloc形式を使用するためにはマネージャからRTCを取得する機能を有効にするためnaming.typeオプションにmanagerを追加します。

 naming.type: corba, manager
 manager.components.preconnect: ConsoleIn0.out?port=rtcloc://localhost:2810/example/ConsoleOut0.in
 manager.components.preactivation: ConsoleIn0, rtcloc://localhost:2810/example/ConsoleOut0

ただし、ネーミングコンテキスト(この例ではtest.host_cxt)は以下のように省略できます。

 manager.components.preconnect: ConsoleIn0.out?port=rtcloc://localhost:2810/*/ConsoleOut0.in
 manager.components.preactivation: ConsoleIn0, rtcloc://localhost:2810/*/ConsoleOut0

プロトコルの指定

rtcname形式と同じく、rtcloc形式でも通信プロトコルを指定することができます。

 rtcloc.{プロトコル名}://{マスターマネージャのIPアドレス}:{マスターマネージャのポート番号}/{RTCのカテゴリ名(省略可)}/{RTCのインスタンス名}

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

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

OpenHRP3

動力学シミュレータ

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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