Kyle Fazzari

Kyle Fazzari

29 posts

Staff Engineer

Kyle (aka "kyrofa") is a husband, father of four, roboticist, and a staff engineer at Canonical, the company behind Ubuntu. He works on all things robotics in Ubuntu for server, desktop, and IoT. He's a contributor to both versions 1 and 2 of the Robot Operating System (ROS), a member of the ROS 2 Technical Steering Committee, and co-chair of the ROS 2 Security Working Group. He's also a core contributor to the snapcraft CLI as well as snapd, two key technologies behind snaps and Ubuntu Core.


Kyle Fazzari
1 February 2018

Snapcraft Summit summary – day 2

Article Desktop

The second day of Snapcraft Summits tend to be particularly productive as all the participants get more familiar with each other, and this one is no exception. In addition to developers from CircleCI, Electron, Microsoft, Plex, and Slack, today saw the addition of our friends from ROSHub joining us to hack on their...

Kyle Fazzari
1 February 2018


Kyle Fazzari
21 January 2018

Your first robot: Introduction to the Robot Operating System [2/5]

Article Desktop

This is the second blog post in this series about creating your first robot with ROS and Ubuntu Core. In the previous post we walked through all the hardware necessary to follow this series, and introduced Ubuntu Core, the operating system for IoT devices. We installed it on our Raspberry Pi, and used it to

Kyle Fazzari
21 January 2018


Kyle Fazzari
19 December 2017

Your first robot: A beginner’s guide to ROS and Ubuntu Core [1/5]

Article Internet of Things

Some time ago I created a blog/video series that walked the reader through creating a prototype using the Robot Operating System (ROS) and taking it to production using Ubuntu Core. However, that series was intended more for robotics professionals; it assumed quite a bit of ROS knowledge, and required some costly...

Kyle Fazzari
19 December 2017


Kyle Fazzari
3 October 2017

Snap configuration: the configure hook

Article Internet of Things

This article originally appeared on Kyle’s blog You’ve heard it a million times: snaps bundle their dependencies. People seem to understand and accept the technical aspects of this, but today I want to talk about a more philosophical aspect. If you’re used to more traditional packaging, then you’re used to each project...

Kyle Fazzari
3 October 2017


Kyle Fazzari
3 October 2017

Snap install-time setup: the install hook

Article Desktop

This article originally appeared on Kyle’s blog When it comes to developing snaps, there’s a particular confusion out there that I see over and over again: build-time versus run-time. For example: “I’m building a snap, but I can’t seem to convince Snapcraft to place my config file in $SNAP_DATA.” In this post, I want to show

Kyle Fazzari
3 October 2017


Kyle Fazzari
18 July 2017

Things to consider when building a robot with open source

Article Internet of Things

So you’re considering (or are in the process of) bringing a robot, using open source software, to market. It’s based on Linux. Maybe you’re using the Robot Operating System (ROS), or the Mission Oriented Operating Suite (MOOS), or yet another open-source middleware that’s helping you streamline development. As...

Kyle Fazzari
18 July 2017


Kyle Fazzari
11 July 2017

Ubuntu Core: Making a factory image with private snaps

Article Internet of Things

This is a follow-up to the ROS prototype to production on Ubuntu Core series to answer a question I received: “What if I want to make an image for the factory, but don’t want to make my snaps public?” This question is of course not robotics-specific, and neither is its answer. In this post we’ll

Kyle Fazzari
11 July 2017


Kyle Fazzari
31 May 2017

The Turtlebot 3 has launched

Article Internet of Things

If you’re familiar with ROS (Robot Operating System), chances are you’re also familiar with the Turtlebot. The first version of the Turtlebot was created back in 2010 to serve as an inexpensive platform for learning ROS. This was followed in 2012 by the Turtlebot 2, which has since become the reference platform for...

Kyle Fazzari
31 May 2017


Kyle Fazzari
9 May 2017

ROS production: create Ubuntu Core image with snap preinstalled [5/5]

Article Internet of Things

This is the fifth (and final) blog post in this series about ROS production. In the previous post we created a gadget snap to allow confined access to the Turtlebot. In this post, we’re going to put all the pieces from this series together and create an Ubuntu Core image with our ROS snap preinstalled,

Kyle Fazzari
9 May 2017


Kyle Fazzari
27 April 2017

ROS production: obtaining confined access to the Turtlebot [4/5]

Article Internet of Things

This is the fourth blog post in this series about ROS production. In the previous post we created a snap of our prototype, and released it into the store. In this post, we’re going to work toward an Ubuntu Core image by creating what’s called a gadget snap. A gadget snap contains information such as

Kyle Fazzari
27 April 2017


Kyle Fazzari
21 April 2017

ROS production: our prototype as a snap [3/5]

Article Internet of Things

This is the third blog post in this series about ROS production. In the previous post we came up with a simple ROS prototype. In this post we’ll package that prototype as a snap. For justifications behind why we’re doing this, please see the first post in the series. We know from the previous post

Kyle Fazzari
21 April 2017


Kyle Fazzari
13 April 2017

ROS production: our prototype [2/5]

Article Internet of Things

This is the second blog post in this series about ROS production. In the previous post we discussed why Ubuntu Core was a good fit for production robotics. In this post we’ll be on classic Ubuntu, creating the example ROS prototype that we’ll use throughout the rest of the series as we work toward using

Kyle Fazzari
13 April 2017


Kyle Fazzari
6 April 2017

From ROS prototype to production on Ubuntu Core

Article Internet of Things

Please note that this blog post has outdated technical information that may no longer be correct. For latest updated documentation about robotics in Canonical please visit https://ubuntu.com/robotics/docs. My background is pretty heavily littered with robotics. A natural side effect of this is that I’ve published...

Kyle Fazzari
6 April 2017


Kyle Fazzari
22 March 2017

Distributing a ROS system among multiple snaps

Article Internet of Things

One of the key tenets of snaps is that they bundle their dependencies. The fact that they’re self-contained helps their transactional-ness: upgrading or rolling back is essentially just a matter of unmounting one snap and mounting the other. However, historically this was also one of their key downsides: every snap must...

Kyle Fazzari
22 March 2017