[openrtm-users 00207] RTコンポーネントのインスタンスについて

3 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 22時間 34分 前
登録日: 2009-06-23 14:31
[openrtm-users 00207] RTコンポーネントのインスタンスについて

中央大学の國井研究室に所属している小島と申します。

現在、研究室のマニピュレータをRTミドルウェアを用いて
動かそうとしています。

その際、サンプル等を試していて気づいたのですが、rtc-templateの記述に
インスタンス化の数についての記述がありますが、今は使用されていないのでしょうか?

というのも、プログラムを実行すると、インスタンス化されInstanceIDが振られる
と思うのですが、同じプログラムの場合2個目、3個目とInstance IDが
同じになってしまいます。

RTC-Linkでは、2つ立ち上げた場合、後から立ち上げたモジュールに
より上書きしてしまい認識できなくなってしまいます。

これは、バグでしょうか?それとも、別に設定する箇所があったのでしょうか?

もし設定する箇所がございましたら、教えていただきたいです。
お願いいたします。

未定義
root
オフライン
Last seen: 22時間 34分 前
登録日: 2009-06-23 14:31
[openrtm-users 00208] RTコンポーネントのインスタンスについて

小島樣

産総研の清水です.

インスタンスIDですが,現在の実装では,
「コンポーネント名+番号」
となっていると思います.
この番号の決定ルールですが,
各プロセスごとのコンポーネントの生成順序に従い,
0,1,2,...となります.
このため,違うプロセスから同じコンポーネント名で
コンポーネントを生成すると,同じインスタンスIDとなることがあります.

もし,同じコンポーネント名で異なるインスタンスIDが必要であれば,
同じプロセスからコンポーネントを生成するようにすれば可能だと思います.

清水

On Sun, 30 Sep 2007 18:13:09 +0900
"Takashi Kojima" wrote:

> 中央大学の國井研究室に所属している小島と申します。
>
> 現在、研究室のマニピュレータをRTミドルウェアを用いて
> 動かそうとしています。
>
> その際、サンプル等を試していて気づいたのですが、rtc-templateの記述に
> インスタンス化の数についての記述がありますが、今は使用されていないのでしょうか?
>
> というのも、プログラムを実行すると、インスタンス化されInstanceIDが振られる
> と思うのですが、同じプログラムの場合2個目、3個目とInstance IDが
> 同じになってしまいます。
>
> RTC-Linkでは、2つ立ち上げた場合、後から立ち上げたモジュールに
> より上書きしてしまい認識できなくなってしまいます。
>
> これは、バグでしょうか?それとも、別に設定する箇所があったのでしょうか?
>
> もし設定する箇所がございましたら、教えていただきたいです。
> お願いいたします。
>

root
オフライン
Last seen: 22時間 34分 前
登録日: 2009-06-23 14:31
[openrtm-users 00210] RTコンポーネントのインスタンスについて

小島

産総研 安藤です

清水さん、ありがとうございます。

> 産総研の清水です.
>
> インスタンスIDですが,現在の実装では,
> 「コンポーネント名+番号」
> となっていると思います.
> この番号の決定ルールですが,
> 各プロセスごとのコンポーネントの生成順序に従い,
> 0,1,2,...となります.
> このため,違うプロセスから同じコンポーネント名で
> コンポーネントを生成すると,同じインスタンスIDとなることがあります.
>
> もし,同じコンポーネント名で異なるインスタンスIDが必要であれば,
> 同じプロセスからコンポーネントを生成するようにすれば可能だと思います.

具体的には、*Comp.cppのMyModuleInitのなかで、

comp = manager->createComponent("ConsoleIn");

がコンポーネントのインスタンスを作成している部分ですが、
3個のインスタンスがほしければ、

comp0 = manager->createComponent("ConsoleIn");
comp1 = manager->createComponent("ConsoleIn");
comp2 = manager->createComponent("ConsoleIn");

のようにすれば、この例ですと、
ConsoleIn0, ConsoleIn1, ConsoleIn2
というコンポーネントが出来ます。

もし別プロセスで起動した同一タイプのコンポーネントに別の名前を持たせたければ、
rtc.confのnaming.formatsの指定を別々にして、起動オプション-fでそれぞれの
のコンポーネントに個別のrtc.confを渡すという手もあります。

>
> 清水
>
> On Sun, 30 Sep 2007 18:13:09 +0900
> "Takashi Kojima" wrote:
>
> > 中央大学の國井研究室に所属している小島と申します。
> >
> > 現在、研究室のマニピュレータをRTミドルウェアを用いて
> > 動かそうとしています。
> >
> > その際、サンプル等を試していて気づいたのですが、rtc-templateの記述に
> > インスタンス化の数についての記述がありますが、今は使用されていないのでしょうか?
> >
> > というのも、プログラムを実行すると、インスタンス化されInstanceIDが振られる
> > と思うのですが、同じプログラムの場合2個目、3個目とInstance IDが
> > 同じになってしまいます。
> >
> > RTC-Linkでは、2つ立ち上げた場合、後から立ち上げたモジュールに
> > より上書きしてしまい認識できなくなってしまいます。
> >
> > これは、バグでしょうか?それとも、別に設定する箇所があったのでしょうか?
> >
> > もし設定する箇所がございましたら、教えていただきたいです。
> > お願いいたします。
> >
>
>

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

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

Choreonoid

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

OpenHRP3

動力学シミュレータ

OpenRTP

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

産総研RTC集

産総研が提供するRTC集

TORK

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

DAQ-Middleware

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