Tema9_ROS

download Tema9_ROS

of 73

Transcript of Tema9_ROS

  • 7/25/2019 Tema9_ROS

    1/73

    DepartamentodeIngenieradeS

    istemasyAuto

    mtica

    PROGRAMACIN DE ROO!S

    Ro"ots m#$i%es&

    Programaci#n de a%to ni$e% para ro"ots m#$i%es

  • 7/25/2019 Tema9_ROS

    2/73

    DepartamentodeIngenieradeS

    istemasyAuto

    mtica

    Programaci#n de a%to ni$e% para ro"ots m#$i%es

    1.- Software robtico: por qu es necesario?2.- Ejemplo de librera: !obile "obot #ro$rammin$ %ool&it'.- Ejemplo de framewor&: "(S

    ).- (tros

  • 7/25/2019 Tema9_ROS

    3/73

    DepartamentodeIngenieradeS

    istemasyAuto

    mtica

    !ema '() Programaci#n de a%to ni$e% para ro"ots m#$i%es

    1.- Software robtico: por qu es necesario?2.- Ejemplo de librera: !obile "obot #ro$rammin$ %ool&it'.- Ejemplo de framewor&: "(S

    ).- (tros

  • 7/25/2019 Tema9_ROS

    4/73

    DepartamentodeIngenieradeS

    istemasyAuto

    mtica

    *ueremos construir nuestro robot+ orientado a la in,esti$acin de robtica derescate en interiores mo lo aramos?

    #osiblemente+ compraramos una base m,il...

    /0adiramos ms sensores...

    1.- Software "obtico: por qu es necesario?

    Pioneer P3-DXhttp://www.mobilerobots.com/ResearchRobo

    ts/PioneerP3DX.aspx

    Kinecthttp://www.xbox.com/es-

    ES/Xbox360/ccessories/Kinect/

    !"ser #o$%&o '()-30!Xhttp://www.ho$%&o-

    a%t.*p/0+sensor/0,scanner/%tm30lx.html

    "mara termalhttp://www.thermote$nix.com/content/enlish/thermalimainirpro%cts/miricletherm

    alimainircameras/inex.html

  • 7/25/2019 Tema9_ROS

    5/73

    DepartamentodeIngenieradeS

    istemasyAuto

    mtica

    *ueremos construir nuestra robot+ orientado a la in,esti$acin de robtica derescate en interiores mo lo aramos?

    #uede que a0adiramos actuadores...

    necesitaramos un # 3 otros dispositi,os de entrada...

    1.- Software "obtico: por qu es necesario?

    &ton 1amma 300http://www.robai.com/pro%cts.php2

    prti4

    Son& 5aio-Shttp://www.son&.es/pro%ct/portatil-aio-s2

    ci470047448s$wciaio9+0pc4;3+;7704;0

  • 7/25/2019 Tema9_ROS

    6/73

    DepartamentodeIngenieradeS

    istemasyAuto

    mtica

    aora qu acemos con todo esto :S?

    1.- Software "obtico: por qu es necesario?

  • 7/25/2019 Tema9_ROS

    7/73DepartamentodeIngenieradeS

    istemasyAuto

    mtica

    %endramos que resol,er los si$uientes problemas:

    onectar todos los dispositi,os al # 34o a la plataforma m,il. 5o estri,ial: por ejemplo+ no todos los dri,ers estn disponibles para todos lossistemas operati,os.

    6ise0ar nuestra aplicacin+ de manera que permita reco$er los datosde todos los sensores+ procesarlos se$7n nuestros al$oritmos+ 3en,iarlos a los actuadores para reali8ar la tarea deseada.

    6ise0ar por tanto las comunicaciones 9puede que en tiempo real entre

    los distintos elementos de la aplicacin+ que es una tarea compleja.

    #ro$ramar las erramientas $rficas 3 de simulacin+ elementos mu3importantes a la ora de la in,esti$acin.

    1.- Software "obtico: por qu es necesario?

  • 7/25/2019 Tema9_ROS

    8/73Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    %endramos que resol,er los si$uientes problemas:

    onectar todos los dispositi,os al # 34o a la plataforma m,il. 5o estri,ial: por ejemplo+ no todos los dri,ers estn disponibles para todos lossistemas operati,os.

    6ise0ar nuestra aplicacin+ de manera que permita reco$er los datosde todos los sensores+ procesar%os seg*n nuestros a%goritmos+ 3en,iarlos a los actuadores para reali8ar la tarea deseada.

    6ise0ar por tanto las comunicaciones 9puede que en tiempo real entre

    los distintos elementos de la aplicacin+ que es una tarea compleja.

    #ro$ramar las erramientas $rficas 3 de simulacin+ elementos mu3importantes a la ora de la in,esti$acin.

    1.- Software "obtico: por qu es necesario?

    ;Slo esto es in,esti$acinibreras robticas: conjunto de libreras que se utili8an para desarrollar

    pro$ramas.

    ramewor&s: conjuntos de libreras 3 paradi$mas que or$ani8aban eldesarrollo de la arquitectura.

    Establecen la or$ani8acin de la aplicacin robtica+ estructurndola enelementos software con un esquema definido a se$uir. Esto facilita lamantenibilidad+ el escalado 3 la reusabilidad del cdi$o.

    /portan el sistema de comunicaciones+ que es transparente para lospro$ramadores.

    /bstraen la capa ardware. Suelen a0adir utilidades $rficas para simulacin 3 reco$ida de datos. Si se re7ne masa crtica suficiente de pro$ramadores+ la comunidad

    impulsa nue,os desarrollos. inalmente+ erramientas @/SEA como B/BE>+ con las que se reali8a

    un dise0o de alto ni,el que $enera automticamente cdi$o.

    1.- Software "obtico: por qu es necesario?

  • 7/25/2019 Tema9_ROS

    11/73Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    Programaci#n de a%to ni$e% para ro"ots m#$i%es

    1.- Software robtico: por qu es necesario?2.- Ejemplo de librera: !obile "obot #ro$rammin$ %ool&it'.- Ejemplo de framewor&: "(S

    ).- (tros

  • 7/25/2019 Tema9_ROS

    12/73Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    !"#% 9)obile Robot Prorammin (ool$it

    >a !"#% es: Cn conjunto de libreras en DD Cn conjunto de aplicaciones 3 erramientas 6ocumentacin 3 soporte

    Software libre+ www.mrpt.or$

    #ara qu puede usarse? #ara tareas relati,as a la robtica m,il >ocali8acin S>/! isin por computador #lanificacin de mo,imientos ...

    entajas: eficiencia+ reusabilidad+ documentacin+ software libre

    2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    13/73Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    >ibreras DD

    Son el elemento ms importante de la !"#%

    >as libreras o mdulos a$rupan clases 3 templates DD. /s no es

    necesario usar toda la !"#%+ sino 7nicamente aquello que nos acefalta.

    Fa3 libreras para ,isin+ S>/!+ inferencia ba3esiana+ planificacin decaminos+ e,itacin de obstculos...

    2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    14/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    2.- Ejemplo de librera: !"#%

    > ? sini@ica A%e epene e ?

  • 7/25/2019 Tema9_ROS

    15/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    /plicaciones

    Son utilidades con las que se pueden reali8ar operaciones interesantes:simulacin de ciertos aspectos+ lectura de datos+ aplicaciones directasde al$oritmos...

    GC= for 6ena,it-Fatenber$ parameters robot arm desi$n Scene iewer "6 Gridmap na,i$ation dataset $enerator "awlo$ 6ata Set iewer ...

    2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    16/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    6ocumentacin

    %utoriales: bsico+ pro$ramacin+ al$oritmos...

    Ejemplos

    >ibro

    /*

    6atasets

    /ctuali8aciones 3 cambios ms o menos constantes

    2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    17/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    =nstalacin

    Hltima ,ersin estable: 1.'.2 95o,iembre 2I1J

    #lataformas:

    Kindows 9binarios precompilados4fuentes isual Studio 92IIL42I1I42I12

    >inuM 9fuentes "ecomendado: compilar desde fuentes

    omprobar dependencias 9wMKid$ets+ (penG>...

    ma&e tambin necesario

    2.2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    18/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio

    ompilar el ejemplo mrptNeMampleN1 opiarlo a ,uestro directorio desde mrpt 1.I.2. O 6ocumentation director3 #rimer paso: ma&e

    6irectorios: fuente 9donde est el ejemplo 3 build 9directorio donde se $eneranlos pro$ramas

    onfi$ure 9isual Studio 2IIL Generate 9onfi$uracin de desarrollo de isual DD

    Se$undo paso: compilar el pro3ecto en isual Studio 2IIL En el directorio build+ abrir el ficero sol%tioncon isual Studio 2IIL ompilar: "elease+ botn dereco sobre el .cpp Generar

    Ejecutarlo >lamar desde ,entana de comandos

    2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    19/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio

    %roublesootin$ para la ,ersin de Kindows :

    omprobar que el pat de Kindows contiene los directorios bin+ lib+ libs que

    cuel$an del directorio ra8 de la !"#%

    omprobar que en isual Studio+ al pincar sobre el ficero .cpp 3 obtenerlas propiedades+ el lin&ador 9@inculadorA inclu3e el pat del directorio delas libreras de la !"#%.

    #uede instalarse en una mquina ,irtual 9irtual BoMP con 2!B de memoria

    funciona correctamente.

    2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    20/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio ma&e: $enera los ma&efiles para diferentes compiladores 3 plataformas a partir de

    ficeros de confi$uracin 9!a&e>ists.tMt independientes de ambos Si ma&e>ists.tMt no est creado+ a3 que crearlo

    2.- Ejemplo de librera: !"#%

    PROJECT(mrpt_example1)CMAKE_MINIMUM_REQUIRED(VERSION 2!)"#(COMMAND $ma%e_p&l"$') $ma%e_p&l"$'(SET CMP NE*) + Re,-"re. /' CMa%e 20e."#(COMMAND $ma%e_p&l"$')+ 33333333333333333333333333333333333333333333333333333333333333333333333333+ T4e l"5t 6l"/56 74"$4 $a /e "$l-.e. $a /e #&-. "8+ 4ttp899777mrpt&r:9;"/rar"e5++ T4e .epe.e$"e5 a l"/rar' are a-t&mat"$all' a..e.< 5& '&- &l'+ ee. t& 5pe$"#' t4e t&p3m&5t l"/rar"e5 '&-r $&.e .epe.5 &+ 33333333333333333333333333333333333333333333333333333333333333333333333333

    =IND_PACKA>E( MRPT REQUIRED /a5e) + *ARNIN>8 A.. all t4e MRPT l"/5 -5e. /' '&-r pr&:ram8 6:-"6NUC?? AND NOT CMAKE_@UI;D_TPE MATCFES 6De/-:6) SET(CMAKE_C??_=;A>S 6BCMAKE_C??_=;A>S 3O 3mt-eGat"He6)ENDI=(CMAKE_COMPI;ER_IS_>NUC?? AND NOT CMAKE_@UI;D_TPE MATCFES 6De/-:6)

  • 7/25/2019 Tema9_ROS

    21/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio ma&e: $enera los ma&efiles para diferentes compiladores 3 plataformas a partir de

    ficeros de confi$uracin 9!a&e>ists.tMt independientes de ambos Si ma&e>ists.tMt no est creado+ a3 que crearlo

    2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    22/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio: test.cpp

    2.- Ejemplo de librera: !"#%

    +"$l-.e mrpt9/a5e4-5": ame5pa$e mrpt88-t"l5-5": ame5pa$e mrpt88p&5e5-5": ame5pa$e 5t."t ma"()B L 99 T4e la.mar% (:l&/al) p&5"t"&8 D (x

    t"$ta$T"$() 5"e_t "

  • 7/25/2019 Tema9_ROS

    23/73

    Departamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio: test.cpp

    2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    24/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio "esultado

    2.- Ejemplo de librera: !"#%

  • 7/25/2019 Tema9_ROS

    25/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    programaci#n de a%to ni$e% para ro"ots m#$i%es

    1.- Software robtico: por qu es necesario?2.- Ejemplo de librera: !obile "obot #ro$rammin$ %ool&it'.- Ejemplo de framewor&: "(S

    ).- (tros

  • 7/25/2019 Tema9_ROS

    26/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    5osotros ,amos a usar un framewor& concreto mu3 utili8ado en la

    actualidad: "(S

    EMisten otros framewor&s bastante conocidos+ que posteriormentecomentaremos

    '.- Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    27/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    RBS CRobot Bperatin S&stem proies libraries an tools to help so@twareeelopers create robot applications. t proies hardware abstractionFdevice driversF librariesF visualizersF message-passingF pac$aemanaementF an more. RBS is license %ner an open so%rceF ?SD license.

    '.- Ejemplo de framewor&: "(S

    Gillow 1araehttp://www.willowarae.com/

    RBShttp://www.ros.or

  • 7/25/2019 Tema9_ROS

    28/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    *ui$le3 !.+ Ger&e3 B.+ onle3 Q.+ aust R.+ oote %.+ >eibs R.+ Ber$er E.+ Keeler ".+ 5$ /. 92II RBS: an open-

    so%rce Robot Bperatin S&stem+ =nternational onference on "obotics and /utomation.

    #eer-to-peer En tiempo de ejecucin a3 un cjto. de procesos conectados+ puede que distribuidos. 5o a3 un ser,idor central de datos. Fa3 un ser,idor de nombres para que los procesos se @encuentrenA.

    !ultilen$uaje DD+ p3ton+ (cta,e+ >isp #ersonas distintas prefieren len$uajes distintos+ permite optimi8ar abilidades.

    %in >a funcionalidad 9dri,ers+ al$oritmos se inclu3e en libreras sin dependencias de "(S. #eque0os ejecutables que muestran las funcionalidades de la librera a "(S acilita la reutili8acin

    Gratuita 3 de cdi$o abierto

    Basada en erramientas #eque0as erramientas que constru3en los componentes de "(S

    Csas lo que necesitas

    '.- Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    29/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    ersin actual: Rade 9,amos a usar la anterior+ =ndi$o

    Sistemas (perati,os

    Cbuntu EMperimentales

    (S T+ edora+ Gentoo+ (penSuse+ 6ebian+ /rc >inuM+Kindows...

    >en$uajes

    DD+ #3ton+ >isp+ (cta,e EMperimentales: R//+ >ua

    '.- Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    30/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    =nstalacin de "(S se$7n su wi&i:

    ttp:44wi&i.ros.or$4"(S4=nstallation

    Cna ,e8 instalado+ a3 que se$uir los tutoriales: www.ros.or$4wi&i

    '.- Ejemplo de framewor&: "(S

    http://wiki.ros.org/ROS/Installationhttp://wiki.ros.org/ROS/Installation
  • 7/25/2019 Tema9_ROS

    31/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    =nstalacin de "(S se$7n su wi&i

    ttp:44wi&i.ros.or$4"(S4=nstallation

    '.- Ejemplo de framewor&: "(S

    ++Insta%aci#n de ROS en ,irtua%o- con ."untu/0(10 &233

    4ttp&55nootri-(com5do6n%oads5

    So"re e%%a 4e creado una nue$a para usar Arduino

    http://nootrix.com/downloads/http://nootrix.com/downloads/
  • 7/25/2019 Tema9_ROS

    32/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio =nstalacin de la mquina ,irtual en la mquina del laboratorio

    #asar la mquina ,irtual de la carpeta K:Ua ,uestra carpeta :U

    Facer doble clic& sobre el ficero de la mquina ,irtual. =mportar sin tocarnin$una opcin.

    En las mquinas nue,as del lab+ puede ser necesario desacti,ar CSB 3 69posiblemente por el filtro de /rduino que 3a trae la mquina

    /l principio parece que tarda muco+ pero se instala en ,arios minutos.

    '.- Ejemplo de framewor&: "(S

    http://w/http://w/
  • 7/25/2019 Tema9_ROS

    33/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio onfi$uracin del entorno de trabajo de "(S en mquina ,irtual de

    5ootriM con "(S =ndi$o

    Fa3 que reconfi$urar el teclado en castellano: Settin$s O Qe3board O %eMt Entr3 O =nput Sources to Cse O D O Spanis Si no se acti,a+ ir a la i8quierda de la barra superior 3 esco$er idioma

    >a cla,e de sudo es i$i

    En el men7 de la mquina ,irtual+ acti,ar el portapapeles comobidireccional+ para poder pasar teMto entre la mquina ,irtual 3 el ost 9otras

    formas de comunicacin entre ambos son red+ usb+ carpeta compartida

    arpetas compartidas: onfi$uracin irtualBoM: a0adir :U9automontar+ permanente "(S 9es posible que a3a que montar la carpeta en cada sesin:

    rear carpeta N6"=E en 4ome4,i&i s%o mo%nt -t boxs@ HDR5E I/HDR5E Para copiar/pear en la carpetaF lan=ar na%til%s ese terminal

    '.- Ejemplo de framewor&: "(S

    http://home/Y:/http://home/Y:/
  • 7/25/2019 Tema9_ROS

    34/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio onfi$uracin del entorno de trabajo de "(S en mquina ,irtual de

    5ootriM con "(S =ndi$o

    omprobar que las ,ariables de entorno eMisten: export rep RBS

    '.- Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    35/73

    De

    partamentode

    IngenieradeS

    istemasyAuto

    mtica

    Ejercicio onfi$uracin del entorno de trabajo de "(S en mquina ,irtual de

    5ootriM con "(S =ndi$o

    En los tutoriales+ ,eris que al$unas tareas se pueden acer usandorosb%il 3 cat$in. Estos son los dos mtodos disponibles para or$ani8ar 3construir cdi$o "(SP las diferencias radican en:

    rosbuild es ms sencillo de usar 3 simple. Slo puede usarse astauerte.

    cat&in es ms sofisticado pero ms fleMible+ sobre todo para inte$rarcdi$o eMterno. Est disponible a partir de uerte.

    !s informacin en ttp:44wi&i.ros.or$4cat&inNorNrosbuild.

    omo nuestra ,ersin es =ndi$o+ ,amos a usar cat$in.

    '.- Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    36/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    Ejercicio onfi$uracin del entorno de trabajo de "(S en mquina ,irtual de

    5ootriM con "(S =ndi$o

    #reparacin del wor&space cat&in >a instalacin de 5ootriM 3a nos trae un directorio V4cat&inNws4 omprobar qu subdirectorios trae por defecto =niciali8ar el espacio de trabajo+ ejecutando en el directorio src:

    cat$ininitwor$space Si no se ace as+ al acer cat&inNma&e 9si$uiente paso dar error+ 3 no ser posible

    acer build de nin$7n paquete. Soluciones: reinstalar la mquina ,irtual+ o borrar el directorio cat&inNws entero 3 crear

    el espacio de trabajo si$uiendo los tutoriales de "(S

    onstruir el espacio de trabajo Ejecutar en el directorio ra8 del wor&space: cat$inma$e omprobar que se an creado los directorios de,el 3 build Facer el si$uiente source: so%rce eel/set%p.bash omprobar que la ,ariable "(SN#/Q/GEN#/%F inclu3e nuestro directorio:

    echo JRBSPK1EP(#

    '.- Ejemplo de framewor&: "(S

    94&me9H"%"9$at%"_7595r$89&pt9r&59".":&954are89&pt9r&59".":&95ta$%5

    >os puntos que estn en ,erde3a estn ejecutados en la mquina

    ,irtual de la asi$natura

  • 7/25/2019 Tema9_ROS

    37/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    Fa3 cuatro conceptos fundamentales a la ora de comprender "(S 9*ui$le3 !.+Ger&e3 B.+ onle3 Q.+ aust R.+ oote %.+ >eibs R.+ Ber$er E.+ Keeler ".+ 5$ /. 92II RBS: an open-so%rce RobotBperatin S&stem+ =nternational onference on "obotics and /utomation.

    5odos #rocesos que reali8an los clculos+ puede que distribuidos

    En tiempo de ejecucin una aplicacin "(S es un conjunto de nodos. !ensajes

    omunicaciones entre nodos. Son tipos de datos estructuradosP pueden anidarse. Se definen en =6>+ en un ficero de teMto

    %opics anales de comunicacin por los que circulan mensajes entre nodos.

    >os nodos publican en topics 9publisersP se suscriben a los topics que les interesan9subscribers. #ublisers 3 subscribers no conocen la eMistencia de otros. Fabitualmente+ se forman $rafos complejos.

    Ser,icios anales de comunicacin para comunicaciones sncronas entre nodos. ormados por un nombre 3 dos mensajes: peticin 9request 3 respuesta 9response. Cn nodo ace una peticin a otro nodo 3 recibe una respuesta.

    '.- Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    38/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    / la ora de trabajar con "(S+ puede acerse a tres ni,eles

    5i,el $rfico: reco$ida de datos+ simulacin+ dia$nstico 6ia$nstico "eco$ida de datos Simulacin

    Sistema de ficeros 3 mensajes 5odos #aquetes Stac&s !ensajes %opics

    omunidad "epositorio Ki&i 6istribuciones

    '.- Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    39/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    / la ora de trabajar con "(S+ puede acerse a tres ni,eles

    5i,el $rfico: reco$ida de datos+ simulacin+ dia$nstico 6ia$nstico "eco$ida de datos Simulacin

    '.- Ejemplo de framewor&: "(S

    rxplot rxraph ri=

  • 7/25/2019 Tema9_ROS

    40/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    / la ora de trabajar con "(S+ puede acerse a tres ni,eles

    5i,el $rfico: reco$ida de datos+ simulacin+ dia$nstico 6ia$nstico "eco$ida de datos Simulacin

    Sistema de ficeros 3 mensajes 5odos #aquetes Stac&s !ensajes %opics

    omunidad "epositorio Ki&i 6istribuciones

    '.- Ejemplo de framewor&: "(S

    7o $eremos en e% siguiente punto

  • 7/25/2019 Tema9_ROS

    41/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    / la ora de trabajar con "(S+ puede acerse a tres ni,eles

    5i,el $rfico: reco$ida de datos+ simulacin+ dia$nstico 6ia$nstico "eco$ida de datos Simulacin

    Sistema de ficeros 3 mensajes 5odos #aquetes Stac&s !ensajes %opics

    omunidad "epositorio Ki&i 6istribuciones

    '.- Ejemplo de framewor&: "(S

    RBS relies on a @eerate networ$ o@coe repositoriesF where i@@erentinstit%tions can eelop an releasetheir own robot so@tware components.

    j l d f &

  • 7/25/2019 Tema9_ROS

    42/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    / la ora de trabajar con "(S+ puede acerse a tres ni,eles

    5i,el $rfico: reco$ida de datos+ simulacin+ dia$nstico 6ia$nstico "eco$ida de datos Simulacin

    Sistema de ficeros 3 mensajes 5odos #aquetes Stac&s !ensajes %opics

    omunidad "epositorio Ki&i 6istribuciones

    '.- Ejemplo de framewor&: "(S

    (he RBS comm%nit& Gi$i is the main@or%m @or oc%mentin in@ormationabo%t RBS. n&one can sin %p @or anacco%nt an contrib%te their ownoc%mentationF proie corrections or%patesF write t%torialsF an more.

    ' Ej l d f & "(S

  • 7/25/2019 Tema9_ROS

    43/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    / la ora de trabajar con "(S+ puede acerse a tres ni,eles

    5i,el $rfico: reco$ida de datos+ simulacin+ dia$nstico 6ia$nstico "eco$ida de datos Simulacin

    Sistema de ficeros 3 mensajes 5odos #aquetes Stac&s !ensajes %opics

    omunidad "epositorio Ki&i 6istribuciones

    '.- Ejemplo de framewor&: "(S

    RBS Distrib%tions are collections o@ersione stac$s that &o% can install.Distrib%tions pla& a similar role to!in%x istrib%tions: the& ma$e it easierto install a collection o@ so@twareF anthe& also maintain consistent ersionsacross a set o@ so@tware.

    ' Ej l d f & "(S

  • 7/25/2019 Tema9_ROS

    44/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    #aquetes 3 Stac&s

    #aquete 9Pac$ae

    5i,el ms bajo de la or$ani8acin software "(S. 6irectorio con fuentes+ libreras+ ma&efiles+ builds... Ferramientas de paquetes:rospac$+ ...

    Stac&

    #aquetes que funcionan juntos Ferramientas de stac&s: rosstac$+...

    '.- Ejemplo de framewor&: "(S

    ' Ej l d f & "(S

  • 7/25/2019 Tema9_ROS

    45/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    2.- 5a,e$ar por el sistema de ficeros 9aiatin the RBS Liles&stem

    rospac$3 rosstac$proporcionan informacin sobre paquetes 3 stac&s rospac$ help rospac$ @in roscpp

    roscslo busca en los directorios de W"(SNK("QS#/E roscte lle,a a W"(SNK("QS#/E roscdirectorio4subdirectorio rosc lo$ te lle,a al directorio de ficeros de lo$ 9es necesario aber

    ejecutado al$7n pro$rama de "(S antes al menos una ,e8 roslsace un ls no slo por el pat+ sino por paquete+ stac& o locali8acin.

    '.- Ejemplo de framewor&: "(S

    ' Ej l d f & "(S

  • 7/25/2019 Tema9_ROS

    46/73

    De

    partamentode

    IngenieradeS

    istemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    '.- reacin de un paquete "(S 9?%ilin a RBS Pac$ae

    >os paquetes que ,amos a crear son cat&in+ as que deben cumplir unaserie de requisitos:

    6eben incluir un ficero pac$ae.xml adaptado a cat&in+ con meta informacinsobre el paquete.

    6eben incluir un ficero )a$e!ists.txtadaptado a cat&in. 5o puede aber ms de un paquete por directorio

    #or tanto+ no es posible tener paquetes anidados ni m7ltiples paquetescompartiendo el mismo directorio.

    '.- Ejemplo de framewor&: "(S

    Este sera el paquete cat&in ms simple

    ' Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    47/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    '.- reacin de un paquete "(S 9?%ilin a RBS Pac$ae

    Es con,eniente crear un espacio de trabajo cat&in Este es el aspecto que debe tener un espacio cat&in sencillo 5osotros 3a lo emos eco 9comprobar que la estructura es parecida

    '.- Ejemplo de framewor&: "(S

    ' Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    48/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    '.- reacin 3 build de un paquete "(S 9?%ilin a RBS Pac$ae

    cat$increatep$ crea un paquete nue,o+ indicando adems lasdependencias. 6ebe llamarse en el directorio src de nuestro espacio detrabajo cat&in.

    Se crea automticamente un directorio que almacena una serie de ficeros9ma$e!ists.txt+ pac$ae.xml 3 puede que al$unos directorios+ se$7n lasdependencias establecidas.

    6espus se ace el build del paquete+ en ese caso en el directorio ra8 delespacio de trabajo: cat$inma$e

    inalmente+ a0adir el espacio de trabajo al entorno "(S:. I/cat$inws/eel/set%p.bash

    Ejercicio: crear el paquete beinnerst%torialse$7n se indica en el tutorialcorrespondiente de "(S. Si 3a eMiste+ comprobar qu ocurre+ 3 questructura de ficeros se a creado.

    '.- Ejemplo de framewor&: "(S

    ' Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    49/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    ).- 6ependencias de un paquete "(S

    #ara obtener las dependencias de primer orden de un paquete:rospac$ epens4 beinnert%torials

    #ara obtener las dependencias anidadas de un paquete:rospac$ epens beinnert%torials

    >as dependencias tambin aparecen en el ficeropac$ae.xml

    '.- Ejemplo de framewor&: "(S

    ' Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    50/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    J.- 5odos "(S 9'nerstanin RBS oes

    Cn nodo es un ejecutable que usa "(S para comunicarse con otros nodos. !aster: ser,idor de nombres de "(S+ para que los nodos se @encuentrenA roso%t: "(S stdout4stderr. roscore: !asterDroso%tDparameter ser,er. Slo puede aber uno corriendo. rosnoe list: informacin sobre los nodos que se estn ejecutando en ese

    momento. /l menos debe aparecer roso%t. rosr%n nombrepaA%ete nombrenoo: lan8a el nodo+ no es necesario

    conocer el pat del paquete. trl- para pararlo. Ejercicio: comprobar el funcionamiento de roscore+ rosnoe3 rosr%nse$7n

    se indica en el correspondiente tutorial

    '.- Ejemplo de framewor&: "(S

    ' Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    51/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    X.- %opics "(S 9'nerstanin RBS (opics

    rAtraphcrea un $rafo dinmico donde aparecen los nodos+ los topics+ 3las relaciones entre ellos.

    rostopic rostopic echo: muestra el contenido de un topic. rostopic list: lista los topics acti,os con subscribers 3 publisers. rostopic t&pe: muestra el tipo de los mensajes circunlando por un topic. rostopic p%b: publica datos en un topic.

    rostopic h=: muestra la frecuencia de publicacin de datos en un topic. rAtplot: muestra un $rfico temporal de los datos publicados en un topic. Ejercicio: comprobar el funcionamiento de rostopicF rAtraph 93a est

    instalado 3 rAtplotse$7n se indica en el tutorial correspondiente de "(S

    '.- Ejemplo de framewor&: "(S

    ' Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    52/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    Y.- !ensajes "(S 9reatin a RBS ms an sr

    >os mensajes "(S son ficeros de teMto que describen los campos de unmensaje:

    EMtensin .ms$ /lmacenados en el directorio/msde un paquete %ipados 9,er documentacin "(S para comprobar tipos posibles

    %ipo nombreNcampoNmensaje Fa3 que comprobar que en )a$e!ists.txttenemos descomentada la

    lnea rosb%ilenmsC /l a0adir mensajes+ a3 que acer el rosma$ede nue,o. Se crea el directorio msen

    rosmspara $estionar la informacin de mensajes

    '.- Ejemplo de framewor&: "(S

    ' - Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    53/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    L.- Ser,icios 3 #armetros "(S 9reatin a RBS ms an sr

    Ser,icios: mtodo de comunicacin entre nodos+ de forma que un nodoen,a una peticin 3 obtiene una respuesta

    rosserice: $estiona los ser,icios.

    #arameter ser,er: elemento de "(S que usan los nodos para almacenar 3recuperar parmetros.

    rosparam: permite almacenar 3 manipular datos en el #arameter

    Ser,er.

    '.- Ejemplo de framewor&: "(S

    ' - Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    54/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    .- Cso de rAtconsole3 rosla%nch C'sin rAtconsole an rosla%nch

    rAtconsole 3 rxloerleel: dos erramientas que facilitan la tarea dedia$nstico 3 depuracin.

    rosla%nch: lan8a una serie de nodos en un paquete se$7n se especifique enun ficero con eMtensin .launc

    a estn instalados.

    '.- Ejemplo de framewor&: "(S

    ' - Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    55/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    1I.- reacin de un publiser 3 un susbcriber 9DD

    %utoriales: Kritin$ a Simple #ubliser and Subscriber 9DD EMaminin$ te Simple #ubliser and Subscriber

    rear los ficeros.cppen el directorio srcdel directorio beinnert%torials !odificar ma$e!ists.txta0adiendo al final

    includeNdirectories9include WZcat&inN=5>C6EN6="S[

    addNeMecutable9tal&er src4tal&er.cpp

    tar$etNlin&Nlibraries9tal&er WZcat&inN>=B"/"=ES[addNdependencies9tal&er be$innerNtutorialsN$enerateNmessa$esNcpp

    addNeMecutable9listener src4listener.cpptar$etNlin&Nlibraries9listener WZcat&inN>=B"/"=ES[addNdependencies9listener be$innerNtutorialsN$enerateNmessa$esNcpp

    Facer cat$inma$een el directorio ra8 del espacio de trabajo

    '. Ejemplo de framewor&: "(S

    ' - Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    56/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    1I.- reacin de un publiser 3 un susbcriber 9DD

    >an8ar roscoreen un terminal

    >an8ar los ejecutables+ cada uno en un terminal aparte rosr%nnombreNpaquete nombreNnodoNpubliser rosr%nnombreNpaquete nombreNnodoNsubscriber /ntes de lan8ar cada ejecutable+ acer so%rce ./eel/set%p.bash

    '. Ejemplo de framewor&: "(S

    ' - Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    57/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Cna ,e8 instalado+ a3 que se$uir los tutoriales:ttp:44www.ros.or$4wi&i4"(S4%utorials

    1I.- reacin de un publiser 3 un susbcriber 9DD

    #asos a se$uir en el ficero .cpp Si el nodo es un publiser

    init: aqu se debe incluir el nombre del nodo oe#anle aertiseen un topic+ inclu3endo mensaje 3 nombre del topic =ndicar frecuencia de publicacin #ublicar

    Si el nodo es un subscriber 6efinir la callbac$ init: aqu se debe incluir el nombre del nodo 5odeFandle Subscribirse spin

    '. Ejemplo de framewor&: "(S

  • 7/25/2019 Tema9_ROS

    58/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    Programaci#n de a%to ni$e% para ro"ots m#$i%es

    1.- Software robtico: por qu es necesario?2.- Ejemplo de librera: !obile "obot #ro$rammin$ %ool&it'.- Ejemplo de framewor&: "(S).- (tros

    ).- (tros

  • 7/25/2019 Tema9_ROS

    59/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    EMisten otros framewor&s disponibles:

    #la3er4Sta$e !icrosoft "obotics 6e,eloper Studio B/BE> (pen!ora oppelia /"# 9,er transparencias 3 ,deo web

    ). (tros

    ).- (tros

  • 7/25/2019 Tema9_ROS

    60/73

    De

    partamentode

    IngenieradeSistemasyAutomtica

    #la3er4Sta$e:

    ttp:44pla3ersta$e.sourcefor$e.net4

    Hltima actuali8acin: 2I1I

    #la3er: interfa8 con robots 9reales o simulados !ultilen$uaje

    Sta$e: simulacin 26 9mucos 4 Ga8ebo: simulacin '6 9pocos

    >inuM4!ac4Solaris

    ). (tros

    ).- (tros

    http://playerstage.sourceforge.net/http://playerstage.sourceforge.net/
  • 7/25/2019 Tema9_ROS

    61/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    #la3er4Sta$e:

    #la3er

    http://robotics.%sc.e%/2lPro*ects:pla&erstaea=ebo

    ).- (tros

  • 7/25/2019 Tema9_ROS

    62/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    #la3er4Sta$e:

    Sta$e

    http://robotics.%sc.e%/2lPro*ects:pla&erstaea=ebo

    ).- (tros

  • 7/25/2019 Tema9_ROS

    63/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    #la3er4Sta$e:

    Ga8ebo

    http://robotics.%sc.e%/2lPro*ects:pla&erstaea=ebo

    ).- (tros

  • 7/25/2019 Tema9_ROS

    64/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    !icrosoft "obotics 6e,eloper Studio:

    ttp:44www.microsoft.com4robotics4

    Kindows

    >en$uaje de pro$ramacin ,isual 9cur,a de aprendi8aje compleja

    \

    ).- (tros

    http://www.microsoft.com/robotics/http://www.microsoft.com/robotics/
  • 7/25/2019 Tema9_ROS

    65/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    B/BE>:

    6esarrollado en el 6pto. de =n$eniera de Sistemas 3 /utomtica de la C!/91X-actualidad

    Software libre

    ttp:44babel.isa.uma.es4babel24indeM.pp4!ainN#a$e

    ).- (tros

  • 7/25/2019 Tema9_ROS

    66/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    B/BE>:

    Su objeti,o principal es adaptarse a la etero$eneidad propia de lasaplicaciones robticas 9cdi$o+ plataformas ardware+ formacin 3 rotacin delpersonal...

    5eutral respecto al sistema operati,o 3 al len$uaje de pro$ramacin9actualmente+ implantada para Kindows+ 4DD 3 Ra,a

    #ermite desarrollar aplicaciones robticas complejas mediante el desarrollo 3 lainte$racin de mdulos software.

    ).- (tros

  • 7/25/2019 Tema9_ROS

    67/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    B/BE>:

    onsta de ,arios elementos

    Cna especificacin que indica cmo deben reali8arse el dise0o 9laespecificacin actual se denomina /racne+ se est e,olucionando acia F

    Cn dise0ador de mdulos 9B/BE> !odule 6esi$ner+ que permitedise0arlos ,isualmente+ 3 adems $enerar semiautomticamente parte delcdi$o fuente

    Cn $enerador de mdulos 9B/BE> Generator+ que $enera el cdi$o desdelnea de comandos

    Cn $estor de mdulos ,isual 9B/BE> EMecution !ana$er+ que permite

    or$ani8ar 3 controlar la aplicacin robtica completa+ puede quedistribuida:lan8amiento de mdulos+ creacin de lo$s... Cna erramienta ,isual 9B/BE> 6ebu$$er para anali8ar lo$s de tiempos:

    fallos en el cumplimiento de las restricciones...

    ).- (tros

  • 7/25/2019 Tema9_ROS

    68/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    B/BE>:

    ).- (tros

  • 7/25/2019 Tema9_ROS

    69/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    B/BE>:

    ).- (tros

  • 7/25/2019 Tema9_ROS

    70/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    B/BE>:

    ).- (tros

  • 7/25/2019 Tema9_ROS

    71/73

    Departamentode

    IngenieradeSistemasyAut

    omtica

    (pen!ora:

    (pen !obile "obot /rcitecture: arquitectura robtica basada en !((S 3!"#%

    ttp:44sourcefor$e.net4p4openmora4ome4Fome4

    ttp:44babel.isa.uma.es4babel24indeM.pp4!ainN#a$e

    ).- (tros

  • 7/25/2019 Tema9_ROS

    72/73

    Departamentode

    Ingenierade

    SistemasyAut

    omtica

    (pen!ora:

    #roporciona mdulos para plataformas robticas comunes+ para reali8ar tareasde locali8acin+ na,e$acin+ etc.

    !((S

    !iddleware para robots ttp:44www.robots.oM.ac.u&4Vmobile4!((S4wi&i4pmwi&i.pp

    Estado eMperimental

    ).- (tros

  • 7/25/2019 Tema9_ROS

    73/73

    artamentode

    Ingenierade

    SistemasyAut

    omtica

    -"ep:

    ttp:44www.coppeliarobotics.com4indeM.tml

    Simulacin

    ersin educati,a

    "obots manipuladores 3 robots m,iles

    =nte$rable con "(S

    di$o libre

    http://www.coppeliarobotics.com/index.htmlhttp://www.coppeliarobotics.com/index.html