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

604
views

Published on

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
604
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
28
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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•