Catkin includes system packages before overlay
Hi all,
I'm not sure if I'm supposed to be using catkin yet but I figure it can't hurt to get a little ahead of the curve, especially since I'm trying to work with some stuff from Groovy (moveit). I've been trying to set up a workspace for catkin to overlay the most recent code from github over the debs and I'm having trouble compiling moveit_core because it's getting the system version of srdfdom even though I've overlayed a version from git in my workspace instead. This is the smallest .rosinstall that exhibits the problem:
- git: {local-name: src/srdfdom, uri: 'https://github.com/ros-planning/srdfdom.git'}
- git: {local-name: src/moveit_core, uri: 'https://github.com/ros-planning/moveit-core.git'}
I have been following the tutorials from here: http://www.ros.org/wiki/catkin/Tutorials/catkin_groovy_workspace
This is the output of make VERBOSE=1 for the file that fails to compile because it's looking at the wrong header:
cd /home/ibrahima/tmp/catkin_ws/build/moveit_core/kinematic_model && /usr/bin/c++ -Dmoveit_kinematic_model_EXPORTS -DROS_BUILD_SHARED_LIBS=1 -DROS_PACKAGE_NAME=\"moveit_core\" -Droscpp_VERSION_MAJOR=1 -Droscpp_VERSION_MINOR=9 -Droscpp_VERSION_PATCH=30 -fPIC -isystem /usr/include/eigen3 -I/opt/ros/groovy/include -I/home/ibrahima/tmp/catkin_ws/src/srdfdom/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/kinematics_base/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/kinematic_model/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/kinematic_state/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/collision_detection/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/collision_detection_fcl/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/kinematic_constraints/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/planning_scene/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/constraint_samplers/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/planning_interface/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/planning_request_adapter/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/trajectory_processing/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/distance_field/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/collision_distance_field/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/kinematics_metrics/include -I/home/ibrahima/tmp/catkin_ws/src/moveit_core/dynamics_solver/include -o CMakeFiles/moveit_kinematic_model.dir/src/kinematic_model.cpp.o -c /home/ibrahima/tmp/catkin_ws/src/moveit_core/kinematic_model/src/kinematic_model.cpp
The errors are things like /home/ibrahima/tmp/catkin_ws/src/moveit_core/kinematic_model/src/kinematic_model.cpp:271:22: error: ‘const struct srdf::Model::EndEffector’ has no member named ‘parent_group_’
because the packaged version is missing this field but the overlay version has it (there are also some unrelated bugs that I think are just typos/things forgotten from refactoring or renaming stuff).
It seems like /opt/ros/groovy/include is included before the overlay packages even though that shouldn't be the case. It seems like I'm having the same problem as this issue https://github.com/ros/catkin/issues/200 but that was fixed. What can I do to try to resolve this? Thanks!
Edit: Here's my ROS related environment variables (gathered from env | grep ros
which I have aliased as rosenv
by the way; might be a useful alias ...
Catkin issue #200 was closed 8 days ago. Are you sure that fix is included in the version your are testing?
Well, I saw that the issue was closed but the point was that I seemed to be experiencing the same symptoms. As you can see in the verbose make output the CFLAGs includes /opt/ros/groovy before the local workspace which I thought was not the desired behavior. The version I have is 0.5.46.
According to git that version should have the fix so I'll try to start again from a clean workspace, although I've done this about 6 times already I may have messed up following some of the instructions each time :/
Actually when I run cmake ../src from the build directory I see catkin 0.5.51. Either way I think the problem might just be with the CMakeLists.txt of some components of moveit and not my workspace, not 100% sure. That's what I get for trying to play with ROS components on the bleeding edge ;)
Actually sorry to keep spamming but to be clear I'm having two separate issues, one that I hacked around by removing the system version of a header and one that I haven't been able to resolve, and I may have been conflating them in these comments.
The ROS_PACKAGE_PATH looks wrong. Have you manually set that? If you have sourced the devl/setup.* file in your workspace the RPP should include your source folder of the workspace and /opt/ros/groovy/share|stacks.
I didn't do anything manual after sourcing setup.bash. Although to be honest when I posted this I tried a lot of different things so it's possible that I sourced the wrong file when I first posted.