Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
MÁSTER EN COMPUTACIÓN GRÁFICA, REALIDAD VIRTUAL Y SIMULACIÓN 2020 Trabajo Final de Máster DESARROLLO DE INTERFAZ CON REALIDAD AUMENTADA PARA MEJORAR LA INTERACCIÓN EN LA LOCOMOCIÓN CON EXOESQUELETOS ROBÓTICOS Autor: Raúl Díaz Monterde Tutores: Ing. David Pinto Fernández - 2 - - 3 - ÍNDICE DE CONTENIDOS I. ÍNDICE DE CONTENIDOS .............................................................................................. - 3 - II. RESUMEN .................................................................................................................... - 5 - III. ABSTRACT ................................................................................................................... - 6 - IV. MEMORIA .................................................................................................................... - 7 - ÍNDICE DE FIGURAS Y TABLAS ...................................................................................... - 8 - CAPÍTULO I. INTRODUCCIÓN. ..................................................................................... - 10 - 1.1. Introducción ................................................................................................................ - 10 - CAPÍTULO II. OBJETIVOS............................................................................................. - 12 - CAPÍTULO III. ESTADO DEL ARTE. ................................................................................ - 13 - 3.1 Rehabilitación robótica. Recuperación de la función de la marcha asistida por exoesqueleto. - 13 - 3.2 Tecnologías de valoración de movimiento. .................................................................... - 17 - 3.3 La Realidad Aumentada ................................................................................................ - 20 - CAPÍTULO IV. MARCO METODOLÓGICO ...................................................................... - 27 - 4.1 Software ....................................................................................................................... - 27 - 4.2 Hardware ..................................................................................................................... - 31 - CAPÍTULO V. DESARROLLO ........................................................................................ - 33 - 5.1 Arquitectura del desarrollo ............................................................................................ - 33 - 5.2 Diseño de la interfaz ..................................................................................................... - 36 - 5.3 Integración de Agora SDK para la transmisión de vídeo ................................................. - 42 - CAPÍTULO VI. RESULTADOS Y DISCUSIÓN ................................................................... - 45 - Limitaciones ....................................................................................................................... - 45 - CAPÍTULO VII. LÍNEAS FUTURAS DE DESARROLLO ....................................................... - 48 - REFERENCIAS ............................................................................................................ - 49 - - 4 - - 5 - RESUMEN El proceso de rehabilitación de la movilidad de los miembros inferiores supone un compromiso largo e intenso tanto para el paciente como para los fisioterapeutas que le ayudan. Para optimizar la efectividad de las sesiones y reducir la duración del proceso de rehabilitación, se utilizan herramientas que aprovechan los últimos avances en ingeniería biomecánica, entre las que destacan, por su efectividad, los exoesqueletos. Como complemento a la utilización de los exoesqueletos, también se han comenzado a introducir tecnologías de gamificación y Realidades Mixtas para favorecer la constancia y motivación del paciente durante la terapia. Sin embargo, para el fisioterapeuta es complicado conocer la forma en la que el exoesqueleto y el paciente interactúan entre sí en tiempo real, y actuar en consecuencia. Este proyecto busca introducir al fisioterapeuta en el lazo de interacción entre el paciente humano y el exoesqueleto, utilizando la Realidad Aumentada para que la visualización de la información recibida de ambos no suponga un obstáculo en la terapia, si se utiliza el dispositivo adecuado. Dado que para la utilización de esta tecnología en terapia es necesario hardware de última generación, apenas ha habido intentos de introducir esta tecnología en dicho lazo de interacción. Pero los últimos avances tecnológicos abren la puerta a desarrollos como el que aquí se presenta. El resultado del proyecto es una aplicación que, instalada en un dispositivo móvil, brinda una interfaz gráfica al fisioterapeuta en la que puede observar datos recibidos de diferentes sensores en tiempo real, como elementos virtuales en el entorno real que rodea al paciente, haciendo uso de la Realidad Aumentada. Palabras clave: Realidad Aumentada, Exoesqueleto, Rehabilitación de tren inferior, Sensor inercial, Plantillas de presión. - 6 - ABSTRACT The process of rehabilitation of the lower limbs’ mobility involves an enduring and intense commitment for both the patient and the therapists involved in said rehabilitation. To optimize the effectiveness of the therapy sessions and minimize the duration of this process, the latest advancements in biomechanical engineering are used, among which the exoskeletons stand out because of their effectiveness. As a supporting tool in the use of exoskeletons, gamification and Mixed Reality technologies have also been introduced in the latest therapies, to stimulate and motivate the patient during the sessions. However, it is complicated for the physiotherapist to know in which way the exoskeleton and the patient are interacting and react accordingly. This project aims to introduce the physiotherapist in the interaction loop between the patient and the exoskeleton, using Augmented Reality technologies to allow the therapist to visualize the information received from both without getting distracted from the patient’s actions. Given that to use these technologies the latest hardware is needed, there has been only a few attempts to integrate this technology in said interaction loop. The result of the project is a mobile application that presents a graphic interface to the therapist, in which the data received in real time from several sensors can be observed as virtual elements embedded in the real environment surrounding the patient. Key words: Augmented Reality, Exoskeleton, Rehabilitation of lower limbs, Inertial sensor, Pressure insoles. - 7 - MEMORIA - 8 - ÍNDICE DE FIGURAS Y TABLAS Figura 1. Ilustración que muestra un ciclo de la marcha con sus períodos y sus fases [12]. ................................................ - 13 - Figura 2. Esquema que muestra los ángulos de rotación de las articulaciones de cadera (Hip), rodilla (Knee) y tobillo (Ankle) en cada una de las fases de un ciclo de la marcha [13]. ........................................................................................................ - 14 - Figura 3. Científico estadounidense utilizando el prototipo de uno de los primeros exoesqueletos, el Hardiman, desarrollado por el ejército de los EEUU en 1968 (Museo de Innovación y Ciencia de Nueva York) [18]. ............................................ - 15 - Tabla 1. Tabla que muestra la principal información de los exoesqueletos de las empresas e iniciativas con mayor representación actualmente. .................................................................................................................................................. - 17 - Figura 4. Imagen del Exo-H3 de Technaid SL. En la que se aprecian las seis articulaciones motorizadas [23]. ................ - 17 -Figura 5. Representación del Continuo de la Virtualidad definido por Paul Milgram y Fumio Kishino [43]. .................... - 20 - Figura 6. Cartel promocional de la máquina Sensorama en el que se aprecia a Morton Heilig haciendo uso de la misma [45]. - 21 - Figura 7. Imagen promocional de una persona utilizando las gafas de Realidad Aumentada NReal [50]. .......................... - 22 - Figura 8. Usuario utilizando la aplicación de Ikea Place en su móvil [53]. ......................................................................... - 24 - Figura 9. Captura de la interfaz básica del editor de Unity utilizada para el desarrollo del proyecto. ................................. - 28 - Figura 10. Esquema de las plantillas de presión Moticon Smart Insoles en el que se puede apreciar la posición de los 16 sensores de presión (izquierda) y la posición del sensor inercial (derecha) [70].................................................................. - 31 - Figura 11. Esquema de alto nivel del proceso de transmisión y tratamiento de los datos de los sensores. .......................... - 33 - Figura 12. Captura del código de la función “parseFootPrintData”, contenida en el script “InsoleDataReader.cs”. .......... - 35 - Figura 13. Captura de la interfaz de Unity en la que se pueden apreciar los elementos en escena que intervendrán en la aplicación. Algunos elementos han sido censurados debido a que son propiedad intelectual de Werium........................... - 36 - Figura 14. Capturas de las pantallas que se muestran al usuario durante la fase de conexión con los sensores de la aplicación - 37 - Figura 15. Captura de la interfaz inicial en dos dimensiones que mostraba los datos recibidos de los sensores. ................ - 38 - Figura 16. Captura de las modificaciones hechas en la interfaz de dos dimensiones tras analizar la primera distribución de los elementos. ............................................................................................................................................................................. - 39 - Figura 17. A la izquierda, los elementos que muestran la información de los sensores en el entorno virtual de Unity. A la derecha, los mismos elementos mostrando la información simulada que reciben en el entorno real, sobre el marcador elegido (logo de Unity). ..................................................................................................................................................................... - 41 - Figura 18. (Izquierda) Captura que muestra el estado de la interfaz en su estado inicial, sin transmitir vídeo y con la calibración de las plantillas activada. (Centro) Captura que muestra la interfaz con la transmisión de vídeo y la calibración de las plantillas activas. (Derecha) Captura que muestra la interfaz con la transmisión de vídeo activa y la calibración de las plantillas desactivada. ........................................................................................................................................................................... - 42 - Figura 19. Captura de la configuración del proyecto. ........................................................................................................... - 43 - - 9 - Figura 20. (Izquierda) Captura de la función onJoinButtonClicked() del script Home.cs de Agora SDK que se ejecuta al clickar en el botón de comenzar a transmitir vídeo, modificada para utilizar el canal designado. (Derecha) Captura del código de la función join(), ejecutada desde el cliente de Realidad Aumentada de AgoraSDK. ............................................................. - 44 - Figura 21. Captura de la aplicación de prueba recibiendo el vídeo enviado captado desde la aplicación de Interfaz de Realidad Aumentada con el dispositivo Android. Se puede observar el canvas que muestra el vídeo (centro), y el botón que conecta y desconecta del canal (abajo). ................................................................................................................................................ - 44 - Figura 22. Captura del código del script BehaviourSimulator.cs. ........................................................................................ - 46 - - 10 - CAPÍTULO I. INTRODUCCIÓN. 1.1. Introducción La rehabilitación física de un paciente que ha perdido parte o la totalidad de la movilidad del tren inferior es un proceso largo e intenso, que en primer lugar requiere de la constancia del paciente en la terapia. Gracias a los avances en ingeniería y medicina han surgido diferentes métodos y herramientas para complementar la terapia y ayudar al paciente a mantener el interés en la rehabilitación. Una de las técnicas más efectivas integradas recientemente son las terapias complementadas con sistemas robóticos. La implementación de este tipo de terapias ha aumentado gradualmente principalmente porque la terapia tradicional puede llegar a ser exhaustiva y agotadora para muchos pacientes. Esto puede producir desmotivación en el paciente y minar su compromiso con el tratamiento, lo que desemboca en una disminución de la mejora en la salud y la calidad de vida de dicho paciente [1] [2]. Hay abundantes pruebas experimentales que indican que la rehabilitación asistida con sistemas robóticos (principalmente exoesqueletos) ha sido muy efectiva a la hora de mantener al paciente motivado e interesado en el tratamiento, tanto en los casos de rehabilitación del tren superior como del inferior [3] [4]. Con los avances tecnológicos, también se ha buscado aplicar las tecnologías de realidad virtual, realidad aumentada y la gamificación, en conjunto con el uso de exoesqueletos, principalmente con el objetivo de aumentar el compromiso y la motivación del paciente durante el proceso de rehabilitación [5]. Diferentes estudios demuestran el efecto positivo que la gamificación y el uso de exoesqueletos tienen en los pacientes, y que la integración de la realidad virtual o la realidad aumentada es relativamente sencilla gracias los datos en tiempo real del paciente que puede facilitar el propio exoesqueleto [6] [7]. Sin embargo, la presencia y atención del terapeuta sigue siendo necesaria e imprescindible durante toda la terapia, por lo que el objetivo de estos sistemas es el de complementar y mejorar la terapia, como herramienta de ayuda tanto para el paciente como para el fisioterapeuta. Será el terapeuta el encargado de interpretar los datos que reciba de los diferentes sensores, por lo que es de gran importancia que éste sea capaz de entender dichos datos de forma rápida. Por ello es importante que tanto el paciente como el fisioterapeuta puedan entender y comunicar de forma sencilla los datos que reciben de cada una de estas herramientas. - 11 - De la misma forma que los avances tecnológicos han permitido que los exoesqueletos se integren en este tipo de terapias, también han permitido la creación de interfaces que facilitan la usabilidad tanto de dichos exoesqueletos como de otros sistemas de sensores. Estas interfaces juegan un papel crucial en el correcto aprovechamiento de estas herramientas, de nuevo, tanto desde el punto de vista del paciente como del fisioterapeuta. Para el fisioterapeuta, la integración de la realidad aumentada brinda la oportunidad de ver datos que no podría apreciar a simple vista, en tiempo real y sin desviar la atención del paciente. Para el paciente, las interfaces de realidad aumentada o realidad virtual pueden ayudar de forma considerable a comprender las indicaciones del exoesqueleto, y a aumentar su motivación si se combinan con un sistema de gamificación. - 12 - CAPÍTULO II. OBJETIVOS El presente proyecto tiene dos objetivos fundamentales: 1. El diseño y desarrollo de una interfaz que permita el fisioterapeuta ver y analizar datos en tiempo real sobre la marcha de un paciente duranteuna sesión de rehabilitación de la marcha, haciendo uso de la realidad aumentada para que el terapeuta pueda observar los datos sin desviar la atención del paciente. 2. Compartir la información relevante en tiempo real con una interfaz paralela que mostraría información al paciente durante la sesión. Para la consecución de los objetivos anteriores se define el siguiente conjunto de objetivos específicos: i. Investigar y seleccionar los datos que podrían ser de mayor utilidad para el fisioterapeuta. ii. Investigar, seleccionar y diseñar las diferentes formas de mostrar la información que se reciba en la interfaz. iii. Investigar los diferentes dispositivos que pueden hacer uso de la realidad aumentada, y seleccionar el más acorde a presupuesto y necesidades. iv. Investigar y seleccionar las herramientas adecuadas que permitan crear la interfaz de realidad aumentada. v. Habilitar una forma de compartir el vídeo desde el punto de vista del fisioterapeuta con el paciente durante la sesión de rehabilitación, ya que puede ayudar en gran medida en la efectividad de la terapia [8]. vi. Analizar el resultado y proponer líneas futuras de desarrollo. La interfaz formará parte de una aplicación que recibirá datos de un sensor de movimiento situado en la cadera del paciente y unas plantillas de presión en los pies, y los mostrará de forma clara y comprensible al fisioterapeuta para favorecer un análisis rápido. - 13 - CAPÍTULO III. ESTADO DEL ARTE. 3.1 Rehabilitación robótica. Recuperación de la función de la marcha asistida por exoesqueleto. 3.1.1 Análisis biomecánico de la marcha El estudio del movimiento de los miembros inferiores durante la marcha ha sido estudiado en profundidad en el campo de la medicina. En sujetos sanos, durante una marcha normal de una velocidad aproximada de entre 1 metro/segundo y 2 metros/segundo, la mayoría de los movimientos de tren inferior se realizan en el plano sagital [9]. La mayoría de los estudios distinguen dos fases principales en cada paso de la marcha: la fase de apoyo y la fase de balanceo. A su vez, cada una de estas fases puede dividirse en varias fases más [11], cada una de una duración determinada, como puede apreciarse en el esquema de la Figura 1: • La fase de apoyo puede dividirse en la fase de contacto inicial o IC, del inglés Initial Contact, la fase de carga de respuesta o LR, del inglés Loading Response, la fase de mitad del apoyo o MST, del inglés Mid Stance, la fase de apoyo final o TST, del inglés Terminal Stance, y la fase de pre-balanceo o PSW, del inglés Pre-Swing. • La fase de balanceo puede dividirse en el inicio del balanceo o ISW, del inglés Initial Swing, mitad del balanceo o MSW, del inglés Mid Swing, y final del balanceo o TSW, del inglés Terminal Swing. Figura 1. Ilustración que muestra un ciclo de la marcha con sus períodos y sus fases [12]. - 14 - Diferentes estudios han ayudado también a determinar los rangos de los ángulos de giro para los tobillos, rodillas y cadera durante las fases de la marcha [13]. En el esquema de la Figura 2 se puede apreciar que el ángulo de giro en el tobillo alcanza la máxima flexión dorsal (7° aproximadamente) en la fase de final del apoyo, y la máxima flexión plantar (20° – 25° aproximadamente) en el inicio del balanceo. En la rodilla se espera el máximo ángulo de flexión en la fase de inicio del balanceo (hasta 50° aproximadamente), siendo el ángulo de extensión insignificante. En la cadera se llega hasta casi los 30° de flexión en la fase de contacto inicial y en el final del balanceo, y los 20° de extensión entre el final del apoyo y el pre-balanceo. Figura 2. Esquema que muestra los ángulos de rotación de las articulaciones de cadera (Hip), rodilla (Knee) y tobillo (Ankle) en cada una de las fases de un ciclo de la marcha [13]. 3.1.2 Los exoesqueletos en la rehabilitación Un exoesqueleto es un sistema electromecánico acoplado a las extremidades del cuerpo humano que mejora las capacidades físicas del sujeto [14]. En la rehabilitación, los exoesqueletos están diseñados para sustituir o asistir las funciones motoras de una zona concreta del cuerpo de un ser vivo. De esta forma pueden ayudar a pacientes que han perdido movilidad en una zona del cuerpo, ya sea debido a una enfermedad, o condiciones físicas o neurológicas [15]. - 15 - Previamente a su uso en la medicina, los sistemas robotizados se han utilizado a lo largo del último siglo para la realización de tareas sencillas y concretas que facilitan la labor al ser humano. En la década de 1960 el ejército de EEUU comenzó el desarrollo de varios prototipos de exoesqueleto, con el objetivo de aumentar las capacidades físicas de sus soldados [16]. Estos prototipos eran muy poco funcionales, y su utilización presentaba demasiados inconvenientes como para ser producidos en masa. También desde el ámbito privado se desarrollaron prototipos más funcionales, con utilidad más acotada, como los de General Electric, enfocados al levantamiento de grandes pesos o a la manipulación de elementos radiactivos, como el proyecto Hardiman [17], el cual se puede observar en la imagen de Figura 3. Figura 3. Científico estadounidense utilizando el prototipo de uno de los primeros exoesqueletos, el Hardiman, desarrollado por el ejército de los EEUU en 1968 (Museo de Innovación y Ciencia de Nueva York) [18]. Fue en la década de 1970 cuando surgieron los primeros prototipos de exoesqueletos enfocados a la medicina. Uno de los proyectos de mayor importancia fue el de la John Hopkins University de EEUU, que consistía en un prototipo para la ayuda a la movilidad a personas con movilidad reducida en los miembros superiores [19]. Es importante recalcar que, desde un principio, la rehabilitación asistida con sistemas robóticos ha tenido como objetivos principales tanto la optimización de los resultados de las sesiones de terapia a las que asiste el paciente, como la sustitución de las funciones del miembro a tratar con el exoesqueleto, en los casos en los que esto sea necesario [20]. Aunque la mayor - 16 - parte de los avances en este ámbito se han hecho en los exoesqueletos enfocados a la rehabilitación de los miembros superiores, en los últimos años la oferta de exoesqueletos para la rehabilitación del tren inferior a aumentado. Existen dos tipos principales de exoesqueletos de tren inferior, los de tipo treadmill, en los cuales la marcha es estática, siendo la superficie sobre la que se realiza la que se mueve (una cinta de correr), y los de tipo overground, en los que la marcha se realiza libremente en el espacio [21]. La ventaja de los segundos respecto a los primeros es obvia, la libertad de movimiento que proporcionan al paciente, que puede traducirse en una mayor motivación durante la terapia. Actualmente, existen alrededor de una centena de modelos de exoesqueletos en el mundo, de los cuales menos de la mitad están enfocados en la medicina. El resto están enfocados a usos comerciales, industriales o militares [22]. En la Tabla 1, se enumeran los exoesqueletos para la rehabilitación de la marcha de las empresas e iniciativas con mayor representación: Principales exoesqueletos desarrollados actualmente (2020) Nombre Empresa País Tipo Utilidad en terapia Descripción Exo-H3 Technaid SL. España Overground Marcha y posición en pie Exoesqueleto diseñado para asistir a personas que hayan perdido parcialmente la capacidad de caminar tras un accidente cerebrovascular o una lesión medular parcial. Lo logra integrando seis articulaciones motorizadas en el plano sagital (una en cadera, rodilla y tobillo por cada pierna), como se puede observar en la imagen de la Figura 4. Es un dispositivo diseñado específicamente para la investigación, por lo que permite la integración de algoritmos propios. También cuenta con una aplicación para Androidque permite operar las funciones básicas del exoesqueleto, como levantarse, sentarse, controlar la velocidad de la marcha o el grado de asistencia a ésta [23]. Ekso NR Ekso Bionics Estados Unidos Overground Marcha y posición en pie Ekso NR permite al terapeuta modificar diferentes parámetros de la marcha como la altura del paso, la distancia y tiempo de oscilación. También permite diferentes grados de asistencia durante la marcha, desde la realización de pasos pasivos, con alto grado de asistencia, hasta liberar completamente una o ambas piernas. También puede ser utilizado por pacientes que hayan perdido la movilidad de los miembros inferiores para trabajar la estabilidad del tronco y obtener los beneficios inherentes a la marcha. E-Helper Zarya Rusia Overground Marcha y posición en pie E-Helper puede ser utilizado tanto para la rehabilitación de los miembros del tren inferior, como para uso diario por personas que han perdido totalmente la funcionalidad de los miembros inferiores. Permite al paciente realizar movimientos para sentarse, levantarse, caminar, subir escaleras y rampas y superar pequeños obstáculos sin ayuda de terceros, aunque se aconseja la utilización de muletas, andadores, o barras de apoyo [24]. - 17 - Walking Assist Device Honda Japón Overground Marcha Honda comenzó la investigación de su dispositivo de ayuda a la marcha en 1999. Este exoesqueleto ayuda al usuario a caminar de forma eficiente. Contiene motores que se activan basándose en datos del ángulo de la cadera para mejorar la simetría de la marcha y alargar la zancada. Está diseñado para ser utilizado bajo la supervisión de un terapeuta en todo momento [25]. Lokomat Hocoma Suiza Treadmill Marcha y posición en pie Lokomat es el exoesqueleto más utilizado globalmente en medicina. Como en este caso el paciente se encuentra suspendido, sujeto por arneses, el dispositivo permite una total libertad de movimiento pélvico al paciente. También tiene una mayor capacidad de ajuste y personalización que la mayoría de los exoesqueletos overground. HAL Therapy Cyberdyne Japón Overground Marcha y posición en pie HAL Therapy es el único dispositivo a la venta que es capaz de detectar una intención de movimiento por parte del usuario, aunque actualmente hay investigaciones en curso para desarrollar prototipos que también tengan esa capacidad. Lo consigue mediante sensores en la piel del usuario que reconocen las señales bioeléctricas que el cerebro envía a los músculos, para moverse en consecuencia [27]. Tabla 1. Tabla que muestra la principal información de los exoesqueletos de las empresas e iniciativas con mayor representación actualmente. Figura 4. Imagen del Exo-H3 de Technaid SL. En la que se aprecian las seis articulaciones motorizadas [23]. 3.2 Tecnologías de valoración de movimiento. La utilización de tecnologías de captación y valoración del movimiento en medicina se ha generalizado en los últimos años [28]. La posibilidad de captar datos para su posterior análisis optimiza en gran medida las tareas de investigación y rehabilitación. En concreto, son de gran ayuda en las terapias con pacientes que necesitan rehabilitación de funciones motoras, ya que permiten comparar con exactitud los movimientos de un sujeto sin patologías con los de un paciente en rehabilitación. En el caso de la rehabilitación de tren inferior, es práctica común el - 18 - recopilar datos de la marcha de un sujeto sano, para luego poder compararlos con los del paciente [29] [30]. Los tipos de sistemas más utilizados para la captación de movimiento son los sensores inerciales, los goniómetros, los sistemas ópticos, las plantillas sensorizadas y las plataformas de fuerza. Sensores inerciales Los sensores inerciales o IMUs, del inglés Inertial Measurement Units, están diseñados para capturar datos de su propio movimiento. Los IMUs están compuestos a su vez de múltiples sensores como acelerómetros, giroscopios y magnetómetros, cada uno para capturar un tipo de movimiento diferente. De esta forma, pueden detectar y medir numerosas características: • Con el acelerómetro puede medir la velocidad y la aceleración del movimiento. • Con el giroscopio puede medir las rotaciones y la velocidad angular. • Con el magnetómetro puede establecer la dirección con respecto a los puntos cardinales (dependiendo de los campos magnéticos que rodeen al sensor). El IMU combina los datos recibidos de cada uno de estos sensores, para hacer una valoración del movimiento y la posición más precisa [31]. Este método es eficaz mientras que la aceleración que se quiera medir sea notablemente menor que la de la gravedad, situación que engloba la mayoría de las situaciones de medición de la marcha [32]. Estos sensores son muy utilizados en dispositivos de navegación en aeronaves o como complemento a sistemas de posicionamiento GPS, del inglés Global Positioning System. También son muy utilizados en el deporte y la medicina, para medir fuerzas y ángulos de movimientos concretos de forma precisa. La principal desventaja en la utilización de estos sensores es su tendencia a acumular error durante el tiempo de uso, ya que el sensor siempre mide los cambios utilizándose a sí mismo como referencia, sin poder triangular con un dispositivo externo. Este error acumulado se produce principalmente por el constante redondeo de los números obtenidos en sus cálculos, imprecisiones que individualmente pueden insignificantes pero acumuladas pueden dar lugar a errores significativos [33]. - 19 - En algunas investigaciones se han estudiado y diseñado técnicas para reducir este error, aunque no aplicables para el procesamiento de los datos en tiempo real [34]. Otros estudios han propuesto soluciones prescindiendo del magnetómetro, ya que el ruido magnético puede ser un problema en las mediciones son sistemas inerciales en espacios cerrados [35]. Goniómetros Los goniómetros son dispositivos capaces de medir ángulos. Hay varios tipos de goniómetros en el mercado, pero la estructura básica suele componerse de dos brazos, uno fijo y uno móvil, y un eje, normalmente envuelto en el cuerpo del dispositivo, que contiene una escala de medición normalmente en grados. En el caso de los goniómetros digitales, suelen tener una precisión de 0.01°, y pueden efectuar medidas de todo el rango angular (360°). En este caso estaríamos interesados en los goniómetros digitales capaces de medir los ángulos de rotación con respecto a los ejes de las tres dimensiones a la vez [36]. Su bajo precio, fácil uso y buenos resultados los ha convertido en una buena alternativa a los sistemas ópticos que, aunque más precisos, su uso conlleva más complicaciones y su precio es más elevado. Sistemas ópticos Los sistemas ópticos ofrecen gran precisión en la captura de movimiento. Estos sistemas utilizan software para reconocer puntos de interés en la imagen. Para su correcto funcionamiento y precisión, es necesaria la utilización de varias cámaras, que enviarán los datos de la posición de un punto en concreto. Combinando estos datos, se puede hallar la posición del punto en el espacio por triangulación. La precisión de la medida dependerá de la resolución de la imagen, el número de cámaras, y el software de reconocimiento [37]. Sistemas como VICON o BTS Bioengineering cuentan con una gran precisión de medida, aunque a un alto coste [38]. Por ello se han desarrollado multitud de sistemas que utilizan la herramienta Kinect que, aunque no consiguen la misma precisión, pueden conseguir resultados satisfactorios [39] [40]. Plantillas sensorizadas Las plantillas con sensores de presión se han convertido en uno de los sistemas más utilizados para el análisis de la marcha y la pisada tanto en el ámbito de la medicina como en el deportivo. La precisión de la medición dependerádel número y distribución de los sensores que contenga la plantilla y la calidad de éstos. Con las plantillas de presión podemos obtener - 20 - información sobre la pisada que con otros sensores apenas es apreciable. Esto en conjunto con su fácil uso y su bajo precio en relación con otros sistemas las ha convertido en una de las opciones más utilizadas en terapias de rehabilitación [41]. Desde el Consejo Superior de Investigaciones Científicas se nos proporcionan los datos de prueba recopilados por un sensor inercial Pro Motion Capture de Werium, y de unas plantillas de presión Smart Insoles de Moticon, con 16 sensores de presión cada una. Plataformas de fuerza Estos dispositivos consisten en una plataforma que al ser pisada hace una lectura de la fuerza de dicha pisada. En comparación con las plantillas sensorizadas, las plataformas de fuerza son mucho más precisas y son capaces de medir la dirección de la fuerza, aunque con un precio mucho más elevado [42]. 3.3 La Realidad Aumentada Dadas las similitudes entre la Realidad Aumentada y la Realidad Virtual, es necesario definirlas y explicar sus diferencias. Fue en 1994 cuando Paul Milgram y Fumio Kishino definieron en concepto del Continuo de la Virtualidad, tal y como se muestra en la Figura 5 [43]. El Continuo de la Virtualidad es representado por una escala en cuyos extremos se encuentran el entorno virtual y el entorno real, quedando como conceptos intermedios la Virtualidad Aumentada y la Realidad Aumentada, ambas entrando en el conjunto de las Realidades Mixtas. Según Kishino y Milgram la Realidad Aumentada consta de un entorno real al que se añaden elementos virtuales, mientras que la Virtualidad Aumentada parte de un entorno virtual sobre el que se añaden elementos reales [43]. Figura 5. Representación del Continuo de la Virtualidad definido por Paul Milgram y Fumio Kishino [43]. - 21 - 3.3.1 Contexto e historia Los primeros intentos de desarrollar tecnologías inmersivas se produjeron durante las décadas de los 50 y 60 en Estados Unidos, aunque esos prototipos tienen poco o nada que ver con el concepto de Realidad Virtual o Realidad Aumentada que tenemos actualmente. Uno de los prototipos fue el Sensorama, creado por Morton Heilig. Esta máquina era capaz de simular viento, olores, sonido estéreo y visión estereoscópica, a lo que se añadía el movimiento de una silla móvil sobre la que se sentaba el usuario, como se puede observar en la imagen de la Figura 6, para producirle la sensación de estar conduciendo una motocicleta [44]. Figura 6. Cartel promocional de la máquina Sensorama en el que se aprecia a Morton Heilig haciendo uso de la misma [45]. No ha sido hasta la década de 2010 cuando la Realidad Virtual y la Realidad Aumentada ha comenzado a llegar al público general y a desarrolladores e investigadores independientes, integrada en los dispositivos móviles inteligentes. 3.3.2 Realidad Aumentada: Tipos de dispositivos A continuación, se estudiarán los diferentes tipos de dispositivos que permiten la integración de la Realidad Aumentada: • Dispositivos móviles inteligentes: los dispositivos móviles han permitido que el público general pueda experimentar la Realidad Aumentada. Aplicaciones utilizadas globalmente como Snapchat, Instagram o el conocido videojuego Pokemon Go - 22 - implementaron esta tecnología en el ámbito del ocio y entretenimiento con una gran recepción [46]. • Gafas de Realidad Aumentada: este tipo de gafas entran dentro del grupo de los denominados HMD, del inglés Head Mounted Displays. Estos dispositivos se encuentran actualmente en pleno desarrollo e innovación, mostrando cada año nuevas versiones con más capacidades. Ha sido en los últimos años cuando este tipo de gafas se ha podido aplicar a la Realidad Aumentada, ya que hasta entonces tan sólo estaban enfocados a la Realidad virtual. Su uso solía estar muy acotado al ámbito del entretenimiento, pero también comienzan en otros sectores como la medicina, la construcción e industria [47]. Este tipo de dispositivos sería el objetivo último de este proyecto, aunque aún no se haya podido trabajar con ellos, ya que permitirán al fisioterapeuta ver la información en elementos virtuales sin ocupar sus manos con un dispositivo móvil. Por ejemplo, en algunas partes del mundo el público ya puede adquirir por el mismo precio que un HMD de Realidad Virtual las gafas de Realidad Aumentada NReal [48]. Estas gafas utilizan tecnologías de computación espacial, que permiten hacer un seguimiento de la posición del usuario en tiempo real, y reconocimiento de imagen y superficies. Todo ello haciendo uso del sistema operativo Android, el sistema operativo que actualmente utiliza la mayoría de los dispositivos móviles del mercado, ya que deberán ser conectadas por cable a un dispositivo móvil y funcionarán como una interfaz más de dicho dispositivo. Esto facilita extraordinariamente la labor de los desarrolladores, ya que puede comenzarse el desarrollo de la estructura de una aplicación de Realidad Aumentada sabiendo que al final sólo habrá que hacer pequeños cambios para adaptarla a los nuevos dispositivos [49]. Como se puede observar en la Figura 7, el diseño de estas gafas cada vez se acerca más al de unas gafas tradicionales, dejando atrás los visores y HMDs. Figura 7. Imagen promocional de una persona utilizando las gafas de Realidad Aumentada NReal [50]. - 23 - 3.3.2 Realidad Aumentada: Tipos de implementación Actualmente, se considera que hay cuatro principales tipos de implementación de la Realidad Aumentada en los diferentes dispositivos [51]: • Realidad Aumentada por geolocalización: en este tipo de implementación, el sistema recibe la información que obtiene de un sensor de geolocalización GPS (Global Positioning System) y conexiones inalámbricas para crear una experiencia de Realidad Aumentada en función de dicha localización. Ejemplos de uso de esta tecnología son el videojuego Pokemon Go y la aplicación Google Maps. • Realidad Aumentada con marcadores: esta implementación se basa en la utilización de cualquier imagen o modelo tridimensional, al que se llama marcador, como objetivo a reconocer en la imagen. Cuando se reconoce dicho marcador, se toma como referencia para mostrar cualquier información virtual en la imagen. Dependiendo de la implementación, el marcador puede utilizarse sólo para iniciar o activar el proceso de muestra de la información virtual, o puede ser utilizado como referencia durante todo el proceso. En el primer caso, si el marcador deja de ser captado en la imagen, el contenido virtual seguirá siendo mostrado; en el segundo el contenido virtual se perderá [52]. • Realidad aumentada sin marcadores: con esta implementación el sistema de Realidad Aumentada identifica el entorno que rodea al usuario, analizando la imagen que se recibe por cámara. De esta forma es capaz de situar y referenciar la posición de los objetos virtuales, detectar planos y formas predefinidas en el entorno real…etc. Este tipo de implementación exige una mayor capacidad de procesamiento que las dos anteriores, ya que conlleva un análisis de la imagen más exhaustivo. El mejor ejemplo de este tipo de implementación sigue siendo Ikea Place. Con la aplicación, se puede comprobar cómo quedarían los muebles de la empresa en el hogar de forma realista. La aplicación detecta superficies planas sobre las cuales se pueden colocar los muebles y accesorios virtuales como se observa en la Figura 8 [53]. - 24 - Figura 8. Usuario utilizando la aplicación de Ikea Place en su móvil [53]. Para este proyecto se utilizará la Realidad Aumentada con marcadores, ya que, al ocurrir la actividad en un entorno controlado, y no suponer un problema la utilización de marcadores, se podrán obtener mejores resultados con menor potencia utilizando esta metodología. En estecaso, la Realidad Aumentada por geolocalización sería prácticamente inútil, y la Realidad aumentada sin marcadores produciría resultados menos precisos en cuanto a la posición de la información virtual [54]. 3.3.4 Realidad Aumentada: Plataformas de desarrollo A continuación, se hace una breve explicación de cada una de las opciones tenidas en cuenta para el desarrollo de la interfaz de Realidad Aumentada. Vuforia El SDK de Vuforia [55] puede implementar la Realidad Aumentada con marcadores, ya que incorpora reconocimiento de imágenes y formas tridimensionales, y también puede implementar la Realidad Aumentada sin marcadores, pues incorpora reconocimiento de superficies en tiempo real. Está enfocado principalmente a dispositivos móviles, aunque sus últimas versiones incluyen soporte para gafas de Realidad Aumentada. Está diseñado para ser utilizado en conjunto con el motor gráfico multiplataforma Unity Engine [56]. ARCore (Google Play Services for AR) Google Play Services for AR [57], antes denominado ARCore, es el SDK desarrollado por Google para el desarrollo de aplicaciones de Realidad Aumentada. Su primera versión fue lanzada en marzo de 2018 como respuesta al ARKit de Apple [58]. - 25 - ARCore cuenta con capacidad para detectar y medir el movimiento, lo que permite al dispositivo relativizar su posición con respecto al entorno en el que se encuentra; capacidad para analizar el entorno, conseguida mediante la detección de planos y puntos de interés en la imagen; y estimación de luz, que permite al dispositivo renderizar los objetos virtuales en función de las condiciones de luz que detecte en el entorno. Este SDK, ya que ha sido diseñado por Google, está especialmente diseñado para trabajar con dispositivos Android (sistema operativo creado por Google) y, de nuevo, Unity Engine. Wikitude Wikitude fue uno de los pioneros en lo que se refiere a la Realidad Aumentada tal y como la conocemos actualmente. La primera versión de este SDK se lanzó en 2008, y ya incluía reconocimiento de marcadores [59]. En sus últimas actualizaciones incluye soporte para ARCore y ARKit. Para este proyecto se ha elegido utilizar ARCore por su flexibilidad y sencilla integración con otras tecnologías y herramientas que se utilizarán en el desarrollo del proyecto. 3.3.3 La Realidad Aumentada en la rehabilitación Los mayores retos a la hora de utilizar la realidad aumentada en medicina son la adopción y familiarización tanto del paciente como del trabajador a estas nuevas tecnologías, y hasta hace poco, su alto precio. A diferencia de la Realidad Virtual, en la que el mundo real es sustituido completamente por un entorno virtual, la Realidad Aumentada no reemplaza el mundo real, sino que añade información virtual sobre el mundo real que observa el usuario. La aplicación de la Realidad Aumentada en la ingeniería de rehabilitación se ha convertido en el nuevo paradigma para la investigación en tecnologías asistenciales [60]. En numerosos estudios se ha demostrado que la aplicación de este tipo de tecnologías puede favorecer en gran medida la rehabilitación del paciente [61] [62]. En 2010 finalizó el desarrollo de un Sistema de Entrenamiento Adaptativo con Realidad Mixta para pacientes en rehabilitación tras haber sufrido un infarto, principalmente enfocado a pacientes que sufren hemiparesia. El sistema proporcionaba datos en tiempo real sobre los patrones de movimiento - 26 - del brazo y torso afectados del paciente al realizar la acción de agarre, y enviaba al paciente señales musicales y visuales que contribuían a la estimulación y motivación del paciente durante las sesiones de fisioterapia [61]. En 2018 J. Monge y O. Postolache crearon un sistema inteligente para la rehabilitación de tren inferior en pacientes que combina la realidad aumentada, la gamificación y sensores inalámbricos que portaba el paciente. Con este sistema se consiguió aumentar considerablemente la motivación y compromiso del paciente con la terapia [62]. En 2011 se realizó un estudio que presentaba un entorno de entrenamiento para la rehabilitación del movimiento de dedos y manos en pacientes que habían sufrido un infarto. Este sistema integraba la Realidad Aumentada con dispositivos asistenciales para el proceso de repetición de agarrar-soltar [63]. En 2007 se desarrolló GenVirtual, una aplicación para ayudar a pacientes con la coordinación de funciones motoras. La aplicación consistía en un juego musical que incluía interacción con los dedos de manos o pies [64]. En comparación con estas investigaciones, este proyecto está principalmente enfocado en crear una interfaz de Realidad Aumentada para el fisioterapeuta en lugar de para el paciente. Haciendo uso de las tecnologías y los dispositivos comentados anteriormente, puede implementarse una interfaz en la que el terapeuta pueda ver toda la información que necesita en tiempo real, si desviar su atención del paciente y manteniendo las manos libres como en una sesión de rehabilitación tradicional. - 27 - CAPÍTULO IV. MARCO METODOLÓGICO En el presente capítulo se hablará de las diferentes herramientas y métodos utilizados durante el desarrollo de la aplicación para la consecución de los objetivos estipulados. 4.1 Software El software que se utilizará durante el desarrollo del proyecto será: • El motor gráfico Unity Engine como plataforma de desarrollo de la aplicación Android. • La API de ARFoundation para integrar la Realidad Aumentada del ARCore SDK en el proyecto de Unity. • El SDK de Agora para integrar la transmisión de vídeo en el proyecto de Unity. A continuación, se explica brevemente las posibilidades que ofrece cada herramienta y la forma en que han ayudado a conseguir los objetivos planteados en el capítulo 2. Unity: Plataforma de desarrollo en tiempo real Unity Engine es un motor gráfico multiplataforma creado por la compañía danesa Unity Technologies [65]. Con esta plataforma de desarrollo se ha creado la aplicación Android que integra la interfaz de Realidad Aumentada en un dispositivo móvil. En la Figura 9 se puede observar una captura de la interfaz principal con la que se ha trabajado durante el desarrollo del proyecto. En la imagen pueden diferenciarse las diferentes secciones: • Administrador de recursos (izquierda): desde el administrador de recursos se puede encontrar cualquier fichero que esté contenido en el proyecto. • Consola (zona inferior): en la consola se pueden leer los errores y logs de compilación y ejecución de las aplicaciones. • Editor de escena (centro izquierda): en el editor de escena se puede ver el entorno tridimensional de la aplicación, añadir y eliminar elementos, y editar los elementos que en él se encuentren. • Vista de juego (centro): la vista de juego se corresponde con lo que se verá en pantalla cuando la aplicación se ejecute. Una vez se ejecuta la aplicación desde el editor de - 28 - Unity, en la vista de juego se podrá interactuar con la aplicación tal y como se haya diseñado. • Jerarquía de la escena (centro derecha): en la vista de jerarquía de la escena se pueden seleccionar, añadir o eliminar elementos de la escena, y observar y cambiar las relaciones entre ellos. • Inspector (derecha): en el inspector se muestra la información del elemento actualmente seleccionado. Desde el inspector se pueden observar y editar las características de un elemento y todos sus componentes. Figura 9. Captura de la interfaz básica del editor de Unity utilizada para el desarrollo del proyecto. Unity incluye una tienda de recursos integrada en el editor en la que cualquier desarrollador puede mostrar sus aportaciones, las cuales pueden ser descargadas, de forma gratuita o por el precio estipulado por el desarrollador, y ser importadas en el proyecto de forma inmediata. De esta tienda se ha importado el SDK de Agora. También incluyeun administrador de paquetes, del se que han obtenido los paquetes AR Foundation (mínima versión 3.0.1), ARCore XR Plugin (mínima versión 3.0.1) y ARKit Plugin (mínima versión 3.0.1) para poder utilizar la Realidad Aumentada de ARCore mediante ARFoundation en el proyecto. - 29 - Además, Unity incluye la descarga del entorno de desarrollo o IDE (del inglés Integrated Development Environment) Visual Studio, el cual se utilizará para escribir el código y la lógica necesaria de nuestra aplicación. Desde el planteamiento del proyecto se tuvo clara la utilización de Unity, ya que proporciona una muy buena integración con los sistemas operativos móviles y las realidades mixtas que ningún otro motor gráfico consigue igualar. Para la integración de la realidad aumentada en un proyecto, Unity hace uso de un conjunto de APIs llamado ARFoundation, compatible con las principales tecnologías de Realidad Aumentada del mercado. ARFoundation: API de integración de Realidad Aumentada ARFoundation es el conjunto de APIs que Unity brinda a sus usuarios para integrar la Realidad Aumentada en sus proyectos. Se ha utilizado para integrar el SDK de ARCore en la aplicación, sin excluir futuras posibles implementaciones con otras plataformas de integración de Realidad Aumentada, como ARKit. ARFoundation ofrece muchas posibilidades para integrar la Realidad Aumentada [67], pero debido a las capacidades del dispositivo utilizado durante del desarrollo, las utilizadas han sido: • Rastreo y detección de imágenes bidimensionales. • Renderizado optimizado de la imagen recibida por cámara en la pantalla táctil como fondo del contenido virtual de la experiencia de Realidad Aumentada. Los principales componentes para conseguir las capacidades enumeradas anteriormente que se utilizan en la propia escena de Realidad Aumentada en Unity son [67]: • ARSession: componente que controla el ciclo de vida (sesión) de la aplicación de Realidad Aumentada. También se encarga de la instalación del software necesario para el correcto funcionamiento de la aplicación, y contiene el sistema encargado del rastreo de puntos de referencia en el entorno. • ARSessionOrigin: es el componente encargado de traducir las posiciones y orientaciones de los planos y puntos de interés detectados a posiciones, orientaciones y escalas finales en Unity. Establece el punto de origen de la sesión en la escena de Unity. - 30 - • AR Camera Manager: componente encargado de la recuperación de las imágenes de la cámara y el control de la estimación de la iluminación. • AR Camera Background: renderiza la imagen capturada por la cámara como fondo de la pantalla. • Tracked Pose Driver: componente asociado a la cámara que establece la posición y orientación de ésta con respecto a la información recibida por el rastreo de la imagen. • AR Input Manager: componente que ayuda Tracked Pose Driver a determinar la posición y rotación del propio dispositivo. • AR Raycast Manager: este componente permite determinar el lugar de intersección de un rayo definido por origen y dirección haciendo uso sólo del análisis y rastreo de imagen. A parte, habría que añadir cada trackable, o tipo de objeto a detectar, y su manager o gestor. Algunos de estos trackables son el ARPlane (con su ARPlaneManager) que detecta superficies planas, el ARPointCloud (con su ARPointCloudManager) que detecta puntos de interés, o el ARFace (con su ARFaceManager) que detecta caras humanas. Para poder utilizar ARFoundation en el proyecto de Unity, se deberán descargar los paquetes AR Foundation (mínima versión 3.0.1), ARCore XR Plugin (mínima versión 3.0.1) y ARKit Plugin (mínima versión 3.0.1). Agora SDK: transmisión de vídeo en tiempo real El SDK (del inglés Software Development Kit) de Agora nos permite desarrollar aplicaciones que utilicen tecnología de comunicación en tiempo real. Es compatible con multitud de plataformas y sistemas operativos como Android iOS, Windows, macOS, web o Unity. Desde Agora ofrecen SDK de transmisión de vídeo en tiempo real, audio en tiempo real, mensajería, grabación en la nube…etc [68]. Para este proyecto se ha utilizado el SDK de transmisión de vídeo integrado en Unity. Aunque el objetivo principal del proyecto es el desarrollo de una interfaz para el fisioterapeuta, se quiere aprovechar el desarrollo para incluir la posibilidad de enviar la imagen de cámara en tiempo real a una aplicación paralela con la que el paciente podría observar estos y otros datos durante la sesión de terapia, lo cual puede ayudar a mejorar tanto a la aceptación por parte del propio paciente de su condición, como la efectividad de las sesiones, como - 31 - demuestran estudios como [8]. Se utilizará Agora SDK para transmitir la imagen de cámara entre estas aplicaciones. Además, Agora ofrece muchas facilidades a la hora de integrar este SDK con otros de realidad aumentada como ARCore o ARKit, por lo que se adecúa perfectamente a las necesidades del proyecto [69]. Para la integración del SDK en el proyecto, se puede descargar e importar directamente desde la tienda de recursos de Unity. 4.2 Hardware Plantillas Moticon Las plantillas con sensores de presión de Moticon serán utilizadas para proporcionar al fisioterapeuta más datos sobre la marcha del paciente durante la sesión de terapia. En la versión con la que se ha trabajado cada plantilla cuenta con 16 sensores de presión repartidos por toda la plantilla. También, cada una de ellas contiene un sensor inercial en el centro de la plantilla. Entre las características de los sensores de presión se incluyen [70]: • Rango de presión detectable de 0 a 50 N/cm2. • Precisión de la medida 0.25 N/cm2. • Histéresis menor igual al 1%. • Calibrado en tiempo real. En la Figura 10 se puede observar la distribución de los sensores de presión y el sensor inercial en las plantillas. Figura 10. Esquema de las plantillas de presión Moticon Smart Insoles en el que se puede apreciar la posición de los 16 sensores de presión (izquierda) y la posición del sensor inercial (derecha) [70]. - 32 - Las principales características del sensor IMU de cada plantilla son [70]: • Detecta aceleración en los ejes tridimensionales. • Rango de detección de aceleraciones: de 0 a 16 veces la aceleración de la gravedad en cualquier sentido. • Precisión de la medida de aceleración: 0.488 mg. • Rango de detección de velocidad angular: de 0 a 2000 grados por segundo, en cualquier sentido. • Precisión de la medida de velocidad angular: 70 miligrados por segundo. • Calibración en tiempo real. Respecto a la adquisición y transmisión de datos, se puede seleccionar una tasa de captación de datos de 10 Hz, 25 Hz, 50 Hz o 100 Hz. También ofrecen la posibilidad de guardar los datos detectados y no transmitirlos en tiempo real, si sólo se quiere hacer un análisis posterior al uso [70]. También se ha de destacar que junto con las plantillas Moticon ofrece su propio software que facilita el análisis y visualización de los datos. Lamentablemente, no incluye la capacidad de integrar las visualizaciones en una interfaz propia, mucho menos de Realidad Aumentada, por lo que se ha trabajado con los datos recibidos de las plantillas sin que el formato de éstos haya sido tratado. Sensor inercial (IMU) Werium El sensor inercial Pro Motion Capture de Werium Assistive Solutions es capaz de medir el movimiento y realizar un informe biomecánico en tiempo real. Sus sensores le permiten hacer una correcta medición del movimiento en todas las articulaciones del cuerpo humano. Se especifica que cubre concretamente las articulaciones de hombros, cervical, lumbar, caderas, codos, muñecas, rodillas y tobillos, todas en los tres ejes de movimiento. Con la nueva solución de software que incluye se puede generar un informe en tiempo récord e incluir gamificación en la terapia. El dispositivoestá validado clínicamente por profesionales en fisioterapia. Su precio es de 949€ más IVA [71]. - 33 - CAPÍTULO V. DESARROLLO 5.1 Arquitectura del desarrollo A continuación, se explicará tanto el proceso de transmisión de los datos desde los sensores al dispositivo, el sistema de adquisición y transformación de dichos datos, y el proceso de creación de la interfaz de Realidad Aumentada. También se explicará la integración de Agora SDK para la retransmisión de vídeo a otra aplicación. En la Figura 11 se propone un esquema de alto nivel del proceso general. Figura 11. Esquema de alto nivel del proceso de transmisión y tratamiento de los datos de los sensores. 4.1.1 Transmisión de los datos Sensor inercial Pro Motion Capture El sensor inercial Pro Motion Capture transmite los datos mediante una conexión bluetooth con el dispositivo móvil. Al comienzo de la transmisión se transmiten las primeras líneas que indican que el objetivo está en proceso de calibración. Este proceso de calibración existe para establecer una correlación entre el IMU y el segmento anatómico en cuestión, que en este caso será el torso. Una vez el sensor y el software de Werium están enlazados, en cada transmisión de datos se transmiten los elementos de una matriz 3x3. Esta matriz es la matriz de rotación del propio sensor con respecto a la posición de calibración. Es en el sistema de adquisición donde a partir de esta matriz se obtendrán los ángulos de inclinación lateral, rotación y flexo- extensión. Plantillas de presión Moticon Las plantillas de Moticon también transmiten los datos por conexión bluetooth, con un rango de más de 5 metros. Las plantillas no integran ningún tipo de proceso de calibrado, simplemente envían los datos de presión y aceleración que detectan. En cada envío de datos las plantillas envían la siguiente información por cada una de las plantillas: - 34 - • Instante temporal en el que se ha tomado la muestra, tomando como cero el momento en el que se toma la primera muestra. • Presión que medida por cada uno de los 16 sensores, en N/cm2. • Aceleración en los ejes X, Y y Z, medida en g. • Velocidad angular respecto a los ejes X, Y y Z, medida en grados por segundo. • Fuerza total a la que está sometida la plantilla, en Newtons. • Posición del centro de presión en la plantilla en los ejes X e Y, relativo al tamaño de la propia plantilla, +1 siendo el extremo positivo y -1 siendo el extremo negativo. Estas cifras llegan al sistema de adquisición de datos, donde serán tratadas para poder mostrar información útil en la interfaz del fisioterapeuta. 4.1.2 Sistema de adquisición y tratamiento de datos Adquisición y tratamiento de los datos recibidos del sensor inercial Pro Motion Capture El sistema de adquisición de datos proporcionado por Werium consta de un controlador que monitoriza el estado del sensor y un Message Listener, u oyente. El controlador se encarga de buscar y establecer la conexión con el sensor IMU, y una vez que esta se establece comprueba su estado periódicamente. Con la conexión activa, el controlador añade cada uno de los mensajes que recibe del sensor a una cola. En cada nuevo frame durante la ejecución de la aplicación, el controlador envía el primer mensaje de esa cola al Message Listener, que ejecutará una lógica u otra en función de la naturaleza del mensaje. Si el mensaje es relativo a la conexión o desconexión del dispositivo, se informa por consola de el suceso. Si el mensaje es de otro tipo, primero se comprueba si es un mensaje del proceso de calibración, en cuyo caso se construye la matriz de rotación de calibración del dispositivo. Si el mensaje recibido no es de calibración, se calcula la matriz de rotación con respecto a la posición de calibración calculada anteriormente, y, a partir de ésta, se obtienen los ángulos de rotación, inclinación lateral y flexo-extensión. Adquisición y tratamiento de los datos recibidos de las plantillas Moticon En el caso de las plantillas se ha construido un sistema similar al proporcionado por Werium para el sensor IMU. Una vez la conexión ha sido establecida, cada mensaje recibido se envía también a un Message Listener. El Message Listener comprueba que el mensaje no sea relativo a la conexión de la plantilla, y ejecuta la lógica que separa cada dato informativo del mensaje en una variable para facilitar su tratamiento. Pero para el fisioterapeuta, los datos de la presión - 35 - a la que es sometido cada sensor no aportan información útil, ya que ese dato de presión variará en función del peso del paciente. Por ello se ha introducido una fase de calibrado con respecto a la presión máxima detectada. Durante esta fase se guarda el mayor valor de presión de los obtenidos en todos los sensores de la plantilla, y se normalizan todos los valores con respecto a él. De esta forma se obtienen unos valores que, aunque no reales, son de mayor utilidad para el fisioterapeuta que los datos sin normalizar, y facilita la tarea de expresarlos visualmente en la interfaz. Esta lógica se puede observar en el código del script “InsoleDataReader.cs” mostrado en la Figura 12. Figura 12. Captura del código de la función “parseFootPrintData”, contenida en el script “InsoleDataReader.cs”. - 36 - 5.2 Diseño de la interfaz Para el diseño de la interfaz se han tenido en cuenta las necesidades del fisioterapeuta y el tipo de datos que se quieren transmitir. En la Figura 13 se puede observar una captura de la interfaz de Unity en la que se aprecian los elementos en la escena. Entre ellos, cabe destacar los elementos pertenecientes a ARFoundation ARSession y ARSessionOrigin, que contiene la ARCamera, y los canvas que se irán mostrando en las diferentes fases de ejecución de la aplicación. Principalmente, la aplicación se presenta en dos fases, la de conexión de los sensores al dispositivo, y la de la interfaz de Realidad Aumentada una vez que los dispositivos están conectados. Figura 13. Captura de la interfaz de Unity en la que se pueden apreciar los elementos en escena que intervendrán en la aplicación. Algunos elementos han sido censurados debido a que son propiedad intelectual de Werium. 5.2.1 Fase de conexión con los sensores En esta fase, que comienza al iniciar la aplicación, se muestra al usuario el canvas “P. Conf Terapia”, el cual contiene dos botones, “btn_connectSensor” para intentar conectar con el sensor inercial (IMU), y “btn_connectInsoles” para intentar conectar con las plantillas de presión, como se observa en la Figura 14 a la izquierda. Una vez se pulsa en uno de los botones, la aplicación intentará establecer la conexión con el dispositivo. Si lo consigue, el mensaje del - 37 - botón cambiará a “Sensor connected”; mientras no lo consiga el mensaje que mostrará el botón será “Waiting for the sensor…”, tal y como muestra la Figura 14 en el centro. Una vez que ambos sensores están conectados, se mostrará al usuario el canvas “P.Preparar Sensor”, que informa al usuario de que ambos sensores están conectados y contiene el botón “btn_startSession” que al ser pulsado da el paso a la fase de muestra de la interfaz de Realidad Aumentada, como se muestra en la Figura 14 a la derecha. Todos los elementos nombrados pueden encontrarse también en el panel de jerarquía de la Figura 13. Figura 14. Capturas de las pantallas que se muestran al usuario durante la fase de conexión con los sensores de la aplicación 5.2.2 Fase de interfaz de Realidad Aumentada En este apartado se explica el procedimiento de creación y diseño de los elementos gráficos que muestran los datos obtenidos de los sensores, y los diferentes elementos que componen la interfaz en esta fase de la ejecución de la aplicación. Creación y diseño de los elementos gráficos de datos de sensores En una primera fase de la creación de la aplicación, se hizo usode una interfaz en dos dimensiones en un canvas, que mostraba la información de los sensores al usuario. Esta interfaz - 38 - se creó para que la fase de desarrollo de la conexión y tratamiento de datos recibidos por los sensores no dependiese de la implementación de la Realidad Aumentada en el proyecto. Los elementos que componían esta interfaz eran “balanceZone2D”, al cual pertenecían los elementos que mostraban la información de los sensores, y “heartRateUI”, elemento que se añadió a la interfaz (Figura 15 abajo derecha) como información complementaria básica que monitorizaría el ritmo cardíaco del paciente recibiendo ese dato de otro dispositivo externo, ya que se considera un dato importante a tener en cuenta cuando se trabaja con pacientes con parálisis [72]. En la Figura 13 puede apreciar la situación que estos elementos tenían en el panel de jerarquía, aunque en una fase siguiente del proyecto se hayan desactivado. En la Figura 15 puede apreciarse el aspecto que tenía dicha interfaz. Figura 15. Captura de la interfaz inicial en dos dimensiones que mostraba los datos recibidos de los sensores. El elemento “balanceZone2D” estaba compuesto por: • Imagen esquemática de las plantillas de presión (Figura 15 abajo a la izquierda): Para expresar la información de los sensores de presión de las plantillas se ha creado una textura partiendo del esquema de la Figura 10. Para mostrar el dato normalizado de la presión de forma gráfica se ha optado por una gama de colores cálidos utilizando un gradiente blanco-amarillo-rojo. Se ha utilizado el blanco como color que representa el vacío, amarillo como color intermedio, y rojo como color límite, - 39 - siguiendo lo que se aconseja en estudio psicológicos como [73]. En esta primera fase se analizaba la textura en el código pixel a pixel, en función de la posición del pixel se determinaba el dato de qué sensor debía mostrar y se aplicaba el color del gradiente que lo representase. • Slider que representaba el ángulo de rotación (Figura 15 arriba): este slider mostraba el ángulo de rotación que se recibía del sensor. El extremo izquierdo representaba - 180°, y el extremo derecho 180°, quedando los 0° en el centro. Tras un análisis de esta primera configuración, se determinó que sería más cómodo para el fisioterapeuta el mantener la información que se muestra en pantalla lo menos dispersa posible. De esta forma éste sería capaz de recibir la información visual en el menor tiempo posible. Junto con este cambio, se convirtió el slider recto en un slider en forma de corona, con los 0° situados en el eje frontal hacia el que estaría orientado el usuario según la posición del esquemático de las plantillas. Esta nueva distribución combinada de ambos elementos gráficos facilitaba una más rápida comprensión de la información, como se aprecia en la Figura 16. Figura 16. Captura de las modificaciones hechas en la interfaz de dos dimensiones tras analizar la primera distribución de los elementos. Tras integrar la Realidad Aumentada en el proyecto, se procedió a redistribuir la interfaz de dos dimensiones para mostrar la información de forma adecuada utilizando esta tecnología. Ya que se está tratando con pacientes durante la utilización de un exoesqueleto de tren inferior, se ha decidido que mostrar la información en la zona superior del cuerpo del paciente no tiene sentido. La información del sensor inercial será mostrada en la zona de la cadera, donde se sitúa dicho sensor, y la información de cada plantilla se mostrará al lado de cada pierna del paciente. De esta forma el fisioterapeuta puede ver la información sin desviar la mirada de la zona del cuerpo del paciente en la que transcurre la acción. De nuevo, se hicieron cambios en los elementos gráficos: - 40 - • La corona que representa la rotación del sensor se ha modificado y convertido en una semicircunferencia, ya que durante las sesiones de fisioterapia se espera que el paciente siga la trayectoria frontal, sin dar media vuelta. Este cambio se lleva a cabo porque al situar el elemento virtual de la corona completa alrededor de la cadera del paciente, ésta se superpone sobre el propio paciente, lo que puede llevar a confusión y dificultar la comprensión de la información. El resultado es, como se observa en la Figura 17, una semicircunferencia alrededor de la zona frontal de la cadera del paciente. • Las texturas de los esquemáticos de las plantillas se han separado, situando cada una a un lado de las piernas del paciente, a la altura del muslo. También se hicieron cambios en la forma en la que se renderiza cada una de las texturas de las plantillas en pantalla, ya que analizar la textura píxel a píxel afecta al rendimiento del dispositivo móvil, lo cual se hace más evidente cuando se ha de mostrar la información utilizando la Realidad Aumentada. Para solucionar el problema se dividió la imagen en 16 texturas, una por cada sensor de la plantilla. Cada una de estas texturas se ha importado en Unity como un Sprite, y se ha creado un GameObject que contiene a todas ellas, posicionándolas manualmente para representar la “huella”. Esto permite determinar el color de cada una de estas texturas de forma individual, sin necesidad de analizarlas píxel a píxel en el código. Ya que cada una de las texturas completas de la plantilla tiene una resolución de 300 x 890 píxeles, por lo que la orden de determinar el color de una sección de la textura se ejecutaba 267.000 veces. Tras la modificación, la orden de determinar el color de una textura se ejecuta 16 veces, por lo que la mejora en rendimiento fue notable. Para que los elementos virtuales se muestren, se deberá captar en pantalla un marcador definido en la aplicación. Este marcador debe tener suficientes puntos de interés para poder ser captado por la cámara de forma correcta. Como marcador provisional se ha utilizado el símbolo de Unity, que se situará sobre el sensor inercial en la parte frontal de la cadera del paciente. Una vez se capte el marcador se mostrarán los elementos definidos anteriormente como se observa en la Figura 17. - 41 - Figura 17. A la izquierda, los elementos que muestran la información de los sensores en el entorno virtual de Unity. A la derecha, los mismos elementos mostrando la información simulada que reciben en el entorno real, sobre el marcador elegido (logo de Unity). A continuación, se procede a explicar cada uno de los diferentes elementos que componen la interfaz en esta fase de la ejecución de la aplicación. Elementos en pantalla durante la fase de muestra de información Como se puede observar en la Figura 17, en esta fase también se muestran dos botones en pantalla que se corresponden con los elementos que se pueden observar en el panel de jerarquía de la Figura 13 “btn_start_stream” y “btn_togglecalibrate”. El botón “btn_start_stream” activa la transmisión de vídeo, permitiendo al usuario comenzar a enviar el vídeo que se capta por cámara en el canal “ARExoesqueleto” asociado a esta aplicación con Agora SDK, sin incluir los elementos de Realidad Aumentada. Mientras se está transmitiendo vídeo el texto del botón cambia a “Stop video stream” y se muestra un mensaje que informa del canal en el que se está retransmitiendo, como se observa en la Figura 18 (centro y derecha). Si el usuario quiere parar de transmitir el vídeo, sólo tiene que pulsar el botón de nuevo, lo que parará la transmisión y cambiará el texto del botón de nuevo a “Start video stream”. El botón “btn_togglecalibrate” activa y desactiva el estado de calibración de las plantillas, de tal forma que el usuario puede recalibrar en cualquier momento si cree que la información que está viendo no se muestra correctamente. Cuando no se está calibrando el botón muestra el mensaje “Start calibration” - 42 - (Figura 18 derecha), cuando seestá calibrando muestra el mensaje “Stop calibration” (Figura 18 izquierda y centro). Figura 18. (Izquierda) Captura que muestra el estado de la interfaz en su estado inicial, sin transmitir vídeo y con la calibración de las plantillas activada. (Centro) Captura que muestra la interfaz con la transmisión de vídeo y la calibración de las plantillas activas. (Derecha) Captura que muestra la interfaz con la transmisión de vídeo activa y la calibración de las plantillas desactivada. 5.3 Integración de Agora SDK para la transmisión de vídeo Como complemento para mejorar el desempeño y la aceptación del paciente durante las sesiones [8], se ha integrado un sistema para que pueda observarse desde la perspectiva del fisioterapeuta si está haciendo uso de un dispositivo que le permita utilizar la Realidad Aumentada. Una vez instalados los paquetes de ARFoundation que se nombran en la sección 4.1 de esta memoria, para integrar el SDK de Agora en el proyecto se ha descargado e importado el paquete Agora Video SDK for Unity, gratuito y disponible en la Unity Store [74]. Una vez importado, se ha partido del proyecto de prueba para AR que provee Agora [75], para integrar el streaming de vídeo junto con ARFoundation. Se deberán configurar algunos campos de la configuración del proyecto para asegurar un correcto funcionamiento en dispositivos Android. En las opciones de configuración del proyecto (menú Project Settings), en la lista de la izquierda, se debe seleccionar la pestaña Player. A continuación, se debe seleccionar la - 43 - pestaña Android a la derecha, y en la sección Other Settings se deben establecer los valores de los siguientes campos: • Auto Graphics API: desactivar la opción si está activada y seleccionar OpenGLES3 como única API, tal y como se aprecia en la Figura 19. Figura 19. Captura de la configuración del proyecto. • Desactivar la opción de Multithreaded Rendering. • Establecer la opción de Minimum API Level en Android 7.0 ‘Nougat’ (API level 24). El funcionamiento de Agora es sencillo y efectivo. Primero se ha de crear una cuenta de usuario en su página oficial [76]. Se debe crear un proyecto nuevo, cuyo Application ID se debe especificar en un objeto de la escena que integre el script Home.cs que provee el SDK de Agora. Cuando el usuario clicka en el botón “btn_start_stream” (Figura 18 izquierda), se crea una instancia del cliente por el que se retransmitirá el vídeo, y se una al usuario al canal especificado (“ARExoesqueleto”) Agora permite a sus usuarios crear un canal temporal por el que se envía el vídeo (Figura 20 izquierda). Antes de unirse al canal se activa el envío de vídeo a través de éste, y la posibilidad de que se unan receptores. También se especifica la configuración de la cámara, y si se quiere utilizar la cámara frontal o trasera del dispositivo (Figura 20 derecha). - 44 - Figura 20. (Izquierda) Captura de la función onJoinButtonClicked() del script Home.cs de Agora SDK que se ejecuta al clickar en el botón de comenzar a transmitir vídeo, modificada para utilizar el canal designado. (Derecha) Captura del código de la función join(), ejecutada desde el cliente de Realidad Aumentada de AgoraSDK. Para ver el vídeo desde otro dispositivo en tiempo real, sólo se necesitará una aplicación con Agora integrado, ése Application ID específico, y conectarse al canal en el que se esté transmitiendo el vídeo como receptor. Para comprobar que la transmisión de vídeo funciona de forma correcta se ha creado una aplicación sencilla que actúa como receptora, y consta de un canvas en el que se muestra el vídeo, y un botón que conecta y desconecta del canal definido en el código, como se puede observar en la Figura 21. Figura 21. Captura de la aplicación de prueba recibiendo el vídeo enviado captado desde la aplicación de Interfaz de Realidad Aumentada con el dispositivo Android. Se puede observar el canvas que muestra el vídeo (centro), y el botón que conecta y desconecta del canal (abajo). - 45 - CAPÍTULO VI. RESULTADOS Y DISCUSIÓN Respecto a los resultados obtenidos, puede determinarse que los dos objetivos generales de desarrollo de una interfaz que integra Realidad Aumentada para el fisioterapeuta, y la implementación de un sistema que permita compartir el vídeo captado por el fisioterapeuta con el paciente, han sido cumplidos. Sin embargo, esta afirmación no ha podido ser sustentada con pruebas con pacientes reales, debido a la situación excepcional causada en 2020 por la COVID- 19. De los objetivos específicos que se proponen en el capítulo 2 de esta memoria se puede determinar que se han cumplido: i. Investigar y seleccionar los datos que podrían ser de mayor utilidad para el fisioterapeuta. ii. Investigar, seleccionar y diseñar las diferentes formas de mostrar la información que se reciba en la interfaz. Los tres objetivos restantes sólo se han cumplido de forma parcial, debido a limitaciones provocadas por la situación de pandemia y por la necesidad de más tiempo para cumplirlos, lo que se tratará en mayor profundidad en el siguiente apartado. Limitaciones La situación de pandemia durante la mayor parte de 2020 ha supuesto un reto extra para el desarrollo del proyecto. Esta situación ha supuesto que la interacción con el CSIC se haya visto afectada ya que apenas ha sido posible acudir al Grupo de Neurorrehabilitación en el Instituto Cajal para hacer pruebas durante el desarrollo, lo que ha provocado que se trabaje principalmente simulando los datos recibidos de los sensores, lo que ha supuesto una dificultad añadida y puede ser causa de futuras imprecisiones en los algoritmos implementados. Para implementar las simulaciones se ha creado un objeto en la escena de Unity que implementa el script “BehaviourSimulator.cs”, que es el encargado de simular el envío de datos por parte de los sensores. Los datos de las pruebas de dichos sensores fueron recopilados en ficheros de texto sin formato, sin darles ningún tratamiento. El script nombrado hace que, al activarse en objeto que lo contenga en la escena de Unity, se lean todos los datos que contengan esos ficheros de texto y, una vez se reciba la señal de comenzar a simular, se hace uso de dos corrutinas, una que simula el envío de datos de las plantillas y otra el envío de datos del sensor - 46 - inercial, para enviar una línea de datos de las contenidas en los ficheros de texto cada cierto período de tiempo. El código de este script puede observarse en la Figura 22. Figura 22. Captura del código del script BehaviourSimulator.cs. Esta situación también ha provocado que la consecución del hardware necesario para el desarrollo del proyecto se retrasase (como fue el caso con las plantillas de Moticon) o fuese imposible, por lo que se ha tenido que trabajar desde el propio hogar y con dispositivos móviles propios que no cuentan con soporte para todas las posibilidades y tecnologías que ofrece la Realidad Aumentada, no habiéndose podido efectuar pruebas en múltiples dispositivos. También ha sido una gran limitación el no haber podido realizar un experimento con pacientes - 47 - y fisioterapeutas reales para validar la utilidad de la aplicación y poner en el foco posibles problemas no detectados durante el desarrollo. Tampoco se ha podido incluir un exoesqueleto en las pruebas para observar el efecto que pueda tener éste sobre los sensores, y cómo resulta la representación de Realidad Aumentada sobre el marcador. Además de la situación de pandemia, la falta de tiempo ha supuesto que no se pueda integrar el proyecto con el desarrollo en paralelo de otro proyecto que trabajaba en la creación de una interfaz de Realidad Aumentada enfocada al paciente de estas terapias, aunque se haya conseguido implementar el sistema para compartir vídeo. - 48 - CAPÍTULO VII. LÍNEAS FUTURAS DE DESARROLLO Quedan
Compartir