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

3 posts / 0 new
Last post
root
Offline
Last seen: 6 hours 51 min ago
Joined: 2009-06-23 14:31
[openrtm-users 00207] RTコンポーネントのインスタンスについて

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

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

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

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

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

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

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

Undefined
root
Offline
Last seen: 6 hours 51 min ago
Joined: 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
Offline
Last seen: 6 hours 51 min ago
Joined: 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つ立ち上げた場合、後から立ち上げたモジュールに
> > より上書きしてしまい認識できなくなってしまいます。
> >
> > これは、バグでしょうか?それとも、別に設定する箇所があったのでしょうか?
> >
> > もし設定する箇所がございましたら、教えていただきたいです。
> > お願いいたします。
> >
>
>

Log in or register to post comments

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK