Open mbforbes opened 10 years ago
Update: fixed mongodb problem with
$ sudo apt-get install ros-groovy-warehousewg
common_msgs question still stands!
Thanks for the interest!
I am however seeing the same problem... It's interesting - after doing apt-get install pr2_object_manipulation
I had to apt-get a bunch more packages by hand. I wonder how the build farm succeeds in building this...
Anyways, at some point I also get stuck with common_msgs. When trying to rosbuild pr2_interactive_object_detection, I get the following:
[ 7%] Generating ../src/pr2_interactive_object_detection/msg/_UserCommandFeedback.py
Traceback (most recent call last):
File "/opt/ros/groovy/share/rospy/rosbuild/scripts/genutil.py", line 131, in genmain
retcode = generate_messages(rospack, package, msg_file, subdir)
File "/opt/ros/groovy/share/rospy/rosbuild/scripts/genutil.py", line 90, in generate_messages
for d in rospack.get_depends(package):
File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 227, in get_depends
s.update(self.get_depends(p, implicit))
File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 227, in get_depends
s.update(self.get_depends(p, implicit))
File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 227, in get_depends
s.update(self.get_depends(p, implicit))
File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 227, in get_depends
s.update(self.get_depends(p, implicit))
File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 221, in get_depends
names = [p.name for p in self.get_manifest(name).depends]
File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 159, in get_manifest
return self._load_manifest(name)
File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 198, in _load_manifest
retval = self._manifests[name] = parse_manifest_file(self.get_path(name), self._manifest_name)
File "/usr/lib/pymodules/python2.7/rospkg/rospack.py", line 190, in get_path
raise ResourceNotFound(name, ros_paths=self._ros_paths)
ResourceNotFound: common_msgs
ROS path [0]=/opt/ros/groovy/share/ros
ROS path [1]=/home/matei/sandbox/pr2_manipulation
ROS path [2]=/opt/ros/groovy/share
ROS path [3]=/opt/ros/groovy/stacks
ERROR: common_msgs
ROS path [0]=/opt/ros/groovy/share/ros
ROS path [1]=/home/matei/sandbox/pr2_manipulation
ROS path [2]=/opt/ros/groovy/share
ROS path [3]=/opt/ros/groovy/stacks
make[3]: *** [../src/pr2_interactive_object_detection/msg/_UserCommandFeedback.py] Error 3
It is fairly strange, as I do have common-msgs installed. If I put an explicit dependency on it manifest.xml, I get the good old:
[rospack] Error: package/stack 'pr2_interactive_object_detection' depends on non-existent package 'common_msgs' and rosdep claims that it is not a system dependency. Check the ROS_PACKAGE_PATH or try calling 'rosdep update'
What am I missing? Haven't done rosbuild in a while, maybe it's something obvious :)
@wjwwood, @dirk-thomas - any thoughts?
Did you source the /opt/ros/groovy/setup.bash
? Do you have common_msgs
from groovy installed, i.e. ros-groovy-common-msgs
and not ros-hydro-common-msgs
?
Have you done sudo rosdep init
and rosdep update
?
Thanks so much for the reply! (I also asked this a few minutes before you posted on ROS answers, so we'll see if there are any takers...) I'm not sure if it's comforting or not that you have the same problem :-)
@wjwwood regrettably my answer is yes to all questions; roscd common_msgs
takes me to /opt/ros/groovy/share/common_msgs
, which contains just a lonely package.xml
file.
@wjwwood - thanks for pitching in!
My answer is also yes to all your questions...
Oh, common_msgs
is actually a metapackage (formerly a stack), and a package cannot depend on a stack nor a metapackage. Therefore, I think pr2_interactive_object_detection
should not depend on common_msgs
, but instead on one or more of the packages in common_msgs
:
Oh - it does not explicitly depend on it (I just tried adding that to see if it fixes the problem). In fact, the only mention of common_msgs
in the entire stack is actually in stack.xml:
matei@lga:~/sandbox/pr2_manipulation$ grep -r common_msgs .
./pr2_object_manipulation/stack.xml: <depend stack="common_msgs" /> <!-- nav_msgs, stereo_msgs, actionlib_msgs, trajectory_msgs, sensor_msgs, geometry_msgs, visualization_msgs, diagnostic_msgs -->
I dunno the problem seems to be during compile time which is weird, I think we need the value of package
from line in the tracebacks:
File "/opt/ros/groovy/share/rospy/rosbuild/scripts/genutil.py", line 90, in generate_messages
for d in rospack.get_depends(package):
What ever package
was set to when the exception occurred is the probably the issue. I think this may be bubbling up from dynamic reconfigure generation, but I don't know.
I checkout this repo (1ab5d0f131a891d1ee84b0d460bd1ca9d962453c) and installed all dependencies (rosdep check
ouputting only All system dependencies have been satisified
).
The following rosmake pr2_object_manipulation
failed with the following plain compile errors:
/opt/ros/groovy/include/geometric_shapes/bodies.h:159:16: note: no known conversion for argument 1 from ‘tf::Vector3’ to ‘const Vector3d& {aka const Eigen::Matrix<double, 3, 1>&}’
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp: In member function ‘int robot_self_filter_color::SelfMask::getMaskContainment(const tf::Vector3&) const’:
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:441:42: error: no matching function for call to ‘bodies::Body::containsPoint(const tf::Vector3&)’
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:441:42: note: candidates are:
In file included from /tmp/pr2_object_manipulation/perception/robot_self_filter_color/include/robot_self_filter_color/self_mask_color.h:34:0,
from /tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:30:
/opt/ros/groovy/include/geometric_shapes/bodies.h:152:8: note: bool bodies::Body::containsPoint(double, double, double, bool) const
/opt/ros/groovy/include/geometric_shapes/bodies.h:152:8: note: candidate expects 4 arguments, 1 provided
/opt/ros/groovy/include/geometric_shapes/bodies.h:159:16: note: virtual bool bodies::Body::containsPoint(const Vector3d&, bool) const
/opt/ros/groovy/include/geometric_shapes/bodies.h:159:16: note: no known conversion for argument 1 from ‘const tf::Vector3’ to ‘const Vector3d& {aka const Eigen::Matrix<double, 3, 1>&}’
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp: In member function ‘int robot_self_filter_color::SelfMask::getMaskIntersection(const tf::Vector3&, const boost::function<void(const tf::Vector3&)>&) const’:
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:459:50: error: no matching function for call to ‘bodies::Body::containsPoint(const tf::Vector3&)’
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:459:50: note: candidates are:
In file included from /tmp/pr2_object_manipulation/perception/robot_self_filter_color/include/robot_self_filter_color/self_mask_color.h:34:0,
from /tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:30:
/opt/ros/groovy/include/geometric_shapes/bodies.h:152:8: note: bool bodies::Body::containsPoint(double, double, double, bool) const
/opt/ros/groovy/include/geometric_shapes/bodies.h:152:8: note: candidate expects 4 arguments, 1 provided
/opt/ros/groovy/include/geometric_shapes/bodies.h:159:16: note: virtual bool bodies::Body::containsPoint(const Vector3d&, bool) const
/opt/ros/groovy/include/geometric_shapes/bodies.h:159:16: note: no known conversion for argument 1 from ‘const tf::Vector3’ to ‘const Vector3d& {aka const Eigen::Matrix<double, 3, 1>&}’
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:475:70: error: no matching function for call to ‘bodies::Body::intersectsRay(const tf::Vector3&, tf::Vector3&, std::vector<tf::Vector3>*, int)’
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:475:70: note: candidate is:
In file included from /tmp/pr2_object_manipulation/perception/robot_self_filter_color/include/robot_self_filter_color/self_mask_color.h:34:0,
from /tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:30:
/opt/ros/groovy/include/geometric_shapes/bodies.h:165:16: note: virtual bool bodies::Body::intersectsRay(const Vector3d&, const Vector3d&, EigenSTL::vector_Vector3d*, unsigned int) const
/opt/ros/groovy/include/geometric_shapes/bodies.h:165:16: note: no known conversion for argument 1 from ‘const tf::Vector3’ to ‘const Vector3d& {aka const Eigen::Matrix<double, 3, 1>&}’
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:487:48: error: no matching function for call to ‘bodies::Body::containsPoint(const tf::Vector3&)’
/tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:487:48: note: candidates are:
In file included from /tmp/pr2_object_manipulation/perception/robot_self_filter_color/include/robot_self_filter_color/self_mask_color.h:34:0,
from /tmp/pr2_object_manipulation/perception/robot_self_filter_color/src/self_mask_color.cpp:30:
/opt/ros/groovy/include/geometric_shapes/bodies.h:152:8: note: bool bodies::Body::containsPoint(double, double, double, bool) const
/opt/ros/groovy/include/geometric_shapes/bodies.h:152:8: note: candidate expects 4 arguments, 1 provided
/opt/ros/groovy/include/geometric_shapes/bodies.h:159:16: note: virtual bool bodies::Body::containsPoint(const Vector3d&, bool) const
/opt/ros/groovy/include/geometric_shapes/bodies.h:159:16: note: no known conversion for argument 1 from ‘const tf::Vector3’ to ‘const Vector3d& {aka const Eigen::Matrix<double, 3, 1>&}’
Thanks @wjwwood and @dirk-thomas for checking this out.
@dirk-thomas did you also run into the common_msgs problem, and if so, were you able to overcome it merely via apt-get?
I've had two others in my lab try this out as well; one person got as far as I did (common_msgs), while the other didn't have the problem but wound up with the compile errors that @dirk-thomas did.
My thought now is to try to overlay a catkin workspace with a common_msgs groovy-devel build and get pr2_object_manipulation to use that, then tackle the compile errors, but no dice so far (too many versions of build tools, something's wrong). Any additional tips would be greatly appreciated!
robot_self_filter_color is just a copy of robot_self_filter with xyz points changed to xyzrgb points, so whatever has changed about robot_self_filter that allows it to compile needs to be done to robot_self_filter_color also. (Check if robot_self_filter compiles first.)
I did not run into any problem with common_msgs. I had everything installed from Debian packages and only this repo checked out.
Is it maybe a problem of what else is installed on the machine?
I have hydro installed as well (although I do start with a clean bash environment every time with). @mbforbes : maybe the folks who managed to compile do not have hydro at all?
The robot_self_filter problem I think is caused by having MoveIt! installed instead of / along with the old arm_navigation.
Ah, thank you @mateiciocarlie, after a bit of checking the hydro installation seems likely to be the problem. I also have MoveIt!, so I'd likely get that error as well. I appreciate the help. I'll try these out when I get to a fresh machine.
(I'm Max's labmate). I'm having the same compiler errors as Dirk. If I just try to compile the package I want to modify (pr2_marker_control), there's actually a different error, which is that pr2_marker_control uses the arm_navigation stack, which tries to use shapes::StaticShape, which appears to be in fuerte but not groovy.
Not a big deal, just trying things out :)
Hi @dirk-thomas, have you already compiled this stack successfully?
If you still got the [error: no matching function for call to ‘bodies::Body::containsPoint(const tf::Vector3&)’], you can try to run "sudo apt-get remove ros-groovy-geometric-shapes", it will fix this problem. I have tried this : )
Hope that can help.
Hi @mbforbes, @mateiciocarlie and @KaijenHsiao, I would like to help you catkin-ize and hydro-ize this stack.
I have already successfully built (rosmake) it today (Ubuntu 12.04, ROS Groovy, and git-cloned it this morning).
But I don't what to do next if I want to hydro-ize it, so if you can give me some guidance, I will try my best.
Thank you :)
I only tried the build mentioned above and are not looking into this any further since it boiled down to simple compiler errors and not any dependency related problems.
Hello,
First of all, thanks for writing this great library!
I'm hoping to 1) catkin-ize this 2) hydro-ize this
But the first step is just to get it to build (with rosbuild and groovy), and I'm seeing:
mongodb for ROS doesn't seem to be available anywhere (can't find with apt-get and the repository that the wiki points to is unreachable.
As far as common_msgs go, apt-get says it's already there:
I know that this hasn't been worked on in almost a year, but is anyone willing to answer quick questions or update a readme? I'll give a pull request if/when I get a catkin and then hydro branch working.