Robot Operating System (ROS or ros) is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
robotics middleware suite. Although ROS is not an
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
(OS) but a set of
software framework
In computer programming, a software framework is a software abstraction that provides generic functionality which developers can extend with custom code to create applications. It establishes a standard foundation for building and deploying soft ...
s for
robot software Robot software is the set of coded commands or instructions that tell a mechanical device and electronic system, known together as a robot, what tasks to perform. Robot software is used to perform autonomous tasks. Many software systems and framew ...
development, it provides services designed for a heterogeneous
computer cluster
A computer cluster is a set of computers that work together so that they can be viewed as a single system. Unlike grid computers, computer clusters have each node set to perform the same task, controlled and scheduled by software. The newes ...
such as
hardware abstraction
Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acc ...
, 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
Graph may refer to:
Mathematics
*Graph (discrete mathematics), a structure made of vertices and edges
**Graph theory, the study of such graphs and their properties
*Graph (topology), a topological space resembling a graph in the sense of discret ...
architecture where processing takes place in nodes that may receive, post, and
multiplex
Multiplex may refer to:
Science and technology
* Multiplex communication, combining many signals into one transmission circuit or channel
** Multiplex (television), a group of digital television or radio channels that are combined for broadcast
* ...
sensor data, control, state, planning, actuator, and other messages. Despite the importance of reactivity and
low latency
Low or LOW or lows, may refer to:
People
* Low (surname), listing people surnamed Low
Places
* Low, Quebec, Canada
* Low, Utah, United States
* Lo Wu station (MTR code LOW), Hong Kong; a rail station
* Salzburg Airport (ICAO airport code: ...
in robot control, ROS is ''not'' a
real-time operating system
A real-time operating system (RTOS) is an operating system (OS) for real-time computing applications that processes data and events that have critically defined time constraints. A RTOS is distinct from a time-sharing operating system, such as Unix ...
(RTOS). However, it is possible to integrate ROS with
real-time computing
Real-time computing (RTC) is the computer science term for Computer hardware, hardware and software systems subject to a "real-time constraint", for example from Event (synchronization primitive), event to Event (computing), system response. Rea ...
code. The lack of support for real-time systems has been addressed in the creation of ROS 2, 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
An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
hardware.
Software in the ROS
Ecosystem
An ecosystem (or ecological system) is a system formed by Organism, organisms in interaction with their Biophysical environment, environment. The Biotic material, biotic and abiotic components are linked together through nutrient cycles and en ...
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 , , and ;
* packages containing application-related code that uses one or more ROS client libraries.
Both the language-independent tools and the main client libraries (
C++,
Python, and
Lisp
Lisp (historically LISP, an abbreviation of "list processing") is a family of programming languages with a long history and a distinctive, fully parenthesized Polish notation#Explanation, prefix notation.
Originally specified in the late 1950s, ...
) are released under the terms of the
BSD license
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
, and as such are
open-source software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
and free for both commercial and research use. The majority of other packages are licensed under a variety of
open-source licenses
Open-source licenses are software licenses that allow content to be used, modified, and shared. They facilitate free and open-source software (FOSS) development. Intellectual property (IP) laws restrict the modification and sharing of creative ...
. These other packages implement commonly used functionality and applications such as hardware drivers, robot models, datatypes, planning,
perception
Perception () is the organization, identification, and interpretation of sensory information in order to represent and understand the presented information or environment. All perception involves signals that go through the nervous syste ...
,
simultaneous localization and mapping
Simultaneous localization and mapping (SLAM) is the computational problem of constructing or updating a map of an unknown environment while simultaneously keeping track of an Intelligent agent, agent's location within it. While this initially ap ...
(SLAM),
simulation tools, and other
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
s.
The main ROS client libraries are geared toward a
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
system, mostly because of their dependence on large sets of open-source software dependencies. For these client libraries,
Ubuntu Linux
Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical and a community of contributors under a meritocratic governance model, Ubuntu is released ...
is listed as "Supported" while other variants such as
Fedora Linux
Fedora Linux is a Linux distribution developed by the Fedora Project. It was originally developed in 2003 as a continuation of the Red Hat Linux project. It contains software distributed under various free and open-source licenses and aims to b ...
,
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, and
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
are designated "experimental" and are supported by the community. The native Java ROS client library, , however, does not share these limitations and has enabled ROS-based software to be written for the
Android OS. has also enabled ROS to be integrated into an officially supported
MATLAB
MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
toolbox which can be used on
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, and Microsoft Windows. A
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
client library, has also been developed which enables integration of software into a ROS system via any standards-compliant web browser.
History
Early days at Stanford (2007 and earlier)
Sometime before 2007, the first pieces of what eventually would become ROS began coalescing at
Stanford University
Leland Stanford Junior University, commonly referred to as Stanford University, is a Private university, private research university in Stanford, California, United States. It was founded in 1885 by railroad magnate Leland Stanford (the eighth ...
.
Eric Berger and Keenan Wyrobek, PhD students working in Kenneth Salisbury's The Robotics laboratory at Stanford, was leading the Personal Robotics Program. 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".
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) by the
Stanford Artificial Intelligence Laboratory. Early funding of US$50,000 was provided by
Joanna Hoffman
Joanna Karine Hoffman (born July 27, 1955) is a Polish-American marketing executive. She was one of the original members of both the Apple Macintosh team and the NeXT team.
At the time she began at Apple Computer, the Mac was "still a research ...
and
Alain Rossmann
Alain Simon Rossmann (born 1956) is a French entrepreneur who was a member of the early Apple Macintosh team and who went on to found or co-found nine Startup company, startups, of which three Initial public offering, went public (Radius, C-Cube ...
, which supported the development of the PR1. While seeking funding for further development, Eric Berger and Keenan Wyrobek met Scott Hassan, the founder of
Willow Garage
Willow Garage was a robotics research lab and technology incubator devoted to developing hardware and open source software for personal robotics applications. The company was best known for its open source software suite Robot Operating Syste ...
, 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.
Willow Garage (2007–2013)
Willow Garage
Willow Garage was a robotics research lab and technology incubator devoted to developing hardware and open source software for personal robotics applications. The company was best known for its open source software suite Robot Operating Syste ...
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.
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. Soon after, an early version of ROS (0.4 Mango Tango) was released, followed by the first RVIZ documentation and the first paper on ROS.
In early summer, the second internal milestone: having the PR2 navigate the office, open doors, and plug itself it in, was reached. This was followed in August by the initiation of the ROS.org website. Early tutorials on ROS were posted in December, preparing for the release of ROS 1.0, in January 2010. 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
The University of Freiburg (colloquially ), officially the Albert Ludwig University of Freiburg (), is a public university, public research university located in Freiburg im Breisgau, Baden-Württemberg, Germany. The university was founded in 1 ...
(Germany),
Robert Bosch GmbH
Robert Bosch GmbH (; ), commonly known as Bosch (styled BOSCH), is a German multinational engineering and technology company headquartered in Gerlingen, Baden-Württemberg, Germany. The company was founded by Robert Bosch in Stuttgart in 188 ...
,
Georgia Institute of Technology
The Georgia Institute of Technology (commonly referred to as Georgia Tech, GT, and simply Tech or the Institute) is a public university, public research university and Institute of technology (United States), institute of technology in Atlanta, ...
,
KU Leuven
KU Leuven (Katholieke Universiteit Leuven) is a Catholic research university in the city of Leuven, Leuven, Belgium. Founded in 1425, it is the oldest university in Belgium and the oldest university in the Low Countries.
In addition to its mai ...
(Belgium),
Massachusetts Institute of Technology
The Massachusetts Institute of Technology (MIT) is a Private university, private research university in Cambridge, Massachusetts, United States. Established in 1861, MIT has played a significant role in the development of many areas of moder ...
(MIT),
Stanford University
Leland Stanford Junior University, commonly referred to as Stanford University, is a Private university, private research university in Stanford, California, United States. It was founded in 1885 by railroad magnate Leland Stanford (the eighth ...
,
Technical University of Munich
The Technical University of Munich (TUM or TU Munich; ) is a public research university in Munich, Bavaria, Germany. It specializes in engineering, technology, medicine, and applied and natural sciences.
Established in 1868 by King Ludwig II ...
(Germany),
University of California, Berkeley
The University of California, Berkeley (UC Berkeley, Berkeley, Cal, or California), is a Public university, public Land-grant university, land-grant research university in Berkeley, California, United States. Founded in 1868 and named after t ...
,
University of Pennsylvania
The University of Pennsylvania (Penn or UPenn) is a Private university, private Ivy League research university in Philadelphia, Pennsylvania, United States. One of nine colonial colleges, it was chartered in 1755 through the efforts of f ...
,
University of Southern California
The University of Southern California (USC, SC, or Southern Cal) is a Private university, private research university in Los Angeles, California, United States. Founded in 1880 by Robert M. Widney, it is the oldest private research university in ...
(USC), and
University of Tokyo
The University of Tokyo (, abbreviated as in Japanese and UTokyo in English) is a public research university in Bunkyō, Tokyo, Japan. Founded in 1877 as the nation's first modern university by the merger of several pre-westernisation era ins ...
(Japan). This, combined with Willow Garage's highly successful internship program (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, the first autonomous car running ROS, and the adaption of ROS for
Lego Mindstorms
Lego Mindstorms (sometimes stylized as ''LEGO MINDSTORMS'') is a discontinued line of educational kits for building programmable robots based on Lego bricks. It was introduced on 1 September 1998 and discontinued on 31 December 2022.
Mindstor ...
. With the PR2 Beta program well underway, the PR2 robot was officially released for commercial purchase on 9 September 2010.

2011 was a banner year for ROS with the launch of ROS Answers, a Q/A forum for ROS users, on 15 February; the introduction of the highly successful
TurtleBot robot kit on 18 April; and the total number of ROS repositories passing 100 on 5 May. Willow Garage began 2012 by creating the
Open Source Robotics Foundation (OSRF) in April. The OSRF was immediately awarded a software contract by the
Defense Advanced Research Projects Agency
The Defense Advanced Research Projects Agency (DARPA) is a research and development agency of the United States Department of Defense responsible for the development of emerging technologies for use by the military. Originally known as the Adva ...
(DARPA). Later that year, the first ROSCon was held in St. Paul, Minnesota, the first book on ROS, ''ROS By Example'', was published, and
Baxter, the first commercial robot to run ROS, was announced by
Rethink Robotics
Rethink Robotics (formerly Heartland Robotics, Inc.) is a robotics company co-founded by Rodney Brooks and Ann Whittaker in 2008. In 2018 the assets of Rethink Robotics were bought by the German automation specialist Hahn Group, HAHN Group. In 202 ...
. Soon after passing its fifth anniversary in November, ROS began running on every continent on 3 December 2012.
In February 2013, the OSRF became the primary software maintainers for ROS, foreshadowing the announcement in August that Willow Garage would be absorbed by its founders,
Suitable Technologies. At this point, ROS had released seven major versions (up to ROS Groovy),
and had users all over the globe. This chapter of ROS development would be finalized when
Clearpath Robotics took over support responsibilities for PR2 in early 2014.
OSRF and Open Robotics (2013–present)
In the years since OSRF took over the primary development of ROS, a new version has been released every year,
while interest in ROS continues to grow. ROSCons have occurred every year since 2012, co-located with either
ICRA or
IROS, two flagship robotics conferences. Meetups of ROS developers have been organized in a variety of countries, a number of ROS books have been published, and many educational programs initiated. On 1 September 2014,
NASA
The National Aeronautics and Space Administration (NASA ) is an independent agencies of the United States government, independent agency of the federal government of the United States, US federal government responsible for the United States ...
announced the first robot to run ROS in space:
Robotnaut 2, on the
International Space Station
The International Space Station (ISS) is a large space station that was Assembly of the International Space Station, assembled and is maintained in low Earth orbit by a collaboration of five space agencies and their contractors: NASA (United ...
. In 2017, the OSRF changed its name to
Open Robotics. Tech giants
Amazon
Amazon most often refers to:
* Amazon River, in South America
* Amazon rainforest, a rainforest covering most of the Amazon basin
* Amazon (company), an American multinational technology company
* Amazons, a tribe of female warriors in Greek myth ...
and
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
began to take an interest in ROS during this time, with Microsoft porting core ROS to Windows in September 2018, followed by Amazon Web Services releasing RoboMaker in November 2018.
Perhaps the most important development of the OSRF/Open Robotics years thus far (not to discount the explosion of robot platforms that began to support ROS or the enormous improvements in each ROS version) was the proposal of ROS 2, a significant API change to ROS which is intended to support
real-time programming, a wider variety of computing environments, and more modern technology. ROS 2 was announced at ROSCon 2014, the first commits to the repository were made in February 2015, followed by alpha releases in August 2015.
The first distribution release of ROS 2, Ardent Apalone, was released on 8 December 2017,
ushering in a new era of next-generation ROS development.
Design
Philosophy

ROS was designed to be open source, intending that users would be able to choose the configuration of tools and libraries that interacted with the core of ROS so that users could shift their software stacks to fit their robot and application area. As such, there is very little which is core to ROS, beyond the general structure within which programs must exist and communicate. In one sense, ROS is the underlying plumbing behind nodes and message passing. However, in reality, ROS is not only plumbing, but a rich and mature set of tools, a wide-ranging set of robot-agnostic abilities provided by packages, and a greater ecosystem of additions to ROS.
Computation graph model
ROS processes are represented as nodes in a graph structure, connected by edges called topics.
ROS nodes can pass messages to one another through topics, make service calls to other nodes, provide a service for other nodes, or set or retrieve shared data from a communal database called the parameter server. A process called the ROS1 Master
makes all of this possible by registering nodes to themselves, setting up node-to-node communication for topics, and controlling parameter server updates. Messages and service calls do not pass through the master, rather the master sets up peer-to-peer communication between all node processes after they register themselves with the master. This decentralized architecture lends itself well to robots, which often consist of a subset of networked computer hardware, and may communicate with off-board computers for heavy computing or commands.
Nodes
A node represents one process running the ROS graph. Every node has a name, which registers with the ROS1 master before it can take any other actions. Multiple nodes with different names can exist under different
namespace
In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified.
Namespaces ...
s, or a node can be defined as anonymous, in which case it will randomly generate an additional identifier to add to its given name. Nodes are at the center of ROS programming, as most ROS client code is in the form of a ROS node which takes actions based on information received from other nodes, sends information to other nodes, or sends and receives requests for actions to and from other nodes.
Topics
Topics are named
buses
A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a motor vehicle that carries significantly more passengers than an average car or van, but fewer than the average rail transport. It is most commonly used ...
over which nodes send and receive messages. Topic names must be unique within their namespace as well. To send messages to a topic, a node must publish to said topic, while to receive messages it must subscribe. The publish/subscribe model is anonymous: no node knows which nodes are sending or receiving on a topic, only that it is sending/receiving on that topic. The types of messages passed on a topic vary widely and can be user-defined. The content of these messages can be sensor data, motor control commands, state information, actuator commands, or anything else.
Services
A node may also advertise services.
A service represents an action that a node can take which will have a single result. As such, services are often used for actions that have a defined start and end, such as capturing a one-frame image, rather than processing velocity commands to a wheel motor or odometer data from a wheel encoder. Nodes advertise services and call services from one another.
Parameter server
The parameter server
is a database shared between nodes which allows for communal access to static or semi-static information. Data that does not change frequently and as such will be infrequently accessed, such as the distance between two fixed points in the environment, or the weight of the robot, are good candidates for storage in the parameter server.
Tools
ROS's core functionality is augmented by a variety of tools that allow developers to visualize and record data, easily navigate the ROS package structures, and create scripts automating complex configuration and setup processes. The addition of these tools greatly increases the abilities of systems using ROS by simplifying and providing solutions to several common robotics development problems. These tools are provided in packages like any other algorithm, but rather than providing implementations of hardware drivers or algorithms for various robotic tasks, these packages provide task and robot-agnostic tools that come with the core of most modern ROS installations.
(Robot Visualization tool) is a three-dimensional visualizer used to visualize robots, the environments they work in, and sensor data. It is a highly configurable tool, with many different types of visualizations and plugins. Unified Robot Description Format (
URDF) is an
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
file format for robot model description.
is a command line tool used to record and playback ROS message data. uses a file format called bags, which log ROS messages by listening to topics and recording messages as they come in. Playing messages back from a bag is largely the same as having the original nodes that produced the data in the ROS computation graph, making bags a useful tool for recording data to be used in later development. While is a command line only tool, provides a GUI interface to .
catkin
catkin is the ROS build system, having replaced as of ROS Groovy. catkin is based on
CMake and is similarly cross-platform, open-source, and language-independent.
The package provides a suite of tools which augment the functionality of the
bash shell. These tools include , , and , which replicate the functionalities of
ls,
cd, and
cp respectively. The ROS versions of these tools allow users to use package names in place of the file path where the package is located. The package also adds tab-completion to most ROS utilities and includes rosed, which edits a given file with the chosen default text editor, as well , which runs executables in ROS packages. supports the same functionalities for
zsh and
tcsh
tcsh ( “tee-see-shell”, “tee-shell”, or as “tee see ess aitch”, tcsh) is a Unix shell based on and backward compatible with the C shell (csh).
Shell
It is essentially the C shell with programmable command-line completion, command- ...
, to a lesser extent.
is a tool used to launch multiple ROS nodes both locally and remotely, as well as setting parameters on the ROS parameter server. configuration files, which are written using
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
can easily automate a complex startup and configuration process into a single command. scripts can include other scripts, launch nodes on specific machines, and even restart processes that die during execution.
Packages of note
ROS contains many open-source implementations of common robotics functionality and algorithms. These open-source implementations are organized into packages. Many packages are included as part of ROS distributions, while others may be developed by individuals and distributed through code-sharing sites such as . Some packages of note include:
Systems and tools
* ' provides a standardized interface for interfacing with preemptable tasks.
* ' provides a way to run multiple algorithms in a single process.
* ' provides a JSON API to ROS functionalities for non-ROS programs.
Mapping and localization
* ''slam toolbox'' provides full 2D SLAM and localization system.
* ' provides a wrapper for
OpenSlam's Gmapping algorithm for
simultaneous localization and mapping
Simultaneous localization and mapping (SLAM) is the computational problem of constructing or updating a map of an unknown environment while simultaneously keeping track of an Intelligent agent, agent's location within it. While this initially ap ...
.
* ''cartographer'' provides real time 2D and 3D SLAM algorithms developed at
Google
Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
.
* ' provides an implementation of
adaptive Monte-Carlo localization.
Navigation
* ''navigation'' provides the capability of navigating a mobile robot in a planar environment.
Manipulation
* ''MoveIt!'' provides motion planning capabilities for
robot manipulators. Its default planning library is th
Open Motion Planning Library (OMPL)
Perception
* ' is a meta-package which provides packages for integrating ROS with
OpenCV
OpenCV (Open Source Computer Vision Library) is a Library (computing), library of programming functions mainly for Real-time computing, real-time computer vision. Originally developed by Intel, it was later supported by Willow Garage, then Itseez ...
.
Coordinate frame representation
* ' provided a system for representing, tracking and transforming coordinate frames until ROS Hydro, when it was deprecated in favor of .
* ' is the second generation of the library, and provides the same abilities for ROS versions after Hydro.
Simulation
* ' is a meta-package which provides packages for integrating ROS with the
Gazebo
A gazebo is a pavilion structure, sometimes octagonal or Gun turret, turret-shaped, often built in a park, garden, or spacious public area. Some are used on occasions as bandstands.
In British English, the word is also used for a tent-like can ...
simulator.
* ''stage'' provides an interface for the 2D
Stage simulator.
Versions and releases
ROS releases may be incompatible with other releases and are often referred to by code name rather than version number. ROS 2 currently releases a version every year in May, following the release of Ubuntu LTS versions. These releases are alternating supported for 5 years (even years/LTS Ubuntu version release) and 1.5 years (uneven years/no LTS Ubuntu version release). ROS 1 does not see any new version. Aside from this, there has been the ROS-Industrial or ROS-I derivate project since at least 2012.
ROS 1
ROS 2
ROS-Industrial
ROS-Industrial is an open-source project (BSD (legacy)/Apache 2.0 (preferred) license) that extends the advanced abilities of ROS to manufacturing automation and robotics. In the industrial environment, there are two different approaches to programming a robot: either through an external proprietary controller, typically implemented using ROS, or via the respective native programming language of the robot. ROS can therefore be seen as the software-based approach to programming industrial robots instead of the classic robot controller-based approach.
The ROS-Industrial repository includes interfaces for common industrial manipulators, grippers, sensors, and device networks. It also provides software libraries for automatic 2D/3D sensor calibration, process path/motion planning, applications like Scan-N-Plan, developer tools like the Qt Creator ROS Plugin, and training curricula that are specific to the needs of manufacturers. ROS-I is supported by an international Consortium of industry and research members. The project began as a collaborative endeavor between Yaskawa Motoman Robotics, Southwest Research Institute, and Willow Garage to support the use of ROS for manufacturing automation, with the GitHub repository being founded in January 2012 by Shaun Edwards (SwRI). Currently, the Consortium is divided into three groups; the ROS-Industrial Consortium Americas (led by SwRI and located in San Antonio, Texas), the ROS-Industrial Consortium Europe (led by Fraunhofer IPA and located in Stuttgart, Germany), and the ROS-Industrial Consortium Asia Pacific (led by Advanced Remanufacturing and Technology Centre (ARTC) and Nanyang Technological University (NTU) and located in Singapore).
The Consortia supports the global ROS-Industrial community by conducting ROS-I training, providing technical support and setting the future roadmap for ROS-I, as well as conducting pre-competitive joint industry projects to develop new ROS-I abilities.
Space ROS
In November 2020, NASA announced Blue Origin had been selected through the Space Technology Mission Directorate’s Announcement of Collaboration Opportunity (ACO) to co-develop
Space Robot Operating System (Space ROS) together with three NASA centers. The purpose of Space ROS is to provide a reusable and modular software framework for robotic and autonomous space systems predicated on ROS 2 that is compliant to aerospace mission and safety assurance requirements (such as NPR 7150.2 and DO-178C). The project was formulated and led by
Will Chambers, Blue Origin's principal technologist of robotics at the time. In 2021, Blue Origin subcontracted software development workload to Open Robotics who remained on the team until the program ended in 2022. Space ROS is currently an open community project.
PickNik Robotics and Open Source Robotics Foundation currently lead the Space ROS effort.
ROS-compatible robots and hardware
Robots
*
ABB, Adept,
Fanuc
FANUC ( or ; often styled Fanuc) is a Japanese group of companies that provide automation products and services such as robotics and computer numerical control wireless systems. These companies are principally of Japan, Fanuc America Corpora ...
,
Motoman, and
Universal Robots are supported by
ROS-Industrial.
*
Baxter at
Rethink Robotics
Rethink Robotics (formerly Heartland Robotics, Inc.) is a robotics company co-founded by Rodney Brooks and Ann Whittaker in 2008. In 2018 the assets of Rethink Robotics were bought by the German automation specialist Hahn Group, HAHN Group. In 202 ...
, Inc.
*CK-9: robotics development kit by Centauri Robotics, supports ROS.
* GoPiGo3: Raspberry Pi-based educational robot, supports ROS.
*HERB developed at
Carnegie Mellon University
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania, United States. The institution was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools. In 1912, it became the Carnegie Institu ...
in Intel's personal robotics program
* Husky A200: robot developed (and integrated into ROS) by
Clearpath Robotics
* Nao humanoid:
University of Freiburg
The University of Freiburg (colloquially ), officially the Albert Ludwig University of Freiburg (), is a public university, public research university located in Freiburg im Breisgau, Baden-Württemberg, Germany. The university was founded in 1 ...
's Humanoid Robots Lab developed a ROS integration for the
Nao humanoid based on an initial port by Brown University
* PR1: personal robot developed in Ken Salisbury's lab at Stanford
* PR2: personal robot being developed at Willow Garage
* Raven II Surgical Robotic Research Platform
* ROSbot: autonomous robot platform by Husarion
* Shadow Robot Hand: a fully dexterous humanoid hand.
* STAIR I and II: robots developed in
Andrew Ng
Andrew Yan-Tak Ng (; born April 18, 1976) is a British-American computer scientist and Internet Entrepreneur, technology entrepreneur focusing on machine learning and artificial intelligence (AI). Ng was a cofounder and head of Google Brain and ...
's lab at Stanford
* Stretch: an integrated mobile manipulator by Hello Robot targeting assistive applications.
* SummitXL: mobile robot developed by
Robotnik, an engineering company specialized in mobile robots, robotic arms, and industrial solutions with ROS architecture.
* UBR1: developed by Unbounded Robotics, a spin-off of Willow Garage.
*
Webots
Webots is a free and open-source 3D robot simulator used in industry, education and research.
The Webots project started in 1996, initially developed by Dr. Olivier Michel at the Swiss Federal Institute of Technology (EPFL) in Lausanne, Switzerl ...
: robot simulator integrating a complete ROS programming interface.
SBCs and hardware
* BeagleBoard: the robotics lab of the
Katholieke Universiteit Leuven
KU Leuven (Katholieke Universiteit Leuven) is a Catholic research university in the city of Leuven, Belgium. Founded in 1425, it is the oldest university in Belgium and the oldest university in the Low Countries.
In addition to its main camp ...
,
Belgium
Belgium, officially the Kingdom of Belgium, is a country in Northwestern Europe. Situated in a coastal lowland region known as the Low Countries, it is bordered by the Netherlands to the north, Germany to the east, Luxembourg to the southeas ...
has ported ROS to the
Beagleboard.
* Raspberry Pi: image of Ubuntu Mate with ROS by Ubiquity Robotics; installation guide for Raspbian; Installation guide for ROS2 to Raspberry Pi.
*
Sitara ARM Processors have support for the ROS package as part of the official Linux SDK.
See also
*
Open-source hardware
Open-source hardware (OSH, OSHW) consists of physical artifact (software development), artifacts of technology designed and offered by the open-design movement. Both free and open-source software (FOSS) and open-source hardware are created by th ...
*
Open-source software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
*
Robotics middleware
*
List of free and open-source software packages
This is a list of free and open-source software (FOSS) packages, computer software licensed under free software licenses and open-source licenses. Software that fits the Free Software Definition may be more appropriately called free software; ...
References
;Notes
* STAIR: The STanford Artificial Intelligence Robot project,
Andrew Y. Ng, Stephen Gould, Morgan Quigley,
Ashutosh Saxena, Eric Berger. Snowbird, 2008.
Related projects
*
RT middleware – Robot middleware standard/implementations. RT-component is discussed/defined by the
Object Management Group
The Object Management Group (OMG®) is a computer industry Standards Development Organization (SDO), or Voluntary Consensus Standards Body (VCSB). OMG develops enterprise integration and modeling standards for a range of technologies.
Busin ...
.
External links
*
{{Real-time operating systems
2007 in robotics
2007 software
Computer vision software
Free software operating systems
Open Robotics
Open-source robots
Robot operating systems
manipulation
Robotics suites
Software using the BSD license