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

Revision history [back]

click to hide/show revision 1
initial version

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.

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/events/HRATC2014/Simulator.html. Which packages on top of the three in the hratc2014_framework.rosinstall do you want to install from source exactly?

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/events/HRATC2014/Simulator.html. 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 set navigation https://github.com/clearpathrobotics/navigation.git --git -v hydro-devel -t src
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 the ABI is different, you might run into trouble. However this case might not arise for you.

Option 2

The other way is to create a custom ros install from source (dektop_full or whatever) where you replace the navigation stack with the version of clearpath. This is cleaner, because now you are not "shadowing" one version of the navigation stack with a custom one. You use this workspace as the underlay for your workspace with the hratc2014 packages. In order to add additional packages to the underlay (to fulfil all dependencies of the hratc2014 packages), you can include additional packages in the underlay with wstool and rosinstall_generator.

Initialize the underlay with the desktop_full metapackage and our custom navigation

 mkdir ~/ros_ws
 cd ~/ros_ws
 wstool init src
 wstool set navigation https://github.com/clearpathrobotics/navigation.git --git -v hydro-devel -t src
 wstool update -t src -j8

Get a .rosinstall file for all dependencies of the navigation stack and all of ros in the desktop_full variant. CAVEAT: This only works if the clearpath for of the navigation stack has the same dependencies as the released version.

 rosinstall_generator navigation desktop_full --deps --rosdistro hydro --deps-only --tar > deps.rosinstall

Merge the deps into the workspace, fetch all sources and build everything.

wstool merge deps.rosinstall -t src
wstool update -t src -j8
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

Prepare the overlay workspace with the hratc sources.

mkdir ~/hratc2014_ws
cd ~/hratc2014_ws
wstool init src https://raw.github.com/ras-sight/hratc2014_framework/master/hratc2014_framework.rosinstall -j8

We cannot use rosdep to find missing dependencies, and rosinstall_generator does not have support for the same kind of --from-paths option (see https://github.com/ros-infrastructure/rosinstall_generator/issues/25), so a little bit of manual work is needed.

First source the underlay, then let rosdep tell us what is not there already.

source ~/ros_ws/install_isolated/setup.bash
rosdep rosdep check --from-paths src -i

For this gives the following output (on os x):

System dependencies have not been satisified:
homebrew    ros-hydro-husky-navigation
homebrew    ros-hydro-ros-control
homebrew    ros-hydro-husky-gazebo-plugins
homebrew    ros-hydro-ros-controllers
homebrew    ros-hydro-gazebo-ros-control
homebrew    ros-hydro-hector-gazebo-plugins
homebrew    ros-hydro-gazebo-plugins
homebrew    ros-hydro-gazebo-ros

From that output you can deduce the following command to get a .rosinstall file for all missing dependecies. Take care to change - in the package name to _.

rosinstall_generator husky_navigation ros_control husky_gazebo_plugins ros_controllers gazebo_ros_control hector_gazebo_plugins gazebo_plugins gazebo_ros --deps --rosdistro hydro --tar --exclude RPP > hratc-deps.rosinstall

Now do back to the underlay and add the additional packages.

cd ~/ros_ws
wstool merge ~/hratc2014_ws/hratc-deps.rosinstall -t src
wstool update -t src -j8
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

Finally we are ready to build the overlay

cd ~/hratc2014_ws
catkin_make