Skip to content
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

Dependencies problem --- any support? #61

Open
mbforbes opened this issue Apr 30, 2014 · 18 comments
Open

Dependencies problem --- any support? #61

mbforbes opened this issue Apr 30, 2014 · 18 comments

Comments

@mbforbes
Copy link

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:

$ rosdep check pr2_object_manipulation
All system dependencies have been satisified
ERROR[pr2_tabletop_manipulation_launch]: resource not found [mongodb]
ERROR[pr2_interactive_manipulation]: resource not found [common_msgs]

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:

$ sudo apt-get install ros-groovy-common-msgs 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ros-groovy-common-msgs is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 181 not upgraded.

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.

@mbforbes
Copy link
Author

Update: fixed mongodb problem with

$ sudo apt-get install ros-groovy-warehousewg

common_msgs question still stands!

@mateiciocarlie
Copy link
Contributor

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?

@wjwwood
Copy link

wjwwood commented May 1, 2014

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?

@mbforbes
Copy link
Author

mbforbes commented May 1, 2014

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.

@mateiciocarlie
Copy link
Contributor

@wjwwood - thanks for pitching in!

My answer is also yes to all your questions...

@wjwwood
Copy link

wjwwood commented May 1, 2014

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:

http://wiki.ros.org/common_msgs

@mateiciocarlie
Copy link
Contributor

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 -->

@wjwwood
Copy link

wjwwood commented May 1, 2014

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.

@dirk-thomas
Copy link

I checkout this repo (1ab5d0f) 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>&}’

@mbforbes
Copy link
Author

mbforbes commented May 2, 2014

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!

@KaijenHsiao
Copy link
Contributor

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.)

@dirk-thomas
Copy link

I did not run into any problem with common_msgs. I had everything installed from Debian packages and only this repo checked out.

@mateiciocarlie
Copy link
Contributor

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.

@mbforbes
Copy link
Author

mbforbes commented May 4, 2014

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.

@jstnhuang
Copy link

(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 :)

@pxlong
Copy link

pxlong commented Oct 29, 2014

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.

@pxlong
Copy link

pxlong commented Oct 29, 2014

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 :)

@dirk-thomas
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants