Introducción a ROS

8,019 views

Published on

Creative Commons Lcense

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,019
On SlideShare
0
From Embeds
0
Number of Embeds
2,132
Actions
Shares
0
Downloads
200
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Introducción a ROS

  1. 1. Robot Operative SystemDepartamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla Pablo Iñigo Blasco Diciembre – 2010
  2. 2. Gracias por los contenidos Creative Commons de la web de ROS y de lastransparencias creadas por "Radu Bogdan Rusu" para el evento: "CoTeSys-ROS Fall School on Cognition-enabled Mobile Manipulation".Este documento en sí es Creative Commons.
  3. 3. Cuestiones/Objetivos Seminario● ¿Qué es ROS?● ¿Qué ofrece ROS respecto a otras alternativas?● ¿Por qué presenta un buen enfoque para abordar problemas de Robótica?● ¿Cómo ROS puede ayudar a mejorar las tareas de investigación en Robótica?● ¿Cómo comenzar con ROS?
  4. 4. Contenidos: Parte I● Contexto● ROS Overview● Arquitectura Distribuida de ROS● Herramientas● Ejemplos Áreas de la robótica abordados● Mas Software existente
  5. 5. Contenidos: Parte II● Aspectos técnicos● Ejemplos● Demos● Tutoriales● Interacción
  6. 6. Contenidos: Parte II● Parte II (Utilizando ROS) ● Demostraciones ● PARTE I ● Grupo de Trabajo CARLUS-ROS-PKG ROS Overview ● DEMO: – Simulator PR2 – Open Doors
  7. 7. Contexto: Enfoque● ROS ● Robots autónomos e inteligentes ● Sociedad robotizada ● Robots en hogares y tareas domésticas● ATC ● Tecnologías de la Rehabilitación ● Cuidado de Mayores ● Inteligencia ambiental/Arquitecturas distribuidas ● Interacción hombre/máquina
  8. 8. Contexto: Futuro de la Robótica● Robots autónomos e inteligentes● Entornos desesctructurados● Interacción con el ser humano● Tareas Domésticas● Trabajadores Robots● Sociedad Robotizada● Inteligencia Ambiental
  9. 9. Contexto: Problemas en mercado● Mercado robots industriales maduro● Mercado robots autónomos muy pequeño ● Excepción Nipona● Necesidades desapercividas por el consumidor● Falta de detonantes (ej: Iphone)● Situación de bloqueo
  10. 10. Contexto: Industria (robots autónomos)● Investigación es privada● Complejidad en la creación de productos ● Necesidad de no empezar de cero● Carencia de ecosistema de proveedores● Riesgo● Alta inversión y poco retorno● Resistencia al cambio● ¿Todavía demasiado pronto?
  11. 11. Contexto: Investigación académica● Adelantada respecto la industria y mercado● Pruebas de concepto● Poco feedback Universidad ↔ Empresa● Perdida tiempo en infraestructura → Soluciones teóricas o simuladas● Problemas de reutilización → problemas en la colaboración (cada uno hace lo que cree)
  12. 12. Problemas Fundamentales● El tamaño del proyecto● El conocimiento
  13. 13. Contexto: Necesidades proyectos medios y grandes● Explosión de requerimientos software ● Ubicuidad ● Herramientas: desarrollo, configuración, debugging ● Arquitecturas mas robustas y flexibles● Procedimientos de ingeniería del software● Trabajo en equipo● Reutilización del software● Reutilización del conocimiento
  14. 14. Contexto: Robótica Distribuida y RSFs● Solución: Orientación a Servicios y Componentes● Programación Distribuida propósito general ● TCP/IP, CORBA, ACE, etc.● Robotic software frameworks ● Player, Orca, YARP, OROCOS, CARMEN, OpenRTM-AIST, JADE, MSRS, Open-RTM, JDE+, JADE● Mejora la situación. Pero se necesitan mas mejoras.
  15. 15. Contexto: Player SO SO laser map amcl motors Player Server ConfigInterfaces establesPatrón proxy Client Client ¿comunicación?
  16. 16. ROS Overview: ¿Qué es?● Meta-Sistema Operativo● (RSF) Framework para el desarrollo de sistemas robótocos● Arquitectura robótica desplegada en múltiples máquinas
  17. 17. ROS Overview: ¿Qué es?A simple vista:● Software robótico enlatado Building Blocks (librerías, aplicaciones,...)● Herramientas de desarrollo● Herramientas de inspección y depuración● Sistema de paqueteríaVa mas allá:● Procesos, metodología● Comunidad, Investigación: Democratización de la robótica
  18. 18. ROS Overview: Meta-Sistema Oeperativo
  19. 19. ROS Overview: Filosofía● Reusabilidad● Ubicuidad● Escalabilidad● Integración del software existente y futuro!!!● Software libre● Enfoque científico pero aplicado ● Papers, libros, referencias, etc.
  20. 20. ROS Overview: Meta Systema Operativo
  21. 21. ROS Overview: Ejemplos de “Aplicaciones finales”● Robot PR2 ● Repartir Cerveza ● Enchufarse ● Recojer la basura de la casa en un carrito ● Jugar a las torres de Hanoi ● Abrir puertas
  22. 22. Capabilities● Cinemática● Vision & Object Recognition● Localization● Motion Planning/Navigation● Mapping● Grasping● Object manipulation● Machine Learning
  23. 23. ROS Overview: Meta-Sistema Operativo
  24. 24. ROS Overview: Organización de Software
  25. 25. ¿Por qué escoger ROS?● Llegar mas allá en nuestros proyectos● Una metodología y unos convenios definidos para el desarrollo de software en robótica.● Fomentará la interacción con otros grupos de investigación
  26. 26. ROS Overview: Organización de Software PACKAGE - Nodos - Herramientas - Librerías - Definición de Mensajes - Definición de Servicios - Configuraciones despliegue
  27. 27. ROS Overview: Comunidad Federación de repositorios con software para robots. En 2010: • Casi 200 Stacks • Mas de 100 Packages • Unos 50 Repositorios Federados• ROS: Wiki unificada y uniforme• Importancia de la integración sobre el desarrollo
  28. 28. ROS.orgDEMO WIKI
  29. 29. ROS Overview: Historia
  30. 30. ROS Overview: Objetivo
  31. 31. ROS Overview: Robots
  32. 32. ROS Overview: Otras características● Multi Lenguaje ● C++, python, Java, Octave, Lisp, RxLab● Plataformas ● Linux, MacOS ● X86 y ARM
  33. 33. ROS Overview: Origen Stanford● Stanford IA Lab● Stanfor Research Institute● Gary Bradski (OpenCV)● Brian Gerkley (Player)● Oussama Khatib (Potential Fields)● Jean-Claude Latobme (Robot Motion Planning)● Sebastian Thrun (Probabilistic Robotics)● Proyectos ● STAIR, OpenCV, Player/Stage, Darpa Grand Challenge, etc. http://www.stanford.edu/class/cs294b/teamMembers.html
  34. 34. PARTE IArquitectura ROS
  35. 35. ROS vs Player● Player ● Arquitectura cliente/servidor ● Mecanismo de desacoplamiento – Servicios ● Uso de ficheros de configuración● ROS ● Arquitectura Distribuida P2P/Híbrida ● Mecanismo de desacoplamiento – Servicios – Mensajes ● Ej: Nube de puntos kinect, vs videre, vs hyokoyu
  36. 36. ROS: Arquitectura
  37. 37. Mecanismos de reusabilidad● Servicios estandarizados● Mensajes estandarizados● Facilidad para la composición● Múltiples procesos● Interacción mediante capa de transporte agnóstica● Independencia del Lenguaje
  38. 38. Arquitectura P2P Híbrida Machine 1 HW Machine 2 properties Node Node SO Node NodeRos Master config topic Launch File topic
  39. 39. Arquitectura: P2P Híbrida
  40. 40. Nodos ● Primitiva de funcionalida ● Sincronos Properties (*) ● Simple hilos ● Proceso (convenio) ● Dinámicos ServicesTopics msg msg Config.yaml
  41. 41. Ejemplo de “Driver” Properties Services Usb= “dev /ttyUSB3” Freq= 30 On/Off Coordinate_frame=”head” Change Units Sensor Fussion IMU #inclue <ros/ros.h> #include <common_msgs/Pose.h>” Topics #include <stdio.h> Void Main () { Robot Pose //create Node .... //create service On_Off .... //advertise topic RobotPose Open(..) //usb to read drivers }*En realidad las properties se almacenan en el rosmaster no enlos nodos, aunque conceptualmente Puede verse como parámetrosde configuración de uno o varios nodos. De ahí la representación propuesta.
  42. 42. Ejemplo de “capacidad” Localización mediante EKF● robot_pose_efk /odom robot_pose_ekf /odom_combined /imu_data sensor_timeout=1 Freq=30 ...
  43. 43. Ejemplo de “capacidad”: SLAM● Librería OpenSlam● Paquete slam_gmapping● Nodo como una capacidad (framework) openslam.lib /dynamic_map /tf /gmapping/tf_frames gmapping /clock /map_metadata /laser_scan /map --------- --------- --------- /gmapping_entropy ---------
  44. 44. DEMO explore_stage
  45. 45. Composición de funcionalidad: Launch Files● Componentes de alto nivel (capacidades)● Aplicaciones (finales)● Configuración inicial pero evolución dinámica Launch● Posibilidad de distintas máquinas, etc. Launch Ros Master Launch
  46. 46. Arquitectura ROS: Ros Master● Servicios de nombres● Servicios de páginas amarillas● Almacén de propiedades● Singleton
  47. 47. Mecanismos de Interacción de alto Nivel● Action● State Machines/ Workflows● Ejemplo paper toallas
  48. 48. Eficiencia en el Transporte● También existen paquetes con librerias ● Funcionalidad extra para traducción a tipos de mensaje, servicios, etc. ● Ejemplo KDL, OpenCV, PCL● Nodelets ● Nodos en el mismo proceso● ros_realtime● Comprueben experimentalmente la frecuencia de los topics
  49. 49. PARTE IHerramientas
  50. 50. Herramientas● Desarrollo ● Rosmake, rxdeps, genmsg, roslocate, rosmsg, rosrv, gtests, cmake, rosbag, roscd● Inspección y Monitorización ● Rviz, rostopic, rosconsole,rxgraph, rosnode, rxplot● Despliegue y Configuración ● Rosrun, roslaunch, yaml● Documentación: Ros.org, code.ros.org● Simulación● Otras herramientas (no core) ● (parte II)
  51. 51. DEMO PR2 - GAZEBO
  52. 52. PARTE IParadigmas Abordados
  53. 53. Cinemática y Sistemas de Referencia● TF● KDL● URDF● Robot State Publisher● Joint State Publisher● Arm Kinematics
  54. 54. TF● Dónde estaba el frame de la cabeza relativo al frame del mundo hace 5 segundos?● Cúal es la pose del frame del objeto respecto a las garras de mi brazo robótico?● Cúal es la pose actual de la base actual del robot respecto a la baase de otro robot? http://www.ros.org/wiki/tf
  55. 55. DEMO Brazo Robótico
  56. 56. SLAM● VSlam ● Presentación ● Paper ● Tutorial● gmapping● kartoMapping● graphmapping
  57. 57. Motion Planning● Sampling Based Planning Methods (ompl) ● RRT, EST, SBL● Métodos discretos (sbpl) ● AD*, D*, ARA*● Métodos con consideraciones dinámicas y cinemáticas ● CHOMP, STOMP
  58. 58. PARTE IMas Software
  59. 59. Drivers Útiles ATC● Kinect● Cámara Stereo Vídere● Laser Hokuyo● Erratic● Cámaras● IMU● Arduino?● Joysticks
  60. 60. ROS y sistemas multi agentes● Infrestructura necesaria para su desarrollo● Arquitectura distribuida híbrida● Sistemas de páginas amarillas● Interacción: servicios, topics, parámetros
  61. 61. UAVs● UAVs Using ROS
  62. 62. Desventajas de ROS● Objetivos muy ambiciosos ● Tratar con software muy varirado (librerías hechas a imagen y semejanza del autor)● Integrar aplicaciones no es inmediato ● Leer documentación ● Revisar código hecho ● Depurar● Curva de aprendizaje relativamente costosa● Exponer una librería en ROS tampoco es gratis● Continuos cambios y evolución (software obsoleto)● No soporte (por ahora) para Windows u otros sistemas empotrados● Desesperante cantidad de sotware (también hay paja)
  63. 63. Ventajas● Inumerables● Reducir el tiempo invertido en infraestructura y centrate en la investigación● Abordar en problemas de alto nivel● Te permite acelerar el aprendizaje ● Viendo código de otros ● Viendo documentación de otros● Fomenta el trabajo en equipo y establece convenios, procesos y metologías para hacer software reusable.
  64. 64. GRACIAS

×