Está en la página 1de 5

ENTORNO GRFICO DE UN ENTRENADOR VIRTUAL DE PRTESIS DE MANO

INTRODUCCION: En la actualidad se estn desarrollando prtesis robticas cuyo enfoque est basado en las seales electromiogrficas captadas en los msculos de los miembros superiores del paciente y que son utilizadas para enviar rdenes hacia la prtesis [13], sin embargo el manejo de prtesis mioelctricas sigue siendo uno de los factores determinantes en la aceptacin de las mismas [4, 5, 6], dado que las seales electromiogrficas de los msculos son desconocidas para el hombre en cuanto a su manipulacin se refiere ya que todos los seres humanos manejamos nuestros miembros por impulsos nerviosos. Esto ha originado que muchas investigaciones se enfoquen en el desarrollo de prtesis virtuales [8, 9] debido a que permiten el entrenamiento y valoracin a un costo mucho ms bajo del requerido que cuando se emplean prtesis reales, por esta razn este proyecto pretende brindar a la comunidad cientfica una aplicacin con dicho fin. Los trabajos de modelacin y simulacin 3D del cuerpo humano son pocos y ms an los referentes a manos humanas, stos han tenido su auge en los ltimos aos debido al avance de las computadoras con ms capacidad para poder realizar simulaciones mecnicas. En general, los trabajos de simulacin son la primera aproximacin para buscar soluciones que tratan de recuperar la funcionalidad de la mano humana mediante la implantacin de prtesis activas. Actualmente existen entornos virtuales con este fin pero desarrollados con herramientas comerciales, lo cual implica al paciente un costo extra de adquisicin. En ese sentido este trabajo pretende realizar dicha aplicacin con herramientas software totalmente libre con caractersticas de tiempo real y que sea multiplataforma. Es as que para el desarrollo de la aplicacin se escogi el lenguaje de programacin ADA debido a su gran flexibilidad en cuanto a tiempo real se refiere y a que su entorno de desarrollo (GNAT) es uno de los mas potentes y completos entre los IDE libres disponibles. Otro aspecto relevante en el proyecto es que actualmente existen pocos proyectos relacionados con aplicaciones 3d escritos en lenguaje ADA, este trabajo pretende adems crear un vinculo entre una de las interfaces 3d estndar mas conocidas (Opengl) y el lenguaje de programacin ADA, dando as la posibilidad de tener un entorno virtual con caractersticas de tiempo real, multiplataforma y libre. De esta manera podr construirse un entorno virtual libre con el fin de que el paciente pueda desde cualquier computador y solo con la instalacin de un hardware de acondicionamiento de seales de bajo costo, entrenarse y mantener sus conexiones nerviosas en buen estado, preparndolas para la implantacin de la prtesis real. Cabe anotar que este proyecto se delimita exclusivamente a la creacin del entorno virtual y a la verificacin de su funcionamiento a travs de distintos agarres de la mano virtual mediante simulacin, la adecuacin de las seales electromiogrficas y por ende su acople con el entorno virtual quedan fuera del alcance de este proyecto y es objeto de otro estudio.

RESUMEN. CONTENIDO DEL DOCUMENTO DESCRIPCIN DEL SISTEMA: En este apartado se describe la forma en la cual se organiz y desarroll una aplicacin que representa en forma grfica 3D el modelo matemtico de una prtesis de mano robtica de 9GDL (Grados De Libertad) cumpliendo los requerimientos de usar herramientas de software libre, tanto en el entorno de programacin como en las dems herramientas, y adems que la aplicacin final proporcione caractersticas de tiempo real suave. De esta manera se da a conocer la forma de enlazar y emplear una herramienta software que esta basada en una de las libreras para la creacin de grficos mas conocidas como lo es OpenGL con uno de los lenguajes ms potentes en el desarrollo de aplicaciones de Tiempo-Real tal como lo es el lenguaje Ada, integrando adems una herramienta software que emplea las caractersticas de programacin orientada a objetos que brinda el lenguaje Ada a los desarrolladores. El entorno de desarrollo o IDE utilizado para la aplicacin en ADA es GNAT Programming Studio o GPS, este es el componente principal para el desarrollo de la aplicacin, puesto que en l se lleva a cabo la edicin de todo el cdigo fuente en lenguaje Ada de la aplicacin a desarrollar. Dado que el lenguaje nativo de la API Opengl es c, se necesit buscar un motor grfico cuyo cdigo fuente fuera escrito en ADA y cuyas funciones se basaran en Opengl, asi el motor grfico escogido fue GLOBE_3D (GL Object Based Engine for 3D ) dado que es un software de cdigo anierto que permite el despliegue de objetos 3D de cualquier clase o grupos de objetos conectados como una serie de cuartos con puertas abiertas de una forma sencilla y en tiempo real. [1]. Basicamente este motor grfico nos brinda toda la versatilidad de Opengl con el beneficio de estar totalmente desarrollado en ADA. Otras herramientas importantes para la creacin del proyecto son GtkAda y Glade. GtkAda es una librera para la creacin de interfaces graficas de usuario (GUI) que provee un amplio conjunto de Widgets (elementos de la interfaz, por ejemplo botones, cuadros de texto, barras de men, barras de progreso, ventanas, cuadros de dilogo, etc.) los cuales usan las caractersticas de la programacin orientada a objetos que brinda el lenguaje Ada a los desarrolladores. Por otro lado para facilitar el desarrollo de las interfaces graficas de usuario mediante la librera GtkAda se hace uso de GtkGlade el cual es un software que permite al usuario disear de manera visual el acabado final de la GUI de la aplicacin a ser desarrollada, el cdigo del proyecto creado en Glade es en XML que debe ser posteriormente transformado a lenguaje Ada mediante un archivo herramienta de transformacin llamado Gate u oprimiendo el boton Build de la ventana principal de Glade. Teniendo en cuenta todas las herramientas mencionadas, la integracin de stas para el desarrollo de la aplicacin viene de esta manera. En el proyecto creado por GPS se incluira GLOBE_3D, GtkAda y GtkGlade. Bsicamente GtkAda brinda los elementos (widgets) adecuados para poder interactuar con el entorno 3D que se desea desarrollar, asi Con GtkAda se crear toda la interfaz de usuario necesaria para manejar todas las opciones de la aplicacin y con Globe 3d se crear el entorno virtual el cual ser manejado por la interfaz de usuario.

DESARROLLO DE LA INTERFAZ DE USUARIO.

DESARROLLO DEL ENTORNO VIRTUAL Para entender mejor cmo funciona o cmo trabaja Opengl, veamos como se estructura su funcionamiento. Opengl es una librera grafica escrita originalmente en c que permite la manipulacin de grficos 3D a todos los niveles. Estas librera se ejecuta a la par con nuestro programa independientemente de la capacidad grafica de la maquina que usamos. Esto significa que la ejecucin se dar por software a no ser que contemos con hardware grafico especifico en nuestra maquina, sin embargo si se cuenta con una tarjeta aceleradora de grficos por supuesto se gozar de una ejecucin muchsimo mas rpida en tiempo real. As esta librera puede usarse bajo todo tipo de sistemas operativos e incluso usando una gran variedad de lenguajes de programacin. Podemos Encontrara variantes de Opengl para Windows, Unix, Linux, Iris, Solaris, Delphi, Java e incluso Visual Basic. [2]. Los pasos a seguir en el renderizado de una escena a pantalla es la siguiente. 1. Construir primitivas geomtricas (dada como descripcin matemtica: puntos, lneas, polgonos, imgenes y mapas de bits). 2. Ubicar los objetos en el espacio 3D y definir el punto de vista. 3. Calcular los colores de todos los objetos. 4. Convertir la informacin matemtica y de color de objetos a pxeles en la pantalla (rasterizacin). [3] El funcionamiento de Opengl est definido por el pipeline de procesamiento geomtrico, esto es que la geometra que se desea dibujar ser la entrada de nuestro pipeline grfico (arquitectura grfica) y como salida se obtiene una imagen en pantalla. Lo que ocurre con todos los puntos, vectores y polgonos desde que entran hasta que salen lo vemos a continuacin.

Analicemos cada modulo:

Objeto geomtrico: nuestro mundo se compone de puntos, lneas, polgonos, etc.

en definitiva, primitivas. Inicialmente estos objetos tienen unos atributos que nosotros fijamos pero pueden ser movibles o fijos, deformables o rgidos, y, por tanto, debemos ser capaces de trasladarlos, rotarlos y escalarlos antes de dibujarlos en pantalla. Transformacin del modelo: este mdulo es el encargado de trasladar, rotar, escalar e incluso torcer cualquier objeto para que sea dibujado en pantalla tal y como debe estar dispuesto en el mundo. OpenGL realiza estas funciones multiplicando a nuestra geometra (vrtices) por varias matrices, cada una de las cuales implementa un proceso (rotar, trasladar...) Nosotros usaremos las funciones de OpenGL para crear estas matrices y "operarlas" con nuestra geometra. Coordenadas del mundo: tras haber transformado nuestros vrtices, ya sabemos las posiciones de todos los objetos en nuestro mundo. No son relativas a la cmara. Son posiciones referidas a un sistema de coordenadas que definiremos nica y exclusivamente para el mundo que se esta creando. Transformacin del visionado : ahora es cuando necesitamos saber "como" se ven esos objetos, ya posicionados correctamente en el mundo, desde nuestra cmara. Por tanto, los "iluminamos" para que sean visibles y tomamos sus posiciones tal y como se ven desde la cmara. Coordenadas de cmara: tras aplicar luces ya sabemos cuales son las coordenadas de todos los objetos respecto de nuestra cmara, es decir, como los vemos nosotros desde nuestra posicin en el mundo. Clipping: el clipping consiste en recortar (ocultar) todo aquello que "est" pero "no se ve" desde la cmara. Es decir, todo aquello que la camara no puede ver porque no entra en su ngulo de visin se elimina, a ese proceso se denomina Clipping. Proyeccin : Pasamos de coordenadas 3D del mundo a coordenadas 2D de nuestro plano de proyeccin. D.I.S.C. (Device Independent Screen Coordinates ): tras proyectar tenemos lo que se llaman "coordenadas de pantalla independientes de dispositivo". Las coordenadas que tenemos calculadas en este momento todava no se han asociado a ningn tipo de pantalla o monitor. En este punto del pipeline no sabemos si nuestro monitor es de 15 pulgadas y de resolucin 800 x 600 o si es de 19 pulgadas y de resolucin 1024 x 1480. De hecho esto no tenemos porque controlarlo nosotros, nos ser transparente. Se trata de asociar la imagen recortada 2D que se encuentra en el frame buffer con los pxeles de la pantalla. Segn la resolucin de pantalla sea mayor o menor, un punto de nuestro mundo ocupara mas o menos pxeles. Rasterizacin : este proceso se conoce tambin como "scan conversion". Finalmente asociamos todos nuestros puntos a pxeles en pantalla. Imagen de pantalla: Aqu termina nuestro proceso. Ya tenemos la imagen de lo que nuestra cmara ve en el monitor

También podría gustarte