Your SlideShare is downloading. ×
Cvpr2010 open source vision software, intro and training part vi robot operating system - rusu - unknown - 2010
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

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


Published on

Published in: Technology

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. ROSRobot Operating System Dr. Radu Bogdan Rusu Research Scientist, Willow Garage
  • 2. 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, Im a PR2 Beta
  • 3. ROS ConceptsI. computational graph • how programs run: master, node, topic, message, service, parameterII. file system • how programs are organized and built: packages, stacks, msg, srvIII. repositories • how files are distributed online: ros-pkg, wg-ros-pkg, tum-ros-pkg, sail-ros-pkg, ...
  • 4. (I) Architecture Overview● distributed processes called nodes● synchronous services● asynchronous topics● data is passed via ROS messages message Talker Listener * service request Node1 Node2 service reply
  • 5. (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 (0. I am publishing on /chatter) 1. who publishes on /chatter? ROS master 2. node Talker 3. connect to Talker Talker Listener 4. start sending messages
  • 6. (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/*.srvService = Request msg + Response msg
  • 7. (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[] fieldsbool 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
  • 8. (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
  • 9. (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
  • 10. (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
  • 11. (III) Repositories• collection of packages and stacks, hosted online• many repositories (>20): Stanford, CMU, TUM, etc•