[openrtm-users 00886] Re: OpenRTM1.0.0-RC1 の OutPort に値が格納できない不具合
Ando Noriaki
n-ando @ aist.go.jp
2009年 7月 31日 (金) 10:43:36 JST
俵様
安藤です
portServiceList[h]->get_connector_profiles()->length();
を呼ぶ前に
portServiceList[h].out()
を呼んでいませんか?
2009/07/31 10:24 に 俵 崇文@AIST<tawara-takafumi @ aist.go.jp> さんは書きました:
> 清水様
>
> お世話になっております。俵です。
>
>> 何らかの接続はあるようですが、
>> それでもm_connectorsのサイズがゼロだから
>> データ通信が出来ないのですよね。
> はい。
>
>> ConnectorProfileのサイズと
>> m_connectorsのサイズが
>> 一致しているか確かめてみてはどうでしょうか。
>>
>> もしConnectorProfileがある(接続がある)のに
>> m_connectorsがゼロだとすれば、
>> それはRTM側の問題かもしれませんね。
> 件の確認コードでポートごとに
> portServiceList[h]->get_connector_profiles()->length();
> を実行したところ
>
> omniORB: ERROR -- the application attempted to invoke an operation
> on a nil reference.
> と表示される例外が発生しました。
>
> 具体的には、
> get_connector_profiles()
> をコールして、RTCSK.CCファイルの
> RTC::ConnectorProfileList*
> RTC::_objref_PortService::get_connector_profiles()
> の
> _invoke(_call_desc);
> でメッセージが表示されました。
>
> なんらかの原因で接続処理が中途のままということでしょうか?
>
> 以上です。
> よろしくお願いします。
>
> Masayuki Shimizu wrote 2009/07/30 23:33:
>> 俵様
>>
>> 清水です。
>>
>> 何らかの接続はあるようですが、
>> それでもm_connectorsのサイズがゼロだから
>> データ通信が出来ないのですよね。
>>
>> ConnectorProfileのサイズと
>> m_connectorsのサイズが
>> 一致しているか確かめてみてはどうでしょうか。
>>
>> もしConnectorProfileがある(接続がある)のに
>> m_connectorsがゼロだとすれば、
>> それはRTM側の問題かもしれませんね。
>>
>> # もしくはConnectorProfileのサイズと
>> m_connectorsのサイズが一致しない
>> ケースが理論的にあり得るのでしょうか???
>> (OpenRTM-aistの開発者の方、教えてください。)
>>
>> 清水
>>
>> --- 俵 崇文@AIST <tawara-takafumi @ aist.go.jp> wrote:
>>
>>> 清水様
>>>
>>> 俵です。
>>>
>>> ご指南ありがとうございます。
>>>
>>>> ConnectorProfile::ports
>>>> を調べて希望通りの接続となっているかを
>>>> 確かめればできます。
>>> 試しに添付ファイルのconsoleOutPortRefInfo.txt
>>> にある通りport等の状態を出力する関数を作成して、
>>> #初歩的なことと存じますが、
>>> #この方法が正しいのか自信がありませんので
>>> #おかしな点がございましたらご指摘願います。
>>> writeする直前に実行してみました。
>>> 出力結果は添付ファイルResult.txtとなりましたが、
>>> 具体的に接続状態を判別する方法がわかりませんので、
>>> ご教示願います。
>>>
>>>
>>>> それと、接続プログラムの、
>>>> CORBA_SeqUtil::push_back(cprof.properties,
>>>> NVUtil::newNV("dataport.dataflow_type",
>>>> "Push"));
>>>> の所は、"Push"ではなく"push"が正しいようです。
>>> の件ですが、
>>> [openrtm-users 00849] Re: SimpleIO の run.sh
>>> のエラー
>>> のコードによると"Push"となっているので"Push"のままにい
>> たしました。
>>> ただし、
>>> rtm\InPortBase.cpp(180):
>>> coil::normalize(dflow_type);
>>> rtm\InPortBase.cpp(240):
>>> coil::normalize(dflow_type);
>>> rtm\OutPortBase.cpp(379):
>>> coil::normalize(dflow_type);
>>> rtm\OutPortBase.cpp(438):
>>> coil::normalize(dflow_type);
>>> によりdataflow_typeプロパティは大文字、小文字が混在し
>> ても
>>> 特に問題がなさそうな気がします。
>>> ちなみに今回は"push"に変更して実行いたしました。
>>> 以上です。
>>> よろしくお願いします。
>>>
>>> Masayuki Shimizu wrote 2009/07/29 12:51:
>>>> 俵様
>>>>
>>>> 静岡大 清水です。
>>>>
>>>> 少し気になったのでコメントです。
>>>>
>>>> OutPortにwriteする前にポートが希望通り
>>>> 接続されていることを確認してますでしょうか。
>>>>
>>>> ポート接続の確認は、少々面倒なのですが、
>>>> PortService::get_connector_profiles()
>>>> でConnectorProfileを全て取得し、
>>>> 各プロファイルごとに、
>>>> ConnectorProfile::ports
>>>> を調べて希望通りの接続となっているかを
>>>> 確かめればできます。
>>>>
>>>> それと、接続プログラムの、
>>>> CORBA_SeqUtil::push_back(cprof.properties,
>>>
>>>> NVUtil::newNV("dataport.dataflow_type",
>>>
>>>> "Push"));
>>>> の所は、"Push"ではなく"push"が正しいようです。
>>>>
>>>> 清水
>>>>
>>>> --- 俵 崇文@AIST <tawara-takafumi @ aist.go.jp>
>>> wrote:
>>>>> 安藤様
>>>>> 俵です。
>>>>>
>>>>> 返信ありがとうございます。
>>>>>
>>>>>> 要は、自作のプログラムからポートの接続をすると、
>>>>>>
>>> OutPortからInPortへデータがいかないということでよろし
>>>> いでしょうか?
>>>>> はい。
>>>>>
>>>>>
>>> 「OutPortに値が格納できない」というのがどういう現象を
>>>> 指しているのですか。
>>>>> 具体的にはVirtualRobotRTCが持つ
>>>>> RTC::OutPort<RTC::TimedDoubleSeq> インスタンス
>>>>>
>>> からRTC::OutPort<RTC::TimedDoubleSeq>::write()の実行を
>>>>> デバッガで追ったところrtm/OutPort.hの170行目
>>>>> virtual bool write(DataType& value)
>>>>> {
>>>>> if (m_OnWrite != NULL)
>>>>> {
>>>>> (*m_OnWrite)(value);
>>>>> }
>>>>> // check number of connectors
>>>>> size_t conn_size(m_connectors.size());
>>>>> if (!(conn_size > 0)) { return true; }
>>>>>
>>>>> で戻ってしまう現象です。
>>>>>
>>> SimpleIOだと同様にデバッグで追ってもそのまま戻らず実行
>>>> されたので、
>>>>> m_connectorsのサイズが0によることが原因で
>>>>>
>>> バッファに値が書き込まれていないと判断いたしました。
>>>>>
>>> これらのポートをRTSystemEditorで接続するとどうなります
>>>> か?
>>>>> 手動で接続することはできましたが、
>>>>>
>>> その後続行すると自動接続時と同様の動作になりました。
>>>>> 以上です。よろしくお願いします。
>>>>>
>>>>> Ando Noriaki wrote 2009/07/29 9:49:
>>>>>> 俵様
>>>>>>
>>>>>> 安藤です
>>>>>>
>>>>>> 要は、自作のプログラムからポートの接続をすると、
>>>>>>
>>> OutPortからInPortへデータがいかないということでよろし
>>>> いでしょうか?
>>> 「OutPortに値が格納できない」というのがどういう現象を
>>>> 指しているのですか。
>>> これらのポートをRTSystemEditorで接続するとどうなります
>>>> か?
>>>>>> 2009/07/28 15:40 に
>>>>> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
>>>>> さんは書きました:
>>>>>>> 安藤様
>>>>>>> 俵です。
>>>>>>>
>>>>>>> 返信送れて申し訳ありません。
>>>>>>> その後試行錯誤してみたのですが、
>>>>>>> 結局狙い通りの動作がえられませんでした。
>>>>>>> また問題点を整理するための時間が必要でした。
>>>>>>> 改めて質問させてください。
>>>>>>>
>>>>>>>
>>> 外部プロセスとコアロジックRTC(図ではSampleSV)の仲介を
>>>> 行なう
>>> ControllerBridgeをOpenRTM0.4.2からOpenRTM1.0.0に
>>> 対応する過程でOutPortのバッファに値が格納できない現象
>>>> に対処したいので
>>>>>>> ご教示ください。
>>>>>>>
>>>>>>> torque
>>>>>>> ┌←───────←┐
>>>>>>> ┌──□──┐ ┌──□──┐
>>>>>>> │ Virtual │steer │ SampleSV │
>>>>>>> │ □→─→□ │
>>>>>>> │ Robot │ │ │
>>>>>>> │ □→─→□ │
>>>>>>> │ RTC │ vel │ RTC │
>>>>>>> └─────┘ └─────┘
>>>>>>> □:ポート
>>>>>>> ControlllerBridgeの動作例
>>>>>>>
>>>>>>> 添付したファイルは上図のRTC構築時のログです。
>>>>>>>
>> 実行例ではControlllerBridgeはSampleSVRTCとVirtualRobotRTC
>>>> を
>>>>
>> 生成して対応するポートを接続します。図ではVirtualRobotRTC
>>>> 側の
>>>>>>> steer OutPort、vel
>>>>> OutPortに値が格納できませんでした。
>>>>>>> 特にポート接続ではOpenRTMのサンプルSimpleIOの
>>>>>>>
>>> ConnectorComp.cppを参考にして以下のコードを作成しまし
>>>> た。
>>>>>>> bool
>>> Controller_impl::connectPorts(Port_Service_Ptr_Type
>>>>> outPort,
>>>>>>>
>>>>> Port_Service_Ptr_Type inPort)
>>>>>>> {
>>>>>>> // connect ports
>>>>>>> RTC::ConnectorProfile cprof;
>>>>>>> cprof.connector_id = "";
>>>>>>> cprof.name =
>>> CORBA::string_dup("connector0");
>>>>>>> cprof.ports.length(2);
>>>>>>> cprof.ports[0] =
>>>>> Port_Service_Type::_duplicate(inPort);
>>>>>>> cprof.ports[1] =
>>>>> Port_Service_Type::_duplicate(outPort);
>>>>>>> #ifdef OPENRTM_VERSION_042
>>>>>>> CORBA_SeqUtil::push_back(cprof.properties,
>>>>>>>
>>>>> NVUtil::newNV("dataport.interface_type",
>>>>>>> "CORBA_Any"));
>>>>>>> CORBA_SeqUtil::push_back(cprof.properties,
>>>>>>>
>>>>> NVUtil::newNV("dataport.dataflow_type",
>>>>>>> "Push"));
>>>>>>> CORBA_SeqUtil::push_back(cprof.properties,
>>>>>>>
>>>>> NVUtil::newNV("dataport.subscription_type",
>>>>>>> "Flush"));
>>>>>>> #else
>>>>>>> CORBA_SeqUtil::push_back(cprof.properties,
>>>>>>>
>>>>> NVUtil::newNV("dataport.interface_type",
>>>>>>> "corba_cdr"));
>>>>>>> CORBA_SeqUtil::push_back(cprof.properties,
>>>>>>>
>>>>> NVUtil::newNV("dataport.dataflow_type",
>>>>>>> "Push"));
>>>>>>> CORBA_SeqUtil::push_back(cprof.properties,
>>>>>>>
>>>>> NVUtil::newNV("dataport.subscription_type",
>>>>>>> "flush"));
>>>>>>> #endif
>>>>>>> RTC::ReturnCode_t result =
>>>>> inPort->connect(cprof);
>>>>>>> return (result == RTC::RTC_OK);
>>>>>>> }
>>>>>>>
>>>>>>>
>>> サンプルConnectorCompとControlllerBridgeの主な相違点は
>>>> 、
>>>>>>> 1)SimpleIOでは異なるプロセスで別々のRTCを生成、
>>>>>>> 接続もConnectorCompプロセスで行なっているが、
>>>>>>>
>>> ControlllerBridgeでは同じプロセスで2つのRTCを生成し、
>>>>>>> ポート間を接続して値を授受している。
>>>>>>> 2)接続数が複数であること
>>>>>>> 3)RTCにInPortとOutPortが混在すること
>>>>>>>
>>> です。0.4.2を利用した場合は問題なく動作していました。
>>> ちなみにRTSystemEditorで動作を追った場合、各RTCの登録
>>>> 、
>>>>>>> ポート間接続時のライン描画を確認しました。
>>>>>>> 以上です。
>>>>>>> よろしくお願いいたします。
>>>>>>>
>>>>>>> Ando Noriaki wrote 2009/07/24 10:38:
>>>>>>>> 俵様
>>>>>>>>
>>>>>>>> 安藤です
>>>>>>>>
>>>>>>>> お世話になっております。
>>>>>>>>
>>>>>>>>
>>> 申し訳ございませんが、下記のメールはご質問でしょうか?
>>>>>>>> 意図がよくつかめませんでした。
>>>>>>>>
>>>>>>>> 2009/07/24 10:11 に
>>>>> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
>>>>> さんは書きました:
>>>>>>>>> 安藤様
>>>>>>>>>
>>>>>>>>> 俵です。
>>>>>>>>>
>>>>>>>>> 早速の返信ありがとうございます。
>>>>>>>>>
>>>>>>>>>
>>> 仕様変更により接続するまでバッファが無い旨了解いたしま
>>>> した。
>>> 1)RTC::PortBase::connectの戻り値がtrueである。
>>> 2)RTCSystemEditorでは動作確認時に接続ラインが描画表示
>>>> される。
>>> 3)ログにはnotify_connect()以下の接続の処理が記録されて
>>>> いる
>>> 等の理由により接続は成功していると当方では判断していま
>>>> した。
>>>>>>>>> ログからは読み取れませんでしたが、
>>>>>>>>>
>>>>> 未接続の段階でwriteメンバを呼び出してしまっている
>>>>>>>>> というご指摘については調査してみます。
>>>>>>>>>
>>>>>>>>> 以上です。
>>>>>>>>> よろしくお願いいたします。
>>>>>>>>>
>>>>>>>>> Ando Noriaki wrote 2009/07/23 14:05:
>>>>>>>>>> 俵さま
>>>>>>>>>>
>>>>>>>>>> 安藤です
>>>>>>>>>>
>>>>>>>>>>
>>> 1.0からは、バッファはコネクタに属する構造に変更されま
>>>> した。
>>>>
>> したがって、接続するまではバッファが存在せずOutPortにwrite
>>>>>>>>>> しても値はどこにも格納されません。
>>>>>>>>>>
>>> このような仕様で不都合が生じるようでしたら、どのような
>>>> ケースで
>>> 問題になるのか利用例を教えていただけますでしょうか。
>>>>>>>>>> よろしくお願いいたします。
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2009/07/23 13:52 に
>>>>> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
>>>>> さんは書きました:
>>>>>>>>>>> 産総研 知能システム研究部門
>>>>> ヒューマノイド研究グループ
>>>>>>>>>>> にてお世話になっております 俵です。
>>>>>>>>>>>
>>>>>>>>>>>
>>> 現在OpenHRP3.1.0β2ベースで可能であればOpenRTM0.4.2へ
>>>> の
>>> 互換性を保ったままOpenRTM1.0.0-RC1への対応をしておりま
>>>> す。
>>>>>>>>>>> OpenRTM1.0.0-RC1に対応した場合、
>>>>>>>>>>> bool OutPort<DataType>::write(DataType&
>>>>> value)
>>>>>>>>>>> の処理中m_connectorsのサイズが0による理由で
>>>>>>>>>>>
>>> バッファに値を格納できない現象に遭遇しております。
>>> 初期化方法に問題があると疑って動作を追っているのですが
>>>> 、
>>>>>>>>>>> ログなどによると
>>>>>>>>>>> Jul 23 10:56:41 PARANOID: steer: connector
>>>>> push backed: 1
>>>>>>>>>>> Jul 23 10:56:41 DEBUG: steer:
>>>>> publishInterface() successfully finished.
>>>>>>>>>>> Jul 23 10:56:41 PARANOID: steer: 0
>>> connectors
>>>>> are existing
>>>>>
>>> と一見m_connectorsコンテナにコネクタインスタンスが
>>>>>>>>>>> 格納されるているようです。
>>>>>>>>>>>
>>>>>>>>>>>
>>>>> このような場合の対処方法についてご教示ください。
>>>>>>>>>>> 動作時のログも添付いたします。
>>>>>>>>>>> よろしくお願いします。
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>>>>>>>>>>
>>> 株式会社 スプリング(http://www.spring.cc/)
>>>>>>>>>>> つくば事業所 俵 崇文
>>>>>>>>>>>
>>> 俵 崇文@スプリング<tawara @ spring-inc.co.jp>
>>>>>>>>>>> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
>>>>>>>>>>> 事業所 TEL:029-871-7710
>>>>>>>>>>> 事業所 FAX:029-830-7037
>>>>>>>>>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>>>>>>>> 株式会社 スプリング(http://www.spring.cc/)
>>>>>>>>> つくば事業所 俵 崇文
>>>>>>>>> 俵 崇文@スプリング<tawara @ spring-inc.co.jp>
>>>>>>>>> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
>>>>>>>>> 事業所 TEL:029-871-7710
>>>>>>>>> 事業所 FAX:029-830-7037
>>>>>>>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>>>>>>>>
>>>>>>>>>
>>>>>>> --
>>>>>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>>>>>> 株式会社 スプリング(http://www.spring.cc/)
>>>>>>> つくば事業所 俵 崇文
>>>>>>> 俵 崇文@スプリング<tawara @ spring-inc.co.jp>
>>>>>>> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
>>>>>>> 事業所 TEL:029-871-7710
>>>>>>> 事業所 FAX:029-830-7037
>>>>>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>>>>>>
>>>>>>
>>>>> --
>>>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>>>> 株式会社 スプリング(http://www.spring.cc/)
>>>>> つくば事業所 俵 崇文
>>>>> 俵 崇文@スプリング<tawara @ spring-inc.co.jp>
>>>>> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
>>>>> 事業所 TEL:029-871-7710
>>>>> 事業所 FAX:029-830-7037
>>>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>> --
>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>> 株式会社 スプリング(http://www.spring.cc/)
>>> つくば事業所 俵 崇文
>>> 俵 崇文@スプリング<tawara @ spring-inc.co.jp>
>>> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
>>> 事業所 TEL:029-871-7710
>>> 事業所 FAX:029-830-7037
>>> _/_/_/_/_/_/_/_/_/_/_/_/_/
>>>> Print RTC::PortService_var info
>>> _PD_repoId: IDL:omg.org/CORBA/Object:1.0
>>> ConnectorProfileList[0]
>>> name: connector0
>>> connector_id: 67ca269d-5737-4437-8580-9dc69725892d
>>> properties:
>>> dataport.interface_type: corba_cdr
>>> dataport.dataflow_type: push
>>> dataport.subscription_type: flush
>>> dataport.corba_cdr.inport_ior:
>>>
>> IOR:010000001a00000049444c3a4f70656e52544d2f496e506f72744364723a312e30000000010000000000000064000
>> 000010102000d0000003139322e3136382e36352e310000060e0e000000fe6844714a00000a8c000000000e00000200000000000000080000000100000000545
>> 441010000001c00000001000000010001000100000001000105090101000100000009010100
>>> dataport.corba_cdr.inport_ref: not a string value
>>>
>>> ports[0]
>>> in()->_is_nil(): false
>>> inout()->_is_nil(): false
>>> out()->_is_nil(): true
>>> ports[1]
>>> in()->_is_nil(): false
>>> inout()->_is_nil(): false
>>> out()->_is_nil(): true
>>>
>>>
>>> Print RTC::PortService_var info
>>> _PD_repoId: IDL:omg.org/CORBA/Object:1.0
>>> ConnectorProfileList[0]
>>> name: connector0
>>> connector_id: 6f1fefad-d13d-460b-87e1-81592e104ae7
>>> properties:
>>> dataport.interface_type: corba_cdr
>>> dataport.dataflow_type: push
>>> dataport.subscription_type: flush
>>> dataport.corba_cdr.inport_ior:
>>>
>> IOR:010000001a00000049444c3a4f70656e52544d2f496e506f72744364723a312e30000000010000000000000064000
>> 000010102000d0000003139322e3136382e36352e310000060e0e000000fe6844714a00000a8c000000000f00000200000000000000080000000100000000545
>> 441010000001c00000001000000010001000100000001000105090101000100000009010100
>>> dataport.corba_cdr.inport_ref: not a string value
>>>
>>> ports[0]
>>> in()->_is_nil(): false
>>> inout()->_is_nil(): false
>>> out()->_is_nil(): true
>>> ports[1]
>>> in()->_is_nil(): false
>>> inout()->_is_nil(): false
>>> out()->_is_nil(): true
>>>> void consoleOutPortRefInfo(PortService_ptr portRef)
>>> {
>>>
>>> if(portRef->_is_nil() ){
>>> std::cout << "portRef is nill" << std::endl;
>>> } else {
>>> std::cout << "Print RTC::PortService_var
>>> info" << std::endl;
>>> std::string spcStr(" ");
>>> std::cout << "_PD_repoId: " <<
>>> portRef->_PD_repoId << std::endl;
>>> ConnectorProfileList_var profileList =
>>> portRef->get_connector_profiles();
>>> for(_CORBA_ULong i = _CORBA_ULong(0); i <
>>> profileList->length(); ++i){
>>> ConnectorProfile& localConPro =
>>> profileList[i];
>>> std::cout << "ConnectorProfileList[" <<
>>> i << "]" << std::endl;
>>> std::cout << spcStr << "name: " <<
>>> localConPro.name << std::endl;
>>> std::cout << spcStr << "connector_id: "
>>> << localConPro.connector_id << std::endl;
>>>
>>> std::cout << spcStr << "properties: " <<
>>> std::endl;
>>> std::cout <<
>>> ::NVUtil::toString(localConPro.properties) <<
>>> std::endl;
>>>
>>> PortServiceList& portServiceList =
>>> localConPro.ports;
>>> for(_CORBA_ULong h = _CORBA_ULong(0); h
>>> < portServiceList.length(); ++h){
>>> std::string spcStr2 = spcStr;
>>> spcStr2 += spcStr;
>>> std::cout << spcStr << "ports[" << h
>>> << "]" << std::endl;
>>> std::cout << spcStr2 <<
>>> "in()->_is_nil(): " <<
>>>
>>> (portServiceList[h].in()->_is_nil() ? "true" :
>>> "false" ) << std::endl;
>>> std::cout << spcStr2 <<
>>> "inout()->_is_nil(): " <<
>>>
>>> (portServiceList[h].inout()->_is_nil() ? "true" :
>>> "false" ) << std::endl;
>>> std::cout << spcStr2 <<
>>> "out()->_is_nil(): " <<
>>>
>>> (portServiceList[h].out()->_is_nil() ? "true" :
>>> "false" ) << std::endl;
>>> }
>>> }
>>> }
>>> }
>>
>>
>>
>>
>
>
> --
> _/_/_/_/_/_/_/_/_/_/_/_/_/
> 株式会社 スプリング(http://www.spring.cc/)
> つくば事業所 俵 崇文
> 俵 崇文@スプリング<tawara @ spring-inc.co.jp>
> 俵 崇文@AIST<tawara-takafumi @ aist.go.jp>
> 事業所 TEL:029-871-7710
> 事業所 FAX:029-830-7037
> _/_/_/_/_/_/_/_/_/_/_/_/_/
>
>
>
--
安藤慶昭@独立行政法人産業技術総合研究所 研究員
知能システム研究部門 統合知能研究グループ
〒305-8568 茨城県つくば市梅園1-1-1 中央第2
TEL: 029-861-5981 FAX: 029-862-6631
n-ando @ aist.go.jp, n-ando @ ieee.org
openrtm-users メーリングリストの案内