[openrtm-users 00082] Re: VC++連携について

Akio Uda uda-axa @ necst.nec.co.jp
2006年 7月 13日 (木) 16:16:04 JST


To: 産総研 安藤様

いつも御世話になります。宇田@NECシステムテクノロジーです

ご回答ありがとうございます。

> あんどう@産総研です
> 
> > いつも御世話になります。宇田@NECシステムテクノロジーです
> > 
> > VC++とRTミドルウェアの連携方式についてお伺いします。
> 
> 返事が遅くなり申し訳ございません。
>  
> > VC++で書かれたアプリケーションからRTミドルウェアのコンポーネント
> > を利用したいのですが、この場合の実装方法としてはどのような構成が
> > 考えられますでしょうか?
> 
> この利用するというのは、VC++で書かれたアプリ内部に組み込んで
> 利用するということでしょうか?
> もしくは、分散オブジェクトとして利用するということでしょうか?

こちらでは、アプリ内部に組み込むことを考えていました。

ただ、実際にはその組込コンポーネントと外部の様々なコンポーネントを
接続して使いたいと思っていましたので、その意味ではリモート方式でも
同じ目的が果たせるように思えます。


> VC++で開発するアプリ内部に組み込むのであれば、
> 
> 1. マネージャのインスタンスをどこかで生成
> 2. createComponent() でコンポーネントを生成
> 3. runManager()でマネージャを起動
> 
> してやれば、createComponent() の戻り値がコンポーネントへの
> ポインタですので、あとは何とかなると思います。
> runManager()はブロックしてしまうので、不都合があれば、
> runManagerNoBlocking()で別スレッドでマネージャを起動すれば、
> 他にイベントループがあるようなプログラムでも、動くと思います。

この場合、OpenRTMの依存パッケージとして最小限必要なものは何になり
ますでしょうか? (フルセットのパッケージが必要でしょうか?)


> VC++で作ったアプリから、リモートのコンポーネントを
> 操作したい場合は、単にCORBAのオブジェクトを操作要領で
> コンポーネントを操作すれば可能だと思います。
> 
> この場合も、
> 1. マネージャのインスタンスをどこかで生成
> 2. マネージャのfindComponent 等のメソッドを使ってコンポーネント
>   へのオブジェクトリファレンスを取得してコンポーネントを操作
> 
> というやり方でやれば、素のCORBAのプログラムを書くよりは
> 少しは楽に出来るのではないかと思います。

どうもありがとうございます。こちらも参考にさせて頂きます。


> > 1つの手段として、先日ご紹介頂きましたPython版OpenRTM-aist-0.2.0
> > をCOMインターフェース経由で呼び出す方法があるかと思いますが、他に
> > もっと良い方法がありましたらご教授をお願い致します。
> > 
> > 		┌───────────┐
> > 		│VC++ アプリケーション │
> > 		└─────┬─────┘
> > 		            │
> > 		 ≪COM インターフェース≫
> > 		            │
> > 		    ┌───┴───┐
> > 		    │Python 仲介部 │
> > 		    └───┬───┘
> > 		            │
> > 		┌─────┴─────┐
> > 		│Python版 RTミドル環境 │
> > 		└───────────┘
> 
> すみません。COMに関しては全然詳しくないので、あまりお力になれません。
> 逆にご教授願いたいくらいです。上記のような方法で連携できるのですか?
> もしよろしければ、その方法をML上でご紹介いただければ助かります。

私も試したわけではないのですが、例えば以下のサイトにPythonのクラス
をCOMオブジェクトとして登録する方法が記載されていましたので、Python
版のRTミドル環境があれば、それとVC++アプリとを仲介するPythonクラス
を作成し、COMオブジェクトとして登録すれば、両者の連携が実現できるの
ではないかと考えました次第です。

  http://www.oreilly.com/catalog/pythonwin32/chapter/ch12.html
                                ↓
               Implementing COM Objects in Python


> > なお上記のPython版OpenRTMですが、既にWeb上で入手可能でしょうか?
> > また将来的に、VC++版のOpenRTM-aistをリリースされる予定はござい
> > ますでしょうか?
> 
> 研究所でのソフトウエア公開の手続きをまだとっていないので、
> 一般には公開しておりません。
> #内緒ですが、あとで個人的にお送りいたします。(笑
> 
> 手続きが終わり次第公開したいと思います。
> 
> 
> ちなみに、現在次期バージョンの実装を行っているのですが、
> 研究の一環としてRTCのパフォーマンス測定・評価なども行っているので、
> リリースはまだしばらくかかりそうです。
> すみませんが、もうしばらくお待ちください。

ありがとうございます。度々お手数をお掛けしてすみません。

ご支援感謝いたします。


>           安藤慶昭@独立行政法人産業技術総合研究所 研究員
>                     知能システム研究部門 タスクインテリジェンス研究グループ
>                     〒305-8568 茨城県つくば市梅園1-1-1 中央第2
>                     TEL: 029-861-5981 FAX: 029-861-5971
>                     n-ando @ aist.go.jp, n-ando @ ieee.org

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
z  宇田 安規男                                                        z
z  NECシステムテクノロジー株式会社  システムテクノロジーラボラトリ  z
z  神奈川県川崎市中原区下沼部 1753  NEC 玉川事業場 9号館               z
z  〒 211-8666   Tel: 044-431-7574  Fax: 044-431-7588                  z
z  E-mail: uda-axa @ necst.nec.co.jp                                     z
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz




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