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

setting workspace for rosws ?

asked 2013-10-21 04:51:15 -0500

hvn gravatar image

updated 2013-10-28 11:35:06 -0500

William gravatar image


I need to install a package for armhf that is not yet available for armhf. So I've been reading the tutorials on rosinstall, rosdep, roslocate and rosws. When I do sudo roslocate info arm_navigation --distro=groovy | rosws merge -, I'm asked to give a target workspace. But the package I want to install from source is not mine and should be install into /opt/ros/groovy/stacks. So what should the required workspace be then? /opt/ros/groovy/stacks ?



Here's the output from the point where it goes wrong:

Registering documents with scrollkeeper...
Setting up libgnutls-openssl27 (2.12.14-5ubuntu3.5) ...
Setting up libgnutlsxx27 (2.12.14-5ubuntu3.5) ...
Setting up libidn11-dev (1.23-2) ...
Setting up libgpg-error-dev (1.10-2ubuntu1) ...
Setting up libgcrypt11-dev (1.5.0-3ubuntu0.2) ...
Setting up libtasn1-3-dev (2.10-1ubuntu1.1) ...
Setting up libp11-kit-dev (0.12-2ubuntu1) ...
Setting up libgnutls-dev (2.12.14-5ubuntu3.5) ...
Setting up librtmp-dev (2.4~20110711.gitc28f1bab-1) ...
Setting up libcurl4-openssl-dev (7.22.0-3ubuntu4.3) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
executing command [sudo apt-get install -y libtbb-dev]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libtbb-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libtbb-dev' has no installation candidate
ERROR: the following rosdeps failed to install
  apt: command [sudo apt-get install -y libtbb-dev] failed
edit retag flag offensive close merge delete


Have you done an `sudo apt-get update` recently? This doesn't appear to be a ROS specific issue.

William gravatar image William  ( 2013-10-28 11:39:55 -0500 )edit

Yes, I did. To be certain, I did the update again, then the rosdep install, and it stops again at the libtbb-dev error. For completeness, I'm running Ubuntu12.04 armhf with groovy.

hvn gravatar image hvn  ( 2013-10-28 12:07:10 -0500 )edit

This could be a problem with the armhf debs being stale? @ahendrix might know something about this.

William gravatar image William  ( 2013-10-28 12:22:51 -0500 )edit

I know he is the maintainer of ros for arm. How can he be approached ?

hvn gravatar image hvn  ( 2013-10-28 12:27:21 -0500 )edit

I live with him :D, I'll ask him to review this question.

William gravatar image William  ( 2013-10-28 12:53:47 -0500 )edit

Can you either of you give me a follow-up ?

hvn gravatar image hvn  ( 2013-10-30 03:46:55 -0500 )edit

3 Answers

Sort by ยป oldest newest most voted

answered 2013-10-30 07:40:35 -0500

ahendrix gravatar image

libtbb-dev is an upstream package (NOT ROS) that is required to build one of the ROS packages; I think flann, assimp or opencv, if I'm remembering correctly.

There is no binary build of libtbb-dev for Ubuntu Precise armhf, and when I was doing Groovy builds, it didn't build on armhf.

Newer versions of Ubuntu (Raring) have a newer version of libtbb-dev which builds and is in the upstream repository; you may want to try using a newer version of Ubuntu, or downloading the sources for the newer libtbb-dev from Raring and trying to build and install it on Precise.

edit flag offensive delete link more


Thank you for this follow-up. Among packages that I do need are opencv, cv-bridge, image-transport, sensor-msgs, rosbag and arm-kinematics. Are they (or will those be) available on Raring armhf ? I prefer installing from repository since building on 1 GHz/500MB is not a task I look forward to.

hvn gravatar image hvn  ( 2013-10-30 10:33:37 -0500 )edit

About installing Raring: there are 2 images I can find: desktop-omap4 and server-omap. For which one is the armhf Raring repository intended? I have an omap(3) board. Could you please follow-up ?

hvn gravatar image hvn  ( 2013-11-01 04:33:36 -0500 )edit

answered 2013-10-21 08:13:18 -0500

William gravatar image

You need to clone the source code into a ROS workspace so that you can build it. The "workspace" at /opt/ros/groovy/stacks is a special sort of installed set of stacks. By default you cannot install a rosbuild stack, the rosrelease-legacy ( system has some scripts which sort of install rosbuild stacks so they can be installed from apt-get.

I would recommend that you setup a ROS workspace in your home folder, clone the code there, build it, and then source that before starting your work.

$ mkdir ~/ros_ws
$ cd ~/ros_ws
$ rosws init .
$ roslocate info arm_navigation --distro=groovy | rosws merge -
$ rosws update  # This should clone the code
$ source ./setup.bash
$ rosmake arm_navigation

The above will only work if you already have all of the dependencies of arm_navigation installed. If you need to get all of the missing dependencies as well, I would use rosinstall_generator (

$ mkdir -p ~/arm_navigation_ws/catkin
$ mkdir -p ~/arm_navigation_ws/rosbuild
$ cd ~/arm_navigation_ws
# This is important so that the packages you already have are on the ROS_PACKAGE_PATH
$ source /opt/ros/groovy/setup.bash
# First get the catkin dependencies you are missing
$ rosinstall_generator --rosdistro groovy --wet-only --exclude RPP --deps --tar arm_navigation > catkin/deps.rosinstall
# Then get a list of the rosbuild ones (including arm_navigation)
$ rosinstall_generator --rosdistro groovy --dry-only --exclude RPP --deps --tar arm_navigation > rosbuild/deps.rosinstall
# Now deal with the catkin packages first
# (rosbuild can depend on catkin, but not the other way around, so caktin always gets built first)
$ cd catkin
# Fetch the packages
$ wstool init src ./deps.rosinstall -j8
# Have rosdep try to install any missing system dependencies
$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y
# Now build and install stuff, result should be in ~/arm_navigation_ws/catkin/install
$ catkin_make install
# Now deal with rosbuild
$ cd ../rosbuild
# Create a ros ws here which references the catkin result from before
$ rosws init ./ ../catkin/install
$ rosws merge deps.rosinstall
$ rosws update
$ source ./setup.bash
$ rosmake -a

After that's done you can source ~/arm_navigation_ws/rosbuild/setup.bash anytime you need to use all the code you just built (it includes packages from /opt/ros/groovy.

edit flag offensive delete link more


Hi, Thank you for this very extensive answer. Question though: is this supposed to install all dependencies? Because the installation of the missing ones by rosinstall-generator quits on libttb-dev. Thank you.

hvn gravatar image hvn  ( 2013-10-24 00:13:33 -0500 )edit

`libttb-dev` (`libtbb-dev`?) should be installed by rosdep, I didn't include the the rosdep step for rosbuild packages, is it one of the rosbuild ("dry") packages which depends on this library?

William gravatar image William  ( 2013-10-24 08:03:49 -0500 )edit

The output says: processing triggers for libc-bin...ldconfig deferred processing now taking place.... Then it tries to install libtbb-dev. It comes from the output of installing the dependencies, and is the result of "rosdep install" before "catkin-make install".

hvn gravatar image hvn  ( 2013-10-24 09:25:08 -0500 )edit

@Wiliam: I would appreciate if you could follow up on my last comment.

hvn gravatar image hvn  ( 2013-10-28 10:14:34 -0500 )edit

Can you extend your original answer with the full output of this error? I don't follow what you mean in your post here.

William gravatar image William  ( 2013-10-28 10:18:09 -0500 )edit

answered 2013-11-12 05:47:10 -0500

hvn gravatar image

updated 2013-11-14 00:03:06 -0500

OK. After quite a few efforts and help from Robert Nelson, I managed to install Raring. Then following the instructions on, I get this:

$ sudo apt-get install ros-hydro-ros-base [sudo] password for hvn: Reading package lists... Done Building dependency tree
Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation:

The following packages have unmet dependencies: ros-hydro-ros-base : Depends: ros-hydro-ros-comm (= 1.9.47-0raring-20130802-2312-+0000) but it is not going to be installed E: Unable to correct problems, you have held broken packages.

The system is fully updated. So what is causing this ? Could you please follow up on this ?

Thanks for your help.

edit flag offensive delete link more

Question Tools



Asked: 2013-10-21 04:51:15 -0500

Seen: 1,862 times

Last updated: Nov 14 '13