enable to read custom limb name from .yaml file (fix for #249)#250
enable to read custom limb name from .yaml file (fix for #249)#250k-okada merged 7 commits intojsk-ros-pkg:masterfrom
Conversation
…other than head,torso,larm,rarm,lleg,rleg, we set limb name to robot models
…ignore limb with invalid joint
| @@ -0,0 +1,79 @@ | |||
| ## | |||
There was a problem hiding this comment.
気づくの遅れて申し訳ない、このsamplerobot1.yaml, samplerobot2.yamlって、euslisp/jskeus#598 で追加してくれたみたいなケンタウロス型ロボットになったりします?そうしておくと、このPRで追加した機能が後の人たちに伝わりやすくなる気がしました。難しそうなら教えて下さい
There was a problem hiding this comment.
ケンタウロスはちょうどよいcolladaモデルが見つからなかったので、PR2モデルのハンドをcustom limb化するテストを追加しました。6505add
目的1: custom limb対応 に対応するテストがgenerate-pr2-custom-limb-test
目的2: replace_xmlsなど、eusで使わないキーを別のyamlにしたい に対応するテストがgenerate-sample-robot-multi-yaml-test
です
There was a problem hiding this comment.
ありがとう。そうか、colladaモデルが必要だったね、申し訳ない。
元々の @Naoki-Hiraoka のモチベーションはハンドだったと思うので、結果的によりクリアになりました。
Hiroで動くか確認したりしてみようと思っているので、お待ちください
There was a problem hiding this comment.
Hiroで動くか確認したりしてみようと思っているので、お待ちください
既存のhrpsysにつなげる場合には start-jsk/rtmros_common#1121 が必要になるかもしれません
07896f2 to
6505add
Compare
|
@pazeshun https://gist.github.com/k-okada/5d1b7bfbfa3f84792ee97cfdb3431eee にdiff を添付します. |
|
大変遅くなりました。 確認方法mkdir -p ~/ros/ws_hiraoka_before/src
cd ~/ros/ws_hiraoka_before/src
wstool init
wstool merge https://gist.githubusercontent.com/pazeshun/3c653fae2159ec1372c42f91ff88328e/raw/29db1aff911494ce587fd352a79dd771b7d7a467/ws_hiraoka_before.rosinstall
wstool update
cd ..
catkin build hironx_tutorial
mkdir -p ~/ros/ws_hiraoka_after/src
cd ~/ros/ws_hiraoka_after/src
wstool init
wstool merge https://gist.githubusercontent.com/pazeshun/a6910235b56fb833fd0cd39392618015/raw/38a5330c8420cbd40692e8c44e88b9ca9cf521de/ws_hiraoka_after.rosinstall
wstool update
cd ..
catkin build hironx_tutorial
cd ~/ros
diff -u ws_hiraoka_before/src/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/hironxjsk.l ws_hiraoka_after/src/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/hironxjsk.l > ~/hironxjsk_hiraoka_diff.txt
source ~/ros/ws_hiraoka_after/devel/setup.bash
rostest pr2eus make-pr2-model-file-test.launch |
|
@Naoki-Hiraoka 確認方法前のコメントで作った環境で、 cd ~/ros
diff -u ws_hiraoka_before/src/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HIRONXJSK_controller_config.yaml ws_hiraoka_after/src/rtmros_tutorials/hrpsys_ros_bridge_tutorials/models/HIRONXJSK_controller_config.yaml > ~/HIRONXJSK_controller_config_hiraoka_diff.txt |
|
ご確認くださりありがとうございます。 挙動には影響を与えませんが、今回改めて変更内容を確認したときに気になった箇所をリファクタリングしました。6cb9aa6
間違いでした。start-jsk/rtmros_common@c4aec1b で修正しました。
行数が多いので全ては見れていませんが、リンク名だけ目視で確認したところ、リンクの宣言順番は変化していますが、全体は変わっていないようです。 このPull Requestで変更した部分では無いのですが、 jsk_model_tools/euscollada/src/collada2eus_urdfmodel.cpp Lines 777 to 781 in 6749740 や jsk_model_tools/euscollada/src/collada2eus_urdfmodel.cpp Lines 1862 to 1866 in 6749740 で、linkのshared_ptrをキーとするmapにlinkが格納されていて、mapのイテレータを回したときにどのような順番になっているかによって、linkの宣言順番が決まっています。恐らくmapの順番は、linkのメモリを確保するときにどのアドレスに確保されたかに依存すると思われます。 そのため、今回変更した部分はlinkの宣言順番と直接関係しない部分なのですが、今回変更した部分で行うメモリ確保・開放がlinkのアドレスに何らかの影響を与えて、linkの宣言順番が変化してしまっているのではないかと思います。 今後も何か変更するたびにlinkの宣言順番が変化してしまうのを防ぐためには、shared_ptrをキーとするmapのイテレータを回してlinkを宣言する代わりに、例えばlink名の文字列をキーとするmapのイテレータを回して宣言するという方法に変える、といった方法が考えられます。このPull Requestとはまた別の話になるかと思いますが、この変更を行うPull Requestを出すことは可能です。 |
なるほど、宣言順番を固定化するように変更するにしても、今回は順番が変わってしまうことが避けられなさそうな感じですね。
今回の変更後のdiffは以下のようになりました。
また、Hiro実機に接続されたPC上でこのPRとrtmros_commonのPRが入ったworkspaceを作り、実機で立ち上げるlaunchをそのworkspaceから起動して、正常に起動することと、rviz上でエラーなくロボットモデルや点群が見えること、roseusから:angle-vector/:start-grasp/:stop-graspできることを確認しました。 なお、以下のPR2のeusモデルのテストも通りました。 |
mapの順番が違うから結果がも違う,というのが,案外近い将来に起こりそうなので, https://thispointer.com/stdmap-tutorial-part-2-stdmap-and-external-sorting-criteria-comparator/ |
#252 に作成しました。変更点が少なかったため、URDFDOM_1_0_0_APIの場合とそうで無い場合の両方を変更しました。 |

#249 に、
を追加しました。