Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Robot Operating Systems (Ros) Overview & (1)

1.926 visualizaciones

Publicado el

  • Inicia sesión para ver los comentarios

Robot Operating Systems (Ros) Overview & (1)

  1. 1. Piyush Chand (Master Student) NEC Europe Laboratories Ltd. Date: 3/02/2011 Robot Operating Systems (ROS) Overview & Kinect XBOX 360 Demonstration
  2. 2. Introduction <ul><li>ROS(Robot Operating System) </li></ul><ul><li>ROS Classification </li></ul><ul><li>Service Invocation in ROS </li></ul><ul><li>Technical Overview: ROS </li></ul><ul><li>Technical Overview: Kinect XBOX 360 </li></ul><ul><li>OpenNI Framework </li></ul><ul><li>OpenNI: Abstract Layered view </li></ul><ul><li>Kinect: Process of Tracking </li></ul><ul><li>Kinect Demonstration </li></ul>
  3. 5. ROS Levels <ul><li>ROS File system Level </li></ul><ul><li>Packages: Packages are the main unit for organizing software in ROS. </li></ul><ul><li>Manifests: Manifests (manifest.xml) provide metadata about a package, including its license information and dependencies, as well as language-specific information such as compiler flags. </li></ul><ul><li>Stacks: Stacks are collections of packages that provide aggregate functionality, such as a &quot;navigation stack.&quot; </li></ul><ul><li>Stack manifests: Stack manifests (stack.xml) provide data about a stack, including its license information and its dependencies on other stacks. </li></ul><ul><li>Message: Message descriptions, define the data structures for messages sent in ROS. Example: my_package/msg/MyMessageType.msg </li></ul><ul><li>Service: Service descriptions, define the request and response data structures for services in ROS. </li></ul><ul><li>Example: my_package/srv/MyServiceType.srv </li></ul>
  4. 6. <ul><li>ROS Computation Graph Level </li></ul><ul><li>Nodes: Nodes are combined together into a graph and communicate with one another using streaming topics, RPC services, and the Parameter Server. </li></ul><ul><li>ROS Master: The ROS Master provides naming and registration services to the rest of the nodes in the ROS system. </li></ul><ul><li>Parameter Server: A parameter server is a shared, multi-variate dictionary that is accessible via network APIs. The Parameter Server is implemented using XMLRPC and runs inside of the ROS Master, which means that its API is accessible via normal XMLRPC libraries. </li></ul><ul><li>Nodes communication: Nodes communicate with each other by passing messages. A message is a simply a data structure, comprising typed fields </li></ul><ul><li>Topics: Topics are named buses over which nodes exchange messages based on publish / subscribe policy. </li></ul><ul><li>Service: Request / reply is done via a Service, which is defined by a pair of messages. </li></ul><ul><li>Bags: Bags are a format for saving and playing back ROS message data. </li></ul>
  5. 7. Service Invocation
  6. 8. <ul><li>Higher-Level Concepts </li></ul><ul><li>Coordinate Frames/Transforms: The tf package provides a distributed, ROS-based framework for calculating the positions of multiple coordinate frames over time. </li></ul><ul><li>Actions/Tasks: The actionlib package defines a common, topic-based interface for pre-emptible tasks in ROS. </li></ul><ul><li>Message Ontology: The common_msgs stack provide a base message ontology for robotic systems. These includes messages for actions (actionlib_msgs), diagnostics (diagnostic_msgs), geometric primitives (geometry_msgs), robot navigation (nav_msgs), and common sensors (sensor_msgs), such as laser range finders, cameras, point clouds. </li></ul><ul><li>Plugins : pluginlib provides a library for dynamically loading libraries in C++ code. </li></ul><ul><li>Filters: The filters package provides a C++ library for processing data using a sequence of filters. </li></ul><ul><li>Robot Model : The URDF(Unified Robot Description Format)package defines an XML format for representing a robot model and provides a C++ parser. </li></ul>
  7. 9. <ul><li>The  ActionClient  and  ActionServer  communicate via a  &quot;ROS Action Protocol&quot; , which is built on top of ROS messages. The client and server then provide a simple API for users to request goals (on the client side) or to execute goals (on the server side) via function calls and callbacks. Looks like the JAVA RMI(Remote Method Invocation). </li></ul>
  8. 10. MIT ROS Piano Example
  9. 11. ROS based Navigation System <ul><li>The ROS navigation process provides the following functionality: </li></ul><ul><li>Path planning </li></ul><ul><li>Obstacle avoidance </li></ul><ul><li>Automatic map making </li></ul>
  10. 12. Technical Overview: Kinect XBOX 360 <ul><li>Sensor 3D sensor </li></ul><ul><li>RGB camera </li></ul><ul><li>IR camera </li></ul><ul><li>Audio device (a microphone or an array of microphones) </li></ul><ul><li>Field of View Horizontal field of view: 57 degrees Vertical field of view: 43 degrees Physical tilt range: ± 27 degrees Depth sensor range: 1.2m – 3.5m </li></ul><ul><li>Data Streams 320×240 16-bit depth@ 30 frames/sec 640×480 32-bit color@ 30 frames/sec 16-bit audio @ 16 kHz </li></ul><ul><li>Skeletal Tracking System Tracks up to 6 people, including 2 active players Tracks 20 joints per active player Ability to map active players to LIVE Avatars </li></ul>
  11. 13. OpenNI Framework <ul><li>The OpenNI framework, provides an application programming interface (API) for writing applications utilizing natural interaction. </li></ul><ul><li>This API covers communication with both low level devices (e.g. vision and audio sensors), as well as high-level middleware solutions (e.g. for visual tracking using computer vision). </li></ul>
  12. 14. Kinect: Abstract Layered View
  13. 15. Process of Tracking <ul><li>Production Nodes: Process of creating the data required for Natural Interaction. Example: User Generator, Depth Generator </li></ul><ul><li>User Generator Node: Production node that produces body data. </li></ul><ul><li>Depth Generator Node: A production node that is implemented by a sensor, which takes raw sensory data from a depth sensor (for example, a stream of X frames per second) and outputs a depth map. </li></ul><ul><li>Production Chains: The sequence of nodes (user generator => depth generator), is reliant on each other in order to produce the required body data, and is called a Production Chain. </li></ul>
  14. 16. User Generator Node Depth Generator Node Chain Production Node
  15. 17. Florence Project Example <ul><li>Node functionality </li></ul><ul><li>Wany robot </li></ul>
  16. 18. References: <ul><li>Benjamin Cohen: University of pennsylvania, Starting with ROS, 4/09/2010 </li></ul><ul><li>Florence Multi Purpose Mobile Robot for Ambient Assisted Living ICT-2009-248730 </li></ul><ul><li>ROS Introduction: </li></ul><ul><li>OpenNi User Guide: downloaded from </li></ul><ul><li>Kinect Specifications : </li></ul>
  17. 19. Kinect Demonstration: <ul><li>Skeleton Tracker </li></ul><ul><li>Cursor Control </li></ul><ul><li>Wave Gesture, Hand Tracking </li></ul><ul><li>GL view, OpenGL (Open Graphics Library) </li></ul>
  18. 20. <ul><li>Thank You very much.........!!!! </li></ul><ul><li> </li></ul>