Open-Source Example of Real World ROS Robot (Software Update; Remote Logs, Etc): Does it Exist?

Hello all!

I’m a software consultant that works with a lot of startups and companies building robot or robot-like products. I’m constantly recommending ROS as the starting point for a project because it solves so much! However, some people always ask me for an example or place to start to look at how they might deploy ROS to a product in a production sort of sense and do things like updating the software and collecting ROS bags to a central server, etc.

Does anyone know if such an open-source example project exists?

I’m thinking something like the great nanosaur project, but with OTA-Software Updates and Remote logs collection as an example.

If you don’t know of one, but would be interested in the development of something like this, please give this post a like! I’m considering what it would take to create this and might start if there is sufficient interest.

1 Like

I know of several industry/consumer systems from personal experience that are actively deployed and in use (one or two for sure meet your logging/update criteria), but that doesn’t meet your open-source criteria and I don’t know how much detail I can provide there anyway.

Clearpath Robotics produces/maintains a lot of the hardware in use in lab and scientific use cases. PicNik Robotics maintains the widely-used MoveIt library. Perhaps one of those would have a ‘success story’ marketing material that does what you’re looking for?

You could just build those features for TurtleBot4. it really isn’t necessary to build yet another education robot.

What we really need is people spending the time to extend and better document the robots that are already on the market.

I agree that having clear examples of some of these typical features required in a production system would be fantastic. We are especially interested in understanding standard approaches to logging and alarming as we look to transition our industrial automation systems from proprietary stacks to ROS - I’ll keep an eye on this thread to see if there are any suggestions.

And I reckon using TurtleBot or nanosaur (or both?) as the example platform would be the way to go.

1 Like

Yes, I’m definitely not interested in building another educational robot kit haha, but more so interested in looking at any open-source projects around an existing kit or putting together some software around one to improve an existing design.

Was just curious if any of the kits out there had open-source implementations of these things :slight_smile:

Hi @keenanjohnson,

To answer the following,

how they might deploy ROS to a product in a production sort of sense and do things like updating the software […] OTA-Software Updates

I’d like to point you to the snap packaging which has the features listed here and more. Have a look at the dedicated robotics doc or the blog series “How to set up TurtleBot3 in minutes with snaps” in which we create a snap for the TurtleBot3 robot.

Hey @Jeremie !

Thanks for the response! Yea I’m familiar with Snap, but my understanding is it’s only really a package manager like apt or npm and doesn’t handle coordination of when a specific robot should update? It also doesn’t handle management of things like a parameter files I believe?

Maybe that is possible in Snap and I’m just not aware however.

Not open-source (yet?) but you might be interested in, which is focused entirely on deployment-management for robots. cc: @airbotics

You are right in that it is a packaging solution, but it is also more than that.

With features such as strictly confined containerization - your app runs on dozens of linux distro and across releases (e.g. Humble snap running on Mint 18), OTA-delta updates, transactional update, auto-rollback shall something fail, release/version management, update management etc etc. A little more than apt :wink:

So it does not indeed manages specific things like parameter files update. But you could totally update them, issue a new snap release and deploy it (OTA-delta etc), or ship that altogether in a separate snap with a parameter manager of sort.

1 Like

Oh interesting!

Do you have any links to tutorials or examples showing how to manage a fleet of ROS-bots using Snap @Jeremie that I could check out and possibly point people to?