0% found this document useful (0 votes)
118 views

Welcome To ROS Topics

ROS is an open-source robot operating system that supports the development of personal robots. It provides libraries, tools and message-passing functionality to facilitate collaboration between researchers. ROS uses a distributed computational graph model where nodes communicate via topics. It employs software engineering practices like testing and releases to manage complexity in the large, open-source project. The document introduces ROS and provides resources for getting started.

Uploaded by

Van Tung Ha
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
118 views

Welcome To ROS Topics

ROS is an open-source robot operating system that supports the development of personal robots. It provides libraries, tools and message-passing functionality to facilitate collaboration between researchers. ROS uses a distributed computational graph model where nodes communicate via topics. It employs software engineering practices like testing and releases to manage complexity in the large, open-source project. The document introduces ROS and provides resources for getting started.

Uploaded by

Van Tung Ha
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

R O S T O P I C S

Welcome to ROS Topics


Steve Cousins

R
obot operating system (ROS) is a free and open- ROS is available for commercial as well as noncommercial
source system that has grown out of a novel collabo- use. The software is licensed under BSD or Apache 2.0 licenses,
ration between industry and academia. This column and the system is designed to be able to include components
is designed to introduce you and help track this important written under various GNU licenses as well. Every package in
community effort. The latest information about ROS will ROS is clearly labeled with its licensing terms so that research-
always be available on the Web (http://ros.org). My goal is to ers and developers can immediately know which components
help you decide whether or not to download and try the sys- can be incorporated into their work.
tem. In future columns, I’ll write about the latest develop-
ments in ROS and its progress in the ROS community. What Is ROS?
ROS is a thin, message-based, tool-based system designed for
Why ROS? mobile manipulators. The system is composed of reusable libra-
ROS is an open source-software platform designed to support a ries that are designed to work independently. The libraries are
new generation of personal robots. Personal robots move around in wrapped with a thin message-passing layer that enables them to
a human environment and interact with the same objects people be used by and make use of other ROS nodes. Messages are
use. These robots are sometimes called service robots or mobile manip- passed peer to peer and are not based on a specific programming
ulators. Think of Rosie from The Jetsons, but without the attitude. language; nodes can be written in Cþþ, Python, C, LISP,
Robots in this class today include the PR2 from Willow Garage, Octave, or any other language for which someone has written a
the HRP2 from Kawada Industries, and a number of academic ROS wrapper. ROS is based on a Unix-like philosophy of build-
prototypes such as the STAIR robots from Stanford University, ing many small tools that are designed to work together (more
HERB from Intel/CMU, and El-E from Georgia Tech. on that in a bit). ROS grows out of a collaboration between
Personal robotics research builds on many other subfields of industry and academia and is a novel blend of professional soft-
robotics. Because these robots move around in the world, they ware development practices and the latest research results.
make use of the research results from mobile robotics for the past Software libraries and ROS nodes are organized into pack-
20 years, including SLAM and many navigation algorithms. ages, stacks, and ultimately Apps. Packages can contain any-
Robot perception (including much of computer vision) is thing: libraries, nodes, message definitions, or tools. Each
required to make sense of the world around the robot. Motion package should have enough functionality to be useful but not
planning is required to compute safe trajectories for the arms and so much as to make it heavyweight. Stacks collect sets of pack-
end effectors. To manipulate objects, grasp analysis and planning ages that together provide useful functionality. Examples of
are required, as well as reasoning about object properties (e.g., stacks are ros_core, which contains the basic infrastructure of
keep the cup upright or don’t squeeze the egg too hard). ROS, and navigation, which was used to make the PR2 auton-
This class of robots poses interesting software design chal- omously travel around an office building for 26.2 mi (a mara-
lenges. The breadth of expertise necessary to program a personal thon). The navigation stack has also been ported to other
robot is beyond the capacity of a single researcher, and it is there- platforms such as the HRP2 at the JSK laboratory in Tokyo.
fore necessary to simplify the integration of different software Applications are similar to stacks but package up an executable
libraries from different institutions. Perception and planning are robot program instead of just a library of reusable functionality.
computationally expensive, so supporting many processors is a A ROS system is a computation graph consisting of a set of
requirement. Robotics is a challenging systems integration prob- nodes communicating with one another over edges. The com-
lem and requires a rich set of tools to successfully manage the munication consists of messages that are organized by topics.
complexity. Personal robotics software is necessarily complex, so ROS contains tools for inspecting the graph and monitoring
the software system requires modern software engineering tech- what is being said by node or by topic. One of the basic tools
niques such as continuous testing and integration to be success- of ROS, rostopic, allows a command-line user to see what is
ful. Finally, since robots operate in the real world, the system being said about a topic, how frequently messages are being
must support efficient communication between its components published, etc. That’s where this column gets its name.
and be able to support real-time components. ROS provides an In addition to rostopic, ROS contains many useful tools.
approach for each of these challenges. There is a set of tools for finding or creating packages, resolving
dependencies, and compiling them. There are tools for visual-
Digital Object Identifier 10.1109/MRA.2010.935808 izing the running system and graphing the output of nodes in

MARCH 2010 IEEE Robotics & Automation Magazine 13


the system. ROS contains a very powerful Large distributed software projects
visualizer, based on Ogre, that can display require discipline to avoid exponential
a three-dimensional (3-D) rendering of complexity, but software engineering
what the robot is perceiving in its envi- process can be at odds with flexible,
ronment. All of the messages in the sys- open-community development. ROS
tem, including output from cameras and uses two key software engineering tech-
other sensors and all motor-control com- niques to manage the complexity: testing
mands, can be logged and played back and releases. Automated software tests are
later using record and playback tools run every time a change is checked in,
provided. and notifications are automatically sent
ROS is designed to help researchers when the tests fail. When improvements
leverage one another’s work, so it has tools in one part of the system break another,
to support multisite collaborative devel- tests can help warn developers that their
opment. The ROS-built system supports changes may have unintended conse-
a federated development model, where quences. Releases help ensure that the
organizations can make code available in stability of the code base by locking down
repositories, and other organizations can application programming interfaces (APIs)
easily incorporate components from those and verifying that documentation, tutori-
repositories into their own work. The als, tests, and sample code are in place.
basic ROS tools make it easy to locate, Researchers can choose to live on the
download, compile, and integrate code from other sites in the bleeding edge with the latest code or use a recent stable release
community. of ROS stacks.

Getting Started with ROS


To get started using ROS, just go to http://ros.org and follow
the installation instructions and getting started the links. As of this
writing, there are around 175 tutorials documenting the released
stacks. The getting started pages will guide you through the initial
tutorials. If you begin with an Ubuntu or other supported Linux
system, you should be up and running in well under an hour.
The initial release, ROS 1.0, contains around 50 stacks and
hundreds of packages, so spending some time understanding
what’s there could help you to avoid reinventing the wheel. As
of this writing, there are 15 repositories from around the world
in the federation. These packages are not part of the formal
release but have a wide range of useful functionality. ROS has
an active mailing list called ROS users that new users should
subscribe to. The community is very supportive of new users.

ROS Community
The ROS community began with a core group of developers at
Stanford and Willow Garage. Morgan Quigley, Brian Gerkey,
Ken Conley, and Eric Berger had all worked previously on soft-
ware systems for distributed systems or robotics (or both). The
original ROS core team included Jeremy Leibs, Tully Foote,
Josh Faust, and Rob Wheeler. By now, the ROS community
includes almost 40 software developers at Willow Garage,
numerous members of the academic robotics community at
dozens of institutions, and researchers at other companies,
notably, Intel and Bosch.

Address for Correspondence: Steve Cousins, Willow Garage,


Inc., 68 Willow Road, Menlo Park, CA 94025 USA. E-mail:
[email protected].

14 IEEE Robotics & Automation Magazine MARCH 2010

You might also like