scieee Science in your language
[sp] (orig)

Desarrollo de un sistema conversacional con IA para el control de drones mediante voz

Author: Sorolla Bayod, Víctor
Publisher: Universitat Politècnica de Catalunya
Year: 2025
Source: https://upcommons.upc.edu/bitstream/2117/430292/2/memoria.pdf
TRABAJO FINAL DE GRADO
TÍTULO: Desa ollo de un sis ema con e sacional con IA pa a el con ol de d ones median e
oz
TITULACIÓN: G ado en Ingenie ía de Sis emas de Telecomunicación
AUTOR: Víc o So olla Bayod
DIRECTOR: Miguel Vale o Ga cía
FECHA DEPÓSITO: 06/02/2025
TÍTULO: Desa ollo de un sis ema con e sacional con IA pa a el con ol de d ones median e
oz
TITULACIÓN: G ado en Ingenie ía de Sis emas de Telecomunicación
AUTOR: Víc o So olla Bayod
DIRECTOR: Miguel Vale o Ga cía
FECHA DEPÓSITO: 06/02/2025
Resumen
Es e T abajo de Fin de G ado p esen a una aplicación web pa a el con ol de d ones median e
comandos de oz, basada en écnicas a anzadas de in eligencia a i icial pa a p ocesa el
lenguaje na u al y aduci lo en acciones de uelo. La solución se in eg a en el D one
Enginee ing Ecosys em (DEE), donde un backend con Flask y la API de OpenAI in e p e an
ins ucciones o ales con al a p ecisión, o eciendo an o un modo con e sacional como un
plani icado de u as capaz de gene a misiones comple as. Las p uebas en un simulado
MAVLink con i man un con ol obus o y baja la encia. 
Es e en oque po encia la accesibilidad y la au onomía en el manejo de d ones, sen ando las
bases pa a u u as mejo as basadas en IA y alidaciones en en o nos de uelo eales.
TITLE: De elopmen o a Voice-Based Con e sa ional AI Sys em o D one Con ol
DEGREE: Bachelo 's Deg ee in Telecommunica ions Sys ems Enginee ing
AUTHOR: Víc o So olla Bayod
DIRECTOR: Miguel Vale o Ga cía
SUBMISSION DATE: 06/02/2025
Abs ac
This Bachelo 's Final P ojec in oduces a web applica ion o con olling d ones ia oice
commands, le e aging ad anced a i icial in elligence o p ocess na u al language and con e
i in o ligh ope a ions. In eg a ed in o he D one Enginee ing Ecosys em (DEE), he solu ion
elies on a Flask-based backend and OpenAI's API o accu a ely in e p e spoken commands,
ea u ing bo h a con e sa ional mode and a ou e planne capable o gene a ing comple e
missions. Tes s ca ied ou wi h a MAVLink simula o demons a e obus con ol and low
la ency. 
This app oach enhances accessibili y and au onomy in d one ope a ions, laying he
g oundwo k o u u e AI-d i en imp o emen s and eal-wo ld ligh alida ions.
Tabla de con enidos
1 INTRODUCCIÓN ..................................................................................................................... 4
2 CONTEXTO DE TRABAJO ..................................................................................................... 6
2.1 El d on ............................................................................................................................. 6
2.2 El Ecosis ema DEE ......................................................................................................... 6
2.3 Sis ema de Con ol Exis en e ........................................................................................ 7
3 OBJETIVOS DEL PROYECTO ............................................................................................... 8
3.1 Con ibución al DEE ....................................................................................................... 8
3.2 In eg ación de Nue as Funcionalidades ...................................................................... 9
3.3 In e az de usua io y con ol ......................................................................................... 9
3.4 En o no de Desa ollo .................................................................................................. 10
3.5 Ta eas del P oyec o ..................................................................................................... 10
3.6 Plani icación empo al ................................................................................................. 11
4 TECNOLOGÍAS USADAS ..................................................................................................... 12
4.1 Backend: Flask y Py hon ............................................................................................. 12
4.1.1 ¿Qué es un endpoin ? ............................................................................................ 12
4.2 In eg ación con OpenAI ............................................................................................... 13
4.3 F on end y Visualización ............................................................................................. 14
4.4 P ocesamien o de Audio ............................................................................................. 15
5 WEBAPP SEGURA ............................................................................................................... 16
6 SISTEMA DE CONTROL POR VOZ E INTERPRETACIÓN DE COMANDOS .................... 17
6.1 Componen es P incipales ........................................................................................... 17
6.1.1 Cap u a y P ocesamien o de Audio ........................................................................ 17
6.1.2 In e p e ación Semán ica ........................................................................................ 18
6.1.3 Gene ación de Acciones ......................................................................................... 19
6.1.4 Ejecución de Comandos ......................................................................................... 20
6.2 Sis ema de Es ados y Flujo de Con ol ...................................................................... 20
6.2.1 Es ados P incipales ................................................................................................ 21
6.2.2 Flujo de P ocesamien o de Respues as ................................................................. 21
6.2.3 Ejemplo de Flujo Comple o ..................................................................................... 25
6.3 In eg ación en la In e az Web..................................................................................... 27
6.3.1 F on end (HTML/Ja aSc ip ) .................................................................................. 27
7 INTERFAZ Y RETROALIMENTACIÓN VISUAL .................................................................. 30
7.1 Con ol Manual y Feedback ......................................................................................... 30
7.2 Ejecución de Misiones y P e isualización ................................................................. 31
7.2.1 P ocesamien o de Comandos ................................................................................ 31
7.2.2 Gene ación y isualización de la u a plani icada ................................................... 31
7.2.3 Moni o ización de Misión ........................................................................................ 33
7.3 Con igu ación de la Tempe a u a en OpenAI: Plan de Vuelo s. Con e sación ... 34
7.3.1 ¿Cómo unciona el pa áme o empe a u e? .......................................................... 34
7.3.2 Modo Plan de Vuelo ( empe a u e=0.3) ................................................................. 35
7.3.3 Modo Con e sación ( empe a u e=0.7) .................................................................. 36
7.3.4 Compa ación de Compo amien os ........................................................................ 36
7.3.5 P uebas y Ajus es ................................................................................................... 37
8 ENTORNO DE PRUEBAS ..................................................................................................... 38
8.1 En o no de P uebas ..................................................................................................... 38
8.2 Escena ios de P ueba .................................................................................................. 38
8.2.1 P uebas de Con ol Manual .................................................................................... 38
8.2.2 P uebas de Con ol po Voz (Modo Con e sacional) ............................................. 39
8.2.3 P uebas de Plani icación de Vuelo (Modo Plan de Vuelo) ..................................... 41
8.3 Obse aciones Rele an es .......................................................................................... 41
8.4 Limi aciones y P óximos Pasos de Validación ......................................................... 42
9 RETOS ESPECIALMENTE DESAFIANTES ......................................................................... 43
10 IMPACTO ECONÓMICO, MEDIOAMBIENTAL Y SOCIAL .................................................. 44
10.1 Económico .................................................................................................................... 44
10.2 Medioambien al ............................................................................................................ 44
10.3 Social ............................................................................................................................. 44
11 INTEGRACIÓN EN EL ECOSISTEMA DEE ......................................................................... 45
12 CONCLUSIONES .................................................................................................................. 47
12.1 Obje i os Alcanzados .................................................................................................. 47
12.2 Plan de T abajo y Des iaciones .................................................................................. 47
12.3 Valo ación Pe sonal ..................................................................................................... 47
12.4 Líneas Fu u as .............................................................................................................. 47
13 REFERENCIAS ...................................................................................................................... 49
14 ANEXO ................................................................................................................................... 50
14.1 Diag ama de lujo ( lowcha ) ...................................................................................... 50

Índice de igu as
Figu a 1: Fo og a ía del d on ......................................................................................................... 6
Figu a 2: Esquema comple o de la es uc u a del DEE ................................................................ 7
Figu a 3: Diag ama de GANTT ................................................................................................... 11
Figu a 4: Ta i as de la API de OpenAI según el modelo ............................................................. 13
Figu a 5: In e az del panel de con e sación .............................................................................. 14
Figu a 6: In e az del panel de con ol manual ............................................................................ 15
..................................................................................................................................................... 15
Figu a 7: In e az del panel de plan de uelo con una misión ca gada ...................................... 15
Figu a 8 : In e az in eg ada con mapa in e ac i o pa a con ol manual (izquie da) y Mission
Planne pa a supe isión del uelo (de echa). ............................................................................ 39
Figu a 9: In e acción con el asis en e i ual mos ando di e en es modos de pe sonalidad
(No mal, P egun ón y Bo de) ...................................................................................................... 40
Figu a 10: Mapa con la u a p e isualizada (línea discon inua) y el d on “mo iendo” su posición
en el simulado con o me a anza la misión. ............................................................................... 41
Figu a 11.A: Lógica de es ados y ansiciones. .......................................................................... 50
In oducción 4
1 In oducción
El p esen e T abajo de Fin de G ado (TFG) iene como obje i o el desa ollo de una aplicación
web pa a el con ol de un d on median e comandos de oz, in eg ando ecnologías de in eligencia
a i icial pa a la in e p e ación del lenguaje na u al. Es e p oyec o se in eg a en el D one
Enginee ing Ecosys em (DEE), una in aes uc u a ecnológica desa ollada en la Escuela de
Ingenie ía de Telecomunicación y Ae oespacial de Cas ellde els (EETAC) que p opo ciona un
amewo k comple o pa a el desa ollo de aplicaciones de d ones, desa ollado de mane a
colabo a i a po más de 30 alumnos de la EETAC, median e sus T abajos de inal de es udios.
Mi p incipal con ibución en es e abajo ha sido el diseño y la implemen ación de una web app
in ui i a y segu a que pe mi e a los usua ios con ola el d on de mane a in e ac i a, mejo ando
la expe iencia de uso y acili ando demos aciones a isi an es y po enciales usua ios del
ecosis ema. La aplicación in eg a múl iples uncionalidades cla e: un sis ema de con ol po oz
con di e en es pe sonalidades de in e acción (p o esional, educa i a, in o mal), que adap a su
compo amien o según el con ex o de uso; un sis ema de plani icación de uelo que pe mi e
dic a u as y misiones comple as median e lenguaje na u al; y una in e az de isualización en
iempo eal que mues a la posición del d on sob e un mapa in e ac i o, pe mi iendo segui su
ayec o ia y el es ado en el que se encuen a.
La in e az implemen a dos modos p incipales de ope ación: un modo con e sacional que
p ocesa comandos de oz median e in eligencia a i icial, p opo cionando eedback audi i o y
isual. Po ejemplo, si el usua io dice “a anza es me os”, la in eligencia a i icial iene que se
capaz de in e p e a que acción iene que hace el d on y de ol e una espues a adecuada. Una
de las g andes en ajas de implemen a la IA en el p ocesamien o de los comandos, es que és a
es capaz de in e p e a los comandos, es deci , no hace al a exp esa se siemp e de la misma
o ma y usa siemp e las mismas palab as o e bos. Po ejemplo, en caso de que se dije a
“di íge e es me os hacia delan e” la in e p e ación se ia la misma, la cual se log a median e el
p ocesamien o de lenguaje na u al de OpenAI, que comp ende el con ex o y la in ención del
usua io independien emen e de la o ma exac a en que se exp ese el comando. El sis ema
inco po a cua o pe sonalidades dis in as (No mal, G acioso, Bo de y P egun ón) que modi ican
la o ma en que la IA in e ac úa con el usua io.
También se incluye un plani icado de u as que pe mi e de ini misiones median e ins ucciones
habladas, aduciendo au omá icamen e es as ins ucciones un plan de uelo au ónomo y
mos ado una p e isualización de la u a que segui á el d on. También cons a de un modo
manual en el que se puede con ola el d on median e bo ones pa a acciones más p ecisas o
pa a e oma el con ol en caso necesa io.
La mo i ación pe sonal pa a es e p oyec o su ge del in e és en el campo de los d ones y la
in eligencia a i icial, así como del deseo de con ibui al a ance de he amien as accesibles y
uncionales pa a el manejo de d ones.
La es uc u a de es a memo ia se o ganiza de la siguien e mane a:
La con ex ualización inicial p esen a el Ecosis ema de Ingenie ía de D ones (DEE), es ableciendo
el ma co ecnológico y las bases sob e las que se cons uye la aplicación. Es a sección examina
la a qui ec u a del ecosis ema y sus componen es p incipales, undamen ales pa a comp ende
las decisiones de diseño pos e io es.
El plan de abajo y los obje i os de inen el alcance del p oyec o y la me odología empleada. La
plani icación de alla las ases de desa ollo, desde el análisis inicial has a la implemen ación inal,
es ableciendo hi os y en egables especí icos.
La sección de ecnologías examina las he amien as y amewo ks seleccionados, jus i icando
su elección en base a los equisi os del p oyec o y su compa ibilidad con el DEE. Es e análisis
In oducción 5
aba ca an o las ecnologías de backend como los componen es de on end necesa ios pa a la
implemen ación.
La implemen ación de segu idad desc ibe los mecanismos desa ollados pa a ga an iza la
in eg idad y iabilidad del sis ema. Pos e io men e, el diseño de la in e az de alla las decisiones
omadas pa a c ea una expe iencia de usua io in ui i a y ácil de usa .
El núcleo écnico del p oyec o se cen a en el sis ema de con ol po oz, desc ibiendo la
a qui ec u a de p ocesamien o de comandos ocales y su in eg ación con el con ol del d on.
Es a sección analiza la implemen ación del econocimien o de oz y la in e p e ación de
comandos median e in eligencia a i icial.
Las p uebas y e aluación documen an la alidación del sis ema, seguidas po la desc ipción de
la in eg ación con el DEE. La memo ia concluye con un análisis del impac o del p oyec o y las
conclusiones ex aídas, incluyendo p opues as pa a u u as líneas de desa ollo.
Con ex o de T abajo 6
2 Con ex o de T abajo
En es e capí ulo se desc ibe el en o no en el que se desa olla el p oyec o. Se p esen an p ime o
las ca ac e ís icas p incipales del d on u ilizado y, a con inuación, se in oduce la in aes uc u a
gene al del DEE (D one Enginee ing Ecosys em). También se explica el sis ema de con ol que
ya exis ía an es de comenza es e p oyec o, con el in de con ex ualiza los componen es de
so wa e y ha dwa e sob e los que se han ealizado las ampliaciones y mejo as.
2.1 El d on
El ha dwa e cen al del ecosis ema DEE se basa en un d on cuad icóp e o que in eg a múl iples
sis emas pa a pe mi i un con ol p eciso y uncionalidades a anzadas. El análisis de allado de
sus componen es e ela la so is icación del sis ema:
El con olado de uelo es una Pixhawk O ange Cube con i mwa e PX4. Dicho i mwa e o ece
dis in os modos de uelo (Al i ud Hold, Loi e , RTL) y moni o iza la eleme ía. Pa a la na egación,
el d on cuen a con un módulo GPS con b újula y un senso de lujo óp ico que apo a
posicionamien o ela i o, además de un al íme o láse pa a medi la al u a de o ma más exac a.
Cua o mo o es b ushless, con olados po ESCs indi iduales, p opo cionan el empuje necesa io,
y oda la ene gía se dis ibuye a a és de una placa de po encia que moni o ea el consumo
eléc ico.
La comunicación se lle a a cabo po medio de un enlace de adio eleme ía en 433 MHz y un
ecep o independien e pa a el con ol manual. Adicionalmen e, el d on dispone de una
Raspbe y Pi a bo do que p ocesa da os de senso es y ejecu a algo i mos du an e el uelo.
Figu a 1: Fo og a ía del d on
2.2 El Ecosis ema DEE
El D one Enginee ing Ecosys em (DEE) es un ma co de abajo colabo a i o que ag upa di e sos
módulos de so wa e y ha dwa e pa a el con ol y la moni o ización de d ones. La igu a 2 ilus a
un esquema simpli icado de su a qui ec u a p incipal, esal ando la comunicación median e el
p o ocolo MQTT:
• D on (ni el local), que incluye an o el con olado de uelo (Pixhawk) como la
compu ado a a bo do.
Tecnologías Usadas 13
4. Du an e la ope ación, se de uel en ac ualizaciones de es ado al clien e (p. ej., “D on en ase
de ascenso”).
5. La in e az web mues a esa e oalimen ación, ac ualizando su isualización (posición en el
mapa, mensajes de con i mación, e c.).
4.2 In eg ación con OpenAI
La in eg ación con OpenAI cons i uye uno de los elemen os más c í icos del sis ema, ya que es
esponsable de in e p e a los comandos de oz y gene a espues as con ex uales. El sis ema
u iliza el modelo GPT-4 a a és de la API de OpenAI, implemen ando un sis ema de cha que
man iene el con ex o de la con e sación y ges iona di e en es pe sonalidades de in e acción.
Pa a hace uso de es a ecnología, se ha enido que c ea una cuen a en OpenAI y gene a una
cla e API. Es a cla e pe mi e accede a los modelos de lenguaje. Sin emba go, iene un cos o,
que a ía según el modelo que se use. En es e p oyec o se ha usado el modelo GPT-4o-mini,
una e sión op imizada que equilib a endimien o y cos e, siendo de los modelos más
económicos. Cada llamada a la API iene un cos e ijo que a ía según el núme o de inpu okens
y los ou pu s okens. En o as palab as, cuan o más ex enso sea el mensaje en iado y la
espues a ecibida, mayo se á el cos e.
Los okens son unidades de ex o que el modelo p ocesa. Po ejemplo, en español, una palab a
co a suele se un oken, mien as que palab as más la gas pueden se a ios okens. Los
comandos de oz ípicamen e son b e es ("a anza es me os", "gi a a la de echa"), lo que
esul a en un consumo educido de okens.
En la siguien e abla ex aída de la p opia web de OpenAI, se pueden e los di e en es cos es
pa a cada modelo de lenguaje.
Figu a 4: Ta i as de la API de OpenAI según el modelo
El modelo gp -4o-mini, es el más económico con un cos e de 0,75 dóla es po millón de okens
gene ados, combinando an o p egun as como espues as. A pesa de se el más económico,
sus capacidades son más que su icien es pa a es a aplicación, ya que la in e p e ación de
comandos de uelo no equie e el ni el de complejidad y con ex ualización que o ecen modelos
más a anzados.
En el con ex o de es e p oyec o, se ha ealizado un análisis de cos es basado en el uso ípico
del sis ema. Una sesión de uelo p omedio, que puede du a en e 10 y 15 minu os, gene a

Tecnologías Usadas 14
ap oximadamen e en e 20 y 30 in e acciones con la API. Conside ando una media de 30 okens
po in e acción (incluyendo el comando y la espues a), una sesión ípica consume al ededo de
900 okens. Es o signi ica que, con un millón de okens, el sis ema pod ía ges iona más de 1,000
sesiones de uelo comple as, odo po un cos e ap oximado de 0,75 dóla es.
4.3 F on end y Visualización
La in e az de usua io se desa olla u ilizando HTML5, CSS3 y Ja aSc ip diseñado pa a
disposi i os mó iles. Pa a la isualización ca og á ica, se in eg a Lea le .js, una biblio eca
Ja aSc ip que pe mi e implemen a mapas in e ac i os pa a isualiza la posición del d on en
iempo eal dadas sus coo denadas. Pa a es e p oyec o se ha u ilizado una capa de mapa
sa eli al median e Google Maps Tile Laye , p opo cionando una ep esen ación de allada del
en o no
La in e az de usua io implemen a es modos p incipales de ope ación:
- Modo Con e sacional: Pe mi e el con ol median e comandos de oz, con selección de
di e en es pe sonalidades pa a la in e acción [Figu a 5]
- Modo Manual: P opo ciona con oles di ec os pa a ope aciones básicas y mo imien os
di eccionales [Figu a 6].
- Modo Plan de Vuelo: Facili a la plani icación de misiones median e comandos de oz o ex o,
con p e isualización de la u a en el mapa [Figu a 7].
Figu a 5: In e az del panel de con e sación
Tecnologías Usadas 15
Figu a 6: In e az del panel de con ol manual
Figu a 7: In e az del panel de plan de uelo con una misión ca gada
4.4 P ocesamien o de Audio
El sis ema implemen a una a qui ec u a de p ocesamien o de audio que ges iona es aspec os
undamen ales: cap u a de audio, econocimien o de oz y sín esis pa a e oalimen ación. La
implemen ación p io iza la e iciencia y minimización de la encia, ac o es c í icos en el con ol de
d ones.
La cap u a de audio se ealiza median e la Web Audio API, que p opo ciona una in e az pa a el
p ocesamien o y sín esis de audio en el na egado . Pa a el econocimien o se u iliza Vosk, una
biblio eca de p ocesamien o o line pa a minimizando la la encia en el econocimien o de
comandos.
La sín esis de oz se implemen a median e la biblio eca gTTS (Google Tex - o-Speech), un
módulo de Py hon que ac úa como in e az pa a el se icio de sín esis de oz de Google Cloud.
Es a biblio eca sin e iza el ex o u ilizando oces ealis as que emulan el habla humana,
p opo cionando una expe iencia de in e acción más na u al.
WebApp Segu a 16
5 WebApp Segu a
La implemen ación de una conexión segu a median e HTTPS es undamen al en es e p oyec o,
ya que los na egado es mode nos equie en una conexión segu a pa a pe mi i el acceso a
uncionalidades c í icas como la cap u a de audio del mic ó ono. Sin es a implemen ación, el
sis ema de con ol po oz no unciona ía, pues los na egado es bloquean el acceso al mic ó ono
en conexiones no segu as.
Pa a habili a HTTPS, se gene a on ce i icados SSL u ilizando OpenSSL, una biblio eca de
código abie o que p opo ciona he amien as c ip og á icas. La implemen ación se ealizó
añadiendo los ce i icados gene ados al se ido median e la siguien e con igu ación en el
a chi o p incipal de la aplicación:
Py hon
app. un(hos ='0.0.0.0', po =5000,ssl_con ex =('openssl/ce .pem','openssl/key.pem'))
Es a con igu ación implemen a una conexión HTTPS que enc ip a la comunicación en e el
clien e y el se ido , ga an izando la segu idad de los da os ansmi idos y pe mi iendo el acceso
a uncionalidades del na egado que equie en un con ex o segu o.
Sis ema de Con ol po Voz e In e p e ación de Comandos 17
6 Sis ema de Con ol po Voz e In e p e ación de Comandos
Es e sis ema cons i uye el núcleo de la aplicación, ya que pe mi e ans o ma comandos de oz
en acciones ejecu ables po el d on. Su a qui ec u a aba ca a ios componen es y una lógica de
es ados que de ine cómo se ges ionan las in e acciones con el usua io. El siguien e esquema (o
diag ama de lujo) ilus a el p oceso comple o, desde la cap u a de audio has a la ejecución inal
de los comandos en el d on.
6.1 Componen es P incipales
6.1.1 Cap u a y P ocesamien o de Audio
• Módulo: audio_p ocesso .py
• Funcionalidad p incipal:
o Con e i el audio del usua io ( o ma o WEBM) a WAV usando FFmpeg.
o Realiza la ansc ipción o line en español median e Vosk.
Código ele an e:
Py hon
class AudioP ocesso :
de __ini __(sel ):
sel . mpeg_pa h = sel ._ge _ mpeg_pa h() # Busca FFmpeg en el
sis ema
sel .model_pa h = " osk-model-small-es-0.42" # Modelo de
econocimien o de oz en español
de p ocess_audio(sel , audio_da a):
webm_pa h, wa _pa h = sel ._c ea e_ emp_ iles() # C ea a chi os
empo ales
y:
# Gua da el audio ecibido en o ma o WEBM
wi h open(webm_pa h, 'wb') as :
.w i e(audio_da a)
# Con ie e WEBM a WAV usando FFmpeg (necesa io pa a Vosk)
sel ._con e _ o_wa (webm_pa h, wa _pa h)
# T ansc ibe el audio a ex o con Vosk
ansc ip ion = sel ._ ansc ibe_audio(wa _pa h)
e u n {'success': T ue, ' ansc ip ion': ansc ip ion}
excep Excep ion as e:
e u n {'success': False, 'e o ': s (e)}
Sis ema de Con ol po Voz e In e p e ación de Comandos 18
6.1.2 In e p e ación Semán ica
• Módulo: oice_con ol.py
• Funcionalidad p incipal:
o En ia el ex o ansc i o a la API de OpenAI (modelo gp -4o-mini) pa a
comp ende la in ención del usua io.
o Pe sonaliza las espues as en unción del modo seleccionado (No mal,
G acioso, e c.)
Es uc u a de pe sonalidades:
Py hon
# Pe sonalidades p ede inidas pa a guia a la IA
PERSONALIDADES = {
"no mal": "E es un asis en e p o esional pa a con ola d ones...",
"g acioso": "Responde con chis es elacionados con d ones...",
"plan_ uelo": "Gene a un JSON con waypoin s pa a misiones..."
}
de en ia _comando_openai(use _id, mensaje):
his o ial = ob ene _his o ial(use _id) # Man iene con ex o de la
con e sación
his o ial.append({" ole": "use ", "con en ": mensaje})
# Llama a la API de OpenAI
esponse = openai.Cha Comple ion.c ea e(
model="gp -4o-mini",
messages=his o ial,
empe a u e=0.7,
max_ okens=150 # Limi a la longi ud de la espues a
)
espues a = esponse.choices[0].message.con en
his o ial.append({" ole": "assis an ", "con en ": espues a})
e u n espues a

Sis ema de Con ol po Voz e In e p e ación de Comandos 19
Ejemplo de Salida de OpenAI (Modo Plan de Vuelo):
JSON
{
" ype": " ligh Plan",
"waypoin s": [
{"ac ion": " akeo ", "al i ude": 5},
{"ac ion": "mo e", "di ec ion": "no h", "dis ance": 10}
]
}
6.1.3 Gene ación de Acciones
• Módulo: plan_de_ uelo.py
• Funcionalidad p incipal:
o T aduci las ins ucciones p oducidas po OpenAI a comandos écnicos.
o Calcula posiciones geog á icas pa a mo imien os complejos.
Py hon
de calcula _nue a_posicion(la , lon, di eccion, dis ancia):
R = 6378137 # Radio de la Tie a en me os
di _lowe = di eccion.lowe ()
# Mapeo de di ecciones a ángulos (0°=No e, 90°=Es e, e c.)
i di _lowe == " o wa d":
bea ing = d on.heading # Usa la o ien ación ac ual del d on
eli di _lowe == " igh ":
bea ing = (d on.heading + 90) % 360
else:
bea ings = {"no h": 0, "eas ": 90, "sou h": 180, "wes ": 270}
bea ing = bea ings.ge (di _lowe , 0)
# Cálculos igonomé icos pa a nue a posición ( ó mula de Ha e sine)
la _ ad = ma h. adians(la )
lon_ ad = ma h. adians(lon)
d_ ad = dis ancia / R
new_la = ma h.deg ees(
ma h.asin(
ma h.sin(la _ ad) * ma h.cos(d_ ad) +
ma h.cos(la _ ad) * ma h.sin(d_ ad) *
ma h.cos(ma h. adians(bea ing))
)
)
Sis ema de Con ol po Voz e In e p e ación de Comandos 20
new_lon = ma h.deg ees(
lon_ ad + ma h.a an2(
ma h.sin(ma h. adians(bea ing)) * ma h.sin(d_ ad) *
ma h.cos(la _ ad),
ma h.cos(d_ ad) - ma h.sin(la _ ad) *
ma h.sin(ma h. adians(new_la ))
)
)
e u n {"la ": new_la , "lon": new_lon}
6.1.4 Ejecución de Comandos
• Módulo: d on_con ols.py
• Funcionalidad p incipal:
o Implemen a acciones básicas median e la biblio eca d onLink.
o Ges iona es ados del d on (conexión, a mado, despegue).
Ejemplo de despegue:
Py hon
de despega _d on(me os):
i d on.s a e == "a med": # Ve i ica si el d on es á lis o
d on. akeO (me os) # En ía comando MAVLink de despegue
e u n {"es ado": "success"}
e u n {"es ado": "e o "}
de mo e _d on(di eccion, dis ancia):
y:
# Llama a la unción de mo imien o de d onLink
d on.mo e_dis ance(di eccion, dis ancia, blocking=False)
e u n {"es ado": "success"}
excep Excep ion as e:
e u n {"es ado": "e o ", "mensaje": s (e)}
6.2 Sis ema de Es ados y Flujo de Con ol
La aplicación implemen a un sis ema de con ol basado en es ado pa a ges iona la in e acción
con el usua io y la ejecución de los comandos. De es a mane a, se con olan aspec os como la
con i mación de acciones o la o mulación de p egun as educa i as an es de lle a a cabo la
o den.
Sis ema de Con ol po Voz e In e p e ación de Comandos 21
6.2.1 Es ados P incipales
En el módulo p incipal de lógica (p.ej. VoiceCon olSe ice), se de inen a ibu os que con olan
el lujo de la con e sación y las ó denes pendien es:
Py hon
sel .es ado_con e sacion = None # Con ola el lujo de la in e acción ac ual
sel .comando_pendien e = None # Almacena la acción pendien e de con i mación
sel . alo _pendien e = None # Pa áme os asociados al comando (dis ancia, ángulos)
La a iable es ado_con e sacion indica si el sis ema es á pidiendo con i mación de una o den
("con i ma _accion"), o mulando una p egun a educa i a ("p egun a_educa i a") o en un es ado
neu o (None).
6.2.2 Flujo de P ocesamien o de Respues as
El lujo se inicia cuando llega la ansc ipción de oz, se en ía el ex o a la IA de OpenAI pa a
su in e p e ación y, a con inuación, se de ec a la acción. Finalmen e, se decide si se con i ma la
ejecución de dicha acción o se lanza una p egun a (en caso de pe sonalidad “P egun ón”).
6.2.2.1 De ección de Comandos
El sis ema iden i ica las acciones álidas analizando la espues a gene ada po la IA (OpenAI).
Pa a ello, e isa si en el ex o de uel o apa ece alguna de las palab as cla e con igu adas. Todas
las pe sonalidades ienen ins ucciones especí icas pa a inclui la palab a de la acción cla e en
su espues a, lo que acili a su de ección.
La unción “de ec a _accion_en_ espues a” e isa la espues a de la IA, iden i icando si el
usua io quie e “conec a ”, “despega ”, “ o a ” o cualquie o a acción de inida en el a ay
“sel .acciones_cla e:”
Py hon
de _de ec a _accion_en_ espues a(sel , espues a):
espues a_lowe = espues a.lowe ()
p in ( "Analizando espues a pa a de ec o acción: { espues a_lowe }")
# De ección especí ica de o ación y di ección
i " o a " in espues a_lowe o "gi a " in espues a_lowe :
i "de echa" in espues a_lowe :
e u n " o a de echa"
eli "izquie da" in espues a_lowe :
e u n " o a izquie da"
e u n " o a " #si no especi ica la di ección
# Res o de acciones
o accion in sel .acciones_cla e:
i accion in espues a_lowe :
p in ( "Acción de ec ada: {accion}")
Sis ema de Con ol po Voz e In e p e ación de Comandos 22
e u n accion
p in ("No se de ec ó ninguna acción en la espues a de IA")
e u n None
Las acciones álidas es án p ede inidas en el sis ema:
Py hon
sel .acciones_cla e = [
"conec a ", "despega ", "a e iza ",
"a anza ", " e ocede ", "de echa", "izquie da",
"subi ", "baja ", "de ene ", "desconec a ",
" o a ", " o a de echa", " o a izquie da"
]
Una ez se econoce alguna de es as acciones, el sis ema ansiciona al es ado de con i mación.
No obs an e, si la pe sonalidad p egun ón es á ac i a y se cumple la p obabilidad es ablecida,
puede pasa di ec amen e al es ado “p egun a_educa i a”, en el que se lanza una cues ión al
usua io an es de ejecu a la acción.
Sis ema de Con ol po Voz e In e p e ación de Comandos 29
El backend de uel e un obje o JSON con el es ado de la ope ación, un mensaje y, una URL de
audio pa a e oalimen ación hablada.
6.3.1.3 Visualización de d on el mapa
Se emplea Lea le .js pa a mos a la posición y la ayec o ia del d on. Cada ez que se eciben
nue os da os de eleme ía, se ac ualiza la posición del ma cado y se dibuja la u a:
Ja aSc ip
unc ion ac ualiza Ma cado D on(newLa Lng, d onIcon, heading) {
cons iconS yle = `
.d on-icon {
ans o m: o a e(${heading}deg);
ansi ion: ans o m 0.3s ease;
}
`;
cons iconH ml = `
<di class="d on-icon">
${d onIcon}
<di class="di ec ion-a ow">➤</di >
</di >
`;
// Ac ualización del ma cado
d onMa ke .se Icon(L.di Icon({
className: 'd on-icon-w appe ',
h ml: iconH ml,
iconSize: [25, 25]
}));
}
Con cada ac ualización, se añade el nue o pun o a d onPa h pa a aza una línea oja con inua.
En el caso de planes de uelo, se dibuja una línea discon inua azul (p e iewPa h) pa a di e encia
la u a plani icada de la ejecu ada
Manejo de E o es y Mensajes
• Si algún endpoin REST alla, se cambia el colo de los bo ones a ojo y se es au a al
cabo de unos segundos, mos ando mensajes de e o en la consola y/o en el elemen o
ex o- espues a.
• Pa a la ansc ipción de oz, si se ecibe una cadena acía o un e o , se no i ica al
usua io (“No se pudo ansc ibi ”) y se omi e la ejecución de ó denes.

In e az y Re oalimen ación Visual 30
7 In e az y Re oalimen ación Visual
La aplicación implemen a un sis ema de con ol manual y plani icación de misiones que se in eg a
con la capa de p esen ación ( on end), o eciendo e oalimen ación isual y alidaciones en
iempo eal. A con inuación, se de alla la es uc u a de la in e az y cómo se ges ionan las
dis in as uncionalidades.
7.1 Con ol Manual y Feedback
La in e az web inco po a bo ones pa a las acciones básicas (conexión al d on, despegue,
a e izaje, e c.), además de indicado es isuales que e lejan el es ado de cada ope ación.
Ja aSc ip
unc ion conec a D on() {
e ch('/conexion_d on', {
me hod: 'POST',
heade s: {'Con en -Type': 'applica ion/json'}
})
. hen( esponse => esponse.json())
. hen(da a => {
cons b n = documen .que ySelec o ('.con ol-
b n[onclick="conec a D on()"]');
i (da a.es ado === "success") {
b n.classLis .add('ac i e');
b n.s yle.backg ound = '#4CAF50'; //Ve de
} else {
b n.s yle.backg ound = '# 0000'; //Rojo
se Timeou (() => {
b n.s yle.backg ound = '#ec7412';
}, 2000);
}
});
}
Las acciones más des acadas de es e bloque son:
• Indicado es isuales del esul ado de cada ope ación (p. ej., cambio de colo en el bo ón).
• T ansiciones de colo que comunican al usua io si la ope ación ha enido éxi o ( ojo y
e de)
• Res au ación au omá ica a su es ado o iginal as un b e e lapso, pa a no sa u a con
no i icaciones pe manen es.
In e az y Re oalimen ación Visual 31
7.2 Ejecución de Misiones y P e isualización
La in e az de plani icación de uelo in eg a un sis ema que pe mi e p e isualiza y ejecu a
misiones, asegu ando que las u as sean de inidas y alidadas an es de su implemen ación. El
módulo de p e isualización p ocesa los waypoin s y gene a una ep esen ación isual de la u a
plani icada
7.2.1 P ocesamien o de Comandos
La unción p ocesa Comando ecibe las ins ucciones del usua io, en ía la pe ición al backend
y, al ob ene la espues a, decide si se a a de un plan de uelo:
Ja aSc ip
unc ion p ocesa Comando(comando) {
e ch('/p ocesa _plan_ uelo', {
me hod: 'POST',
heade s: {'Con en -Type': 'applica ion/json'},
body: JSON.s ingi y({comando: comando})
})
. hen( esponse => esponse.json())
. hen(da a => {
i (da a. ype === ' ligh Plan') {
cu en Plan = da a;
mos a P e iewRu a(da a.waypoin s);
}
});
}
Es e lujo ealiza:
• Con e sión de lenguaje na u al a waypoin s y pa áme os de misión (g acias a la IA).
• Gene ación de una p e isualización en el mapa an es de ejecu a la u a.
7.2.2 Gene ación y isualización de la u a plani icada
Una ez que la unción p ocesa Comando(comando) ecibe y alida el plan de uelo gene ado
po la IA, es e se ep esen a en el mapa in e ac i o u ilizando la unción
mos a P e iewRu a(waypoin s). Es a unción oma los waypoin s ob enidos y los ans o ma en
una ep esen ación isual en Lea le .js, pe mi iendo que el usua io pueda e i ica la u a an es
de su ejecución.
In e az y Re oalimen ación Visual 32
Ja aSc ip
unc ion mos a P e iewRu a(waypoin s) {
i (!d onMa ke ) e u n;
e ch('/ eleme ia')
. hen( esponse => esponse.json())
. hen(da a => {
i (da a.es ado === "success" && da a.da a) {
cons coo dina es = [];
le cu en Pos = d onMa ke .ge La Lng();
le cu en Heading = da a.da a.di eccion;
coo dina es.push(cu en Pos);
waypoin s. o Each((wp) => {
i (wp.ac ion === 'mo e') {
cons newPos = calcula Nue aPosicion(cu en Pos,
wp.di ec ion, wp.dis ance, cu en Heading);
coo dina es.push(newPos);
cu en Pos = newPos;
} else i (wp.ac ion === ' o a e') {
// Ac ualiza el heading según la o ación
i (wp.clockwise === alse) {
cu en Heading = (cu en Heading - wp.deg ees +
360) % 360;
} else {
cu en Heading = (cu en Heading + wp.deg ees) %
360;
}
}
});
p e iewPa h.se La Lngs(coo dina es);
}
});
}
El p oceso de p e isualización sigue los siguien es pasos:
1. Ob ención de la posición inicial del d on:
o La unción mos a P e iewRu a() p ime o consul a la eleme ía del d on a a és
del endpoin / eleme ia pa a ob ene su ubicación y o ien ación ac ual. Es o
ga an iza que la p e isualización comience en la posición eal del d on.
2. Cálculo de la ayec o ia:
o Se oma la posición ac ual (cu en Pos) y la o ien ación (cu en Heading).
o Se eco en los waypoin s gene ados po la IA:
▪ Si el waypoin indica un mo imien o (mo e), se calcula la nue a posición
a pa i de la dis ancia y di ección especi icadas.
In e az y Re oalimen ación Visual 33
▪ Si el waypoin indica una o ación ( o a e), la o ien ación del d on se
ajus a sin cambia su posición.
3. Dibujado de la u a en el mapa:
o Una ez calculadas odas las posiciones in e medias, se ac ualiza la
p e isualización con p e iewPa h.se La Lngs(coo dina es).
o La u a se ep esen a con una línea azul discon inua, acili ando la dis inción
en e la ayec o ia planeada y el eco ido eal del d on.
7.2.3 Moni o ización de Misión
La implemen ación incluye un sis ema de moni o ización que supe isa la ejecución del plan
pa a:
• Valida que el d on sigue los waypoin s co ec amen e.
• Cancela o modi ica la u a si su gie a algún incon enien e.
• B inda e oalimen ación del p og eso en iempo eal.
Ja aSc ip
unc ion p ocesa Comando(comando) {
e ch('/p ocesa _plan_ uelo', {
me hod: 'POST',
heade s: {'Con en -Type': 'applica ion/json'},
body: JSON.s ingi y({comando: comando})
})
. hen( esponse => esponse.json())
. hen(da a => {
i (da a. ype === ' ligh Plan') {
cu en Plan = da a;
mos a P e iewRu a(da a.waypoin s);
}
});
}
Es o pe mi e la:
• Validación p e ia de u as plani icadas
• Seguimien o en iempo eal de la ejecución
• Ges ión de e o es y cancelaciones
• Re oalimen ación isual del p og eso de la misión
In e az y Re oalimen ación Visual 34
7.3 Con igu ación de la Tempe a u a en OpenAI: Plan de Vuelo s.
Con e sación
El pa áme o empe a u e en los modelos de OpenAI (p. ej., GPT-3.5, GPT-4, e c.) con ola el
g ado de alea o iedad en la gene ación de ex o. Concep ualmen e, cuan o más al a es la
empe a u a, mayo es la dispe sión de p obabilidades al momen o de selecciona la siguien e
palab a, lo que omen a espues as más “c ea i as” o imp edecibles. En cambio, empe a u as
bajas hacen que el modelo se incline po las secuencias de palab as es adís icamen e más
p obables, ob eniendo salidas más “conse ado as” y epe ibles.
Den o de es e p oyec o, es a uncionalidad esul a cla e pa a equilib a dos necesidades muy
dis in as:
1. Gene ación de planes de uelo (ins ucciones c í icas pa a el d on, que deben se
exac as y segu as).
2. In e acción con e sacional con el usua io (donde se alo a la luidez, na u alidad y, en
algunos casos, un oque c ea i o u humo ís ico).
7.3.1 ¿Cómo unciona el pa áme o empe a u e?
In e namen e, el modelo de OpenAI asigna una p obabilidad a cada posible “p óxima palab a” (o
oken). Cuando la empe a u e es 1.0, el modelo sigue de ce ca la dis ibución de p obabilidad
calculada. Al educi la (p. ej., 0.3), se “sup ime” la p obabilidad de las palab as menos p obables,
o zando al modelo a escoge palab as más “segu as” y ecuen es. Po el con a io, si subimos
la empe a u a po encima de 1.0 (p. ej., 1.2), el modelo da cabida a palab as menos comunes,
gene ando salidas más o iginales, pe o ambién más imp edecibles.
Ven ajas y des en ajas
• Tempe a u a baja (0.0 – 0.4):
o Ven aja: Respues as muy cohe en es y iables, ideales pa a a eas donde la
exac i ud es undamen al.
o Incon enien e: Salidas menos “o iginales” o “na u ales”, pueden pa ece
“ obó icas”.
• Tempe a u a media (0.5 – 0.7):
o Ven aja: Mayo a iedad en la gene ación de espues as sin cae en la
incohe encia.
o Incon enien e: Se co e algo más de iesgo de que el modelo di ague si el
p omp no es á bien aco ado.
• Tempe a u a al a (0.8 – 1.2):
o Ven aja: C ea i idad y mayo espon aneidad, ú il en ámbi os a ís icos o de
b ains o ming.
o Incon enien e: Riesgo de in o mación menos iable o de pé dida de cohe encia

In e az y Re oalimen ación Visual 35
7.3.2 Modo Plan de Vuelo ( empe a u e=0.3)
Cuando se gene an planes de uelo, necesi amos que la IA de uel a siemp e un JSON bien
es uc u ado con las ins ucciones exac as que el d on debe segui (po ejemplo, “despega a 3
me os”, “a anza 5 me os hacia el no e”, e c.). Un e o en esa sin axis pod ía esul a en
maniob as pelig osas o en la imposibilidad de lee las ó denes.
1. P ecisión écnica y o ma o JSON obliga o io
o Con empe a u e=0.3, el modelo iende a epe i ielmen e una plan illa del ipo:
JSON
{
" ype": " ligh Plan",
"waypoin s": [
{"ac ion": " akeo ", "al i ude": 3},
{"ac ion": "mo e", "di ec ion": "no h", "dis ance": 5}
]
}
De es a o ma, no in oduce a iaciones “c ea i as” innecesa ias como campos in en ados o mal
edac ados.
2. Segu idad ope a i a
o La capacidad de con ia en que el plan de uelo es á co ec amen e o ma eado
(y que los alo es numé icos ienen sen ido) educe eno memen e los iesgos
en la ejecución eal sob e el d on.
o Incluso un solo e o en la es uc u a JSON (p. ej., lla es al an es o comillas mal
ubicadas) pod ía hace que el se ido echace el comando o, peo aún, que
en íe ó denes inco ec as.
3. Meno ma gen de imp o isación
o Una empe a u a baja implica pocas a iaciones en el es ilo de las espues as,
p io izando la exac i ud y la cohe encia de los da os.
o El modelo se limi a casi a “ ellena ” los campos (acción, dis ancia, di ección,
al i ud) sin in en a opciones.
En conclusión, usa empe a u e=0.3 en es e con ex o ga an iza que el JSON esul an e sea lo
más es able y segu o posible, cumpliendo con la es uc u a espe ada y minimizando la
p obabilidad de e o es sin ác icos o semán icos.
In e az y Re oalimen ación Visual 36
7.3.3 Modo Con e sación ( empe a u e=0.7)
A di e encia, el modo con e sacional p e ende que el sis ema sea capaz de in e ac ua con el
usua io de mane a na u al y, dependiendo de la pe sonalidad elegida (G acioso, Bo de,
P egun ón, e c.), añadi ma ices humo ís icos, sa cás icos o inquisi i os.
• C ea i idad con olada:
o Con empe a u e=0.7, la IA man iene cohe encia al mismo iempo que in oduce
cie a a iedad lingüís ica (sin cae en ex a agancias).
• Respues a más “humana”:
o Se busca que el asis en e no con es e siemp e igual a “¿Cómo es ás?” o
“Mués ame el es ado del d on”, dando un g ado de escu a a la in e acción.
• Riesgos con olables:
o Aunque es un poco más al a que en el plan de uelo, 0.7 no suele da luga a
des a íos muy g andes. Aun así, se ges ionan los p omp s pa a eco da le al
modelo que debe man ene el con ex o de con ol de d ones.
7.3.4 Compa ación de Compo amien os
Aspec o
Plan de Vuelo
Con e sación
Tempe a u e
0.3
0.7
Obje i o
Máxima p ecisión en JSON
In e acción amena y lexible
Na u aleza del Ou pu
Es uc u a ígida (JSON, waypoin s)
Respues as en lenguaje na u al
Ven aja P incipal
Segu idad y consis encia
Ce canía y a iedad en la
espues a
Des en aja P incipal
Menos “c ea i idad”
Po encial de des ío / mensajes
menos exac os
Ejemplo de Uso
{"ac ion": "mo e",
"di ec ion":...}
“¡Cla o, a anzamos como
cohe e, capi án!”
Tabla 1: Compa ación de compo amien os según la empe a u a con igu ada
In e az y Re oalimen ación Visual 37
7.3.5 P uebas y Ajus es
A pesa de no habe lle ado a cabo p uebas exhaus i as o males, se ealiza on alidaciones y
expe imen aciones de o ma pun ual pa a comp oba el compo amien o del sis ema en
di e en es condiciones. Conc e amen e:
• Ve i icación manual de JSON: En dis in os comandos de uelo (despega , a anza ,
o a , e c.), se e isó que el JSON gene ado po la IA u iese la es uc u a co ec a y los
pa áme os espe ados.
• Ensayos de con e sación in o mal: Se in e ac uó con el sis ema en modo “g acioso”
y “p egun ón” pa a comp oba que espondía de o ma adecuada sin des ia se del
con ex o de con ol del d on.
• Obse aciones cuali a i as: No se egis a on anomalías g a es en el compo amien o
de la IA, y el sis ema in e p e ó la mayo ía de los comandos con p ecisión a la p ime a.
Aunque no se ealizó un análisis es adís ico exhaus i o, es os ensayos básicos sugie en que el
uso de empe a u e=0.3 pa a planes de uelo y empe a u e=0.7 pa a la con e sación cumple
con los obje i os de p ecisión y na u alidad, espec i amen e.
En o no de P uebas 38
8 En o no de P uebas
En es e capí ulo se desc iben las p uebas ealizadas pa a e i ica el co ec o uncionamien o de
la aplicación web y del sis ema de con ol po oz. Dado que el d on no se ha p obado ísicamen e
en uelo eal du an e es e pe íodo, odas las alidaciones se han lle ado a cabo median e el
simulado MAVLink, un en o no muy u ilizado en el ecosis ema DEE pa a ep oduci las
condiciones de uelo y eleme ía de o ma segu a.
8.1 En o no de P uebas
• Simulado MAVLink: Se ha empleado el simulado p opo cionado po el p opio DEE (o
bien un so wa e de simulación SITL) pa a ec ea los mensajes, las posiciones GPS y
las espues as ípicas de un d on en uelo.
• Equipo: Un o denado po á il con sis ema ope a i o (indica Windows/Linux/macOS),
con Py hon 3.8+ y Flask.
• Na egado p incipal: Google Ch ome ( e sión XX) en modo HTTPS pa a habili a la
cap u a de audio.
• Red local: Tan o el se ido Flask como el simulado se han ejecu ado en la misma ed
local, comunicándose a a és de MQTT y/o WebSocke s.
La con igu ación del simulado MAVLink se ealizó con o me a los u o iales acili ados en el
eposi o io del DEE, asignando al d on i ual los mismos pa áme os de i mwa e (PX4) que el
d on ísico pa a que la expe iencia de uelo simulado se ap oxime lo máximo posible a la eal.
8.2 Escena ios de P ueba
Con el p opósi o de aba ca las dis in as uncionalidades del sis ema, se han de inido a ios
escena ios de p ueba. Cada uno de ellos con empla la ac i ación de di e en es módulos y la
in e acción del usua io a a és de la web.
8.2.1 P uebas de Con ol Manual
1. Obje i o: Ve i ica que, median e los bo ones de la in e az, se puedan en ia comandos
básicos al d on (conec a , a ma , despega , a e iza , e c.) y que es os se e lejen
co ec amen e en el simulado MAVLink.
2. P ocedimien o:
1. Inicia el simulado MAVLink y a anca el se ido Flask.
2. Accede a la página p incipal (mo il.h ml).
3. Pulsa el bo ón de conexión pa a e i ica la espues a del sis ema (colo del
bo ón, mensajes de es ado).
4. O dena un despegue manual a 3 me os (bo ón “Despega ”).
In eg ación en el Ecosis ema DEE 45
11 In eg ación en el Ecosis ema DEE
La in eg ación del p oyec o en el Ecosis ema D one Enginee ing se ha ma e ializado median e
la c eación de un eposi o io en Gi Hub, en el que se ha alojado odo el código desa ollado, jun o
con una documen ación de allada y ecu sos mul imedia que acili an su comp ensión y u u a
ex ensión.
En el a chi o README.md se desc ibe de o ma concisa y cla a la uncionalidad p incipal de la
aplicación, explicando cómo és a pe mi e con ola el d on median e comandos de oz y plani ica
misiones a a és de ins ucciones en lenguaje na u al. Se de allan los pasos necesa ios pa a
ins ala la aplicación, que incluyen la con igu ación de Py hon, Flask, el b oke MQTT (con
ins ucciones pa a c ea un a chi o de con igu ación, simila a lo ealizado en o os p oyec os
colabo a i os del DEE) y la ins alación del modelo de econocimien o de oz Vosk. Además, se
incluyen dos ideos: uno en el que se mues a la aplicación en uncionamien o (demos ando el
con ol po oz, la plani icación de misiones y la in e acción a a és de las di e en es
pe sonalidades) y o o que o ece un eco ido de allado po el código, o ien ado a la pe sona
que se haga ca go del ele o y que necesi e in oduci se en el desa ollo.
La es uc u a del eposi o io se o ganiza de la siguien e o ma:
• Di ec o io Raíz: Con iene el a chi o p incipal (po ejemplo, un.py) que inicia la
aplicación median e Flask.
• Ca pe a app: Ag upa los módulos undamen ales del sis ema, ales como:
o audio_p ocesso .py: Ges ión de la cap u a, con e sión (WEBM a WAV) y
ansc ipción del audio.
o d on_con ols.py: Funciones pa a en ia comandos al d on median e el p o ocolo
MAVLink, u ilizando la lib e ía d onLink.
o plan_de_ uelo.py y VoiceCon olSe ice.py: Módulos enca gados de la
plani icación de misiones y del manejo de la lógica de es ados y pe sonalidades.
o ou es.py: De inición de los endpoin s y u as de la aplicación.
o Subdi ec o ios pa a ecu sos es á icos (imágenes, hojas de es ilo, sc ip s
Ja aSc ip ) y plan illas HTML.
• Ca pe a bin: Incluye he amien as necesa ias como el ejecu able de FFmpeg, usado
pa a la con e sión de audio.
• Ca pe a openssl: Con iene los ce i icados SSL (ce .pem y key.pem) que pe mi en el
despliegue de la aplicación en un en o no segu o (HTTPS).
• Ca pe a con el modelo de Vosk: Se incluye el modelo local pa a el econocimien o de
oz en español, lo que minimiza la dependencia de se icios ex e nos y educe la
la encia.
Es a es uc u a no solo acili a la in eg ación del nue o módulo de con ol po oz con el es o del
ecosis ema, sino que ambién pe mi e a u u os desa ollado es colabo a , comp ende y amplia
el p oyec o con ela i a acilidad.
El eposi o io se encuen a disponible en la siguien e URL:
h ps://gi hub.com/Vic o So olla/ ic o so olla-AI-D one-Voice-Con ol

In eg ación en el Ecosis ema DEE 46
Con es a in eg ación, el p oyec o en iquece el DEE al p opo ciona :
1. Un sis ema a anzado de con ol po oz, capaz de maneja dis in as pe sonalidades e
in e ac ua de o ma dinámica.
2. Compa ibilidad di ec a con la lógica exis en e de d onLink y la capa de eleme ía
(MQTT).
3. Un ejemplo pione o del uso de Flask en el DEE, inédi o has a aho a, que acili a la
adopción de amewo ks web den o del ecosis ema. Con ello se ab e la pue a a
colabo aciones u u as y a la c eación de nue as uncionalidades, ampliando las
posibilidades pa a la comunidad de desa ollado es y es udian es.
Así, la comunidad de la EETAC puede eu iliza la base del código y las ideas de es e módulo
pa a amplia o c ea nue os componen es, como ges iones más a anzadas de misiones, isión
po compu ado , u o os mé odos de in e acción (po ejemplo, econocimien o de ges os u
obs áculos, juegos in e ac i os con IA, e c.)
Conclusiones 47
12 Conclusiones
12.1 Obje i os Alcanzados
• Con ol po Voz e In eg ación IA: Se ha log ado un sis ema es able que ecibe
comandos de oz, los ansc ibe, los in e p e a median e OpenAI y los aduce en
ó denes conc e as de uelo.
• Modo Con e sacional y Modo Manual: El usua io puede al e na en e habla le al d on
o pulsa bo ones de con ol, ecibiendo e oalimen ación isual y audi i a.
• Plani icación de Vuelo: Pe mi e dic a u as comple as y isualiza una línea discon inua
en el mapa an es de ejecu a la misión.
• Pe sonalidades: Se han c eado dis in as ac i udes (“g acioso”, “bo de”, “p egun on”),
haciendo las p uebas más di e idas y demos aciones más a ac i as.
• Man enimien o del Con ex o: Aunque supuso un e o, la IA conse a el hilo de la
con e sación al een ia el his o ial de mensajes.
12.2 Plan de T abajo y Des iaciones
El plan inicial con emplaba di idi el sis ema en dos módulos p incipales (un se ido emo o
público y un clien e que co e en local jun o al d on), comunicándose po MQTT de o ma
anspa en e. Sin emba go, la implemen ación comple a de esa a qui ec u a di idida (que
pe mi ie a con ola el d on desde cualquie luga a a és de in e ne ) no se ha inalizado po
cues iones de iempo y la complejidad añadida de in eg a la IA en un en o no de p oducción.
Aun así, la pa e esencial (con ol del d on ía oz en la ed local, con su lógica de es ados e IA)
es á o almen e ope a i a.
12.3 Valo ación Pe sonal
La expe iencia de combina la obó ica (p og amación de d ones) con la in eligencia a i icial
(p ocesamien o de lenguaje na u al) ha sido muy en iquecedo a. El modo “P egun ón” y la
ges ión de es ados han supues o un desa ío g ande, pues e a necesa io coo dina pe iciones a
la IA con la con i mación de acciones en iempo eal. A pesa de las di icul ades, el esul ado
demues a que es ac ible con ola d ones con comandos de oz de mane a in ui i a, ab iendo
la pue a a aplicaciones inno ado as y adap ables a múl iples con ex os.
12.4 Líneas Fu u as
1. Di idi Se ido y Clien e median e MQTT
o Comple a la a qui ec u a p opues a pa a pode desplega el se ido Flask en
un hos ing público, mien as el PC local (en el campo de uelo) sólo ejecu a el
d onLink y se susc ibe a los mensajes. Es o pe mi i ía con ol emo o.
2. In eg ación con más Se icios IA
o Explo a o as APIs o modelos de lenguaje (locales o de e ce os) pa a educi
cos es o mejo a la la encia.
o Añadi mul ilingüismo (po ejemplo, inglés, ancés) pod ía se in e esan e pa a
usua ios in e nacionales.
Conclusiones 48
3. Mejo as en Pe sonalidades y P uebas de Es és
o Realiza p uebas con decenas de usua ios concu en es, midiendo la
escalabilidad de Flask y el consumo de okens en OpenAI.
o Añadi modos de pe sonalidad adicionales (p.ej., “Asis en e Educa i o con
p egun as a anzadas”, “Modo Humo Sa cás ico”…) pa a en iquece las
demos aciones.
4. P uebas en D on Real y Op imización
o Valida el compo amien o en condiciones eales de uelo, conside ando la
la encia de ed y la p ecisión eque ida en despegues/a e izajes.
o Op imiza la in e az pa a mayo esponsi idad y posibilidad de uso o line (con
un modelo local).
En de ini i a, se conside a que el p oyec o ha cumplido los obje i os p incipales y ab e
in e esan es u as de explo ación pa a quienes con inúen con la P og amación de D ones en la
EETAC o en o os en o nos académicos e indus iales.
REFERENCIAS 49
13 REFERENCIAS
[1] Flask. Flask Documen a ion. [En línea]. [Consul a: 15 sep iemb e 2024]. Disponible en:
h ps:// lask.palle sp ojec s.com/
[2] Vosk. O line Speech Recogni ion. [En línea]. [Consul a: 15 sep iemb e 2024]. Disponible en:
h ps://alphacephei.com/ osk/
[3] OpenAI. OpenAI API Documen a ion. [En línea]. [Consul a: 15 sep iemb e 2024]. Disponible
en: h ps://pla o m.openai.com/docs/
[4] Mosqui o. Eclipse Mosqui o – An Open Sou ce MQTT B oke . [En línea]. [Consul a: 16
sep iemb e 2024]. Disponible en: h ps://mosqui o.o g/
[5] Lea le . Lea le .js Documen a ion. [En línea]. [Consul a: 16 sep iemb e 2024]. Disponible en:
h ps://lea le js.com/
[6] D oneEnginee ingEcosys emDEE. EETAC – Gi Hub Reposi o y. [En línea]. [Consul a: 20
sep iemb e 2024]. Disponible en:
h ps://gi hub.com/d onsEETAC/D oneEnginee ingEcosys emDEE
[7] P og amacion-de-d ones. EETAC – Gi Hub Reposi o y. [En línea]. [Consul a: 20 sep iemb e
2024]. Disponible en: h ps://gi hub.com/d onsEETAC/P og amacion-de-d ones
[8] Py hon. Py hon 3.8+ O icial Documen a ion. [En línea]. [Consul a: 20 sep iemb e 2024].
Disponible en: h ps://docs.py hon.o g/3/
[9] OpenSSL. OpenSSL Documen a ion. [En línea]. [Consul a: 20 sep iemb e 2024]. Disponible
en: h ps://www.openssl.o g/docs/
Anexo 50
14 Anexo
14.1 Diag ama de lujo ( lowcha )
Figu a 11.A: Lógica de es ados y ansiciones.