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

hrpsysの周期をgazeboに同期する #103

Closed
mmurooka opened this issue Aug 1, 2014 · 6 comments
Closed

hrpsysの周期をgazeboに同期する #103

mmurooka opened this issue Aug 1, 2014 · 6 comments

Comments

@mmurooka
Copy link
Member

mmurooka commented Aug 1, 2014

hrpsysの周期をgazeboに同期するのはどのようにするのだったか確認したいのですが,
@YoheiKakiuchi さん,お手数ですがもう一度教えて頂けますでしょうか.

SampleRobotを例にすると,関係ありそうな設定は以下の4箇所ありそうに見えます.
a) https://github.com/start-jsk/rtmros_gazebo/blob/master/hrpsys_gazebo_tutorials/config/SampleRobot.yaml#L5
b) https://github.com/start-jsk/rtmros_gazebo/blob/master/hrpsys_gazebo_tutorials/launch/gazebo_samplerobot_no_controllers.launch#L5
c) https://github.com/start-jsk/rtmros_gazebo/blob/master/hrpsys_gazebo_tutorials/launch/samplerobot_hrpsys_bringup.launch#L2
d) https://github.com/start-jsk/rtmros_gazebo/blob/master/hrpsys_gazebo_tutorials/launch/robot_hrpsys_bringup.launch#L16-L17

以下のようにするので合っているでしょうか.試してみて同期されているようには感じられなかったです.
ー b)で同じものを設定するので,a)は常にコメントアウトでよい.
ー 同期したいときは,b),c)どちらもtrueにする.
ー d)のIOB_SUBSTEPSとHRPSYS_RATEは書き換えないで良い.

また,a)からd)で設定されるrosparam,env変数は以下の2つで使われていますが,
それぞれどのようなことをしているのか教えていただけますでしょうか.
https://github.com/start-jsk/rtmros_gazebo/blob/master/hrpsys_gazebo_general/iob/iob.cpp
https://github.com/start-jsk/rtmros_gazebo/blob/master/hrpsys_gazebo_general/src/IOBPlugin.cpp

@YoheiKakiuchi
Copy link
Member

遅くなりました。
以下で合っているように思います。 b)はa)をoverwriteします。

ー b)で同じものを設定するので,a)は常にコメントアウトでよい.
ー 同期したいときは,b),c)どちらもtrueにする.
ー d)のIOB_SUBSTEPSとHRPSYS_RATEは書き換えないで良い.

同期されているように感じないとはどういう状態でしょうか?
SYNCHRONIZED:=true にして、シミュレーションが動いていれば、それは同期して動いている状態だとおもいます。
失敗すると、シミュレーションが動かなく(時計が進まなく)なります。

パラメータの解説でいうと、以下に書いているものがあります。
https://github.com/start-jsk/rtmros_gazebo/blob/master/README.md

また、以下のパラメータは複数ロボットを使うことを想定して作りましたが、複数ロボット対応のコードは未実装の部分がまだあります。
ROBOT_TYPEでロードするロボットのurdfやconfigurationを決める。ROBOT_INSTANCE_NAMEでそのロボットのGazebo上での名前を決める(SampleRobotNo1など)という予定です。

  <arg name="ROBOT_TYPE" default="SampleRobot" /> <!-- ROBOT type name -->
  <arg name="CONFIG_NAME" default="hrpsys_gazebo_configuration" />
  <arg name="ROBOT_INSTANCE_NAME" default="$(arg ROBOT_TYPE)" />

@mmurooka
Copy link
Member Author

mmurooka commented Aug 5, 2014

同期されているように感じないとはどういう状態でしょうか?

https://github.com/start-jsk/rtmros_gazebo/blob/master/hrpsys_gazebo_tutorials/worlds/SampleRobot.world#L19
の<real_time_update_rate>を1000から200にして,
real time factorを0.2にしてシミュレーションを走らせてテストしています.

シミュレーションの時計は進んでいるのですが,
send *ri* :angle-vector (send *sr* :angle-vector) 5000 をすると,
同期されているなら現実世界で25secで動くはずのところが5secで動いてしまいました.

send *ri* :go-velocity 0 0 0をしても,歩行周期が特に遅くなっているようには見えませんでした.

@YoheiKakiuchi
Copy link
Member

確認が難しいのですが、以下の問題と同じに思います。
#35

(同期しない場合)
hrpECの中で、iob.cppの中のwait_for_iob_signalを読んでいてここで時間調整しています。
なので、hrpECもlibhrpIo_gazebo.soをリンクしたものを作る必要がありそうです。

(同期する場合)
hrpECの中で、iob.cppの中のread_iob_frameを読んでいてここでstepの調整をしています。

いずれにしても、hrpECをhrpsys_gazebo_generalのiob.cppとリンクするようにする必要があります。

@mmurooka
Copy link
Member Author

mmurooka commented Aug 7, 2014

なるほど,結構深めの問題みたいですね..

hrpsys_gazebo_generalの中で,ROBOTHARDWAREにしていることと同じことをhrpECにもするようにすれば良いということでしょうか.
試してみます.

@k-okada
Copy link
Member

k-okada commented Sep 2, 2014

どうだろう.これで直ったかな.
#111
確認をお願いします.

debを使っているとちょっとややこしい(sudo cpする必要あり)だけど.

@YoheiKakiuchi
Copy link
Member

直りました.

robograffitti pushed a commit to robograffitti/rtmros_gazebo that referenced this issue Jun 24, 2015
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

3 participants