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

How do I distribute ros nodes in executable form

asked 2015-04-01 16:47:54 -0500

ggg gravatar image


For my teaching it would be convenient at times to be able to provide my students with executable ROS nodes, while not giving them the source code. Is there a simple way to do that? I'm running ROS Groovy under Ubuntu 12.04 and use catkin_make to build my nodes, but I'll be using ROS Indigo under Ubuntu 14.04 from September, so I'm interested in both situations, in case it makes a difference. I have only extremely basic knowledge of Linux, so maybe the question is very elementary and I don't realize it. Thanks for any input. Regards.

         G. Garcia
edit retag flag offensive close merge delete


Were you able to solve this? I'm running into the same issue you mentioned in your comment below, where ROS doesn't find the package in the install directory

autonomy gravatar image autonomy  ( 2016-03-24 14:56:04 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2015-04-01 17:40:28 -0500

William gravatar image

You cannot just use the build directory. If you want to distribute the binaries only you must invoke catkin_make install which will install everything into a local install folder. Then you can delete the build, devel and src folders, or just zip up only the install folder and distribute that. However, the binaries need to be compiled for the correct architecture that your students computer has and any dependencies you do not have in your workspace when you invoke catkin_make need to also be installed by your students before being used.

If you are only on Ubuntu then you can have bloom generate you a deb-src and then you can compile that and distrbute the .deb file and students can install it with dpkg -i your_distributable.deb. If you follow this part of the pre-release tutorial:

After the git-buildpackage command you'll have a .deb file that you can install with dpkg -i. This will only work if all of the packages your package depends on are released into ROS. If you want to build multiple closed-sourced packages then you'll need to setup a custom build farm so that you can have a full release lifecycle for your packages, allowing you to release and build binaries for one package and then release yet another package which depends on that package.

edit flag offensive delete link more



Zipping and copying the install does not work. ROS does not find the package. [rospack] Error: stack/package foo not found Tried to re-run catkin_make install in student account, but does not work either...

ggg gravatar image ggg  ( 2015-04-03 01:00:05 -0500 )edit

Question Tools

1 follower


Asked: 2015-04-01 16:47:54 -0500

Seen: 2,710 times

Last updated: Apr 01 '15