Robot Operating System

From Wikipedia, the free encyclopedia
  (Redirected from ROS (Robot Operating System))
Jump to: navigation, search
Robot Operating System
ROS Lunar Loggerhead logo
ROS Lunar Loggerhead logo
Cart pushing simulation in RVIZ
Cart pushing simulation in RVIZ
Original author(s) Willow Garage
Stanford Artificial Intelligence Laboratory
Initial release 2007; 10 years ago (2007)
Stable release
Lunar Loggerhead[1] / 23 May 2017; 3 months ago (2017-05-23)
Development status Active
Written in C++ or Python
Operating system Linux,MacOS
Type Robotics suite, OS, library
License BSD license
Website www.ros.org

Robot Operating System (ROS) is a Robotics middleware (i.e. collection of software frameworks for robot software development). Even though ROS is not an operating system, it provides services designed for 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), though it is possible to integrate ROS with real-time code.[2] The lack of support for real-time systems is being addressed in the creation of ROS 2.0.[3]

Software in the ROS Ecosystem[4] 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,[5] rospy,[6] and roslisp;[7]
  • packages containing application-related code which uses one or more ROS client libraries.

Both the language-independent tools and the main client libraries (C++, Python, 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, 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.[8] 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.[9] rosjava has also enabled ROS to be integrated into an officially-supported MATLAB toolbox which can be used on Linux, macOS, and Microsoft Windows.[10] A JavaScript client library, roslibjs has also been developed which enables integration of software into a ROS system via any standards-compliant web browser.

History[edit]

In 2007 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)[11][12] project.

From 2008 development was performed primarily at Willow Garage, a robotics research lab, when the Eric Berger and Keenan Wyrobek, the founders of the Stanford Personal Robotics Program[13], left Stanford to start the Personal Robotics Program at Willow Garage[14]. During that time, researchers at more than twenty institutions collaborated with Willow Garage engineers in a federated development model.[15][16]

In February 2013, ROS stewardship transitioned to the Open Source Robotics Foundation.[17] In August 2013, a blog posting[18] announced that Willow Garage would be absorbed by another company started by its founder, Suitable Technologies. The support responsibilities for the PR2 created by Willow Garage were also subsequently taken over by Clearpath Robotics.[19]

Applications[edit]

ROS areas include:

  • a master coordination node
  • publishing or subscribing to data streams: images, stereo, laser, control, actuator, contact ...
  • 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[20] is a BSD-licensed “hardware-agnostic” software development program to create a Unified Robot Description Format (URDF) for industrial robots.

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
Lunar Loggerhead May 23, 2017 ROS Lunar Loggerhead.png Current stable version: May, 2019
Kinetic Kame May 23, 2016 Kinetic.png Current stable version: 2021-05-30
Jade Turtle May 23, 2015 ROS jade logo.png Older version, yet still 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: --
Legend:
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[21]
  • Baxter[22] at Rethink Robotics, Inc.
  • BeagleBoard. The robotics lab of the Katholieke Universiteit Leuven, Belgium:[23] has ported ROS to the Beagleboard
  • HERB[24] developed at Carnegie Mellon University in Intel's personal robotics program
  • Husky A200[25] robot developed (and integrated into ROS) by Clearpath Robotics
  • PR1[26] personal robot developed in Ken Salisbury's lab at Stanford
  • PR2[27] personal robot being developed at Willow Garage
  • Raven II Surgical Robotic Research Platform[28][29]
  • rosbridge protocol and server[30] Brown University[31] 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[32] – A Fully dexterous humanoid hand.
  • STAIR I and II[33] robots developed in Andrew Ng's lab at Stanford
  • SummitXL:[34] Mobile robot developed by Robotnik, an engineering company specialized in mobile robots, robotic arms and industrial solutions with ROS architecture.
  • Nao[35] humanoid: University of Freiburg's Humanoid Robots Lab[36] developed a ROS integration for the Nao humanoid based on an initial port by Brown University[37][38]
  • UBR1[39][40] developed by Unbounded Robotics, a spin-off of Willow Garage.

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. For a list of some of the available packages for ROS, see: http://www.ros.org/browse/list.php

See also[edit]

References[edit]

  1. ^ "ROS Lunar Loggerhead". Wiki.ros.org. Retrieved 2017-09-11. 
  2. ^ ROS-Introduction http://wiki.ros.org/ROS/Introduction
  3. ^ Kay, Jackie. "Proposal for Implementation of Real-time Systems in ROS 2". Retrieved 16 August 2016. 
  4. ^ "Browsing packages for indigo". ROS.org. ROS. Retrieved 21 February 2016. 
  5. ^ "Package Summary". ROS.org. ROS. Retrieved 21 February 2016. 
  6. ^ "Package SUmmary". ROS.org. ROS. Retrieved 21 February 2016. 
  7. ^ "Package Summary". ROS.org. ROS. Retrieved 21 February 2016. 
  8. ^ "ROS/Installation - ROS Wiki". Wiki.ros.org. 2013-09-29. Retrieved 2014-07-12. 
  9. ^ "android - ROS Wiki". Wiki.ros.org. 2014-04-12. Retrieved 2014-07-12. 
  10. ^ "Robot Operating System (ROS) Support from MATLAB - Hardware Support". Mathworks.com. Retrieved 2014-07-12. 
  11. ^ STanford Artificial Intelligence Robot http://stair.stanford.edu/
  12. ^ Morgan Quigley, Eric Berger, Andrew Y. Ng (2007), STAIR: Hardware and Software Architecture (PDF), AAAI 2007 Robotics Workshop 
  13. ^ "Stanford Personal Robotics Program". personalrobotics.stanford.edu. Retrieved 2017-07-03. 
  14. ^ "Robot Operating System". EngineerJobs Magazine. 2013-05-01. Retrieved 2017-07-03. 
  15. ^ "Repositories". ROS.org. Retrieved 7 June 2011. 
  16. ^ Morgan Quigley, Brian Gerkey, Ken Conley, Josh Faust, Tully Foote, Jeremy Leibs, Eric Berger, Rob Wheeler, Andrew Ng. "ROS: an open-source Robot Operating System" (PDF). Retrieved 3 April 2010. 
  17. ^ "Osrf - Ros @ Osrf". Osrfoundation.org. 2013-02-11. Retrieved 2014-07-12. 
  18. ^ "employees join Suitable Technologies". Willow Garage. Retrieved 2014-07-12. 
  19. ^ Robotics Corner 2014/01/15 (2014-01-15). "Clearpath Welcomes PR2 to the Family". Clearpath Robotics. Retrieved 2014-07-12. 
  20. ^ ROS-Industrial http://ros.org/wiki/Industrial
  21. ^ http://rosindustrial.org/
  22. ^ Baxter http://www.rethinkrobotics.com/products/baxter-research-robot/baxter-research-robot-qa/
  23. ^ K U leuven http://people.mech.kuleuven.be/%7Eu0062536/embsensor.html
  24. ^ HERB http://personalrobotics.intel-research.net/
  25. ^ Husky A200 http://www.clearpathrobotics.com/husky
  26. ^ PR1 http://personalrobotics.stanford.edu/
  27. ^ PR2 http://www.willowgarage.com/pages/robots
  28. ^ 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.
  29. ^ "BioRobotics Laboratory | Biorobotics Laboratory - University of Washington". Brl.ee.washington.edu. Retrieved 2014-07-12. 
  30. ^ rosbridge protocol and server http://www.ros.org/wiki/rosbridge
  31. ^ brown-robotics http://brown-robotics.org/
  32. ^ SDH http://www.shadowrobot.com/products/dexterous-hand/
  33. ^ STAIR I and II http://stair.stanford.edu/index.php
  34. ^ "Summit XL - Robotnik". Robotnik.es. Retrieved 2014-07-12. 
  35. ^ "nao - ROS Wiki". Ros.org. 2013-10-28. Retrieved 2014-07-12. 
  36. ^ Humanoid Robots Lab http://hrl.informatik.uni-freiburg.de/
  37. ^ brown-robotics http://brown-robotics.org/
  38. ^ G.T. Jay, Post to ros-users mailing list announcing ROS support for the Nao
  39. ^ "Specification". Unbounded Robotics. Retrieved 2014-07-12. 
  40. ^ Ackerman, Evan (2013-10-21). "UBR-1 Robot From Unbounded Robotics Revolutionizes Affordable Mobile Manipulation - IEEE Spectrum". Spectrum.ieee.org. Retrieved 2014-07-12. 
Notes
  • 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]