ROS R obot O perating S ystem

21
ROS ROBOT OPERATING SYSTEM Cyber-Physical Systems Lab @ ASU Professor Georgios Fainekos Presnted by Ramtin Kermani

description

Cyber-Physical Systems Lab @ ASU. ROS R obot O perating S ystem. Professor Georgios Fainekos. Presnted by Ramtin Kermani. ROS: the motivation. What is ROS?. - PowerPoint PPT Presentation

Transcript of ROS R obot O perating S ystem

Page 1: ROS R obot  O perating  S ystem

ROSROBOT OPERATING SYSTEM

Cyber-Physical Systems Lab @ ASU

Professor Georgios FainekosPresnted by Ramtin Kermani

Page 2: ROS R obot  O perating  S ystem

ROS: the motivation

Page 3: ROS R obot  O perating  S ystem

What is ROS? Robot Operating System (ROS) is an open source

software framework for robot software development, providing operating system-like functionality on a heterogeneous computer cluster

ROS provides standard operating system services such as hardware abstraction, (USB drive) low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management provides tools and libraries for obtaining, building, writing, and running

code across multiple computers

Page 4: ROS R obot  O perating  S ystem

What is ROS? Originally developed by the Stanford Artificial

Intelligence Laboratory in 2007

In Custody of WillowGarage since then

ROS is similar in some respects to 'robot frameworks,' such as Player, YARP, Orocos, CARMEN, Orca, MOOS, and Microsoft Robotics Studio

Page 5: ROS R obot  O perating  S ystem

Hobby Robotics Evolution Micro Controller Brain

Sumo Line follower Maze solver Firefighting ...

Higher level logic benefits from PC Magellan Robot arm ...

Higher level logic requires PC LEAF SLAM …

Page 6: ROS R obot  O perating  S ystem

But soon you hit a ceiling since ...You develop: Your own logging You write your own messaging infrastructure (protocols) Your own coordinate system transformations Your own joystick driver Your own basic navigation logic Your own basic vision system ... And you never catch up!

Page 7: ROS R obot  O perating  S ystem

Why ROS? Writing low level code for robotic apps is cumbersome! Ability to reuse components Open Source Your App is interfaced with the OS not the Hardware A small Core-package, the rest Distributed Open Packages Growing Community ROS enables groups of people to work on complex projects by

providing a common and well organized framework, while adding a minimal amount of overhead

Has a rich set of bash commands: roscd, rospack, rosmake, rosnode, rostopic $roscd iRobot_package

Language independence (RosCPP, RosPY,etc) Easy Testing

Page 8: ROS R obot  O perating  S ystem

ROS availability ROS currently only runs on Unix-based

platforms. Software for ROS is primarily tested on

Ubuntu and Mac OS X systems, though the ROS community has been contributing support for Fedora, Gentoo, Arch Linux and other Linux platforms.

While a port to Microsoft Windows for ROS is possible, it has not yet been fully explored.

Page 9: ROS R obot  O perating  S ystem

ROS Conecpts: ROS Filesystem Level ROS Computation Graph Level ROS Community Level

Page 10: ROS R obot  O perating  S ystem

ROS Filesystem Level Packages: Packages are the main unit for organizing software in ROS. A

package may contain ROS runtime processes (nodes), a ROS-dependent library, datasets, configuration files, or anything else that is usefully organized together.

Manifests: Manifests (manifest.xml) provide metadata about a package.

Stacks: Stacks are collections of packages that provide aggregate functionality, such as a "navigation stack

Stack Manifests: Stack manifests (stack.xml) provide data about a stack.

Message (msg) types: Message descriptions define the data structures for messages sent in ROS.

Service (srv) types: Service descriptions define the request and response data structures for services in ROS.

Page 11: ROS R obot  O perating  S ystem

ROS File system

Page 12: ROS R obot  O perating  S ystem

ROS Computation Graph Level Nodes: Nodes are processes that perform computation.A ROS node is written with the use of a

ROS client library, such as roscpp or rospy. Master: The ROS Master provides name registration and lookup to the rest of the Computation

Graph. Without the Master, nodes would not be able to find each other, exchange messages, or invoke services.

Parameter Server: The Parameter Server allows data to be stored by key in a central location. It is currently part of the Master.

Messages: Nodes communicate with each other by passing messages. A message is simply a data structure, comprising typed fields. Standard primitive types (integer, floating point, boolean, etc.) are supported.

Topics: Messages are routed via a transport system with publish / subscribe semantics. A node sends out a message by publishing it to a given topic. The topic is a name that is used to identify the content of the message. A node that is interested in a certain kind of data will subscribe to the appropriate topic. There may be multiple concurrent publishers and subscribers for a single topic, and a single node may

publish and/or subscribe to multiple topics. For one-way transport

Services: Request / Reply is done via services, which are defined by a pair of message structures: one for the request and one for the reply.

Bags: Bags are a format for saving and playing back ROS message data. Bags are an important mechanism for storing data, such as sensor data, that can be difficult to collect but is necessary for developing and testing algorithms.

Page 13: ROS R obot  O perating  S ystem

ROS Computation Graph Level Notes

The ROS Master acts as a nameservice in the ROS Computation Graph

Nodes connect to other nodes directlyNodes are actually “Running Executables”

Page 14: ROS R obot  O perating  S ystem

ROS Community Level Distributions: ROS Distributions are collections of

versioned stacks that you can install. Distributions play a similar role to Linux distributions: they make it easier to install a collection of software, and they also maintain consistent versions across a set of software.

Repositories: ROS relies on a federated network of code repositories, where different institutions can develop and release their own robot software components.

The ROS Wiki: The ROS community Wiki is the main forum for documenting information about ROS. Anyone can sign up for an account and contribute their own documentation, provide corrections or updates, write tutorials, and more.

Bug Ticket System: Please see Tickets for information about file tickets.

Mailing Lists:

Page 15: ROS R obot  O perating  S ystem

ROS Community Level

Page 16: ROS R obot  O perating  S ystem

A ROS Architecture

Page 17: ROS R obot  O perating  S ystem

A Sample ROS graph

Communication Graph (rsgraph)

Page 18: ROS R obot  O perating  S ystem

How ROS works? The ROS runtime “Graph" is a peer-to-peer

network of processes that are loosely coupled using the ROS communication infrastructure.

Communication Infrastructure:synchronous RPC-style communication

over Services, Asynchronous streaming of data over Topics,Storage of data on a Parameter Server

Page 19: ROS R obot  O perating  S ystem

ROS

Page 21: ROS R obot  O perating  S ystem

Questions?

?