-
Notifications
You must be signed in to change notification settings - Fork 58
シミュレーション開始でRTCのアクティベートが伝わる仕組み #159
Comments
ご指摘のように、ポートの接続を調べてつながっているRTCをアクティベートするようなコードになっていたかと思います。 |
以下、本機能の開発者からのコメントです。 升谷先生ご指摘の通り、
という処理になっています。 RTSEditorを作成する前は、外部で起動したRTCは自前でActivateしてもらったほうがいいと思っていたので、上のようにしていたのですが、RTSEditorで画面で見えていると、なんで?と思うのもわかります。 というわけなのですが、今年度ChoreonoidのRTM連携機能について改善を行う計画がありますので、その検討項目リストの中に本件入れておきます。 |
回答ありがとうございます.
ところで,#161 の件はいかがでしょうか? |
この件のコンセプトについて、今後は以下のようにしたいと思っています。
BodyIoRTCアイテム、ControllerRTCアイテムについては、以下のドキュメントを参照してください。 BodyIoRTCアイテムは、従来のBodyRTCアイテムを置き換えるものになります。BodyRTCアイテムもしばらくは使えるようにしますが、いずれ廃止したいと思っています。 |
応答が遅くなり申し訳ありません.今後のコンセプトについて理解しました. このようなコンセプトになるならば,外部からChorenoidのシミュレーションを開始する手段がほしいです.以前から書いているように(書くだけで自分ではできていないのですが)Choreonoid内のRTCが外部からアクティベートされるとシミュレーションが開始され,ディアクティベートされるとシミュレーションが終了する機能があると嬉しいです. http://choreonoid.org/ja/manuals/latest/openrtm/tank-joystick-project.html |
すみません、書き込みからだいぶ時間がたっておりますが…。 外部RTCがアクティベートされなかったのは、外部というよりはPythonでRTCを作成したことに原因があって、RTCの実行コンテキストがCORBAオブジェクトとしてどの型に見えるかについて、C++で実装したものとPythonで実装したものとで異なっていようです。この差異を考慮するようにした改良版のOpenRTMPluginを開発版のmasterにマージしておきました。 ただ、升谷先生のご要望としては、シミュレーション開始など、シミュレーションを操作するためのRTCが利用可能となればよさそうですね。その件は当方の開発項目に追記しておきました。 |
返信ありがとうございます.以下の二つは,同じ原因ということでしょうか?
実は,以前に教わってから,外部からアクティベート・ディアクティベートできるRTCのプラグインを作ることはできたのですが,シミュレータにアクセスする部分で行き詰っています.よくわからないまま,onActivated()に
と書いてみましたが,うまくいきませんでした. |
このissueの上の方の事例で「BodyRTCのコントローラモジュールRTCの先に接続されているRTC」であるKobukiControllerは,C++で書いたものです. |
ChoreonoidでBodyRTCを使う場合,シミュレーションを開始すると,BodyRTCとそれに接続されている他のRTCがアクティベートされます(間接的にでも接続されていればOKのようです).接続がないと,アクティベートされません.これはどのような仕組みでしょうか?ポートの接続を全て追いかけてアクティベートして回っているでしょうか?それとも,RTミドルウェアにそのようなことをやってくれる機能があるのでしょうか?これをやっているのは,ソースコードのどの辺でしょうか?
外部からのアクティベートでChoreonoidのシミュレーションを開始することはまだ試せていませんが,それに関連しての疑問です.
The text was updated successfully, but these errors were encountered: