As the importance of robotics and automation increases, I believe it’s vital that we’re building those industries on an open source commons.
Brian Gerkey, CEO, Open Robotics
Linux, Apache, MySQL, and Python made the internet accessible to any developer with an idea. The Robot Operating System (ROS) and Gazebo are doing the same for robotics today. These software products sparked revolutions, Open Robotics CEO Brian Gerkey says, because they’re open source. Gerkey explores how a commitment to open source turned ROS and Gazebo into industry standards.
Brian Gerkey, a 20-year veteran of the robotics industry, is the CEO of Open Robotics. Previously, Gerkey was director of open source at Willow Garage, the seminal Silicon Valley startup that launched ROS, a collection of libraries and tools for app developers, and Gazebo, a visualization and simulation tool. While Willow closed in 2014, Open Robotics maintains ROS and Gazebo for use by robotics companies, universities, and government agencies.
Red Hat Summit 2020 Virtual Experience
0:00 Brian Gerkey
Starting in 2007, there was a robotics R-and-D company in the San Francisco Bay area called Willow Garage. Our goal was to advance the state of the art in robotics as quickly as possible. To that end, we built a state-of-the-art robotics research platform that was made available to labs around the world in academia and in companies.
That robot is the PR-2, which you see pictured here. It's a human-scale, wheeled robot with two arms and lots of sensors, and it was designed to support the kinds of advanced scientific experiments that people needed to do with robots in order to develop new capabilities and discover new algorithms.
0:44 Brian Gerkey
But we didn't stop with the hardware. We also developed an extensive software platform that we called ROS, for Robot Operating System. If we hadn't done that, then everyone who got one of these robots would have built their own software, and we wanted to avoid that duplication of effort. So, we made this open source software platform and we made it available to the whole world in a way that it could be used on other robots as well.
In the end, Willow Garage lasted about half a dozen years, but its work lives on and not just through the technology, but through the people. So the group that you see here clustered around the PR-2 are one of the early intern cohorts. This is from the summer of 2009, and these people, the majority of them, are now spread throughout the robotics industry. Running robot companies, working for big tech companies on robotics projects, and working in academia.
1:39 Brian Gerkey
So what is ROS? First of all, despite the name, it's not actually an operating system. It is a set of software tools and libraries that run on top of an operating system, often Linux, but we support other OSes as well. And it provides all the components that you need to build robot applications. So there's a message passing system at the core, which we often refer to as plumbing. And it helps you to get data from, for example, a camera to an object recognition algorithm to emotion planner, and then back to some motors. So, you can tell the robot where to go.
It also has developer tools and these let you launch the system, introspect it, find out what's going on, visualize the data that's flowing through the system, log the data, play it back, debug it, and so on. We also have capabilities which are implementations of commonly used algorithms, like building maps, keeping track of wherever you are, avoiding obstacles.
And then because it's open source, we also have a global ecosystem of users, developers, and software that everyone can build on when they're developing robot applications. In a way you can think of ROS as, for robotics, what Android or iOS do for mobile device app development. It gives you the bits and pieces that you need to build an application without starting from scratch.
2:57 Brian Gerkey
And like in the mobile app development world, where you often test your software, your new application in an emulator, so that you can try it out in software before pushing it onto the mobile device hardware, you need to do the same thing in robotics. You want to be able to develop and test your algorithms in software before and also after and during the transition to actual robot hardware. And arguably this is even more important for robots than it is for mobile devices, because the logistics of testing on mobile robots that are out in the world taking on difficult tasks is quite a bit harder.
3:35 Brian Gerkey
So, part of the ROS ecosystem is an open source simulator called Gazebo. It's a 3D, physics-based simulation, and it lets you model full, rich 3D environments and then put robots in those environments that could be wheeled, legged, that could be flying, they've got sensors. And what we're doing with Gazebo is providing, through all those affordances, the best possible stand-in for the physical robot.
Our goal with Gazebo is that you can develop your entire ROS-based control system, test it all on Gazebo, and then take it to the hardware, and then you can also, if you are diligent about it, you can keep testing your software on a regular basis as part of your continuous integration loop in simulation.
4:26 Brian Gerkey
We've now been developing and releasing new versions of ROS for over a decade. And in that time we've gathered quite a lot of the global robotics community behind this platform. It's fair to say that ROS is now a de facto standard in areas from academia all the way through to product development. Looking back, there were two key decisions that we made early on that enabled the establishment of that critical mass within the community and have led to the long-term success of the project.
5:01 Brian Gerkey
First of all, we chose to develop the project in a federated way. If you ask, where is ROS, there's not one repository that contains all the ROS code. We knew early on that this was too big of a project for any one group, much less any one person to take on and be in charge of. And we wanted to make it as easy as possible for experts in particular areas to jump in and make their own contributions.
5:28 Brian Gerkey
So early on, we said, "Well, we're going to have a central index of all of the ROS software that's out there. But if you want to contribute to ROS, you just put your code in a repo, let's say you put it on GitHub, you tell us where it is. And then we have all of the distributed infrastructure and all of the examples and the norms and the tools that will let the whole community find and install and build on your software." And that has led to an explosion in the amount of ROS software that's out there.
6:00 Brian Gerkey
The second key decision that we made early on was in licensing, when we knew we were going to make the software open source. And then of course, within open source software, you have a choice of many, many different licenses. And in the early days we decided that we wanted to see the software picked up and used in earnest commercially. So we chose permissive licensing. Early on we used the 3-Clause BSD license for new software. Now we use the Apache 2 license. In both cases, those licenses allow you, the user, to take the software, to modify it, to incorporate it into your product, and frankly, to do almost anything that you want with it. And that has led to ROS being deployed widely in products around the world,
6:45 Brian Gerkey
Looking to the future, I think it's fair to say that robotics and automation are becoming increasingly visible and important in our lives. We're now encountering robots in supermarkets, in hotels, and offices, and hospitals. And as the importance of robotics and automation increases, I believe it's vital that we are building that industry on an open source commons. Something that everyone can contribute to, something that everyone can access, and something that democratizes the ability to enter into the robotics field.
7:23 Brian Gerkey
I'm thinking here of something analogous to the so-called LAMP stack that existed in the 1990s that really enabled the internet revolution by having Linux; Apache; MySQL; and Perl, PHP, or Python, it was possible for internet entrepreneurs to quickly develop new applications on the internet. That's exactly what we're trying to do with Ross. We want to make it possible for you, if you have a great idea for what a robot could usefully do, to come in, take all of this amazing infrastructure that's available open source, and then build your product or your service.
7:55 Brian Gerkey
I'd like to focus on a couple of application areas that I think are particularly promising for robotics in general and ROS in particular. One of them is autonomous driving. We've seen a lot of interest over the past decade and more in self driving cars of various kinds. And I think it's well established now that to get to the point where we trust those cars to really drive themselves in the highways, we need to do a lot of the testing to prove that they're good and ready for use in simulation.
And I believe that that testing should be done in an open source system. We should have an open source, introspectable, simulation environment combined with open source datasets that allow the public to gain confidence in the results of that testing. And I'm showing you here some examples of simulating autonomous vehicles using Gazebo in ROS.
8:50 Brian Gerkey
Another area that is very close to my heart is space. I went to space camp when I was in eighth grade and I'll never be an astronaut. I'll never get to go to space myself, but I can take some solace in the fact that some of the software that we developed is actually now running in space. So on the left hand side there, you've got the Astro B, which was developed at NASA Ames Research Center. It's a free floating assistant robot that is now on the International Space Station and it runs ROS onboard.
And on the right side, you see a rendering of a forthcoming mission called Viper where NASA will send this Rover to the moon to do some exploratory work on the moon. And I'm happy to say that the newest version of ROS, ROS 2, as we call it, is planned to be an interval part of the software system for that robot. So, I couldn't be more excited about the possible space applications for the software that we've built.