reporte tesis 4 semestre 1.1 -...

17
UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO 1 Tesis de Doctorado en Ingeniería Mecánica Reporte de Avance de Tesis Noviembre 2010 – Mayo 2011 TÍTULO Análisis de Manufacturabilidad y Ensamble de Componentes Utilizando Técnicas de Realidad Virtual y Dispositivos Hápticos. AVANCE TOTAL DEL PROYECTO: 60 % RESUMEN La finalidad del presente proyecto doctoral es desarrollar e investigar la aportación que brinda un sistema de realidad virtual (VR) apoyado por dispositivos hápticos, el cual permitirá analizar la manufacturabilidad y el ensamble de diversos componentes. Mediante el desarrollo del proyecto se buscan aprovechar las propiedades interactivas e intuitivas que brinda el sistema háptico para lograr un sistema virtual de diseño. El trabajo estará enfocado en tres áreas principales: 1) la simulación de ensambles de diversos componentes, 2) el diseño y análisis de manufacturabilidad para prototipos rápidos y 3) la generación de planes de ensamble y manufactura para aplicaciones reales. La aplicación se apoyará en los sistemas hápticos para generar trayectorias o planes de ensamble de manera intuitiva, que puedan ser aplicados en procesos reales, así como para realizar el análisis de manufacturabilidad que permitirá conocer si la pieza puede ser fabricada. Se emplea como referencia de desarrollo el sistema VARP (Virtual Assembly Rapid Prototype) [1], el cual permite la simulación de componentes y manufactura de prototipos utilizando técnicas de realidad virtual. Los ambientes virtuales con aplicación de sistemas hápticos brindan la posibilidad de comprender mejor el diseño de cualquier componente, pues el usuario con acceso a un modelo virtual, podrá acelerar el proceso de diseño al tener la capacidad de realizar mejoras al producto antes de que este sea manufacturado. Asesor: ________________________ Dr. Hugo Iván Medellín Castillo Alumno: _________________________ M.I. Germánico González Badillo

Upload: others

Post on 30-Apr-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

1

Tesis de Doctorado en Ingeniería Mecánica Reporte de Avance de Tesis

Noviembre 2010 – Mayo 2011

TÍTULO

Análisis de Manufacturabilidad y Ensamble de Componentes Utilizando Técnicas de Realidad Virtual y Dispositivos Hápticos.

AVANCE TOTAL DEL PROYECTO: 60 %

RESUMEN

La finalidad del presente proyecto doctoral es desarrollar e investigar la aportación que brinda un sistema de realidad virtual (VR) apoyado por dispositivos hápticos, el cual permitirá analizar la manufacturabilidad y el ensamble de diversos componentes. Mediante el desarrollo del proyecto se buscan aprovechar las propiedades interactivas e intuitivas que brinda el sistema háptico para lograr un sistema virtual de diseño. El trabajo estará enfocado en tres áreas principales: 1) la simulación de ensambles de diversos componentes, 2) el diseño y análisis de manufacturabilidad para prototipos rápidos y 3) la generación de planes de ensamble y manufactura para aplicaciones reales. La aplicación se apoyará en los sistemas hápticos para generar trayectorias o planes de ensamble de manera intuitiva, que puedan ser aplicados en procesos reales, así como para realizar el análisis de manufacturabilidad que permitirá conocer si la pieza puede ser fabricada. Se emplea como referencia de desarrollo el sistema VARP (Virtual Assembly Rapid Prototype) [1], el cual permite la simulación de componentes y manufactura de prototipos utilizando técnicas de realidad virtual. Los ambientes virtuales con aplicación de sistemas hápticos brindan la posibilidad de comprender mejor el diseño de cualquier componente, pues el usuario con acceso a un modelo virtual, podrá acelerar el proceso de diseño al tener la capacidad de realizar mejoras al producto antes de que este sea manufacturado.

Asesor:

________________________ Dr. Hugo Iván Medellín Castillo

Alumno:

_________________________ M.I. Germánico González Badillo

Page 2: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

2

OBJETIVO GENERAL

Desarrollar un sistema de realidad virtual apoyado por dispositivos hápticos que permita agilizar el proceso de diseño y manufactura de componentes, haciendo enfoque en el análisis de manufacturabilidad, ensamble de dichas piezas y generación de códigos de fabricación.

METODOLOGIA DEL PROYECTO

El presente trabajo de investigación comprende tres etapas las cuales se detallan a continuación:

En la primera fase se deberá realizar una familiarización con los sistemas hápticos con el fin de conocer los métodos y recursos de programación así como el funcionamiento de los dispositivos, de manera conjunta se deberá realizar una revisión bibliográfica extensa para identificar las investigaciones actuales y así poder enfocar el trabajo en ciertas áreas donde no se he realizado investigación y que puedan representar una contribución real a la materia, en esta misma fase se deberán crear las bases para el desarrollo de una plataforma virtual háptica que permita la manipulación de modelos CAD 3D en ambientes virtuales.

En la segunda fase se deberán generar los conocimientos necesarios para realizar actividades de manufactura virtual como es el caso de ensambles, análisis de manufacturabilidad y generación de trayectorias de ensamble y maquinado, estos deberán ser incluidos en la plataforma virtual.

En la tercer fase se deberá incluir en la plataforma virtual un modulo que permita la extracción de datos para que puedan ser utilizados en procesos reales, como puede ser el caso de robots para ensamble y manufactura. Una vez completada esta parte se hará una evaluación y análisis del sistema sobre su desempeño en actividades reales y mediante una comparativa contra otros sistemas similares existentes, por último el sistema y su evaluación serán presentados para la obtención del título.

AVANCE DEL PERIODO

Desarrollo de la plataforma virtual

La plataforma de ensambles y análisis de manufacturabilidad que se desarrolla debe ser capaz de representar y analizar modelos CAD tridimensionales, estos objetos deben ser manipulados mediante un dispositivo háptico, deben poder interactuar entre sí con otros objetos del entorno virtual y su comportamiento debe estar basado en la física real.

En el periodo anterior se describió y justificó el empleo de las librerías de programación que permiten la integración de la plataforma de realidad virtual, utilizando para la representación gráfica VTK 5.6 (Visualization Toolkit) que permite la visualización y análisis de volúmenes y elementos 3D; Para la manipulación de los objetos y retroalimentación de fuerza se ha seleccionado OpenHaptics 3.0, que es la librería estándar para la programación del dispositivo Phantom Omni, el cual es el dispositivo háptico mejor evaluado para realizar tareas de ensamble con una sola mano [2]. En cuanto a la detección de colisiones (interacción entre objetos virtuales),

Page 3: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

3

y comportamiento basado en la física, se selecciono la librería PhysX SDK 2.8.3, utilizando la descomposición de malla en elementos convexos para poder representar objetos cóncavos.

La integración de estas herramientas (utilizando como plataforma Microsoft Foundation Classes) permitió llevar a cabo la primera versión de la aplicación, figura 1, en la cual se puede realizar un ensamble virtual, sin embargo presenta diversas limitantes que a continuación se detallan:

Figura 1, Ensamble Virtual.

1. La representación del modelo en las librerías de PhysX es solo una aproximación del modelo real, figura 2.

Figura 2, Actor formado por descomposición de malla en elementos convexos.

2. Existe inter-penetración entre objetos, figura 3. 3. Entre más componentes se carguen en pantalla, la simulación se vuelve más lenta lo cual afecta la tarea de ensamble. 4. Al seleccionar un objeto y manipularlo hapticamente no es posible sentir el peso del objeto. 5. Al girar la cámara visual, el cursor háptico no sigue los movimientos de la mano del usuario, figura 4. 6. No es posible ajustar los parámetros de la simulación en tiempo de ejecución.

Page 4: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

4

Figura 3, inter-penetración entre objetos.

Figura 4, Mapeo haptico incorrecto al girar cámara.

Los tres primeros puntos están directamente relacionados a las librerías de Physx, es decir, la representación del modelo, la detección de colisiones y el tiempo de simulación. Para solucionar el problema de la representación del modelo se propone una nueva forma de construir el modelo.

1. Mejora en la representación del modelo basado en el comportamiento físico.

En Physx un objeto cóncavo se representa como una malla triangular, sin embargo estas librerías no soportan detección de colisiones entre mallas triangulares. En la primera versión de la aplicación se utiliza un algoritmo de descomposición de la malla en elementos convexos para así formar un objeto cóncavo [3]; los elementos convexos habilitan la detección de colisiones, sin embargo, la aproximación del modelo no es de buena calidad pues algunas características del objeto se pierden así como sus dimensiones originales, como se ve en la figura 2.

La nueva propuesta consiste en crear un objeto convexo a partir de cada triangulo de la malla, logrando así una representación más cercana del modelo, es decir, convirtiendo cada triangulo de la malla en un volumen convexo. Para construir este volumen se definen como base los tres vértices del triangulo, a continuación se definen otros tres nuevos vértices que formaran un nuevo

Page 5: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

5

triangulo. Estos nuevos vértices se calculan tomando las coordenadas del triangulo base (P0, P1 y P2) menos un delta predefinido, utilizando la normal de cada triangulo se define que este segundo triangulo estará dentro de la geometría de la pieza, con estos dos triángulos es posible crear un objeto convexo (volumen), figura 5.

Figura 5, Creación de volumen convexo.

El resultado final se puede observar en la figura 6, donde se observa un modelo mucho más aproximado al modelo original, la interacción entre objetos sin utilizar el control haptico es buena, las reacciones de los objetos al colisionar con otros objetos son acertadas, sin embargo al controlar un objeto hapticamente y colisionar con otro objeto ocurre cierta penetración entre los objetos, además de una disminución de la tasa de actualización del programa y por consiguiente discontinuidad en la fuerza de retroalimentación haptica, es decir el dispositivo empieza a vibrar, dificultando así el proceso de ensamble virtual. Cabe mencionar que la tasa de actualización total cae hasta 10 cuadros por segundo cuando existe penetración entre objetos.

Figura 6, (a) Nueva aproximación del modelo virtual en PhysX, (b) modelo actual.

La penetración entre objetos ocurre debido a que existen "huecos" entre las uniones de cada uno de los objetos convexos que forman el modelo, los cuales siempre serán detectados como huecos al utilizar el dispositivo haptico para controlar un objeto y no existe una manera de cerrarlos pues es una característica predefinida en las librerías de PhysX [4] .

Aunque es posible realizar tareas de ensamble virtual utilizando estas librerías el sistema es inestable debido a las penetraciones y la baja tasa de actualización ocasionada al transformar cada

Page 6: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

6

triángulo del modelo en un objeto convexo. Debido a esta razón se vuelve importante estudiar otras librerías de comportamiento basado en física, por algunas que soporten detección de colisiones entre mallas triangulares.

2. Implementación de Bullet Physics Engine.

Analizando algunas librerías similares a PhysX se encuentra que Bullet Physics presenta ventajas, entre las más importantes es que son librerías de código abierto y además soportan la detección de colisiones entre modelos cóncavos y mallas triangulares [5]. El modelo creado en Bullet utiliza directamente la malla triangular del objeto, por lo que la detección de colisiones es precisa como se puede observar en la figura 7.

Figura 7, colisiones entre objetos cóncavos utilizando Bullet Physics.

Para la creación del modelo de Bullet se define primero un arreglo de los triángulos (vértices e índices) que forman el modelo, estos datos son obtenidos directamente del modelo de VTK. Enseguida se utiliza la clase btGImpactMeshShape para crear la forma utilizando el arreglo triangular previamente definido. A continuación se define la transformación que establece el estado inicial, posición y/o rotación del objeto. Por último se crea el cuerpo regido que define el movimiento del objeto durante la simulación y se añade este cuerpo rígido a la escena. La mayor dificultad que presenta la creación del modelo dentro de Bullet Physics es activar las rotaciones del cuerpo rígido, pues requiere definir valores para la inercia del cuerpo, estos valores pueden ser obtenidos de manera directa utilizando la función calculateLocalInertia dentro de la clase GImpactMeshShape; sin embargo, la dificultad aparece cuando el centro de masa del modelo no está alineado con el origen de la malla, figura 8, esto provoca inestabilidad en el modelo que gira sin causa aparente.

Page 7: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

7

Figura 8, Origen de la malla vs centro de masa.

Bullet Physics no admite modificar el centro de masa directamente en el modelo creado, por lo que se deben hacer 2 transformaciones, la primera: aplicar un offset al centro de masa definiendo la forma como un elemento compuesto; la segunda: aplicar la inversa de esta transformación al objeto de VTK para que este "sigua" al objeto de Bullet [6]. Otra opción es que el modelo este originalmente creado con respecto a su centro de masa, figura 9, lo que simplifica los cálculos a realizar.

Figura 9, Origen de la malla alineado con el centro de masa.

Para que el objeto gráfico (VTK) siga al objeto de Bullet (Mapeo de Bullet a VTK) se debe crear una matriz de transformación que relacione a estos dos modelos y cuando el objeto de Bullet cambie de posición/rotación, del mismo modo lo haga el objeto gráfico, para realizar esta transformación se realiza el siguiente procedimiento:

1. Obtener el número de actores o de objetos en la escena:

int nbActors = physicsWrapper->m_world->getNumCollisionObjects();

2. Para cada actor de Bullet engine (body) obtener la matriz que representa su comportamiento:

*triTransform=body->getWorldTransform();

Page 8: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

8

3. Transformar esta matriz del tipo btTransform a una matriz de openGL que es un apuntador del tipo doble con 16 elementos y transponer dicha matriz:

float mat[16]; triTransform->getOpenGLMatrix(mat);

4. Copiar la matriz de 16 elementos a una matriz de VTK del tipo vtkMatrix4x4, y asignar esta matriz a una nueva matriz de transformación del tipo vtkTransform:

vtkMatrix4x4 *vmat = vtkMatrix4x4::New(); vmat->DeepCopy(mat); vmat->Transpose(); vtkTransform *tcurr = vtkTransform::New(); tcurr->Identity(); tcurr->SetMatrix(vmat);

5. Obtener los valores de posición, escala y rotación y asignarlos al actor (A) de VTK:

A->SetPosition(tcurr->GetPosition()); A->SetScale(tcurr->GetScale()); A->SetOrientation(tcurr->GetOrientation());

6. Del mismo modo se debe crear una transformación que permita mapear el movimiento en el actor gráfico hacia el actor de Bullet (Mapeo de VTK a Bullet). Se obtiene la matriz del actor de VTK (A), se transpone y cada valor se asigna a un apuntador de tipo flotante de 16 elementos:

double mat[16]; A->GetMatrix(mat); A->Transpose(mat); float d[16]; for (int i=0: i<16; i++) d[0]=mat[0];

7. Se crea una matriz de transformación btTransform y se le asignan los valores de la matriz d:

btTransform* matbt= new btTransform; matbt->setFromOpenGLMatrix(d);

8. Se asigna esta matriz de trasformación al actor de Bullet

A->pBtActor->setWorldTransform(*matbt);

Mediante el empleo de Bullet se mejora considerablemente la detección de colisiones, como se puede ver en la figura 10. Con el empleo de estas nuevas librerías se resuelven los dos primeros problemas:

1. La representación del modelo en Bullet es mucho más aproximada, pues utiliza la misma malla que la representación gráfica.

2. La penetración entre objetos es mínima incluso cuando el objeto es controlado mediante el dispositivo haptico, ya que Bullet soporta detección de colisiones entre mallas triangulares.

Page 9: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

9

3. Al minimizar las penetraciones entre objetos y utilizar un algoritmo apropiado para la detección de colisiones, la tasa de actualización de la aplicación mejora sin embargo todavía presenta vibraciones al controlar los objetos hapticamente.

Figura 10, Detección de colisiones utilizando Bullet Physics Engine.

La implementación de esta nueva librería de funciones basadas en física (Bullet) no implica que se haya desechado por completo el uso de PhysX, ya que tener las dos librerías disponibles en la aplicación representa un aumento en la funcionalidad de la misma, por ejemplo, al crear un selector dentro de la aplicación el usuario podrá decidir con cuál de las dos librerías trabajar, esto representa una gran utilidad para poder realizar un trabajo comparativo de los métodos que utiliza cada uno de los paquetes para representar sus modelos y como estos métodos afectan la realización de tareas de ensamble virtual.

3. Calculo de la fuerza de retroalimentación haptica.

Como se mencionó anteriormente, en la primer versión de la aplicación no es posible sentir el peso del objeto al seleccionarlo y manipularlo hapticamente, esto debido a que al seleccionarlo se deshabilitan las propiedades de cuerpo rígido brindadas por el objeto físico (Bullet o PhysX), dejando solamente la parte de detección de colisiones, por esta razón se debe implementar un nuevo algoritmo para el cálculo de fuerzas de retroalimentación.

Se propone utilizar el modelo de masa-resorte-amortiguador para calcular las fuerzas que deben ser aplicadas al objeto para generar su movimiento y del mismo modo para obtener la fuerza de retroalimentación al usuario por medio del dispositivo haptico. Este modelo es el más utilizado en este tipo de aplicaciones debido a que es un modelo sencillo (tiene baja complejidad algorítmica) y se pueden obtener buenos resultados siempre y cuando los parámetros definidos sean los adecuados [7].

Page 10: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

10

La ecuación que gobierna el sistema se describe a continuación:

퐹 = 푘 ∗ (푃푐 − 푃표) − 푏 ∗ 푣

Donde:

F Fuerza sobre el objeto. k Constante de rigidez del resorte. Pc Posición del cursor. Po Posición del objeto (con respecto al punto donde se selecciona dicho objeto). b Constante de amortiguamiento. v Velocidad del objeto.

La constante del resorte es un valor predefinido y modificable según requiera el comportamiento del sistema, es decir, dependiendo de la precisión requerida en los movimientos y de la masa de los objetos con los que se trabaje, a mayor masa en los objetos y mayor precisión requerida, la rigidez deberá ser mayor, sin embargo si los valores son muy grandes o no apropiados puede llegar a causar inestabilidad del sistema.

La posición del objeto (Po) y la posición del cursor (Pc) se obtienen mediante el uso de las librerías hápticas de acuerdo a lo siguiente: al hacer contacto con un objeto y pulsar el botón del dispositivo para seleccionarlo se guarda la posición del cursor, esta posición representa la posición del objeto (Po), después se obtiene de manera continua (en cada ciclo de renderizado háptico) la posición nueva del cursor (Pc). La velocidad del objeto es obtenida directamente del objeto físico (Bullet). Utilizando este modelo de fuerza es posible obtener una buena retroalimentación haptica, es decir, es posible sentir el peso de los objetos, sentir cuando los objetos colisionan e incluso es posible sentir la inercia del objeto. Así mismo es posible realizar la manipulación haptica del modelo por medio de la aplicación de fuerza al objeto de Bullet (objeto físico) el cual a su vez actualiza la posición y/o orientación el objeto gráfico (objeto de VTK).

4. Corrección del mapeo haptico

En la primera versión de la aplicación existe un problema al girar la cámara para obtener otra vista de la escena, pues al realizar este giro el cursor haptico no sigue los movimientos de la mano del usuario, es decir, si se gira la cámara gráfica 180° sobre el eje vertical y después se mueve el dispositivo háptico hacia la derecha, el cursor va hacia la izquierda y viceversa figura 4. Esto es debido a que al girar la cámara el mapeo haptico sobre la escena gráfica no se actualiza correctamente.

Para solucionar este problema se debe entender cómo funciona el mapeo del espacio virtual al espacio real de trabajo del dispositivo háptico, figura 11, e identificar en qué punto se presenta el problema.

(1)

Page 11: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

11

Figura 11, Mapeo del mundo virtual al espacio real de trabajo.

Donde:

A Representa la matriz de transformación del espacio virtual al espacio de cámara.

B Define la rotación y translación del espacio de trabajo haptico relativo a las coordenadas del espacio de cámara (por lo general es la matriz identidad).

C Representa el mapeo del espacio de trabajo a coordenadas de la cámara. El mapeo contiene la escala para mapear el espacio de trabajo y una translación para orientar el espacio de trabajo al mapeo objetivo en coordenadas de cámara [8].

Las transformaciones B y C se manejan directamente por las librerías de OpenHaptics (HLAPI), y el usuario alimenta la información requerida por medio de la matriz A que contiene la información del espacio virtual. La matriz A influye en el mapeo haptico definiendo como es el espacio de trabajo respecto a la posición de la cámara, esta matriz de transformación puede contener la información para que al girar la cámara gráfica el mapeo haptico se actualice y así se obtenga un correcto espacio de trabajo del dispositivo haptico. Esta matriz de transformación se obtiene de las librerías gráficas que se estén utilizando, para el caso del presente trabajo VTK al llamar a la función GetProjectionTransform, sin embargo, esta matriz (para el caso particular de VTK) no contiene información que pueda ser relacionada con el giro de cámara o que brinde directamente parámetros para corregir el mapeo haptico.

El problema se puede definir de la siguiente manera tomando en cuenta que existen dos cámaras: la cámara gráfica (que es la que nos genera el punto de vista desde donde se ven los objetos) y la cámara haptica (desde donde se sienten los objetos). Al girar la cámara gráfica, la cámara háptica permanece en la posición original, figura 12 B, por lo tanto la solución al problema es girar también (o cambiar la posición) de la cámara háptica.

Figura 12, Mapeo del mundo virtual al espacio real de trabajo.

Coordenadas Espacio Virtual

3DA

Coordenadas de Camara

2DB

Coordenadas del

DispositivoC

Coordenadas del Espacio de Trabajo

Page 12: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

12

Por lo tanto se implementa una función para trasladar la cámara haptica del mismo modo que la cámara gráfica, figura 12 C. Para realizar la transformación de la cámara haptica se realiza el siguiente procedimiento:

1. Obtener la posición y orientación de la cámara gráfica: vtkCamera *camera = this->pvtkRendererPointer->GetActiveCamera(); camera->GetPosition(handx, handy,handz);//Get camera position Rotation=camera->GetOrientationWXYZ();

2. Crear una matriz de transformación con los valores de posición obtenidos de la cámara gráfica (mat4) y aplicar la rotación.

vtkTransform *R = vtkTransform::New(); R->SetMatrix(mat4); R->RotateWXYZ(Rotation[0],Rotation[1],Rotation[2],Rotation[3]);

3. Calcular el movimiento de la cámara respecto a la posición anterior (handx, hany, handz) y trasladar la cámara haptica a la nueva posición (trans).

Tx=trans[0]-handx; Ty=trans[1]-handy; Tz=trans[2]-handz; hlTranslated(Tx,Ty,Tz);

De este modo se consigue que sin importar el giro de la cámara gráfica el movimiento del cursor siempre seguirá al movimiento de la mano del usuario (movimiento del dispositivo haptico).

5. Mejoras a la aplicación

Se han realizado algunas mejoras a la aplicación que permiten al usuario tener un mejor control sobre las variables del sistema como por ejemplo:

Se han parametrizado algunas variables relacionadas con la simulación física (Bullet y Physx) como máximo número de iteraciones, tiempo de simulación (time step) y variables del entorno como la gravedad, la fricción estática, la fricción dinámica y el coeficiente de restitución, figura 13, con el fin de que el usuario pueda modificar el comportamiento de la simulación en tiempo de ejecución.

Figura 13, Modificación de variables en tiempo de ejecución.

Page 13: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

13

Se utilizan botones en la barra de herramientas para orientar la cámara en diferentes vistas: frente, atrás, arriba, abajo, izquierda, derecha e isométrico, figura 14.

Figura 14, Selección de vistas.

Con el fin de hacer más simple el uso de la aplicación se ha implementado la función de mouse haptico la cual es una utilidad de las librerías de OpenHaptics, esta utilidad nos permite utilizar el dispositivo haptico como un mouse convencional, es decir, cuando el cursor haptico sale del espacio de trabajo 3D se convierte automáticamente en el puntero del mouse permitiendo así acceder a los botones de la aplicación sin necesidad de utilizar el mouse, como por ejemplo para abrir nuevo documento, guardar, insertar, maximizar o minimizar ventana, etc.

Sin embargo, dentro de la aplicación, la principal utilidad del mouse haptico es poder controlar la cámara de la escena con el mismo dispositivo haptico, por ejemplo se puede girar arbitrariamente la escena, hacer acercamientos, alejamientos o translaciones sin necesidad de utilizar el teclado o el mouse convencional.

Una parte importante de las aplicaciones de realidad virtual es poder ser ejecutadas en monitores de estereovisión o dispositivos que permitan utilizar la aplicación en un ambiente un poco mas inmersivo (3D) que el monitor convencional de una PC (2D-2.5D), por este motivo se ha habilitado en la aplicación el uso de estereovisión. VTK soporta el uso de estereovisión y puede aplicarse directamente, solo se tiene que llamar a la ventana de visualización, y establecer como verdadero el valor de estereovisión.

ViewClass->pvtkMFCWindow->GetRenderWindow()->SetStereoRender(1);

Con el fin de que el programa se ejecute por default en el monitor de estereovisión se debe hacer un cambio en el monitor principal que utiliza la computadora y poder así utilizar las funciones del mouse haptico en el nuevo monitor, la aplicación contiene una opción para realizar el cambio de monitor en tiempo de ejecución.

APORTACIONES

Mediante el uso de esta aplicación se podrá evaluar el grado de manufacturabilidad y ensamble de componentes haciendo enfoque en los procesos de manufactura rápida, como por ejemplo en el prototipado rápido y manufactura por robot (ensamble y maquinado). Detectando las limitaciones de la maquina en cuanto a:

Page 14: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

14

Espacio de trabajo Rigidez Sujeción Características de pieza no posibles de reproducir. Herramientas Movimientos

Así mismo se evaluaráa el grado de mejora que la aplicación puede aportar al proceso de generación de planes de ensamble y manufactura.

ALCANCE DEL PROYECTO

El presente proyecto se enfoca en el desarrollo de una plataforma de ensamble y análisis de manufactura virtual con la cual se pretende lograr una reducción en el tiempo de desarrollo y manufactura de nuevos componentes, aprovechando las características intuitivas que brindan los sistemas hápticos.

Se pretende también que la aplicación pueda genera información valiosa acerca de la contribución que este tipo de ambientes virtuales brindan a procesos reales, y evaluar cómo las diferentes variables y métodos empleados en la plataforma virtual influyen en los resultados obtenidos.

La aplicación desarrollada no pretende ser una interfaz directa entre el usuario y una máquina de ensamble y/o maquinado real (p.ej. brazo robótico), sin embargo será capaz de brindar al usuario información útil acerca de trayectorias de ensamble y/o maquinado, que podrá ser utilizada para la programación de dichos equipos, además podrá determinar si un componente puede ser manufacturado por un proceso dado, así como detectar posibles errores y/ o mejoras en el diseño enfocadas al ensamble y manufactura de componentes.

Aunque la plataforma permite el ensamble de cualquier modelo CAD 3D, la aplicación se enfocará en un caso específico. Este caso podrá incluir un brazo robótico y/o la máquina de prototipos rápidos disponibles en los laboratorios de la facultad.

TRABAJO A FUTURO

Para el siguiente periodo se tiene contemplados los siguientes puntos:

Definir un caso de estudio del ensamble de un componente. Realizar análisis y experimentación acerca del efecto del peso de los objetos en sistemas

de ensamble en ambientes virtuales. Realizar una publicación con los resultados obtenidos.

Realizar análisis y experimentación acerca de los distintos métodos y técnicas que utilizan los diferentes simuladores fiscos (Bullet y Physx) y su efecto en tareas de ensamble virtuales. Realizar una publicación con los resultados obtenidos.

Page 15: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

15

En cuanto a la manipulación de objetos y optimización del funcionamiento de la aplicación se deben de mejorar los siguientes aspectos:

Al seleccionar un objeto deberá girar respecto al punto seleccionado, no respecto al centro de masa o algún otro punto, actualmente gira con respecto al centro de masa.

Mejorar la sincronización entre el renderizado háptico, físico y gráfico. Empleo de "widgets" que son elementos dentro de la escena virtual que pueden realizar

las funciones de los botones de la interfaz grafica, por ejemplo, rotaciones de los ejes, cambios de estado de los objetos, cambio de vistas, etc. con el fin de obtener una interfaz más limpia y amigable.

Calcular la masa del objeto utilizando el modelo gráfico. Implementar el análisis de manufacturabilidad. Extraer la información generada de las simulaciones virtuales para ensamble y

manufactura (trayectorias, tiempos, obstáculos encontrados, movimientos, etc.).

PLANEACION DEL PROYECTO

A continuación se muestra el cronograma de actividades propuesto al comienzo del proyecto, indicando en la línea roja el grado de avance a la fecha.

En el cronograma anterior se puede observar que el desarrollo de interacciones entre 2 o más objetos es una actividad terminada debido a la implementación de Bullet Physics Engine, que

Avance total: 60%

Page 16: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

16

permite realizar el cálculo de detección de colisiones entre todos los objetos de la escena, así como también se encarga del cálculo de las fuerzas de reacción cuando un objeto choca con otro.

Se muestra un avance del 90% en el desarrollo de la plataforma integrando técnicas de realidad virtual y hápticas, debido a que solo falta girar los objetos seleccionados alrededor del punto de selección, mejorar la sincronización, emplear “widgets” para realizar funciones y calcular la masa del objeto, lo cual representa la actividad aproximada de un mes.

La estructura que se ha dado al programa y las librerías empleadas generan las bases para crear los planes de manufactura, lo que contribuye a un avance del 10%.

Finalmente se está empezando a trabajar en la publicación de un artículo relacionado con la percepción del peso de objetos en la plataforma virtual, la aplicación se encuentra lista para realizar algunas pruebas preliminares, lo que representa un avance del 10%.

En total se puede considerar un avance total del proyecto de 60%, que está acorde con la planeación original.

CONCLUSIONES

Se cumplieron algunos de los objetivos propuestos en el periodo anterior como realizar el movimiento de cámara mediante el dispositivo háptico, implementación de botones para obtener diferentes vistas (laterales, frontales, traseras, isométrico, etc.) Manipulación de botones y/o comandos mediante el dispositivo, esto se logro gracias a la implementación del mouse haptico.

Se mejoro la representación de objetos en PhysX creando un objeto convexo por cada triangulo de la malla, además mediante el uso de Bullet se mejora la detección de colisiones y la representación del modelo, logrando también una mejora en la tasa de actualización de la aplicación.

Ahora es posible sentir el peso de los objetos al momento de manipularlos hapticamente, algunos autores como [9]-[14], han realizado trabajos acerca del efecto de la gravedad en ambientes virtuales sin embargo no se han realizado trabajos enfocados al área de ensambles virtuales específicamente.

Los movimientos del dispositivo haptico ahora son más precisos, pues sin importar la posición de la cámara el cursor haptico sigue la dirección del dispositivo.

La solución de los problemas anteriormente descritos es una parte fundamental para el desarrollo de la aplicación, pues permite realizar simulaciones de una manera más natural y más apegada a la realidad.

En el siguiente período el proyecto de investigación estará enfocado hacia el análisis de manufacturabilidad de componentes, definiendo que características se van a analizar, su aplicación en la plataforma virtual y en la extracción de datos obtenidos mediante la simulación.

Page 17: Reporte tesis 4 semestre 1.1 - ciep.ing.uaslp.mxciep.ing.uaslp.mx/mecanica/docs/avance_tesis/old/AvTes_May11_Ge… · virtual y su comportamiento debe estar basado en la física real

UNIVERSIDAD AUTONOMA DE SAN LUIS POTOSI CENTRO DE INVESTIGACION Y ESTUDIOS DE POSGRADO

17

BIBLIOGRAFIA

[1] Theodore Lim, Hugo Medellin, Raymond Sung, “Virtual bloxing-assembly rapid prototyping of near net shapes”, World Conference on Innovative VR, 2009.

[2] Germánico González, Eder H. Govea, Hugo I. Medellín, “Performance evaluation of two different haptic devices in virtual assembly tasks”, XII Congreso Mexicano de Robótica, ComRob 2010, Mazatlan Sin. Mex, Nov. 3-6, 2010.

[3] John Ratcliff, “Convex Decomposition Library”, http://codesuppository.blogspot.com/, 3-sept-2010.

[4] PhysXDocumentation version 2.8, 2008 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A.

[5] http://bulletphysics.com/Bullet/BulletFull/, 24-04-2011 15:22

[6] http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=&f=9&t=1506, 14-05-2011 9:30

[7] Leon Sze-Ho Chan, Kup-Sze Choi, "Integrating PhysX and OpenHaptics: Efficient Force Feedback Generation Using Physics Engine and Haptic Devices", Joint Conferences on Pervasive Computing (JCPC2009) : 3-5 December, 2009, Tamkang University, Taipei, Taiwan, p. 853-858.

[8] OpenHaptics toolkit version 3.0 programmers guide,Sensable technologies, Last Updated - 8 January, 2009 12:29 pm pp 7-13

[9] Renaud Ott, Mario Gutierrez, Daniel Thalmann, "Improving user comfort in haptic virtual environments through gravity compensation" Proceedings of the First Joint Eurohaptics Conference and Symposium on Haptic Interfaces for Virtual Environment and Teleoperator Systems, 2008

[10] Lionel Dominjon, Anatole Lécuyer, Jean-Marie Burkhardt, Paul Richard, Simon Richir, "Influence of Control/Display Ratio on the Perception of Mass of Manipulated Objects in Virtual Environments", Proceedings of the IEEE Virtual Reality 2005 (VR’05).

[11] Masayuki Hara, Takahiro Higuchi, Ayaka Ohtake, Jian Huang, Tetsuro Yabuta "Analysis of Weight Perceptual Mechanism Based on Muscular Motion Using Virtual Reality" International Conference on Systems, Man and Cybernetics, 2005 IEEE, 2005

[12] M. Hara, N. Ashitaka, N. Tambo "Consideration of Weight Discriminative Powers for Various Weight Changes Using a Haptic Device" 2008 IEEE/RSJ International Conference on Intelligent Robots and Systems Acropolis Convention Center Nice, France, Sept, 22-26, 2008

[13] Christos Giachritsis, Jorge Barrio, Manuel Ferre, Alan Wing, Javier Ortego, "Evaluation of Weight Perception During Unimanual and Bimanual Manipulation of Virtual Objects", Third Joint Eurohaptics Conference and Symposium on Haptic Interfaces for Virtual Environment and Teleoperator Systems Salt Lake City, UT, USA, March 18-20, 2009

[14] Stefano Scheggi, Gionata Salvietti, Domenico Prattichizzo, "Shape and Weight Rendering for Haptic Augmented Reality", 19th IEEE International Symposium on Robot and Human Interactive Communication Principe di Piemonte - Viareggio, Italy, Sept. 12-15, 2010