Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pause_physics, unpause_physics サービスによる操作と Choreonoid による操作との整合性がとれていません #22

Open
hmatsushita opened this issue Nov 30, 2015 · 4 comments

Comments

@hmatsushita
Copy link
Contributor

rosservice コマンドで /[simulatorname]/pause_physics による一時停止を実行した後、Choreonoid 側で一時停止のボタンを押してもシミュレーションが再開されません。
また、Choreonoid 側で一時停止を実施した後、rosservice コマンドで /[simulatorname]/unpause_physics を実行してもシミュレーションが再開されません。

@hmatsushita hmatsushita changed the title pause_physics, unpause_physics トピックによる操作と Choreonoid による操作との整合性がとれていません pause_physics, unpause_physics サービスによる操作と Choreonoid による操作との整合性がとれていません Nov 30, 2015
@fkanehiro
Copy link
Owner

SimulationBar::pauseSimulation()等を呼び出すべきかと思います。
https://github.com/s-nakaoka/choreonoid/blob/master/src/BodyPlugin/SimulationBar.h#L30
またGUI絡みの処理はGUIのイベントループから呼び出す必要があるので、callLaterを使うのだと思います。
https://github.com/s-nakaoka/choreonoid/blob/master/src/BodyPlugin/SimulationBar.h#L30
@hmatsushita さん、試してみてください。

@hmatsushita
Copy link
Contributor Author

情報ありがとうございます。
頂いた情報を元に修正を実施します。

@hmatsushita
Copy link
Contributor Author

SimulationBar クラスのメソッド呼び出しを試行しましたが、現行の SimulationBar クラスの実装では対応できないのではないかと考えています。

(恐らく) 当該クラスのパブリックメソッドは、GUI ボタンのイベントから呼び出す事を前提とした実装となっており、外部から呼び出して GUI の操作をする事は考慮されていないと思われます。

例えば、SimulationBar クラスの pauseSimulation の実装の概要は以下のようになっております (タイムバーの操作も実装されておりますが、こちらについては割愛しています)。

  1. 一時停止ボタンが押された状態である場合 2. へ、そうでない場合は 3. へ
  2. シミュレーションが実行中の場合、シミュレーションを一時停止しメソッドを抜ける、シミュレーションが停止している場合は何もせずメソッドを抜ける
  3. シミュレーションが実行中の場合、シミュレーションをリスタートしメソッドを抜ける、シミュレーションが停止している場合は何もせずメソッドを抜ける

一時停止ボタンの状態を操作 (pauseToggle->setChecked(bool)) した上で pauseSimulation を呼び出せば、期待した動作になると思われますが、 pauseToggle はプライベートとなっているため、外部から操作する事ができません。

以上の事から、対応できないのではないかと考えた次第となります。

@fkanehiro
Copy link
Owner

@s-nakaoka さん、何かコメントありませんでしょうか。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants