# Problems installing hydro from source

Hi,

I can successfully install the catkin (wet?) packages using the install from source on Ubuntu instructions found on the ROS website. However, I seem to still be missing packages that are installed when I install from binary. Looking at the Wiki for installing from source, it mentions "To utilize the things installed there simply source that file. Lets do that now before building the rest of ROS:". However, it never mentions how to build the rest of ROS.

So I figured, let's look at the source install documentation from Groovy. It is very similar, but has how to build the ROS (dry) packages. However, when I try to follow those instructions, substituting hydro for groovy, it tells me that there are no dry packages for Hydro.

I still don't understand why these files are not there when I compile from source, unless possibly they aren't actually part of ROS. They (apt-get packages) get installed as part of the dependency process when installing the HRATC2014 framework. See below:

dime@hratc4:~\$ dpkg -S /opt/ros/hydro/lib/libhusky_gazebo_plugins.so /opt/ros/hydro/lib/libcontroller_manager.so
ros-hydro-husky-gazebo-plugins: /opt/ros/hydro/lib/libhusky_gazebo_plugins.so
ros-hydro-controller-manager: /opt/ros/hydro/lib/libcontroller_manager.so


These don't get installed as part of the source install, so do I need to look elsewhere for their source?

edit retag close merge delete

Sort by » oldest newest most voted

There seems to be some misconception about what is "ROS". When you installed ROS, probaly you chose the desktop_full variant. This gives you maybe around 250 packages. However there are over 1000 packages released for ROS hydro. Just because they don't get installed with any of the core variants (base, robot, desktop, desktop_full, etc) does not mean they are not "part of ROS".

As you noticed, these additional ROS packages seem to be not part of packages needed for the "HRATC2014 framework" (I don't know what that is). You can of course install also those from source. rosinstall_generator is your friend here.

I guess the question is really, what you are trying to acheive. Usually it does not make sense to install everything from source on Ubuntu. It is much more economical to install almost everything with apt-get, and then create an overlay workspace with just the packages you want to modify and thus compile from source (including any packages you need that depend on the ones you modify). Again, rosdep, rosinstall_generator and wstool are your friend for this.

Edit: In response to your comment.

It is probably best to install the core ROS system from APT, and then checkout only the ones you need to customize from source in an overlay. In catkin, you should not manually modify the environment variables like ROS_PACKAGE_PATH / LD_LIBRARY_PATH, but rather make sure you have sourced your underaly (the core install in /opt/ros/hydro/setup.bash) before invoking catkin_make on your overlay with the source packages for the first time. Even if you want to build everything from source, I would still advice to install the core pacakges in an underlay workspace, then create a second overlay workspace for development. Else configuratoin/compilation will be slow and you cannot use catkin_make due to some non-catkin packages.

You should follow the tutorial at http://www2.isr.uc.pt/~embedded/event... . Which packages on top of the three in the hratc2014_framework.rosinstall do you want to install from source exactly?

Edit 2:

In response to your update, you have multiple possibilities. I am assuming that you want the hratc 2014 on top of a ROS install where only the navigation stack is replaced.

Option 1

The first option is to create a workspace with the hratc packages and the modified navigation stack.

# set up workspace with hratc and custom navigation
mkdir ~/hratc2014_workspace
cd ~/hratc2014_workspace
wstool init src https://raw.github.com/ras-sight/hratc2014_framework/master/hratc2014_framework.rosinstall -j8
wstool update -t src
# install dependencies from debian
rosdep install --from-path src -i --rosdistro hydro
# source the underlay and compile the workspace
. /opt/ros/hydro/setup.bash
catkin_make


This is the most convenient option, but there are some subtle pitfalls with this. For example, anything you install from debians that depends on the navigation stack was compiled with the released packages, but you now have "shadowed" those with your custom ones. If ...

more

I pulled the source for ROS because we needed to include a third-party modification to parts of the navigation stack (and it was only available in source). Then, I need to also use some dependencies that get installed when I use rosdep on the catkin workspace provided by the competition (HRATC2014). However, rosdep installs these in /opt/ros/hydro. My catkin install complained about being mixed type packages so we have to use catkin_make_isolated, which installed it into my home directory. I haven't been able to figure out how to make my local, source compiled ROS know where the other libraries are. I tried ROS_PACKAGE_PATH / LD_LIBRARY_PATH, etc., but there's some concept I'm missing here. It still doesn't seem to integrate well (i.e. controller_manager/spawn -- one of the dependencies, is never found). I'd have though there'd just be an environment variable that we could ...(more)

( 2014-04-03 10:46:28 -0500 )edit