SciELO - Scientific Electronic Library Online

 
vol.31 issue1University objectives and socioeconomic results regarding engineering: multi-criteria measuring of alignmentHow can metacognition be developed through problem-solving in higher education? author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


Ingeniería e Investigación

Print version ISSN 0120-5609

Ing. Investig. vol.31 no.1 Bogotá Jan./Apr. 2011

 

Análisis de la detección de colisiones en un entorno virtual para aplicaciones hápticas de asistencia quirúrgica

Analysing collision detection in a virtual environment for haptic applications in surgery

María Luisa Pinto Salamanca 1, José María Sabater Navarro 2, Jorge Sofrony Esmeral3

1 Ingeniera electrónica. M.Sc. en Ingeniería - Automatización Industrial, Universidad Nacional de Colombia. Profesora, Escuela de Ingeniería Electromecánica, Universidad Pedagógica y Tecnológica de Colombia Uptc. marialuisa. pinto@uptc.edu.co.

2 PhD. en Ingeniería, Universidad Miguel Hernández. M.Sc. en Ingeniería Industrial, ETSII - Universidad Politecnica Valencia, España. Profesor Coordinador Virtual Reality and Robotics Lab. vr2, Universidad Miguel Hernández de Elche, España. j.sabater@umh.es.

3 Ph.D. en Sistemas de Control, University Of Leicester, Reino Unido. M.Sc., Technology And Medicine. Profesor, Departamento de Ingeniería Mecánica y Mecatrónica, Universidad Nacional de Colombia. jsofronye@bt.unal.edu.co.


RESUMEN

Este trabajo presenta de forma resumida el uso de dos interfaces hápticas comercialmente disponibles para aplicaciones de asistencia quirúrgica en tareas de entrenamiento y simulación médica. Mediante la integración de kits de desarrollo con librerías software de código abierto como OpenGL y VCollide, se propone una solución a los problemas de pérdida de realismo táctil y detección de colisiones con objetos sólidos en un entorno virtual.

Con base en los resultados de algunos trabajos relacionados con la obtención, procesamiento y análisis de imágenes para la construcción de modelos, se desarrollan aplicaciones hápticas de interacción con sólidos rígidos de interés médico, que incluyen herramientas para la marcación de puntos y trayectorias sobre una superficie, y un algoritmo de reflexión de fuerzas para la simulación de interacción con órganos modelados por medio de técnicas hibridas (renderizado superficial y volumétrico). Se hace especial énfasis en la representación de los instrumentos virtuales quirúrgicos, integrando herramientas con geometría 3D.

Palabras claves: háptica, detección de colisiones, simulador médico.

ABSTRACT

This paper presents an analysis of two commerciallyavailable haptic interfaces that can be used in surgical training and medical simulation. Integrating development kits with open source software libraries like OpenGL and VCollide led to proposing a solution to problems like loss of tactile ability and detecting collisions between objects in a virtual environment.

Haptic applications were based on results regarding capturing, processing and analysing images for building models for interaction with rigid bodies of medical interest. The application included tools for marking points and paths on a virtual surfaces and force reflection algorithms for simulating interactions with surface/volumetric 3D models. Immersion characteristics and the effect of virtual surgical instruments were analysed.

Keywords: haptics, collision detection, medical simulator.


Recibido: diciembre 7 de 2009. Aceptado: enero 24 de 2011


Introducción

Háptica es un área que estudia e investiga la interacción de la modalidad sensorial del tacto con un mundo virtual. Las interfaces hápticas son dispositivos bidireccionales que proporcionan sensaciones de fuerzas o tacto al operador a través de la misma interfaz con la que envía consignas al sistema remoto; son básicamente posicionadores de avanzadas prestaciones que permiten simular sensaciones táctiles gracias a la realimentación de fuerzas (Gómez, 2005).

De acuerdo a los resultados de selección de una interfaz háptica para aplicaciones de asistencia quirúrgica presentados en (Méndez, 2008), los joysticks hápticos Phantom Omni® y Novint Falcon son dispositivos de bajo costo con una serie de características electromecánicas que permiten una interacción apropiada en sistemas de teleoperación donde se requiere de ciertas habilidades manuales especiales.

La representación del efector final del dispositivo háptico en el entorno virtual se realiza mediante un solo punto con coordenadas en los ejes (x, y, z), denominado SCP (surface contact point), God-Object, HIP (haptic interface point) (Popescu, 1999), proxy (para el Phantom Omni) o hdlTool (para el Novint Falcon). A partir de este punto se efectúan las transformaciones de la geometría que representan la herramienta táctil o cursor háptico, el cálculo de colisiones y la realimentación de fuerzas (figura 1). Mientras no exista colisión entre el cursor háptico y una superficie (con la cual se desea interactuar en el entorno tridimensional), coincidirán las posiciones del efector final con el proxy, teniendo en cuenta las transformaciones necesarias para relacionarlo con la escena virtual; cuando exista un contacto entre el proxy y el sólido, el efector final podrá penetrar en el objeto, sin embargo el proxy se mantendrá en su superficie. La fuerza que se enviará entonces al dispositivo puede ser calculada siguiendo un modelo, por ejemplo masa-muelle, basado en la distancia existente entre el punto de contacto y el dispositivo háptico, o determinada por medio de una proporcionalidad con la superficie colisionada.

Este trabajo propone la integración de un conjunto de librerías para simular el contacto de un objeto sólido y una herramienta háptica representada también como un sólido en una escena virtual. Esto se realiza valiéndonos de un algoritmo para la detección de colisiones entre objetos rígidos y modelos superficiales triangulares cargados desde archivos *.obj, a partir del estudio de la librería VCollide y su integración con OpenGL® y HDAPI. Se generaliza, además, este procedimiento, implementándolo con el dispositivo Novint Falcon y su SDK HDAL (Novint, 2008), el cual no incluye algoritmo para la detección de colisiones. Las aplicaciones se desarrollaron sobre una plataforma Windows XP de 32-bits, con el compilador Microsoft® Visual Studio.Net 2005, en un PC con AMD Athlon 64 X2 Dual Core Processor TK57 1.90 GHz, 1.75 GB RAM y tarjeta gráfica NVIDIA GeForce 7000M 256 MB.

Integración de los dispositivos hápticos

Descripción de equipos y software

Interfaz Phantom Omni®

El dispositivo Phantom Omni®, de SensAble Technologies, Inc. (http://www.sensable.com/haptic-phantom-omni.htm) (figura 2b), es una interfaz háptica tipo joystick de configuración serial con 6 GDL y realimentación de fuerzas nominales de 3.3N en tres ejes: x, y, z. El OpenHaptics® SDK es el kit de desarrollo, proporcionado con el dispositivo háptico Phantom Omni® en el OpenHaptics Toolkit v.2.0, que permite crear aplicaciones de software para el manejo de los dispositivo hápticos Phantom® de SensAble Technologies. Este SDK incluye el conjunto de librerías HDAPI (Haptic Device API), HLAPI (Haptic Library API), utilidades, controladores del dispositivo (Phantom Device Drivers, PDD) y ejemplos de códigos fuente; en este trabajo se usaron las librerías Open Haptics Academic Edition OHAE v2.0.

Interfaz Novint Falcon

El Novint Falcon (figura 2c) es un dispositivo con realimentación de fuerzas de configuración paralela, fabricado por Novint Technologies Inc., el cual permite la interacción en escenarios tridimensionales 3D. El Novint HDAL SDK es el kit de desarrollo para el dispositivo Novint Falcon y contiene toda la documentación y los archivos de software necesarios para desarrollar aplicaciones con el dispositivo háptico desde la capa de abstracción HDAL (Haptic Device Abstraction Layer). La versión utilizada en los experimentos desarrollados fue HDAL SDK v.2.1.3.

OpenGL API y VCollide

OpenGL® API es una interfaz de programación usada para creación de entornos virtuales 3D en tiempo real. Fue desarrollada por Silicon Graphics a partir de su biblioteca IRIS GL, y se considera actualmente como la API libre y portable más utilizada en la industria para el desarrollo de aplicaciones gráficas 2D y 3D (Hearn, 2006). Permite la generación de nuevos modelos o la interacción con modelos creados con otros paquetes gráficos a partir del manejo de ficheros WaveFront .obj y del uso de las librerías gl, glu y glut (Bradford, 2004) en lenguajes de programación como C++, C#, Java y Visual Basic. En el trabajo presentado se usaron las librerías OpenGL® API gl, glu, glut versión 3.7.6 para Windows®.

Por la facilidad que ofrece para trabajar con mallados triangulares, por el tipo de reporte de colisión y por registrar menor tiempo promedio de ejecución en comparación con otras librerías (Caselli, 2002; Muñoz-Moreno, 2004), se seleccionó VCollide para analizar la detección de colisiones en un entorno háptico. Esta librería fue desarrollada por el grupo GAMMA (Geometric Algorithms for Modeling, Motion, and Animation, http://www.cs.unc.edu/~geom/), de la Universidad de Carolina del Norte. Está escrita en C++ y fue diseñada para trabajar en ambientes que contienen un gran número de objetos geométricos formados por mallas de triángulos. Los experimentos de interacción háptica se desarrollaron con VCollide v.201, compilada con Microsoft Visual Studio® v.6.0 y v.8.0.

Integración OpenGL y VCollide

Teniendo en cuenta que tanto las librerías VCollide como OpenGL se basan en el lenguaje de programación C++, la integración para una aplicación de realidad virtual con objetos colisionables resulta una tarea sencilla. Para la integración de geometrías más elaboradas con OpenGL se utilizaron archivos WaveFront *.obj, que permiten una fácil interpretación con rutinas de C++. Estos archivos definen la geometría y otras propiedades del objeto, las cuales pueden ser desplegadas en visualizadores de prestaciones avanzadas. El archivo *.obj puede ser creado a partir de una exportación con dicho formato desde cualquier programa de modelado 3D.

En la aplicación se generaron, importaron y exportaron modelos de sólidos 3D con el programa de modelado Blender v.2.46 (www.blender.org), teniendo en cuenta que el modelo *.obj debía ser triangular para que se pudiera adicionar como objeto colisionable en VCollide. Para interpretar los archivos *.obj de cada objeto en la escena se desarrolló una clase que permitiera ordenar la información de caras y vértices, escalizar según el tamaño de cada objeto, calcular las normales de los triángulos, dibujar los sólidos y adicionarlos como nuevos objetos colisionables. Con el reporte de VCollide se rescató la información del par de objetos colisionados y los polígonos de solapamiento.

Experimentos de interacción háptica

La librería HDAPI proporciona un control directo del Phantom Omni®. Por medio de las funciones y utilidades ofrecidas se puede manejar la configuración del dispositivo háptico, comprobar su estado (posición, velocidad y fuerza del efector final), y generar fuerzas indicando la intensidad, dirección e instante de aplicación. La representación del cursor háptico se realiza mediante un sólido virtual teniendo en cuenta que las transformaciones del dispositivo son traslaciones y rotaciones efectuadas con respecto a la posición del proxy en la escena.

Estas consideraciones permitieron integrar las librerías VCollide, OpenGL y HDAPI de OpenHaptics SDK, haciendo que el vector de fuerza a aplicar dependiera de las colisiones detectadas entre los sólidos.

Con la inserción de mallados (de variados tamaños y número de vértices) obtenidos previamente por procesamiento de imágenes médicas (Tibamoso, 2009) se evaluó el desempeño de algoritmos implementando las librerías HDAPI y HLAPI de Open Haptics, VCollide, HDAL y OpenGL. La herramienta o cursor háptico se representó con modelos superficiales de un lápiz, un bisturí, una fresa y un martillo, intercambiables gracias a un menú de opciones. Los modelos superficiales, incluidos como archivos en formato WaveFront *.obj, contenían desde 528 hasta 1.794.041 polígonos triangulares. El análisis se concentró en comprobar el desempeño de:

1. Herramienta háptica con modelo superficial y librería HLAPI: interacción del dispositivo Phantom Omni (figura 3).

2. Herramienta háptica con modelado superficial y librerías HDAPI/ Vcollide: interacción del dispositivo Phantom Omni.

3. Herramienta háptica con modelado superficial y librerías HDAL/VCollide: interacción del dispositivo Novint Falcon.

Algoritmo de reflexión de fuerza por aproximación volumétrica

La renderización de fuerzas es el procedimiento por el cual se transmite una sensación táctil mediante la aplicación de una serie de vectores de fuerza a través del dispositivo háptico. Estos vectores de fuerza son actualizados según la interacción y transformación dinámica entre los objetos virtuales de la escena y la interfaz háptica. Una vez representado el dispositivo háptico en el entorno virtual, el cálculo y aplicación de los vectores de fuerzas se pueden dar en dependencia del movimiento, el tiempo, o una combinación de ambos. A partir de la información proporcionada en la detección de colisiones con VCollide se propuso un algoritmo que utiliza las librerías HDAPI y HDAL para permitir la aplicación de un vector de fuerzas con dirección y magnitud dependiente de la geometría y volumen de las partes colisionadas (Sabater, 2009).

Cuando se detecta la colisión, la información del reporte de VCollide y la inicialización de la aplicación permiten conocer cuántos objetos sólidos han colisionado, así como cuáles, y cuantos triángulos se han solapado en cada sólido. El volumen de los sólidos incluidos en la escena se determina a partir de las coordenadas de los vértices que forman los polígonos triangulares de cada sección (figura 4). Por simplicidad del algoritmo, se calculó el volumen envolvente de una primitiva geométrica, que se seleccionó como un paralepípedo que reduce el cálculo matemático a la multiplicación de tres coordenadas (ancho, alto y profundidad) determinadas por la diferencia entre los componentes mínimos y máximos de cada eje coordenado. Esto permitió la aplicación de una técnica de caja envolvente alineada con el objeto (OBB), calculada por un algoritmo que acepta transformaciones de traslación y rotación del i-ésimo objeto vsi de la siguiente manera:

1. Determinar (xmin, xmax), (ymin, ymax), (zmin, zmax)

2 . Calcular, xv = xmax - xmin, yv = ymax - ymin, zv = zmax - zmin

3. Transformar objeto, ir a 1)

Para simular la interacción del sólido y el cursor háptico se supuso que el cálculo de la fuerza dependía de la información geométrica, vectorial y volumétrica de las partes del sólido cuyas caras han colisionado con la herramienta, utilizando información de los triángulos colisionados Tc1, sus vértices vc1, normales nc1 de la parte pc1 y volumen Voc1correspondiente. Se planteó entonces la aplicación de un vector de fuerza con magnitud proporcional al volumen de la parte sólida tocada y con dirección dada por la sumatoria de las normales de cada una de las caras colisionadas en el sólido.

Resultados

La detección de colisiones con VCollide contra HLAPI y HDAL

En la figura 5 se indican los tiempos de inicialización para las ejecuciones de cada dispositivo háptico en función del número de polígonos triangulares incluidos en cada modelo. Esta información evidencia que para cargar un objeto en la escena virtual, con 233.764 triángulos en su mallado superficial, con el dispositivo Novint Falcon (librerías HDAL y VCOLLIDE), se debieron esperar 25.342 ms antes de comenzar la aplicación, mientras que en la interfaz Phantom Omni (librerías HLAPI y HDAPIVCOLLIDE) los tiempos de inicio para convertir los objetos en modelos colisionables fueron de 7.109 ms y 7.719 ms.

Al evaluar los componentes del SDK OpenHaptics en relación con el tiempo de inicialización, se obtuvo mejor respuesta usando HDAPI-VCollide. Sin embargo, el algoritmo de realimentación del HLAPI (que ya viene implementado en la misma librería) muestra una mejor respuesta en cuanto a la intensidad de la señal de fuerza y su variación al mover el cursor háptico sobre el sólido, permitiendo percibir una sensación táctil más suave y continua que con el HDAPI-VCollide. Pero esto sólo es cierto si la detección de colisiones se efectúa entre el proxy y un sólido, lo cual ocasiona que haya posibles inmersiones de la herramienta aun cuando se estén realimentando fuerzas.

Otro aspecto a considerar con el uso de las librerías HL fue su dependencia del tipo de renderizado gráfico para los polígonos que conforman el modelo superficial, cuyas variaciones visuales se obtuvieron por medio de la función glPolygonMode de OpenGL. El renderizado háptico con HL fue indetectable cuando los sólidos fueron visualizados a partir de puntos o líneas. En la tabla 1 se indican otros criterios de comparación.

Herramientas virtuales de exploración táctil en un modelo superficial

Con el uso de las funciones callbacks de las librerías HLAPI y HDAL se facilita el manejo de eventos de interés para la realimentación táctil: 1) detección de colisión de los objetos de la escena con el proxy o punto a partir del cual se dibuja el cursor háptico; 2) captura de entradas digitales por medio de los pulsadores con los que cuentan los dispositivos hápticos. Con estas funciones se implementaron herramientas de exploración táctil para la marcación de puntos y trayectorias sobre modelos superficiales de interés médico (figura 6a). Se incluyó la opción de almacenamiento de los puntos marcados en archivos de tipo texto plano.

La figura 6b presenta la imagen de la aplicación de integración OpenGL, VCollide y HDAPI. En este caso se apreció el efecto del algoritmo de fuerzas propuesto; la dirección del vector de fuerza (flecha negra) es correspondiente con la sumatoria de la dirección de las normales y la magnitud cambia con respecto al volumen de la superficie tocada con la herramienta háptica. Aunque la función del cálculo de volumen que se realizó no es del todo confiable para modelos superficiales con cavidades, lo cual implicaría un mayor costo computacional, se pudo concluir experimentalmente que a menor tamaño de los objetos colisionables, mejor será la aproximación volumétrica y el vector de fuerza aplicado.

Conclusiones

Las ventajas de programar el dispositivo Phantom Omni con la librería HLAPI son notorias en cuanto a la realimentación táctil de forma continua y a la inserción previa de algoritmos de renderización de fuerza. Sin embargo, se encuentran considerables pérdidas de inmersión visual y realismo de la aplicación, ya que la detección de colisiones se realiza únicamente con respecto a un punto, lo cual puede ser indeseado en un simulador médico. Con el uso de VCollide para la detección de colisiones se superan estos inconvenientes, pero se deben generar algoritmos para la identificación de triángulos y vértices de los modelos superficiales, la detección de posición del efector final y la aplicación de fuerzas con la integración de las librerías HDAPI para el dispositivo Phantom Omni y HDAL para el Novint Falcon.

En el algoritmo para la generación de la escena gráfica mediante OpenGL, con el uso de OpenHaptics o HDAL, la sincronización de los hilos háptico y gráfico es transparente para el usuario. No obstante, las aplicaciones de HLAPI en las que se cargaron modelos superficiales con más de 230.000 caras triangulares provocaron lentitud en la ejecución gráfica. Las actualizaciones de la escena (ubicación de puntos de vista, ejecución de transformaciones del cursor háptico, acercamientos, etc.) son automáticas con HLAPI, pero la realimentación táctil solamente se presenta cuando los sólidos son visualizados como modelos superficiales completos (GL-FILL), es decir, que se pierde la información táctil cuando se visualizan los objetos por sus vértices o por las líneas que componen el mallado (GL-POINT, GL-LINE y GL-FILL). Esta situación es imperceptible con el uso de HDAPI o HDAL.

En las simulaciones hechas para aplicaciones de asistencia quirúrgica se consideró que los objetos de la escena virtual (tanto órganos como herramientas del instrumental quirúrgico) fueron rígidos (geometría constante) y atómicos (topología constante), esto es, no se podían dividir, ni seccionar. En dichas aplicaciones estos objetos sólo experimentaron rotaciones y traslaciones, las escalizaciones se realizaron previamente al cargar la información sobre los polígonos de objetos. Sin embargo, para lograr que estas simulaciones puedan ser utilizadas con éxito en el campo quirúrgico, se deben incluir algoritmos de deformación en un campo tridimensional que permitan analizar órganos como objetos deformables, además de herramientas del instrumental quirúrgico especiales, como la aguja y el hilo de sutura, y lograr un equilibrio entre el costo computacional de los algoritmos y el realismo para simular estas situaciones.


Referencias

Bradford, J., Using OpenGL & GLUT in Visual Studio .NET, 2003. http://csf11.acs.uwosh.edu/cs371/visualstudio/index.html, 2004.         [ Links ]

Caselli, S., Mazolli, M., Reggiani, M., A experimental evaluation of colision detection packages for robot motion planning. Procedings of the IEEE/RSJ Intl., Conference of Intelligent Robots and Systems EPFL. Lausanne, Switzerland, 2002.         [ Links ]

Gómez, J.M., Muñoz, V., Dominguez, F., Serón, J., Sistema experimental de Tele-Cirugía., Revista eSalud, Vol. 1, No 2, Abril-Junio, 2005.         [ Links ]

Hearn, D., Baker, M., Gráficos por computadora con OpenGL., PEARSON Prentice Hall, Madrid. 3 Edition. 2006.         [ Links ]

Méndez, L., Pinto, M., Sofrony, J., Definición y Selección de una Interfaz Háptica para Aplicaciones Preliminares de Asistencia Quirúrgica., Memorias del III Encuentro Nacional de Investigación en Posgrados - ENIP 2008, Universidad Nacional de Colombia, Mayo, 2008.         [ Links ]

Novint Technologies, Inc., Haptic Device Abstraction Layer (HDAL)., Programmer's Guide HDAL SDK VERSION 2.1.3 Agosto, 2008.         [ Links ]

Muñoz-Moreno, E., Rodríguez, S., Vilora, A., Lamata, P., Martín, M.A., Luis-García, R., Aja, S., Gómez, E., Alberola, C., Detección de colisiones. Un problema clave en la simulación quirúrgica., Informática y Salud (I+S) vol. 48, Octubre, 2004, pp. 23-35.         [ Links ]

Popescu, V., Burdea, G., Bouzit, M. Virtual Reality Simulation Modeling for a Haptic Glove., Computer Animation, 1999. Proceedings. Geneva, Switzerland, 1999, pp.195.         [ Links ]

Sabater, J., Pinto, M., Saltaren, R., Sofrony, J., Azorin, J.M., Perez, C., Badesa, J., Force reflecting algorithm in tumour resection simulation procedures., CARS 2009 - Proceedings of the 23rd International Congress and Exhibition, Berlin, Germany, June 23 - 27, 2009, pp. 138-140.         [ Links ]

SensAble Technologies, Inc., OpenHaptics Toolkit v. 2.0., Programmer's Guide, 2005, pp. 5-3 5-4.         [ Links ]

Tibamoso G., Romero, E., Segmentación y Reconstrucción Simultánea del Volumen del Hígado a partir de imágenes de Tomografía Axial Computarizada, Descripción de proyecto., Universidad Nacional de Colombia, http://www.bioingenium.unal.edu.co/pagpro.php?idp=3Dhigado&lang=es&linea=2, 2009.         [ Links ]


Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License