-
Notifications
You must be signed in to change notification settings - Fork 52
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
catkinではないROSパッケージの取り扱いについて #1062
Comments
これは、 |
この問題は、今はとりあえずrtmbuildで、catkin_INCLUDE_DIRSと<パッケージ名>_INCLUDE_DIRSの順番を調整することで回避する運用になっています。 しかし、catkin_INCLUDE_DIRSと<パッケージ名>_INCLUDE_DIRSの順番を調整するだけでは、どのような順番にしても問題が発生してしまうことがわかりました。
今のrtmbuildの運用だと、後者の問題が発生してしまいます。例えばhrpsys_ros_bridgeで、https://github.com/ros/common_msgs をソースから入れてメッセージの定義を変更したりすると、エラーが発生します。 catkin_INCLUDE_DIRSと<パッケージ名>_INCLUDE_DIRSの順番を調整するのではなく、603b6a7 の方法をrtmbuild全体に適用すれば、解決するかもしれません。 |
この手の変更は経験上、困っている人が僕一人だけのうちはmergeできないということと、rtmbuildには他にもいくつか変えたいところがあるので、当面はhttps://github.com/Naoki-Hiraoka/rtmbuild2 で進めます。使いたい方や、start-jskのmasterへのmergeを希望する方はご連絡ください。 |
Please excuse me for writing Japanese.
タイトルの通り,hrpsysやopenhrp3など,非catkin(build_typeがcmake)のROSパッケージの取り扱いについてです.
問題を先にハッキリさせておくと,非catkinのROSパッケージをincludeやlinkするときに,PATHの順番を相当気をつけないとsourceとdebが混ざってしまいます. ref: start-jsk/rtmros_choreonoid#224 start-jsk/rtmros_choreonoid#263
以下,具体例としてhrpsysで話を進めていきます.
原因は分かっていて,aptで入るhrpsysは${catkin_INCLUDE_DIRS}や${catkin_LIBRARY_DIRS}でおそらくほとんどの場合PATHが通ってしまうのに対して (/opt/ros/${ROS_DISTRO}/includeにPATHが通る),ソースで入れたパッケージに対しては${hrpsys_INCLUDE_DIRS}など固有の名称を使わないとPATHが通らないということに起因します.
このことが引き起こす問題点を並べると以下のとおりです.
これらの問題点に加えて,難しいのは再発防止です.
上述の通りcatkin_INCLUDE_DIRSやopenrtm_aist_INCLUDE_DIRSを前に持ってきてしまうだけで問題が起こるので,今小手先で直してもいつかまた再発すると思われます.
個人的に思いつく解決策は,
くらいなのですが,何か良い方法はありますでしょうか?
今orocos_kdlを見てみたら同じようにbuild_typeがcmakeで,かつrosのaptでも入るようになっているので,諦めるしかないものなのでしょうか.
余談ですが,現在hrpsys_ros_bridgeはaptのhrpsysが無いとビルドが通らないようになっています.
https://github.com/start-jsk/rtmros_common/blob/master/hrpsys_ros_bridge/CMakeLists.txt#L104
このあたりに include_directories(${hrpsys_INCLUDE_DIRS})を入れると通ることは確認しています.
The text was updated successfully, but these errors were encountered: