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

What do people use to create an exectuable program from a ROS project? [closed]

asked 2017-05-14 16:34:52 -0500

kparikh gravatar image

Are there any sites with instructions on how to make a program that people can install from a ROS project? I haven't found any specifics so I'm not sure if it's the same as other projects.

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by kparikh
close date 2017-06-13 23:01:57.183412

1 Answer

Sort by ยป oldest newest most voted

answered 2017-05-14 17:06:16 -0500

Geoff gravatar image

ROS software is not typically distributed and installed in the same way as "traditional" software. A ROS project is made up of several packages, each of which can be distributed and installed separately (to allow reuse in other ways). All the packages for a particular project must be present for that project to work. There will not be just one package because there are core dependencies, such as roscpp, which must be used (unless you intentionally make your own single-workspace distribution).

For general information about ROS packages, see here. In particular, dependencies are described in section 5.

If you are looking for help on how to make your package installable by others using a binary, see this page on releasing packages in ROS using bloom. It is possible to have a top package for your project that specifies all the dependencies it uses, so that when someone installs that top package the package manager automatically installs all the rest of your project as well.

If you want to bundle up an entire project that uses multiple packages into a single thing that someone can install and use, then you could consider using one of the software bundling tools. There are a few options available:

  • Mike Purvis of Clearpath Robotics gave a great talk at last year's ROSCon called "Robust Deployment with ROS Bundles", about making bundles of software into a single installable .deb package. It's all based on ROS and Debian tooling and looks very nice.
  • There is a recent thread on the ROS discourse that describes in great detail how to use Ubuntu Snaps to make easy-to-distribute ROS software.
  • There is a tutorial on the ROS Wiki about [using Docker to create ROS containers] which are easy to distribute.

I haven't used any of the above three methods, but if I were to start using one now, I would probably use the Ubuntu Snaps method, simply because it's described in the most detail.

edit flag offensive delete link more


That's perfect. Thank you.

kparikh gravatar image kparikh  ( 2017-05-14 17:52:37 -0500 )edit

Question Tools



Asked: 2017-05-14 16:34:52 -0500

Seen: 354 times

Last updated: May 14 '17