start-jsk / rtmros_common

OpenRTM - ROS interoperability packages
http://wiki.ros.org/rtmros_common
12 stars 52 forks source link

hrpsys_gazebo_tutorialsのsamplerobotでimu_floorが出ない #177

Closed k-okada closed 10 years ago

k-okada commented 10 years ago

From you...@jsk.imi.i.u-tokyo.ac.jp on August 23, 2013 23:00:30

hrpsys_gazebo_tutorialsのSamplerobotで/imufloorが出ていないようです。 どのあたりに問題が有りそうか分かりますでしょうか?

rtmの接続を見ようとしていますが、 OpenRTMのデバッグにrtls, rtcat, rtprintなどが使えていましたが(現状でもコマンドは使える)、 補完が効いていないのと、rtprintすると以下のようにtypeを知らないとエラーになります。 $ rtprint localhost:5005/HrpsysSeqStateROSBridge0.rtc:basePos rtprint: Type not found: IDL:RTC/TimedPoint3D:1.0

以下が立ち上げ方法です。

モデルの準備

roscd hrpsys_gazebo_tutorials cd robot_model/SampleRobot rm -rf hrpsys meshes ./install_robot.sh

立ち上げ

roscd hrpsys_gazebo_tutorials roslaunch launch/gazebo_robot_no_controllers.launch rtmlaunch launch/robot_hrpsys_bringup.launch

Original issue: http://code.google.com/p/rtm-ros-robotics/issues/detail?id=179

k-okada commented 10 years ago

From nakaokat on August 25, 2013 21:52:05

rtlsなどの補完が効いていない件はopenrtm_tools/scripts/rtshell-setup.shのせいなので、 以下で直りました。

たしかこの変更はディレクトリ構成を変更したあたりでされていたと思うのですが、 一度cdする必要があったということなのでしょうか。 サブシェルの中で補完を設定してしまっているので動いていません。

Index: scripts/rtshell-setup.sh

--- scripts/rtshell-setup.sh (リビジョン 5236) +++ scripts/rtshell-setup.sh (作業コピー) @@ -5,7 +5,7 @@ _PYTHONVER=python -c 'import sys; print "python%s"%sys.version[:3]' export PYTHONPATH=rospack find openrtm_aist_python/lib/${_PYTHONVER}/site-packages:rospack find rtshell/lib/${_PYTHONVER}/site-packages:rospack find rtctree/lib/${_PYTHONVER}/site-packages:rospack find rtsprofile/lib/${_PYTHONVER}/site-packages:$PYTHONPATH if [ -f rospack find rtshell/share/rtshell/shell_support ]; then

k-okada commented 10 years ago

From nakaokat on August 26, 2013 23:15:30

typeのエラーに関しては、 https://github.com/gbiggs/rtshell/issues/14 にあるように変更すると動くようになります。

手元でsamplerobotを試してみましたが、kf.rpyとHrpsysSeqStateROSBridge.baseRpyが接続されていないようです。 HrpsysSeqStateROSBridgeのbaseRpyかbasePosが入力されないと、imu_floorは出ません。

k-okada commented 10 years ago

From nakaokat on August 26, 2013 23:59:04

手動で繋いでもおかしかったので、rtprint kf.rtc:rpyしたところ、

[6.000000007] RTC.Orientation3D(r=nan, p=-0.011197515989666874, y=0.008887400484892064)

となっていてrがnanでした。 RobotHardwareからの生値を見るとgsensorがかなり振動していています。

rvizやeusでエラーが出て操作不能になるので、計算結果にnanが含まれる場合imu_floorは出ないようにしてありますが、 どこが悪いのか分かりづらいので、 r5257 でHrpsysSeqStateROSBridge側でエラーを出すようにしました。

k-okada commented 10 years ago

From you...@jsk.imi.i.u-tokyo.ac.jp on August 27, 2013 01:30:49

rtlsなどの補完が効いていない件はopenrtm_tools/scripts/rtshell-setup.shのせいなので、以下で直りました。 たしかこの変更はディレクトリ構成を変更したあたりでされていたと思うのですが、 一度cdする必要があったということなのでしょうか。 サブシェルの中で補完を設定してしまっているので動いていません。

こちらは r5258 でコミットしました。

k-okada commented 10 years ago

From you...@jsk.imi.i.u-tokyo.ac.jp on August 27, 2013 04:13:58

手動で繋いでもおかしかったので、rtprint kf.rtc:rpyしたところ、 [6.000000007] RTC.Orientation3D(r=nan, p=-0.011197515989666874, y=0.008887400484892064) となっていてrがnanでした。 RobotHardwareからの生値を見るとgsensorがかなり振動していています。 rvizやeusでエラーが出て操作不能になるので、計算結果にnanが含まれる場合imu_floorは出ないようにしてありますが、 どこが悪いのか分かりづらいので、 r5257 でHrpsysSeqStateROSBridge側でエラーを出すようにしました。

ありがとう。 nanが入っている根本原因は、iobにgazeboのデータが無いときにreadされて不定値になってしまう(または、すべて0が入ってしまう)場合があることでした。 なので、open_iobの最後で一度subscribeされるまで待つようにします。 r5259 で対応しました。

gsensorの振動はたしかに大きいですね。 一応、直立じゃない姿勢(eusのinitialposeなど)にするとちょっとましになります。

k-okada commented 10 years ago

From you...@jsk.imi.i.u-tokyo.ac.jp on August 27, 2013 06:31:30

手元でsamplerobotを試してみましたが、kf.rpyとHrpsysSeqStateROSBridge.baseRpyが接続されていないようです。 HrpsysSeqStateROSBridgeのbaseRpyかbasePosが入力されないと、imu_floorは出ません。

こちらは、hrpsys_ros_bridge.launchでUSE_WALKING:=trueにすれば接続されるようです。 r5263 で対応しました。

k-okada commented 10 years ago

From kei.ok...@gmail.com on January 30, 2014 03:02:16

Status: Fixed