Robot Operating System
|Original author(s)||Willow Garage, Stanford Artificial Intelligence Laboratory|
|Stable release||Hydro Medusa / 4 September 2013|
|Written in||[C++ or Python]|
|Type||Robotics suite, OS, library|
Robot Operating System (ROS) is a collection of software frameworks for robot software development, (see also Robotics middleware) providing operating system-like functionality on a heterogeneous computer cluster. ROS provides standard operating system services 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 Realtime OS, though it is possible to integrate ROS with realtime code.
Software in the ROS Ecosystem can be separated into three groups: (1) language- and platform-independent tools used for building and distributing ROS-based software; (2) ROS client library implementations such as roscpp, rospy, and roslisp; and (3) 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, 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.
ROS was originally developed in 2007 under the name switchyard by the Stanford Artificial Intelligence Laboratory in support of the Stanford AI Robot STAIR project. From 2008 until 2013, development was performed primarily at Willow Garage, a robotics research institute/incubator. During that time, researchers at more than twenty institutions collaborated with Willow Garage engineers in a federated development model.
In February 2013, ROS stewardship transitioned to the Open Source Robotics Foundation. In August 2013, a blog posting 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.
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
- Parameter server
- Test systems
ROS Package application areas will include:
- Object Identification
- Segmentation and recognition
- Face recognition
- Gesture recognition
- Motion tracking
- Motion understanding
- Structure from motion (SFM)
- Stereo vision: depth perception via two cameras
- Mobile robotics
ROS -Industrial is a BSD-licensed “hardware-agnostic” software development program to create a Unified Robot Description Format (URDF) for industrial robots.
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:
- 4 September 2013 – Hydro Medusa
- 31 December 2012 – Groovy Galapagos
- 23 April 2012 – Fuerte
- 30 Aug 2011 – Electric Emys
- 2 March 2011 – Diamondback
- 3 August 2010 – C Turtle
- 1 March 2010 – Box Turtle
- 22 January 2010 – ROS 1.0
Ports to robots and boards
- ABB, Adept, Motoman, and Universal Robots are supported by ROS-Industrial
- Baxter at Research Robotics, Inc.
- BeagleBoard. The robotics lab of the Katholieke Universiteit Leuven, Belgium: has ported ROS to the Beagleboard
- HERB developed at Carnegie Mellon University in Intel's personal robotics program
- Husky A200 robot developed (and integrated into ROS) by Clearpath Robotics
- PR1 personal robot developed in Ken Salisbury's lab at Stanford
- PR2 personal robot being developed at Willow Garage
- rosbridge protocol and server Brown University 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 – A Fully dexterous humanoid hand.
- STAIR I and II robots developed in Andrew Ng's lab at Stanford
- SummitXL: Mobile robot developed by Robotnik, an engineering company specialized in mobile robots, robotic arms and industrial solutions with ROS architecture.
- Nao humanoid: University of Freiburg's Humanoid Robots Lab developed a ROS integration for the Nao humanoid based on an initial port by Brown University
- UBR1 developed by Unbounded Robotics, a spin off of Willow Garage.
- Willow Garage, ROS Hydro Medusa. Link
- ROS-Introduction http://wiki.ros.org/ROS/Introduction
- STanford Artificial Intelligence Robot http://stair.stanford.edu/
- Morgan Quigley, Eric Berger, Andrew Y. Ng (2007), STAIR: Hardware and Software Architecture, AAAI 2007 Robotics Workshop
- "Repositories". ROS.org. Retrieved 7 June 2011.
- 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". Retrieved 3 April 2010.
- ROS-Industrial http://ros.org/wiki/Industrial
- Baxter http://www.rethinkrobotics.com/products/baxter-research-robot/baxter-research-robot-qa/
- K U leuven http://people.mech.kuleuven.be/%7Eu0062536/embsensor.html
- HERB http://personalrobotics.intel-research.net/
- Husky A200 http://www.clearpathrobotics.com/husky
- PR1 http://personalrobotics.stanford.edu/
- PR2 http://www.willowgarage.com/pages/robots
- rosbridge protocol and server http://www.ros.org/wiki/rosbridge
- brown-robotics http://brown-robotics.org/
- SDH http://www.shadowrobot.com/products/dexterous-hand/
- STAIR I and II http://stair.stanford.edu/index.php
- Humanoid Robots Lab http://hrl.informatik.uni-freiburg.de/
- brown-robotics http://brown-robotics.org/
- G.T. Jay, Post to ros-users mailing list announcing ROS support for the Nao
- STAIR: The STanford Artificial Intelligence Robot project, Andrew Y. Ng, Stephen Gould, Morgan Quigley, Ashutosh Saxena, Eric Berger. Snowbird, 2008.
- RT middleware robot middleware standard/implementations. RT-component is discussed / defined by the Object Management Group