Using snaps to advance robotics development

Sarah Dickinson

Sarah Dickinson

on 30 October 2017

Robotics development has seen great expansion in recent years. Some roboticists strongly believe that this expansion is not only due to the rise of inexpensive sensors and actuators but also to the new software trends enabling code sharing and reuse at a much larger scale than ever before. We spoke to Mohamed Saad Ibn Seddik, roboticist and Chief Scientist at Sea Machines, to find out why he thinks that robots should be treated just like IoT devices if companies want to have them widely adopted. Mohamed Saad thinks that robots, even more than other IoT devices, require special attention and tools to ensure the safety and benefits that they provide. Mohamed Saad also believes that the one way to achieve that goal is to use snaps for packaging robotics software.

How did you find out about snaps?

About a year or so ago I came across Kyle Fazzari, a software engineer at Canonical, who invited me to try snaps when working at MIT in Boston. It seemed snaps would be a great fit for robots and we later found ourselves presenting together at the MOOS developer conference in early August this year. In robotics, everything can be super archaic – for example, there is no staging. Continuous development is therefore almost not present in robotics. Also, a lot of people working in robotics come from different backgrounds and experiences and don’t even have a computer science background at all, so work can be error-prone. Snaps will help the robotic community take a step forward in their development. Plus we think it will help bring the community together to ensure software is interoperable.

How does building snaps compare to other forms of packaging you produce? How easy was it to integrate with your existing infrastructure and process?  

Like many, we found writing Debian packages a nightmare and couldn’t find a good way to do it without being excessively time-consuming. Therefore, the use of snaps as a middleware and the automatic updates work seamlessly.  Most roboticists, robotic labs and companies use Ubuntu and I see that snaps are the best way forward to keep software up-to-date.

Do you currently use the snap store as a way of distributing your software? How do you see the store changing the way users find and install your software?

It will depend on the use case: in one hand, some companies will not be very open to having their software searchable and downloadable for free, others might not give it too much thought. It will all depend on the business model. Therefore a brand store will be crucial for adoption by companies. For labs and universities, on the other hand, they will want to use the default snap store to guarantee exposure and reuse of their software. And this is something that we already witnessed with Debian packages for instance (when someone has enough time to create one.)

Where do you see the benefits of snaps in the context of your business?

In the robotics industry, reliability and safety are key. We saw companies go under because of faulty software that was not updated on time. These kinds of problems and other similar ones can easily be avoided by good software practices and snaps. Think about the automatic updates provided by snaps, for example, if one customer finds a bug, an update can be issued to all previously sold units and there’s no need to send engineers to install the patches. This advantage alone will save money to whoever decides to use snaps as a deployment tool. Furthermore, people are now used to having their phones automatically update all their apps seamlessly, so why not their robots too?

What release channels (edge/beta/candidate/stable) in the store are you using or plan to use, if any?

Knowing the robotics community, many packages will be in the edge channel for a while. However, as the community is known to also be an early-adopter community, it might spread really fast and change can happen very quickly. For companies, some will want to have private brand stores for their packages, that’s for sure.

How would you improve the snap system?

Knowing what to search for so my search results don’t bring up Minecraft instead of Snapcraft would help discovery! On a serious note, we use the tutorials and could see some enhancements to be made on those.

Internet of Things

From home control to drones, robots and industrial systems, Ubuntu Core and Snaps provide robust security, app stores and reliable updates for all your IoT devices.

Sign up for email updates

Choose the topics you're interested in

 

Related posts

Design and Web team summary – 20 April 2018

Welcome to the latest work and updates from the design and web team. The team manages all web projects across Canonical. From www.ubuntu.com to the Juju GUI we help to bring beauty and consistency to all the web projects. MAAS squad Table…

Eclipse 2018 survey: The IoT landscape, what it empirically looks like

Every year the Eclipse Foundation along with other sponsors conduct an online survey of the IoT market looking at what technologies are being used and how. The 2018 edition of that survey has just been made available and I thought it would…

BotsAndUs build a social robot on Ubuntu

As robotics become increasingly prevalent in all sectors and expand outside the manufacturing industry, it is no surprise that IDC predicts worldwide spending on robotics to reach $103bn in 2018. A UK based startup, BotsAndUs, are looking…