11
ROS Robot Operating System Dr. Radu Bogdan Rusu Research Scientist, Willow Garage

Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

  • Upload
    zukun

  • View
    741

  • Download
    1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

ROSRobot Operating System

Dr. Radu Bogdan RusuResearch Scientist, Willow Garage

Page 2: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

What is ROS?● Meta operating system for robotics● Obtain, build, write, and run code across

multiple computers, and multiple robots

Hello, I am Texai418

Hi, I'm a PR2 Beta

Page 3: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

ROS Concepts

I. computational graph• how programs run: master, node, topic, message,

service, parameter

II. file system• how programs are organized and built: packages,

stacks, msg, srv

III. repositories• how files are distributed online: ros-pkg, wg-ros-pkg,

tum-ros-pkg, sail-ros-pkg, ...

Page 4: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

(I) Architecture Overview● distributed processes called nodes● synchronous services● asynchronous topics● data is passed via ROS messages

Talker Listenermessage

Node1 Node2service request

service reply

*

Page 5: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

(I) Nodes● principal programming entities in ROS● they connect to each other and pass data

via topics● the discovery of who publishes on what

topic is done via a ROS master

ROS master

Talker Listener

1. who publishes on /chatter?

2. node Talker3. connect to Talker

4. start sending messages

(0. I am publishing on /chatter)

Page 6: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

(I) ROS Messages● defined in package-name/msg/.msg files,

sent over topics● basic data types: int{8,16,32,64},

float{32,64}, string, time, duration, array[]Point.msgfloat64 xfloat64 yfloat64 z

● used in ROS services, defined in package-name/srv/*.srv

Service = Request msg + Response msg

Page 7: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

(I) ROS Messages: example#This message holds a collection of nD points, as a binary blob.Header header

# 2D structure of the point cloud. If the cloud is unordered,# height is 1 and width is the length of the point cloud.uint32 heightuint32 width

# Describes the channels and their layout in the binary data blob.PointField[] fields

bool is_bigendian # Is this data bigendian?uint32 point_step # Length of a point in bytesuint32 row_step # Length of a row in bytesuint8[] data # Actual point data, size is (row_step*height)bool is_dense # True if there are no invalid points

Page 8: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

(I) master, roscore● Master

● Name service for ROS● Nodes register topics and services with Master● Nodes find each other using Master

● XML-RPC based● roscore

● Master● parameter server● rosout: logs /rosout topic for debugging

Page 9: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

(I) ROS parameters● have unique names● can represent primitive data types:

● integers● floats● boolean● dictionaries● maps, etc

● can be set and remapped at runtime● stored on the parameter server

Page 10: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

(II) Packages & Stacks● Packages = directories with a certain structure,

can contain anything: nodes, messages, tools● in their most basic form:package_name/package_name/Makefilepackage_name/CMakeLists.txtpackage_name/manifest.xml

● ROS core = small, but ROS world = many packages !!!

● Stacks = collection of packages● in their most basic form:stack_name/stack_name/package_name_1stack_name/package_name_Nstack_name/stack.xml

Page 11: Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010

(III) Repositories• collection of packages and stacks, hosted online• many repositories (>20): Stanford, CMU, TUM, etc•