Robot Operating System
| Robot Operating System | |
|---|---|
Cart pushing simulation in RVIZ | |
| Original authors | Willow Garage Stanford Artificial Intelligence Laboratory Open Robotics |
| Release | 2007 |
| Stable release | Lyrical Luth [1]
/ 22 May 2026 |
| Preview release | Kilted Kaiju (ROS 2)[2]
|
| Written in | C++, Python, and Lisp |
| Operating system | Linux, macOS (experimental), Windows 10 (experimental) |
| Type | Robotics suite, OS, library |
| License | Apache 2.0 |
| Website | ros |
| Repository | |
| As of | February 2025 |
Robot Operating System (ROS or ros) is an open-source robotics middleware suite. Although ROS is not an operating system (OS) but a set of software frameworks for robot software development, it provides services designed for a heterogeneous computer cluster such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management. Running sets of ROS-based processes are represented in a graph architecture where processing takes place in nodes that may receive, post, and multiplex sensor data, control, state, planning, actuator, and other messages.
Overview
[edit]Despite the importance of reactivity and low latency in robot control, ROS is not a real-time operating system (RTOS). However, it is possible to integrate ROS with real-time computing code.[3] The lack of support for real-time systems has been addressed in the creation of ROS 2,[4][5][6] a major revision of the ROS API which will take advantage of modern libraries and technologies for core ROS functions and add support for real-time code and embedded system hardware.
Software in the ROS ecosystem[7][additional citation(s) needed] can be separated into three groups:
- language- and platform-independent tools used for building and distributing ROS-based software;
- ROS client library implementations such as roscpp,[8] rospy,[9] and roslisp;[10]
- packages containing application-related code that uses one or more ROS client libraries.[11]
Both the language-independent tools and the main client libraries (C++, Python, and Lisp) are released under the terms of the BSD license, and as such are open-source software and free for both commercial and research use. The majority of other packages are licensed under a variety of open-source licenses. These other packages implement commonly used functionality and applications such as hardware drivers, robot models, datatypes, planning, perception, simultaneous localization and mapping (SLAM), simulation tools, and other algorithms.
The main ROS client libraries are geared toward a Unix-like system, mostly because of their dependence on large sets of open-source software dependencies. For these client libraries, Ubuntu Linux is listed as "Supported" while other variants such as Fedora Linux, macOS, and Microsoft Windows are designated "experimental" and are supported by the community.[12] The native Java ROS client library, rosjava,[13] however, does not share these limitations and has enabled ROS-based software to be written for the Android OS.[14][better source needed] rosjava has also enabled ROS to be integrated into an officially supported MATLAB toolbox which can be used on Linux, macOS, and Microsoft Windows.[15] A JavaScript client library, roslibjs[16] has also been developed which enables integration of software into a ROS system via any standards-compliant web browser.
History
[edit]Early days at Stanford (2007 and earlier)
[edit]Sometime before 2007, the first pieces of what eventually would become ROS began coalescing at Stanford University.[17][18] Eric Berger and Keenan Wyrobek, PhD students working in Kenneth Salisbury's[19] The Robotics laboratory at Stanford, was leading the Personal Robotics Program.[20] While working on robots to do manipulation tasks in human environments, the two students noticed that many of their colleagues were held back by the diverse nature of robotics: an excellent software developer might not have the hardware knowledge required, someone developing state of the art path planning might not know how to do the computer vision required. In an attempt to remedy this situation, the two students set out to make a baseline system that would provide a starting place for others in academia to build upon. In the words of Eric Berger, "something that didn’t suck, in all of those different dimensions".[17]
In their first steps towards this unifying system, the two built the PR1 as a hardware prototype and began to work on software from it, borrowing the best practices from other early open-source robotic software frameworks, particularly switchyard, a system that Morgan Quigley, another Stanford PhD student, had been working on in support of the Stanford Artificial Intelligence Robot (STAIR)[21][22][23][24] by the Stanford Artificial Intelligence Laboratory. Early funding of US$50,000 was provided by Joanna Hoffman and Alain Rossmann, which supported the development of the PR1. While seeking funding for further development,[25] Eric Berger and Keenan Wyrobek met Scott Hassan, the founder of Willow Garage, a technology incubator which was working on an autonomous SUV and a solar autonomous boat. Hassan shared Berger and Wyrobek's vision of a "Linux for robotics", and invited them to come and work at Willow Garage. Willow Garage was started in January 2007, and the first commit of ROS code was made to SourceForge on 7 November 2007.[26]
Willow Garage (2007–2013)
[edit]Willow Garage began developing the PR2 robot as a follow-up to the PR1, and ROS as the software to run it. Groups from more than twenty institutions made contributions to ROS, both the core software and the growing number of packages that worked with ROS to form a greater software ecosystem.[27][28] That people outside of Willow were contributing to ROS (especially from Stanford's STAIR project) meant that ROS was a multi-robot platform from the start. While Willow Garage had originally had other projects in progress, they were scrapped in favor of the Personal Robotics Program: which focused on producing the PR2 as a research platform for academia and ROS as the open-source robotics stack that would underlie both academic research and tech startups, much like the LAMP stack did for web-based startups.
In December 2008, Willow Garage met the first of its three internal milestones: continuous navigation for the PR2 over two days and a distance of pi kilometers.[29] Soon after, an early version of ROS (0.4 Mango Tango)[30] was released, followed by the first RVIZ documentation and the first paper on ROS.[28] In early summer, the second internal milestone: having the PR2 navigate the office, open doors, and plug itself it in, was reached.[31] This was followed in August by the initiation of the ROS.org website.[32] Early tutorials on ROS were posted in December,[33] preparing for the release of ROS 1.0, in January 2010.[34] This was Milestone 3: producing tons of documentation and tutorials for the enormous abilities that Willow Garage's engineers had developed over the preceding 3 years.
Following this, Willow Garage achieved one of its longest-held goals: giving away 10 PR2 robots to worthy academic institutions. This had long been a goal of the founders, as they felt that the PR2 could kick-start robotics research around the world. They ended up awarding eleven PR2s to different institutions, including University of Freiburg (Germany), Robert Bosch GmbH, Georgia Institute of Technology, KU Leuven (Belgium), Massachusetts Institute of Technology (MIT), Stanford University, Technical University of Munich (Germany), University of California, Berkeley, University of Pennsylvania, University of Southern California (USC), and University of Tokyo (Japan).[35] This, combined with Willow Garage's highly successful internship program[36] (run from 2008 to 2010 by Melonee Wise), helped to spread the word about ROS throughout the robotics world. The first official ROS distribution release: ROS Box Turtle, was released on 2 March 2010, marking the first time that ROS was officially distributed with a set of versioned packages for public use. These developments led to the first drone running ROS,[37] the first autonomous car running ROS,[38] and the adaption of ROS for Lego Mindstorms.[39] With the PR2 Beta program well underway, the PR2 robot was officially released for commercial purchase on 9 September 2010.[40]

2011 was a banner year for ROS with the launch of ROS Answers, a Q/A forum for ROS users, on 15 February;[41] the introduction of the highly successful TurtleBot robot kit on 18 April;[42] and the total number of ROS repositories passing 100 on 5 May.[43] Willow Garage began 2012 by creating the Open Source Robotics Foundation (OSRF)