scieee Science in your language
[sp] (orig)

Plataforma universal para la coordinación de sistemas multirobot

Author: Hervás Gutiérrez, María
Year: 2026
Source: https://addi.ehu.eus/bitstream/10810/77671/1/TFM_MariaHervasGutierrez.pdf
Cu so: 2024-2025
Di ec o /Di ec o a: Mancisido Ba inaga emen e ia, Ai zibe
<FOTO (Tamaño máximo: 10x10cm.)>
Es udian e: He ás Gu ié ez, Ma ía
PLATAFORMA UNIVERSAL PARA LA
COORDINACIÓN DE SISTEMAS MULTIROBOT
MÁSTER UNIVERSITARIO EN INGENIERÍA DE CONTROL,
AUTOMATIZACIÓN Y ROBÓTICA
TRABAJO FIN DE MASTER
Fecha: Bilbao, 12, Sep iemb e, 2025
Resumen T ilingüe
Resumen
El desa ollo de sis emas obó icos a anza hacia escena ios cada ez más complejos,
en los que la he e ogeneidad de pla a o mas y la necesidad de abaja con lo as de
obo s de dis in a ipología plan ean nue os e os. La si uación ac ual es á ma cada
po una ue e dependencia del so wa e p opie a io de cada ab ican e, lo que
limi a la in e ope abilidad y di icul a la eu ilización de soluciones en e di e en es
en o nos, con epe cusiones en lexibilidad y cos es de o mación, in eg ación y
sus i ución de equipos.
En es e T abajo de Fin de Más e (
TFM
) se ha diseñado e implemen ado una a qui ec-
u a modula que pe mi e ges iona y coo dina misiones en en o nos mul i obo de
mane a gené ica e independien emen e del ha dwa e especí ico. La alidación se ha
ealizado en Gazebo Sim, lo que p opo ciona un labo a o io i ual segu o, lexible
y ep oducible. El sis ema se es uc u a en capas que aba can desde la in e acción
con el usua io, a a és de un panel pe sonalizado en RViz, has a la ges ión de los
modelos obó icos median e se icios en Robo Ope a ing Sys em (ROS) 2.
Se han in eg ado cinco obo s ep esen a i os (ABB YuMi, KUKA LBR iiwa, UFac o y
XA m6, UFac o y 850 y UR10e), elegidos an o po su ele ancia en la in es igación
como po su disponibilidad en el labo a o io donde se ha desa ollado el abajo. Es o
e ue za la aplicabilidad de la p opues a, ya que sien a las bases pa a nue as líneas
de in es igación en el depa amen o. Además, la in e az g á ica implemen ada
acili a la con igu ación de misiones de o ma in ui i a y accesible pa a el usua io.
Palab as cla e: Coo dinación Mul i obo , Gazebo Sim, Misiones Dis ibuidas,
ROS
2, RViz
3
Abs ac
The de elopmen o obo ic sys ems is p og essing owa ds inc easingly complex
scena ios, whe e he he e ogenei y o pla o ms and he need o wo k wi h lee s o
obo s o di e en ypes pose new challenges. The cu en si ua ion is ma ked by a
s ong dependence on p op ie a y so wa e om each manu ac u e , which limi s
in e ope abili y and hinde s he euse o solu ions ac oss di e en en i onmen s,
wi h consequences on lexibili y as well as aining, in eg a ion, and equipmen
eplacemen cos s.
In his Mas e ’s Thesis (TFM), a modula a chi ec u e has been designed and imple-
men ed o manage and coo dina e missions in mul i obo en i onmen s in a gene ic
way, independen ly o he speci ic ha dwa e. Valida ion has been ca ied ou in
Gazebo Sim, p o iding a sa e, lexible, and ep oduc ible i ual labo a o y. The
sys em is s uc u ed in laye s, anging om use in e ac ion, h ough a cus omized
panel in RViz, o he managemen o obo ic models ia se ices in ROS 2.
Fi e ep esen a i e obo s (ABB YuMi, KUKA LBR iiwa, UFac o y XA m6, UFac o y
850, and UR10e) ha e been in eg a ed, selec ed bo h o hei ele ance in esea ch
and o hei a ailabili y in he labo a o y whe e he p ojec has been de eloped. This
s eng hens he applicabili y o he p oposal, as i lays he ounda ion o new lines
o esea ch in he depa men . Fu he mo e, he implemen ed g aphical in e ace
acili a es he con igu a ion o missions in an in ui i e and accessible way o he
use .
Keywo ds: Dis ibu ed Missions, Gazebo Sim, Mul i obo Coo dina ion,
ROS
2,
RViz
4
Labu pena
Sis ema obo ikoak ge o e a age oki konplexuagoe an e abil zen di a, non pla a o -
men he e ogeneo asunak e a ipologia desbe dineko obo en lo ekin lan egin beha-
ak, e onka be iak plan ea zen di uz en. Gau egun, obo bakoi zak be e a-
b ika zailea en so wa ea ekiko mendeko asun handia du, e a ho ek muga u egi en
du ab ika zaile desbe dinen obo en a eko elka lana e a be e abil zea.
Mas e Amaie ako Lan (MAL) hone an, mul i obo ingu uneak kudea zeko e a koo -
dina zeko auke a ema en duen a ki ek u a modula ba diseina u e a inplemen a u
da. Diseinua Gazebo Sim-en egiaz a u da, honek labo a egi bi ual segu ua e a
malgua e ep oduzi zeko auke a eskain zen bai u. Sis ema ge uza an egi u a zen
da, e abil zailea ekiko elka e agine ik hasi (RViz panel pe sonaliza u ba en bidez)
e a ROS 2 ze bi zuen bidezko e edu obo ikoen kudeake a aino.
Bos obo adie azga i in eg a u di a (ABB YuMi, KUKA LBR iiwa, UFac o y XA m6,
UFAc o y 850 e a UR10e). Robo hauek, ike ke an du en ga an zia e a lana egin den
labo a egian du en e abilga i asunaga ik auke a u di a. Honek, p oposamena en
aplikaga i asuna inda zen du, sailean ike ke a-ildo be ie a ako oina iak eza zen
bai i u. Gaine a, inplemen a u ako in e aze g a ikoak misioen kon igu azioa e az-
en du, modu in ui ibo e a esku aga ian.
Hi z gakoak: Gazebo Sim, Misio Bana uak, Mul i obo Koo dinazioa,
ROS
2, RViz
5

Índice
Índice de Figu as 11
Índice de Tablas 13
Ac ónimos 15
1 In oducción 1
2 Con ex o 3
3 Obje i os y alcance 5
3.1 Obje i os ................................. 5
3.2 Alcance .................................. 6
4 Bene icios 7
4.1 Obje i os de Desa ollo Sos enible (ODS) . . . . . . . . . . . . . . . . 8
5 Análisis del es ado del a e 9
5.1 In oducción ............................... 9
5.2 F amewo ks y a qui ec u as pa a el desa ollo de sis emas obó icos . 10
5.3 En o nos de simulación obó icos . . . . . . . . . . . . . . . . . . . . 11
5.4 Fiche os de desc ipción de obo s . . . . . . . . . . . . . . . . . . . . 12
5.5 Conclusiones del es ado del a e . . . . . . . . . . . . . . . . . . . . . 13
6 Análisis de al e na i as 15
6.1 F amewo ks y a qui ec u as pa a el desa ollo de sis emas obó icos . 15
6.2 En o nos de simulación . . . . . . . . . . . . . . . . . . . . . . . . . 18
7 Diseño y desa ollo de la solución p opues a 21
7.1 A qui ec u a gene al del sis ema . . . . . . . . . . . . . . . . . . . . . 21
7.2 Capa de ejecución ísica o simulada . . . . . . . . . . . . . . . . . . . 24
7.2.1 Desc ipción de los modelos . . . . . . . . . . . . . . . . . . . 25
7.2.2 Funcionalidad de Gazebo Sim . . . . . . . . . . . . . . . . . . 27
7.2.3 Robo s disponibles en ejecución . . . . . . . . . . . . . . . . . 29
7.3 Capa de plani icación y con ol . . . . . . . . . . . . . . . . . . . . . 32
7.4 Capa de ges ión de obo s . . . . . . . . . . . . . . . . . . . . . . . . 33
7
7.4.1 Se icios pe sonalizados de ROS 2 . . . . . . . . . . . . . . . 34
7.4.2 Funcionamien o del nodo MissionManage ........... 34
7.5 Capa de in e az de usua io . . . . . . . . . . . . . . . . . . . . . . . 35
7.5.1 Desa ollo del panel pe sonalizado . . . . . . . . . . . . . . . 36
7.5.2 Funcionamien o del panel . . . . . . . . . . . . . . . . . . . . 37
7.6 Despliegue del sis ema comple o . . . . . . . . . . . . . . . . . . . . 38
8 Es udio de endimien o del sis ema 41
8.1 Me odología expe imen al . . . . . . . . . . . . . . . . . . . . . . . . 41
8.2 Análisis de esul ados . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
9 Me odología 47
9.1 Desc ipciónde a eas........................... 47
9.2 Diag amadeGan ............................ 50
10 Aspec os económicos 51
10.1Recu soshumanos ............................ 51
10.2 Ma e ial amo izable . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
10.3Cos esindi ec os ............................. 52
10.4 Cos e o al del p oyec o . . . . . . . . . . . . . . . . . . . . . . . . . 52
11 Conclusiones y abajo u u o 53
11.1Conclusiones ............................... 53
11.2T abajo u u o............................... 54
Bibliog a ía 55
A Despliegue del sis ema 59
A.1 Ins alación de ROS 2 Humble . . . . . . . . . . . . . . . . . . . . . . 59
A.2 Ins alación de Gazebo Sim . . . . . . . . . . . . . . . . . . . . . . . . 60
A.3 Dependencias adicionales . . . . . . . . . . . . . . . . . . . . . . . . 61
A.4 Compilación del espacio de abajo . . . . . . . . . . . . . . . . . . . 61
A.5 Ejecucióndelsis ema........................... 61
B Código de la solución p opues a 63
B.1 Ca pe a obo _simula ion ......................... 63
B.1.1 Paque e obo _desc ip ion ..................... 63
B.1.2 Paque e obo _gazebo ....................... 65
B.2 Paque e mission_managemen ...................... 73
B.2.1 Se icios pe sonalizados de ROS 2 . . . . . . . . . . . . . . . 73
B.2.2 Fiche o de lanzamien o del sis ema comple o . . . . . . . . . 74
B.2.3 Código del nodo MissionManage . . . . . . . . . . . . . . . . 75
B.2.4 Fiche o de lanzamien o del nodo MissionManage . . . . . . . 81
B.3 Paque e cus om_ iz_panels ....................... 82
8
B.3.1 mission_panel.cpp ......................... 82
B.3.2 mission_panel.hpp ........................ 87
B.3.3 Fiche o de desc ipción del plugin ................ 88
9

1
In oducción
Es e T abajo de Fin de Más e (TFM) se enma ca en el Más e Uni e si a io en
Ingenie ía de Con ol, Au oma ización y Robó ica (
INCAR
) de la Uni e sidad del
País Vasco (UPV/EHU). El
TFM
se ha desa ollado en el Depa amen o de Ingenie ía
de Sis emas y Au omá ica de la Escuela de Ingenie ía de Bilbao, con ando además
con la colabo ación del cen o ecnológico IKERLAN S. COOP, con sede en A asa e-
Mond agón.
Es a in es igación su ge de la di icul ad pa a de ini y ejecu a misiones de abajo
de o ma uni icada en e obo s de dis in os ab ican es. Es a si uación gene a
una ue e dependencia ecnológica y económica, obliga a o ma al pe sonal en
múl iples pla a o mas p opie a ias y limi a la lexibilidad a la ho a de eemplaza
o in eg a nue os disposi i os. Como espues a, en es e
TFM
se p opone una
pla a o ma uni e sal pa a la coo dinación de misiones y ope aciones, diseñada con
independencia del ha dwa e subyacen e.
En es e con ex o, la es uc u a del p esen e abajo es la siguien e: El Capí ulo 2
pone en con ex o el abajo desa ollado. En el Capí ulo 3 se exponen los obje i os
y el alcance del
TFM
. El Capí ulo 4 desc ibe los bene icios que apo a el abajo
ealizado desde el pun o de is a ecnológico, económico, medioambien al y social,
además de su con ibución a la consecución de los Obje i os de Obje i os de Desa -
ollo Sos enible (
ODS
). El Capí ulo 5 comp ende un es udio de los an eceden es
bibliog á icos elacionados con los obje i os expues os an e io men e. El Capí ulo
6 ecoge un análisis de las di e en es al e na i as pa a el desa ollo del sis ema de
coo dinación de misiones. En el Capí ulo 7 se de allan los pasos seguidos en el de-
sa ollo de la solución p opues a. El Capí ulo 8 p esen a un es udio del endimien o
del sis ema en simulación. El Capí ulo 9 ecoge la desc ipción de las a eas y ases
del
TFM
, jun o con un diag ama de Gan que e leja su plani icación. El Capí ulo 10
abo da los aspec os económicos del
TFM
. Finalmen e, en el Capí ulo 11 se p esen an
las conclusiones ex aídas y se plan ean posibles mejo as y líneas de in es igación
u u as.
Además, el documen o incluye dos anexos: el Anexo A, que desc ibe los pasos
necesa ios pa a ins ala y ejecu a el sis ema comple o, y el Anexo B, donde se
ecopila el código de los p incipales iche os desa ollados.
1
2
Con ex o
La obó ica a a iesa una ans o mación p o unda como esul ado de la digi a-
lización de los p ocesos indus iales, el inc emen o de la capacidad de p ocesamien o
y la p oli e ación de en o nos de desa ollo open sou ce o de código abie o. Es a
nue a e apa ecnológica se ca ac e iza po la con e gencia en e sis emas ísicos y
digi ales, donde los obo s dejan de se elemen os aislados pa a o ma pa e de
sis emas cibe ísicos he e ogéneos, in e conec ados y dis ibuidos. En es e nue o
pa adigma, los sis emas obó icos deben se capaces de adap a se dinámicamen e al
en o no, colabo a en e sí y compa i in o mación de o ma e icien e y segu a [18,
23].
En línea con es a e olución, el me cado global del so wa e obó ico alcanzó en 2024
un alo es imado de 20.000 millones de dóla es, con una p e isión de c ecimien o
sos enido del 22,4% anual du an e la p óxima década [15]. Conc e amen e, el
me cado de soluciones basadas en ROS ue alo ado en 50.160 millones de dóla es
en 2023, con expec a i as de alcanza los 88.220 millones de dóla es en 2030, lo
que ep esen a un c ecimien o anual compues o del 8,4% [16].
Sin emba go, el desa ollo de soluciones obó icas sigue en en ando impo an es
limi aciones écnicas y me odológicas. Una de las más ele an e es la ele ada depen-
dencia de soluciones p opie a ias impues a po muchos ab ican es, lo que da luga
aso wa e ce ado, APIs no es anda izadas e incompa ibilidad en e pla a o mas
[50]. Es o di icul a la eu ilización de código, inc emen a los iempos y cos es de
desa ollo y limi a la escalabilidad de las soluciones hacia escena ios mul i obo
y mul i ab ican e. Además, la al a de compa ibilidad en e sis emas en o pece
la ans e encia de soluciones en e p oyec os, sec o es o en o nos académicos e
indus iales [4].
F en e a es e escena io, la comunidad cien í ica ha comenzado a p omo e en oques
o ien ados a la independencia del ha dwa e median e el uso de es ánda es abie os
y a qui ec u as desacopladas que a o ezcan la in eg ación en e pla a o mas, la
modula idad y la eu ilización de componen es [6]. En es a línea, la e olución
hacia
ROS
2 cons i uye un a ance signi ica i o, al p opo ciona una pla a o ma de
p og amación de obo s basado en el es ánda Da a Dis ibu ion Se ice (
DDS
), que
inco po a mejo as sus anciales en la comunicación dis ibuida, la ges ión del ciclo
de ida de los nodos, el sopo e pa a sis emas de iempo eal y la in oducción de
mecanismos de segu idad in eg ados [22]. Una encues a ecien e indica que un
78% de desa ollado es g á icosa es as capacidades como elemen os cla e pa a su
3
adopción, y ya se han documen ado despliegues uncionales en en o nos indus iales
con más de 100 obo s ope ando de o ma simul ánea, supe ando con c eces las
limi aciones es uc u ales de ROS 1 [22, 27].
Asimismo, en el p oceso de desa ollo de soluciones obó icas complejas, cob a
especial ele ancia la alidación en en o nos simulados, que pe mi e ealiza p uebas
de o ma segu a, ep oducible y a bajo cos e. En e las pla a o mas más u ilizadas
en es e ámbi o se encuen an Gazebo Sim, ampliamen e ex endida en la comunidad
cien í ica, Webo s, econocida po su es abilidad y acilidad de uso, o CoppeliaSim,
que des aca po su lexibilidad y bajo consumo de ecu sos. También se emplean
en o nos como PyBulle , con g an o ien ación a la in es igación en ap endizaje, o
Isaac Sim y Uni y, más cen ados en g á icos ealis as y aplicaciones indus iales.
Todas es as he amien as o ecen capacidades a anzadas pa a modela dinámicas
ísicas, senso es y escena ios mul i obo , lo que es esencial pa a acele a el ciclo de
desa ollo y ga an iza una ansición obus a hacia en o nos eales [5, 9, 42].
En es e con ex o, el p esen e
TFM
abo da de o ma di ec a una p oblemá ica aún no
esuel a: la al a de un en o no uni icado que pe mi a de ini y ejecu a misiones
obó icas sin depende del ipo de obo ni del ab ican e. Pa a da espues a, se
plan ea el desa ollo de un en o no de aplicación independien e del ha dwa e y
basado en ecnologías abie as, capaz de ges iona la ejecución de misiones obó icas
en sis emas mul i obo y mul i ab ican e, p omo iendo así la in e ope abilidad, la
escalabilidad y la eu ilización de soluciones. Con ello, se sien an las bases pa a el
desa ollo de un con ol de lo as he e ogéneas de obo s plenamen e ope a i o, con
posibilidad de ex ende se a obo s eales en ases pos e io es.
4Chap e 2 Con ex o
3
Obje i os y alcance
3.1 Obje i os
El obje i o p incipal de es e
TFM
es el desa ollo de un en o no de aplicación
uni e sal que pe mi a la con igu ación de misiones y ope aciones de o ma ágil,
con independencia del ha dwa e de ac uación. Pa a alcanza es e p opósi o, se
es ablecen los siguien es obje i os pa ciales:
•Obje i o 1: Análisis del es ado de in eg ación ac ual.
El p ime obje i o consis e en ealiza un es udio exhaus i o sob e el es ado
de in eg ación ac ual de múl iples ab ican es en di e en es en o nos de de-
sa ollo. Es e análisis se cen a en la iden i icación de los mé odos, p o ocolos
y es ánda es empleados, además de los p incipales obs áculos écnicos y de
compa ibilidad. Es a p ime a in es igación o ien a á las ases pos e io es del
abajo.
•Obje i o 2: Desa ollo de un en o no de aplicación uni e sal.
El segundo obje i o del abajo es el desa ollo de un en o no de aplicación uni-
e sal pa a la de inición y ejecución de misiones de abajo con independencia
del ab ican e y la ipología del ha dwa e. Es e espacio debe á abs ae se de las
ca ac e ís icas especí icas de cada pla a o ma obó ica, b indando al usua io la
posibilidad de diseña y ejecu a misiones de mane a uni o me y lexible. La
modula idad, la escalabilidad y la compa ibilidad con es ánda es abie os se án
cla es, ya que se busca acili a su adopción en di e sos con ex os indus iales
y académicos.
•Obje i o 3: Validación de la aplicación en un en o no de simulación.
T as comple a el Obje i o 2, se ealizan p uebas en en o nos de simulación
pa a comp oba el uncionamien o del sis ema. Se u ilizan obo s manipu-
lado es de di e en es ab ican es pa a asegu a se de que el ha dwa e se abs ae
co ec amen e, que los sis emas son in e ope ables y que se cumplen odos los
equisi os uncionales de inidos.
5

3.2 Alcance
El p esen e
TFM
se cen a en el diseño e implemen ación de una a qui ec u a modu-
la pa a la de inición y ejecución de misiones en en o nos mul i obo he e ogéneos.
El sis ema se alida ín eg amen e en simulación, u ilizando Gazebo Sim como en-
o no de ejecución, sob e un mundo acío adap ado pa a op imiza el endimien o
del conjun o. No se con empla en es a ase el despliegue en obo s ísicos, aunque la
a qui ec u a es á plan eada pa a acili a esa ansición en u u os desa ollos.
La solución implemen ada incluye es componen es p incipales: la capa de ges ión
de obo s, esponsable de ins ancia y elimina modelos en el simulado median e
se icios de
ROS
2; la capa de in e az de usua io, desa ollada como un panel
pe sonalizado en RViz pa a simpli ica la con igu ación de misiones; y la capa de
ejecución en simulación, enca gada de desplega los modelos en Gazebo y aplica les
las p opiedades ísicas de inidas en sus desc ipciones. Además, se de inen los
mecanismos de comunicación necesa ios en e las capas, ga an izando que los da os
in oducidos po el usua io ( ipo de obo , posición inicial, ac i ación del con ol) se
aduzcan en ope aciones conc e as den o del en o no simulado.
Queda ue a del alcance de es e
TFM
la implemen ación de la capa de plani icación y
con ol, que se plan ea como abajo u u o. Aun así, la a qui ec u a es á p epa ada
pa a su in eg ación g acias a la o ma en la que se ha es uc u ado el espacio de
abajo, la modula idad en el diseño de los paque es y la inco po ación de RViz
como en o no base, ya que puede in eg a Mo eI de o ma na i a median e el
plugin Mo eI Mo ion Planning. Es os elemen os ga an izan que, cuando se desa olle
la capa de con ol, pueda añadi se sin modi icaciones sus anciales en el es o del
sis ema.
6Chap e 3 Obje i os y alcance
4
Bene icios
Es e
TFM
p opone una solución lexible y escalable pa a la de inición y ejecución
de misiones obó icas con independencia del ha dwa e y del ab ican e. El diseño
modula del sis ema, basado en p incipios de abs acción y eu ilización, no solo
p esen a en ajas desde el pun o de is a écnico, sino que ambién gene a impac os
posi i os en o os aspec os cla e de la ida y la sociedad. A con inuación, se clasi ican
es os bene icios según su na u aleza:
1. Bene icios ecnológicos
La implemen ación de sis emas obó icos u ilizando so wa e de código abie o
omen a la colabo ación mul idisciplina y la in eg ación de nue as ecnologías.
El uso de es ánda es abie os y o ma os de desc ipción in e ope ables ga an-
iza la compa ibilidad con múl iples en o nos de simulación y ejecución. Es as
ca ac e ís icas a o ecen el desa ollo de so wa e más obus o, de ácil man e-
nimien o y po able, lo que esul a esencial pa a sis emas obó icos dis ibuidos
y he e ogéneos.
2. Bene icios económicos
La posibilidad de ene un en o no uni e sal que pe mi a abs ae se de la
ipología y del ab ican e de los obo s u ilizados, conlle a una educción de
cos es asociados a la o mación del pe sonal en en o nos especí icos. Además,
elimina la dependencia de un solo ab ican e, implica lexibilidad pa a in e-
g a equipos especí icos que puedan op imiza el p oceso o disposi i os más
económicos de o os ab ican es.
3. Bene icios medioambien ales
Se acili a una ansición ecnológica escalonada, de o ma que la sus i ución
de equipos se pueda ealiza de o ma p og esi a e i ando desecha equipos
uncionales po p oblemas de compa ibilidad.
4. Bene icios sociales
El desa ollo de un en o no de aplicación uni e sal con ibuye a amplia
el acceso a ecnologías obó icas a anzadas, especialmen e pa a pequeñas
y medianas emp esas, cen os educa i os y o ganizaciones que no cuen en
con g andes ecu sos económicos y ecnológicos. Al es anda iza y hace
más accesible la in o mación, se omen a la colabo ación in e disciplina y
la ans e encia de conocimien o en e sec o es. Es o no solo p omue e la
inno ación, sino que ambién ayuda a desa olla habilidades écnicas en la
sociedad en gene al.
7
4.1 Obje i os de Desa ollo Sos enible (ODS)
Los Obje i os de Desa ollo Sos enible (ODS) son un conjun o de 17 obje-
i os globales de inidos en 2015 po la Asamblea Gene al de las Naciones
Unidas, den o del ma co de la Agenda 2030 pa a el Desa ollo Sos enible.
Es os obje i os buscan abo da de o ma in eg al los g andes desa íos a los
que se en en a la humanidad, ales como la pob eza, la desigualdad, el cam-
bio climá ico, la deg adación del medio ambien e, la paz y la jus icia [49].
Cada ODS se compone de obje i os conc e os que simpli ican la ges ión de
polí icas públicas, inicia i as sociales, in es igaciones académicas y acciones
indi iduales hacia un p og eso más jus o y sos enible a escala global.
Es e TFM con ibuye al Obje i o 8 (P omo e el c ecimien o económico
sos enido, inclusi o y sos enible, el empleo pleno y sos enible y omen a
la inno ación). Es o se log a p incipalmen e a a és de los bene icios económi-
cos y sociales que gene a el en o no de aplicación uni e sal. Al pe mi i
la independencia del ha dwa e de ac uación, se p oduce una educción de
cos es asociados a la o mación del pe sonal en en o nos obó icos especí icos.
Además, al elimina la dependencia de un solo ab ican e, se acili a la ansi-
ción ecnológica. Po o o lado, la democ a ización del acceso a la ecnología
obó icas a anzadas omen a la inno ación en sec o es que an es encon aban
ba e as de en ada debido a la complejidad y el cos e.
Además, el abajo apoya el Obje i o 9 (Cons ui in aes uc u as esilien es,
p omo e la indus ialización inclusi a y sos enible y omen a la inno ación).
El desa ollo de un en o no de aplicación uni e sal, modula , escalable y
compa ible con es ánda es abie os, sien a las bases pa a una in aes uc-
u a so wa e más esilien e pa a el con ol obó ico en di e sos con ex os
indus iales y académicos.
Finalmen e, el TFM se alinea con el Obje i o 12 (Ga an iza modalidades de
consumo y p oducción sos enibles), p incipalmen e a a és de sus bene icios
medioambien ales. La solución p opues a acili a una ansición ecológica
escalonada. Es o signi ica que, en luga de desecha equipos uncionales po
p oblemas de compa ibilidad con nue os sis emas o so wa e de con ol, las
emp esas puede ealiza la sus i ución de sus equipos de o ma p og esi a.
Es e en oque con ibuye a educi los esiduos ecnológicos.
8Chap e 4 Bene icios
5
Análisis del es ado del a e
5.1 In oducción
El a ance de la obó ica en los úl imos años ha es ado ma cado po una c ecien e
complejidad en los sis emas y la necesidad de diseña a qui ec u as modula es,
escalables y adap ables. En es e con ex o, los obo s mode nos se conciben como
sis emas cibe ísicos en los que con e gen elemen os de compu ación, comunicación
y con ol embebido, ligados es echamen e al en o no ísico en el que ope an [2,
24]. Es a ansición ha abie o nue as posibilidades, pe o ambién plan ea desa íos
signi ica i os en cuan o a in e ope abilidad, ges ión e icien e de ecu sos, despliegue
en en o nos he e ogéneos y alidación a g an escala [47].
Den o de es e pano ama, la obó ica de enjamb e ha su gido como un en oque
pa a la descen alización de sis emas obó icos. Es e pa adigma coo dina múl iples
obo s median e compo amien os eme gen es y un código común ejecu ado en cada
miemb o del enjamb e [8, 10]. Buzz, un lenguaje de p og amación pa a enjamb es
de obo s, pe mi e implemen a es a dinámica a a és de una máquina i ual.
En [44] se in oduce ROSBuzz, una in eg ación de Buzz en ROS que o ece una
solución obus a pa a el desa ollo de compo amien os dis ibuidos. Sin emba go,
su p incipal limi ación adica en que odos los obo s del enjamb e compa en el
mismo código, lo que educe la indi idualidad de los obo s den o del sis ema y
di icul a la implemen ación de con ol dis ibuido e ec i o.
Más allá de los en oques especí icos pa a enjamb es, el desa ollo de sis emas obó i-
cos he e ogéneos equie e analiza las ecnologías de base que los hacen posibles.
En es e capí ulo se abo dan de o ma independien e es pila es undamen ales: las
pla a o mas de p og amación de obo s, los en o nos i uales de simulación y los
o ma os de desc ipción de obo s.
Po ello, en es e capí ulo se analizan de o ma independien e es pila es undamen-
ales en la obó ica ac ual: las pla a o mas de p og amación de obo s (Sección 5.2),
los en o nos i uales de simulación (Sección 5.3) y los o ma os de desc ipción de
obo s 5.4).
9
ac ualizada, o os de discusión, paque es apo ados po e ce os y sopo e
ac i o po pa e de los desa ollado es.
•
Licencias y cos e: Tipo de licencia bajo la cual se dis ibuye el amewo k, así
como su cos e. Se p io izan las soluciones de código abie o que pe mi en el
uso lib e y sin es icciones.
A p incipios de los 2000, su gie on di e en es amewo ks ymiddlewa e obó icos
impulsados po labo a o ios de in es igación y comunidades académicas. En e ellos
des acan Ye Ano he Robo Pla o m (
YARP
), concebido como un en o no lige o y
lexible pa a modula idad y eu ilización de código en obo s humanoides [45];
Open Robo Con ol So wa e (
OROCOS
), o ien ado al con ol en iempo eal con
su Real-Time Toolki y biblio ecas de cinemá ica y dinámica en C++ [30]; MIRA,
desa ollado en C++ pa a aplicaciones dis ibuidas con én asis en la e iciencia de
las comunicaciones y en la c eación de módulos eu ilizables [28]; y ORCA, que
o ece un en o no modula pa a la in eg ación de senso es y ac uado es en sis emas
he e ogéneos [29].
Fue en es e con ex o cuando, en 2007, se lanzó
ROS
, que des acó po su amplio
ecosis ema de biblio ecas y paque es, con i iéndose en el amewo k de e e encia,
aunque no ue a écnicamen e supe io a las al e na i as exis en es [14, 22]. Sin
emba go, al en en ase a demandas come ciales, comenza on a e idencia se sus
limi aciones en segu idad, iabilidad, capacidades en iempo eal y compa ibilidad
con o os sis emas [22]. Pa a supe a es os desa íos,
ROS
2 ue diseñado desde
ce o, adop ando el middlewa e DDS como base pa a mejo a su endimien o en es as
á eas [22, 25]. Es e ediseño ha consolidado a
ROS
2 no solo como amewo k de
e e encia en in es igación, sino ambién como una solución obus a pa a aplica-
ciones come ciales mode nas. El es o de pla a o mas no han in oducido mejo as
signi ica i as en los úl imos años y la comunidad in es igado a ha pi o ado casi po
comple o hacia ROS y ROS 2.
En pa alelo, han su gido nue as p opues as que buscan supe a algunas de las
limi aciones de los amewo ks clásicos. En e ellas des aca XBo 2, un middlewa e en
iempo eal, modula y o ien ado a la eu ilización, diseñado pa a ga an iza obus ez
y escalabilidad en aplicaciones a anzadas de con ol obó ico [21]. También se han
plan eado a qui ec u as de nue a gene ación cen adas en la ejecución de e minis a y
en la educción de la encias de comunicación, con un en oque especí ico en sis emas
dis ibuidos y he e ogéneos [1]. Es as pla a o mas e lejan el dinamismo ac ual
del campo, pe o ninguna cuen a con la comunidad, la madu ez ni el ecosis ema de
lib e ías que ca ac e izan a ROS 2.
Po odo lo expues o, se concluye que
ROS
2 es la pla a o ma más adecuada pa a el
desa ollo de es e abajo, al se la única que combina un ecosis ema amplio, sopo e
indus ial y académico, y una comunidad ac i a en cons an e c ecimien o. Una
16 Chap e 6 Análisis de al e na i as

ez es ablecida es a elección, esul a necesa io selecciona la dis ibución conc e a
de
ROS
2 sob e la cual se cons ui á el sis ema. Se escoge Humble Hawksbill po
a a se de una e sión Long-Te m Suppo (
LTS
) y se compa ible con Ubun u 22.04
Jammy Jelly ish que ambién es una dis ibución
LTS
. Es a combinación ga an iza un
en o no es able, con man enimien o ex endido y ac ualizaciones asegu adas has a
ab il de 2027. Además, Humble lle a más de dos años en ci culación, lo que implica
una documen ación ac ualizada y madu a, un amplio sopo e de la comunidad,
paque es ampliamen e p obados y alidados, mayo es abilidad espec o a e siones
más ecien es y una no able educción de e o es du an e el desa ollo. A es o hay
que añadi le la ine cia en el ecosis ema, que ha hecho que muchas más he amien as,
lib e ías y ecu sos p io icen la compa ibilidad con Humble. Exis e, además, una g an
can idad de u o iales, o os y soluciones a p oblemas comunes ya documen adas
especí icamen e pa a es a dis ibución. Es o se aduce en una educción de la
pendien e de la cu a de ap endizaje y de los iempos de in eg ación.
La Figu a 6.1, ex aída del úl imo análisis de endimien o disponible de
ROS
, mues a
que la dis ibución más desca gada en oc ub e de 2024 es Humble, muy po delan e
de las demás dis ibuciones. Se obse a ambién un amplio po cen aje de desca gas
de la e sión Noe ic po se la úl ima disponible de
ROS
1 an es de su in de ida el
31 de mayo de 2025.
Figu a 6.1: Po cen ajes de desca gas de las di e en es dis ibuciones de ROS en oc ub e
2024 [43].
Además, en la Figu a 6.2 se obse a cómo Humble con inúa ecibiendo un po cen aje
signi ica i o de apo aciones o commi s de man enimien o po pa e del eposi o io
o icial de osdis o. Es e hecho e leja que se a a una e sión ac i a y en e olución
cons an e.
6.1 F amewo ks y a qui ec u as pa a el desa ollo de sis emas obó icos 17
Figu a 6.2: Po cen aje de commi s po osdis o pa a el man enimien o de las dis in as
dis ibuciones de ROS.
6.2 En o nos de simulación
Teniendo en cuen a la desc ipción de los en o nos de simulación u ilizados en el
campo de la obó ica del Capí ulo 5, se analizan los simulado es más popula es en
el sec o pa a encon a el que mejo encaje en es e desa ollo.
Pa a escoge el simulado u ilizado, se ienen en cuen a los siguien es c i e ios, al-
guno de los cuales coinciden con los de la elección de la pla a o ma de p og amación
de obo s:
•
Compa ibilidad con
ROS
2: dado que en la sección an e io se ha es able-
cido
ROS
2 como la base de desa ollo de es e abajo, el simulado debe
in eg a se de o ma na i a con es e amewo k o, en su de ec o, con a con
puen es o iciales que ga an icen la comunicación con los nodos y el es o de la
in aes uc u a del sis ema.
•
Fidelidad ísica: Se alo a la p ecisión de los mo o es ísicos que u iliza el
simulado , así como su capacidad pa a ep esen a colisiones u o as dinámicas
ísicas de mane a ealis a.
•
Escalabilidad: El simulado debe pe mi i la in eg ación de nue os modelos,
senso es, ac uado es y plugins. Además, debe de se capaz de simula múl iples
obo s de o ma e icien e.
•
Comunidad y sopo e: Se conside a la madu ez del simulado , su ni el de
adopción en la comunidad, la disponibilidad de documen ación ac ualizada,
ejemplos de uso y paque es de e ce os.
•
Licencias y cos e: Se p io izan soluciones de código abie o que no impliquen
es icciones en su uso o dis ibución.
18 Chap e 6 Análisis de al e na i as
La Tabla 6.1 ecoge una compa a i a de los p incipales en o nos de simulación em-
pleados ac ualmen e en el ámbi o de la obó ica, en base a los c i e ios mencionados
y a es udios compa a i os ecien es [5].
Nomb e Logo Mo o ísico Sopo e
Headless
Código
Abie o
Sopo e
ROS2
Sopo e
ML
Gazebo
Classic
Bulle , DART,
ODE, Simbody To al Sí Sí Ex e no
Gazebo Sim DART To al Sí Sí Ex e no
Webo s ODE Pa cial Sí Sí Ex e no
Isaac Sim PhysX To al No Sí In eg ado
Uni y Ha ok, PhysX,
RaiSim To al No No Ex e no
PyBulle Bulle To al Sí No Ex e no
CoppeliaSim
(V-REP)
Bulle , New on,
ODE, Vo ex
Dynamics
To al No Sí Ex e no
MuJoCo MuJoCo To al Sí No Ex e no
Tabla 6.1: Compa a i a de en o nos de simulación más popula es en obó ica [5].
El análisis pe mi e obse a que no exis e un simulado que pueda conside a se
como la mejo opción en é minos absolu os, sino que cada uno o ece en ajas
pa icula es según el ipo de aplicación. Po ejemplo, Gazebo y Webo s des acan po
su es abilidad y su in eg ación consolidada en p oyec os de in es igación, mien as
que PyBulle y CoppeliaSim p esen an un consumo compu acional más educido,
lo que los hace a ac i os pa a simulaciones lige as o p uebas ápidas. Isaac Sim y
Uni y, po su pa e, p opo cionan en o nos isuales muy ealis as y con in eg ación
de écnicas de ap endizaje au omá ico, aunque a cos a de un mayo consumo de
ecu sos y con la limi ación de no se comple amen e de código abie o [5].
En el con ex o de es e abajo, la elección del simulado es á condicionada p inci-
palmen e po dos ac o es: la compa ibilidad con
ROS
2 y la necesidad de sopo a
escena ios mul i obo . Bajo es os c i e ios, Gazebo se p esen a como la al e na i a
más adecuada, ya que o ece una in eg ación na i a con
ROS
2 a a és del paque e
o icial
os_gz_b idge
, lo que acili a una comunicación luida en e el simulado y
los nodos de
ROS
sin depende de soluciones ex e nas [36]. Además, es o almen e
uncional en modo headless, lo cual es esencial cuando se ejecu an múl iples obo s
6.2 En o nos de simulación 19
de o ma simul ánea y cuen a con una comunidad ac i a que lo man iene como
es ánda de ac o en in es igación [5]. La amplia disponibilidad de modelos de
obo s en o ma o
URDF
y
SDF
acili a la inco po ación de nue as pla a o mas al
en o no.
Una ez seleccionada la amilia Gazebo como en o no de simulación, es necesa io
acla a la e olución de sus e siones pa a e i a con usiones. La coexis encia de
los é minos Gazebo, Gazebo Classic, Igni ion y Gazebo Sim ha gene ado cie a
ambigüedad en la documen ación y en la p opia comunidad. Gazebo iene su
o igen en 2002 y, as 15 años de desa ollo, se impulsó una nue a línea bajo el
nomb e Igni ion, mien as la e sión o iginal pasó a denomina se Gazebo Classic.
Sin emba go, debido a cues iones elacionadas con el uso de la ma ca come cial
"Igni ion", en 2022 se ecupe ó el nomb e o iginal, es ableciendo como denominación
o icial Gazebo, aunque en la p ác ica suele e e i se a es a nue a gene ación como
Gazebo Sim pa a dis ingui la de Gazebo Classic [33].
Aunque Gazebo Classic ( e sión 11) ha sido his ó icamen e el simulado de e e en-
cia pa a
ROS
1, su sopo e inalizó con la dis ibución Noe ic, la úl ima e sión o icial
de
ROS
1. Gazebo Classic no es compa ible pa a las e siones de
ROS
2 pos e io es
a Humble, siendo eemplazado po Gazebo Sim, que se con ie e en la al e na i a
ecomendada y la seleccionada pa a es e TFM [35].
20 Chap e 6 Análisis de al e na i as
7
Diseño y desa ollo de la solución
p opues a
En es a sección se desc ibe el plan eamien o, el desa ollo y la implemen ación
pa a la ges ión y coo dinación de misiones en en o nos mul i obo he e ogéneos.
Se de alla el p oceso seguido, que pa e de una a qui ec u a modula po capas y
con inúa con el desa ollo de las he amien as necesa ias pa a la con igu ación de
las misiones: la in e az de usua io, la p epa ación y el despliegue de los obo s
en el en o no de simulación. El lujo de abajo se alida en un en o no simulado
con Gazebo Sim, ga an izando que la es uc u a desa ollada pueda, en u u os
desa ollos, in eg a se con la capa de plani icación y con ol y ejecu a se sob e obo s
ísicos sin modi ica las capas supe io es.
Aunque la a qui ec u a p opues a con empla una capa de plani icación y con ol
pa a la ejecución de misiones, en la e sión ac ual del abajo es a pa e no ha
sido implemen ada debido a las limi aciones de iempo y alcance del p oyec o.
Su desa ollo se plan ea como abajo u u o, man eniendo la es uc u a ac ual
p epa ada pa a in eg a la sin modi icaciones sus anciales en el es o del sis ema.
El capí ulo se o ganiza de o ma pa alela a la a qui ec u a plan eada: p ime o se
p esen a la isión gene al po capas, explicadas de mayo a meno ni el, después se
dedica una sección a cada capa y, po úl imo, se abo da el despliegue comple o del
sis ema. Aunque la a qui ec u a del sis ema se o ganiza en capas de a iba hacia
abajo, la explicación de cada capa sigue el o den in e so. Es e en oque acili a la
lec u a, ya que pe mi e pa i de los elemen os más angibles ( obo s y simulación)
pa a después p o undiza en las he amien as de coo dinación y, inalmen e, en la
in e acción con el usua io.
7.1 A qui ec u a gene al del sis ema
El sis ema p opues o se ha diseñado siguiendo un en oque modula y po capas,
con el obje i o de ga an iza la escalabilidad, la eu ilización de componen es y la
independencia en e al ha dwa e especí ico de cada obo . Es e diseño esponde
a la necesidad de in eg a en un mismo en o no uncionalidades que an desde la
de inición de la misión po pa e del usua io has a su ejecución en un obo ísico o
simulado.
21

El obje i o p incipal es dispone de un en o no capaz de coo dina , de o ma si-
mul ánea y gené ica, una lo a de obo s he e ogénea, e i ando dependencias con
ab ican es, modelos o con igu aciones especí icas. Es o implica que cada compo-
nen e de la a qui ec u a debe diseña se pa a adap a se ácilmen e a nue os obo s y
escena ios sin g andes modi icaciones.
Figu a 7.1: A qui ec u a po capas del sis ema p opues o.
Se p opone una a qui ec u a o ganizada en cua o capas p incipales 7.1:
1. Capa de in e az de usua io
Es el pun o de in e acción di ec a en e el ope ado y el sis ema. Pe mi e la
de inición y con igu ación de misiones de mane a in ui i a y accesible. En
la e sión ac ual del sis ema, la in e az es á implemen ada como un panel
pe sonalizado in eg ado en RViz, o ien ado a la ins anciación y eliminación de
obo s en el en o no de simulación. La comunicación con las capas in e io es
se ealiza mendian e se icios de ROS 2 que en ían la in o mación in oducida
po el usua io ( ipo de obo , posición inicial, ac i ación o desac i ación del
con ol, e c). Aunque RViz es una he amien a capaz de mos a en iempo eal
el en o no y el es ado de los obo s, en la e sión ac ual no se ha habili ado es a
isualización, ya que la capa de con ol aún no es á ope a i a. No obs an e, el
diseño de la in e az se ha plan eado pa a que, en u u as implemen aciones,
pueda habili a se la capa de con ol.
22 Chap e 7 Diseño y desa ollo de la solución p opues a
2. Capa de ges ión de obo s
Recibe las solici udes p oceden es de la in e az con la con igu ación de la
misión de inida po el usua io y la aduce en acciones conc e as sob e el
en o no de ejecución. Su unción p incipal es desplega y con igu a los
obo s, asignándoles iden i icado es únicos y inculándolos a sus desc ipciones
(URDF o XACRO) y pa áme os cinemá icos o ine ciales especí icos, si es
necesa io. Es a capa unciona como puen e en e la con igu ación abs ac a de
la misión y la ep esen ación ísica o simulada de los obo s, conside ando en
odo momen o que no haya con lic os en escena ios mul i obo . Además, al
u iliza se icios en ROS 2 que usa un modelo pe ición- espues a e i a á ico
innecesa io.
3. Capa de plani icación y con ol (p e is a pa a u u as implemen aciones)
Aunque no se ha implemen ado en la e sión ac ual, es a capa es undamen-
al en el diseño gene al. Se á la esponsable de ecibi la misión de inida y
ans o ma la en comandos ejecu ables po cada obo , eniendo en cuen a
sus capacidades, limi aciones y el es ado del en o no. Es á p e is o in e-
g a plani icado es como Mo eI pa a la gene ación de ayec o ias jun o
con
os2_con ol
pa a la ejecución modula y es anda izada de comandos
en ac uado es eales o simulados. La es uc u a ac ual es á p epa ada pa a
inco po a es a capa sin cambios sus anciales en el es o del sis ema.
4.
Capa de ejecución ísica o simulada Cons i uye la base del sis ema y es
donde se lle a a cabo la misión, ya sea en obo s ísicos en un en o no eal o en
modelos i uales en Gazebo Sim. En la e sión ac ual, la ejecución se limi a
exclusi amen e al en o no de simulación, lo que pe mi e alida las misiones
en condiciones con oladas y ep oducibles sin iesgo pa a el ha dwa e. Es a
capa ecibe desde la ges ión de obo s oda la in o mación necesa ia pa a c ea
o elimina ins ancias de modelos, y se enca ga de ende iza los y simula su
compo amien o ísico.
Figu a 7.2: Es uc u a del sis ema de a chi os del espacio de abajo.
7.1 A qui ec u a gene al del sis ema 23
El espacio de abajo (o wo kspace en el lenguaje de
ROS
2) se ha es uc u ado
en dis in os paque es en unción de su uncionalidad, man eniendo siemp e un
en oque modula . La Figu a 7.2 mues a la o ganización gene al del espacio de
abajo
con ol_mul i obo
, donde los paque es se ag upan según la capa de la
a qui ec u a en la que pa icipan. Así, el paque e
cus om_ iz_panels
co esponde
a la capa de in e az de usua io;
mission_managemen
a la ges ión de obo s; y
los paque es
obo _desc ip ion
y
obo _gazebo
, incluidos den o de la ca pe a
obo _simula ion
, con o man la capa de ejecución ísica o simulada. Po su pa e,
obo _con ol
queda ese ado pa a la u u a capa de plani icación y con ol. Es e
esquema global e leja el ca ác e modula del sis ema, en el que cada paque e
encapsula su p opia uncionalidad y puede e oluciona de mane a independien e
sin a ec a al es o.
Con el obje i o de que el sis ema sea po able, odas las u as den o de los iche os
se han de inido de o ma ela i a al espacio de abajo y no como u as absolu as. De
es a mane a, el sis ema queda encapsulado en el espacio de abajo. Asimismo, se
ha p ocu ado no modi ica a iables den o del en o no de Linux, lo que simpli ica
el despliegue en o os disposi i os.
En las siguien es secciones se desc iben en de alle cada una de las capas que con o -
man la a qui ec u a, siguiendo un o den de más al o a más bajo ni el.
7.2 Capa de ejecución ísica o simulada
La capa de ejecución cons i uye la base de la a qui ec u a, ya que es en ella donde
las misiones de inidas po el usua io se lle an a cabo, ya sea en un en o no i ual
o sob e obo s ísicos. En el con ex o ac ual del p oyec o, es a capa se implemen a
exclusi amen e median e Gazebo Sim, un simulado de código abie o ampliamen e
u ilizado en obó ica que o ece un mo o ísico ealis a, ende izado 3D y compa i-
bilidad con múl iples o ma os de desc ipción de obo s.
Gazebo pe mi e ec ea con p ecisión el compo amien o de los obo s, simulando
an o su dinámica como la in e acción con el en o no. G acias a su in eg ación con
ROS
2, la comunicación en e el simulado y el es o del sis ema se hace de o ma
anspa en e, lo que pe mi e ejecu a en simulación los mismos lujos de abajo que,
en el u u o, se desplega án en obo s eales.
En la e sión ac ual, la capa de ejecución ecibe desde la capa de ges ión de obo s las
ins ucciones necesa ias pa a ins ancia o elimina modelos en el mundo simulado.
Es as ins ucciones incluyen el ipo de obo , su posición inicial y si debe ca ga se con
con ol habili ado. Ac ualmen e, la opción de con ol debe pe manece desac i ada
ya que la capa de con ol y plani icación no es á ope a i a. Gazebo se enca ga de
ende iza el modelo y aplica las p opiedades ísicas de inidas en su desc ipción.
24 Chap e 7 Diseño y desa ollo de la solución p opues a
Figu a 7.3: Mundo acío en Gazebo Sim.
En es e abajo, la simulación se desa olla sob e un mundo acío pe sonalizado en
Gazebo Sim (Figu a 7.3). Es e mundo es á diseñado pa a o ece un en o no limpio
y lib e de elemen os adicionales, de o ma que se minimicen los ecu sos de cálculo.
Es a conside ación es cla e en la simulación mul i obo ya que el uso de ecu sos
compu acionales c ece á exponencialmen e con o me aumen e el núme o de obo s
en simulación. El a chi o de de inición (
cus om_emp y_wo ld.sd
) con igu a aspec-
os básicos como el plano del suelo, la iluminación y los pa áme os ísicos globales,
si iendo como escena io base pa a ins ancia cualquie combinación de obo s
disponibles en el sis ema.
Den o del espacio de abajo, la uncionalidad de simulación se o ganiza en dos
paque es:
obo _desc ip ion
, o ien ada a la desc ipción de los obo s u o os
modelos que puedan añadi se a la simulación en el u u o como pueden se obs ácu-
los y senso es (mallas,
URDF
/
XACRO
, pa áme os); y
obo _gazebo
, o ien ada a
Gazebo Sim de o ma especí ica (mundos, iche os de lanzamien o, u ilidades de
simulación). La ca pe a
obo _simula ion
ac úa únicamen e como con enedo de
es os dos paque es po mo i os de o ganización pe o no es un paque e ROS 2.
7.2.1 Desc ipción de los modelos
Como se obse a en la Figu a 7.4, el paque e
obo _desc ip ion
con iene es ca -
pe as p incipales: en
con ig/
se encuen an los pa áme os ela i os a la cinemá ica
e ine cias de algunos modelos de obo s disponibles; la ca pe a
meshes/
con iene
odos los iche os de mallas de cada uno de los eslabones de cada obo ; y en la
ca pe a u d / se encuen an los iche os de desc ipción de cada obo .
Es e paque e se cons uye con
amen _cmake
po que con iene las desc ipciones de
los obo s y no nodos ejecu ables. Usa CMake ga an iza que los ecu sos se ins alen
7.2 Capa de ejecución ísica o simulada 25
7.3 Capa de plani icación y con ol
Aunque en la e sión ac ual no se encuen a implemen ada, es a capa es undamen al
en el diseño del sis ema. Su unción se á ans o ma las misiones de inidas en la
in e az de usua io en ayec o ias y comandos ejecu ables po los obo s, eniendo
p esen es las capacidades, limi aciones y ca ac e ís icas de cada en idad en en o nos
mul i obo .
En es e con ex o, se p e é la in eg ación de dos componen es cla e del ecosis ema
ROS 2: Mo eI y os2_con ol.
Mo eI es un conjun o de he amien as de código abie o diseñado pa a acili a la
plani icación de mo imien o, la pe cepción, el con ol y la simulación de sis emas
obó icos, con especial oco en los obo s manipulado es. Mo eI p opo ciona una
in e az uni icada que abs ae la complejidad de ope aciones de al o ni el como la
plani icación cinemá ica, la manipulación de obje os, la e i ación de colisiones o
la gene ación de ayec o ias. A pa i de una solici ud de mo imien o, el sis ema
consul a la con igu ación del obo (de inida en
URDF
y
SDF
), e alúa la iabilidad
del obje i o en la escena de plani icación y gene a una ayec o ia álida u ilizando
mo o es como OMPL, CHOMP o STOMP. Una ez alidada, dicha ayec o ia se
ansmi e a os2_con ol pa a su ejecución.
Mo eI se in eg a de o ma na i a con RViz median e el plugin Mo eI Mo ion Plan-
ning, que pe mi e con igu a la escena de plani icación, es ablece es ados iniciales
y obje i os de o ma in e ac i a, p oba di e en es plani icado es y isualiza el
esul ado an es de ejecu a lo, ya sea en simulación o sob e ha dwa e eal. Es a
in eg ación acili a á, en e siones u u as, que el usua io de ina misiones comple as
desde un mismo en o no isual.
Po su pa e,
os2_con ol
es una in aes uc u a modula o ien ada a la ejecución
de bajo ni el de las ayec o ias plani icadas. Es á compues a po es elemen os
p incipales: las in e aces ha dwa e, que pe mi en el acceso al obo ísico o simulado;
los con olado es, que ejecu an a eas como el seguimien o de ayec o ias o la
egulación de elocidad; y el Con ol Manage , esponsable de o ques a la ca ga,
ac i ación y ac ualización de dichos con olado es. En el con ex o de es e abajo,
os2_con ol
se á lo que pe mi a que la ejecución de las misiones sea independien e
del ha dwa e, ga an izando la po abilidad en e obo s ísicos y simulados sin
cambios sus anciales en las capas supe io es.
32 Chap e 7 Diseño y desa ollo de la solución p opues a

Figu a 7.11:
Es uc u a del sis ema de a chi os del paque e des inado a la ges ión de la
misión.
7.4 Capa de ges ión de obo s
La capa de ges ión de obo s ac úa como puen e en e la con igu ación de la misión
de inida po el usua io y los obo s que deben ejecu a la. Su unción es ecibi las
ó denes que p o ienen de la in e az g á ica de usua io y aduci las en ope aciones
conc e as sob e los modelos en el en o no de simulación, ga an izando que cada
ins ancia de obo se con igu e con los pa áme os adecuados pa a ope a de o ma
coo dinada en un escena io mul i obo .
La Figu a 7.11 mues a cómo los p incipales a chi os se di iden en es di ec o ios
p incipales: la ca pe a
launch/
con iene los iche os de lanzamien o del sis ema
comple o y del nodo MissionManage que coo dina la ges ión de la misión, la ca pe a
sc ip s/
que con iene el código uen e del nodo MissionManage ; y la ca pe a
s /
que con iene el o ma o de los se icios pe sonalizados de ins anciación y eliminación
de ins ancias. También se incluyen el iche o de compilación
CMakeLis s. x
y el
iche o de de dependencias package.xml.
7.4 Capa de ges ión de obo s 33
Aunque el nodo p incipal es á esc i o en Py hon, el paque e de ine se icios pe so-
nalizados (
.s
) y equie e la gene ación de in e aces ROSIDL. Po ello, el paque e
se cons uye con
amen _cmake
, pe mi iendo in eg a en un mismo paque e an o los
códigos en Py hon como las de iniciones de se icios y sus a e ac os gene ados.
7.4.1 Se icios pe sonalizados de ROS 2
En es a implemen ación, la comunicación en e la in e az de usua io y la capa
de ges ión de obo s se ealiza median e se icios de ROS 2. Los se icios son
especialmen e adecuados pa a a eas bajo demanda, como c ea o elimina obo s
de o ma dinámica en el en o no o con igu a cie os pa áme os de la misión
sob e la ma cha (on- he- ly). A di e encia de los ópicos, que siguen un pa ón
publicado -susc ip o con un lujo cons an e de da os, los se icios emplean un
modelo pe ición- espues a donde un nodo clien e en ía una solici ud y espe a una
espues a del se ido , con i mando que la ope ación ha sido ecibida o p ocesada.
Es o e i a el uso innecesa io de ancho de banda en ope aciones pun uales.
Cada se icio se de ine en un iche o
.s
que incluye dos secciones: pe ición y
espues a, sepa adas po
---
. En es e abajo se ha de inido, den o del paque e
mission_managemen /s , los se icios:
•SpawnRobo .s
, pa a ins ancia un nue o obo en la simulación de un
ipo conc e o, en una posición de e minada y ac i ando el con ol o no. Es
impo an e des aca que en es a p ime a e sión del sis ema, como se ha
mencionado an e io men e, el con ol debe pe manece desac i ado al no
es a ope a i a la capa de con ol y plani icación.
•Dele eRobo .s
, pa a elimina una ins ancia conc e a iden i icada po su
namespace.
7.4.2 Funcionamien o del nodo MissionManage
El núcleo de es a capa es el nodo MissionManage , que ac úa como se ido de los
se icios an e io men e mencionados. Es e nodo, además de ges iona las llamadas
a los di e en es se icios, ambién lle a un egis o del núme o de obo s que se
han ins anciado po cada ipo y gene a un namespace único pa a cada una de las
ins ancias. Es a unción es cla e en un escena io mul i obo en el que el sis ema
debe maneja a ios obo s de o ma simul ánea sin que haya colisiones en los
ópicos. El iche o que de ine es e nodo es
mission_manage _node.py
mien as que
mission_manage .launch.py
es el que se enca ga de le an a lo. Ambos iche os
pueden encon a se comple os en el Anexo B.
34 Chap e 7 Diseño y desa ollo de la solución p opues a
Cuando se solici a la inco po ación de un obo a la simulación, el nodo busca el
iche o de desc ipción co espondien e (URDF o XACRO) al ipo de obo y, en los
casos que lo equie en, ambién añade sus pa áme os cinemá icos e ine ciales. A
con inuación, lanza el p oceso que se enca ga á de c ea lo en Gazebo, gua dando
el iden i icado del p oceso pa a pode de ene lo más adelan e si el usua io decide
elimina lo.
En el caso de ecibi la o den de elimina un obo , el MissionManage se conec a
con el se icio de bo ado de en idades de Gazebo. Pa a ealiza es a conexión,
es necesa io expone el se icio na i o de Gazebo como se icio de ROS 2. Es o
se ealiza le an ando un p oceso llamado
os_gz_b idge
al inicializa el nodo.
La eliminación de una ins ancia, jun o con odos los p ocesos asociados, esul a
especialmen e impo an e cuando el obo se encuen a con el con ol ac i o, ya que
en ese caso se gene an p ocesos adicionales que el p oceso na i o de eliminación
de en idades de Gazebo no puede de ene po sí mismo. En la e sión ac ual del
sis ema, en la que la capa de plani icación y con ol aún no es á implemen ada, es os
p ocesos adicionales no se llegan a gene a , po lo que no es necesa io con empla los
al elimina la ins ancia.
Es e diseño acili a la escalabilidad. No es necesa io ealiza cambios sus anciales
en el sis ema cuando se quie a añadi un nue o ipo de obo , bas a con inco po a
su iche o de desc ipción y sus pa áme os cinemá icos e ine ciales a los dicciona-
ios in e nos si lo equie e. Además, el uso de un nodo especí ico que ges iona
la misión, pe mi e la inco po ación de nue os se icios más a anzados pa a mo-
di ica ayec o ias o asigna a eas especí icas a cada obo de la lo a du an e la
ejecución.
7.5 Capa de in e az de usua io
En es a capa se encuen an las he amien as de in e acción di ec a con el usua io,
o ien adas a pe mi i la de inición y con igu ación de misiones obó icas de o ma
in ui i a y accesible. En la e sión ac ual del sis ema, la in e az se ha implemen ado
como un panel pe sonalizado en RViz, desde el que se pueden ins ancia (spawn)
y elimina obo s en el en o no de simulación in oduciendo da os como el ipo
de obo , su posición inicial o la ac i ación del con ol. En u u as e siones, es e
en o no se i á ambién pa a la de inición de ayec o ias o pun os de des ino. La
Figu a 7.12 mues a el en o no de RViz con el panel pe sonalizado in eg ado.
RViz (ROS Visualiza ion) es la he amien a p incipal de isualización 3D del ecosis-
ema de
ROS
. Pe mi e inspecciona y depu a el es ado de un sis ema obó ico en
iempo eal mos ando modelos
URDF
, da os de senso es (LIDAR, cáma as RGB o de
p o undidad), mapas 2D/3D y ayec o ias. Basado en la biblio eca Q , RViz pe mi e
7.5 Capa de in e az de usua io 35
Figu a 7.12: En o no de RViz con el panel pe sonalizado.
in eg a paneles y he amien as pe sonalizadas a a és de su sis ema de plugins.
Es a capacidad de ex ensión lo con ie e en una pieza cla e pa a que el usua io
pueda añadi , con igu a y eo ganiza pan allas pa a isualiza la in o mación que
conside e ele an e.
7.5.1 Desa ollo del panel pe sonalizado
Pa a el desa ollo del panel se escogió C++ como lenguaje base, ya que RViz ue
concebido o iginalmen e y su sopo e en
ROS
2 es más madu o y es able que el
disponible en Py hon. La implemen ación se ealizó en un paque e independien e,
cus om_ iz_panels
, siguiendo la es uc u a e indicaciones de la documen ación
o icial de RViz pa a la c eación de plugins. Es e paque e se compila con
amen _cmake
,
pues o que es necesa io gene a la biblio eca compa ida que RViz ca ga dinámica-
men e al ejecu a el sis ema. La Figu a 7.13 mues a la es uc u a de a chi os del
paque e.
Los iche os p incipales son
mission_panel.hpp
, que de ine la clase y los mane-
jado es de la in e az y
mission_panel.cpp
, que con iene la lógica de in e acción
con
ROS
2. Ambos se complemen an con el iche o de egis o (
iz_common
_plugins.xml
) y con los iche os de compilación
CMakeLis s. x
y
package.xml
.
La clase base
iz_common::Panel
si e como pun o de pa ida y el egis o se
36 Chap e 7 Diseño y desa ollo de la solución p opues a
Figu a 7.13:
Es uc u a del sis ema de a chi os del paque e des inado a la in e az de
usua io.
ealiza a a és de
pluginlib
. El código comple o puede consul a se en el Anexo
B.
7.5.2 Funcionamien o del panel
El panel se di ide en dos secciones p incipales: en la pa e supe io , un o mula io
pe mi e selecciona el ipo de obo desde un menú desplegable, ija sus coo denadas
iniciales (X, Y, Z) y ma ca si debe ac i a se la capa de con ol y plani icación. En es a
e sión, dicha casilla debe pe manece desac i ada pa a ga an iza el uncionamien o
co ec o del sis ema. Al pulsa el bo ón Spawn Robo , se en ía una solici ud al se icio
pe sonalizado /spawn_ obo , que es ges ionada po el nodo MissionManage .
En la pa e in e io se encuen a la sección de eliminación de ins ancias: el usua io
in oduce el namespace de la ins ancia y pulsa Dele e Robo , lo que gene a una pe ición
al se icio pe sonalizado
/dele e_ obo
pa a e i a el modelo de la simulación. La
Figu a 7.14 mues a en de alle el panel desa ollado.
7.5 Capa de in e az de usua io 37

Figu a 7.14: Panel pe sonalizado en RViz pa a la con igu ación de la misión.
Figu a 7.15:
Desplegable pa a selección de ipo de obo en el panel de con igu ación de la
misión.
El menú desplegable incluye los cinco ipos de obo s disponibles en es a p ime a
e sión del abajo (Figu a 7.15. Es e menú pod á amplia se con o me se amplíe el
ca álogo de iche os de desc ipción en el sis ema con an solo modi ica el iche o
mission_panel.cpp.
Pa a simpli ica el uso, se de ine una con igu ación p ees ablecida (
cus om_mul i obo
_ iew. iz
) que hace que el panel apa ezca ca gado au omá icamen e al inicia
RViz, sin necesidad de añadi lo manualmen e median e Panels (Figu a 7.16 y
7.17).
En p óximas e siones, cuando la capa de con ol y plani icación es é ope a i a,
es e en o no pod á mos a en iempo eal el es ado de los obo s, sus ayec o ias
y los da os ele an es de la misión. De es a mane a, pod á ce a se el ciclo en e
de inición, plani icación y supe isión.
7.6 Despliegue del sis ema comple o
Una ez implemen adas las dis in as capas de la a qui ec u a, es necesa io p o-
po ciona un mecanismo sencillo pa a lanza el sis ema en su conjun o. Con
es e p opósi o se ha c eado el iche o
b ingup.launch.py
den o del paque e
mission_managemen
. Es e iche o se enca ga de o ques a el a anque de los
38 Chap e 7 Diseño y desa ollo de la solución p opues a
Figu a 7.16: Menú "Panels."
Figu a 7.17: Ven ana eme gen e de "Add New Panel".
7.6 Despliegue del sis ema comple o 39
componen es p incipales: inicia el mundo acío en Gazebo Sim, lanza el nodo Mis-
sionManage con sus se icios de ges ión y ab e RViz con la con igu ación necesa ia
pa a mos a di ec amen e el panel pe sonalizado de usua io.
Las ins ucciones pa a el despliegue del sis ema se incluyen de o ma de allada en el
A y el código de b ingup.launch.py se incluye de o ma ín eg a en el Anexo B.
En es e capí ulo se ha desc i o la a qui ec u a po capas y su implemen ación en
Gazebo Sim, la ges ión de obo s y la in e az en RViz. El sis ema puede desplega se
de o ma uni icada y queda p epa ado pa a in eg a la capa de plani icación y
con ol. El siguien e capí ulo se cen a en la e aluación del endimien o del sis ema
en unción del núme o de obo s simulados y en cómo las limi aciones de los ecu sos
compu acionales pueden a ec a a su uncionamien o.
40 Chap e 7 Diseño y desa ollo de la solución p opues a
8
Es udio de endimien o del
sis ema
En es e capí ulo se p esen an los esul ados de una se ie de p uebas expe imen ales
o ien adas a e alua el impac o del núme o de obo s simulados sob e el endimien o
compu acional del sis ema desa ollado. El p opósi o de es e análisis es de e mina
has a qué pun o la simulación mul i obo puede escala en un equipo de cómpu o
con encional y cuáles son las limi aciones que apa ecen an es de inco po a la capa
de con ol y plani icación.
El es udio se cen a en escena ios con olados en los que se a ía el núme o de obo s
ins anciados en un mundo acío de Gazebo Sim, man eniendo cons an es an o el
ha dwa e empleado como la con igu ación de la simulación. Se moni o izan mé icas
cla e como el
RTF
, que mide la elación en e el iempo simulado y el iempo eal,
jun o con el consumo de
CPU
y el uso de memo ia
RAM
. Es as mé icas pe mi en
cuan i ica la deg adación del endimien o a medida que aumen a la complejidad
del escena io.
El capí ulo se o ganiza en dos secciones p incipales. En p ime luga , la Sección 8.1
desc ibe la me odología expe imen al seguida pa a la oma de da os, incluyendo el
p ocedimien o de mues eo y los c i e ios de es abilización del sis ema. Pos e io -
men e, la Sección 8.2 p esen a y analiza los esul ados ob enidos, iden i icando los
p incipales cuellos de bo ella y sus implicaciones pa a la escalabilidad del sis ema y
su aplicación en en o nos eales.
8.1 Me odología expe imen al
Pa a lle a a cabo el análisis de endimien o, se han diseñado expe imen os en los que
se a ía el núme o de obo s simulados en un mismo mundo acío de Gazebo Sim,
man eniendo inal e ables el ha dwa e y los pa áme os de con igu ación. De es e
modo, se ga an iza que las di e encias obse adas en las mé icas sean a ibuibles
únicamen e al inc emen o en el núme o de ins ancias. Los ensayos se han ejecu ado
en un equipo Dell Op iPlex 7090 con p ocesado In el Co e i7 y 16 GB de memo ia
RAM.
41
siones.
Du ación: 10 días.
•Ta ea 5: Desa ollo del en o no de simulación
C eación de un mundo acío en Gazebo Sim que si ie a como escena io base
pa a la simulación mul i obo . Se con igu a on los pa áme os ísicos globales,
la iluminación y los elemen os mínimos necesa ios, p io izando la op imización
de ecu sos compu acionales pa a pe mi i la ejecución de múl iples ins ancias
de obo s.
Du ación: 15 días.
•Ta ea 6: Desa ollo y alidación del nodo MissionManage
Implemen ación del nodo enca gado de ges iona los se icios de ins anciación
y eliminación de obo s en el en o no de simulación. Se incluyó la de inición
de se icios pe sonalizados, la ges ión de namespaces pa a e i a con lic os en
escena ios mul i obo y la in eg ación con el se icio na i o de eliminación de
en idades de Gazebo median e el puen e os_gz_b idge.
Du ación: 20 días.
•Ta ea 7: Inclusión de nue os obo s y gene alización del sis ema
Adap ación y alidación de los iche os de desc ipción de dis in os modelos
de obo s (UR10e, XA m6, UFac o y 850, ABB YuMi y KUKA LBR iiwa) pa a
ga an iza su compa ibilidad con Gazebo Sim y
ROS
2. Es a ase implicó un
abajo de allado de e isión de pa áme os pa a su uni icación en odos los
iche os, así como la gene alización del p oceso de ins anciación pa a hace lo
independien e del ipo de obo .
Du ación: 25 días.
•Ta ea 8: Desa ollo de la in e az de usua io
Diseño e implemen ación de un panel pe sonalizado en RViz pa a acili a la
in e acción con el sis ema po pa e del usua io. El panel pe mi e selecciona
el ipo de obo , su posición inicial y la ac i ación de opciones de con ol, así
como elimina ins ancias ya c eadas. Su desa ollo se basó en C++ y en la
in aes uc u a de plugins de RViz.
Du ación: 10 días.
•Ta ea 9: In eg ación global y alidación
Uni icación de odos los elemen os desa ollados en un único iche o de lan-
zamien o que pe mi e desplega el sis ema comple o. Validación del lujo de
abajo en el en o no de simulación, comp obando que las dis in as capas se
in eg an de o ma cohe en e y que las misiones pueden con igu a se y ejecu-
a se co ec amen e.
Du ación: 5 días.
48 Chap e 9 Me odología

•Ta ea 10: Explo ación de la capa de con ol
Se ealizó una p ime a oma de con ac o con la in aes uc u a de
os2_con ol
y con los concep os básicos de Mo eI . Du an e es a ase se a ó de con ig-
u a
os2_con ol
(con olado es y ges o de con ol) sob e los modelos
del sis ema, ajus ando las desc ipciones del obo y los pa áme os necesa-
ios. La uncionalidad no se incluyó en la e sión inal debido a p oblemas
de in eg ación, ya que no se log ó es ablece una comunicación es able de
os2_con ol
con
ROS
2. Aun así, la explo ación pe mi ió documen a equi-
si os, dependencias y p óximos pasos pa a su inco po ación u u a.
Du ación: 10 días.
•Ta ea 11: Redacción de la memo ia
Redacción p og esi a de la memo ia del abajo, iniciada en los p ime os
meses con los capí ulos más eó icos y man enida en pa alelo al desa ollo.
Du an e el úl imo mes la dedicación ue comple a a es a a ea, cen ándose
en la elabo ación de las secciones más écnicas, la e isión global y el o ma o
inal del documen o.
Du ación: 120 días.
9.1 Desc ipción de a eas 49
9.2 Diag ama de Gan
Figu a 9.1: Diag ama de Gan .
50 Chap e 9 Me odología
10
Aspec os económicos
En es e capí ulo se p esen a el p esupues o es imado pa a la ealización del abajo.
El cálculo se di ide en es bloques p incipales: los ecu sos humanos, el ma e ial
amo izable y los cos es indi ec os. A pa i de ellos se ob iene el cos e o al del
p oyec o.
10.1 Recu sos humanos
En la Tabla 10.1 se ecogen los cos es asociados a los ecu sos humanos implicados
en el desa ollo del p oyec o. El abajo ha sido lle ado a cabo p incipalmen e po
una ingenie a junio , con una dedicación pa cial de 4 ho as dia ias de lunes a ie nes
desde sep iemb e de 2024 has a agos o de 2025. Asimismo, se ha con ado con la
supe isión y o ien ación de la di ec o a del
TFM
, que ha acompañado el p oceso en
las di e en es ases de desa ollo y edacción, asegu ando el co ec o seguimien o de
los obje i os ma cados.
T abajado Ho as Cos e uni a io (C/h) Cos e o al (C)
Ingenie a junio 880 30 26.400
Di ec o a TFM 30 55 1.650
To al 28.050
Tabla 10.1: Cos e asociado a los ecu sos humanos del p oyec o.
10.2 Ma e ial amo izable
El p oyec o se ha desa ollado u ilizando p incipalmen e he amien as de so wa e de
código abie o, lo que educe signi ica i amen e los cos es. Sin emba go, se incluyen
cie os elemen os de apoyo como susc ipciones a pla a o mas ex e nas, u ilidades
o imá icas y ha dwa e de uso compa ido en el labo a o io. Los cálculos se han
ealizado p opo cionalmen e al uso du an e la du ación del TFM (Tabla 10.2).
51
Recu so P ecio (C) Vida ú il Uso Amo ización (C)
O denado 1.000 6 años 880 h / 6.000 h 147
Moni o 200 5 años 880 h / 6.000 h 29
The Cons uc 468 1 año comple o 468
Mic oso 365 70 1 año comple o 70
O e lea P emium 179 1 año comple o 179
To al 893
Tabla 10.2: Cos e amo izable de ecu sos ma e iales y so wa e de apoyo.
10.3 Cos es indi ec os
Pa a e leja los gas os gene ales de i ados del uso de in aes uc u as, consumo
eléc ico y o os ecu sos no di ec amen e impu ables al p oyec o, se ha aplicado un
po cen aje del 8% sob e la suma de los cos es de pe sonal y ma e ial amo izable.
En es e caso, los cos es indi ec os ascienden a 2.308 C.
10.4 Cos e o al del p oyec o
Finalmen e, en la Tabla 10.3 se mues a el p esupues o o al es imado del abajo,
que asciende a 31.251 C.
Concep o Cos e (C)
Recu sos humanos 28.050
Ma e ial amo izable 893
Cos es indi ec os 2.308
To al 31.251
Tabla 10.3: Cos e o al del p oyec o.
52 Chap e 10 Aspec os económicos
11
Conclusiones y abajo u u o
11.1 Conclusiones
El abajo desa ollado en es e
TFM
ha pe mi ido e i ica la iabilidad de una
pla a o ma uni e sal pa a la ges ión y coo dinación de misiones en en o nos mul-
i obo he e ogéneos. A a és de una a qui ec u a modula po capas, se ha con-
seguido in eg a en un mismo en o no la con igu ación de misiones, el despliegue
de obo s y la alidación en un escena io simulado. Aunque la implemen ación se ha
limi ado a la simulación median e Gazebo Sim, los esul ados ob enidos mues an
que el sis ema es escalable y adap able, lo que sien a una base sólida pa a su u u a
ex ensión a obo s ísicos.
Uno de los aspec os más ele an es es la inco po ación de cinco ipos de obo s de
dis in a na u aleza: ABB YuMi, KUKA LBR iiwa, UFac o y XA m6, UFac o y 850 y
UR10e. Es os modelos no solo ep esen an pla a o mas de e e encia en in es igación
y en aplicaciones indus iales, sino que incluyen obo s ecien emen e adqui idos
po el labo a o io en el que se ha desa ollado es e abajo, lo que pe mi i á ab i
nue as líneas de in es igación en el depa amen o. Además, la in e az de usua io
implemen ada como un panel pe sonalizado en RViz cons i uye o o de los elemen os
más des acables. Es a in e az acili a la in e acción con el sis ema, pe mi iendo al
usua io con igu a misiones de o ma sencilla y sin necesidad de u iliza el e minal,
lo que inc emen a la accesibilidad y la usabilidad del sis ema.
En cuan o a las limi aciones, se iden i ican es aspec os p incipales: la ausencia
de la capa de plani icación y con ol, que no ha podido implemen a se po al a de
iempo; la ele ada ca ga compu acional que conlle a la simulación de a ios obo s
de o ma simul ánea, lo que puede limi a la escalabilidad p ác ica del sis ema; y la
ausencia de p uebas con obo s ísicos, que impide po el momen o la alidación de
mane a comple a de la ansición desde la simulación hacia un en o no eal.
En de ini i a, es e abajo p opo ciona la base necesa ia pa a abo da en el u u o la
in eg ación de la capa de con ol y plani icación en en o nos mul i obo . La a qui ec-
u a desa ollada demues a que es posible de ini un ma co común, independien e
del ha dwa e, sob e el que cons ui mecanismos de con ol a anzados capaces de
ges iona de mane a coo dinada lo as de obo s he e ogéneos.
53

11.2 T abajo u u o
De ca a a la con inuación de es e abajo, la p io idad inmedia a es la in eg ación de
la capa de plani icación y con ol. La a qui ec u a ya desa ollada es á p epa ada
pa a ello, lo que pe mi i á inco po a he amien as como Mo eI y
os2_con ol
pa a ans o ma las misiones de inidas po el usua io en ayec o ias ejecu ables y
aplica las sob e obo s simulados o eales. Es e a ance se á cla e pa a que el sis ema
pueda coo dina lo as de obo s he e ogéneas de p incipio a in, desde la de inición
de las misiones has a su ejecución.
O o aspec o impo an e a abo da es la op imización del endimien o del sis ema. La
simulación de múl iples obo s gene a una ele ada ca ga compu acional que puede
comp ome e la escalabilidad de la solución. Se á necesa io explo a mecanismos
de pa alelización y dis ibución de p ocesos o el despliegue en in aes uc u as de
mayo capacidad que pe mi an sopo a un mayo núme o de obo s en ope ación
simul ánea sin pé dida de endimien o.
En elación con la ges ión de ins ancias, debe á con empla se la co ec a eliminación
de los p ocesos elacionados con el con ol en el momen o de bo a un obo de la
simulación. En la e sión ac ual, al no es a ac i a la capa de con ol, es e p oblema
no se p esen a, pe o en u u as implemen aciones es undamen al ga an iza que
es os p ocesos no pe manezcan ac i os, e i ando así posibles con lic os o colisiones
con el con ol de nue as ins ancias que se gene en.
Asimismo, se plan ea como línea de abajo u u o la alidación del sis ema en obo s
ísicos, especialmen e con los disponibles en el labo a o io. Es a ase pe mi i á
comp oba la po abilidad eal de las misiones de inidas en simulación y se i á pa a
a ianza la ansición en e en o nos i uales y en o nos eales.
Finalmen e, o a di ección ele an e se á amplia el ca álogo de obo s sopo ados,
de modo que el sis ema pueda aba ca más mo ologías y escena ios de aplicación.
Es o con ibui á a e o za la e sa ilidad de la pla a o ma y consolida la como una
he amien a obus a pa a la in es igación, la docencia o la indus ia en en o nos
mul i obo he e ogéneos.
54 Chap e 11 Conclusiones y abajo u u o
Bibliog a ía
[1]
Fa es Abawi, Philipp Allgeue , Di Fu, and S e an We m e . „W apy i: A Py hon W appe
o In eg a ing Robo s, Senso s, and Applica ions ac oss Mul iple Middlewa e“. In: 2024
19 h ACM/IEEE In e na ional Con e ence on Human-Robo In e ac ion (HRI). IEEE, Ma .
2024, pp. 860–864 (ci . on p. 16).
[2]
Mahbuba A in, Jiong Jin, Akhlaqu Rahman, e al. „Resou ce Alloca ion and Se -
ice P o isioning in Mul i-Agen Cloud Robo ics: A Comp ehensi e Su ey“. In: IEEE
Communica ions Su eys & Tu o ials 23 (2 Ap . 2021), pp. 842–870 (ci . on p. 9).
[3]
Nicholas Albe go, Vi ek Ra hi, and John Paul O e. „Unde s anding Xac o Misunde -
s andings“. In: P oceedings - IEEE In e na ional Con e ence on Robo ics and Au oma ion.
Ins i u e o Elec ical and Elec onics Enginee s Inc., 2022, pp. 6247–6252 (ci . on
pp. 13, 14).
[4]
Michel Albonico, Milica Ðo ¯
de i´
c, Engel Hame , and I ano Mala ol a. „So wa e en-
ginee ing esea ch on he Robo Ope a ing Sys em: A sys ema ic mapping s udy“. In:
Jou nal o Sys ems and So wa e 197 (Ma . 2023) (ci . on p. 3).
[5]
Flo en P. Audonne , And ew Hamil on, and Ge a do A agon-Cama asa. „A Sys ema ic
Compa ison o Simula ion So wa e o Robo ic A m Manipula ion using ROS2“. In:
2022 22nd In e na ional Con e ence on Con ol, Au oma ion and Sys ems (ICCAS). IEEE,
No . 2022, pp. 755–762 (ci . on pp. 4, 11, 12, 14, 19, 20).
[6]
And ea Bonci, F ancesco Gaudeni, Ma ia C is ina Giannini, and Sau o Longhi. „Robo
Ope a ing Sys em 2 (ROS2)-Based F amewo ks o Inc easing Robo Au onomy: A
Su ey“. In: Applied Sciences 13 (23 No . 2023), p. 12796 (ci . on pp. 3, 13).
[7]
Caio Cama go, José Gonçal es, Miguel Conde, e al. „Sys ema ic li e a u e e iew o
ealis ic simula o s applied in educa ional obo ics con ex “. In: Senso s 21 (12 June
2021) (ci . on p. 11).
[8]
Liqun Chen and Siaw Lynn Ng. „Secu ing eme gen beha iou in swa m obo ics“. In:
Jou nal o In o ma ion Secu i y and Applica ions 64 (Feb. 2022) (ci . on p. 9).
[9]
Jack Collins, Shel in Chand, An hony Vande kop, and Da id Howa d. „A e iew o
physics simula o s o obo ic applica ions“. In: IEEE Access 9 (2021), pp. 51416–51431
(ci . on pp. 4, 11).
[10]Essam Debie, Ka h yn Kasma ik, and Ma Ga a . „Swa m Robo ics: A Su ey om a
Mul i-Tasking Pe spec i e“. In: ACM Compu ing Su eys 56 (2 Feb. 2023) (ci . on p. 9).
[11]
Ayssam Elkady and Ta ek Sobh. „Robo ics Middlewa e: A Comp ehensi e Li e a u e
Su ey and A ibu e-Based Bibliog aphy“. In: Jou nal o Robo ics 2012 (2012), pp. 1–15
(ci . on p. 10).
55
[12]
Open Sou ce Robo ics Founda ion. SDFo ma . [Accedido: 4 de junio 2025]. 2020 (ci . on
p. 13).
[13]
Muhammad Liman Gambo, Abubaka Danasabe, Basem Almadani, e al. „A Sys ema ic
Li e a u e Re iew o DDS Middlewa e in Robo ic Sys ems“. In: Robo ics 14 (5 May
2025), p. 63 (ci . on pp. 10, 11).
[14]
Jesse Ha iland and Pe e Co ke. „Robo ics So wa e: Pas , P esen , and Fu u e“. In:
Annual Re iew o Con ol, Robo ics, and Au onomous Sys ems 16 (2024), pp. 253–83
(ci . on p. 16).
[15]
GMI Global Ma ke Insigh s. Robo ic So wa e Ma ke Size – By So wa e Type, Robo Type,
Deploymen Mode, En e p ise Size, End-use Indus y Analysis, Sha e, G ow h Fo ecas ,
2025 – 2034. [Accedido: 6 de junio 2025]. 2025 (ci . on p. 3).
[16]
P ecision Business Insigh s. Robo Ope a ing Sys em (ROS) Ma ke Size, Sha e | Fo ecas
2031. [Accedido: 17 de junio 2025]. 2024 (ci . on p. 3).
[17]
Mikhail I anou, S anisla Mikhel, and Se gei Sa in. „Robo desc ip ion o ma s and
app oaches: Re iew“. In: 2021 In e na ional Con e ence "Nonlinea i y, In o ma ion and
Robo ics", NIR 2021. Ins i u e o Elec ical and Elec onics Enginee s Inc., 2021 (ci . on
pp. 12–14).
[18]
Hasan Ki ak, Muhammed Zahid Ka akusak, Simon Wa son, and Ba y Lennox. „Cy-
be –physical sys em a chi ec u e o au onomous obo ecosys em o indus ial asse
moni o ing“. In: Compu e Communica ions 218 (Ma . 2024), pp. 72–84 (ci . on pp. 3,
14).
[19]
Sophia Kolak, A soon A zal, Clai e Le Goues, Michael Hil on, and Ch is ophe S e en
Timpe ley. „I Takes a Village o Build a Robo : An Empi ical S udy o he ROS Ecosys-
em“. In: P oceedings - 2020 IEEE In e na ional Con e ence on So wa e Main enance and
E olu ion, ICSME 2020. Ins i u e o Elec ical and Elec onics Enginee s Inc., Sep . 2020,
pp. 430–440 (ci . on p. 10).
[20]KUKA. LBR iiwa | KUKA AG. [Accedido: 25 de agos o 2025]. 2025 (ci . on pp. 29, 31).
[21]
A u o Lau enzi, Da ide An onucci, Nikos G. Tsaga akis, and Luca Mu a o e. „The
XBo 2 eal- ime middlewa e o obo ics“. In: Robo ics and Au onomous Sys ems 163
(May 2023), p. 104379 (ci . on p. 16).
[22]
S e en Macenski, Tully Foo e, B ian Ge key, Ch is Lalance e, and William Woodall.
„Robo Ope a ing Sys em 2: Design, a chi ec u e, and uses in he wild“. In: Science
Robo ics 7 (66 May 2022) (ci . on pp. 3, 4, 10, 13, 16).
[23]
F ancisco José Mañas-Ál a ez, Ma ía Guinaldo, Raquel Do mido, and Sebas ian Do mido-
Can o. „Scalabili y o Cybe -Physical Sys ems wi h Real and Vi ual Robo s in ROS 2“.
In: Senso s 23 (13 July 2023) (ci . on p. 3).
[24]
Luca Mu a o e and Nikos Tsaga akis. „XBo 2D: owa ds a obo ics hyb id cloud a chi-
ec u e o ield obo ics“. In: F on ie s in Robo ics and AI 10 (2023) (ci . on p. 9).
[25]
Jaeho Pa k, Raima ius Delgado, and Byoung Wook Choi. „Real-Time Cha ac e is ics o
ROS 2.0 in Mul iagen Robo Sys ems: An Empi ical S udy“. In: IEEE Access 8 (2020),
pp. 154637–154651 (ci . on p. 16).
[26]
Ma in Pecka. Uni ied Robo Desc ip ion Fo ma (URDF). [Accedido: 4 de junio 2025].
Ma . 2023 (ci . on p. 13).
56 Bibliog a ía
[27]
Da id Po ugal, Rui P. Rocha, and João P. Cas ilho. „Inqui ing he obo ope a ing
sys em communi y on he s a e o adop ion o he ROS 2 obo ics middlewa e“. In:
In e na ional Jou nal o In elligen Robo ics and Applica ions (2024) (ci . on p. 4).
[28]
MIRA P ojec . MIRA Middlewa e o Robo ic Applica ions. [Accedido: 5 de sep iemb e
2025]. 2025 (ci . on p. 16).
[29]
O ca P ojec . ORCA: Componen -based Robo ics So wa e. [Accedido: 5 de sep iemb e
2025]. 2025 (ci . on p. 16).
[30]
O ocos P ojec . OROCOS: Open Robo Con ol So wa e. [Accedido: 5 de sep iemb e
2025]. 2025 (ci . on p. 16).
[31]
obo -desc ip ions. awesome- obo -desc ip ions. [Accedido: 5 de sep iemb e de 2025].
2025 (ci . on p. 27).
[32]
ABB Robo ics. IRB 14000 YuMi® Dual A m | obo s | ABB. [Accedido: 25 de agos o
2025]. 2025 (ci . on pp. 29, 31).
[33]Open Robo ics. Abou - Gazebo. [Accedido: 31 de mayo 2025]. 2025 (ci . on p. 20).
[34]
Open Robo ics. Ins alling Gazebo wi h ROS — Gazebo documen a ion. [Accedido: 20 de
agos o 2025]. 2025 (ci . on p. 60).
[35]
Open Robo ics. Ins alling Gazebo wi h ROS — Gazebo Fo ess documen a ion. [Accedido:
20 de agos o 2025]. 2021 (ci . on p. 20).
[36]
Open Robo ics. ROS 2 In eg a ion — Gazebo Fo ess documen a ion. [Accedido: 20 de
agos o 2025]. 2021 (ci . on p. 19).
[37]
Open Robo ics. ROS Wiki - Xac o. [Accedido: 6 de junio 2025]. Ma . 2022 (ci . on p. 13).
[38]
Open Robo ics. Ubun u (deb packages) — ROS 2 Documen a ion: Humble documen a ion.
[Accedido: 20 de agos o 2025]. 2025 (ci . on p. 59).
[39]Uni e sal Robo s. UR10e. [Accedido: 25 de agos o 2025]. 2025 (ci . on pp. 29, 30).
[40]
Robo Shop. B azo Robó ico 850 de UFACTORY (6 G ados de Libe ad) - Robo Shop.
[Accedido: 25 de agos o 2025]. 2025 (ci . on pp. 29, 30).
[41]
Robo Shop. B azo Robó ico de 6 G ados de Libe ad xA m - Robo Shop. [Accedido: 25 de
agos o 2025]. 2025 (ci . on pp. 29, 30).
[42]
Ni ali Sangh i, Rajdeep Niyogi, and Al edo Milani. „Sweeping-Based Mul i-Robo
Explo a ion in an Unknown En i onmen Using Webo s“. In: In e na ional Con e ence
on Agen s and A i icial In elligence. Vol. 1. Science and Technology Publica ions, Lda,
2024, pp. 248–255 (ci . on pp. 4, 14).
[43]
Ka he ine Sco and Tully Foo e. 2024 ROS Me ics Repo . Tech. ep. Open Robo ics,
Ma . 2025 (ci . on p. 17).
[44]
Da id S -Onge, Vi ek Shanka Va adha ajan, I an Š ogo , and Gio anni Bel ame.
„F om Design o Deploymen : Decen alized Coo dina ion o He e ogeneous Robo ic
Teams“. In: F on ie s in Robo ics and AI 7 (May 2020) (ci . on p. 9).
[45]
I alian Ins i u e o Technology. YARP: Ye Ano he Robo Pla o m. [Accedido: 5 de
sep iemb e 2025]. 2025 (ci . on p. 16).
Bibliog a ía 57
ind_package ( amen _lin _au o REQUIRED )
# he ollowing line skips he lin e which checks o
copy igh s
# commen he line when a copy igh and license is added o
all sou ce iles
se (amen _cmake_copy igh _FOUND TRUE)
# he ollowing line skips cpplin ( only wo ks in a gi epo
)
# commen he line when his package is in a gi epo and
when
# a copy igh and license is added o all sou ce iles
se (amen _cmake_cpplin _FOUND TRUE)
amen _lin _au o_ ind_ es _dependencies()
endi ()
ins all(
DIRECTORY
u d
meshes
con ig
DESTINATION
sha e/${PROJECT_NAME}
)
amen _package ()
B.1.1.2 Dependencias
El iche o package.xml se enca ga de de ini las dependencias del paque e y me ada os
esencials pa a el sis ema de cons ucción.
<? xml e sion ="1.0"? >
<?xml -model h e =" h p :// download . os.o g/ schema /
package_ o ma 3 . xsd " schema ypens =" h p :// www. w3 .o g /2001/
XMLSchema "?>
<package o ma ="3" >
<name > obo _desc ip ion </ name >
< e sion >0.0.0 </ e sion >
<desc ip ion >TODO: Package desc ip ion </desc ip ion >
< main aine email =" labo a o io@ odo . odo "> labo a o io </
main aine >
<license > TODO: License decla a ion </ license >
< build ool_depend > amen _cmake </ build ool_depend >
< es _depend > amen _lin _au o </ es _depend >
64 Chap e B Código de la solución p opues a

< es _depend > amen _lin _common </ es _depend >
<expo >
<build_ ype >amen _cmake </ build_ ype >
</ expo >
</ package >
B.1.2 Paque e obo _gazebo
Es e paque e con iene odo el código elacionado con el en o no de Gazebo Sim.
B.1.2.1 Fiche o de lanzamien o pa a la ins anciación de obo s
El iche o
spawn_ obo .launch.py
se enca ga de ins ancia el obo del que se le
en íen los da os como a gumen os.
#!/ us /bin/en py hon3
impo os
impo subp ocess
om launch impo LaunchDesc ip ion
om launch . ac ions impo Decla eLaunchA gumen ,
OpaqueFunc ion , Time Ac ion , Regis e E en Handle
om launch . subs i u ions impo Command , LaunchCon igu a ion ,
FindExecu able , Pa hJoinSubs i u ion
om launch . e en _handle s impo OnP ocessExi
om launch_ os . ac ions impo Node
om launch_ os . subs i u ions impo FindPackageSha e
om launch_ os . pa ame e _desc ip ions impo Pa ame e Value
om amen _index_py hon . packages impo
ge _package_sha e_di ec o y
om con olle _manage _msgs .s impo Lis Con olle s
de launch_se up ( con ex , *a gs , ** kwa gs ):
obo _namespace = LaunchCon igu a ion (" obo _namespace ").
pe o m(con ex )
p in ( " DEBUG : obo _namespace = { obo _namespace }")
obo _ ile = LaunchCon igu a ion (" obo _ ile "). pe o m (
con ex )
obo _ ype = LaunchCon igu a ion (" obo _ ype ") . pe o m (
con ex )
B.1 Ca pe a obo _simula ion 65
ine ial_pa ams_ ilename = LaunchCon igu a ion ("
ine ial_pa ams_ ilename ") . pe o m ( con ex )
kinema ics_pa ams_ ilename = LaunchCon igu a ion ("
kinema ics_pa ams_ ilename "). pe o m ( con ex )
x = LaunchCon igu a ion ("x ") . pe o m ( con ex )
y = LaunchCon igu a ion ("y ") . pe o m ( con ex )
z = LaunchCon igu a ion ("z ") . pe o m ( con ex )
wi h_con ol_s = s ( LaunchCon igu a ion (" wi h_con ol ")
.pe o m(con ex ))
wi h_con ol = wi h_con ol_s . lowe () == " ue " #
Con e s ing o boolean
p in ( "[ DEBUG ] obo _namespace : { obo _namespace }")
p in ( "[ DEBUG ] obo _ ile : { obo _ ile }")
p in ( "[ DEBUG ] x: {x}, y: {y}, z: {z}")
p in (" Con con ol :", wi h_con ol )
# Ru as
pkg_pa h = ge _package_sha e_di ec o y (" obo _desc ip ion
")
u d _pa h = os. pa h .join (pkg_pa h , " u d ", obo _ ile )
p in ( "[ DEBUG ] u d _pa h : { u d _pa h }")
# Ve i ica si el a chi o exis e
i no os. pa h .is ile ( u d _pa h ):
aise FileNo FoundE o ( " El a chi o URDF / Xac o no
exis e : { u d _pa h }")
# Ejecu a xac o si el iche o es un XACRO
i obo _ ile . endswi h (". xac o ") :
cmd_lis = [
" xac o ",
u d _pa h ,
" obo _namespace :={ obo _namespace }" ,
" wi h_con ol :={ ’ ue ’ i wi h_con ol else ’
alse ’}"
]
i ine ial_pa ams_ ilename:
cmd_lis . append ( " ine ial_pa ams_ ilename :={
ine ial_pa ams_ ilename}")
i kinema ics_pa ams_ ilename:
cmd_lis . append ( " kinema ics_pa ams_ ilename :={
kinema ics_pa ams_ ilename}")
esul = subp ocess . un (
66 Chap e B Código de la solución p opues a
cmd_lis ,
s dou = subp ocess . PIPE ,
s de = subp ocess . PIPE ,
check = T ue ,
ex =T ue
)
# p in ("[ DEBUG ] xac o ou pu : n", esul . s dou )
p in ("[ DEBUG ] xac o s de : n", esul . s de )
obo _desc ip ion = Pa ame e Value (
esul . s dou ,
alue_ ype = s ,
)
else:
# Lee URDF di ec amen e
wi h open ( u d _pa h , ’ ’) as :
u d _con en = . ead ()
obo _desc ip ion = Pa ame e Value (
u d _con en ,
alue_ ype = s ,
)
# Nodo obo _s a e_publishe
sp_node = Node(
package =" obo _s a e_publishe ",
execu able =" obo _s a e_publishe ",
namespace = obo _namespace ,
name=" obo _s a e_publishe ",
pa ame e s =[{
"use_sim_ ime": T ue,
" obo _desc ip ion": obo _desc ip ion
}],
ou pu ="sc een"
)
# Nodo de spawn en Gazebo
spawn_node = Node (
package =" os_gz_sim ",
execu able =" c ea e ",
name = "{ obo _namespace } _spawn ",
a gumen s =[
B.1 Ca pe a obo _simula ion 67
"- name ", obo _namespace , # Pasa los
iche os al nodo y se puede u iliza su alo
en odos los iche os elacionados
"- opic ", "{ obo _namespace }/ obo _desc ip ion ",
"-x", x,
"-y", y,
"-z", z,
],
ou pu ="sc een"
)
# Spawne de con olado es
join _s a e_b oadcas e _spawne = Node(
package =" con olle _manage ",
execu able =" spawne ",
namespace = obo _namespace ,
a gumen s =[" join _s a e_b oadcas e ", "-- con olle -
manage ", "{ obo _namespace }/ con olle _manage "],
ou pu ="sc een"
)
obo _con olle s = Pa hJoinSubs i u ion(
[
FindPackageSha e (" obo _con ol ") ,
"con ig",
"{ obo _ ype . lowe ()} _con olle . yaml "
]
)
con olle _manage _node = Node (
package =" con olle _manage ",
execu able =" os2_con ol_node ",
namespace = obo _namespace ,
pa ame e s =[ obo _con olle s ],
ou pu =" bo h",
emappings =[("~ obo _desc ip ion ", "{ obo _namespace
}/ obo _desc ip ion")],
)
obo _con olle _spawne = Node(
package =" con olle _manage ",
execu able =" spawne ",
namespace = obo _namespace ,
a gumen s =[" o wa d_posi ion_con olle ", "--
con olle - manage ", "{ obo _namespace }/
con olle _manage "],
)
68 Chap e B Código de la solución p opues a
# Delay s a o join _s a e_b oadcas e a e ‘
obo _con olle ‘
# TODO ( anyone ): This is a wo ka ound o laky es s .
Remo e when ixed .
delay_jsb_a e _ obo _con olle _spawne =
Regis e E en Handle (
e en _handle = OnP ocessExi (
a ge _ac ion= obo _con olle _spawne ,
on_exi =[join _s a e_b oadcas e _spawne ],
)
)
nodes = [
sp_node,
spawn_node ,
]
i wi h_con ol:
nodes . append ( con olle _manage _node )
nodes . append ( delay_jsb_a e _ obo _con olle _spawne )
e u n nodes
de gene a e_launch_desc ip ion():
e u n LaunchDesc ip ion([
Decla eLaunchA gumen (" obo _ ype ", de aul _ alue ="" ,
desc ip ion =" Tipo de obo ( u 850 , xa m6 , e c .) ") ,
Decla eLaunchA gumen (" obo _ ile ", de aul _ alue ="" ,
desc ip ion =" A chi o URDF o XACRO del obo ") ,
Decla eLaunchA gumen (" ine ial_pa ams_ ilename ",
de aul _ alue ="" , desc ip ion =" A chi o de
pa ame os ine ciales del obo ") ,
Decla eLaunchA gumen ("kinema ics_pa ams_ ilename",
de aul _ alue ="" , desc ip ion =" A chi o de
pa ame os cinema icos del obo ") ,
Decla eLaunchA gumen ("x", de aul _ alue ="0.0" ,
desc ip ion =" Posicion X del obo en Gazebo ") ,
Decla eLaunchA gumen ("y", de aul _ alue ="0.0" ,
desc ip ion =" Posicion Y del obo en Gazebo ") ,
Decla eLaunchA gumen ("z", de aul _ alue ="0.0" ,
desc ip ion =" Posicion Z del obo en Gazebo ") ,
Decla eLaunchA gumen (" wi h_con ol ", de aul _ alue ="
alse ", desc ip ion =" Indica si se debe ca ga el
con olado del obo ") ,
OpaqueFunc ion ( unc ion = launch_se up )
])
B.1 Ca pe a obo _simula ion 69

B.1.2.2 Simulación del mundo acío
El iche o
cus om_emp y_wo ld.sd
c ea un mundo acío pe sonalizado en el espa-
cio de abajo.
<? xml e sion ="1.0" ?>
<sd e sion ="1.6" >
<wo ld name =" emp y ">
<physics name ="1 ms" ype =" igno ed ">
<max_s ep_size >0.001</max_s ep_size >
< eal_ ime_ ac o >1.0 </ eal_ ime_ ac o >
</ physics >
<plugin
ilename =" igni ion - gazebo - physics - sys em "
name =" gz :: sim :: sys ems :: Physics ">
</ plugin >
<plugin
ilename =" igni ion - gazebo -use - commands - sys em "
name =" gz :: sim :: sys ems :: Use Commands ">
</ plugin >
<plugin
ilename =" igni ion - gazebo - scene - b oadcas e - sys em "
name =" gz :: sim :: sys ems :: SceneB oadcas e ">
</ plugin >
<plugin
ilename =" igni ion - gazebo - con ac - sys em "
name =" gz :: sim :: sys ems :: Con ac ">
</ plugin >
<ligh ype =" di ec ional " name =" sun ">
<cas _shadows > ue</cas _shadows >
<pose >0 0 10 0 0 0</ pose >
<di use >0.8 0.8 0.8 1 </ di use >
<specula >0.2 0.2 0.2 1</specula >
<a enua ion >
< ange >1000 </ ange >
<cons an >0.9</cons an >
<linea >0.01 </ linea >
<quad a ic >0.001 </ quad a ic >
</a enua ion >
<di ec ion > -0.5 0.1 -0.9 </ di ec ion >
</ligh >
<model name =" g ound_plane ">
<s a ic > ue </ s a ic >
<link name="link">
<collision name =" collision ">
70 Chap e B Código de la solución p opues a
<geome y>
<plane>
<no mal >0 0 1 </ no mal >
<size >100 100 </ size >
</plane >
</geome y>
</collision >
< isual name =" isual ">
<geome y>
<plane>
<no mal >0 0 1 </ no mal >
<size >100 100 </ size >
</plane >
</geome y>
<ma e ial>
<ambien >0.8 0.8 0.8 1 </ ambien >
<di use >0.8 0.8 0.8 1 </ di use >
<specula >0.8 0.8 0.8 1</specula >
</ma e ial>
</ isual >
</link >
</model >
</wo ld >
</sd >
Se c ea además, un iche o de lanzamien o del mundo acío llamado
emp y_wo ld.launch.py
.
impo os
om amen _index_py hon . packages impo ( ge _package_p e ix ,
ge _package_sha e_di ec o y)
om launch impo LaunchDesc ip ion
om launch . ac ions impo ( Decla eLaunchA gumen ,
IncludeLaunchDesc ip ion)
om launch . subs i u ions impo ( Pa hJoinSubs i u ion ,
LaunchCon igu a ion)
om launch.launch_desc ip ion_sou ces impo
Py honLaunchDesc ip ionSou ce
om launch_ os . ac ions impo Se Pa ame e , Node
# ROS2 Launch Sys em will look o his unc ion de ini ion #
de gene a e_launch_desc ip ion():
# Ge Package Desc ip ion and Di ec o y #
package_desc ip ion = " obo _desc ip ion "
B.1 Ca pe a obo _simula ion 71
package_di ec o y = ge _package_sha e_di ec o y (
package_desc ip ion)
# Se he Pa h o Robo Mesh Models o Loading in Gazebo
Sim #
# NOTE: Do his BEFORE launching Gazebo Sim #
ins all_di _pa h = ( ge _package_p e ix ( package_desc ip ion
) + "/ sha e ")
obo _meshes_pa h = os. pa h . join ( package_di ec o y , "/ u d
/meshes")
gazebo_ esou ce_pa hs = [ ins all_di _pa h ,
obo _meshes_pa h]
i " IGN_GAZEBO_RESOURCE_PATH " in os. en i on :
o esou ce_pa h in gazebo_ esou ce_pa hs :
i esou ce_pa h no in os . en i on ["
IGN_GAZEBO_RESOURCE_PATH"]:
os. en i on [" IGN_GAZEBO_RESOURCE_PATH "] += (’:’
+ esou ce_pa h )
else:
os. en i on [" IGN_GAZEBO_RESOURCE_PATH "] = (’: ’. join (
gazebo_ esou ce_pa hs))
# Load Emp y Wo ld SDF om Gazebo Sim Package #
# wo ld_ ile = " emp y . sd "
wo ld_ ile = os. pa h .join ( ge _package_sha e_di ec o y ("
obo _gazebo ") , " wo lds ", " cus om_emp y_wo ld . sd ")
# wo ld_ ile = os. pa h. join ( package_di ec o y , " wo lds /
base_wo ld . wo ld ")
wo ld_con ig = LaunchCon igu a ion (" wo ld ")
# decla e_wo ld_a g = Decla eLaunchA gumen (" wo ld ",
# de aul _ alue
=[" - ", wo ld_ ile ],
# desc ip ion ="
SDF Wo ld File ")
decla e_wo ld_a g = Decla eLaunchA gumen (" wo ld ",
de aul _ alue =
wo ld_ ile ,
desc ip ion =" SDF
Wo ld File ")
# Decla e GazeboSim Launch #
gzsim_pkg = ge _package_sha e_di ec o y (" os_gz_sim ")
gz_sim = IncludeLaunchDesc ip ion(
Py honLaunchDesc ip ionSou ce (
Pa hJoinSubs i u ion ([ gzsim_pkg , " launch ", " gz_sim
. launch . py "]) ),
72 Chap e B Código de la solución p opues a
launch_a gumen s ={" gz_a gs ": wo ld_con ig }. i ems ()
,
)
# C ea e and Re u n he Launch Desc ip ion Objec #
e u n LaunchDesc ip ion(
[
decla e_wo ld_a g ,
# Se s use_sim_ ime o all nodes s a ed below (
doesn ’ wo k o nodes s a ed om igni ion
gazebo) #
Se Pa ame e ( name =" use_sim_ ime ", alue =T ue),
gz_sim,
]
)
B.2 Paque e mission_managemen
Es e paque e concen a los iche os elacionados con la capa de ges ión de obo s.
B.2.1 Se icios pe sonalizados de ROS 2
B.2.1.1 SpawnRobo .s
Se icio pa a la ins anciación de nue os obo s en simulación. El usua io in oduce
los da os desde la in e az en RViz.
s ing obo _ ype
loa 64 x
loa 64 y
loa 64 z
bool wi h_con ol
---
bool success
s ing message
B.2.1.2 Dele eRobo .s
Se icio u ilizado pa a la eliminación de la ins ancia seleccionada po el usua io
desde la in e az de usua io.
s ing obo _namespace
---
B.2 Paque e mission_managemen 73
"[ DELETE ] Espe ando a que / wo ld / de aul /
emo e_en i y e s disponible ... ({ a emp
+ 1}/{max_a emp s})"
)
a emp += 1
i a emp >= max_a emp s :
sel . ge _logge () . e o (" El se icio / wo ld /
em py / emo e_en i y no e s disponible
as a ios in en os .")
esponse . success = False
esponse .message = " Se icio de e l i m i n a c i n
no disponible as a ios in en os ."
e u n esponse
eq = Dele eEn i y . Reques ()
eq.en i y = En i y()
eq . en i y . name = obo _namespace
eq. en i y . ype= 2 # MODEL
# TODO : hace que el nodo espe e la espues a del
se icio de gazebo en luga de asumi que lo ha
bo ado en 2 segundos .
clien . call_async ( eq )
ime . sleep (2)
# Te mina p oceso
i obo _namespace in sel . obo _p ocesses :
p ocess = sel . obo _p ocesses [ obo _namespace ]
p ocess . e mina e ()
p ocess . wai ()
sel . ge _logge (). in o ( "[ DELETE ] P oceso de {
obo _namespace } e minado .")
del sel . obo _p ocesses [ obo _namespace ]
else:
sel . ge _logge (). wa n ( "[ DELETE ] No se encon o
p oceso pa a { obo _namespace }.")
esponse . success = T ue
esponse . message = "Se ha eliminado la ins ancia {
obo _namespace }."
sel . ge _logge () .in o ( "[ DELETE ] { esponse . message }")
e u n esponse
80 Chap e B Código de la solución p opues a

de main ( a gs = None ):
clpy . ini ( a gs = a gs )
node = MissionManage ()
y:
clpy . spin ( node )
excep Keyboa dIn e up :
node . ge _logge () .in o (" Finalizando el nodo
MissionManage .")
inally:
node.des oy_node()
clpy . shu down ()
i __name__ == ’__main__ ’:
main ()
B.2.4 Fiche o de lanzamien o del nodo MissionManage
A a és de mission_manage .launch.py se lanza el nodo MissionManage .
om launch impo LaunchDesc ip ion
om launch_ os . ac ions impo Node
om launch . subs i u ions impo LaunchCon igu a ion
de gene a e_launch_desc ip ion():
e u n LaunchDesc ip ion([
Node(
package =’ mission_managemen ’,
execu able=’mission_manage _node.py’,
name =’ mission_manage ’,
ou pu ="sc een",
a gumen s =[" - - os - a gs ", "-- log - le el ", " WARN "] # Adjus
log le el as needed
)
])
B.2 Paque e mission_managemen 81
B.3 Paque e cus om_ iz_panels
Es e paque e con iene el código necesa io pa a la c eación del panel pe sonalizado
pa a la coo dinación de misiones. Se oma como e e encia la documen ación o icial
de ROS 2 Humble.
B.3.1 mission_panel.cpp
Es e a chi o con iene la lógica de ejecución pa a el uncionamien o del panel.
# include < cus om_ iz_panels / mission_panel .hpp >
# include < iz_common / display_con ex .hpp >
# include <QVBoxLayou >
# include <QHBoxLayou >
# include <QComboBox >
#include <QDoubleSpinBox >
# include <QCheckBox >
# include <QDebug >
namespace cus om_ iz_panels
{
MissionPanel :: MissionPanel ( QWidge * pa en ) : Panel ( pa en )
{
cons au o layou = new QVBoxLayou ( his );
// SERVICIO PARA SPAWN ROBOTS
// Desplegable con los ipos de obo s disponibles
layou -> addWidge ( new QLabel (" Robo Type :"));
obo _ ype_combo_ = new QComboBox ;
obo _ ype_combo_ -> addI em (" u 850 ");
obo _ ype_combo_ -> addI em (" xa m6 ");
obo _ ype_combo_ -> addI em (" yumi ");
obo _ ype_combo_ -> addI em (" u 10e ");
obo _ ype_combo_ -> addI em (" iiwa_lb ");
layou -> addWidge ( obo _ ype_combo_ );
// S e l e c c i n de la coo denada X con QDoubleSpinBox
au o x_layou = new QHBoxLayou ;
x_layou -> addWidge ( new QLabel ("X:") );
x_spin_ = new QDoubleSpinBox ;
x_spin_ -> se Range ( -1000.0 , 1000.0) ;
x_spin_ -> se Decimals (3) ;
x_spin_ -> se SingleS ep (0.1) ;
82 Chap e B Código de la solución p opues a
x_spin_ -> se Value (0.0) ;
x_layou -> addWidge ( x_spin_ );
layou -> addLayou ( x_layou );
// S e l e c c i n de la coo denada Y con QDoubleSpinBox
au o y_layou = new QHBoxLayou ;
y_layou -> addWidge ( new QLabel ("Y:") );
y_spin_ = new QDoubleSpinBox ;
y_spin_ -> se Range ( -1000.0 , 1000.0) ;
y_spin_ -> se Decimals (3) ;
y_spin_ -> se SingleS ep (0.1) ;
y_spin_ -> se Value (0.0) ;
y_layou -> addWidge ( y_spin_ );
layou -> addLayou ( y_layou );
// S e l e c c i n de la coo denada Z con QDoubleSpinBox
au o z_layou = new QHBoxLayou ;
z_layou -> addWidge ( new QLabel ("Z:") );
z_spin_ = new QDoubleSpinBox ;
z_spin_ -> se Range ( -1000.0 , 1000.0) ;
z_spin_ -> se Decimals (3) ;
z_spin_ -> se SingleS ep (0.1) ;
z_spin_ -> se Value (0.0) ;
z_layou -> addWidge ( z_spin_ );
layou -> addLayou ( z_layou );
// Checkbox pa a con ol adicional
con ol_checkbox_ = new QCheckBox (" Wi h Con ol ");
layou -> addWidge ( con ol_checkbox_ );
spawn_bu on_ = new QPushBu on (" Spawn Robo ");
layou -> addWidge ( spawn_bu on_ );
// SERVICIO PARA ELMINAR ROBOTS
layou -> addWidge ( new QLabel (" Ins ance name :") );
dele e_namespace_edi _ = new QLineEdi ;
layou -> addWidge ( dele e_namespace_edi _ );
dele e_bu on_ = new QPushBu on (" Dele e Robo ");
layou -> addWidge ( dele e_bu on_ );
// Connec he e en o when he bu on is eleased o ou
callback,
// so p essing he bu on esul s in he callback being
called.
B.3 Paque e cus om_ iz_panels 83
QObjec :: connec (spawn_bu on_ , & QPushBu on :: eleased , his
, & MissionPanel :: onSpawnClicked );
QObjec :: connec (dele e_bu on_ , & QPushBu on :: eleased ,
his , & MissionPanel :: onDele eClicked );
}
MissionPanel::~MissionPanel() = de aul ;
oid MissionPanel::onIni ialize()
{
// Access he abs ac ROS Node and
// in he p ocess lock i o exclusi e use un il he me hod
is done .
node_p _ = ge DisplayCon ex () -> ge RosNodeAbs ac ion () .
lock ();
// Ge a poin e o he amilia clcpp :: Node o making
subsc ip ions / publishe s
// (as pe no mal clcpp code )
clcpp :: Node :: Sha edP node = node_p _ -> ge _ aw_node ();
publishe _ = node -> c ea e_publishe < s d_msgs :: msg :: S ing
>("/ ou pu ", 10) ;
subsc ip ion_ = node -> c ea e_subsc ip ion < s d_msgs :: msg ::
S ing >(
"/ inpu ", 10, s d :: bind (& MissionPanel :: opicCallback ,
his , s d :: placeholde s ::_1));
// C ea los se ice clien s
spawn_clien _ = node -> c ea e_clien < mission_managemen :: s
:: SpawnRobo >("/ spawn_ obo ");
dele e_clien _ = node -> c ea e_clien < mission_managemen :: s
:: Dele eRobo >("/ dele e_ obo ");
}
// When he subsc ibe ge s a message , his callback is
igge ed ,
// and hen we copy i s da a in o he widge ’s label
oid MissionPanel :: opicCallback ( cons s d_msgs :: msg :: S ing &
msg)
{
label_ -> se Tex ( QS ing ( msg . da a . c_s () ));
}
// When he widge ’s bu on is p essed , his callback is
igge ed ,
// and hen we publish a new message on ou opic .
84 Chap e B Código de la solución p opues a
oid MissionPanel :: bu onAc i a ed ()
{
au o message = s d_msgs :: msg :: S ing ();
message . da a = "[ MissionPanel ] Bu on clicked !";
publishe _ -> publish ( message );
qDebug () << "[ MissionPanel ] GO! bu on clicked ";
}
oid MissionPanel :: onSpawnClicked ()
{
qDebug () << "[ MissionPanel ] Spawn clicked !";
i (! spawn_clien _ -> wai _ o _se ice (s d :: ch ono :: seconds (2)
)) {
qDebug () << "[ MissionPanel ] Spawn se ice no a ailable !";
e u n;
}
au o eques = s d :: make_sha ed < mission_managemen :: s ::
SpawnRobo :: Reques >();
// eques -> obo _namespace = ""; // V a c o pa a que
mission_manage lo au ogene e
eques -> obo _ ype = obo _ ype_combo_ -> cu en Tex () .
oS dS ing ();
eques ->x = x_spin_ -> alue ();
eques ->y = y_spin_ -> alue ();
eques ->z = z_spin_ -> alue ();
eques -> wi h_con ol = con ol_checkbox_ -> isChecked () ;
his -> spawn_ u u e_ = his -> spawn_clien _ ->
async_send_ eques ( eques ). u u e . sha e () ;
clcpp :: Node :: Sha edP node = his -> node_p _ -> ge _ aw_node
();
his -> spawn_check_ ime _ = node -> c ea e_wall_ ime (
s d :: ch ono :: milliseconds (100) ,
[ his ]() {
i ( his -> spawn_ u u e_ . alid () &&
his -> spawn_ u u e_ . wai _ o ( s d :: ch ono :: seconds (0)
) == s d :: u u e_s a us :: eady )
{
au o esul = his -> spawn_ u u e_ . ge ();
qDebug () << "[ MissionPanel ] Spawn esul :" << QS ing
:: omS dS ing ( esul -> message );
his -> spawn_check_ ime _ -> cancel () ;
}
}
B.3 Paque e cus om_ iz_panels 85

);
}
oid MissionPanel :: onDele eClicked ()
{
qDebug () << " Dele e clicked !";
// qDebug () << "Robo Type :" << obo _ ype_combo_ ->
cu en Tex ();
i (! dele e_clien _ -> wai _ o _se ice (s d :: ch ono :: seconds
(2))) {
qDebug () << "[ MissionPanel ] Dele e se ice no a ailable
!";
e u n;
}
au o eques = s d :: make_sha ed < mission_managemen :: s ::
Dele eRobo :: Reques >() ;
eques -> obo _namespace = dele e_namespace_edi _ -> ex ().
oS dS ing ();
his -> dele e_ u u e_ = his -> dele e_clien _ ->
async_send_ eques ( eques ). u u e . sha e () ;
clcpp :: Node :: Sha edP node = his -> node_p _ -> ge _ aw_node
();
his -> dele e_check_ ime _ = node -> c ea e_wall_ ime (
s d :: ch ono :: milliseconds (100) ,
[ his ]() {
i ( his -> dele e_ u u e_ . alid () &&
his -> dele e_ u u e_ . wai _ o ( s d :: ch ono :: seconds
(0) ) == s d :: u u e_s a us :: eady )
{
au o esul = his -> dele e_ u u e_ . ge ();
qDebug () << "[ MissionPanel ] Dele e esul :" << QS ing
:: omS dS ing ( esul -> message );
his -> dele e_check_ ime _ -> cancel () ;
}
}
);
}
} // namespace cus om_ iz_panels
# include < pluginlib / class_lis _mac os .hpp >
PLUGINLIB_EXPORT_CLASS ( cus om_ iz_panels :: MissionPanel ,
iz_common :: Panel )
86 Chap e B Código de la solución p opues a
B.3.2 mission_panel.hpp
Es e a chi o de ine la clase y los manejado es (handle s) pa a la in e acción con la
in e az g á ica y el sis ema de ROS 2.
#i nde CUSTOM_RVIZ_PANELS__MISSION_PANEL_HPP_
#de ine CUSTOM_RVIZ_PANELS__MISSION_PANEL_HPP_
# include < iz_common / panel .hpp >
# include < iz_common / os_in eg a ion /
os_node_abs ac ion_i ace.hpp>
# include < s d_msgs / msg / s ing . hpp >
# include <QLabel >
# include <QPushBu on >
# include <QLineEdi >
# include <QComboBox >
# include <QCheckBox >
#include <QDoubleSpinBox >
# include " mission_managemen / s / spawn_ obo .hpp"
# include " mission_managemen / s / dele e_ obo . hpp "
namespace cus om_ iz_panels
{
class MissionPanel : public iz_common :: Panel
{
Q_OBJECT
public:
explici MissionPanel ( QWidge * pa en =0) ;
~ MissionPanel () o e ide ;
oid onIni ialize () o e ide ;
p o ec ed :
s d :: sha ed_p < iz_common :: os_in eg a ion ::
RosNodeAbs ac ionI ace > node_p _ ;
clcpp :: Publishe < s d_msgs :: msg :: S ing >:: Sha edP
publishe _ ;
clcpp :: Subsc ip ion < s d_msgs :: msg :: S ing >:: Sha edP
subsc ip ion_ ;
oid opicCallback ( cons s d_msgs :: msg :: S ing & msg );
// Del Tu o ial
B.3 Paque e cus om_ iz_panels 87
QLabel * label_;
QPushBu on * bu on_ ;
// De mi nue o panel
QComboBox * obo _ ype_combo_ ;
QDoubleSpinBox * x_spin_;
QDoubleSpinBox * y_spin_;
QDoubleSpinBox * z_spin_;
QCheckBox * con ol_checkbox_ ;
QPushBu on * spawn_bu on_ ;
QPushBu on * dele e_bu on_ ;
QLineEdi * dele e_namespace_edi _ ;
// Pa a el con ol a s n c o n o de llamadas de se icio
clcpp :: Clien < mission_managemen :: s :: SpawnRobo >::
Sha edFu u e spawn_ u u e_;
clcpp :: Clien < mission_managemen :: s :: Dele eRobo >::
Sha edFu u e dele e_ u u e_ ;
// Time s pa a espe a el esul ado de la llamada
clcpp :: Time Base :: Sha edP spawn_check_ ime _ ;
clcpp :: Time Base :: Sha edP dele e_check_ ime _ ;
clcpp :: Clien < mission_managemen :: s :: SpawnRobo >::
Sha edP spawn_clien _ ;
clcpp :: Clien < mission_managemen :: s :: Dele eRobo >::
Sha edP dele e_clien _;
p i a e Q_SLOTS:
oid bu onAc i a ed ();
oid onSpawnClicked();
oid onDele eClicked ();
};
} // namespace cus om_ iz_panels
#endi // CUSTOM_RVIZ_PANELS__MISSION_PANEL_HPP_
B.3.3 Fiche o de desc ipción del plugin
Se añade el a chi o
iz_commmon_plugins.xml
con código es ánda pluginlib. La
clase iene que coincidi con la in ocación de
PLUGINLIB
del
mission_panel.cpp
.
<lib a y pa h =" mission_panel ">
<class ype =" cus om_ iz_panels :: MissionPanel "
base_class_ ype =" iz_common :: Panel ">
88 Chap e B Código de la solución p opues a
<desc ip ion > RViz panel o mission managemen </
desc ip ion >
</class >
</ lib a y >
B.3 Paque e cus om_ iz_panels 89