ROS (Robot Operating System)
Encyclopedia
Robot Operating System (ROS) is a software framework
for robot
software development, providing operating system
-like functionality on a heterogenous computer cluster. 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. As of 2008, development continues primarily at Willow Garage
, a robotics research institute/incubator, with more than twenty institutions collaborating in a federated development model.
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. It is based on a graph
architecture where processing takes place in nodes that may receive, post and multiplex sensor, control, state, planning, actuator and other messages. The library is geared toward a Unix-like
system (Ubuntu
Linux is listed as 'supported' while other variants such as Fedora
and Mac OS X
are considered 'experimental').
ROS has two basic "sides": The operating system side ros as described above and ros-pkg, a suite of user contributed packages (organized into sets called stacks) that implement functionality such as simultaneous localization and mapping
, planning, perception, simulation etc.
ROS is released under the terms of the BSD license, and is open source software. It is free for commercial and research use. The ros-pkg contributed packages are licensed under a variety of open source licenses.
ROS Package application areas will include
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...
for robot
Robot
A robot is a mechanical or virtual intelligent agent that can perform tasks automatically or with guidance, typically by remote control. In practice a robot is usually an electro-mechanical machine that is guided by computer and electronic programming. Robots can be autonomous, semi-autonomous or...
software development, providing operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
-like functionality on a heterogenous computer cluster. 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. As of 2008, development continues primarily at Willow Garage
Willow Garage
Willow Garage is a robotics research lab and technology incubator devoted to developing hardware and open source software for personal robotics applications. It was started in late 2006 by Scott Hassan, an early Google employee who helped develop Google's technology. Steve Cousins is the president...
, a robotics research institute/incubator, with more than twenty institutions collaborating in a federated development model.
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. It is based on a graph
Graph theory
In mathematics and computer science, graph theory is the study of graphs, mathematical structures used to model pairwise relations between objects from a certain collection. A "graph" in this context refers to a collection of vertices or 'nodes' and a collection of edges that connect pairs of...
architecture where processing takes place in nodes that may receive, post and multiplex sensor, control, state, planning, actuator and other messages. The library is geared toward a Unix-like
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
system (Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
Linux is listed as 'supported' while other variants such as Fedora
Fedora (operating system)
Fedora is a RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat...
and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
are considered 'experimental').
ROS has two basic "sides": The operating system side ros as described above and ros-pkg, a suite of user contributed packages (organized into sets called stacks) that implement functionality such as simultaneous localization and mapping
Simultaneous localization and mapping
Simultaneous localization and mapping is a technique used by robots and autonomous vehicles to build up a map within an unknown environment , or to update a map within a known environment , while at the same time keeping track of their current location.- Operational definition :Maps are used...
, planning, perception, simulation etc.
ROS is released under the terms of the BSD license, and is open source software. It is free for commercial and research use. The ros-pkg contributed packages are licensed under a variety of open source licenses.
Applications
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
- Perception
- Object Identification
- SegmentationSegmentation (image processing)In computer vision, segmentation refers to the process of partitioning a digital image into multiple segments . The goal of segmentation is to simplify and/or change the representation of an image into something that is more meaningful and easier to analyze...
and recognition - Face recognitionFacial recognition systemA facial recognition system is a computer application for automatically identifying or verifying a person from a digital image or a video frame from a video source...
- Gesture recognitionGesture recognitionGesture recognition is a topic in computer science and language technology with the goal of interpreting human gestures via mathematical algorithms. Gestures can originate from any bodily motion or state but commonly originate from the face or hand. Current focuses in the field include emotion...
- Motion trackingVideo trackingVideo tracking is the process of locating a moving object over time using a camera. It has a variety of uses, some of which are: human-computer interaction, security and surveillance, video communication and compression, augmented reality, traffic control, medical imaging and video editing...
- Ego-motion
- Motion understanding
- Structure from motionStructure from motionIn computer vision structure from motion refers to the process of finding the three-dimensional structure of an object by analyzing local motion signals over time....
(SFM) - Stereo visionStereopsisStereopsis refers to impression of depth that is perceived when a scene is viewed with both eyes by someone with normal binocular vision. Binocular viewing of a scene creates two slightly different images of the scene in the two eyes due the the eyes' different positions on the head...
: depth perception via two cameras - motion
- Mobile robotics
- control
- planning
- grasping
Ports to robots and boards
- PR2 personal robot being developed at Willow Garage
- PR1 personal robot developed in Ken Salisbury's lab at Stanford
- HERB developed at CMU in Intel's personal robotics program
- STAIR I and II robots developed in Andrew NgAndrew NgAndrew Ng is an Associate Professor in the Department of Computer Science at Stanford University. His work is primarily in machine learning and robotics. He received his PhD from Carnegie Mellon University and finished his postdoctoral research in the University of California, Berkeley, where he...
's lab at Stanford - http://people.mech.kuleuven.be/%7Eu0062536/embsensor.html: the robotics lab of the Katholieke Universiteit LeuvenKatholieke Universiteit LeuvenThe Katholieke Universiteit Leuven is a Dutch-speaking university in Flanders, Belgium.It is located at the centre of the historic town of Leuven, and is a prominent part of the city, home to the university since 1425...
, BelgiumBelgiumBelgium , officially the Kingdom of Belgium, is a federal state in Western Europe. It is a founding member of the European Union and hosts the EU's headquarters, and those of several other major international organisations such as NATO.Belgium is also a member of, or affiliated to, many...
has ported ROS to the Beagleboard - Nao humanoid: University of FreiburgUniversity of FreiburgThe University of Freiburg , sometimes referred to in English as the Albert Ludwig University of Freiburg, is a public research university located in Freiburg im Breisgau, Baden-Württemberg, Germany.The university was founded in 1457 by the Habsburg dynasty as the...
's Humanoid Robots Lab developed a ROS integration for the Nao humanoidNao (robot)Nao is an autonomous, programmable, medium-sized humanoid robot, developed by Aldebaran Robotics, a French startup company headquartered in Paris. Project Nao was launched in 2004. On August 15, 2007, Nao replaced Sony's robot dog Aibo as the robot used in the Robot Soccer World Cup Standard... - Husky A200 robot developed (and integrated into ROS) by Clearpath Robotics