Robot Operating System

From Wikipedia, the free encyclopedia
  (Redirected from ROS (Robot Operating System))
Jump to navigation Jump to search

Robot Operating System
Melodic Morenia Logo
Melodic Morenia Logo
Cart pushing simulation in RVIZ
Cart pushing simulation in RVIZ
Original author(s)Willow Garage
Stanford Artificial Intelligence Laboratory
Initial release2007; 12 years ago (2007)
Stable release
Melodic Morenia[1] / 23 May 2018; 10 months ago (2018-05-23)
Repository Edit this at Wikidata
Written inC++ or Python
Operating systemLinux, MacOS (experimental), Windows 10
TypeRobotics suite, OS, library
LicenseBSD license

Robot Operating System (ROS) is robotics middleware (i.e. collection of software frameworks for robot software development). Although ROS is not an operating system, 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, control, state, planning, actuator, and other messages. Despite the importance of reactivity and low latency in robot control, ROS itself is not a real-time OS (RTOS). It is possible, however, to integrate ROS with real-time code.[2] The lack of support for real-time systems has been addressed in the creation of ROS 2.0.[3][4][5]

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

  • language-and platform-independent tools used for building and distributing ROS-based software;
  • ROS client library implementations such as roscpp,[7] rospy,[8] and roslisp;[9]
  • packages containing application-related code which uses one or more ROS client libraries.[10]

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, simulation tools, and other algorithms.

The main ROS client libraries (C++, Python, and Lisp) are geared toward a Unix-like system, primarily because of their dependence on large collections 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.[11] The native Java ROS client library, rosjava, however, does not share these limitations and has enabled ROS-based software to be written for the Android OS.[12] rosjava has also enabled ROS to be integrated into an officially supported MATLAB toolbox which can be used on Linux, macOS, and Microsoft Windows.[13] A JavaScript client library, roslibjs has also been developed which enables integration of software into a ROS system via any standards-compliant web browser. In September 2018 Microsoft ported Core ROS to Windows 10.

History and milestones[edit]


  • ROS was started by borrowing the best practices from many early open source robotic software frameworks including switchyard by the Stanford Artificial Intelligence Laboratory in support of the Stanford AI Robot STAIR (STanford AI Robot) project.[14][15]
  • January. Willow Garage hires first employees: Jonathan Stark, Melonee Wise, Curt Meyers, and John Hsu
  • 7 November 2007: First commit of ROS code to SourceForge[16]


  • Development was performed primarily at Willow Garage, a robotics research lab, when Eric Berger and Keenan Wyrobek,[17] the founders of the Stanford Personal Robotics Program,[18] left Stanford to start the Personal Robotics Program at Willow Garage.[19] During that time, researchers at more than twenty institutions collaborated with Willow Garage engineers in a federated development model.[20][21]


  • 2/10/2009: ROS 0.4 Mango Tango released[22]
  • 2/16/2009: RVIZ first documented
  • 5/12/2009: First published paper on ROS: ROS: an open-source Robot Operating System 5/12/2009 (Authors: Morgan Quigley, Ken Conley, Brian Gerkey, Josh Faust, Tully Foote, Jeremy Leibs, Rob Wheeler, Andrew Y Ng)[21]
  • 8/16/2009: comes online[23]
  • 12/2/2009: First ROS tutorials released[24]



  • 1/26/2011: First public appearance of TurtleBot, at Homebrew Robotics Club
  • 2/15/2011: Introduction of ROS Answers[29]
  • 4/18/2011: Willow Garage announces TurtleBot[30]
  • 5/11/2011: First pure Java implementation of ROS announced at Google I/O[31]
  • 5/5/2011: ROS surpasses 100 repositories[32]
  • 11/8/2011: 4th anniversary of ROS and video compilation published[33]


  • 4/16/2012: Willow Garage spins out Open Source Robotics Foundation[34]
  • 4/17/2012: DARPA awards software contract to Open Source Robotics Foundation[35]
  • 5/19–20/2012: First ROSCon held in Saint Paul, MN[36]
  • 9/4/2012: First book on ROS published. ROS By Example, by Patrick Goebel[37]
  • 9/17/2012: First commercial robot based on ROS released by Rethink Robotics[38]
  • 11/7/2012: Five year anniversary of ROS, with video compilation[39]
  • 12/3/2012: ROS now running on every continent[40]


  • February 2013, ROS stewardship transitioned to the Open Source Robotics Foundation.[41]
  • 3/12/2013: 10,000 questions asked on ROS Answers[42]
  • 5/11-12/2013: ROSCon 2013 takes place in Stuttgart, Germany
  • 6/18/2013: Virtual Robotics Challenge takes place, the virtual stage of the DARPA Robotics Challenge
  • August 2013, a blog posting[43] announced that Willow Garage would be absorbed by another company started by its founder, Suitable Technologies.
  • 12/3/2013: released[44]


  • 1/15/2014: Support responsibilities for the PR2 created by Willow Garage taken over by Clearpath Robotics[45]
  • 2/7/2014: ROS Answers Reaches 15,000 Questions[46]
  • 6/6/2014: ROS Kong, the first international ROS user group meeting
  • 9/1/2014: First robot in space running on ROS, the Robonaut 2 on the International Space Station[47]
  • 9/12–13/2014: ROSCon 2014 takes place in Chicago. Program here.[48]
    • Industry attendees surpass academia attendees for first time
  • 12/21/2014: First ROS meetup in Korea[49]


  • 6/9/2015: DARPA Robotics Challenge takes place. Out of the 23 DRC Finals teams, 18 teams use ROS and 14 teams use Gazebo[50]
  • 7/23/2015: First ROS Summer School in China[51]
  • 10/3/2015: ROSCon 2015.
  • 11/3/2015: ROS 2 Alpha released
  • 11/7/2015: Eighth anniversary of ROS, and video compilation[52]
  • 09/09/2015 The Construct[53] Launched ROS Development Studio. The cloud-based service utilizes Robot Operating System (ROS) to offer developers a place to develop and test robotics applications. [54]
  • 12/25/2015: Book release: Programming Robots with ROS: A Practical Introduction to the Robot Operating System[55]


  • 2/18/2016: First Danish ROS meetup[56]
  • 7/22/2016: Second ROS Summer School in China[57]
  • 9/01/2016: The Construct [58] Launched Robot Ignite Academy. The cloud based academy utilizes Robot Operating System (ROS) and Gazebo to teach ROS online [59]
  • 9/15/2016: OSRF announces collaboration with Toyota Research Institute[60]
  • 10/7/2016: Bosch underwrites full-time position at OSRF[61]


  • 3/21/2017: First Ukrainian ROS Meetup[62]
  • 5/16/2017: Open Source Robotics Foundation changed its name to Open Robotics.[63]
  • 7/22/2017: Third ROS Summer School in China[64]
  • 9/21/2017: ROSCon 2017. Program here.[65]


  • 5/23/2018: ROS Melodic Morenia[66]
  • 7-8/07/2018: First ROS Developers Conference (ROSDevCon). The worldwide Online conference for developers to learn from experts how to program robots with ROS[67]
  • 9/28/2018: Microsoft ported Core ROS to Windows 10
  • 9/29/2018: ROSCon 2018 in Madrid.
  • 11/26/2018: Amazon launches AWS RoboMaker. The cloud-based service utilizes Robot Operating System (ROS) to offer developers a place to develop and test robotics applications.


ROS areas include:

  • a master coordination node
  • publishing or subscribing to data streams: images, stereo, laser, control, actuator, contact sensor, etc.
  • multiplexing information
  • node creation and destruction
  • nodes are seamlessly distributed, allowing distributed operation over multi-core, multi-processor, GPUs, and clusters
  • logging
  • parameter server
  • test systems

ROS package application areas will include:


ROS-Industrial[68] is an open-source project (BSD (legacy) / Apache 2.0 (preferred) license) that extends the advanced capabilities of ROS to manufacturing automation and robotics. 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 pre-competitive joint industry projects to develop new ROS-I capabilities.[69]

Version history[edit]

ROS releases may be incompatible with other releases and are often referred to by code name rather than version number. The major releases so far are:

Distro Release date Poster EOL date
Melodic Morenia May 23, 2018 Melodic Morenia.png Current stable version: 2023-05-30
Lunar Loggerhead May 23, 2017 ROS Lunar Loggerhead.png Current stable version: 2019-05-30
Kinetic Kame May 23, 2016 Kinetic.png Current stable version: 2021-05-30
Jade Turtle May 23, 2015 ROS jade logo.png Old version, no longer supported: 2017-05-30
Indigo Igloo July 22, 2014 Indigoigloo 600.png Older version, yet still supported: 2019-04-30
Hydro Medusa September 4, 2013 ROS Hydro logo.png Old version, no longer supported: 2014-05-31
Groovy Galapagos December 31, 2012 ROS Groovy logo.jpg Old version, no longer supported: 2014-07-31
Fuerte Turtle April 23, 2012 ROS Fuerte logo.jpg Old version, no longer supported: --
Electric Emys August 30, 2011 ROS Electric logo.png Old version, no longer supported: --
Diamondback March 2, 2011 ROS Diamondback logo.jpg Old version, no longer supported: --
C Turtle August 2, 2010 ROS C logo.jpg Old version, no longer supported: --
Box Turtle March 2, 2010 ROS Box logo.png Old version, no longer supported: --
Old version
Older version, still supported
Latest version
Latest preview version
Future release

Ports to robots and boards[edit]

  • ABB, Adept, Fanuc, Motoman, and Universal Robots are supported by ROS-Industrial[70]
  • Baxter[71] at Rethink Robotics, Inc.
  • BeagleBoard. The robotics lab of the Katholieke Universiteit Leuven, Belgium[72] has ported ROS to the Beagleboard
  • HERB[73] developed at Carnegie Mellon University in Intel's personal robotics program
  • Husky A200 robot developed (and integrated into ROS) by Clearpath Robotics[74]
  • PR1 personal robot developed in Ken Salisbury's lab at Stanford[75]
  • PR2 personal robot being developed at Willow Garage[76]
  • Raven II Surgical Robotic Research Platform[77][78]
  • rosbridge protocol and server[79] Brown University[80] developed the rosbridge protocol to enable any robot or computing environment to integrate with ROS using JSON-based messaging, such as for common web browsers, Matlab, Microsoft Windows, OS X, and embedded systems
  • Shadow Robot Hand[81] – A fully dexterous humanoid hand.
  • STAIR I and II[82] robots developed in Andrew Ng's lab at Stanford
  • SummitXL:[83] Mobile robot developed by Robotnik, an engineering company specialized in mobile robots, robotic arms, and industrial solutions with ROS architecture.
  • Nao[84] humanoid: University of Freiburg's Humanoid Robots Lab[85] developed a ROS integration for the Nao humanoid based on an initial port by Brown University[80][86]
  • UBR1[87][88] developed by Unbounded Robotics, a spin-off of Willow Garage.
  • Raspberry Pi: image of ubuntu Mate with ROS[89] by Ubiquity Robotics; installation guide for Raspbian[90]
  • ROSbot: autonomous robot platform by Husarion[91]
  • Webots: robot simulator integrating a complete ROS programming interface[92].

ROS packages[edit]

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.

See also[edit]


  1. ^ "ROS Melodic Morenia". Retrieved 10 June 2018.
  2. ^ ROS-Introduction
  3. ^ Kay, Jackie. "Proposal for Implementation of Real-time Systems in ROS 2". Retrieved 16 August 2016.
  4. ^ Kay, Jackie. "Realtime Design Guidelines For ROS 2". ROS2. Retrieved 22 November 2018.
  5. ^ "ROS 2 For Realtime Applications". ROS. Retrieved 22 November 2018.
  6. ^ "Browsing packages for indigo". ROS. Retrieved 21 February 2016.
  7. ^ "Package Summary". ROS. Retrieved 21 February 2016.
  8. ^ "Package SUmmary". ROS. Retrieved 21 February 2016.
  9. ^ "Package Summary". ROS. Retrieved 21 February 2016.
  10. ^ "client libraries". Retrieved 12 December 2017.
  11. ^ "ROS/Installation - ROS Wiki". 29 September 2013. Retrieved 12 July 2014.
  12. ^ "android - ROS Wiki". 12 April 2014. Retrieved 12 July 2014.
  13. ^ "Robot Operating System (ROS) Support from MATLAB - Hardware Support". Retrieved 12 July 2014.
  14. ^ "STAIR". Retrieved 12 December 2017.
  15. ^ Quigley, Morgan; Berger, Eric; Ng, Andrew Y. (2007), STAIR: Hardware and Software Architecture (PDF), AAAI 2007 Robotics Workshop
  16. ^ "Repository: code". Retrieved 12 December 2017.
  17. ^ "The Origin Story of ROS, the Linux of Robotics". IEEE Spectrum: Technology, Engineering, and Science News. Retrieved 31 October 2017.
  18. ^ "Stanford Personal Robotics Program". Retrieved 3 July 2017.
  19. ^ "Robot Operating System". EngineerJobs Magazine. 1 May 2013. Retrieved 3 July 2017.
  20. ^ "Repositories". Retrieved 7 June 2011.
  21. ^ a b 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.
  22. ^ "ROS robotics news: February 2009 Archives". Retrieved 12 December 2017.
  23. ^ "Welcome to - ROS robotics news". Retrieved 12 December 2017.
  24. ^ "ROS Tutorials and Turtles - ROS robotics news". Retrieved 12 December 2017.
  25. ^ "Robots Using ROS: Marvin autonomous car (Austin Robot Technology/UT Austin) - ROS robotics news". Retrieved 12 December 2017.
  26. ^ "Robots Using ROS: Penn Quadrotors - ROS robotics news". Retrieved 12 December 2017.
  27. ^ "Robots Using ROS: Lego NXT - ROS robotics news". Retrieved 12 December 2017.
  28. ^ "PR2 Robots Available for Purchase".
  29. ^ "Announcing ROS Answers - ROS robotics news". Retrieved 12 December 2017.
  30. ^ "ROS on the Move: TurtleBots available for preorder - Willow Garage". Retrieved 12 December 2017.
  31. ^ "Google I/O 2011: Cloud Robotics, ROS for Java and Android - ROS robotics news". Retrieved 24 November 2018.
  32. ^ "100 Repositories - ROS robotics news". Retrieved 12 December 2017.
  33. ^ "Celebrating the fourth anniversary of ROS... and the First ROSCon 2012 - ROS robotics news". Retrieved 24 November 2018.
  34. ^ "Willow Garage Spins Out OSRF".
  35. ^ "DARPA Awards Simulation Software Contract to Open Source Robotics Foundation".
  36. ^ "Thanks for a great ROSCon 2012! - ROS robotics news". Retrieved 24 November 2018.
  37. ^ "New Book: ROS by Example - ROS robotics news". Retrieved 24 November 2018.
  38. ^ "Rethink ROS - ROS robotics news". Retrieved 24 November 2018.
  39. ^ "ROS: Five Years - ROS robotics news". Retrieved 24 November 2018.
  40. ^ "ROS: Five Years - ROS robotics news". Retrieved 24 November 2018.
  41. ^ "Osrf - Ros @ Osrf". 11 February 2013. Retrieved 12 July 2014.
  42. ^ "10,000 Questions Asked on ROS Answers".
  43. ^ "employees join Suitable Technologies". Willow Garage. Retrieved 12 July 2014.
  44. ^ "A new - ROS robotics news". Retrieved 12 December 2017.
  45. ^ "Clearpath Welcomes PR2 to the Family".
  46. ^ "ROS Answers Reaches 15,000 Questions".
  47. ^ "ROS running on ISS - ROS robotics news". Retrieved 12 December 2017.
  48. ^ "Program - ROSCon 2014". Retrieved 12 December 2017.
  49. ^ ROS meetup in Korea
  50. ^ "ROS and Gazebo at DRC Finals".
  51. ^ "Report from first ROS Summer School in China - ROS robotics news". Retrieved 24 November 2018.
  52. ^ "ROS Turns 8 - ROS robotics news". Retrieved 12 December 2017.
  53. ^ "The Construct".
  54. ^ "ROS Development Studio".
  55. ^ "Programming Robots with ROS: A Practical Introduction to the Robot Operating System". Retrieved 12 December 2017.
  56. ^ "First Danish ROS Meetup".
  57. ^ "ROS Summer School in China 2016, July 22-28 - ROS robotics news". Retrieved 24 November 2018.
  58. ^ "The Construct".
  59. ^ "ROS Robot Ignite Academy".
  60. ^ "OSRF Collaboration with TRI".
  61. ^ "Bosch Underwrites Full-Time Position at OSRF".
  62. ^ "First Ukrainian ROS Meetup".
  63. ^ "Welcome to Open Robotics". Retrieved 12 December 2017.
  64. ^ "ROS Summer School in China, July 22-28, 2017". Retrieved 12 December 2017.
  65. ^ "ROSCon 2017". Retrieved 12 December 2017.
  66. ^ "melodic - ROS Wiki". Retrieved 28 May 2018.
  67. ^ "ROSDevCon2018".
  68. ^ "ROS-Industrial About". Retrieved 12 December 2017.
  69. ^ "Brief History". ROS-Industrial. Retrieved 11 July 2018.
  70. ^ "Home". ROS-Industrial. Retrieved 12 December 2017.
  71. ^ Baxter
  72. ^ K U leuven
  73. ^ "CMU Personal Robotics Lab". Retrieved 12 December 2017.
  74. ^ "Husky UGV - Outdoor Field Research Robot by Clearpath". Retrieved 12 December 2017.
  75. ^ "Stanford Personal Robotics Program". Retrieved 12 December 2017.
  76. ^ PR2
  77. ^ 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.
  78. ^ "BioRobotics Laboratory | Biorobotics Laboratory - University of Washington". Retrieved 12 July 2014.
  79. ^ rosbridge protocol and server
  80. ^ a b brown-robotics
  81. ^ SDH
  82. ^ STAIR I and II
  83. ^ "Summit XL - Robotnik". Retrieved 12 July 2014.
  84. ^ "nao - ROS Wiki". 28 October 2013. Retrieved 12 July 2014.
  85. ^ Humanoid Robots Lab
  86. ^ G.T. Jay, Post to ros-users mailing list announcing ROS support for the Nao
  87. ^ "Specification". Unbounded Robotics. Retrieved 12 July 2014.
  88. ^ Ackerman, Evan (21 October 2013). "UBR-1 Robot From Unbounded Robotics Revolutionizes Affordable Mobile Manipulation - IEEE Spectrum". Retrieved 12 July 2014.
  89. ^ "Ubiquity Robotics Downloads". Retrieved 29 January 2018.
  90. ^ "ROSberryPi/Installing ROS Kinetic on the Raspberry Pi". Retrieved 29 January 2018.
  91. ^ Husarion ROSbot manual
  92. ^ "Using ROS with Webots". Retrieved 18 May 2018.
  • STAIR: The STanford Artificial Intelligence Robot project, Andrew Y. Ng, Stephen Gould, Morgan Quigley, Ashutosh Saxena, Eric Berger. Snowbird, 2008.

Related projects[edit]

External links[edit]