This past Saturday, 23 May, was World Turtle Day, the day that celebrates the newest release of the turtle-themed Robot Operating System (ROS)—and also probably some actual turtles—and so we reached out to Open Robotics CEO Brian Gerkey and developer advocate Katherine Scott. We wanted to talk to them because this particular World Turtle Day also marked the release of the very last version of ROS 1: Noetic Ninjemys. From here on out, if you want some new ROS, it’s going to be ROS 2 whether you like it or not.
For folks who have robots that have been running ROS 1 for the last 4,581 days (which is when the very first commit happened), it might be a tough transition, but Open Robotics says it’ll be worth it. Below is our brief Q&A with Gerkey and Scott, where they discuss whether it’s really going to be worth all the hassle to switch to ROS 2, and also what life will be like for ROS users 4,581 days from now.
IEEE Spectrum: Where were you and what were you doing 4,581 days ago, the day of the first ROS commit?
Brian Gerkey: I was probably packing up my office at SRI in preparation for moving to this strange new robotics company called Willow Garage, where they’d just started collaborating with Stanford on a thing called “ROS.” I took some time off in between jobs and started at Willow in February 2008.
Where are you and what are you doing today [23 May 2020]?
Gerkey: I’ll be working from home, of course, in Santa Cruz, Calif., celebrating the World Turtle Day release of ROS Noetic Ninjemys, the last release of ROS 1 that Open Robotics will do. Of course, others will still be able to improve ROS 1 and even create new ROS 1 releases if they like. Because Noetic is an LTS [long-term support] release, there will continue to be bug-fix and security support through May 2025. This ROS 1 release is important because we’re bringing Python 3 support, which offers a longer support horizon compared to our prior use of the now-EOL Python 2. This feature also makes Noetic a great springboard for migration to ROS 2, where we’re all-in on Python 3. By bidding a fond farewell to working on ROS 1, we can focus our development resources on improvements to ROS 2 and its supporting infrastructure.
Where will you be and what will you be doing 4,581 days from now [7 December 2032]?
Katherine Scott: After the great robot replacement of 2028, the Western States Alliance will have moved to a nine-month work year, so I’ll probably be returning home for a much-deserved month off. The autonomous ferry from the Mountain View Tidal Zone (the floating replacement for the former city) to our vacation high-rise in New Santa Cruz Bay takes about three hours. There is a faster route using the autonomous bus line, but it can get kinda busy this time of year. It is nice in the Salinas Peninsula as the agriculture robots are out watering the fields to replicate the much diminished seasonal rains, which gives the area a wonderful smell. I usually end up working a bit over the holidays as there are occasional issues with some of the retail and manufacturing robot deployments. Sometimes you need to manually remove a few training sessions from their memory and replace them with more recent data. It is pretty standard stuff, but the human assistants are still getting familiar with the process. We have a few patches in ROS 4 that make this process much easier. The holidays have become a lot less stressful now that most traditional retail has been replaced with centralized delivery, so it is nice to have a bit of work to do here and there.
Do you have any regrets about ROS 1?
Gerkey: Regrets? Most of the things that I would consider regrets are more like realizations that were made along the way. Like calling it an operating system when it isn’t one. Or failing to emphasize that you don’t actually have to use our build system to use our software. With every body of work you have to make some assumptions and some of those assumptions turn out to be incorrect, require more thought, or make other aspects of your work more difficult. The best way we’ve found to lessen this effect is to bring more voices and viewpoints into the conversations. That’s why ROS 2 has a technical steering committee. While there are a lot of jokes about “design by committee,” there is a lot to be said for “direction by committee” to avoid making poor assumptions.
What do you want people to know about ROS 2?
Gerkey: Over the past decade and more, we listened to a lot of people, we heard their feedback, and in response we built a suite of open-source tools that are ready to make your robot do what it needs to do. ROS 2 has allowed us to fix the things that needed big structural change, while keeping all the good things. All of those things people clamored for in ROS 1, things like Windows support, RTOS support, life-cycle management, security, etc., well, they’ve all landed in ROS 2.
Scott: The thing about open source isn’t that it is perfect right away but it asymptotically approaches optimal. As more and more people touch a piece of code and use it, it becomes more generally useful while at the same time becoming more robust and secure.
What are you excited for in ROS 2?
Scott: There are a lot of things to be excited about in ROS 2. One thing I am excited about, and this is my personal bias, is better RTOS and hardware support. Things like uROS and the RealTime working group mean that we are bridging the gap between hardware and software. I think in a year or so we’ll really see a wide array of hardware that supports ROS 2 out of the box. This is exciting as it gets you to what I call the “Lego Experience” where you can just go buy a bunch of hardware and cobble it all together fairly easily.
Gerkey: I’m excited about the rise of simulation. It used to be that to work on a robot you needed to have the robot right in front of you. Now with good software simulation you really can do development at a desk instead of on the floor sitting next to your robot. This shift has a lot of implications for everything from enabling deep-learning R&D to opening new avenues for teaching and education. We now live in a world where if a young person has a nice gaming computer, they can build their own drone, mobile robot, or even self-driving car, in simulation and for free. The kids playing Kerbal Space Program or Minecraft today could be building autonomous cars in simulation when they are in college in a few years. Or whatever college looks like in a few years.
My robot works great on ROS 1 and I don’t want to update because every time I update stuff breaks and I have to fix it! What are my options?
Gerkey: The thing that needs to be realized about software releases, and in particular regular software releases, is that they exist as a mechanism to keep your systems healthy, secure, and functional, and to minimize the technical debt and chaos associated with large transitions. Just like anything in life you can either perform routine and regular maintenance or you can let issues build up until systems go critical. You can either change your oil every three or four months, or you can just buy a new engine every five to seven years. The choice is up to you, but as engineers we prefer performing routine system maintenance.
How painful is it really to switch from ROS 1 to ROS 2?
Scott: Not as bad as you would think, really. If you’ve been keeping up with updates and are familiar with the process, it really shouldn’t be that bad at all. We’ve heard from a number of groups who say the transition really wasn’t that difficult. Now, if you are going to be dragging some downstream dependencies along, that might be a bit more painful. That’s why we made a ROS 1 / ROS 2 bridge to make that process a lot easier. What the bridge allows you to do is transition your packages over one by one so you don’t have to move every package over simultaneously.
Gerkey: Something that will make the process easier or harder is the state of your general software hygiene. If you have good unit tests and a CI system, the process of transitioning should be pretty direct. If you have a lot of technical debt to pay off, you should remember that compound interest isn’t your friend. The general theme here is that we have these regular release schedules to help reduce technical debt over time. The longer you wait, the harder it gets.
Convince me to switch to ROS 2 in three sentences or fewer.
Scott: ROS 2 is the world’s largest open-source software framework for robotics and simulation. We allow developers to build secure state-of-the-art robotics applications using a common set of APIs and user-contributed packages. While ROS 2 breaks many ROS 1 APIs, the end result is a set of APIs that are both better and easier to use.
Gerkey: (With apologies to Michael Pollan) Program robots, as much as possible, mostly with ROS 2.
It’s been 4,581 days. How tired are you of explaining that the Robot Operating System is not an operating system?
Gerkey: Not at all, actually. I think for many people it captures what we’re trying to do, even if it’s not quite accurate. With ROS 2 a lot of work isn’t in talking to engineers, it is in talking to the end users and decision makers, people with less technical backgrounds, and I think it makes for a good conversation starter and gets the message across.
Will you miss ROS 1?
Scott: Transitions are always hard. When social media companies change their UI, usually half of the user base has a meltdown. It is human nature to resist change. I know I had a good six-month period where I missed ROS 1, just like how I missed Python 2.7. However, once the Band-Aid gets yanked off, and you see the clarity of thought, the improvements, the new features, it all makes sense. It just takes a bit of time to get over the muscle memory. I know I still type `rostopic list` instead of `ros2 topic list` all the time and sometimes it gets frustrating, but it is happening less and less.
Gerkey: Something that I’ve come to appreciate from living with a cat for the first time is that he and I are both novelty seekers. I’m far more excited about ROS 2 than I am nostalgic about ROS 1. And this isn’t my first such transition; it was almost 10 years ago that I said goodbye to Player, a pre-ROS project that produced some of the earliest open-source robot software. Now, as then, we’re maintaining continuity in our team and our community, which is what matters in the long run.
[ Open Robotics ]