[openrtm-users 01230] Re: Port Name (Re: Re: rtc_handle for OpenrtM-aist-1.0.0)

Ando Noriaki n-ando @ aist.go.jp
2010年 5月 20日 (木) 18:50:50 JST


末廣先生、皆さま

安藤です

お返事ありがとうございます。

> 安藤様,皆様,
>
> 末廣です.
>
> この問題は,複合コンポーネントのポートを
> 元のコンポーネントのポートを並べるだけで
> すませたいということから来ているということ
> で了解しました.
>
> (10/05/18 9:37), Ando Noriaki wrote:
>
>> rtc_handleで仮に複合コンポーネントの作成、分解や、ポートの
>> 公開、非公開を制御するAPIを提供するとしたら、末廣さんなら
>> どのようにしますか?
>
> rtc_handleは,コンポーネントを使う側なので
> そこは考えていませんでした.
> 使う側としては,複合コンポーネントだろうと普通の
> コンポーネントだろうと区別なく「外部仕様」に従って
> ポートにアクセスできるようにします.

現在1.0で提供している複合コンポーネントは、最終形ではないのですが、
今後作成する何種類かの複合コンポーネントは、これをベースにしていこうと考えています。

で、現在の複合コンポーネントですが、基本的にはSDOのOrganization
を利用する形で実装されています。したがって、複合コンポーネントの
Organizationに対してaddすると子RTCを追加できるようになっています。
その際、子の元のECはstopさせ、親のECをアタッチするといったことを
内部的に行っています。
#この仕様自体は、複合RTCの種類によって変わってくると思いますが。

ただし、SDOのOrganizationにはポートをハンドリングするオペレーション
はありませんので、子のどのポートを外部に見せるかは、親のConfiguration
で操作するようになっています。

>> 上記の制約の上で、ポート名を純粋にポート名だけとして、
>> かつ複合コンポーネント等にもうまく対処できる方法を思いついた方が
>> いらっしゃいましたら、教えていただけないでしょうか?
>
> うまい方法かどうかは分かりませんが,
> 私なら mapped port を作って,ポート名と
> オリジナルのポートへのポインタを持たせます.
>
> いかがでしょうか?

静的な複合コンポーネントなら、その方法であれば
特別な処理を全部複合コンポーネントにまとめられるのでいいですね。

ただし、その方法でも、外部からポート名を変更することができない
という制約を回避できないのではないでしょうか?
インターフェースを拡張するのであれば可能ですが。

以前、セックの大和田さんからご質問のあった件でも、
あとからポート名を変更したいという要望がありましたので、
何かいい方法がないか考えてみたいと思います。
いちばん簡単なのは、隠しconfigurationパラメータで
変更する方法ですかね。

どちらにしろ、ポート名はver.1.1ではポート名からインスタンス名を
削除する方向で考えたいと思います。

-- 
安藤慶昭@独立行政法人産業技術総合研究所 知能システム研究部門
    統合知能研究グループ 主任研究員, 博士(工学)
    〒305-8568 つくば市梅園1-1-1 中央第2
    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
    OpenRTM-aist: http://www.openrtm.org

Noriaki Ando, Ph.D.
    Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST
    AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN
    e-mail: n-ando @ aist.go.jp, web: http://staff.aist.go.jp/n-ando
    OpenRTM-aist: http://www.openrtm.org



openrtm-users メーリングリストの案内