Robot Operating System: Difference between revisions

Content deleted Content added
 
(157 intermediate revisions by 85 users not shown)
Line 1:
{{Short description|Set of software frameworks for robot software development}}
{{Use dmy dates|date=March 2014}}
{{Infobox software
| name =
| logo = Ros_logo.svg
| logo alt = A minimalistic logotype consisting of nine dots arranged in the three-by-three grid and "ROS" to the right. All elements of the dark shade of blue.
| logo size = 300px
| logo caption = Robot Operating System Logo
| screenshot = Cart_pushing_rviz_holonomic.jpg
| caption = Cart pushing simulation in RVIZ
| author = [[Willow Garage]]<br/>[[Stanford Artificial Intelligence Laboratory]]<br/>[[Open Robotics]]
| released = {{Start date and age|2007}}
| latest release version = MelodicJazzy Jalisco Morenia<ref>{{cite web |url=https://wikidocs.ros.org/melodicen/jazzy/Releases.html |title=ROS Melodic2 MoreniaJazzy Jalisco |publisherwebsite=wiki.rosROS.org |datepublisher=Open Robotics |accessdateaccess-date=20182025-0602-1025}}</ref>
| latest release date = {{Start date and age|df=yes|20182024|05|2327}}
| latest preview version = Kilted Kaiju (ROS 2)<ref name="jazzy">{{cite web |url=https://docs.ros.org/en/jazzy/Releases/Release-Kilted-Kaiju.html |title=ROS 2 Kilted Kaiju |date=May 2025 |website=ROS.org |publisher=Open Robotics |access-date=2025-02-25}}</ref>
| operating system = [[Linux]], [[MacOS]] (experimental), [[Windows 10]] (experimental)
| operating system = [[Linux]], [[macOS]] (experimental), [[Windows 10]] (experimental)
| genre = [[Robotics suite]], [[operating system|OS]], [[library (computing)|library]]
| genre = [[Robotics suite]], [[operating system|OS]], [[Library (computing)|library]]
| license = [[BSD license]]
| license = [[Apache License 2.0|Apache 2.0]]
| website = {{URL|www.ros.org}}
| AsOf = February 2025
| programming_language = [[C++]], [[Python (programming language)|Python]], or [[Lisp (programming language)|Lisp]]
| repo = {{URL|https://github.com/ros2/ros2}}
| programming language = [[C++]], [[Python (programming language)|Python]], and [[Lisp (programming language)|Lisp]]
}}
'''Robot Operating System''' ('''ROS''' or '''ros''') is an [[Open-source software|open-source]] [[robotics middleware]] (i.esuite. collectionAlthough ROS is not an [[operating system]] (OS) but a set of [[software framework]]s for [[robot software]] [[software development).| Although ROS is not an [[operating systemdevelopment]], it provides services designed for a heterogeneous [[computer cluster]] such as [[hardware abstraction]], low-level [[Device driver|device control]], implementation of commonly used functionality, [[Inter-process communication|message-passing between processes]], and [[Package manager|package management]]. Running sets of ROS-based processes are represented in a [[graph theory|graph]] architecture where processing takes place in nodes that may receive, post, and [[Multiplexing|multiplex]] sensor data, control, state, planning, actuator, and other messages. Despite the importance of reactivity and [[low latency]] in robot control, ROS itself is ''not'' a [[Realreal-time operating system|real-time OS]] (RTOS). ItHowever, it is possible, however, to integrate ROS with [[real-time computing]] code.<ref>{{Cite web|title=ROS-/Introduction – ROS Wiki|url=http://wiki.ros.org/ROS/Introduction|access-date=2021-07-30|website=ROS.org|publisher=Open Robotics}}</ref> The lack of support for real-time systems has been addressed in the creation of ROS 2.0,<ref>{{cite web|last1last=Kay|first1first=Jackie|date=January 2016|title=Proposal for Implementation of Real-time Systems in ROS 2|url=http://design.ros2.org/articles/realtime_proposal.html|website=ROS.org|publisher=Open Robotics|access-date=1623 AugustJanuary 20162023}}</ref><ref>{{cite web|last1last=Kay|first1first=Jackie|date=January 2016|title=Realtime Design Guidelines For ROS 2|url=http://design.ros2.org/articles/realtime_background.html#design-guidelines-for-ros-2|website=design.ROS2ROS.org|publisher=ROS2Open Robotics|access-date=2223 NovemberJanuary 20182023}}</ref><ref>{{cite web|title=ROS 2 For Realtime Applications|url=https://discourse.ros.org/t/ros2-for-real-time-applications/6493|website=discourse.ROS.org|publisher=ROSOpen Robotics|date=17 October 2018|access-date=22 November 2018}}</ref>, a major revision of the ROS API which will take advantage of modern libraries and technologies for core ROS functionalityfunctions and add support for real-time code and [[Embeddedembedded system|embedded]] hardware]].
 
Software in the ROS [[Software ecosystem|Ecosystem]]<ref>{{cite web|url=http://www.ros.org/browse/list.php|title=Browsing packages for melodic|last=|first=|date=|website=ROS.org|publisher=ROSOpen Robotics|archiveaccess-urldate=21 February 2016|archive-date=24 September 2015|deadarchive-url=https://web.archive.org/web/20150924092030/http://www.ros.org/browse/list.php|accessurl-datestatus=21 February 2016dead}}</ref> 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 {{Not a typo|roscpp}},<ref>{{cite web|title=Package Summary|url=http://wiki.ros.org/roscpp|website=ROS.org|publisher=ROSOpen Robotics|accessdateaccess-date=21 February 2016}}</ref> {{Not a typo|rospy}},<ref>{{cite web|title=Package SUmmary|url=http://wiki.ros.org/rospy|website=ROS.org|publisher=ROSOpen Robotics|accessdateaccess-date=21 February 2016}}</ref> and {{Not a typo|roslisp}};<ref>{{cite web|title=Package Summary|url=http://wiki.ros.org/roslisp|website=ROS.org|publisher=ROSOpen Robotics|access-date=21 February 2016}}</ref>
* packages containing application-related code whichthat uses one or more ROS client libraries.<ref>{{cite web|url=http://wiki.ros.org/Client%20Libraries|title=client libraries|website=ROS.org|publisher=Open Robotics|access-date=12 December 2017}}</ref>
Both the language-independent tools and the main client libraries ([[C++]], [[Python (programming language)|Python]], and [[Lisp (programming language)|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 license|open -source licenses]]. These other packages implement commonly used functionality and applications such as hardware drivers, robot models, datatypes, planning, [[Robotic sensing|perception]], [[simultaneous localization and mapping]] (SLAM), [[Robotics simulator|simulation tools]], and other algorithms[[algorithm]]s.
 
The main ROS client libraries are geared toward a [[Unix-like]] system, primarilymostly because of their dependence on large collectionssets of open-source software dependencies. For these client libraries, [[Ubuntu (operating system)|Ubuntu Linux]] is listed as "Supported" while other variants such as [[Fedora (operating system)|Fedora Linux]], [[macOS]], and [[Microsoft Windows]] are designated "experimental" and are supported by the community.<ref>{{cite web|url=http://wiki.ros.org/ROS/Installation |title=ROS/Installation – ROS Wiki |publisherwebsite=Wiki.rosROS.org |publisher=Open Robotics |date=2013-09-29 |accessdateaccess-date=2014-07-12}}</ref> The native Java ROS client library, {{Not a typo|rosjava}},<ref>{{Cite web|url=http://wiki.ros.org/rosjava|title=rosjava – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref>, however, does not share these limitations and has enabled ROS-based software to be written for the [[Android (operating system)|Android OS]].<ref>{{cite web|url=http://wiki.ros.org/android |title=android – ROS Wiki |publisherwebsite=Wiki.rosROS.org |publisher=Open Robotics |date=2014-04-12 |accessdateaccess-date=2014-07-12}}</ref> {{Not a typo|rosjava}} has also enabled ROS to be integrated into an officially supported [[MATLAB]] toolbox which can be used on [[Linux]], [[macOS]], and Microsoft Windows.<ref>{{cite web|url=http://www.mathworks.com/hardware-support/robot-operating-system.html |title=Robot Operating System (ROS) Support from MATLAB – Hardware Support |publisher=Mathworks.com |access-date= |accessdate=2014-07-12}}</ref> A [[JavaScript]] client library, {{Not a typo|roslibjs}}<ref>{{Cite web|url=http://wiki.ros.org/roslibjs|title=roslibjs – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> 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 were beginning to comebegan togethercoalescing at [[Stanford University]].<ref name=":0">{{Cite web|url=https://spectrum.ieee.org/automaton/robotics/robotics-software/wizards-of-ros-willow-garage-and-the-making-of-the-robot-operating-system|title=Wizards of ROS: Willow Garage and the Making of the Robot Operating System|last=Guizzo|first=Evan Ackerman and Erico|date=2017-11-07|website=IEEE Spectrum: Technology, Engineering, and Science News|language=en|access-date=2019-04-29}}</ref><ref>{{Cite web|url=https://spectrum.ieee.org/automaton/robotics/robotics-software/the-origin-story-of-ros-the-linux-of-robotics|title=The Origin Story of ROS, the Linux of Robotics|last=Wyrobek|first=Keenan|date=2017-10-31|website=IEEE Spectrum: Technology, Engineering, and Science News|language=en|access-date=2019-04-29}}</ref> [[Eric Berger (engineer)|Eric Berger]] and [[Keenan Wyrobek]], PhD students working in [[Kenneth Sailsbury]]Salisbury's<ref>{{Cite web|url=https://www.stanford.edu/group/sailsbury_robotx/cgi-bin/salisbury_lab/?page_id=1217|title=J. Kenneth Salisbury, Ph.D. {{!}} Salisbury Robotics Lab|language=en-US|access-date=2019-04-29}}</ref> roboticsThe Robotics laboratory at Stanford, werewas leading the Personal Robotics Program.<ref>{{Cite web|url=http://personalrobotics.stanford.edu/|title=Stanford Personal Robotics Program|website=personalrobotics.stanford.edu|access-date=2019-04-29}}</ref> 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"something that didn’t suck, in all of those different dimensions”dimensions".<ref name=":0" />
 
In their first steps towards this unifying system, the two buildbuilt the [[PR1 (robot)|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 STAIRSTanford Artificial Intelligence Robot (STAIR)<ref>{{cite web|url=https://news.stanford.edu/2019/01/16/stanfords-robot-makers-andrew-ng/ |title=Stanford's Robot Makers |date=16 January 2019}}</ref><ref>{{cite web|url=http://stair.stanford.edu/papers.php |title=STAIR: The STanford Artificial Intelligence Robot) project |year=2008 |publisher=Snowbird Workshop|last1=Ng|first1=Andrew|first2=Stephen|last2=Gould|first3=Morgan|last3=Quigley|first4=Ashutosh|last4=Saxena|first5=Eric|last5=Berger}}</ref><ref>{{cite web|url=http://stair.stanford.edu/|title=STAIR|website=stair.Stanford.edu|access-date=12 December 2017}}</ref><ref>{{citation|last1=Quigley|first1=Morgan|title=STAIR: Hardware and Software Architecture|url=http://www.aaai.org/Papers/Workshops/2007/WS-07-15/WS07-15-008.pdf|year=2007|publisher=AAAI 2007 Robotics Workshop|last2=Berger|first2=Eric|last3=Ng|first3=Andrew Y.|author3-link=Andrew Ng}}</ref> 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,<ref>{{Cite journalweb|last=Keenan Wyrobek|date=2017-07-03|title=Personal Robotics Program Fund Fundraising Deck from 2006|url=https://www.slideshare.net/KeenanWyrobek/personal-robotics-program-fund-fundraising-deck-from-2006}}</ref>, 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"Linux for robotics”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 the seventh of7 November, 2007.<ref>{{cite web|url=https://sourceforge.net/p/ros/code/10/log/?path=|title=Repository: code|website=Sourceforge.net|access-date=12 December 2017}}</ref>.
 
=== Willow Garage (2007-20132007–2013) ===
[[Willow Garage]] began developing the [[PR2 (robot)|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 whichthat worked with ROS to form a greater software ecosystem.<ref>{{cite web|url=http://www.ros.org/wiki/Repositories|title=Repositories|work=ROS.org|access-date=7 June 2011}}</ref><ref name="Quigley-ROS">{{cite web|url=http://www.robotics.stanford.edu/~ang/papers/icraoss09-ROS.pdf|title=ROS: an open-source Robot Operating System|last1=Quigley|first1=Morgan|last2=Gerkey|first2=Brian|access-date=3 April 2010|last3=Conley|first3=Ken|last4=Faust|first4=Josh|last5=Foote|first5=Tully|last6=Leibs|first6=Jeremy|last7=Berger|first7=Eric|last8=Wheeler|first8=Rob|last9=Ng|first9=Andrew|author-link9=Andrew Ng}}</ref>. The fact thatThat people outside of Willow were contributing to ROS (particularlyespecially from Stanford's STAIR project) meant that ROS was a multi-robot platform from the beginningstart. 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 (software bundle)|LAMP stack]] did for web-based startups.
 
In December 2008, Willow Garage met the first of theirits three internal milestones: continuous navigation for the PR2 over a period of two days and a distance of pi kilometers.<ref>{{Citation|last=WillowGaragevideo|title=Milestone 1|date=2008-12-19|url=https://www.youtube.com/watch?v=iGoqYm7-NkQ|access-date=2019-04-29}}</ref>. Soon after, an early version of ROS (0.4 Mango Tango)<ref>{{Cite web|url=http://www.ros.org/news/2009/02/ros-04-release.html|title=ROS 0.4 Release – ROS robotics news|website=www.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> was released, followed by the first RVIZ documentation and the first paper on ROS.<ref name="Quigley-ROS" />.  In early summer, the second internal milestone: having the PR2 navigate the office, open doors, and plug itself it in, was reached.<ref>{{Citation|last=WillowGaragevideo|title=Milestone 2 Explained|date=2009-07-02|url=https://www.youtube.com/watch?v=I1emTXIzhZw|access-date=2019-04-29}}</ref>. This was followed in August by the initiation of the ROS.org website.<ref>{{cite web|url=http://www.ros.org/news/2009/08/welcome-to-ros-org.html|title=Welcome to ros.org – ROS robotics news|website=www.ROS.org|publisher=Open Robotics|access-date=12 December 2017}}</ref>. Early tutorials on ROS were posted in December,<ref>{{cite web|url=http://www.ros.org/news/2009/12/ros-tutorials-and-turtles.html|title=ROS Tutorials and Turtles – ROS robotics news|website=www.ROS.org|publisher=Open Robotics|access-date=12 December 2017}}</ref>, preparing for the release of ROS 1.0, in January 2010.<ref>{{Cite web|url=http://www.ros.org/news/2010/01/ros-10.html|title=ROS 1.0 – ROS robotics news|website=www.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref>. This was Milestone 3: producing tons of documentation and tutorials for the enormous capabilitiesabilities 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|University of Freiburg]] (Germany)]], [[Robert Bosch GmbH|Bosch]], [[Georgia Institute of Technology|Georgia Tech]], [[KU Leuven|KU Leuven]] (Belgium)]], [[Massachusetts Institute of Technology|MIT,]] (MIT), [[Stanford University|Stanford]], [[Technical University of Munich|TU Munich]] (Germany)]], [[University of California, Berkeley|UC Berkeley]], [[University of Pennsylvania|U Penn]], [[University of Southern California|USC]] (USC), and [[University of Tokyo|University of Tokyo]] (Japan)]].<ref>{{Cite web|url=http://www.willowgarage.com/blog/2010/05/04/pr2-beta-program-recipients|title=The Results Are In: PR2 Beta Program Recipients! {{!}} |website=Willow Garage|website=www.willowgarage.com|access-date=2019-04-29|archive-date=13 July 2018|archive-url=https://web.archive.org/web/20180713001101/http://www.willowgarage.com/blog/2010/05/04/pr2-beta-program-recipients|url-status=dead}}</ref>.  This, combined with Willow Garage's highly successful internship program<ref>{{Cite web|url=http://www.willowgarage.com/pages/community/interns-and-visiting-scholars|title=Interns and Visiting Scholars {{!}} |website=Willow Garage|website=www.willowgarage.com|access-date=2019-04-29}}</ref> (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 2nd of 2010, marking the first time that ROS was officialofficially distributed with a set of versioned packages for public use. These developments leadled to the first drone running ROS,<ref>{{cite web|url=http://www.ros.org/news/2010/05/robots-using-ros-penn-quadrotors.html|title=Robots Using ROS: Penn Quadrotors – ROS robotics news|website=www.ROS.org|publisher=Open Robotics|access-date=12 December 2017}}</ref>, the first autonomous car running ROS,<ref>{{cite web|url=http://www.ros.org/news/2010/03/robots-using-ros-marvin-autonomous-car.html|title=Robots Using ROS: Marvin autonomous car (Austin Robot Technology/UT Austin) – ROS robotics news|website=www.ROS.org|publisher=Open Robotics|access-date=12 December 2017}}</ref>, and the adaption of ROS for [[Lego Mindstorms]].<ref>{{cite web|url=http://www.ros.org/news/2010/08/robots-using-ros-lego-nxt.html|title=Robots Using ROS: Lego NXT – ROS robotics news|website=www.ROS.org|publisher=Open Robotics|access-date=12 December 2017}}</ref>. With the PR2 Beta program well underway, the PR2 robot was officially released for commercial purchase on 9 September 9th, 2010.<ref>{{Cite web|url=http://www.willowgarage.com/blog/2010/09/07/pr2-pricing-and-open-source-discount|title=PR2 Robots Available for Purchase|last=|first=|date=|website=|archive-url=|archive-date=|dead-url=|access-date=}}</ref>.
 
[[File:ROS Antarctica sunset.jpg|thumb|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 February15 15thFebruary;<ref>{{cite web|url=http://www.ros.org/news/2011/02/announcing-ros-answers.html|title=Announcing ROS Answers – ROS robotics news|website=www.ROS.org|publisher=Open Robotics|access-date=12 December 2017}}</ref>; the introduction of the highly successful Turtlebot[[TurtleBot]] robot kit on April18 18thApril;<ref>{{cite web|url=http://www.willowgarage.com/blog/2011/04/18/turtlebots-available-preorder|title=ROS on the Move: TurtleBots available for preorder |website=Willow Garage|website=www.WillowGarage.com|access-date=12 December 2017}}</ref>; and the total number of ROS repositories passing 100 on May5 5thMay.<ref>{{cite web|url=http://www.ros.org/news/2011/05/100-repositories.html|title=100 Repositories – ROS robotics news|website=www.ROS.org|publisher=Open Robotics|access-date=12 December 2017}}</ref>.  Willow Garage began 2012 by creating the [[Open Robotics |Open Source Robotics Foundation]] (OSRF)<ref>{{Cite web|url=http://www.willowgarage.com/blog/2012/04/16/open-source-robotics-foundation|title=Willow Garage Spins Out OSRF|last=|firstaccess-date=13 October 2017|archive-date=|website=6 November 2017|archive-url=|https://web.archive.org/web/20171106081726/http://www.willowgarage.com/blog/2012/04/16/open-date=source-robotics-foundation|dead-url=|access-datestatus=dead}}</ref> in April. The OSRF was immediately awarded a software contract by the [[DARPA|Defense Advanced Research Projects Agency]] (DARPA).<ref>{{Cite news|url=https://spectrum.ieee.org/automaton/robotics/robotics-software/darpa-robotics-challenge-simulation-software-open-source-robotics-foundation|title=DARPA Awards Simulation Software Contract to Open Source Robotics Foundation|last=|first=|date=|work=|access-date=|archive-url=|archive-date=|dead-url=}}</ref>. Later that year, the first ROSCon was held in St. Paul, MNMinnesota,<ref>{{Cite web|url=http://www.ros.org/news/2012/05/thanks-for-a-great-roscon-2012.html|title=Thanks for a great ROSCon 2012! - ROS robotics news|website=www.rosROS.org|publisher=Open Robotics|access-date=2018-11-24}}</ref>, the first book on ROS, ''ROS By Example'',<ref>{{Cite web|url=http://www.ros.org/news/2012/09/new-book-ros-by-example.html|title=New Book: ROS by Example – ROS robotics news|website=www.rosROS.org|publisher=Open Robotics|access-date=2018-11-24}}</ref>, was published, and the[[Baxter (robot)|Baxter]], the first commercial robot to run ROS, was announced by [[Rethink Robotics]].<ref>{{Cite web|url=http://www.ros.org/news/2012/09/rethink-ros.html|title=Rethink ROS – ROS robotics news|website=www.rosROS.org|publisher=Open Robotics|access-date=2018-11-24}}</ref>.  Soon after passing its fifth anniversary in November, ROS began running on every continent on 3 December 3rd, 2012.<ref>{{Cite web|url=http://www.ros.org/news/2012/12/ros-five-years.html|title=ROS: Five Years – ROS robotics news|website=www.rosROS.org|publisher=Open Robotics|access-date=2018-11-24}}</ref>.
 
In February 2013, the OSRF became the primary software maintainers for ROS,<ref>{{cite web|url=http://osrfoundation.org/blog/ros-at-osrf.html|title=Osrf – Ros @ Osrf|date=2013-02-11|publisher=Osrfoundation.org|accessdateaccess-date=2014-07-12}}</ref>, foreshadowing the announcement in August that Willow Garage would be absorbed by its founders, [[Suitable Technologies]].<ref>{{cite web|url=http://www.willowgarage.com/blog/2013/08/21/willow-garage-employees-join-suitable-technologies|title=employees join Suitable Technologies|date=|publisher=Willow Garage|accessdateaccess-date=2014-07-12|archive-date=8 October 2017|archive-url=https://web.archive.org/web/20171008140941/http://www.willowgarage.com/blog/2013/08/21/willow-garage-employees-join-suitable-technologies|url-status=dead}}</ref>. At this point, ROS had released seven major versions (up to ROS Groovy),<ref name=":1">{{Cite web|url=http://wiki.ros.org/Distributions|title=Distributions – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref>), 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.<ref>{{Cite web|url=https://www.clearpathrobotics.com/2014/01/clearpath-welcomes-pr2/|title=Clearpath Welcomes PR2 to the Family|last=|first=|date=|website=|archive-url=|archive-date=|dead-url=|access-date=15 January 2014}}</ref>.
 
=== OSRF and Open Robotics (2013-present2013–present) ===
In the years since OSRF took over the primary development of ROS, a new version has been released every year,<ref name=":1" />, while interest in ROS continues to grow. ROSCons have occurred every year since 2012, co-located with either [[International Conference on Robotics and Automation|ICRA]] or [[International Conference On Intelligent Robots and Systems|IROS,]], two flagship robotics conferences. Meetups of ROS developers have been organized in a variety of countries,<ref>[http{{Cite web|title=Notes from the first Korean ROS Users Meetup – ROS robotics news|url=https://www.ros.org/news/2015/01/notes-from-the-first-korean-ros-users-meetup.html |access-date=2021-07-30|website=ROS.org|publisher=Open meetup in Korea]Robotics}}</ref><ref>{{Cite web|url=http://www.ros.org/news/2016/01/invitation-to-the-first-danish-ros-meetup.html|title=First Danish ROS Meetup|last=|first=|date=|website=|archive-url=|archive-date=|dead-url=|access-date=}}</ref><ref>{{Cite web|url=http://www.ros.org/news/2017/03/invitation-to-the-first-ukrainian-ros-meetup.html|title=First Ukrainian ROS Meetup|last=|first=|date=|website=|archive-url=|archive-date=|dead-url=|access-date=}}</ref>, a number of ROS  books have been published,<ref>{{cite web|url=http://shop.oreilly.com/product/0636920024736.do|title=Programming Robots with ROS: A Practical Introduction to the Robot Operating System|website=OReilly.com|access-date=12 December 2017}}</ref>, and many educational programs initiated.<ref>{{Cite web|url=http://www.ros.org/news/2015/08/report-from-first-ros-summer-school-in-china.html|title=Report from first ROS Summer School in China – ROS robotics news|website=www.rosROS.org|publisher=Open Robotics|access-date=2018-11-24}}</ref><ref>{{Cite web|url=http://www.theconstructsim.com/construct-learn-develop-robots-using-ros/robotigniteacademy_learnros/|title=ROS Robot Ignite Academy}}</ref>. On 1 September 1st, 2014, [[NASA]] announced the first robot to run ROS in space: [[Robonaut|Robotnaut 2]], on the [[International Space Station]].<ref>{{cite web|url=http://www.ros.org/news/2014/09/ros-running-on-iss.html|title=ROS running on ISS – ROS robotics news|website=www.ROS.org|publisher=Open Robotics|access-date=12 December 2017}}</ref> In 2017, the OSRF changed its name to [[Open Robotics]].  Tech giants [[Amazon (company)|Amazon]] and [[Microsoft]] began to take an interest in ROS during this time, with Microsoft porting core ROS to Windows in September 2018,<ref>{{Cite web|url=https://ros-win.visualstudio.com/ros-win|title=Summary|website=ros-win.visualstudio.com|access-date=2019-04-29}}</ref>, followed by Amazon Web Services releasing RoboMaker in November 2018.<ref>{{Cite web|url=https://aws.amazon.com/about-aws/whats-new/2018/11/announcing-aws-robomaker-a-new-cloud-robotics-service/|title=Announcing AWS RoboMaker|website=Amazon Web Services, Inc.|language=en-US|access-date=2019-04-29}}</ref>.
 
Perhaps the most important development of the OSRF/Open Robotics years thus far (not to discount the explosion of robot platforms whichthat began to support ROS or the enormous improvements in each ROS version) was the proposal of ROS2ROS 2, a significant API change to ROS which is intended to support [[Real-time computing|real -time programming]], a wider variety of computing environments, and utilize more modern technology.<ref>{{Cite web|url=http://design.ros2.org/articles/why_ros2.html|title=Why ROS 2.0?|website=design.ros2ROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref>. ROS2ROS 2 was announced at ROSCon 2014,<ref>{{Cite web|url=https://indexdocs.ros.org/docen/ros2rolling/|title=ROS2ROS 2 Overview|website=index.rosROS.org|publisher=Open Robotics|access-date=20192021-0409-2921}}</ref>, the first commits to the {{Not a typo|ros2}} repository were made in February 2015, followed by alpha releases in August 2015.<ref name=":2">{{Cite web|url=https://indexdocs.ros.org/docen/ros2rolling/Releases/.html|title=ROS 2 Distributions|website=index.rosROS.org|publisher=Open Robotics|access-date=20192021-0409-2921}}</ref> The first distribution release of ROS2ROS 2, Ardent Apalone, was released on 8 December 8th2017, 2017<ref name=":2" />, ushering in a new era of next-generation ROS development.
 
==Design==
Line 56 ⟶ 58:
=== Philosophy ===
[[File:Ros Equation.png|thumb|An image depicting the ROS equation: Plumbing + Tools + Capabilities + Ecosystem = ROS!|alt=An image depicting the ROS equation: Plumbing + Tools + Capabilities + Ecosystem = ROS!|500x500px]]
ROS was designed withto be open- source in mind, intending that users would be able to choose the configuration of tools and libraries whichthat 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 actually 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 thatnot only plumbing, but a rich and mature set of tools, a wide-ranging set of robot-agnostic capabilitiesabilities 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.<ref name=":3">{{Cite web|url=http://wiki.ros.org/ROS/Tutorials/UnderstandingNodes|title=ROS/Tutorials/UnderstandingNodes – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> 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 ROSROS1 Master<ref name=":3" /> makes all of this possible by registering nodes to itselfthemselves, 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 computationcomputing or commands.
 
==== Nodes ====
A node represents a singleone process running the ROS graph. Every node has a name, which it registers with the ROSROS1 master before it can take any other actions. Multiple nodes with different names can exist under different [[Namespace|namespacesnamespace]]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 [[Software bus|buses]] over which nodes send and receive messages.<ref>{{Cite web|url=http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics|title=ROS/Tutorials/UnderstandingTopics – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> 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.<ref name=":4">{{Cite web|url=http://wiki.ros.org/ROS/Tutorials/UnderstandingServicesParams|title=ROS/Tutorials/UnderstandingServicesParams – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref>. A service represents an action that a node can take which will have a single result. As such, services are often used for actions whichthat have a defined beginningstart and end, such as capturing a singleone-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<ref name=":4" /> is a database shared between nodes which allows for communal access to static or semi-static information. Data whichthat 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 whichthat 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 capabilitiesabilities of systems using ROS by simplifying and providing solutions to a number ofseveral 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 whichthat come with the core of most modern ROS installations.
 
=== {{Not a typo|rviz}} ===
{{Not a typo|rviz}}<ref>{{Cite web|url=http://wiki.ros.org/rviz|title=rviz – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-23}}</ref> (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.
 
==={{Not a typo|rosbag}}===
{{Not a typo|rosbag}}<ref>{{Cite web|url=http://wiki.ros.org/rosbag|title=rosbag – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-23}}</ref> is a command line tool used to record and playback ROS message data. {{Not a typo|rosbag}} uses a file format called bags,<ref>{{Cite web|url=http://wiki.ros.org/Bags|title=Bags – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-23}}</ref>, 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 whichthat produced the data in the ROS computation graph, making bags a useful tool for recording data to be used in later development. While {{Not a typo|rosbag}} is a command line only tool, {{Not a typo|rqt_bag}}<ref>{{Cite web|url=http://wiki.ros.org/rqt_bag|title=rqt_bag – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-23}}</ref> provides a GUI interface to {{Not a typo|rosbag}}.
 
=== catkin ===
catkin<ref>{{Cite web|url=http://wiki.ros.org/catkin|title=catkin – ROS Wiki|last=|first=|date=|website=wiki.rosROS.org|archive-url=|archive-date=|dead-urlpublisher=Open Robotics|access-date=2019-04-29}}</ref> is the ROS build system, having replaced {{Not a typo|rosbuild}}<ref>{{Cite web|url=http://wiki.ros.org/rosbuild|title=rosbuild – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> as of ROS Groovy. catkin is based on [[CMake]], and is similarly cross-platform, open -source, and language-independent.
 
==={{Not a typo|rosbash}}===
The {{Not a typo|rosbash}}<ref>{{Cite web|url=http://wiki.ros.org/rosbash|title=rosbash – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-23}}</ref> package provides a suite of tools which augment the functionality of the [[Bash_Bash (Unix_shellUnix shell)|bash shell]]. These tools include {{Not a typo|rosls}}, {{Not a typo|roscd}}, and {{Not a typo|roscp}}, which replicate the functionalities of [[Ls|ls]], [[Cd_Cd (command)|cd]], and [[Cp_Cp (Unix)|cp]] respectively. The ROS versions of these tools allow users to use {{Not a typo|ros}} package names in place of the filepathfile 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 {{Not a typo|rosrun}}, which runs executesexecutables in ROS packages. {{Not a typo|rosbash}} supports the same functionalities for [[Z_shellZ shell|zsh]] and [[Tcsh|tcsh]], to a lesser extent.
 
==={{Not a typo|roslaunch}}===
{{Not a typo|roslaunch}}<ref>{{Cite web|url=http://wiki.ros.org/roslaunch|title=roslaunch – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-23}}</ref> is a tool used to launch multiple ROS nodes both locally and remotely, as well as setting parameters on the ROS parameter server. {{Not a typo|roslaunch}} configuration files, which are written using [[XML]] can easily automate a complex startup and configuration process into a single command. {{Not a typo|roslaunch}} scripts can include other {{Not a typo|roslaunch}} scripts, launch nodes on specific machines, and even restart processes whichthat 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 {{Proper name|github}}. Some packages of note include:
 
=== Systems and tools ===
 
* ''{{Not a typo|actionlib}}''<ref>{{Cite web|url=http://wiki.ros.org/actionlib|title=actionlib – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> provides a standardized interface for interfacing with preemtablepreemptable tasks.
* ''{{Not a typo|nodelet}}''<ref>{{Cite web|url=http://wiki.ros.org/nodelet|title=nodelet – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> provides a way to run multiple algorithms in a single process.
* ''{{Not a typo|rosbridge}}''<ref>{{Cite web|url=http://wiki.ros.org/rosbridge_suite|title=rosbridge_suite – ROS Wiki|website=ROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> provides a JSON API to ROS functionalities for non-ROS programs.
 
* ''rosbridge''<ref>{{Cite web|url=http://wiki.ros.org/rosbridge_suite|title=rosbridge_suite – ROS Wiki|website=wiki.ros.org|access-date=2019-04-29}}</ref> provides a JSON API to ROS functionalities for non-ROS programs.
 
=== Mapping and localization ===
 
* ''gmappingslam toolbox''<ref>{{Cite web|url=http://wiki.ros.org/gmappingslam_toolbox|title=gmappingslam_toolbox – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=20192020-0402-2911}}</ref> provides afull wrapper2D for [[OpenSlam|OpenSlam's]] [[Gmapping]] algorithm for [[Simultaneous localizationSLAM and mapping|simultaneous localization and mappingsystem.]]
* ''cartographer{{Not a typo|gmapping}}''<ref>{{Cite web|url=http://wiki.ros.org/cartographergmapping|title=cartographergmapping – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> provides reala timewrapper 2Dfor and[[OpenSlam|OpenSlam's]] 3D[[Gmapping]] SLAMalgorithm algorithms developed atfor [[Googlesimultaneous localization and mapping]].
* ''amclcartographer''<ref>{{Cite web|url=http://wiki.ros.org/amclcartographer|title=amclcartographer – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> provides anreal implementationtime of2D [[Monteand Carlo3D localization|adaptiveSLAM Monte-Carloalgorithms localization.developed at [[Google]].
* ''{{Not a typo|amcl}}''<ref>{{Cite web|url=http://wiki.ros.org/amcl|title=amcl – ROS Wiki|website=ROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> provides an implementation of [[Monte Carlo localization|adaptive Monte-Carlo localization.]]
 
=== Navigation ===
 
* ''nav2dnavigation''<ref>{{Cite web|url=http://wiki.ros.org/nav2dnavigation|title=nav2dnavigation – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> provides the capability of navigating a mobile robot in a planar environment.
 
=== Manipulation ===
 
* ''MoveIt!''<ref>{{Cite web |title=MoveIt Motion Planning Framework |url=https://moveit.ros.org/ |website=ROS MoveIt!}}</ref> provides motion planning capabilities for [[Manipulator (device)|robot manipulators]]. Its default planning library is the [https://ompl.kavrakilab.org/ Open Motion Planning Library (OMPL)].<ref>{{Cite web |title=MoveIt Documentation: Rolling |url=https://moveit.picknik.ai/main/doc/concepts/motion_planning.html}}</ref>
 
=== Perception ===
 
* ''{{Not a typo|vision_opencv}}''<ref>{{Cite web|url=http://wiki.ros.org/vision_opencv?distro=melodic|title=vision_opencv – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> is a meta-package which provides packages for integrating ROS with [[OpenCV]].
 
=== Coordinate frame representation ===
 
* ''{{Not a typo|tf}}''<ref>{{Cite web|url=http://wiki.ros.org/tf|title=tf – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> provided a system for representing, tracking and transforming coordinate frames until ROS Hydro, when it was deprecated in favor of {{Not a typo|tf2}}.
* ''{{Not a typo|tf2}}''<ref>{{Cite web|url=http://wiki.ros.org/tf2|title=tf2 – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> is the second generation of the {{Not a typo|tf}} library, and provides the same capabilitiesabilities for ROS versions after Hydro.
 
=== Simulation ===
 
* ''{{Not a typo|gazebo_ros_pkgs}}''<ref>{{Cite web|url=http://wiki.ros.org/gazebo_ros_pkgs|title=gazebo_ros_pkgs – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> is a meta-package which provides packages for integrating ROS with the [[Gazebo simulator|Gazebo]] simulator.
* ''stage''<ref>{{Cite web|url=http://wiki.ros.org/stage|title=stage – ROS Wiki|website=wiki.rosROS.org|publisher=Open Robotics|access-date=2019-04-29}}</ref> provides an interface for the 2D [[Player/Stage Project|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., Onfollowing oddthe numberedrelease years,of Ubuntu LTS versions.<ref>{{Cite web|url=https://discourse.ros.org/t/proposed-changes-to-the-ros-releases/4736|title=ROS releaseRelease isSchedule supportedChanges|date=9 forMay two2018}}</ref><ref>{{Cite years,web and|title=REP on2000 even-- numberedROS years2 theReleases releaseand isTarget designatedPlatforms long(ROS.org) |url=https://www.ros.org/reps/rep-term2000.html support|access-date=2025-02-25 release|website=www.ros.org}}</ref> andThese releases are alternating supported for five5 years (even years/LTS Ubuntu version release) and 1.5 Thisyears loosely(uneven followsyears/no theLTS Ubuntu releaseversion cyclerelease). ROS2ROS currently1 releasesdoes anot see any new version. everyAside sixfrom monthsthis, (inthere Decemberhas andbeen July).the ROS-Industrial Theseor releasesROS-I arederivate supportedproject forsince aat singleleast year2012.
 
===ROS 1===
{| class="wikitable" style="display:inline-table; float:center; text-align:center; margin-left:1em; margin-right:0"
|+ROS 1 Distribution Releases <ref name=":1" />
|-
! Distribution
Line 135 ⟶ 142:
! Poster
! EOL date
! Support duration
|-
|Noetic Ninjemys<br/>(last ROS 1 release)
|23 May 2020
|May 2020 (expected)<ref>{{Cite web|url=https://www.reddit.com/r/ROS/comments/bf3j4i/what_info_is_available_on_the_next_ros_distro/|title=|last=|first=|date=|website=|archive-url=|archive-date=|dead-url=|access-date=}}</ref>
|[[File:Noetic.png|75px|]]
|N/A
|{{Version|pc|May 2025}}
|5 years
|-
|-
|Melodic Morenia
|May 23, May 2018
|
|[[File:Melodic Morenia.png|75px]]
|{{Version|co|2023-05-30}}
|5 years
|-
|Lunar Loggerhead
|May 23, May 2017
|[[File:ROS Lunar Loggerhead.png|75px]]
|{{Version|o|2019-05-30}}
|2 years
|-
|Kinetic Kame
|May 23, May 2016
|[[File:Kinetic.png|75px]]
|{{Version|co|2021-05-30}}
|5 years
|-
|Jade Turtle
|May 23, May 2015
|[[File:ROS_jade_logo.png|75px]]
|{{Version|o|2017-05-30}}
|2 years
|-
|Indigo Igloo
|July 22, July 2014
|[[File:Indigoigloo 600.png|75px]]
|{{Version|o|2019-04-30}}
|5 years
|-
|Hydro Medusa
|September 4, September 2013
|[[File:ROS Hydro logo.png|75px]]
|{{Version|o|2014-05-31}}
|0.5 years
|-
|Groovy Galapagos
|December 31, December 2012
|[[File:ROS Groovy logo.jpg|75px]]
|{{Version|o|2014-07-31}}
|2 years
|-
|Fuerte Turtle
|April 23, April 2012
|[[File:ROS Fuerte logo.jpg|75px]]
|{{Version|o|--}}
|
|-
|Electric Emys
|August 30, August 2011
|[[File:ROS Electric logo.png|75px]]
|{{Version|o|--}}
|
|-
|Diamondback
|March 2, March 2011
|[[File:ROS Diamondback logo.jpg|75px]]
|{{Version|o|--}}
|
|-
|C Turtle
|August 2, August 2010
|[[File:ROS C logo.jpg|75px]]
|{{Version|o|--}}
|
|-
|Box Turtle
|March 2, March 2010
|[[File:ROS Box logo.png|75px]]
|{{Version|o|--}}
|
|-
|(Initial Release)
|2007
|n/a
|{{Version|o|--}}
|n/a
|-
| colspan="98" |{{Version |l |show=011101}}
|}
 
===ROS 2===
{| class="wikitable" style="display:inline-table; float:center; text-align:center; margin-left:1em; margin-right:0"
|+ROS 2 Distribution Releases<ref name=":2"/><ref>{{Cite web|title=REP 2000 – ROS 2 Releases and Target Platforms|url=https://www.ros.org/reps/rep-2000.html|access-date=2021-02-20|website=ROS.org|publisher=Open Robotics}}</ref>
|+ROS 2 Distribution Releases <ref name=":2" />
|-
! Distribution
Line 212 ⟶ 239:
! Poster
! EOL date
! Support duration
|-
|Rolling Ridley<ref>{{Cite web|title=ROS 2 Rolling Ridley (codename 'rolling'; June 2020) – ROS 2 Documentation: Foxy documentation|url=https://docs.ros.org/en/foxy/Releases/Release-Rolling-Ridley.html|access-date=2021-07-30|website=ROS.org|publisher=Open Robotics}}</ref><ref>{{Cite web|date=2020-06-15|title=ROS 2 rolling distribution name brainstorming|url=https://discourse.ros.org/t/ros-2-rolling-distribution-name-brainstorming/14249/43|access-date=2021-07-30|website=ROS.org|publisher=Open Robotics|language=en}}</ref><br/>(rolling release with latest features)
|Dashing Diademata
|progressing since<br/>June 2020
|May 31, 2019
|[[File:ROS2 Rolling Ridley poster.png|75px|The release poster for ROS 2 Rolling Ridley.]]
|N/A
|N/A
|{{Version|c|May 2021}}
|-
|Kilted Kaiju
|23 May 2025
|[[File:Kilted-kaiju.png|75px|Kilted Kaiju Logo]]
|{{Version|p|November 2026}}
|1.5 years
|-
|Jazzy Jalisco
|23 May 2024<ref name="jazzy release">{{cite web | url=https://discourse.ros.org/t/ros-2-jazzy-jalisco-released/37862 | title=ROS 2 Jazzy Jalisco Released! | date=23 May 2024 }}</ref>
|[[File:ROS2 Jazzy Jalisco poster.png|75px|The release poster for ROS 2 Jazzy Jalisco.]]
|{{Version|c|May 2029}}
|5 years
|-
|Iron Irwini
|23 May 2023<ref>{{cite web | url=https://discourse.ros.org/t/ros-2-iron-irwini-released/31553 | title=ROS 2 Iron Irwini Released! | date=23 May 2023 }}</ref>
|[[File:ROS2 Iron Irwini poster.png|75px|The release poster for ROS 2 Iron Irwini.]]
|{{Version|o|November 2024}}
|1.5 years
|-
|Humble Hawksbill
|23 May 2022<ref>{{cite web | url=https://discourse.ros.org/t/ros-2-humble-hawksbill-released/25729 | title=ROS 2 Humble Hawksbill Released! | date=23 May 2022 }}</ref>
|[[File:ROS2 Humble Hawksbill poster.png|75px|The release poster for ROS 2 Humble Hawksbill.]]
|{{Version|co|May 2027}}
|5 years
|-
|Galactic Geochelone
|23 May 2021<ref>{{Cite web|url=https://discourse.ros.org/t/ros-2-galactic-geochelone-released/20559|title=ROS Galactic Geochelone Released |date=23 May 2021 |access-date=2021-07-10}}</ref>
|[[File:ROS2 Galactic Geochelone poster.jpg|75px|The release poster for ROS 2 Galactic Geochelone.]]
|{{Version|o|December 2022}}
|1.5 years
|-
|Foxy Fitzroy
|5 June 2020<ref>{{Cite web|url=https://discourse.ros.org/t/ros-foxy-fitzroy-released/14495|title=ROS Foxy Fitzroy Released |date=5 June 2020 |access-date=2020-06-24}}</ref>
|[[File:ROS2_Foxy_Fitzroy_poster.png|75px|The release poster ROS 2 Foxy Fitzroy.]]
|{{Version|o|June 2023}}
|3 years
|-
|Eloquent Elusor
|22 November 2019
|[[File:Logo_for_ROS_2_release_"eloquent_elusor".png|75px|The release poster ROS 2 Eloquent Elusor.]]
|{{Version|o|November 2020}}
|1 year
|-
|Dashing Diademata
|31 May 2019
|[[File:Logo_for_ROS_2_release_"dashing_diademata".png|75px|The release poster ROS 2 Dashing Diademata.]]
|{{Version|o|May 2021}}
|2 years
|-
|Crystal Clemmys
|December14 14th,December 2018
|[[File:ROS Crystal Logo.png|75px|The logorelease forposter theROS ROS2 release2 Crystal Clemmys.|]]
|{{Version|co|December 2019}}
|1 year
|-
|Bouncy Bolson
|July2 2nd,July 2018
|[[File:ROS Bouncy Logo.png|75px|The logorelease forposter theROS ROS2 release2 Bouncy Bolson.]]
|{{Version|co|July 2019}}
|1 year
|-
|Ardent Apalone
|December8 8th,December 2017
|[[File:ROS Ardent Logo.png|75px|The logorelease forposter theROS ROS2 release2 Ardent Apalone.]]
|{{Version|o|December 2018}}
|1 year
|-
|beta3
|September13 13th,September 2017
|N/A
|{{Version|o|December 2017}}
|4 months
|-
|beta2
|July5 5th,July 2017
|N/A
|{{Version|o|September 2017}}
|2 months
|-
|beta1
|December19 19th,December 2016
|N/A
|{{Version|o|July 2017}}
|7 months
|-
|(ROS 2 real-time proposal)
|alpha1-alpha8
|7 January 2016<ref>{{Cite web|url=https://github.com/ros2/design/blob/gh-pages/articles/121_realtime_proposal.md|title=ROS 2 design|website=[[GitHub]]|date=29 January 2022}}</ref>
|August 31st, 2015
|N/A
|N/A
|N/A
|-
|alpha1 (Anchor) -<br/>alpha8 (Hook-and-Loop)<ref>{{Cite web|url=https://docs.ros.org/en/foxy/Releases/Alpha-Overview.html|title=ROS 2 alpha releases (Aug 2015 – Oct 2016) – ROS 2 Documentation: Foxy documentation}}</ref>
|31 August 2015 -<br/>5 October 2016<ref>{{Cite web|url=https://discourse.ros.org/t/ros-2-alpha8/548|title = ROS 2 alpha8|date = 5 October 2016}}</ref>
|N/A
|{{Version|o|December 2016}}
|total: 16 months
|-
|("Why ROS 2?")
|20 July 2015<ref>{{Cite web|url=https://design.ros2.org/articles/why_ros2.html|title = Why ROS 2?}}</ref>
|N/A
|N/A
|N/A
|-
|(batch CI jobs for ROS 2<br/>and http://design.ros2.org)
|referenced in Q&A<br/>6 May 2015<ref>{{Cite web|url=https://answers.ros.org/question/208560/is-there-a-release-date-of-ros-2-or-more-informations-about-it/|title=Is there a release date of ros 2 or more pieces of information about it? – ROS Answers: Open Source Q&A Forum}}</ref>
|N/A
|N/A
|N/A
|-
|(first commits to<br/>ROS 2 repository)
|February 2015
|N/A
|N/A
|N/A
|-
|ROSCon 2014:<ref>{{Cite web|url=https://roscon.ros.org/2014/program/|title=Program &#124; ROSCon 2014}}</ref><ref>{{Cite web|url=https://itfanr.gitbooks.io/ros2-wiki/content/Home.html|title=Home · ros2-wiki}}</ref><br/>"Next-generation ROS: Building on DDS",<br/>"ROS 2.0: Developer preview"
|12 September 2014
|N/A
|N/A
|N/A
|-
| colspan="98" |{{Version |l |show=011101}}
|}
 
=== ROS-Industrial ===
ROS-Industrial<ref>{{cite web|url=https://rosindustrial.org/about/description/|title=ROS-Industrial About|website=rosindustrial.org|access-date=12 December 2017}}</ref> is an open-source project (BSD (legacy) / Apache 2.0 (preferred) license) that extends the advanced capabilitiesabilities 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 curriculumcurricula that isare 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.<ref>{{Cite web|url=https://rosindustrial.org/briefhistory/|title=Brief History|website=ROS-Industrial|language=en-US|access-date=2018-07-11}}</ref>
 
=== Space ROS ===
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 capabilities.<ref>{{Cite web|url=https://rosindustrial.org/briefhistory/|title=Brief History|website=ROS-Industrial|language=en-US|access-date=2018-07-11}}</ref>
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.<ref>{{Cite web |date=2020-11-09 |title=2020 NASA Announcement of Collaboration Opportunity (ACO) Selections - NASA |url=https://www.nasa.gov/missions/station/2020-nasa-announcement-of-collaboration-opportunity-aco-selections/ |access-date=2024-10-31 |language=en-US}}</ref> 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 [[S. Will Chambers|Will Chambers]],<ref>{{Cite AV media |url=https://www.youtube.com/watch?v=HtjYBQ8gZkc |title=RDP120: Space ROS |date=2023-03-13 |last=The Construct |access-date=2024-10-31 |via=YouTube}}</ref> 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.<ref>{{Cite web |title=Home |url=https://space.ros.org |access-date=2024-10-31 |website=space.ros.org}}</ref><ref>{{Cite web |title=Space ROS |url=https://github.com/space-ros |access-date=2024-10-31 |website=GitHub |language=en}}</ref> [[PickNik Robotics]] and Open Source Robotics Foundation currently lead the Space ROS effort.<ref>{{Cite web |title=Space ROS {{!}} Space Robotics Operating System |url=https://picknik.ai/space-ros |access-date=2024-10-31 |website=PickNik |language=en}}</ref>
 
==ROS-compatible Compatible Robotsrobots and Hardwarehardware ==
 
=== Robots ===
 
*[[ABB]], Adept, [[FANUC|Fanuc]], [[Motoman]], and [[Universal Robots]] are supported by [[ROS-Industrial]].<ref>{{cite web|url=http://rosindustrial.org/|title=Home|website=ROS-Industrial|access-date=12 December 2017}}</ref>
*[[Baxter (robot)|Baxter]]<ref>{{Cite web|date=2014-07-24|title=Baxter Research Robots Q&A {{!}} Rethink Robotics|url=http://www.rethinkrobotics.com/products/baxter-research-robot/baxter-research-robot-qa/|access-date=2021-07-30|archive-url=https://web.archive.org/web/20140724092354/http://www.rethinkrobotics.com/products/baxter-research-robot/baxter-research-robot-qa/|archive-date=24 July 2014}}</ref> at [[Rethink Robotics]], Inc.
*CK-9: robotics development kit by Centauri Robotics, supports ROS.<ref>{{Cite web|title=CK-9 {{!}} Centauri Robotics|url=https://centaurirobotics.in/dev/|access-date=2021-07-30|website=centaurirobotics.in|language=en}}</ref>
* GoPiGo3: Raspberry Pi-based educational robot, supports ROS.<ref>{{Cite web|title=Robots/gopigo3 – ROS Wiki|url=http://wiki.ros.org/Robots/gopigo3|website=ROS.org|publisher=Open Robotics|access-date=2021-07-30}}</ref>
*HERB<ref>{{cite web|url=http://personalrobotics.intel-research.net/|title=CMU Personal Robotics Lab|website=personalrobotics.Intel-Research.net|access-date=12 December 2017}}</ref> developed at [[Carnegie Mellon University]] in Intel's personal robotics program
* Husky A200: robot developed (and integrated into ROS) by [[Clearpath Robotics]]<ref>{{cite web|url=http://www.clearpathrobotics.com/husky|title=Husky UGV – Outdoor Field Research Robot by Clearpath|website=ClearPathRobotics.com|access-date=12 December 2017}}</ref>
* Nao<ref>{{cite web|url=http://www.ros.org/wiki/nao|title=nao – ROS Wiki|date=2013-10-28|website=ROS.org|publisher=Open Robotics|access-date=2014-07-12}}</ref> humanoid: [[University of Freiburg]]'s Humanoid Robots Lab<ref>{{Cite web|title=Welcome to the Humanoid Robots Lab at the University of Bonn!|url=https://www.hrl.uni-bonn.de/|access-date=2021-07-30|website=Humanoid Robots Lab – University of Bonn|language=en}}</ref> developed a ROS integration for the [[Nao (robot)|Nao humanoid]] based on an initial port by Brown University<ref>{{Cite web|date=2013-01-28|title=Brown University Robotics|url=http://brown-robotics.org/wp/|access-date=2021-07-30|archive-url=https://web.archive.org/web/20130128102401/http://brown-robotics.org/wp/|archive-date=28 January 2013}}</ref><ref>{{Cite web|date=2013-10-29|title=[ros-users] ROS NAO Driver|url=http://code.ros.org/lurker/message/20091101.232446.5217521d.gl.html|access-date=2021-07-30|archive-url=https://web.archive.org/web/20131029185136/http://code.ros.org/lurker/message/20091101.232446.5217521d.gl.html|archive-date=29 October 2013}}</ref>
* PR1 personal robot developed in Ken Salisbury's lab at Stanford<ref>{{cite web|url=http://personalrobotics.stanford.edu/|title=Stanford Personal Robotics Program|website=personalrobotics.Stanford.edu|access-date=12 December 2017}}</ref>
* PR2PR1: personal robot being developed atin WillowKen GarageSalisbury's lab at Stanford<ref>[{{cite web|url=http://wwwpersonalrobotics.willowgaragestanford.comedu/pages/robots|title=Stanford Personal Robotics Program|website=personalrobotics.Stanford.edu|access-date=12 December PR2]2017}}</ref>
* PR2: personal robot being developed at Willow Garage<ref>{{Cite web|date=2010-06-20|title=Featured |website=Willow Garage|url=http://www.willowgarage.com/pages/robots|access-date=2021-07-30|archive-url=https://web.archive.org/web/20100620075853/http://www.willowgarage.com/pages/robots|archive-date=20 June 2010}}</ref>
* Raven II Surgical Robotic Research Platform<ref>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.</ref><ref>{{cite web|url=http://brl.ee.washington.edu/laboratory/|title=BioRobotics Laboratory &#124; Biorobotics Laboratory - University of Washington|date=|publisher=Brl.ee.washington.edu|accessdate=2014-07-12}}</ref>
* Raven II Surgical Robotic Research Platform<ref>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.</ref><ref>{{cite web|url=http://brl.ee.washington.edu/laboratory/|title=BioRobotics Laboratory &#124; Biorobotics Laboratory – University of Washington|publisher=Brl.ee.washington.edu|access-date=2014-07-12|archive-date=14 July 2014|archive-url=https://web.archive.org/web/20140714210830/http://brl.ee.washington.edu/laboratory/|url-status=dead}}</ref>
* Shadow Robot Hand<ref>[http://www.shadowrobot.com/products/dexterous-hand/ SDH]</ref> – A fully dexterous humanoid hand.
* ROSbot: autonomous robot platform by Husarion<ref>{{Cite web|title=ROSbot 2.0 & ROSbot 2.0 PRO · Husarion Docs|url=https://husarion.com/|access-date=2021-07-30|website=husarion.com|language=en}}</ref>
* STAIR I and II<ref>STAIR I and II http://stair.stanford.edu/index.php</ref> robots developed in [[Andrew Ng]]'s lab at Stanford
* Shadow Robot Hand:<ref>{{Cite web|title=Dexterous Hand Series – Shadow Robot Company|url=https://www.shadowrobot.com/dexterous-hand-series/|access-date=2021-07-30}}</ref> a fully dexterous humanoid hand.
* SummitXL:<ref>{{cite web|url=http://www.robotnik.eu/mobile-robots/summit-xl/|title=Summit XL – Robotnik|date=|publisher=Robotnik.es|accessdate=2014-07-12}}</ref> Mobile robot developed by [[Robotnik Automation|Robotnik]], an engineering company specialized in mobile robots, robotic arms, and industrial solutions with ROS architecture.
* STAIR I and II:<ref>{{Cite web|title=STAIR|url=http://stair.stanford.edu/index.php|access-date=2021-07-30|website=stair.stanford.edu}}</ref> robots developed in [[Andrew Ng]]'s lab at Stanford
* Nao<ref>{{cite web|url=http://www.ros.org/wiki/nao|title=nao – ROS Wiki|date=2013-10-28|publisher=Ros.org|accessdate=2014-07-12}}</ref> humanoid: [[University of Freiburg]]'s Humanoid Robots Lab<ref>Humanoid Robots Lab http://hrl.informatik.uni-freiburg.de/</ref> developed a ROS integration for the [[Nao (robot)|Nao humanoid]] based on an initial port by Brown University<ref name="auto">brown-robotics http://brown-robotics.org/</ref><ref>G.T. Jay, [http://code.ros.org/lurker/message/20091101.232446.5217521d.gl.html Post to ros-users mailing list announcing ROS support for the Nao]</ref>
* Stretch: an integrated mobile manipulator by Hello Robot targeting assistive applications.<ref>{{Cite web|title=Hello Robot|url=https://hello-robot.com}}</ref><ref>{{Cite web|title=This Robot Could Be The Key To Empowering People With Disabilities|url=https://spectrum.ieee.org/stretch-assistive-robot}}</ref>
* UBR1<ref>{{cite web|url=http://unboundedrobotics.com/ubr-1/specification/|title=Specification|date=|publisher=Unbounded Robotics|accessdate=2014-07-12}}</ref><ref>{{cite web|url=http://spectrum.ieee.org/automaton/robotics/industrial-robots/unbounded-robotics-revolutionizes-affordable-mobile-manipulation-with-ubr1|title=UBR-1 Robot From Unbounded Robotics Revolutionizes Affordable Mobile Manipulation – IEEE Spectrum|last=Ackerman|first=Evan|date=2013-10-21|publisher=Spectrum.ieee.org|accessdate=2014-07-12}}</ref> developed by Unbounded Robotics, a spin-off of Willow Garage.
* SummitXL:<ref>{{cite web|url=http://www.robotnik.eu/mobile-robots/summit-xl/|title=Summit XL – Robotnik|publisher=Robotnik.es|access-date=2014-07-12}}</ref> mobile robot developed by [[Robotnik Automation|Robotnik]], an engineering company specialized in mobile robots, robotic arms, and industrial solutions with ROS architecture.
* ROSbot: autonomous robot platform by Husarion<ref>[https://husarion.com/core2/manuals/rosbot-manual/#rosbot-manual-overview Husarion ROSbot manual]</ref>
* UBR1:<ref>{{cite web|url=http://unboundedrobotics.com/ubr-1/specification/|title=Specification|publisher=Unbounded Robotics|access-date=2014-07-12|archive-date=28 April 2015|archive-url=https://web.archive.org/web/20150428054222/http://unboundedrobotics.com/ubr-1/specification/|url-status=dead}}</ref><ref>{{cite web|url=https://spectrum.ieee.org/unbounded-robotics-revolutionizes-affordable-mobile-manipulation-with-ubr1|title=UBR-1 Robot From Unbounded Robotics Revolutionizes Affordable Mobile Manipulation |last=Ackerman|first=Evan|date=2013-10-21|publisher=IEEE Spectrum|access-date=2014-07-12}}</ref> developed by Unbounded Robotics, a spin-off of Willow Garage.
*[[Webots]]: robot simulator integrating a complete ROS programming interface<ref>{{cite web|url=https://www.cyberbotics.com/doc/guide/using-ros|title=Using ROS with Webots|date=|publisher=|accessdate=2018-05-18}}</ref>.
*[[Webots]]: robot simulator integrating a complete ROS programming interface.<ref>{{cite web|url=https://www.cyberbotics.com/doc/guide/using-ros|title=Using ROS with Webots|access-date=2018-05-18}}</ref>
 
=== SBCs and hardware ===
 
* BeagleBoard.: Thethe robotics lab of the [[Katholieke Universiteit Leuven]], [[Belgium]]<ref>K{{Cite U leuvenweb|date=2013-10-29|title=Koen Buys|url=http://people.mech.kuleuven.be/%7Eu0062536~u0062536/embsensor.html|access-date=2021-07-30|archive-url=https://web.archive.org/web/20131029192925/http://people.mech.kuleuven.be/~u0062536/embsensor.html|archive-date=29 October 2013}}</ref> has ported ROS to the [[Beagleboard]].
* Raspberry Pi: image of ubuntuUbuntu Mate with ROS<ref>{{cite web|url=https://downloads.ubiquityrobotics.com/ |title=Ubiquity Robotics Downloads |publisher= |access-date= |accessdate=29 January 2018}}</ref> by Ubiquity Robotics; installation guide for Raspbian;<ref>{{cite web|url=http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Kinetic%20on%20the%20Raspberry%20Pi |title=ROSberryPi/Installing ROS Kinetic on the Raspberry Pi |publisheraccess-date=29 January 2018}}</ref> Installation guide for ROS2 to Raspberry Pi.<ref>{{cite web|dateurl=https://boardor.com/blog/installing-ros-2-on-raspberry-pi-a-comprehensive-guide |accessdatetitle=29Installing ROS 2 on Raspberry Pi: A Comprehensive Guide |access-date=24 January 20182025}}</ref>
*[[Sitara ARM Processor|Sitara ARM Processors]] have support for the ROS package as part of the official Linux SDK.<ref>{{Cite web|title=5.3.6. ROS and Radar – Processor SDK Linux Documentation|url=http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/Examples_and_Demos/Application_Demos/ROS_Radar.html|website=software-dl.ti.com|access-date=2020-05-01}}</ref>
 
==See also==
{{Portal|Free and open-source software}}
* [[Open-source hardware]]
* [[Open-source software]]
* [[Robotics middleware]]
* [[OpenList of free and open-source software packages]]
 
==References==
{{Reflist|2}}
;Notes
{{refbegin}}
Line 298 ⟶ 423:
 
==Related projects==
* [[RT middleware]] – Robot middleware standard/implementations. RT-component is discussed / defined by the [[Object Management Group]].
 
==External links==
* {{Official website|http://www.ros.org}}
 
{{Real-time operating systems}}
 
[[Category:2007 in robotics]]
Line 307 ⟶ 434:
[[Category:Computer vision software]]
[[Category:Free software operating systems]]
[[Category:Open Robotics]]
[[Category:Open-source robots]]
[[Category:Robot operating systems]]