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

Revision history [back]

(1) If the upstream package can be installed from apt-get, you can find_package the respective package in your CMakeLists.txt and use the exported libraries and headers in your code.

(2) If you only want to configure a package, simply create a new package containing the respective launch and config files.

(3) If you, however, want to customize a package, i.e. changing the code, there is no other way then to clone it to your workspace. You should try to bring your changes upstream as fast as possible, if they are general and can be useful to the community.

If option (1) and (2) don't suit your needs, you will need to use option (3) with the potential maintenance problems you mentioned.

(1) If the upstream package can be installed from apt-get, you can find_package the respective package in your CMakeLists.txt and use the exported libraries and headers in your code.

(2) If you only want to configure a package, simply create a new package containing the respective launch and config files.

(3) If you, however, want to customize a package, i.e. changing the code, there is no other way then to clone it to your workspace. You should try to bring your changes upstream as fast as possible, if they are general and can be useful to the community.

If option (1) and (2) don't suit your needs, you will need to use option (3) with the potential maintenance problems you mentioned.


EDIT

again three options:

(1) put the source in the same workspace as your package (you can have multiple repos etc. therein)

(2) create a chained/overlayed workspace, where you put your package in the one which is highest in the hierarchy and the other in the underlay

(3) you can also install packages using catkin_make -DCMAKE_INSTALL_PREFIX=/opt/ros/indigo install, but there might be some performance issues. Check out this page for more info (about in the middle of the page).

I personally would go for option (2) and wouldn't touch option (3) unless you'd really know what you are doing...