Robotics Operating System Brings Open Source Approach to Robotics Development
Humanity’s future may very well indeed be a thoroughly robotic one, populated with intelligent robots that can feed the elderly, perform precision surgery, or work beside you in the office. Yet, as one might imagine, the process of designing and engineering these robots isn’t as simple nor as streamlined as it could be. After all, not too long ago, many working in the robotics field often found themselves starting from scratch when embarking on a new project, re-implementing the software infrastructure that complex robotics algorithms are built upon. The result is that too much time is wasted on “re-inventing the wheel” — rather than developing innovative robotics software.
Enter some open source solutions, like the ones being offered by Open Robotics, an organization that has its roots in Stanford University and Willow Garage, a well-known tech industry incubator. At the most recent Amazon Web Services’ Re:Invent user conference, AWS Developer Advocate Alejandra Olvera-Novack discussed the possible uses of the Open Robotics software. One such example (see video at the bottom of this post for the full presentation) would be to run a robotic service dog. A robotic dog, though not quite as cuddle, requires less upkeep and could offer more helpful information in times of emergency.
Launched as a non-profit back in 2012, Open Robotics now works with academia, industry, government, and businesses to create and support open source robotics software and hardware at multiple stages of the process — from research and education, to product development and deployment. To better understand how this open source platform works, we spoke with developer advocate Katherine Scott about Open Robotics’ two main projects, Robot Operating System (ROS) and Gazebo, a 3D multiple robot simulation framework.
What is the Robot Operating System (ROS), and how does it work?
Despite its name, ROS is not actually an operating system. It runs atop a wide variety of operating systems, usually Linux.
The best way to describe ROS to a new technical audience is to say that ROS is to robotics as Ruby on Rails or Node is to web development. This is to say ROS is a set of tools for creating, configuring, building, debugging and managing complex robotic systems. At its core, ROS is a publish/subscribe system that can be used to share data and signals between small computer programs that make up a larger robotic system. For example, if you have a camera, and you want to hook it up to a large industrial arm, ROS allows you to connect to these components, send and receive data to or from them, and write code to glue behaviors together.
How does it compare to other similar tools in the industry, and what makes it significant?
There simply aren’t any similar tools within the industry — or at least none that you can buy commercially. Because of its age, federated development model, and global user base, ROS has tools for almost any robotics application. While there are vendors that may have application-specific solutions for particular vertical markets, none of them is geared towards general robotics development.
What are some of the advantages of the open source approach in the field of robotics?
Open source software runs most of the world, from the cloud all the way down to embedded devices in your home. The reason this is the case is that the time to market with open source is so much shorter; that is to say, smaller teams can create more value, faster. Open source also makes it easier to train developers, perform research and development, and foster collaboration between vendors. Using our example from above, ROS would allow you to use any camera on your robotic arm, all you need to do is create an interface, and there is probably someone who has already done this in the past.
The use of open source technologies also frees businesses from relying on a single vendor or source. One of the main reasons that Open Robotics was spun out of Willow Garage was to ensure that the organization wasn’t tied to a single company.
Prior to ROS, every roboticist had to start their research from scratch. There little in the way of shared tools or resources. To date, the biggest advantage to using ROS is that it is mature robot software that in most cases has already been proven to work on a robot.
Are there any disadvantages to ROS being open source?
The disadvantages of ROS are the same as any other open source project: while the software is free to use, that doesn’t mean that developing with that software, or extending it, is free. While things generally work well, it is up to the developer to verify that software suits their application’s performance requirements. A number of organizations, including Open Robotics, are available to provide help, advice, and support to ROS users.
What are some of the challenges in developing and implementing open source robotics tools?
Our greatest challenge lies in balancing the needs and priorities of a global and diverse community of stakeholders. The ROS and Gazebo user base comprises hobbyists, students, researchers, entrepreneurs, and seasoned developers — who are writing code for cars, boats, planes, humanoids, and toys, among myriad other applications. To date, our software platforms have proven general and flexible enough to satisfy many, perhaps most, of these groups. But we must work constantly to balance and prioritize the use cases that we aim to support.
What are some recent examples of how ROS has helped robotics developers?
A good case study for the use of ROS is Simbe Robotics. Simbe creates the Tally robot, which is used by retail establishments for tasks like inventory tracking, out-of-stock management, promotion execution, and planogram compliance. We’re currently working with Simbe to release a white paper about their experience using ROS. They believe that ROS saved them 22 developer-years in creating the Tally robot. Simbe was founded in 2015 and stayed relatively lean during the product development phase, and what they’ve been able to achieve has been nothing short of amazing.
Simbe is just one example of how ROS is helping robotics companies, and there are many, many others. In September of 2019, 6 River Systems, a company that uses ROS in its logistics robot, was acquired for $450 million. In addition, four ROS-based robotics start-ups raised close to $144 million dollars in venture capital over the course of a single recent month. The short of it is that ROS is the open source technology driving much of the current progress in robotics.
What are the latest updates and improvements to ROS and Gazebo, and what issues do they address?
Open Robotics is currently in the process of transitioning from the original ROS (or “ROS 1”) to ROS 2. At the moment, we are working to drive the adoption and development of ROS 2 forward with an already well-established ROS 1 user base. We are working on the thirteenth and final release of ROS 1 which has kept a reasonably stable API for about ten years. ROS 2 is our chance to address the issues that may have limited ROS 1 in the past, and make a mature and open platform for the next twenty years of robotics development. We just released our fifth version of ROS 2, Eloquent Elusor, and we think it is time for the community to start making the transition. Open Robotics is an organization that thrives on feedback and collaboration and we need our user community to convert their code bases to ROS 2 and start making suggestions on how to improve it.
ROS 2 addresses a lot of the shortcomings of ROS 1 in terms of security and reliability. ROS 2 also makes it much easier to create ROS hardware interfaces, which opens up a whole new world for hardware manufacturers. With ROS 2, we’re working on something bigger. We’re not just working on a set of software packages — we’re working on a robust common interface for future robotic systems.
We are also making a similar transition with Gazebo. The next version of Gazebo is currently underway and is called Ignition. Ignition allows you to create a robot “in simulation” and test it in a realistic virtual environment, similar in some ways to a video game. This technique is extremely powerful as it allows developers to build and test code without having to sit in front of a robot and tediously wait for it to run their commands. When combined with cloud compute, simulation becomes an incredible tool for testing robot behaviors in complex environments. Using the cloud you can run a robot through a simulation environment with minor changes to the environment or the robot’s behavior; you can repeat this process thousands of times in parallel. This allows robot developers to be so much more productive and allows us to better test the performance of the robots we build. It also means that multiple developers can all work on the same robot simultaneously.
Ignition’s simulation capabilities have made it so much easier to get into robotics development; you don’t need to build a robot, you just need a laptop and an idea. By decoupling hardware development from software development we have opened up robotics to a larger audience around the globe and organizations are starting to take notice.
If you are interested in learning ROS, or testing your skills, check out the virtual DARPA Subterranean Challenge, or NASA’s Jet Propulsion Laboratory’s Open Source Rover Space Challenge.