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

How ROS Packages work with each other?

asked 2016-04-07 12:57:11 -0500

rosder gravatar image

updated 2016-04-13 06:55:14 -0500

Airuno2L gravatar image


As the source code is configured in a catkin workspace, does every package needs a catkin work space or I can put all what I need and what I am developing in one workspace?

Thanks for the answer from @jarvisschultz


If I want to make modification to some packages, should it be installed by source or sudo install? Any difference?

Thanks for the answer from @jarvisschultz

How ros packages work with each other?

There are packages built from source or built from binary packages, but how do they work?

Any explanations or examples are welcomed

edit retag flag offensive close merge delete


If you would like to modify the source code for packages you should definitely be installing the packages from source. One reason would be that many apt-get packages don't include the source code (e.g. C++ nodes will only include the compiled binary not the code).

jarvisschultz gravatar image jarvisschultz  ( 2016-04-11 17:47:05 -0500 )edit

As another rule of thumb, you generally want to avoid editing code, configurations, scripts, etc. that are placed in areas of your filesystem requiring "root access". Let's say you edit a Python script in /opt/ros/indigo/ . Then the next update to the containing package will overwrite your changes.

jarvisschultz gravatar image jarvisschultz  ( 2016-04-11 17:48:40 -0500 )edit

The "root access" rule, of course, doesn't always apply. Sometimes you have to edit these things, but try to avoid it unless absolutely necessary.

jarvisschultz gravatar image jarvisschultz  ( 2016-04-11 17:49:42 -0500 )edit

You can put many packages into a single workspace. You may also want to investigate the concept of workspace chaining AKA workspace overlaying.

jarvisschultz gravatar image jarvisschultz  ( 2016-04-13 08:36:53 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2016-04-07 14:11:52 -0500

I suggest you read the ROS Packages page describing the concept of packages. It provides detailed explanations of what a package is, what may be included in a package, how packages define dependencies on other packages, how command line tools and ROS introspection tools operate within the package construct, and more. The distinction of a "binary" package (a package installed with apt-get... a debian package) and a source package (a package that is most likely in a catkin workspace that was compiled on your machine with catkin_make) has very little to do with what a package itself is. If you find yourself confused by the descriptions on the linked page, please edit your original question to provide more detailed questions.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2016-04-07 12:57:11 -0500

Seen: 295 times

Last updated: Apr 12 '16