Forma sugerida de citación:
Flores, C.; Rojas, F.; Trejo, K. (2017). «Operación remota de un robot móvil usando un teléfono inteligente». Ingenius. N°. 17, (Enero-Junio). pp. 29-35. ISSN: 1390-650X.
1. Introducción
La operación remota ha sido desarrollada durante muchos años y ha conducido a diversos usos prácticos de interacción del usuario con el entorno. El concepto de sistema remoto será abordado como un sistema para manipular y controlar un robot que requiere un operador humano a distancia. Esto implica la disponibilidad de interfaz de hombre-máquina [1].
Su función principal es brindar al operador la capacidad de realizar tareas complejas en entornos peligrosos y menos estructurados, por esta razón es necesario aplicar una concepción del sistema que permita la interacción con el entorno. La Figura 1 muestra una generalización de este sistema [2].
Debido a la reducción de costos en la tecnología de dispositivos móviles, se consideró conveniente aprovechar su hardware para desarrollar esta propuesta. En el presente artículo se presenta una aplicación de un sistema remoto para un robot móvil empleando un teléfono inteligente como mando a distancia.
2. Estado del arte
Durante las dos décadas pasadas diversos sistemas remotos han sido desarrollados usando varios medios de transmisión de datos, algunos de ellos están basados en protocolos de Internet. Empleando un navegador web, un operador a distancia es capaz de controlar un robot móvil, un mapa es generado y visualizado en pantalla para la navegación, simulando el entorno real [3]. Esta clase de sistema por lo general se usa para apoyar operaciones subterráneas, situaciones de rescate en desastres, entre otras. Sin embargo, el empleo de Internet puede ser una restricción en ciertas áreas donde no se encuentra disponible; adicionalmente, los retardos en la transmisión son la principal desventaja de esta clase de sistemas.
Tomando esto en consideración, otros sistemas han sido desarrollados para mejorar esta desventaja que usa estructuras complejas de control para compensar los retardos de tiempo distancia [3]. Como alternativa para lugares donde no exista servicio de Internet, Kimitsuka, Susuki y Sawai han desarrollado un sistema remoto aprovechando una red inalámbrica de sensores (WSN), [4]. Sistemas recientes de teleoperación emplean interfaces de usuario convencionales como teclados, palancas de mando, controles para juegos, etc. [2]. Actualmente, muchas investigaciones trabajan con dispositivos comerciales, teléfonos inteligentes como mando a distancia para actividades de control, visualización y vigilancia. [5].
Un número importante de investigaciones en el desarrollo de sistemas remotos usan dispositivos de interfaz humana (HID) como el ratón, el teclado, palancas de mando o pantallas táctiles, para mejorar la experiencia de interacción, considerando la destreza y ergonomía de la anatomía humana. Recientemente dispositivos de sinestesia (Haptic), el procesamiento de videos y dispositivos de reconocimiento gestual se hacen más comunes, cambiando la interacción con ordenadores, teléfonos móviles y videojuegos. [2].
Los últimos teléfonos inteligentes ofrecen mayores capacidades multimedia, sensores (acelerómetros), comunicación (Bluetooth, Wifi, GPRS/UMTS), ubicación (GPS) y facilidad de programación por lo cual son actualmente los mejores candidatos para servir de interfaz entre las personas y su entorno [6].
Las capacidades tecnológicas de los teléfonos inteligentes han generado el interés para investigar fenómenos físicos como caídas [7] o el caminar humano [8,9]. La Figura 2 ilustra la secuencia para obtener señales de verificación e identificación del caminar usando el acelerómetro [10]. Esta estructura fue usada para la obtención de señales en nuestra propuesta.
3. Metodología propuesta
Esta propuesta presenta el diseño e implementación de un sistema remoto para un robot móvil, controlando su trayectoria mediante un teléfono inteligente: La selección del teléfono inteligente como mando a distancia se debe a su disponibilidad, la alta aceptación social, el manejo intuitivo y el costo. Las órdenes de giro y desplazamiento del robot móvil se realizan mediante el movimiento del dispositivo.
Las señales obtenidas por los sensores del teléfono inteligente, serán procesadas usando un algoritmo de reconocimiento de patrones, la trayectoria resultante se puede visualizar en el ordenador. Este algoritmo será responsable de clasificar los movimientos que el robot móvil debería realizar: aceleración (+), aceleración (–), giro a la derecha, giro a la izquierda, según los movimientos correspondientes hechos con el teléfono inteligente. Por esta razón, hemos puesto en práctica dos redes neuronales. Para desarrollar la generación de trayectorias del sistema remoto se procedió de la siguiente forma:
Selección de una aplicación móvil (App) para adquisición de datos
Adquisición de datos y registro de estos.
Creación de una red neuronal.
Entrenamiento y simulación de la red neuronal.
El primer paso para desarrollar este proyecto fue definir la App que permita extraer los datos del acelerómetro. Después del análisis de varias App como Wireless IMU, SensorUdp, iSeismo, entre otras, que transmiten las mediciones de los sensores internos del teléfono inteligente. La selección fue MlconnectApp, que permite capturar los datos generados en el teléfono por el programa Matlab instalado en un ordenador [11], realizando una adquisición fácil y directa de los datos tratados. Las transmisiones usan protocolo UDP que cumple con las necesidades de velocidad para este sistema.
3.1. Adquisición de datos
Para la adquisición de las señales en los sensores es necesario definir ejes de referencia en la estructura física del teléfono, como se observa en la Figura 3. El eje Z es asignado a los movimientos de aceleración (+Z aceleración (+), –Z aceleración (–)); el eje Y corresponde a los giros (+Y giro a la izquierda, –Y giro a la derecha).
El equipamiento tecnológico usado consiste de un teléfono inteligente Sony Xperia tipo, con sistema Android, en él se instaló la App MLConnect versión libre que obtiene las señales de sensor de aceleración. Los datos son capturados en tiempo real y convertidos en una matriz. Esta matriz almacenada en Matlab usa datos en el rango desde 10 a -10 con cuatro decimales de precisión.
Eje Z: Tres registros de datos fueron generados con 1000 datos de entrada a los cuales se asignaron los objetivos correspondientes a los movimientos descritos considerando su rango de operación como se observa en la Tabla 1.
Los movimientos posibles en el eje Z se detallan a continuación:
Inactivo: El estado donde el teléfono se encuentra en una posición neutral, lo cual implica una postura natural del operador para sostener el teléfono.
Aceleración (+): Implica la orden de realizar el movimiento para desplazamiento frontal del robot.
Aceleración (–): Posee dos interpretaciones, la primera si el robot se encuentra en movimiento frenar, la segunda orden si el robot se encuentra estático la dirección para desplazamiento del robot es en retroceso.
Eje Y: De similar forma al eje Z, tres registros de datos fueron generados con 1000 datos de entrada a los cuales se asignaron los objetivos correspondientes a los movimientos descritos considerando su rango de operación como se observa en la Tabla 2.
Los movimientos posibles en el eje Y se detallan a continuación:
Inactivo: Permite mantener la dirección recta, se realiza cuando no existe una inclinación evidente del teléfono a un costado.
Giro a la derecha: Es ejecutado cuando el teléfono se encuentra notablemente inclinado al costado derecho del operador. La inclinación del teléfono se realiza en forma natural.
Giro a la izquierda: Es ejecutado cuando el teléfono se encuentra notablemente inclinado al costado izquierdo del operador.
Como se evidencia en la Tabla 1, los rangos de los datos de ingreso para el eje Z no son simétricos debido al hecho que cuando el usuario sostiene el teléfono de modo vertical, este no se posiciona perpendicular con respecto al plano Y.
Para realizar esta adquisición de datos, se modificó el código original del programa sobre Matlab, para obtener los datos de cada eje de forma independiente con el fin de procesarlos posteriormente. En este punto, dos redes neuronales fueron implantadas: la primera solo para reconocer los datos de desplazamiento (con tres neuronas sobre la capa oculta) y la segunda para los datos correspondientes a movimientos de giro (dos neuronas sobre su capa oculta), el tipo de red implementada se detalla más adelante.
Como se evidencia en las Tablas 1 y 2, tendremos un conjunto de datos de entrada para cada red y tres objetivos de salida.
3.2. Generación de la red neuronal
Para el diseño e implementación de las redes neuronales un análisis de varios tipos de redes existentes fue realizado con el fin de seleccionar las mejores características para este proyecto. Por consiguiente, de este análisis, se define la arquitectura para las redes neuronales a ser aplicadas.
Se escogió una red supervisada (Supervised Networks) la cual puede ser entrenada para producir salidas predefinidas por el usuario y es adecuada para clasificación de datos que contienen ruido.
De los diferentes tipos de redes supervisadas se seleccionó la red Feedforward y de entre su clasificación la red Backpropagation. [12].
Para la función de entrenamiento de la red se escogió TRAINLM Levenberg −Marquardt por ser generalmente la más rápida con la selección previa de red Backpropagation.
La función de aprendizaje LEARNGDM que emplea gradiente descendente, para la ejecución se aplica el error cuadrático medio (MSE).
Las funciones de transferencia deben ser continuas. Por esta razón sobre la base de [13] se escogió para la capa oculta Logsig como función de transferencia y Pureline y Tansig para las capas de salida.
Basado en las características descritas, dos redes neuronales fueron diseñadas para controlar el desplazamiento (eje Z) y los giros (eje Y ) del robot móvil usando el Neural Toolbox de Matlab. Los resultados son mostrados en la Tabla 3 y las Figuras 4 y 5.
De los 6000 datos adquiridos con sus respectivas etiquetas, se decide utilizar solo 600 para realizar el entrenamiento de las redes neuronales y 120 de ellos sin etiquetar para la simulación. Las Figuras 6, 7, 8, 9 muestran las gráficas de los datos usados. Se necesitó un intervalo de tiempo igual a 300 segundos para la adquisición de datos en la función de desplazamiento, en cuanto a la función de giros el intervalo de tiempo fue menor es decir 60 segundos. Esta diferencia de tiempo se debe a la variación de los datos cuando se realizaba la posición correspondiente al desplazamiento con el teléfono inteligente.
3.3. Implementación
Una vez que las redes fueron entrenadas, simuladas para verificar que los datos eran suficientes y la operación de las redes era apropiada, se incluyó en el programa de adquisición de datos las redes neuronales de desplazamiento y giros.
Para aplicar las redes neuronales creadas, antes de controlar la trayectoria de un robot móvil las actividades siguientes fueron realizadas:
Inclusión de las redes neuronales en el programa de adquisición de datos sobre Matlab.
Establecer una ecuación para calcular la trayectoria de un robot móvil.
Pruebas y resultados.
Para la inclusión de las redes neuronales, era necesario modificar una vez más el código original de MLCONNECT para adquisición de datos. Las modificaciones realizadas se describen a continuación:
Declaración de dos matrices de datos para almacenaje de las salidas de redes neuronales (desplazamiento y giros).
Declaración de dos variables, la primera corresponde a la aceleración (rad/s2) y la segunda es el ángulo de giro (rad).
Inclusión del código de redes neuronales al programa.
Cálculo de aceleración y ángulo de giro basada en los datos de salida de las redes neuronales.
Asignación de límites para aceleración y ángulo de giro, según la configuración física del robot móvil.
Cálculo y trazado de la trayectoria (FCAC).
La función de FCAC fue creada para calcular y trazar trayectorias basándose en el modelo de cinemática avanzado para un robot de móvil tipo triciclo. En esta función se especifica la correspondencia de nuestra aceleración y ángulo de giro:
La Figura 10 muestra el esquema representativo del robot móvil y sus parámetros calculados para trazar las trayectorias. El detalle completo de la interpretación física y la derivación de las fórmulas fue propuesto por el Dr. Antonio Benito Martínez Velasco.
4. Resultados
El funcionamiento de cada red neuronal puede ser analizado considerando su matriz de confusión Figura 11. Como se evidencia en la matriz de confusión del desplazamiento, todos los elementos fueron clasificados sobre la clase correcta, obteniendo el 100 % de funcionamiento. Además, el funcionamiento de la red neuronal para los giros es el 99,7 % debido a un elemento de la clase 3 que fue erróneamente clasificado en la clase 2.
Dos tipos de pruebas fueron realizadas con el robot real, las primeras para ajustar algunos parámetros como el tiempo de desplazamiento y los ángulos de giros; mientras que, las segundas consistieron en la evaluación del comportamiento del robot móvil ante las órdenes enviadas por los movimientos del teléfono inteligente. Para evidenciar las pruebas mencionadas, se graficó las trayectorias 30 veces cada uno de los movimientos posibles (desplazamiento y giros), es decir, 30 veces para aceleración (+), 30 veces para aceleración (–), 30 veces giro a la izquierda, 30 veces giro a la derecha, obteniendo el comportamiento esperado en el 100 % de casos Figura 12.
5. Conclusiones
En este artículo se presentó una propuesta de sistemas remotos para robótica móvil usando la tecnología disponible de bajo costo como teléfonos inteligentes, considerando que la mayor parte de estos dispositivos cuenta con sensores que permiten una medición de parámetros físicos diferentes como la aceleración, la posición, ubicación, entre otros. Adicionalmente, el uso de dos redes neuronales permite clasificar los datos recibidos para controlar y trazar la trayectoria de un robot móvil usando como mando a distancia los movimientos de un teléfono inteligente.
El manejo del robot mediante el uso del teléfono inteligente permite movimientos intuitivos, lo cual proporciona al usuario facilidad de manejo.
La implementación de una red neuronal evita usar equipo electrónico adicional para el acondicionamiento de señales como filtros y otros circuitos auxiliares. Por la simplicidad de las redes propuestas se podría realizar la implementación de estas en sistemas embebidos como Raspberry Pi, Arduino, entre otros como parte del robot móvil.