SlideShare una empresa de Scribd logo
1 de 64
Descargar para leer sin conexión
Robot Operative System
Departamento de Arquitectura y Tecnología de Computadores
                 Universidad de Sevilla




                                   Pablo Iñigo Blasco
                                       Diciembre – 2010
Gracias por los contenidos Creative Commons de la web de ROS y de las
transparencias creadas por "Radu Bogdan Rusu" para el evento: "
CoTeSys-ROS Fall School on Cognition-enabled Mobile Manipulation".


Este documento en sí es Creative Commons.
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?
Contenidos: Parte I

●   Contexto
●   ROS Overview
●   Arquitectura Distribuida de ROS
●   Herramientas
●   Ejemplos Áreas de la robótica abordados
●   Mas Software existente
Contenidos: Parte II

●   Aspectos técnicos
●   Ejemplos
●   Demos
●   Tutoriales
●   Interacción
Contenidos: Parte II
●   Parte II (Utilizando ROS)
    ●   Demostraciones
    ●

                              PARTE I
    ●   Grupo de Trabajo CARLUS-ROS-PKG
                      ROS Overview
    ●   DEMO:
        –   Simulator PR2 – Open Doors
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
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
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
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?
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)
Problemas Fundamentales

●   El tamaño del proyecto

●   El conocimiento
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
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.
Contexto: Player
       SO                                 SO

              laser   map   amcl motors


                      Player Server
                                                   Config




Interfaces estables
Patrón proxy



     Client                               Client

                      ¿comunicación?
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
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ía
Va mas allá:
●   Procesos, metodología
●   Comunidad, Investigación: Democratización de la
    robótica
ROS Overview: Meta-Sistema
       Oeperativo
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.
ROS Overview: Meta Systema
        Operativo
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
Capabilities

●   Cinemática
●   Vision & Object Recognition
●   Localization
●   Motion Planning/Navigation
●   Mapping
●   Grasping
●   Object manipulation
●   Machine Learning
ROS Overview: Meta-Sistema
        Operativo
ROS Overview: Organización de
          Software
¿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
ROS Overview: Organización de
          Software

           PACKAGE
     - Nodos
     - Herramientas
     - Librerías
     - Definición de Mensajes
     - Definición de Servicios
     - Configuraciones despliegue
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
ROS.org




DEMO WIKI
ROS Overview: Historia
ROS Overview: Objetivo
ROS Overview: Robots
ROS Overview: Otras
               características
●   Multi Lenguaje
    ●   C++, python, Java, Octave, Lisp, RxLab
●   Plataformas
    ●   Linux, MacOS
    ●   X86 y ARM
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
PARTE I

Arquitectura ROS
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
ROS: Arquitectura
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
Arquitectura P2P Híbrida

                          Machine 1                    HW    Machine 2

 properties
                 Node


                                         Node   SO


                                                Node
                   Node
Ros Master                                                  config




         topic                                              Launch File
                                 topic
Arquitectura: P2P Híbrida
Nodos
 ●   Primitiva de funcionalida
 ●   Sincronos                         Properties (*)

 ●   Simple hilos
 ●   Proceso
     (convenio)

 ●   Dinámicos                        Services




Topics
                  msg

                        msg
                                       Config.yaml
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 en
los nodos, aunque conceptualmente Puede verse como parámetros
de configuración de uno o varios nodos. De ahí la representación propuesta.
Ejemplo de “capacidad”
          Localización mediante EKF
●   robot_pose_efk


            /odom
                                   robot_pose_ekf
                                                    /odom_combined
    /imu_data




                sensor_timeout=1
                Freq=30
                ...
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
                        ---------
DEMO explore_stage
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
Arquitectura ROS: Ros Master


●   Servicios de nombres
●   Servicios de páginas
    amarillas
●   Almacén de propiedades
●   Singleton
Mecanismos de Interacción de alto
            Nivel
●   Action
●   State Machines/ Workflows
●   Ejemplo paper toallas
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
PARTE I

Herramientas
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)
DEMO PR2 - GAZEBO
PARTE I

Paradigmas Abordados
Cinemática y Sistemas de
                Referencia
●   TF
●   KDL
●   URDF
●   Robot State Publisher
●   Joint State
    Publisher
●   Arm Kinematics
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
DEMO Brazo Robótico
SLAM

●   VSlam
    ●   Presentación
    ●   Paper
    ●
        Tutorial
●   gmapping
●   kartoMapping
●   graphmapping
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
PARTE I

Mas Software
Drivers Útiles ATC
●   Kinect
●   Cámara Stereo Vídere
●   Laser Hokuyo
●   Erratic
●   Cámaras
●   IMU
●   Arduino?
●   Joysticks
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
UAVs
●   UAVs Using ROS
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)
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.
GRACIAS

Más contenido relacionado

La actualidad más candente

Trabajo opengl
Trabajo openglTrabajo opengl
Trabajo opengl
makapxndx
 
Algoritmos if y case
Algoritmos if y caseAlgoritmos if y case
Algoritmos if y case
Abbie Ulrich
 
Problemas de desempeño en las redes de cómputo
Problemas de desempeño en las redes de cómputoProblemas de desempeño en las redes de cómputo
Problemas de desempeño en las redes de cómputo
pabloanibaltabango
 
Que es y para que sirve el DNS
Que es y para que sirve el DNSQue es y para que sirve el DNS
Que es y para que sirve el DNS
Rosariio92
 

La actualidad más candente (20)

Presentacion Python
Presentacion  Python Presentacion  Python
Presentacion Python
 
Problema 8 puzzle
Problema 8 puzzleProblema 8 puzzle
Problema 8 puzzle
 
Ventajas y Desventajas de la POO
Ventajas y Desventajas de la POOVentajas y Desventajas de la POO
Ventajas y Desventajas de la POO
 
Ethernet tutorial
Ethernet tutorialEthernet tutorial
Ethernet tutorial
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
ejercicios php rfo
ejercicios php rfoejercicios php rfo
ejercicios php rfo
 
Direcciones ip
Direcciones ipDirecciones ip
Direcciones ip
 
1. Metodologia PPDIOO.pptx
1. Metodologia PPDIOO.pptx1. Metodologia PPDIOO.pptx
1. Metodologia PPDIOO.pptx
 
Trabajo opengl
Trabajo openglTrabajo opengl
Trabajo opengl
 
IP Privadas y Publicas
IP Privadas y PublicasIP Privadas y Publicas
IP Privadas y Publicas
 
Instalacion de asterisk centos
Instalacion de asterisk centosInstalacion de asterisk centos
Instalacion de asterisk centos
 
Arquitectura de smartphones y tablets
Arquitectura de smartphones y tabletsArquitectura de smartphones y tablets
Arquitectura de smartphones y tablets
 
Capa de aplicación
Capa de aplicaciónCapa de aplicación
Capa de aplicación
 
Ensayo IPV6
Ensayo IPV6Ensayo IPV6
Ensayo IPV6
 
Algoritmos if y case
Algoritmos if y caseAlgoritmos if y case
Algoritmos if y case
 
Cuadro comparativo.
Cuadro comparativo.Cuadro comparativo.
Cuadro comparativo.
 
HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.
HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.
HISTORIA Y ORGANIZACIÓN BÁSICA DEL MICROCONTROLADOR.
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Problemas de desempeño en las redes de cómputo
Problemas de desempeño en las redes de cómputoProblemas de desempeño en las redes de cómputo
Problemas de desempeño en las redes de cómputo
 
Que es y para que sirve el DNS
Que es y para que sirve el DNSQue es y para que sirve el DNS
Que es y para que sirve el DNS
 

Destacado

Pros Y Contras
Pros Y ContrasPros Y Contras
Pros Y Contras
bastii
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
Clay Flannigan
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascada
home
 
Metodologias de desarrollo
Metodologias de desarrolloMetodologias de desarrollo
Metodologias de desarrollo
Hermes Romero
 
Modelo Cascada y Espiral
Modelo Cascada y EspiralModelo Cascada y Espiral
Modelo Cascada y Espiral
juanksi28
 

Destacado (13)

Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)Desarrollo robótico - Robot Operating System (ROS)
Desarrollo robótico - Robot Operating System (ROS)
 
Sistemas operativos para robots
Sistemas operativos para robotsSistemas operativos para robots
Sistemas operativos para robots
 
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
Integración de ROS (Robot Operating System) con las plataformas Arduino y Ras...
 
Presentación Taller ROS - Robotic Operating System
Presentación Taller ROS - Robotic Operating SystemPresentación Taller ROS - Robotic Operating System
Presentación Taller ROS - Robotic Operating System
 
Pros Y Contras
Pros Y ContrasPros Y Contras
Pros Y Contras
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
 
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
COSCUP 2016 - ROS + Gazebo機器人模擬器工作坊
 
Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System) Introduction to ROS (Robot Operating System)
Introduction to ROS (Robot Operating System)
 
Modelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiralModelos evolutivos. incremental y espiral
Modelos evolutivos. incremental y espiral
 
ROS distributed architecture
ROS  distributed architectureROS  distributed architecture
ROS distributed architecture
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascada
 
Metodologias de desarrollo
Metodologias de desarrolloMetodologias de desarrollo
Metodologias de desarrollo
 
Modelo Cascada y Espiral
Modelo Cascada y EspiralModelo Cascada y Espiral
Modelo Cascada y Espiral
 

Similar a Introducción a ROS

Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
Manuel Carrasco Moñino
 
Aprende Robótica con ROS y Turtlebot (nivel iniciación)
Aprende Robótica con ROS y Turtlebot (nivel iniciación)Aprende Robótica con ROS y Turtlebot (nivel iniciación)
Aprende Robótica con ROS y Turtlebot (nivel iniciación)
RobotAcademy
 

Similar a Introducción a ROS (20)

ROS - Jornadas de la ingeniería cádiz-2011
ROS - Jornadas de la ingeniería cádiz-2011ROS - Jornadas de la ingeniería cádiz-2011
ROS - Jornadas de la ingeniería cádiz-2011
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
Java 2010: presente, límites y futuro
Java 2010: presente, límites y futuroJava 2010: presente, límites y futuro
Java 2010: presente, límites y futuro
 
Grails barcamp 2013
Grails barcamp 2013Grails barcamp 2013
Grails barcamp 2013
 
Paralela9
Paralela9Paralela9
Paralela9
 
Gwt I - entendiendo gwt
Gwt I - entendiendo gwtGwt I - entendiendo gwt
Gwt I - entendiendo gwt
 
200405 - Aplicaciones Web
200405 - Aplicaciones Web200405 - Aplicaciones Web
200405 - Aplicaciones Web
 
Grails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - SistemasGrails 2013 - PUCMM - Santiago - Sistemas
Grails 2013 - PUCMM - Santiago - Sistemas
 
SIMUNROBOT
SIMUNROBOTSIMUNROBOT
SIMUNROBOT
 
FADIXON R
FADIXON RFADIXON R
FADIXON R
 
Ros y sistemas multi agentes
Ros y sistemas multi agentesRos y sistemas multi agentes
Ros y sistemas multi agentes
 
03 Infraestructura Caja Guadalajara Neurowork Why Floss
03   Infraestructura Caja Guadalajara   Neurowork   Why Floss03   Infraestructura Caja Guadalajara   Neurowork   Why Floss
03 Infraestructura Caja Guadalajara Neurowork Why Floss
 
jBPM: Implementando Procesos con Software Libre
jBPM: Implementando Procesos con Software LibrejBPM: Implementando Procesos con Software Libre
jBPM: Implementando Procesos con Software Libre
 
Aprende Robótica con ROS y Turtlebot (nivel iniciación)
Aprende Robótica con ROS y Turtlebot (nivel iniciación)Aprende Robótica con ROS y Turtlebot (nivel iniciación)
Aprende Robótica con ROS y Turtlebot (nivel iniciación)
 
Planificación en inteligencia artificial aplicada a la robótica
Planificación en inteligencia artificial aplicada a la robóticaPlanificación en inteligencia artificial aplicada a la robótica
Planificación en inteligencia artificial aplicada a la robótica
 
1poo
1poo1poo
1poo
 
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
Desarrollo de Aplicaciones con Node.js | INTERSYS UNPRG | 2012
 
03 Infraestructura Caja Guadalajara Neurowork Why Floss
03   Infraestructura Caja Guadalajara   Neurowork   Why Floss03   Infraestructura Caja Guadalajara   Neurowork   Why Floss
03 Infraestructura Caja Guadalajara Neurowork Why Floss
 
03 Infraestructura Caja Guadalajara Neurowork Why Floss
03   Infraestructura Caja Guadalajara   Neurowork   Why Floss03   Infraestructura Caja Guadalajara   Neurowork   Why Floss
03 Infraestructura Caja Guadalajara Neurowork Why Floss
 
GNU/Linux y Software libre en Caja de Guadalajara
GNU/Linux y Software libre en Caja de GuadalajaraGNU/Linux y Software libre en Caja de Guadalajara
GNU/Linux y Software libre en Caja de Guadalajara
 

Último

6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
Wilian24
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 

Último (20)

FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 

Introducción a ROS

  • 1. Robot Operative System Departamento de Arquitectura y Tecnología de Computadores Universidad de Sevilla Pablo Iñigo Blasco Diciembre – 2010
  • 2. Gracias por los contenidos Creative Commons de la web de ROS y de las transparencias 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. 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. Contenidos: Parte I ● Contexto ● ROS Overview ● Arquitectura Distribuida de ROS ● Herramientas ● Ejemplos Áreas de la robótica abordados ● Mas Software existente
  • 5. Contenidos: Parte II ● Aspectos técnicos ● Ejemplos ● Demos ● Tutoriales ● Interacción
  • 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. 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. 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. 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. 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. 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. Problemas Fundamentales ● El tamaño del proyecto ● El conocimiento
  • 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. 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. Contexto: Player SO SO laser map amcl motors Player Server Config Interfaces estables Patrón proxy Client Client ¿comunicación?
  • 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. 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ía Va mas allá: ● Procesos, metodología ● Comunidad, Investigación: Democratización de la robótica
  • 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. ROS Overview: Meta Systema Operativo
  • 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. Capabilities ● Cinemática ● Vision & Object Recognition ● Localization ● Motion Planning/Navigation ● Mapping ● Grasping ● Object manipulation ● Machine Learning
  • 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. ROS Overview: Organización de Software PACKAGE - Nodos - Herramientas - Librerías - Definición de Mensajes - Definición de Servicios - Configuraciones despliegue
  • 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
  • 32. ROS Overview: Otras características ● Multi Lenguaje ● C++, python, Java, Octave, Lisp, RxLab ● Plataformas ● Linux, MacOS ● X86 y ARM
  • 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
  • 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
  • 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. Arquitectura P2P Híbrida Machine 1 HW Machine 2 properties Node Node SO Node Node Ros Master config topic Launch File topic
  • 40. Nodos ● Primitiva de funcionalida ● Sincronos Properties (*) ● Simple hilos ● Proceso (convenio) ● Dinámicos Services Topics msg msg Config.yaml
  • 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 en los nodos, aunque conceptualmente Puede verse como parámetros de configuración de uno o varios nodos. De ahí la representación propuesta.
  • 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. 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 ---------
  • 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. Arquitectura ROS: Ros Master ● Servicios de nombres ● Servicios de páginas amarillas ● Almacén de propiedades ● Singleton
  • 47. Mecanismos de Interacción de alto Nivel ● Action ● State Machines/ Workflows ● Ejemplo paper toallas
  • 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
  • 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. DEMO PR2 - GAZEBO
  • 53. Cinemática y Sistemas de Referencia ● TF ● KDL ● URDF ● Robot State Publisher ● Joint State Publisher ● Arm Kinematics
  • 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
  • 56. SLAM ● VSlam ● Presentación ● Paper ● Tutorial ● gmapping ● kartoMapping ● graphmapping
  • 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
  • 59. Drivers Útiles ATC ● Kinect ● Cámara Stereo Vídere ● Laser Hokuyo ● Erratic ● Cámaras ● IMU ● Arduino? ● Joysticks
  • 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. UAVs ● UAVs Using ROS
  • 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. 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.