I was searching the web for open source projects that featured robotics when I came across the Robot Operating System. I read their website with interest because it was the first time I had seen an open source project that was writing code specifically for robots. Better yet, they were developing this code for Ubuntu. As a long time Ubuntu user, I saw the possibilities of installing it on my own system and tinkering away.
Robot Operating System (ROS) was built from the ground up to encourage collaborative robotics software development. For example, one laboratory might have experts in mapping indoor environments, and could contribute a world-class system for producing maps. Another group might have experts at using maps to navigate, and yet another group might have discovered a computer vision approach that works well for recognizing small objects in clutter. ROS was designed specifically for groups like these to collaborate and build upon each other's work.—from the website
When I reached out about an interview, I was put in touch with Tully Foote, the Robot Operating System platform manager at the Open Source Robotics Foundation.
Tell us about yourself.
I’m the ROS Platform Manager at Open Source Robotics Foundation. My work at OSRF is a continuation of work I started at Willow Garage, where I focused on ROS development, building core tools and libraries, and supporting and helping to grow the ROS community. I’m also the co-creator of the TurtleBot robot.
Tell us about Robot Operating System and how you got started.
The Robot Operating System (ROS) is a flexible framework for writing robot software. It’s a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and sophisticated robot behavior across a wide range of robotic platforms. ROS was originally developed in 2007 at Stanford University as part of the Stanford AI Robot (STAIR) Project. It was brought into Willow Garage in 2008, where it continued to grow and mature. In 2013, OSRF spun out of Willow Garage and took over stewardship of ROS.
Hear more from Tully on ROS, DARPA challenge, and Turtlebot this video.
Why a special operating system just for robots?
The worldwide robotics community has never had an open source platform this sophisticated before. Prior to ROS, roboticists weren’t speaking the same language, so to speak. Imagine the technology world without the LAMP stack and you have a sense of where things stood in the robotics world.
Robots require their own operating system (OS) because of the technical sophistication of robots. Take the world’s most sophisticated hardware system, then give it eyes, ears, senses, locomotion, manipulation, and more—each of these capabilities adding more sensors, more data, and more complexity.
Why did Robot Operating System decide to use Ubuntu instead of Debian or Fedora?
Ubuntu was chosen for its popularity and focus on ease of use. We support both Debian and Fedora building from source at the moment, and members of the community have prototypes building debs for Debian and rpms for Fedora, which we hope to promote in the future.
Where do you see the Robot Operating System moving in the near term?
In the past year I’ve seen more and more commercial deployments of ROS. For a project that started in academia, it’s really exciting to see ROS out in the world. ROS is being used in commercial, industrial, service, and consumer robots. ROS is even installed on Robonaut2 currently aboard the International Space Station.
Can you talk about your core components and tools and what they bring to the mix for the robotics developer?
When talking about ROS, we like to break it into four main parts: plumbing, tools, capabilities, and ecosystem. At the core there is the interprocess communication middleware, which is the plumbing that makes everything work together. On top of that are the tools which make the developer's life easier.
Examples of tools which are very valuable to our community are our 3D visualizer and logging and playback application. The tools allow the developer to focus on understanding the system they are building instead of building the infrastructure to introspect the system.
On top of that we have robot-specific capabilities, which are components that can be integrated into the developers system. These range from high degree of freedom motion planning libraries to a navigation stack which provides basic 2D navigation. Some of these capabilities come from the community, such computer vision libraries and point cloud processing libraries.
One of the capabilities maintained here at OSRF is the Gazebo simulator, which provides 3D simulation of one or more robots with realistic physics and rendering. It can be used for regression testing as well as a development tool, since development time on robots is often a limited resource. The final part is the ecosystem built by our worldwide community of users. Within the large community there are people doing similar things, and ROS provides a way to collaborate with people both nearby as well as on the other side of the world.
Where does most of your support come from?
Our main support comes from a mix of grants, donations, and contracts. We have several grants from organizations like NASA, NSF, and the Army to support our core infrastructure. We also work on contracts with government organizations and commercial companies such as DARPA, Qualcomm, and Google to develop new features for our platforms.
How important is a community to the development of the Robot Operating System and what do you do to foster its development?
The community behind ROS is one of its defining characteristics. The community provides collaboration opportunities, help to each other, and modules. There is a very small team here at OSRF which maintains the core, but more importantly we maintain the infrastructure for the community. We host websites such as answers.ros.org, where thousands of questions have been asked and answered by the community. There are community members from around the world releasing packages for everyone to use. Some are fulltime employees at robotics corporations, while others do it as a hobby or as a student. The ROS community is a place where they can all participate.
More info on the community can be found in the metrics report.
How is your code licensed?
New BSD has been our default. New projects are under Apache 2.0.
Is there a ROSCon scheduled for 2015?
That’s still an open question. It may be fall 2015 or pushed back to spring 2016.
Do you have any longterm goals for the Robot Operating System?
Our longterm goal for ROS is to provide the core capabilities for anyone building a robot or robotics system. The next big project is the development of ROS 2.0, which will upgrade the middleware to meet usecases not met by the existing middleware. We are focused on use cases which are necessary for deployment into end user products as well as in mission critical systems and highly distributed environments.
With the growing interest in STEM education and careers do you see more involvement from K12 and higher education?
ROS already has a proven track record and widespread adoption in higher ed. Slowly and steadily, ROS is starting to move down to lower grades. TurtleBot, which is a low-cost robot platform for ROS development, is routinely used in high schools. The robot simulation software that we manage, called Gazebo, will soon be in the hands of FIRST Robotics and RoboCup participants.