Robot Operating System

Last updated

Robot Operating System
Original author(s) Willow Garage
Stanford Artificial Intelligence Laboratory
Open Robotics
Initial release2007;17 years ago (2007)
Stable release
Iron Irwini [1] / 23 May 2023;15 months ago (2023-05-23)
Preview release
Jazzy Jalisco (ROS 2) [2]
Repository github.com/ros2/ros2
Written in C++, Python, and Lisp
Operating system Linux, macOS (experimental), Windows 10 (experimental)
Type Robotics suite, OS, library
License Apache 2.0
Website www.ros.org
As ofJune 2023

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. 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.

Contents

Software in the ROS Ecosystem [7] can be separated into three groups:

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] 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

Early days at Stanford (2007 and earlier)

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] robotics laboratory at Stanford, were 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)

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 which 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: 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 their three internal milestones: continuous navigation for the PR2 over a period of 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]

An image of Robot Operating System (ROS) running in Antarctica ROS Antarctica sunset.jpg
An image of Robot Operating System (ROS) running in Antarctica

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) [44] in April. The OSRF was immediately awarded a software contract by the Defense Advanced Research Projects Agency (DARPA). [45] Later that year, the first ROSCon was held in St. Paul, Minnesota, [46] the first book on ROS, ROS By Example, [47] was published, and Baxter, the first commercial robot to run ROS, was announced by Rethink Robotics. [48] Soon after passing its fifth anniversary in November, ROS began running on every continent on 3 December 2012. [49]

In February 2013, the OSRF became the primary software maintainers for ROS, [50] foreshadowing the announcement in August that Willow Garage would be absorbed by its founders, Suitable Technologies. [51] At this point, ROS had released seven major versions (up to ROS Groovy), [52] and had users all over the globe. This chapter of ROS development would be finalized when Clearpath Robotics took over support responsibilities for the PR2 in early 2014. [53]

OSRF and Open Robotics (2013–present)

In the years since OSRF took over primary development of ROS, a new version has been released every year, [52] 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, [54] [55] [56] a number of ROS books have been published, [57] and many educational programs initiated. [58] [59] On 1 September 2014, NASA announced the first robot to run ROS in space: Robotnaut 2, on the International Space Station. [60] In 2017, the OSRF changed its name to Open Robotics. Tech giants Amazon and Microsoft began to take an interest in ROS during this time, with Microsoft porting core ROS to Windows in September 2018, [61] followed by Amazon Web Services releasing RoboMaker in November 2018. [62]

Perhaps the most important development of the OSRF/Open Robotics years thus far (not to discount the explosion of robot platforms which 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. [63] ROS 2 was announced at ROSCon 2014, [64] the first commits to the ros2 repository were made in February 2015, followed by alpha releases in August 2015. [65] The first distribution release of ROS 2, Ardent Apalone, was released on 8 December 2017, [65] ushering in a new era of next-generation ROS development.

Design

Philosophy

An image depicting the ROS equation: Plumbing + Tools + Capabilities + Ecosystem = ROS! Ros Equation.png
An image depicting the ROS equation: Plumbing + Tools + Capabilities + Ecosystem = ROS!

ROS was designed to be open source, intending that users would be able to choose the configuration of tools and libraries which 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 that 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. [66] 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 ROS Master [66] makes all of this possible by registering nodes to itself, 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 it registers with the ROS master before it can take any other actions. Multiple nodes with different names can exist under different namespaces, 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 over which nodes send and receive messages. [67] 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. [68] A service represents an action that a node can take which will have a single result. As such, services are often used for actions which 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 [68] is a database shared between nodes which allows for communal access to static or semi-static information. Data which 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 which 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 a number of 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 which come with the core of most modern ROS installations.

rviz

rviz [69] (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 file format for robot model description.

rosbag

rosbag [70] is a command line tool used to record and playback ROS message data. rosbag uses a file format called bags, [71] 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 which produced the data in the ROS computation graph, making bags a useful tool for recording data to be used in later development. While rosbag is a command line only tool, rqt_bag [72] provides a GUI interface to rosbag.

catkin

catkin [73] is the ROS build system, having replaced rosbuild [74] as of ROS Groovy. catkin is based on CMake, and is similarly cross-platform, open-source, and language-independent.

rosbash

The rosbash [75] package provides a suite of tools which augment the functionality of the bash shell. These tools include rosls, roscd, and roscp, which replicate the functionalities of ls, cd, and cp respectively. The ROS versions of these tools allow users to use ros 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 rosrun, which runs executables in ROS packages. rosbash supports the same functionalities for zsh and tcsh, to a lesser extent.

roslaunch

roslaunch [76] is a tool used to launch multiple ROS nodes both locally and remotely, as well as setting parameters on the ROS parameter server. roslaunch configuration files, which are written using XML can easily automate a complex startup and configuration process into a single command. roslaunch scripts can include other roslaunch scripts, launch nodes on specific machines, and even restart processes which 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 github. Some packages of note include:

Systems and tools

Mapping and localization

Manipulation

Perception

Coordinate frame representation

Simulation

Versions and releases

ROS releases may be incompatible with other releases and are often referred to by code name rather than version number. ROS currently releases a version every year in May, following the release of Ubuntu LTS versions. [92] ROS 2 currently releases a new version every six months (in December and July). These releases are supported for a single year. There are currently two active major versions seeing releases: ROS 1 and ROS 2. Aside to this there is the ROS-Industrial or ROS-I derivate project since at least 2012.

ROS 1

ROS 1 Distribution Releases [52]
DistributionRelease datePosterEOL dateSupport duration
Noetic Ninjemys
(last ROS 1 release)
23 May 2020 Noetic.png Current stable version:May 20255 years
Melodic Morenia23 May 2018 Melodic Morenia.png Old version, no longer maintained: 2023-05-305 years
Lunar Loggerhead23 May 2017 ROS Lunar Loggerhead.png Old version, no longer maintained: 2019-05-302 years
Kinetic Kame23 May 2016 Kinetic.png Old version, no longer maintained: 2021-05-305 years
Jade Turtle23 May 2015 ROS jade logo.png Old version, no longer maintained: 2017-05-302 years
Indigo Igloo22 July 2014 Indigoigloo 600.png Old version, no longer maintained: 2019-04-305 years
Hydro Medusa4 September 2013 ROS Hydro logo.png Old version, no longer maintained: 2014-05-310.5 years
Groovy Galapagos31 December 2012 ROS Groovy logo.jpg Old version, no longer maintained: 2014-07-312 years
Fuerte Turtle23 April 2012 ROS Fuerte logo.jpg Old version, no longer maintained: --
Electric Emys30 August 2011 ROS Electric logo.png Old version, no longer maintained: --
Diamondback2 March 2011 ROS Diamondback logo.jpg Old version, no longer maintained: --
C Turtle2 August 2010 ROS C logo.jpg Old version, no longer maintained: --
Box Turtle2 March 2010 ROS Box logo.png Old version, no longer maintained: --
(Initial Release)2007n/aOld version, no longer maintained: --n/a
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

ROS 2

ROS 2 Distribution Releases [65] [93]
DistributionRelease datePosterEOL dateSupport duration
Rolling Ridley [94] [95]
(rolling release with latest features)
progressing since
June 2020
ROS2 Rolling Ridley poster.png N/AN/A
Kilted Kaiju [96] 23 May 2025TBDFuture release: November 20261.5 years
Jazzy Jalisco23 May 2024 [96] ROS2 Jazzy Jalisco poster.png Current stable version:May 20295 years
Iron Irwini23 May 2023 [97] ROS2 Iron Irwini poster.png Older version, yet still maintained: November 20241.5 years
Humble Hawksbill23 May 2022 [98] ROS2 Humble Hawksbill poster.png Older version, yet still maintained: May 20275 years
Galactic Geochelone23 May 2021 [99] ROS2 Galactic Geochelone poster.jpg Old version, no longer maintained: December 20221.5 years
Foxy Fitzroy5 June 2020 [100] ROS2 Foxy Fitzroy poster.png Old version, no longer maintained: June 20233 years
Eloquent Elusor22 November 2019 Logo for ROS 2 release "eloquent elusor".png Old version, no longer maintained: November 20201 year
Dashing Diademata31 May 2019 Logo for ROS 2 release "dashing diademata".png Old version, no longer maintained: May 20212 years
Crystal Clemmys14 December 2018 ROS Crystal Logo.png Old version, no longer maintained: December 20191 year
Bouncy Bolson2 July 2018 ROS Bouncy Logo.png Old version, no longer maintained: July 20191 year
Ardent Apalone8 December 2017 ROS Ardent Logo.png Old version, no longer maintained: December 20181 year
beta313 September 2017N/AOld version, no longer maintained: December 20174 months
beta25 July 2017N/AOld version, no longer maintained: September 20172 months
beta119 December 2016N/AOld version, no longer maintained: July 20177 months
(ROS 2 real-time proposal)7 January 2016 [101] N/AN/AN/A
alpha1 (Anchor) -
alpha8 (Hook-and-Loop) [102]
31 August 2015 -
5 October 2016 [103]
N/AOld version, no longer maintained: December 2016total: 16 months
("Why ROS 2?")20 July 2015 [104] N/AN/AN/A
(batch CI jobs for ROS 2
and http://design.ros2.org)
referenced in Q&A
6 May 2015 [105]
N/AN/AN/A
(first commits to
ROS 2 repository)
February 2015N/AN/AN/A
ROSCon 2014: [106] [107]
"Next-generation ROS: Building on DDS",
"ROS 2.0: Developer preview"
12 September 2014N/AN/AN/A
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

ROS-Industrial

ROS-Industrial [108] 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 program 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 curriculum that is 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 precompetitive joint industry projects to develop new ROS-I abilities. [109]

ROS-compatible robots and hardware

Robots

SBCs and hardware

See also

Related Research Articles

<span class="mw-page-title-main">Package manager</span> Software tools for handling software packages

A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, HLASM, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, PL/I, Prolog, Python, R, Rexx, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

<span class="mw-page-title-main">Inkscape</span> Free open-source vector graphics editor

Inkscape is a free and open-source vector graphics editor for traditional Unix-compatible systems such as GNU/Linux, BSD derivatives and Illumos, as well as Windows and macOS. It offers a rich set of features and is widely used for both artistic and technical illustrations such as cartoons, clip art, logos, typography, diagramming and flowcharting. It uses vector graphics to allow for sharp printouts and renderings at unlimited resolution and is not bound to a fixed number of pixels like raster graphics. Inkscape uses the standardized Scalable Vector Graphics (SVG) file format as its main format, which is supported by many other applications including web browsers. It can import and export various other file formats, including SVG, AI, EPS, PDF, PS and PNG.

<span class="mw-page-title-main">Visual programming language</span> Programming language written graphically by a user

In computing, a visual programming language, also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used either as elements of syntax or secondary notation. For example, many VPLs are based on the idea of "boxes and arrows", where boxes or other screen objects are treated as entities, connected by arrows, lines or arcs which represent relations. VPLs are generally the basis of Low-code development platforms.

In computing, gettext is an internationalization and localization system commonly used for writing multilingual programs on Unix-like computer operating systems. One of the main benefits of gettext is that it separates programming from translating. The most commonly used implementation of gettext is GNU gettext, released by the GNU Project in 1995. The runtime library is libintl. gettext provides an option to use different strings for any number of plural forms of nouns, but this feature has no support for grammatical gender. The main filename extensions used by this system are .POT, .PO and .MO.

<span class="mw-page-title-main">OpenCV</span> Computer vision library

OpenCV is a library of programming functions mainly for real-time computer vision. Originally developed by Intel, it was later supported by Willow Garage, then Itseez. The library is cross-platform and licensed as free and open-source software under Apache License 2. Starting in 2011, OpenCV features GPU acceleration for real-time operations.

<span class="mw-page-title-main">Microsoft Robotics Developer Studio</span>

Microsoft Robotics Developer Studio is a discontinued Windows-based environment for robot control and simulation that was aimed at academic, hobbyist, and commercial developers and handled a wide variety of robot hardware. It requires a Microsoft Windows 7 operating system or later.

A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source or version control, or repository managers. Package managers allow automatically installing and updating repositories, sometimes called "packages".

<span class="mw-page-title-main">Fedora Linux</span> Linux distribution by Fedora Project

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 be on the leading edge of open-source technologies. It is now the upstream source for CentOS Stream and Red Hat Enterprise Linux.

<span class="mw-page-title-main">Robotics simulator</span> Simulator to create applications for physical robots

A robotics simulator is a simulator used to create an application for a physical robot without depending on the physical machine, thus saving cost and time. In some case, such applications can be transferred onto a physical robot without modification.

Robotics middleware is middleware to be used in complex robot control software systems.

<span class="mw-page-title-main">Willow Garage</span> Robotics research and development company

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 System (ROS), which rapidly became a common, standard tool among robotics researchers upon its initial release in 2010. It was begun in late 2006 by Scott Hassan, who had worked with Larry Page and Sergey Brin to develop the technology that became the Google Search engine. Steve Cousins was the president and CEO. Willow Garage was located in Menlo Park, California.

<span class="mw-page-title-main">RT middleware</span>

RT-middleware is a common computing platform technical standard for robots based on distributed object technology. RT-middleware supports the construction of various networked robotic systems by integrating various network-enabled robotic elements named RT-Components, which specification standard is discussed and defined by the Object Management Group (OMG).

<span class="mw-page-title-main">OMPL</span>

OMPL is a software package for computing motion plans using sampling-based algorithms. The content of the library is limited to motion planning algorithms, which means there is no environment specification, no collision detection or visualization. This is intentional as the library is designed to be easily integrated into systems that already provide the additional needed components. For example, OMPL is integrated with ROS and MoveIt!. In 2012 OMPL won the Grand Prize at the Open Source Software World Challenge.

TurtleBot is a personal robot kit with open source software. It was created at Willow Garage by Melonee Wise and Tully Foote in November 2010.

<span class="mw-page-title-main">Cyphal</span>

Cyphal is a lightweight protocol designed for reliable intra-vehicle communications using various communications transports, originally destined for CAN bus, but targeting various network types in subsequent revisions. OpenCyphal is an open-source project that aims to provide MIT-licensed implementations of the Cyphal protocol. The project was known as UAVCAN prior to rebranding in March 2022.

<span class="mw-page-title-main">Clearpath Robotics</span> Company

Clearpath Robotics, Inc. was founded in 2009 by a group of four University of Waterloo graduates, and remains headquartered in Waterloo Region, Canada. The original goal of Clearpath was to streamline field robotics research for universities and private corporations, but the company has since expanded and is now also manufacturing and selling the OTTO line of self-driving vehicles for industrial environments.

Gazebo is an open-source 2D/3D robotics simulator that began development in 2002. In 2017, development forked into two versions, known as "Gazebo", the original monolithic architecture, and "Ignition", which had moved to becoming a modernized collection of loosely coupled libraries. Following a trademark obstacle in 2022 regarding their use of the name "Ignition", Open Robotics took the opportunity to switch the version names, dubbing the original fork "Gazebo Classic" and the new, modern fork "Gazebo".

Open Robotics is a nonprofit corporation headquartered in Mountain View, California. It is the primary maintainer of the Robot Operating System, and the Gazebo simulator. Its stated mission is to support "the development, distribution and adoption of open source software for use in robotics research, education, and product development".

References

  1. "ROS 2 Iron Irwini". ROS.org. Open Robotics. Retrieved 4 June 2023.
  2. "ROS 2 Jazzy Jalisco". ROS.org. Open Robotics. May 2024. Retrieved 4 June 2023.
  3. "ROS/Introduction – ROS Wiki". ROS.org. Open Robotics. Retrieved 30 July 2021.
  4. Kay, Jackie (January 2016). "Proposal for Implementation of Real-time Systems in ROS 2". ROS.org. Open Robotics. Retrieved 23 January 2023.
  5. Kay, Jackie (January 2016). "Realtime Design Guidelines For ROS 2". ROS.org. Open Robotics. Retrieved 23 January 2023.
  6. "ROS 2 For Realtime Applications". ROS.org. Open Robotics. 17 October 2018. Retrieved 22 November 2018.
  7. "Browsing packages for melodic". ROS.org. Open Robotics. Archived from the original on 24 September 2015. Retrieved 21 February 2016.
  8. "Package Summary". ROS.org. Open Robotics. Retrieved 21 February 2016.
  9. "Package SUmmary". ROS.org. Open Robotics. Retrieved 21 February 2016.
  10. "Package Summary". ROS.org. Open Robotics. Retrieved 21 February 2016.
  11. "client libraries". ROS.org. Open Robotics. Retrieved 12 December 2017.
  12. "ROS/Installation – ROS Wiki". ROS.org. Open Robotics. 29 September 2013. Retrieved 12 July 2014.
  13. "rosjava – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  14. "android – ROS Wiki". ROS.org. Open Robotics. 12 April 2014. Retrieved 12 July 2014.
  15. "Robot Operating System (ROS) Support from MATLAB – Hardware Support". Mathworks.com. Retrieved 12 July 2014.
  16. "roslibjs – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  17. 1 2 Guizzo, Evan Ackerman and Erico (7 November 2017). "Wizards of ROS: Willow Garage and the Making of the Robot Operating System". IEEE Spectrum: Technology, Engineering, and Science News. Retrieved 29 April 2019.
  18. Wyrobek, Keenan (31 October 2017). "The Origin Story of ROS, the Linux of Robotics". IEEE Spectrum: Technology, Engineering, and Science News. Retrieved 29 April 2019.
  19. "J. Kenneth Salisbury, Ph.D. | Salisbury Robotics Lab" . Retrieved 29 April 2019.
  20. "Stanford Personal Robotics Program". personalrobotics.stanford.edu. Retrieved 29 April 2019.
  21. "Stanford's Robot Makers". 16 January 2019.
  22. Ng, Andrew; Gould, Stephen; Quigley, Morgan; Saxena, Ashutosh; Berger, Eric (2008). "STAIR: The STanford Artificial Intelligence Robot project". Snowbird Workshop.
  23. "STAIR". stair.Stanford.edu. Retrieved 12 December 2017.
  24. Quigley, Morgan; Berger, Eric; Ng, Andrew Y. (2007), STAIR: Hardware and Software Architecture (PDF), AAAI 2007 Robotics Workshop
  25. Keenan Wyrobek (3 July 2017). "Personal Robotics Program Fund Fundraising Deck from 2006".
  26. "Repository: code". Sourceforge.net. Retrieved 12 December 2017.
  27. "Repositories". ROS.org. Retrieved 7 June 2011.
  28. 1 2 Quigley, Morgan; Gerkey, Brian; Conley, Ken; Faust, Josh; Foote, Tully; Leibs, Jeremy; Berger, Eric; Wheeler, Rob; Ng, Andrew. "ROS: an open-source Robot Operating System" (PDF). Retrieved 3 April 2010.
  29. WillowGaragevideo (19 December 2008), Milestone 1 , retrieved 29 April 2019
  30. "ROS 0.4 Release – ROS robotics news". ROS.org. Open Robotics. Retrieved 29 April 2019.
  31. WillowGaragevideo (2 July 2009), Milestone 2 Explained , retrieved 29 April 2019
  32. "Welcome to ros.org – ROS robotics news". ROS.org. Open Robotics. Retrieved 12 December 2017.
  33. "ROS Tutorials and Turtles – ROS robotics news". ROS.org. Open Robotics. Retrieved 12 December 2017.
  34. "ROS 1.0 – ROS robotics news". ROS.org. Open Robotics. Retrieved 29 April 2019.
  35. "The Results Are In: PR2 Beta Program Recipients!". Willow Garage. Archived from the original on 13 July 2018. Retrieved 29 April 2019.
  36. "Interns and Visiting Scholars". Willow Garage. Retrieved 29 April 2019.
  37. "Robots Using ROS: Penn Quadrotors – ROS robotics news". ROS.org. Open Robotics. Retrieved 12 December 2017.
  38. "Robots Using ROS: Marvin autonomous car (Austin Robot Technology/UT Austin) – ROS robotics news". ROS.org. Open Robotics. Retrieved 12 December 2017.
  39. "Robots Using ROS: Lego NXT – ROS robotics news". ROS.org. Open Robotics. Retrieved 12 December 2017.
  40. "PR2 Robots Available for Purchase".
  41. "Announcing ROS Answers – ROS robotics news". ROS.org. Open Robotics. Retrieved 12 December 2017.
  42. "ROS on the Move: TurtleBots available for preorder". Willow Garage. Retrieved 12 December 2017.
  43. "100 Repositories – ROS robotics news". ROS.org. Open Robotics. Retrieved 12 December 2017.
  44. "Willow Garage Spins Out OSRF". Archived from the original on 6 November 2017. Retrieved 13 October 2017.
  45. "DARPA Awards Simulation Software Contract to Open Source Robotics Foundation".
  46. "Thanks for a great ROSCon 2012! – ROS robotics news". ROS.org. Open Robotics. Retrieved 24 November 2018.
  47. "New Book: ROS by Example – ROS robotics news". ROS.org. Open Robotics. Retrieved 24 November 2018.
  48. "Rethink ROS – ROS robotics news". ROS.org. Open Robotics. Retrieved 24 November 2018.
  49. "ROS: Five Years – ROS robotics news". ROS.org. Open Robotics. Retrieved 24 November 2018.
  50. "Osrf – Ros @ Osrf". Osrfoundation.org. 11 February 2013. Retrieved 12 July 2014.
  51. "employees join Suitable Technologies". Willow Garage. Archived from the original on 8 October 2017. Retrieved 12 July 2014.
  52. 1 2 3 "Distributions – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  53. "Clearpath Welcomes PR2 to the Family". 15 January 2014.
  54. "Notes from the first Korean ROS Users Meetup – ROS robotics news". ROS.org. Open Robotics. Retrieved 30 July 2021.
  55. "First Danish ROS Meetup".
  56. "First Ukrainian ROS Meetup".
  57. "Programming Robots with ROS: A Practical Introduction to the Robot Operating System". OReilly.com. Retrieved 12 December 2017.
  58. "Report from first ROS Summer School in China – ROS robotics news". ROS.org. Open Robotics. Retrieved 24 November 2018.
  59. "ROS Robot Ignite Academy".
  60. "ROS running on ISS – ROS robotics news". ROS.org. Open Robotics. Retrieved 12 December 2017.
  61. "Summary". ros-win.visualstudio.com. Retrieved 29 April 2019.
  62. "Announcing AWS RoboMaker". Amazon Web Services, Inc. Retrieved 29 April 2019.
  63. "Why ROS 2?". ROS.org. Open Robotics. Retrieved 29 April 2019.
  64. "ROS 2 Overview". ROS.org. Open Robotics. Retrieved 21 September 2021.
  65. 1 2 3 "ROS 2 Distributions". ROS.org. Open Robotics. Retrieved 21 September 2021.
  66. 1 2 "ROS/Tutorials/UnderstandingNodes – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  67. "ROS/Tutorials/UnderstandingTopics – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  68. 1 2 "ROS/Tutorials/UnderstandingServicesParams – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  69. "rviz – ROS Wiki". ROS.org. Open Robotics. Retrieved 23 April 2019.
  70. "rosbag – ROS Wiki". ROS.org. Open Robotics. Retrieved 23 April 2019.
  71. "Bags – ROS Wiki". ROS.org. Open Robotics. Retrieved 23 April 2019.
  72. "rqt_bag – ROS Wiki". ROS.org. Open Robotics. Retrieved 23 April 2019.
  73. "catkin – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  74. "rosbuild – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  75. "rosbash – ROS Wiki". ROS.org. Open Robotics. Retrieved 23 April 2019.
  76. "roslaunch – ROS Wiki". ROS.org. Open Robotics. Retrieved 23 April 2019.
  77. "actionlib – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  78. "nodelet – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  79. "rosbridge_suite – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  80. "slam_toolbox – ROS Wiki". ROS.org. Open Robotics. Retrieved 11 February 2020.
  81. "gmapping – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  82. "cartographer – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  83. "amcl – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  84. "navigation – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  85. "MoveIt Motion Planning Framework". ROS MoveIt!.
  86. "MoveIt Documentation: Rolling".
  87. "vision_opencv – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  88. "tf – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  89. "tf2 – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  90. "gazebo_ros_pkgs – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  91. "stage – ROS Wiki". ROS.org. Open Robotics. Retrieved 29 April 2019.
  92. "ROS Release Schedule Changes". 9 May 2018.
  93. "REP 2000 – ROS 2 Releases and Target Platforms". ROS.org. Open Robotics. Retrieved 20 February 2021.
  94. "ROS 2 Rolling Ridley (codename 'rolling'; June 2020) – ROS 2 Documentation: Foxy documentation". ROS.org. Open Robotics. Retrieved 30 July 2021.
  95. "ROS 2 rolling distribution name brainstorming". ROS.org. Open Robotics. 15 June 2020. Retrieved 30 July 2021.
  96. 1 2 "ROS 2 Jazzy Jalisco Released!". 23 May 2024.
  97. "ROS 2 Iron Irwini Released!". 23 May 2023.
  98. "ROS 2 Humble Hawksbill Released!". 23 May 2022.
  99. "ROS Galactic Geochelone Released". 23 May 2021. Retrieved 10 July 2021.
  100. "ROS Foxy Fitzroy Released". 5 June 2020. Retrieved 24 June 2020.
  101. "ROS 2 design". GitHub . 29 January 2022.
  102. "ROS 2 alpha releases (Aug 2015 – Oct 2016) – ROS 2 Documentation: Foxy documentation".
  103. "ROS 2 alpha8". 5 October 2016.
  104. "Why ROS 2?".
  105. "Is there a release date of ros 2 or more informations about it? – ROS Answers: Open Source Q&A Forum".
  106. "Program | ROSCon 2014".
  107. "Home · ros2-wiki".
  108. "ROS-Industrial About". rosindustrial.org. Retrieved 12 December 2017.
  109. "Brief History". ROS-Industrial. Retrieved 11 July 2018.
  110. "Home". ROS-Industrial. Retrieved 12 December 2017.
  111. "Baxter Research Robots Q&A | Rethink Robotics". 24 July 2014. Archived from the original on 24 July 2014. Retrieved 30 July 2021.
  112. "CK-9 | Centauri Robotics". centaurirobotics.in. Retrieved 30 July 2021.
  113. "Robots/gopigo3 – ROS Wiki". ROS.org. Open Robotics. Retrieved 30 July 2021.
  114. "CMU Personal Robotics Lab". personalrobotics.Intel-Research.net. Retrieved 12 December 2017.
  115. "Husky UGV – Outdoor Field Research Robot by Clearpath". ClearPathRobotics.com. Retrieved 12 December 2017.
  116. "nao – ROS Wiki". ROS.org. Open Robotics. 28 October 2013. Retrieved 12 July 2014.
  117. "Welcome to the Humanoid Robots Lab at the University of Bonn!". Humanoid Robots Lab – University of Bonn. Retrieved 30 July 2021.
  118. "Brown University Robotics". 28 January 2013. Archived from the original on 28 January 2013. Retrieved 30 July 2021.
  119. "[ros-users] ROS NAO Driver". 29 October 2013. Archived from the original on 29 October 2013. Retrieved 30 July 2021.
  120. "Stanford Personal Robotics Program". personalrobotics.Stanford.edu. Retrieved 12 December 2017.
  121. "Featured". Willow Garage. 20 June 2010. Archived from the original on 20 June 2010. Retrieved 30 July 2021.
  122. B. Hannaford, J. Rosen, Diana CW Friedman, H. King, P. Roan, L. Cheng, D. Glozman, J. Ma, S.N. Kosari, L. White, 'Raven-II: AN Open Platform for Surgical Robotics Research,' IEEE Transactions on Biomedical Engineering, vol. 60, pp. 954-959, April 2013.
  123. "BioRobotics Laboratory | Biorobotics Laboratory – University of Washington". Brl.ee.washington.edu. Archived from the original on 14 July 2014. Retrieved 12 July 2014.
  124. "ROSbot 2.0 & ROSbot 2.0 PRO · Husarion Docs". husarion.com. Retrieved 30 July 2021.
  125. "Dexterous Hand Series – Shadow Robot Company" . Retrieved 30 July 2021.
  126. "STAIR". stair.stanford.edu. Retrieved 30 July 2021.
  127. "Hello Robot".
  128. "This Robot Could Be The Key To Empowering People With Disabilities".
  129. "Summit XL – Robotnik". Robotnik.es. Retrieved 12 July 2014.
  130. "Specification". Unbounded Robotics. Archived from the original on 28 April 2015. Retrieved 12 July 2014.
  131. Ackerman, Evan (21 October 2013). "UBR-1 Robot From Unbounded Robotics Revolutionizes Affordable Mobile Manipulation". IEEE Spectrum. Retrieved 12 July 2014.
  132. "Using ROS with Webots" . Retrieved 18 May 2018.
  133. "Koen Buys". 29 October 2013. Archived from the original on 29 October 2013. Retrieved 30 July 2021.
  134. "Ubiquity Robotics Downloads" . Retrieved 29 January 2018.
  135. "ROSberryPi/Installing ROS Kinetic on the Raspberry Pi" . Retrieved 29 January 2018.
  136. "5.3.6. ROS and Radar – Processor SDK Linux Documentation". software-dl.ti.com. Retrieved 1 May 2020.
Notes