ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

covertbagel's profile - activity

2020-08-28 10:04:30 -0500 received badge  Nice Answer (source)
2016-11-09 22:14:56 -0500 received badge  Teacher (source)
2015-01-18 01:29:00 -0500 answered a question RosTutorials won't build on Raspberry Pi running Hydro

So I ran into essentially this same issue while compiling ROS Indigo on Raspberry Pi as per [1]. In my case /home/pi/ros_catkin_ws/devel_isolated/std_msgs/share/std_msgs had no msg directory. I worked around it by:

cd /home/pi/ros_catkin_ws/devel_isolated/std_msgs/share/std_msgs
ln -s /home/pi/ros_catkin_ws/src/std_msgs/msg

Not sure why the msg directory didn't get setup in the first place... or why the message search path doesn't just point to src/std_msgs/msg... or how to even configure the search path... but at least the error message was informative enough to get me going again without a lot of frustration.

[1] http://wiki.ros.org/ROSberryPi/Instal...

2014-03-15 15:20:02 -0500 commented answer attribute error when running catkin_make

@joq Dude calm down I haven't given up on ROS entirely yet ^_^ In case you didn't notice I did try to answer the question after that little one paragraph vent. That said, can we all agree this error is currently not presented to the user in an actionable way?

2014-03-15 13:44:12 -0500 received badge  Editor (source)
2014-03-15 13:41:57 -0500 answered a question attribute error when running catkin_make

I got this today while trying to install ROS Hydro on my Raspberry Pi as per [1]. Overall, installing ROS from source is very aggravating and maybe someday I'll try to make some similar framework that just gets the job done and doesn't have all this extra crap to deal with... but as to our problem...

Looks like you've got a circular dependency amongst your packages. Of course, it won't straight up tell you that's the problem though--no that would be far too kind--you must manually edit your catkin_pkg/topological_order.py and look for this comment:

# in case of a circular dependency pass a string with
# the names list of remaining package names, with path
# None to indicate cycle

Then after appending to ordered_packages you could add a line like:

print('Circular dependency within packages: {}'.format(ordered_packages[-1][1]))

It's up to you to muck around with the package.xml files until the cycle is broken and everything still somehow builds. That's what I'm doing right now. Good luck.

PS - That line I suggest adding really should just be in there already WTF people?

[1] (Sorry about the space) http:// wiki.ros.org/ROSberryPi/Setting%20up%20Hydro%20on%20RaspberryPi

EDIT THE FIRST:

I managed to get past this error condition by commenting out as few <build-depend> entries as possible within my set of circularly dependent packages but there's another edit I made to topological_order.py to make this easier. In the second while loop of _sort_decorated_packages:

while len(packages) > 0:
    # find all packages without build dependencies
    message_generators = []
    non_message_generators = []
    for name, decorator in packages.items():

        # Add the next two lines so that a package doesn't get stuck depending on only itself
        if name in decorator.depends_for_topological_order:
            decorator.depends_for_topological_order.remove(name)

        if not decorator.depends_for_topological_order:
            if decorator.message_generator:
                message_generators.append(name)
            else:
                non_message_generators.append(name)

No new problems yet but the RasPi is a little slow so we'll see... in any case at this point it would be different from this particular issue. Good luck again!

PS - This edit also seems like an oversight in the code? Won't know for sure until the build finishes though

EDIT THE SECOND:

I spoke too soon. After having satisfied topological_order.py with package.xml comments, cmake may get mad at some packages because it expects to see the a dependency but doesn't... so you'll want to revert said changes in those packages after building starts proper but before the modified package is built. That's a mouthful and I apologize in advance but it worked for me.

EDIT THE THIRD:

I have a working ROS install now! My improved version of catkin_pkg is available at [2] and I'll be keeping it in sync with the original until they accept my changes. It provides actionable feedback on cyclic dependencies and handles self-dependencies correctly. You're still on your own with trying to tweak <build-depend> and possibly reverting changes before cmake gets ... (more)

2014-03-15 13:41:19 -0500 received badge  Supporter (source)