pr2_arm_kinematics wrong md5 after upgrade, strange folders and compile errors on pr2 core packages
I've been using pr2_control_utilities for some time and they are quite robust to changes in msgs and APIs. However yesterday, after an upgrade (I am running fuerte), the md5 of kinematics_msgs/GetPositionIK changed. Although I recompiled my code (it's in python, don't really know if it matters doing rosmake), the problem persisted. I've tried several make clean - make iterations on several packages. Here is the error that pr2_arm_kinematics reported:
client wants service /pr2_right_arm_kinematics/get_ik to have md5sum 877eea62385e0e095b5756ea4386623d, but it has 6d82fcb918d48c6d8a708bc55e34ace2. Dropping connection.
However if I do
rossrv md5 kinematics_msgs/GetPositionIK
I get 877eea62385e0e095b5756ea4386623d, so I though the client was right and the service provider pr2_arm_kinematics_constraint_aware had the wrong md5. Since this is obtained using apt-get I assumed that it was correctly compiled and linked. I tried to manually compile it, but I got the error:
[ 50%] Building CXX object CMakeFiles/pr2_arm_kinematics_constraint_aware_lib.dir/src/pr2_arm_kinematics_constraint_aware.o /opt/ros/fuerte/stacks/pr2_kinematics/pr2_arm_kinematics_constraint_aware/src/pr2_arm_kinematics_constraint_aware.cpp:44:35: fatal error: kinematics_msgs/utils.h: No such file or directory so something really strange is going on.
The kinematics_msgs folder only has the content:
cmake manifest.xml msg srv
And the generated messages are somewhere else, namely /opt/ros/fuerte/lib/python2.7/dist-packages/kinematics_msgs/srv.
What is the right md5? What am I doing wrong?
UPDATE
After some digging I found that the file arm_navigation/kinematics_msgs/srv_gen/cpp/include/kinematics_msgs/GetPositionIK.h has md5sum:
6d82fcb918d48c6d8a708bc55e34ace2
However in opt/ros/fuerte/include/kinematics_msgs/GetPositionIK.h it has:
877eea62385e0e095b5756ea4386623d
Same goes for the python and lisp files. I don't know why there's these repetitions of messages but it's creating confusion and mismatching problems.