jsk-ros-pkg / jsk_model_tools

JSK model utilities
https://github.com/jsk-ros-pkg/jsk_model_tools
BSD 3-Clause "New" or "Revised" License
6 stars 29 forks source link

[euscollada] yaml-cpp-0.5においてモデルの関節順序が正しく取得できない #99

Open orikuma opened 9 years ago

orikuma commented 9 years ago

euscolladaのjoint-lists生成部分に関して, yaml-cpp-0.3ではGetMarkを用いて行番号を取得し, yamlに書かれた順番に関節をsortしているようですが, yaml-cpp-0.5ではGetMarkがなくなったためsizeでsortしています. これでは正しい関節角度の順番にならず, angle-vectorでreset-poes等を送った際に各関節が期待された関節角度になりません. yaml-cppのコミュニティではMarkとNodeを関連付けてほしいという要望やpatchが出ているようですが, 開発者は採用していません. https://code.google.com/p/yaml-cpp/issues/detail?id=200

考えられる対策としては以下でしょうか. a. 何とかしてGetMark相当の結果が得られる実装を探す o yamlを一切変更することなく0.3との整合性が取れる x 実装方法に具体的な案がない(コミュニティでも要望が出ているレベルなのでできる可能性が低い) b. 関節の記述をlist方式(関節名とeusの関節名のリストのリスト)にし, listからindexを取得する o yaml的に正しい記述方法になる x 0.3との互換性が取れないためすべてのyamlに変更が必要 c. limbにpriority的なメンバをつけてそれを参照してsortする o 0.3側に影響を与えることなく変更可能 x 実装が汚い