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/Installation7/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