Closed YutaKojio closed 2 years ago
SampleRobotでも同じ問題が起きています. ロボットのwrlファイルにForceSensorが書かれている行の順番と,sensorIdが一致していない場合に,発生します. JAXONの場合は,wrlファイルに上から順にlhsensor, rhsensor, lfsensor, rfsensorの順で書かれていますが, sensorIdはlhsensorが3, rhsensorが2, lfsensorが1, rfsensorが0となっています.
openhrp-export-colladaを直すか,rtm-ros-robot-interfaceがhrpsysからのトピックを受け取る際にlimbの順を適切に並び替える必要があると思われます.
ありがとう.samplerobotで似たような問題があった気がして探してすぐ見つけられなかったけどどこのissueだったけ?
同じwrlファイルから作ってるので, openhrp-export-colladaを直す のほうがよさそうな気がしますね.
privateリポジトリですが,https://github.com/start-jsk/rtmros_hrp2/pull/550#issuecomment-611375233 になります.
privateロボット特有というわけでもないみたいなので解決するまではここも残しておきます.
原因はopenhrp3ではなくeuscolladaでした. https://github.com/jsk-ros-pkg/jsk_model_tools/pull/236
set-ref-force では指定されたlimbは指定された力にし, それ以外はself(*ri*)の referece-force-vector を使うようになっていますが, https://github.com/start-jsk/rtmros_common/blob/master/hrpsys_ros_bridge/euslisp/rtm-ros-robot-interface.l#L539-L542 少なくともJAXONでは,robot では (larm rarm lleg rleg) なのに対し,self は (rleg lleg rarm larm) となっているため意図した値がセットできません.
すぐ直せなかったのでとりあえず報告させていただきます.