desarrollo de un sistema de control para veh culos aereos...

8
Desarrollo de un sistema de control para veh´ ıculos a´ ereos no tripulados mediante comandos de voz en castellano ´ Angel Rafael Rubio Fern´ andez - Escuela de Ingenier´ ıas Industriales, Universidad de Extremadura [email protected] Jos´ e Luis Herrero Agust´ ın - Departamento de Sistemas Inform´ aticos y Telem´ aticos, Universidad de Extremadura [email protected] Jes´ us Lozano Rogado - Departamento de Ingenier´ ıa El´ ectrica, Electr´ onica y Autom´ atica, Universidad de Extremadura [email protected] Resumen El uso de veh´ ıculos a´ ereos no tripulados se ha ex- tendido de forma considerable en los ´ ultimos a˜ nos tanto en el plano recreativo, cient´ ıfico como cine- matogr´afico. Esta expansi´on ha motivado el desa- rrollo de nuevos modos de control que faciliten su manejo y lo adapten a cada situaci´on. En este tra- bajo se presenta un sistema de control basado en el reconocimiento de voz. Las principales ventajas del dise˜ no que se propone son: la utilizaci´on de he- rramientas de c´odigo libre, la capacidad de perso- nalizaci´on, la elecci´ on del castellano como lengua de reconocimiento y la portabilidad. Palabras clave: Reconocimiento de voz, UAV, CMU Sphinx4, MAVLink, Raspberry Pi. 1. INTRODUCCI ´ ON Las pr´ acticas con veh´ ıculos a´ ereos no tripulados o UAVs (Unmanned Aerial Vehicles ) han aumen- tado de forma considerable en los ´ ultimos a˜ nos, evolucionando de un uso exclusivamente militar a modelos de menor tama˜ no, coste y variedad de usos[1]. Esto ha supuesto una revoluci´ on en tanto que se ha producido un salto del espacio bidimen- sional de los veh´ ıculos no tripulados tradicionales al espacio tridimensional con los veh´ ıculos a´ ereos no tripulados. El principal motor de esta evoluci´ on ha sido una sucesi´ on de avances en diferentes campos de la in- genier´ ıa, como son el desarrollo de la fibra de car- bono, la aparici´ on de las bater´ ıas de pol´ ımero de litio, motores brushless y especialmente de los sen- sores de medici´ on inercial y GPS[2]. Como consecuencia, diferentes sectores han bus- cado nuevas aplicaciones, desde el plano ci- nematogr´ afico, con capacidad para realizar to- mas a gran altura y sin necesidad de equipos as sofisticados[3], el reparto de paquetes (e.g. Amazon PrimeAir)[4], la medici´ on de la cali- dad del aire[5], ingenier´ ıa civil[6], o el pilotaje acrob´ atico[7], entre muchas otras aplicaciones. Esta diversificaci´ on de usos ha dado lugar a dos nuevas necesidades: el desarrollo de una normativa[8] que regule las pr´ acticas con estos veh´ ıculos y la aparici´ on de nuevos y m´ as intui- tivos modos de control que faciliten su manejo y lo adapten a cada situaci´ on, como el uso de gestos o comandos de voz[9]. El control por voz, en lineas generales, supone un medio de control realmente interesante por dos razones principales[10]. En primer lugar, porque sus elementos de trabajo son conocidos por la ma- yor´ ıa de usuarios: comandos de voz. Palabras co- mo arriba, despegue o derecha son conocidas por la totalidad de hablantes de un idioma, y por tan- to f´ acilmente reconocibles y recordables. En se- gundo lugar, porque facilita el control de siste- mas electr´ onicos en condiciones en que las manos est´ en ocupadas, o bien la movilidad o visi´ on est´ en reducidas[11]. Derivado de esto se observa un hecho: el desarrollo de cualquier interfaz de interacci´ on con el usuario suele incluir en una de sus fases avanzadas un sis- tema de reconocimiento de voz[12]. Esto se pue- de observar en la aparici´ on de asistentes m´ oviles como Siri, de Apple Inc., que reduce significati- vamente el tiempo de navegaci´ on hasta activar la funci´ on deseada[13]; el control por voz en au- tom´ oviles como el Ford SYNC 3 [14], que reduce las distracciones en el conductor; o Amazon Echo junto con Amazon Alexa [15], un sistema que persi- gue el control de herramientas dom´ oticas, m´ usica o llamadas con la voz como ´ unica herramienta de interacci´ on. Una vez se ha comprendido la evoluci´ on de los veh´ ıculos a´ ereos no tripulados y de los sistemas de reconocimiento de voz, parece l´ ogico pensar en las m´ ultiples aplicaciones que podr´ ıa tener un sis- tema de reconocimiento de voz en el control de estos veh´ ıculos. Actualmente no existe un fuerte desarrollo en este aspecto, al menos en el ´ ambito comercial. Actas de las XXXIX Jornadas de Automática, Badajoz, 5-7 de Septiembre de 2018 830

Upload: others

Post on 04-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desarrollo de un sistema de control para veh culos aereos ...eii.unex.es/ja2018/actas/JA2018_120.pdf · veh culos aereos no tripulados y de los sistemas de reconocimiento de voz,

Desarrollo de un sistema de control para vehıculos aereos notripulados mediante comandos de voz en castellano

Angel Rafael Rubio Fernandez - Escuela de Ingenierıas Industriales, Universidad de [email protected]

Jose Luis Herrero Agustın - Departamento de Sistemas Informaticos y Telematicos, Universidad de [email protected]

Jesus Lozano Rogado - Departamento de Ingenierıa Electrica, Electronica y Automatica, Universidad de [email protected]

Resumen

El uso de vehıculos aereos no tripulados se ha ex-tendido de forma considerable en los ultimos anostanto en el plano recreativo, cientıfico como cine-matografico. Esta expansion ha motivado el desa-rrollo de nuevos modos de control que faciliten sumanejo y lo adapten a cada situacion. En este tra-bajo se presenta un sistema de control basado enel reconocimiento de voz. Las principales ventajasdel diseno que se propone son: la utilizacion de he-rramientas de codigo libre, la capacidad de perso-nalizacion, la eleccion del castellano como lenguade reconocimiento y la portabilidad.

Palabras clave: Reconocimiento de voz, UAV,CMU Sphinx4, MAVLink, Raspberry Pi.

1. INTRODUCCION

Las practicas con vehıculos aereos no tripuladoso UAVs (Unmanned Aerial Vehicles) han aumen-tado de forma considerable en los ultimos anos,evolucionando de un uso exclusivamente militara modelos de menor tamano, coste y variedad deusos[1]. Esto ha supuesto una revolucion en tantoque se ha producido un salto del espacio bidimen-sional de los vehıculos no tripulados tradicionalesal espacio tridimensional con los vehıculos aereosno tripulados.

El principal motor de esta evolucion ha sido unasucesion de avances en diferentes campos de la in-genierıa, como son el desarrollo de la fibra de car-bono, la aparicion de las baterıas de polımero delitio, motores brushless y especialmente de los sen-sores de medicion inercial y GPS[2].

Como consecuencia, diferentes sectores han bus-cado nuevas aplicaciones, desde el plano ci-nematografico, con capacidad para realizar to-mas a gran altura y sin necesidad de equiposmas sofisticados[3], el reparto de paquetes (e.g.Amazon PrimeAir)[4], la medicion de la cali-dad del aire[5], ingenierıa civil[6], o el pilotaje

acrobatico[7], entre muchas otras aplicaciones.

Esta diversificacion de usos ha dado lugar ados nuevas necesidades: el desarrollo de unanormativa[8] que regule las practicas con estosvehıculos y la aparicion de nuevos y mas intui-tivos modos de control que faciliten su manejo ylo adapten a cada situacion, como el uso de gestoso comandos de voz[9].

El control por voz, en lineas generales, supone unmedio de control realmente interesante por dosrazones principales[10]. En primer lugar, porquesus elementos de trabajo son conocidos por la ma-yorıa de usuarios: comandos de voz. Palabras co-mo arriba, despegue o derecha son conocidas porla totalidad de hablantes de un idioma, y por tan-to facilmente reconocibles y recordables. En se-gundo lugar, porque facilita el control de siste-mas electronicos en condiciones en que las manosesten ocupadas, o bien la movilidad o vision estenreducidas[11].

Derivado de esto se observa un hecho: el desarrollode cualquier interfaz de interaccion con el usuariosuele incluir en una de sus fases avanzadas un sis-tema de reconocimiento de voz[12]. Esto se pue-de observar en la aparicion de asistentes movilescomo Siri, de Apple Inc., que reduce significati-vamente el tiempo de navegacion hasta activarla funcion deseada[13]; el control por voz en au-tomoviles como el Ford SYNC 3 [14], que reducelas distracciones en el conductor; o Amazon Echojunto con Amazon Alexa[15], un sistema que persi-gue el control de herramientas domoticas, musicao llamadas con la voz como unica herramienta deinteraccion.

Una vez se ha comprendido la evolucion de losvehıculos aereos no tripulados y de los sistemasde reconocimiento de voz, parece logico pensar enlas multiples aplicaciones que podrıa tener un sis-tema de reconocimiento de voz en el control deestos vehıculos. Actualmente no existe un fuertedesarrollo en este aspecto, al menos en el ambitocomercial.

Actas de las XXXIX Jornadas de Automática, Badajoz, 5-7 de Septiembre de 2018

830

Page 2: Desarrollo de un sistema de control para veh culos aereos ...eii.unex.es/ja2018/actas/JA2018_120.pdf · veh culos aereos no tripulados y de los sistemas de reconocimiento de voz,

La mayorıa de soluciones que se pueden encon-trar poseen una caracterıstica en comun: requie-ren de herramientas muy ligadas a modelos con-cretos de UAV o de interfaz de reconocimiento.Un ejemplo es el sistema de control por ternas decomandos what3words[16][17], el cual requiere deAmazon Alexa, y por tanto no solo necesita unaconexion a internet sino que ademas no posee unnucleo de reconocimiento modificable y necesariopara disenos mas especıficos. Otras implementa-ciones conocidas se han realizado aprovechandolos entornos de desarrollo para UAVs de marcaDJITM[18], lo cual restringe los disenos a una so-la marca, que aun siendo la punta de lanza en loque a modelos comerciales respecta, esta limita-da a los modelos que esta fabrica, incompatiblescon el resto de alternativas incluidas las de accesolibre.

Otra caracterıstica comun de la mayorıa de estossistemas es la lengua de reconocimiento: el ingles.La popularizacion de los UAVs en los paıses hispa-nohablantes hace mas que interesante la propuestade un sistema de reconocimiento de voz en caste-llano.

La referencia mas conocida en lo que respecta aun vehıculo aereo no tripulado controlado por co-mandos en castellano es el Sky Rover Voice Com-mand [19], el cual, si bien cuenta con una camara yun juego de comandos bastante completo, su redu-cido tamano, calidad de la camara, poca robustezy baja autonomıa lo descartan de cualquier apli-cacion profesional.

Es tal vez en la practica deportiva donde esta nece-sidad se hace mayor: donde el usuario pueda prac-ticar su actividad mientras es grabado por un UAVsin ocupar sus manos, o en trabajos topograficoso agrıcolas, donde el tecnico pueda realizar el es-tudio o realizar una captura de la superficie ba-rriendo un terreno sin necesidad de tener conoci-mientos de pilotaje. Se busca por ultimo reduciral maximo el tamano del dispositivo que reconoz-ca los comandos, integrandolo en un dispositivopequeno, ligero y con suficiente autonomıa.

La motivacion es, por tanto, alcanzar un disenoque cumpla las siguientes especificaciones:

1. La utilizacion de herramientas de codigo libre,que reduzcan el coste de la implementacionfinal y la hagan adaptable a diferentes fines.

2. El uso del castellano como lengua de reconoci-miento, suponiendo una novedad en el controlde UAVs basado en herramientas libres.

3. La posibilidad de integrarse en sistemas em-potrados, de forma que el usuario no requiera

de un ordenador, de conexion a Internet o desoftware comercial auxiliar.

Sobre estos objetivos, en el presente artıculo sepresenta la estructura general del sistema de con-trol de UAVs a traves de ordenes de voz, el con-junto de comandos, las diferentes tecnologıas uti-lizadas en el desarrollo de la propuesta. Posterior-mente, se describen los componentes del sistemay se explica la utilizacion de simuladores de vuelopara la fase de prueba e implementacion en UAVs.Finalmente se discuten las conclusiones y se pro-ponen algunos trabajos futuros

2. MATERIALES Y METODOS

2.1. Estructura general

Teniendo en cuenta las consideraciones expuestasen el apartado anterior se ha disenado e imple-mentado un sistema de reconocimiento de voz li-bre, personalizable y en espanol. El sistema siguela estructura que se muestra en la Figura 1.

Vehículo aéreo

no tripuladoReconocimiento

de voz

Unidad

de control

Audio

Figura 1: Estructura del sistema de control

En primer lugar, es necesario que la computadorao sistema empotrado reciba las senales de audioprocedentes de un microfono. Estas senales sonprocesadas por un sistema de reconocimiento devoz que compara las senales recibidas con un mo-delo, y en caso de coincidir con alguna de las es-tructuras sintacticas existentes en el modelo, envıaun mensaje a la unidad de control.

La unidad de control contiene una maquina de es-tados finitos que almacena en todo momento elestado del UAV. Puede darse el caso de que sedesee despegar el vehıculo sin que este se encuen-tre todavıa con los motores armados, o que se debaesperar a que conmute a un determinado modo devuelo, por ejemplo.

La unidad de control, partiendo del estado delvehıculo y de los comandos recibidos debe poderenviar comandos de control reconocibles por este,ası como recibir comandos de estado.

2.2. Comandos de voz

El primer paso a la hora de disenar un modelo dereconocimiento de voz es establecer que conjuntode comandos se desea reconocer. En funcion deestos comandos, se adaptaran las tecnologıas uti-

831

Page 3: Desarrollo de un sistema de control para veh culos aereos ...eii.unex.es/ja2018/actas/JA2018_120.pdf · veh culos aereos no tripulados y de los sistemas de reconocimiento de voz,

lizadas para darles soporte. El desarrollo de estastecnologıas sera el objeto de la siguiente seccion.

Se muestra en el Cuadro 1 el conjunto de coman-dos utilizados:

Cuadro 1: Conjunto de comandos.

Nombre DescripcionArmar Arma los motores

Desarmar Desarma los motoresDespegar Despega el vehıculoAterrizar Aterriza el vehıculo

Subir Eleva el vehıculoBajar Desciende el vehıculoParar Detiene el vehıculo en el aire

Giro Izq. Gira el vehıculo a la izquierdaGiro Der. Gira el vehıculo a la derechaIzquierda Desplaza el vehıculo a la izquierdaDerecha Desplaza el vehıculo a la derechaAdelante Desplaza el vehıculo hacia adelante

Atras Desplaza el vehıculo hacia atrasMas Aumenta la velocidad de despl.

Menos Disminuye la velocidad de despl.

Se ha identificado cada comando por un nombrecomun, aunque como se explicara mas tarde, uncomando puede ser llamado por diferentes locu-ciones o expresiones.

3. DESARROLLO DE LAPROPUESTA

Como se ha comentado al comienzo, el sistema secompone de diferentes tecnologıas que actuan deforma conjunta. Se ha tratado de utilizar tecno-logıas libres y gratuitas, consiguiendo ası reduciral maximo el coste final del producto.

A continuacion se explicara como se han aplicadolas diferentes tecnologıas para disenar el sistema.Se muestran en la Figura 2 las tecnologıas utiliza-das.

1 CMU Sphinx4

+ VoxForge2 Java 5 Ardupilot

6 SITL

+

MAVProxy

3 MAVLink

4 Raspberry Pi + Raspbian

Figura 2: Resumen de las tecnologıas utilizadas

3.1. Reconocimiento de voz

El bloque principal del sistema de reconocimientode voz es la biblioteca CMU Sphinx4 [20][21], desa-rrollada por la Carnegie Mellon University, Sun

Microsystems Laboratories y el MERL. Se ha es-cogido por su modularidad y flexibilidad, por sercompatible con multiples modelos de lenguaje ypor estar desarrollada por completo en Java, locual le aporta la portabilidad que se requiere.

El reconocimiento esta basado en Modelos Ocultosde Markov o HMM [22]. En este tipo de modelosse describen una serie de estados con una deter-minada probabilidad de evolucionar entre ellos.

CMU Sphinx4 solo requiere por parte del progra-mador tres elementos para poder realizar un reco-nocimiento de voz[23]:

En primer lugar, un modelo acustico, el cual esespecıfico de cada lenguaje o dialecto y ha sidogenerado como resultado de un proceso de entre-mamiento.

En segundo lugar, un diccionario fonetico, el cualcontiene la relacion entre cada una de las pala-bras a reconocer y los sonidos o fonemas que locomponen.

En tercer lugar, y de especial importancia en es-te diseno, un modelo de lenguaje. Los modelos delenguaje determinan que estructura sintactica de-be seguir una oracion a reconocer. De esta forma,el sistema de reconocimiento evalua si el conjuntode palabras reconocidas coincide con alguna de lasestructuras del modelo de lenguaje.

El modelo acustico utilizado ha sido VoxFor-ge[24][25], en su version de 2016 compatible conSphinx4.

Se ha utilizado el diccionario fonetico que pro-porciona VoxForge, anadiendo aquellas palabrasque no se encontraran en el diccionario original.Se muestra en el Cuadro 2 una relacion entre laspalabras principales utilizadas en el reconocimien-to y su transcripcion fonetica. Debido a la escasadocumentacion encontrada que relacionara los fo-nemas y consonantes con su transcripcion corres-pondiente, se ha trabajado tomando del dicciona-rio fonetico ejemplos de palabras que contuvieranlos fonemas a utilizar.

El modelo de lenguaje se ha implementado utili-zando el formato JSGF o JSpeech Grammar For-mat [26], el cual permite implementar diagramassintacticos y modelos de lenguaje.

La Figura 3 expone el diagrama sintactico generaldel modelo en forma de diagrama de Conway [27].

Por otro lado, en la Figura 4 se muestra un ejemplode comando implementado en diagrama sintactico.Como se puede observar, tanto la locucion ”girarizquierda” como ”giro a la izquierda” serıan reco-nocidas como locuciones validas. No serıan validaslas expresiones ”rotar a la izquierda” o ”girar ha-

832

Page 4: Desarrollo de un sistema de control para veh culos aereos ...eii.unex.es/ja2018/actas/JA2018_120.pdf · veh culos aereos no tripulados y de los sistemas de reconocimiento de voz,

Cuadro 2: Algunas de las transcripciones utiliza-das.

Palabra TranscripcionArmar a r m a r

Desarmar d e s a r m a rDespegar d e s p e g a rAterrizar a t e rr i z a r

Subir s u b i rBajar b a j a rParar p a r a rGiro j i r o

Derecha d e r e ch aIzquierda i z k i e r d aAdelante a d e l a n t e

Atras a t r a sMas m a s

Menos m e n o s

comando

motores

despegue

aterrizaje

altitud

parada

giro

lateral

longitudinal

cantidad

Figura 3: Diagrama sintactico general

cia la izquierda”, al no coincidir con la estructurasintactica definida. La forma de operar es equiva-lente para el resto de comandos.

giro

gira

girar

giro

girea la

izquierda

derecha

Figura 4: Diagrama sintactico de un comando deltipo giro

Con los tres elementos necesarios para el reconoci-miento se ha configurado la biblioteca Sphinx4 enmodo de reconocimiento continuo click to talk [23],en el cual, el programador selecciona el momentoen que comienza el reconocimiento, y el sistemadetecta cuando se produce un silencio en la locu-cion para finalizar el proceso de reconocimiento.

3.2. Unidad de control

La unidad de control tiene tres funciones funda-mentales:

En primer lugar, accionar el sistema de recono-cimiento de voz, que en caso de devolver un re-sultado valido (coincidente con alguna estructuradel modelo de lenguaje), lo almacenarıa en unacadena de caracteres, denominada utterance o de-claracion.

En segundo lugar, comprobar las cadenas devuel-tas por el sistema de reconocimiento de voz conuna tabla similar a la del Cuadro 1 para enviar alUAV los comandos que correspondan.

Por ultimo, comprobar el estado del UAV, a finde controlar el flujo de mensajes y evitar que seenvıe un comando determinado aun cuando no secumplan las condiciones adecuadas para enviarse.

El diagrama de flujo de la unidad de control semuestra en la Figura 5.

inicio

Activa

reconocimiento

¿Resultado

válido?

Mensaje de

error

Comprobar declaración

en la tabla y ejecutar

acción correspondiente

No

Figura 5: Diagrama de flujo de la unidad de con-trol

Del diagrama de flujo resulta importante prestarespecial atencion a la comprobacion de cada co-mando y ejecucion de la accion correspondiente.

Como se desarrollara mas a fondo en el siguienteapartado ”Comunicacion con el vehıculo”, cadaUAV cuenta con dos variables de estado de es-pecial importancia: la que indica si se encuentraarmado, es decir, si los motores se encuentran enmovimiento; y la que indica el modo de vuelo.

El modo de vuelo requerido en esta implementa-cion para despegar y mover el vehıculo es el modoguiado, el cual necesita de GPS y funciona dandoordenes de forma periodica para controlar el es-tado del UAV en cada momento: una vez terminauna accion permanece quieto hasta que recibe unanueva orden.

Por tanto, se debe comprobar antes de ejecutar

833

Page 5: Desarrollo de un sistema de control para veh culos aereos ...eii.unex.es/ja2018/actas/JA2018_120.pdf · veh culos aereos no tripulados y de los sistemas de reconocimiento de voz,

cualquier orden que el UAV se encuentra armadoy en modo guiado. Por motivos de seguridad, elproceso de armado solo se puede realizar medianteel comando ”armar” y nunca de forma automaticapor medio de la unidad de control. En el caso delmodo guiado, en caso de requerirse este, si el UAVno se encuentra en dicho modo, se enviarıa la or-den de cambiar de modo y se esperarıa al cambiopara ejecutar la orden correspondiente.

Se muestra en la Figura 6 el diagrama de flujo deeste bloque.

Comprobar declaración

y ejecutar acción corresp.

¿Se encuentra

armado?

¿Se encuentra

en modo guiado?

Ejecutar acción

inicio

Cambiar a

modo guiado

Mensaje de

error

Figura 6: Diagrama de flujo del bloque de com-probacion

Toda la unidad de control ha sido programadausando el entorno de desarrollo Java, puesto quese trata de un entorno que cumple con dos especifi-caciones importantes: ser compatible con Sphinx4y ser portable a diferentes entornos de ejecucion.

3.3. Comunicacion con el UAV

A la hora de comunicarse con el UAV se han es-tablecido dos canales posibles. En primer lugar,conexion Serie por medio de la biblioteca rxtx-comm[28]; y en segundo lugar, conexion TCP/IPpor medio de la clase Socket de Java[29].

El protocolo de comunicacion utilizado es MA-VLink [30], un protocolo que opera en la capa Apli-cacion del modelo OSI y por tanto se puede uti-lizar independientemente del canal. La principalventaja de este protocolo de comunicacion es sucompatibilidad con una gran cantidad de proyec-tos libres para el control de vehıculos aereos notripulados. Se destacan Ardupilot y MAVProxy alhaber sido utilizados como firmware del UAV yen la simulacion, respectivamente. Se muestra laestructura de un paquete MAVLink en la Figura7. Se puede encontrar una descripcion de los dife-rentes campos en [30].

MAVLink es un protocolo orientado a mensajes,por lo que los campos del payload seran interpre-tados por el receptor del mensaje dependiendo del

Trama MAVLink — 8-263 bytes

STX LEN SEQ SYS COMP MSG PAYLOAD CKA CKB

Figura 7: Estructura de un paquete MAVLink

tipo de mensaje que se envıe. La referencia ofi-cial de mensajes MAVLink se encuentra en [31].Para armar, desarmar, despegar, aterrizar y pa-sar a modo guiado se utilizaran mensajes especıfi-cos preestablecidos para cada opcion, los cuales semuestran en el Cuadro 3.

Cuadro 3: Mensajes MAVLink especıficos

Mensaje Id ParametroArmar 400 1

Desarmar 400 0Despegar 22 Altura InicialAterrizar 21 0

Modo guiado 11 4 → Id. del modo guiado

El estado del UAV se ha capturado a partir delmensaje Heartbeat que este envıa a una frecuen-cia de 1Hz. El modo de vuelo esta contenido enel campo custom mode del mensaje, mientras queel estado de armado esta contenido en el campobase mode. El indicador de modo guiado es igual a11, mientras que el indicador de que se encuentraarmado es igual a 217. Comparando los camposcon estos valores se puede ejecutar la secuenciamostrada en la Figura 6.

El movimiento del UAV se ha controlado me-diante mensajes especıficos del modo guiado. Es-tos comandos tienen una caracterıstica impor-tante: no anulan los mensajes enviados por unmando, de forma, que en caso de producirsealgun error, se puede tomar el control de es-te mediante un mando. Los mensajes utilizadosson SET POSITION TARGET LOCAL NED yMAV CONDITION YAW, para desplazamiento ygiro, respectivamente, los cuales se encuentrandescritos en la documentacion oficial[32].

Para el desplazamiento se ha establecido una ve-locidad base para cada eje de coordenadas de 3m/s, siendo la velocidad maxima de 5 m/s y lamınima de 1 m/s. Se puede aumentar o disminuirla velocidad en el ultimo eje controlado mediantelos comandos ”mas” y ”menos”, respectivamente.Tal y como se especifica en [32], este mensaje seenvıa a una frecuencia de 1Hz, de forma que si elUAV no recibe un mensaje de desplazamiento enmenos de 1s, permanecera quieto en el aire. Estose ha conseguido implementando un Java Thread

834

Page 6: Desarrollo de un sistema de control para veh culos aereos ...eii.unex.es/ja2018/actas/JA2018_120.pdf · veh culos aereos no tripulados y de los sistemas de reconocimiento de voz,

[33] que llama al comando de desplazamiento adicha frecuencia.

El comando de giro permite girar un determinadoangulo en el sentido que se indica. Si se envıa es-te mensaje a una determinada frecuencia, el UAVpuede rotar a velocidad constante. Se ha envia-do un mensaje cada 100 ms, con parametro 1o deforma que la velocidad angular es de 10 o/s.

El comando ”parar” fija a 0 todas las velocidadesantes configuradas hasta que se llame a un nuevocomando de desplazamiento o giro.

3.4. Sistema empotrado

Una vez se ha realizado el diseno completo delsistema, se ha implementado en un sistema empo-trado. Se ha utilizado una placa Raspberry Pi 3Model B por su altas prestaciones y reducido ta-mano, precio y consumo[34]. No obstante, puedeser implementado en placas similares como Bana-na Pi o Beaglebone. El sistema operativo utilizadoha sido Raspbian, una distribucion de Debian pa-ra Rasperry Pi y similares. La aplicacion Java seha configurado para ejecutarse al inicio, de formaque una vez que el sistema operativo se inicializa,la aplicacion comienza a ejecutarse.

Puesto que la Rasperry Pi no cuenta con una en-trada de audio, se ha conectado al puerto USB deesta una tarjeta de sonido C-Media CM108 [35].A la entrada de audio de la tarjeta de sonido seha conectado el microfono de unos auriculares dediadema Sennheiser PC 3 Chat.

4. RESULTADOS

4.1. Simulacion

Para comprobar el correcto funcionamiento del sis-tema se ha utilizado el simulador SITL, el cual,junto a la interfaz de de MAVLink MAVProxy,permiten simular un entorno en condiciones equi-valentes a las de un UAV[37]. El sistema se ha co-nectado mediante una conexion TCP/IP. Se mues-tra en la Figura 8 una vista del simulador conec-tado al sistema.

4.2. Implementacion para UAV

Una vez se ha comprobado el correcto reconoci-miento de los diferentes comandos y su respuestaen el simulador, se ha comunicado por conexionSerie con un UAV mediante una antena de tele-metrıa USB de 915MHz. La controladora del UAVha sido una Pixhawk PX4 c©[38] con firmware Ar-dupilot.

Figura 8: Vista del simulador SITL con MAV-Proxy

4.3. Datos obtenidos

Tanto en la simulacion como en la prueba conUAV, el sistema responde correctamente a los co-mandos de voz.

Las velocidades de rotacion y traslacion, medidasen el simulador, coinciden con las esperadas.

Se aprecia un pequeno tiempo de respuesta entreque el UAV recibe una orden de movimiento y laejecucion de este. Se verifica que las ordenes devoz pueden ser anuladas por medio del mando.

5. CONCLUSIONES YTRABAJOS FUTUROS

Se ha logrado disenar e implementar un sistemade control para vehıculos aereos no tripulados me-diante comandos de voz en castellano. El conjun-to de tecnologıas software utilizadas ha sido libre,gratuito y abierto. Se ha logrado integrar el siste-ma en una plataforma de reducido tamano, precio,y sin necesidad de requerir conexion a Internet.

No obstante todavıa se presentan tres retos fun-damentales a alcanzar.

El primero de ellos es conseguir un sistema robus-to en condiciones de ruido. Las practicas se hanrealizado en entornos con bajo nivel de ruido y auna distancia del UAV suficiente como para que elruido de las helices no dificulte el reconocimientode los comandos.

El segundo es mejorar la interfaz de interaccioncon el usuario, anadiendo verificaciones verbalesmediante sistemas text-to-speech que devuelvanmensajes de voz indicando la orden a ejecutar ocualquier alerta de importancia. En esta linea, in-cluir un sistema que permita cancelar la ultimaorden en caso de no haberse reconocido correcta-mente.

835

Page 7: Desarrollo de un sistema de control para veh culos aereos ...eii.unex.es/ja2018/actas/JA2018_120.pdf · veh culos aereos no tripulados y de los sistemas de reconocimiento de voz,

El tercero y ultimo es portar este diseno a telefo-nos moviles, aprovechando que la implementacionse ha realizado ıntegramente en Java, para poderacercarlo a mas usuarios y reducir mas aun el costefinal de este.

Agradecimientos

Este trabajo ha sido financiado con el proyectoNanosen-AQM (SOE2/P1/E0569) del programaSUDOE de la UE.

English summary

Development of a control system forunmanned aerial vehicles by voicecommands in Spanish

Abstract

The use of unmanned aerial vehicles has been ex-tended significantly in the recreational, scientificand cinematographic frame. This expansion hasled to the development of new control modes whichmake handling easier and which can be adapted toeach situation. This paper introduces a voice recog-nition control system. The main advantages thisdesign proposes are: the use of open-source tools,its customization capabilities, the election of spa-nish as the recognition language and the possibleimplementation on embedded systems.

Keywords: Voice recognition, UAV, CMU Sp-hinx4, MAVLink, Raspberry Pi.

Referencias

[1] Fernandez Barrero, M. A. (2018). “Periodis-mo y drones. Retos y oportunidades del usode drones para la narracion informativa enEspana.“ Doxa Comunicacion, 26, pp 35-58.

[2] Yang, H., Lee, Y., Jeon, SY. et al. (2017)”Multi-rotor drone tutorial: systems, mecha-nics, control and state estimation.” Intel ServRobotics, 10, p 79.

[3] Fleureau J., Galvane, Q, Tariolle, FL. y Gui-llotel, P. (2016). ”Generic Drone ControlPlatform for Autonomous Capture of Cine-ma Scenes.”pp 35-40.

[4] Singireddy S.R.R., Daim T.U. (2018) ”Tech-nology Roadmap: Drone Delivery – AmazonPrime Air.”. Infrastructure and TechnologyManagement. Innovation, Technology, andKnowledge Management. Springer, Cham

[5] Chen J., Wang S., Qu X., Yi W. (2018) ”AModelling Framework of Drone Deploymentfor Monitoring Air Pollution from Ships.”.Intelligent Interactive Multimedia Systemsand Services. Smart Innovation, Systems andTechnologies, vol 98. Springer, Cham

[6] Oromi Fragoso P., Fernandez Archilla A.(2016) ”Uso de drones en ingenierıa civil: le-vantamientos topograficos.”. Revista del Co-legio de Ingenieros Tecnicos de Obras Publi-cas, vol. 407, pp 24-28

[7] Kim S.J., Jeong Y., Park S., Ryu K., OhG. (2018) ”A Survey of Drone use for En-tertainment and AVR (Augmented and Vir-tual Reality).” Augmented Reality and Vir-tual Reality. Progress in IS. Springer, Cham

[8] Lopez Herrera J. (2015) ”La normativa sobrelos drones.” Mundo del agronomo: la revistadel Colegio Oficial de Ingenieros Agronomosde Centro y Canarias, vol. 30, pp 10-12

[9] Peshkova E., Hitz M., Ahlstrom D. (2017)”Exploring User-Defined Gestures and VoiceCommands to Control an Unmanned AerialVehicle.” Intelligent Technologies for Interac-tive Entertainment. INTETAIN 2016 2016.Lecture Notes of the Institute for Compu-ter Sciences, Social Informatics and Telecom-munications Engineering, vol 178. Springer,Cham

[10] Speicher, S. and Preuß, S. (2004). “Voice-Controlled Ubiquitous Computing“, Procee-dings of the International Conference on Wi-reless Networks, ICWN, vol. 1, pp 116-122.

[11] D. Boucha, A. Amiri and D. Chogueur, “Con-trolling electronic devices remotely by voiceand brain waves.“ 2017 International Confe-rence on Mathematics and Information Tech-nology (ICMIT), Adrar, 2017, pp. 38-42.

[12] Bohouta G., Z Kepuska V. (2018) ”Next-Generation of Virtual Personal Assistants(Microsoft Cortana, Apple Siri, Amazon Ale-xa and Google Home)”The 8th IEEE An-nual Computing and Communication Works-hop and Conference

[13] Bellegarda J.R. (2014) “Spoken LanguageUnderstanding for Natural Interaction: TheSiri Experience.“ Natural Interaction withRobots, Knowbots and Smartphones. Sprin-ger, New York, NY

[14] ”Ford SYNC 3 con AppLink”, Ford.es. Dis-ponible en: https://goo.gl/7WdJiC. [Acceso:18- Jun- 2018].

836

Page 8: Desarrollo de un sistema de control para veh culos aereos ...eii.unex.es/ja2018/actas/JA2018_120.pdf · veh culos aereos no tripulados y de los sistemas de reconocimiento de voz,

[15] ”What Is Alexa? What Is the Amazon Echo,and Should You Get O”, Wirecutter: Reviewsfor the Real World, 2018. [Online]. Disponibleen: https://goo.gl/V6ds35. [Acceso: 18- Jun-2018].

[16] ”La navegacion de drones por voz es po-sible con what3words y DXC Technology— what3words”, what3words, 2018. [Online].Disponible en: https://goo.gl/3KuqAT. [Ac-ceso: 16- Jun- 2018].

[17] ”How to Build a Portable Voice ControlledDrone for Under $500 : Alexa Blogs”, Deve-loper.amazon.com, 2016. [Online]. Disponibleen: https://goo.gl/9ziiFg [Acceso: 16- Jun-2018].

[18] ”DJI Developer”, Developer.dji.com, 2018.Disponible en: https://developer.dji.com/.[Acceso: 16- Jun- 2018].

[19] ”Hablale a traves del micro y disfru-ta del vuelo — SkyRover Voice Com-mand”, Colorbaby.es, 2018. Disponible en:https://goo.gl/VZWAFo. [Acceso: 16- Jun-2018].

[20] Lamere, Paul, Kwok, Philip, B. Gouv, Evan-dro, Singh, Rita, Walker, William y Wolf,Peter. (2003). ”The CMU Sphinx4 SpeechRecognition System”. IEEE Intl. Conf. onAcoustics, Speech and Signal Processing(ICASSP 2003).

[21] Vojtas P., Stepan J., Sec D., Cimler R. y Krej-car O. (2018) ”Voice Recognition Software onEmbedded Devices”.

[22] Rabiner, L.R. (1989) “A tutorial on hiddenMarkov models and selected applications inspeech recognition.”Proceedings of the IEEE,77(2) pp 257-286.

[23] N. Shmyrev, ”Basic concepts of speechrecognition”, CMUSphinx Open SourceSpeech Recognition, 2018. [Online]. Availa-ble: https://goo.gl/K7P8Ku. [Accessed: 19-Jun- 2018].

[24] ”Spanish - voxforge.org”, Voxforge.org, 2006.Disponible en: https://goo.gl/RU4fBd. [Ac-cessed: 19- Jun- 2018].

[25] N. Shmyrev, ”Voxforge Spanish ModelReleased”, CMUSphinx Open SourceSpeech Recognition, 2010. Disponible en:https://goo.gl/nGT9bi. [Acceso: 19- Jun-2018].

[26] Hunt, A. (2000). “Jspeech grammar format.“W3C Note http://www. w3. org/TR/jsgf.

[27] Galvez S., David, R. y Fernandez, T. (2018).”Generacion de compiladores mediante dia-gramas de Conway” ResearchGate

[28] RXTX for Java”, fizzed.com, 2018. Dispo-nible en: https://goo.gl/t84Nt9. [Acceso: 20-Jun- 2018].

[29] ”Socket (Java Platform SE 7 )”,Docs.oracle.com, 2018. Disponible en:https://goo.gl/rzqKXw [Acceso: 20- Jun-2018].

[30] ”MAVLink Micro Air Vehicle Communi-cation Protocol - QGroundControl GCS”,Qgroundcontrol.org, 2018. Disponible en:https://goo.gl/CQJCpr. [Acceso: 20- Jun-2018].

[31] ”MAVLINK Common Message set specifi-cations”, Mavlink.org, 2018. Disponible en:https://goo.gl/QXTXkY. [Acceso: 20- Jun-2018].

[32] ”MAVLink Mission Command Messages(MAV CMD) — Copter documentation”,Ardupilot.org, 2018. [Online]. Available:https://goo.gl/6C3nzP. [Accessed: 20- Jun-2018].

[33] Hyde, P. (1999). Java thread programming(Vol. 1). Indianapolis: Sams.

[34] Raspberry Pi 3 Model B+ - RaspberryPi”, Raspberry Pi, 2018. Disponible en:https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/. [Acceso: 21- Jun- 2018].

[35] ”CM108 Datasheet”, Qsl.net, 2018. Disponi-ble en: https://goo.gl/jDxFNy. [Acceso: 21-Jun- 2018].

[36] ”SITL Advanced Testing — Dev documen-tation”, Ardupilot.org, 2018. Disponible en:https://goo.gl/yAYsZL. [Acceso: 21- Jun-2018].

[37] ”Pixhawk Autopilot - Pixhawk FlightController Hardware Project”, Pix-hawk.org, 2018. [Online]. Disponible en:https://goo.gl/icQijR. [Acceso: 21- Jun-2018].

c© 2018 by the authors.Submitted for possibleopen access publication

under the terms and conditions of the Creati-ve Commons Attribution CC-BY-NC 3.0 license(http://creativecommons.org/licenses/by-nc/3.0/).

837