The Robot Operating System (ROS) was initially developed in 2007 at Stanford University.
- At the time it was called Switchyard, and it was part of the Stanford AI Robot (STAIR) project.
- The idea behind STAIR was to integrate the various disciplines of AI (machine learning, vision, navigation, reasoning and natural language processing).
- Switchyard passed messages between software modules.
From 2008 to 2013, ROS was developed by Willow Garage, a company run by Google and IBM alumni that makes robots for researchers.
- In 2013 ROS was transferred to the non-profit Open Source Robotics Foundation.
ROS is a set of software libraries and tools to simplify the building of complex robots capable of sophisticated and robust behaviour.
- It’s designed to be modular, so that users can use as much or as little as they need for their particular project.
- There are now more than 2,000 public packages within ROS.
Just like Android is geared towards phones and tablets (and potentially the internet of things), ROS is an operating system (OS) for robots.
- And importantly, it’s free and open source (under the BSD licence) meaning anyone can change and improve it.
ROS is designed to control robotic components from a PC.
- ROS runs on top of Ubuntu, a popular distribution of Linux.ROS is not really an operating system – it works alongside an existing OS
- ROS is language independent, with Python, Lisp and C++ the main programming libraries.
- There is also a Java client (Rosjava) which makes it possible to run ROS software under Android.
ROS is widely used in research and teaching.
- It’s particularly strong in machine vision and in navigation.
- ROSIndustrial is adapting the OS to industrial settings.
- But at the same time, ROS is also used by hobbyists and governments.
- Improvements to the software can come from either direction and be used by the entire community.
Despite the importance of low latency in robotics applications, ROS is not RealTime OS, though integrations with real-time systems are possible.
- ROS 2.0 – coming soon – is expected to address this.
There’s now an annual ROScon conference, and ROS will be used by every contestant at the annual DARPA (Defense Advance Reasearch Projects Agency) Robotics Challenge.
- ROS has also started to appear in job descriptions and on CVs.
- And more than $150M in venture capital funding has been awarded to businesses that use ROS.
ROS is made up of several parts:
- drivers to read data from sensors and send commands to motors and actuators
- fundamental robotics algorithms to interpret sensor data, make maps of the world, move around it, manipulate objects and so on
- an infrastructure to connect components and move data between them
- tools to monitor and debug the robot, and record its sensor data
A ROS system is made up of a set of nodes, each of which communicates with other nodes via a “publish / subscribe” model.
- A sensor node would publish a stream of messages containing the readings from the sensor.
- Higher-level navigation nodes would then subscribe to this data.
All of the nodes are linked via the ROS Master, using a form of TCP/IP.
- Nodes can be hosted on different hardware (ie. across multiple computers) and even different architectures (eg. an Arduino, a PC laptop, a Raspberry Pi and an Android phone).
ROS supports the rapid testing of ideas.
Access to physical robots is often limited, and ROS provides two ways of leveraging this:
- The low-level hardware control programs are separated from the high-level processing and decision-making programs.
- The low-level hardware can be easily replaced by simulator software, for detailed testing of the high-level code.
- ROS provides a simple method for recording and play back of sensor data and other of messages (using “bags” and the rosbag tool).
- Once recorded, sensor data can be replayed many times to test different ways of processing it.
People have been waiting for robots to arrive in their everyday lives for decades now, and one of the reasons for the delay has been the lack of a common platform which enabled robotics engineers to communicate and collaborate with each other.
Robotics used to be hard because even to make a bad robot, people needed to be good a a lot of different things – artificial intelligence, engineering, electronics.
- Research was focused around universities that had access to different people with one or more of these skills.
ROS means that small teams with fresh insight in a single area can have a much bigger impact.
- Rather than reinvent the wheel for each project, ROS enables teams to build on what others have already achieved.
Open source platforms tend to develop much more rapidly than closed systems owned by a single manufacturer.
- You can see this in the speed with which Android caught up and overtook Apple’s software on phones.
- When Android first launched, Apple had a massive lead, but with the efforts of Google, HTC and Samsung, Android phones caught up within a few years.
Open source systems also tend to become de facto standards, which leads to a thriving support culture, which in turn leads to their adoption by non-technical and part-time members of a community.
- These people might nevertheless have something significant to contribute, but would never do so without the open source ecosystem.
- A good example here is the open source Content Management System (CMS) called WordPress, which runs this website, and indeed more than 25% of the entire world wide web.
Once you have an (ideally free) standard OS and some programming tools to go with it, you normally get lots of applications softwate developed in fairly short order.
- The most recent examples of this being the iPhone and Andriod apps, of which there are many thousands.
- Similarly, WordPress has a thriving set of free themes and plugins, to enhance the basic product in whichever direction you want to take it.
So the odds are now much higher that lots of robot apps are just around the corner, taking robots into niches that didn’t appear viable only a few years ago.
What would improve things even further would be an equal standardisation of hardware – such as robotic arms and moving platforms (on wheels or legs) that is ROS compatible.
- We’re currently at the stage where thousands of software and hardware components are available, but they haven’t coalesced into widely adopted standard building blocks.
Around 80 commercially available robots are supported, but many of them are expensive.
- Willow Garage already sell a full kit (TurtleBot) for less than I paid for my first home computer back in the 1980s.
- But their most advanced robot (the PR2, built on ROS) still costs $400K.
- At the other end of the spectrum, Lego Mindstorms NXT kits are ROS compatible.
I’ll look at ROS-compatible hardware in more detail in a future post.
Until next time.
Footnotes [ + ]
|1.||⇧||ROS is not really an operating system – it works alongside an existing OS|