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

ROS and binaries deployment

asked 2012-10-23 01:24:43 -0500

Gabriele gravatar image

updated 2014-04-20 14:09:31 -0500

ngrennan gravatar image

Hi all,

I often have the need to arrange demos involving robots. What I would like to do is to somehow freeze the whole ROS environment, by exporting all the dependent ROS packages associated to my demo, in order to get a standalone self-contained demo version that I can run at every moment, without dealing with ROS updates, my own package updates, and so on.

In a nutshell, I'm looking for any ROS approach to move from development to production without wasting too much time.

Any idea about this?

Thanks Gabriele

edit retag flag offensive close merge delete


Demos are run on a single robot, but many different users might run the same demo over time. One problem is that our own packages are very often changed. On the other hand, even upgrading ROS might introduce inconsistencies in the code. That's why I'm looking for freezing the whole environment.

Gabriele gravatar image Gabriele  ( 2012-10-23 01:52:50 -0500 )edit

3 Answers

Sort by ยป oldest newest most voted

answered 2012-10-23 01:35:44 -0500

KruseT gravatar image

It might be useful if you described in more detail what your demos do. Like do they always run on the very same robot, or should they run on many robots, do you want other people to install your code to run demos, and such.

If you work from source, then you can create a demo.rosinstall file which specifies all ROS packages required for your demo in the specific version they are required in. With that, at any time you can create a folder, rosinstall all from that file, and you will get all the ROS packages in that version, which you can then compile and run. Depending on the other factors this might be a good solution for you or not work out at all, so consider this as just one idea.

edit flag offensive delete link more

answered 2017-07-07 17:54:50 -0500

kyrofa gravatar image

updated 2017-07-07 17:56:02 -0500

I know this is a bit of an old question, but since it was asked snaps have been developed. Check them out, they support Catkin and all dependencies are bundled. There's a ROS tutorial introducing them. One a snap is created, that snap is immutable and should always run, which sounds exactly like what you're looking for.

edit flag offensive delete link more

answered 2014-06-23 22:59:18 -0500

Would using a VM image work for that? You could build a VM with everything installed and tested, then store a snapshot and restore it to the working state as needed.

As you build and test the new version of the environment with new changes, you can deprecate the old image and snapshot a new one.

With configuration management system like chef ( ), building a new VM using the same consistent process is pretty straight-forward.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2012-10-23 01:24:43 -0500

Seen: 1,222 times

Last updated: Jul 07 '17