Ask Your Question
1

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:

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

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
1

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

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

http://ros.org/reps/rep-0111.html#backwards-compatibility

"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

Comments

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 imagepiyushk ( 2012-04-27 09:15:59 -0500 )edit
-1

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

Stats

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

Seen: 437 times

Last updated: Jul 24 '12