From ROS prototype to production on Ubuntu Core

Quoting @kyrofa:

This is really for those on the list who are using ROS (Robot Operating System), but it may prove beneficial to others as well.

I’ve been working on creating a blog/video series about taking a ROS prototype to production using snaps and Ubuntu Core. Barring any unforeseen circumstances, I plan to publish one part per week.

Part 1 has been published, if you’re interested in checking it out.

Blog post:


1 Like

Thanks @niemeyer. I thought about putting it here but none of the categories felt quite right. I’ll update this thread as the series continues.

Thank you!

Please feel free to post any snap-related content here. If there’s no proper category, just file in #other, or the one that matches it best. The categories are minimalist just so we focus more on the conversations than on the structure, but it’s very easy to move things around and even put them in new categories once we find the need.

1 Like

This is awesome! I can’t wait for the rest of the series. Maybe slightly off topic… But always wondered if it rolls back in any circumstances? I’ve kind of gathered that it does. But never seen it happen.

@kyrofa Very nicely done. Kudos!

Thanks @manik!

@geekgonecrazy I’m not 100% sure what you mean by “any circumstances.” But if you want to see a developer-driven rollback, take a look at this rollback demo snap.

That’s exactly what I meant :smiley: Just thinking in terms of an update rolling out that didn’t go well in embedded system like robots. Rolling back from a bad update would be critical(not that ssh’ing in and reverting is hard. Its less practical). Would love to see more about that in your series

Automated health checks are mentioned here too. Is this just getting the exit code from the configure hook? Or what other circumstances causes it to roll back.

If service crashloops and stops trying, is that enough to cause it to roll back?

I initially had that snap as a demo for the part 1 video, but it got tossed in the final cut due to length (trying to keep each video no longer than five minutes). This is a pretty generic concept, so I won’t really be covering it more in-depth through this particular series. I wrote about it a bit in another post, though, if that helps.

No, automated health checks are currently in-development. However, yes, until that feature is complete simply exiting non-zero from the configure hook will result in a rollback (assuming that the non-zero exit code occurs during an upgrade).

No. However, as mentioned in the other post I linked above, the configure hook runs after services are started, which means it’s a decent place to check to see if your services failed for some reason. If so, exit non-zero and the snap will roll back.

No worries! Thanks for linking me to the article and going into this.

Makes sense! Easy enough to handle. Sorry for derailing the topic :grin:

Haha, you didn’t derail anything! Thanks for asking questions :smile: .

1 Like

“Part 2: Our prototype” is now live:


this merits a new post :slight_smile: Maybe transcribe the blog post into a forum post too :wink:


Agreed with @sergiusens.

@kyrofa I am blown-away with the production value of these videos so kudos to you for both the polish and the ease of following the content. Looking forward to the rest of the series and beyond.


Well thank you! I’m enjoying putting them together.

Love the production quality in this series. :grin: The music, effects, content etc. Great stuff!

“Part 3: Our prototype as a snap” is now live:

1 Like

“Part 4: Obtaining confined access to the Turtlebot” has just been published:

1 Like

“Part 5: Create an Ubuntu Core image with our snap preinstalled” has just been published:

1 Like

To bring this thread to a close: I was asked by a few different people how I made those videos, so I wrote up an article showing what I did and what I used. It was made very cheaply and with open-source software, so it might be useful to others wanting to do something similar.

1 Like

would be nice to add this to the new page …