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

Uploaded on


More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
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•