Ask Your Question

Error parsing rosdep.yaml using rosdep 2 in ROS Fuerte

asked 2012-04-26 17:02:25 -0500

I upgraded to ROS Fuerte today, and was trying to get the segway_rmp package working. I also installed the standalone rosdep tool. Following the rosdep 2 specification, I added the github location for the segway_rmp rosdep.yaml file in /etc/ros/rosdep/sources.list.d/40-segway-rmp.list. Is there an alternate method for using the stack rosdep.yaml file that is more appropriate?

Anyhow, rosdep where-defined ftd2xx works correctly, where ftd2xx is a missing dependency on my machine that segway_rmp uses. However rosdep install segway_rmp fails with the following message:

executing command [sudo apt-get install ]
[sudo] password for piyushk: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::compare
ERROR: the following rosdeps failed to install
  apt: command [sudo apt-get install ] failed

The rosdep.yaml file inside segway_rmp is pasted below:

    macports: libusb
    ubuntu: libusb-dev
    macports: libftd2xx
    ubuntu: |
        if [ ! -f /usr/local/lib/ ]; then
            mkdir -p /tmp/ros/ros-deps/
            cd /tmp/ros/ros-deps/
            wget --tries=10
            tar xzf libftd2xx1.0.4.tar.gz
            cd libftd2xx1*
            MACHINE_TYPE=`uname -m`
            if [ ${MACHINE_TYPE} == 'x86_64' ]; then
                cd build/x86_64
                cd build/i386
            sudo cp /usr/local/lib
            cd /usr/local/lib
            sudo ln -s
            cd /usr/lib
            sudo ln -s /usr/local/lib/
            cd /tmp/ros/ros-deps/libftd2xx1*
            sudo cp ftd2xx.h WinTypes.h /usr/local/include/

Is the bash script substitution described here no longer supported in rosdep 2 (or am I making some mistake)? Should I create a separate package that uses the download_unpack_build script to install this dependency?

Thanks! Piyush

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2012-04-26 21:09:54 -0500

updated 2012-04-29 06:38:11 -0500

"Multi-line values will still be treated as bash scripts in ROS Electric. Support for this will be removed in ROS Fuerte."

So I think you should put everything in a separate script and give it another try.

edit flag offensive delete link more


Thanks for pointing me to the REP. A bit of testing reveals that the even a single separate script will not work, as bash substitution support seems to have been removed entirely.

piyushk gravatar image piyushk  ( 2012-04-27 09:15:59 -0500 )edit

answered 2012-07-24 14:02:04 -0500

Internal use of rosdep inside rosmake was removed in ROS Fuerte. You should call rosdep install and rosmake seperately in fuerte: $rosdep install segway_rmp $rosmake openni_segway_rmp in the terminal rather than rosmake segway_rmp --rosdep-install

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-04-26 17:02:25 -0500

Seen: 483 times

Last updated: Jul 24 '12