scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

La habilidad del neurocirujano puede suponer la diferencia entre el éxito o el fracaso de una operación de neurocirugía. Para facilitar su labor se han desarrollado a lo largo de la historia complejas técnicas de diagnóstico clínico y quirúrgicas. Actualmente las técnicas de diagnóstico más comunes son la tomografía axial computerizada (TAC), la tomografía por emisión de positrones (PET), la resonancia magnética nuclear (RMN) y la magnetoencefalografía (MEG). La microcirugía, la cirugía endoscópica o la cirugía estereotáxica representan algunos de los recientes avances más importantes en técnicas de quirófano. La neurocirugía es una especialidad médica que se encuentra en constante y rápida evolución. El uso de robots en las operaciones en general y en neurocirugía en particular cada vez tiene un mayor interés e importancia porque permiten sobrepasar la precisión y las habilidades humanas. La distinción entre tejido sano y tumoral es un problema añadido durante las operaciones de extirpación de tumores cerebrales. Es vital eliminar totalmente el tumor para evitar su reaparición, a la vez que conservar el mayor volumen posible de tejido sano circundante ayuda a reducir las secuelas y mejora la recuperación. En este documento se describe un método asistido por robot, con la ayuda de un sensor de fuerza y un sensor tumoral desarrollado en la Universidad Leibniz de Hanóver, para construir un mapa del tejido tumoral de la superficie del cerebro. A diferencia de otras tecnologías actuales, el proceso se puede efectuar de forma automatizada bajo supervisión humana. El objetivo de este proyecto es lograr movimientos seguros y precisos del brazo robótico mientras se construye el mapa, permitiendo incluso desplazar el sensor sobre la superficie en movimiento sin dañarla. Completar correctamente la tarea requiere un contacto perpendicular y constante del sensor con la superficie cerebral en cada punto a medir. Para ello se han desarrollado algoritmos, métodos, un controlador PID por software y las pruebas que se detallan en este documento. Aproximar el sensor tumoral de forma suave es uno de los requisitos más importantes, siendo otro compensar los movimientos de la superficie del cerebro debidos al pulso cardiaco mientras se mantiene el contacto con una fuerza constante. Si los movimientos del robot no se realizan con extrema precisión se pueden ocasionar daños graves al paciente o incluso su muerte. Las principales dificultades que se han enfrentado durante el proyecto son compensar la variación del peso medido por el sensor de fuerza al cambiar la orientación de la mano del robot, e identificar y reducir las fuentes de error como por ejemplo la precisión del sensor de fuerza o la alineación de las articulaciones del robot. Este proyecto también representa un punto de partida y de referencia para la investigación de nuevas aplicaciónes roboticas en cirugía de tejidos blandos. Quílez Velilla, Pablo Javier; Westphal, Ralf

Full text

Proyecto Fin de Carrera Sensor guiado por robot para determinar regiones tumorales en la superficie cerebral: optimización de puntos de contacto Autor: Pablo Javier Quílez Velilla Director: Ponente: Ralf Westphal Luis Montesano Septiembre de 2012 Ingeniería en Informática Institut für Robotik und Prozessinformatik TU Braunschweig Dedicado a las personas, familiares y amigos, que me han acompañado, durante este camino. Dedicado a todos ellos, que me empujaron logrando, que alcance mis sueños. 1 RESUMEN La habilidad del neurocirujano puede suponer la diferencia entre el éxito o el fracaso de una operación de neurocirugía. Para facilitar su labor se han desarrollado a lo largo de la historia complejas técnicas de diagnóstico clínico y quirúrgicas. Actualmente las técnicas de diagnóstico más comunes son la tomografía axial computerizada (TAC), la tomografía por emisión de positrones (PET), la resonancia magnética nuclear (RMN) y la magnetoencefalografía (MEG). La microcirugía, la cirugía endoscópica o la cirugía estereotáxica representan algunos de los recientes avances más importantes en técnicas de quirófano. La neurocirugía es una especialidad médica que se encuentra en constante y rápida evolución. El uso de robots en las operaciones en general y en neurocirugía en particular cada vez tiene un mayor interés e importancia porque permiten sobrepasar la precisión y las habilidades humanas. La distinción entre tejido sano y tumoral es un problema añadido durante las operaciones de extirpación de tumores cerebrales. Es vital eliminar totalmente el tumor para evitar su reaparición, a la vez que conservar el mayor volumen posible de tejido sano circundante ayuda a reducir las secuelas y mejora la recuperación. En este documento se describe un método asistido por robot, con la ayuda de un sensor de fuerza y un sensor tumoral desarrollado en la Universidad Leibniz de Hanóver, para construir un mapa del tejido tumoral de la supercie del cerebro. A diferencia de otras tecnologías actuales, el proceso se puede efectuar de forma automatizada bajo supervisión humana. El objetivo de este proyecto es lograr movimientos seguros y precisos del brazo robótico mientras se construye el mapa, permitiendo incluso desplazar el sensor sobre la supercie en movimiento sin dañarla. Completar correctamente la tarea requiere un contacto perpendicular y constante del sensor con la supercie cerebral en cada punto a medir. Para ello se han desarrollado algoritmos, métodos, un controlador PID por software y las pruebas que se detallan en este documento. Aproximar el sensor tumoral de forma suave es uno de los requisitos más importantes, siendo otro compensar los movimientos de la supercie del cerebro debidos al pulso cardiaco mientras se mantiene el contacto con una fuerza constante. Si los movimientos del robot no se realizan con extrema precisión se pueden ocasionar daños graves al paciente o incluso su muerte. Las principales dicultades que se han enfrentado durante el proyecto son compensar la variación del peso medido por el sensor de fuerza al cambiar la orientación de la mano del robot, e identicar y reducir las fuentes de error como por ejemplo la precisión del sensor de fuerza o la alineación de las articulaciones del robot. Este proyecto también representa un punto de partida y de referencia para la investigación de nuevas aplicaciónes roboticas en cirugía de tejidos blandos. 3 ÍNDICE ÍNDICE Índice 1. Introducción 9 1.1. Contexto ............................................ 9 1.2. Estadodelarte......................................... 9 1.3. Herramientas y entorno de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4. Motivación, objetivos y alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.5. Aproximación a la solución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.6. Estructuradelamemoria ................................... 12 2. Conceptos 13 2.1. Elementos físicos del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.1. RobotStaübliRX90.................................. 13 2.1.2. Sensor de fuerza / torsión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.3. Modelodecerebro ................................... 14 2.1.4. Sensortumoral..................................... 14 2.2. Espaciodetrabajo....................................... 14 2.2.1. Sistemas de referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.2. Semiesfera de desplazamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.3. División en cuadrantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3. Modos de movimiento del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.1. Frameinterpolation .................................. 16 2.3.2. Jointinterpolation................................... 16 2.3.3. Altermode ....................................... 16 3. Métodos 17 3.1. Métodos relativos al sensor de fuerza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.1. Transformación del sistema de coordenadas . . . . . . . . . . . . . . . . . . . . . 17 3.1.2. Precisióndelsensor .................................. 18 3.1.3. Exactitud........................................ 18 3.1.4. Respuestadelsensor.................................. 18 3.2. Métodos relativos al posicionamiento de la mano . . . . . . . . . . . . . . . . . . . . . . 18 3.2.1. Posicionamiento esférico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2.2. Aproximación a la supercie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.3. Colocación perpendicular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2.4. Arrastre por la supercie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3. Métodos relativos al controlador PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3.1. Método de Ziegler-Nichols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.2. Bateríadepruebas................................... 21 3.3.3. Ajustemanual ..................................... 21 3.4. Métodos relativos a la compensación de la gravedad . . . . . . . . . . . . . . . . . . . . 21 3.4.1. Método del reinicio del sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.4.2. Modelo sinusoidal o Computation Method . . . . . . . . . . . . . . . . . . . . . . 22 3.4.3. Ajuste polinómico multidimensional o Surface Fitting Method . . . . . . . . . . . 22 3.4.4. Otrosmétodos ..................................... 22 3.5. Métodos relativos a la calibración de las articulaciones . . . . . . . . . . . . . . . . . . . 23 3.6. Implementaciónsoftware.................................... 23 3.6.1. Arquitectura del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.6.2. Interfaz gráca de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5 ÍNDICE ÍNDICE 4. Resultados 25 4.1. Resultados relativos al sensor de fuerza . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.1.1. Transformación del sistema de coordenadas . . . . . . . . . . . . . . . . . . . . . 25 4.1.2. Precisión ........................................ 26 4.1.3. Respuesta........................................ 27 4.1.4. Exactitud........................................ 28 4.2. Resultados relativos a la compensación de la gravedad . . . . . . . . . . . . . . . . . . . 28 4.3. Resultados relativos a la alinación de las articulaciones . . . . . . . . . . . . . . . . . . . 29 4.4. ResultadosparaelPID .................................... 30 5. Conclusiones 33 5.1. Valoraciónnal......................................... 33 5.2. Dicultades........................................... 34 5.3. Distribucióndeltiempo .................................... 35 5.4. Valoraciónpersonal....................................... 35 5.5. Investigaciónfutura ...................................... 36 6. Anexo I: memoria en inglés 39 6 ÍNDICE DE FIGURAS ÍNDICE DE FIGURAS Índice de guras 1. Visión del entorno del trabajo, los elementos y las herramientas. . . . . . . . . . . . . . 10 2. Vista en detalle de las herramientas y elementos utilizados en el proyecto. . . . . . . . . 13 3. Ilustración lateral del problema del peso de la mano para el eje Y. . . . . . . . . . . . . 14 4. Conceptos geométricos del entorno de trabajo. . . . . . . . . . . . . . . . . . . . . . . . 15 5. CuadrantesdelplanoX-Y .................................. 15 6. Transformación del sistema de coordenadas del sensor de fuerza. . . . . . . . . . . . . . 17 7. Esquema del procedimiento de transformación del sistema de coordenadas del sensor tumoral. ............................................ 17 8. Conguración del brazo para alcanzar un punto inferior de la semiesfera de desplazamiento. ............................................. 19 9. Funcionamiento del controlador PID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 10. Calibración requerida para el modelo sinusoidal de compensación de la gravedad. . . . . 22 11. Arquitecturadelsitema..................................... 23 12. La interfaz gráca de usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 13. Resultados medidos tras rotar el sistema de coordenadas en pequeños incrementos. . . . 25 14. Resultados para diferentes valores de translación en el eje Z inicial del sensor de fuerza. 25 15. Los resultados de la desviación típica para 1000 mediciones sin movimiento y sin contacto. .............................................. 26 16. Desviación estándar para cada eje medida en movimiento sin contacto. . . . . . . . . . 26 17. Gráca de la evolución del módulo de la fuerza medido para cada ltro. . . . . . . . . . 27 18. Evolución del módulo de la fuerza para un movimiento oscilatorio en contacto con la supercie............................................. 28 19. Comparación de los mejores resultados obtenidos para cada método implementado. . . . 29 20. Fuerza con respecto a cambios en el ángulo de alineación de las articulaciones 3 y 4. . . 30 21. Ejemplo de un mapa tridimensional producido visto con MeshLab [15]. . . . . . . . . . . 33 22. Distribución del tiempo del proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7 2.2 Espacio de trabajo 2 CONCEPTOS El sensor dispone además de 7 ltros diferentes que modican la respuesta y los resultados medidos. En el apartado 3.1 se analiza en profundidad el rendimiento del sensor. El tiempo máximo necesario para obtener una medida ha sido determinado empíricamente, resultando ser de 94 milisegundos, aunque es posible reducirlo a 16 ms de media. La resolución mínima para los ejes X y Z es de 0,05 Newtons, y para el eje Y es de 0,2 según la cha técnica del fabricante [10]. Figura 3: Ilustración lateral del problema del peso de la mano para el eje Y. 2.1.3. Modelo de cerebro El modelo del cerebro tiene las mismas medidas que un cerebro humano real y reproduce sus propiedades físicas tales como elasticidad o dureza. Contiene en su interior un globo inable con el que se puede simular los movimientos de la supercie cerebral debidos al pulso cardíaco. En la gura 2b se incluye una fotografía del modelo. El cerebro se coloca centrado a una distancia vertical de 790 mm de la base del robot sin que ninguna parte del mismo sobresalga por el lateral de la semiesfera de desplazamiento descrita en el apartado 2.2.2. Aunque los algoritmos desarrollados son lo suciemente robustos para trabajar correctamente con una colocación aproximada, en el apartado 2.4 del Anexo I se detallan técnicas para un centrado más preciso. 2.1.4. Sensor tumoral El comportamiento real del sensor tumoral permite diferenciar tejidos orgánicos a través de cambios en la frecuencia y amplitud de una corriente eléctrica utilizando el efecto piezoeléctrico [11, 12]. Dada la imposibilidad de disponer en el laboratorio del sensor, se ha simulado su forma y función con una barra de plástico equipada con diferentes puntas metálicas intercambiables de 2, 3 y 4 mm de diámetro, mostradas en detalle en la gura 2c. La barra se encuentra sujeta por la pinza y la punta se sitúa verticalmente a 14 cm del centro de la mano. 2.2. Espacio de trabajo Este apartado describe los conceptos geométricos importantes para el proyecto. La gura 4 proporciona una perspectiva conjunta de los conceptos que se tratan en este apartado. 2.2.1. Sistemas de referencia Durante el proyecto se han utilizado principalmente tres sistemas de referencia. Las coordenadas del mundo, cuyo origen es jo y se sitúa en la base del robot; las coordenadas de la mano, cuyo centro está en la punta del sensor tumoral y se desplaza con él; y un sistema de coordenadas esféricas para trabajar con la semiesfera de desplazamiento descrita en el apartado 2.2.2. El sensor de fuerza también dispone de su propio sistema de referencia, aunque se ha hecho coindir con el de la mano del robot a través de una transformación. Sin embargo, también se han utilizado otros sistemas de referencia. que se tratan en profundidad en la sección 2.3 del Anexo I. 14 2 CONCEPTOS 2.2 Espacio de trabajo Figura 4: Conceptos geométricos del entorno de trabajo. 2.2.2. Semiesfera de desplazamiento La semiesfera de desplazamiento es una semiesfera imaginaria de 15 cm de radio denida con un sistema de coordenadas esféricas en cuyo interior se sitúa el cerebro. Su centro se sitúa a 790 mm de distancia vertical con el centro de coordenadas del mundo. La punta del sensor tumoral se desplaza de forma segura sobre dicha esfera de forma perpendicular a la supercie antes de aproximarse al cerebro, sin que ninguna parte del robot penetre en su interior. A través de esta restricción se garantizan movimientos seguros y se evitan singularidades en las articulaciones del robot. El arco generatriz de la semiesfera se denomina por extensión arco de desplazamiento. 2.2.3. División en cuadrantes El plano X-Y correspondiente a una vista superior del entorno de trabajo se divide en cuatro cuadrantes tal y como se ilustra en la gura 5 Figure 5: Cuadrantes del plano X-Y 15 2.3 Modos de movimiento del robot 2 CONCEPTOS 2.3. Modos de movimiento del robot Durante este proyecto se han utilizado tres modos diferentes de movimiento del robot que se incluyen en las bibliotecas proporcionadas por el departamento. La posición y orientación de la mano del robot se representan a través de una matriz de transformación homogénea o frame . También es posible indicar directamente la posición de la mano a través de los valores de las articulaciones. 2.3.1. Frame interpolation Este modo de desplazamiento crea una trayectoria en línea recta y con rotación constante entre la posición actual y un frame dado, de forma que si para alcanzar el objetivo es necesario salirse de la trayectoria, el movimiento se detiene. De esta manera se impiden movimientos bruscos e impredecibles. Hasta que no naliza no se devuelve el control al programa que lo ha ejecutado. 2.3.2. Joint interpolation Este modo permite desplazar la mano del robot a cualquier posición del espacio de trabajo. Si la referencia no se puede alcanzar directamente, las articulaciones rotarán de forma impredecible para alcanzarlo. Es un modo peligroso ya que puede provocar colisiones con obstáculos situados en el espacio de trabajo. 2.3.3. Alter mode Este modo de movimiento hace posible desplazamientos asíncronos del robot basados en pequeños incrementos. Primero se asigna el número de veces que se va a repetir la operación de incremento cada 16 milisegundos y luego se ejecuta el incremento dado, en X, Y y Z así como la rotación en estos tres ejes. Una vez ejecutada la orden, el control se devuelve a la aplicación antes de que nalize el movimiento. 16 3 MÉTODOS 3. Métodos En esta sección se describen los métodos más importantes desarrollados durante el proyecto. 3.1. Métodos relativos al sensor de fuerza Estos métodos permiten preparar correctamente el sensor de fuerza antes de iniciar las labores de análisis, así como determinar su rendimiento. 3.1.1. Transformación del sistema de coordenadas El sistema de coordenadas original del sensor se sitúa en el centro del mismo y rotado aproximadamente 45 º tal y como se indica en la gura 6. Sin embargo, la sujeción del sensor permite ligeras rotaciones de algunos grados en el soporte físico, lo que introduce un error en la orientación. Para conocer con exactitud el ángulo y la distancia entre el centro del sensor de fuerza y el sensor tumoral se ha construido el procedimiento descrito en este apartado. Figura 6: Transformación del sistema de coordenadas del sensor de fuerza. El procedimiento consiste en rotar el sistema de coordenadas del sensor un pequeño ángulo o transladarlo en el eje Z original antes de situarlo en la punta del sensor tumoral. Después se introduce verticalmente la herramienta tumoral en el modelo del cerebro y se analizan las mediciones obtenidas. El esquema de la gura 7 muestra la distancia Z y el ángulo a a modicar en pequeños incrementos hasta que se obtienen el ángulo y la distancia correcta. Figura 7: Esquema del procedimiento de transformación del sistema de coordenadas del sensor tumoral. El ángulo correcto será aquel con el que se mide la menor fuerza en el eje Z y cero en el eje X, una vez transformado el sistema a la punta del sensor tumoral. La distancia inicial en Z corresponde al momento en que la torsión en el eje X se hace nula. En el apartado 3.1.1 del Anexo I se incluyen todos los detalles del algoritmo. 17 3.2 Métodos relativos al posicionamiento de la mano 3 MÉTODOS 3.1.2. Precisión del sensor Se han desarrollado métodos para comprobar la precisión del sensor de forma estática y dinámica así como su exactitud. Es importante comprobar cómo varía la precisión para cada ltro disponible en el sensor. Precisión estática La precisión estática se obtiene sin movimiento de la mano. Para cada ltro se toma un gran número de mediciones y se obtiene la desviación típica que representa la precisión del sensor. Precisión dinámica La precisión dinámica se calcula a partir de las mediciones obtenidas en movimiento. La mano del robot ejecuta movimientos verticales arriba y abajo de 1 cm de distancia a una velocidad de 1 cm por segundo. Las mediciones se almacenan para obtener la desviación típica así como la evolución de los valores medidos para cada ltro. 3.1.3. Exactitud La exactitud del sensor se puede obtener como la media de un gran número de mediciones tomadas sin movimiento de la mano y sin contacto. La cercanía a cero indica la exactitud. En este método se reinicia el sensor varias veces y se obtiene la media para un gran número de medidas. 3.1.4. Respuesta del sensor La respuesta del sensor se obtiene de forma similar al cálculo de la precisión dinámica, pero contactando con la supercie del modelo. Se realizan desplazamientos verticales arriba y abajo de 1 cm a una velocidad de 1 cm por segundo pero introduciendo en este caso la punta del sensor tumoral dentro del modelo algunos milímetros. Como referencia del valor de fuerza máximo esperado, primero se introduce totalmente la punta y se realizan varias mediciones. 3.2. Métodos relativos al posicionamiento de la mano Estos métodos describen los algoritmos de movimiento de la mano del robot necesarios para completar la tarea de análisis del cerebro. Primero se describe cómo mover la mano del robot de forma segura sobre el cerebro, luego el algoritmo de aproximación, en tercer lugar cómo lograr una posición perpendicular y por último el arrastre de la herramienta por la supercie. El orden de los puntos a escanear se determina siguiendo una heurística voraz para el problema del viajante [21]. Partiendo de la posición actual de la mano del robot, se toma como próximo punto el más cercano. 3.2.1. Posicionamiento esférico Este método permite colocar la mano del robot sobre cualquier punto del cerebro a una distancia segura y libre de colisiones. El método se basa en el concepto de semiesfera de desplazamiento denido en el apartado 2.2.2. El robot parte de la posición de inicio sobre el cerebro correspondiente a los valores de las articulaciones denidos en el apartado 2.6 del Anexo I y visualizada en la guras 1 y 4. Combinando dos tipos de movimientos se puede alcanzar cualquier punto de la semiesfera conservando siempre una orientación perpendicular a ella. Movimiento de rotación: corresponde a modicar el azimuth de las coordenadas esféricas de la semiesfera, y equivale a una rotación en la articulación 1, situada en la base del robot. Movimiento de traslación: corresponde a un desplazamiento por el arco generatriz de la semiesfera. Para ello el brazo se extiende tal y como se puede observar en la gura 8. El camino entre dos puntos cualesquiera de la semiesfera se calcula obteniendo recursivamente las coordenadas geométricas intermedias hasta una distancia de paso que el robot recorre de forma rectilínea 18 3 MÉTODOS 3.2 Métodos relativos al posicionamiento de la mano mientras modica su orientación en el espacio. Los límites en el ángulo de rotación de la articulación 1 causan que la orientación entre dos cuadrantes de la mano puede ser inversa, como por ejemplo entre el cuadrante 2 y el 3, o el 1 y el 2; en estos casos es necesario primero mover la mano hasta el cénit de la semiesfera. Todos los aspectos matemáticos del método y los algoritmos en profundida se encuentran extensamente detallados en el apartado 3.2 del Anexo I. Figura 8: Conguración del brazo para alcanzar un punto inferior de la semiesfera de desplazamiento. 3.2.2. Aproximación a la supercie El movimiento de aproximación tiene lugar una vez situada la mano de tal forma que la punta del sensor tumoral se encuentra en la semiesfera de desplazamiento apuntando a su centro. También se utiliza en combinación con otros movimientos como se describe en los siguientes apartados. Es un movimiento rectilíneo en el eje Z de la mano del robot ejecutado a través de pequeños incrementos usando el modo Alter Mode denido en la sección 2.3.3. La distancia a desplazarse en cada iteración puede ser positiva o negativa y se calcula a partir de la fuerza medida usando el controlador PID descrito en la sección 3.3. Algoritmo 1 Descripción básica del algoritmo de aproximación a la supercie. Fuerza = MedirFuerza() Desplazamiento = PID(Fuerza) Si Fuerza  [FuerzaDesada - Umbral, FuerzaDeseada + Umbral] Repetir DesplazarEnZ(Desplazamiento) Repetir 3.2.3. Colocación perpendicular La colocación perpendicular permite una vez en contacto con la supercie del cerebro obtener una posición perpendicular a la misma. Desde la supercie, el vector de fuerza medido por el sensor indica directamente el vector perpendicular a la misma. A partir de este vector por trigonometría se puede obtener el frame perpendicular al que hay que desplazar la mano. Se han elaborado dos algoritmos diferentes, que se encuentran matemática y algorítmicamente descritos en el apartado 3.3.3 del Anexo I. La precisión del sensor de fuerza afecta especialmente al método dinámico. 19 3.3 Métodos relativos al controlador PID 3 MÉTODOS Método estático El método éstatico consiste en tomar varias mediciones de la fuerza una vez en contacto con la supercie, y calcular a partir de ellas la posición perpendicular. Ya conocida, la mano rota a la posición utilizando el modo de movimiento Alter Mode, combinándolo con el movimiento de aproximación a la supercie descrito en la sección anterior. De esta forma, la rotación de la mano mantiene el contacto aunque la supercie se desplaze. Método dinámico El modo dinámico utiliza también el modo Alter Mode. Mientras el movimiento de aproximación a la supercie sigue activo, se calcula el frame perpendicular en cada iteración y se rota ligeramente en ese sentido hasta que se alcanza una orientación estable. 3.2.4. Arrastre por la supercie Este método es una combinación del posicionamiento esférico y de la aproximación a la supercie. En este caso, el posicionamiento esférico admite un radio variable, que es regulado por el algortimo de aproximación. Todos los movimientos se realizan con el modo de movimiento Alter Mode, por lo que fue necesario modicar los algoritmos de desplazamiento esféricos. Todos los detalles en profundidad sobre se describen en el apartado 3.3.2 del Anexo I. 3.3. Métodos relativos al controlador PID La aproximación a la supercie y la conservación del contacto de fuerza constante se realizan a través de un controlador PID implementado por software en forma de algoritmo iterativo. El controlador se retroalimenta de la fuerza medida, calculando la distancia a mover la mano a partir de la suma de tres componentes: proporcional, integral y derivativa. El esquema de funcionamiento se muestra en la gura 9. Figura 9: Funcionamiento del controlador PID. Primero se obtiene el error restando a la fuerza deseada la fuerza medida en ese instante. La componente proporcional se genera multiplicando el error por una constante Kp . La componente integral se calcula multiplicando los errores almacenados de iteraciones anteriores por el periodo de tiempo de cada iteración, y nalmente por una constante Ki . La componente derivativa es la resta del error actual con el anterior, dividida por el periodo y multiplicada por la constante Kd . Algoritmo 2 Algoritmo básico del controlador PID implementado. Error(t) = FuerzaDeseada - FuerzaMedida() P = Kp * Error(t) I = 0 Desde k = t-NúmeroErrores hasta t: I = I + Error(k) * Periodo I = Ki * I D = Kd * (error(t) - error(t-1)) / Periodo Distancia(t) = P + D + I Repetir 20 3 MÉTODOS 3.4 Métodos relativos a la compensación de la gravedad Para el correcto funcionamiento del controlador se requiere el ajuste de los parámetros Kp , Ki y Kd . Dado que la componente integral es acumulativa, el algoritmo permite seleccionar el número de errores que son tenidos en cuenta para su cálculo. De esta forma se reduce el problema de crecimiento desmesurado de la componente, conocido en inglés como integral windup [22]. El ajuste se ha realizado a través de tres métodos diferentes. 3.3.1. Método de Ziegler-Nichols El método de Ziegler-Nichols [23, 24, 25] sigue una heurística para obtener un ajuste aproximado de los parámetros. Para el ajuste se requiere el uso real del controlador en funcionamiento. Primero se jan las constantes proporcional, derivativa e integral a cero, para luego aumentar progresivamente la proporcional hasta el último valor Ku en el que se producen oscilaciones regulares de periodo Tu . Entonces se calculan directamente Kp= 0,6·Ku , Ki= 2 ·Kp/Tu y Kp=Kp·Tu/8 . 3.3.2. Batería de pruebas Este procedimiento permite comprobar de forma iterativa cómo afecta la variación de los parámetros al comportamiento del sistema. Para una combinación de parámetros dada, el algoritmo ejectua una aproximación durante 20 segundos antes de volver a la posición de inicio para probar la siguiente combinación. Los valores medidos y las posiciones correspondientes son almacenadas para obtener indicadores de los cuales se obtiene una valoración objetiva del comportamiento. A continuación se presenta una descripción algorítmica del proceso. Algoritmo 3 Algoritmo básico del ajuste del PID mediante batería de pruebas. Para cada combinación de parámetros: TrazaDatos = Aproximar(20 segundos) MoverA(PosiciónInicio) Indicadores = Puntuar(TrazaDatos) Imprimir(Parámetros, Indicadores); Este método permite congurar un mayor número de parámetros, lo que aumenta la complejidad algorítmica hasta O(n8) . Debido a ello, es necesario restringir las pruebas a los valores cercanos a los utilizados para el método de Ziegler-Nichols. Los parámetros permitidos son: fuerza deseada, constantes proporcional, integral y derivativa; número de errores considerados en la componente integral, umbral de fuerza permitido sobre la fuerza deseada, número de medidas que se toman para calcular la media, y compensar o no la gravedad. Los indicadores obtenidos para cada combinación son variados y representativos de la estabilidad, la suavidad de contacto y la velocidad de respuesta. La forma de obtener una valoración nal de la posición así como los indicadores y el algoritmo en profundidad se incluye en el apartado 3.3.4 del Anexo I. 3.3.3. Ajuste manual Una vez que se han obtenido las mejores combinaciones de parámetros por los métodos anteriores, el ajuste nal se realiza determinando el comportamiento de los parámetros de forma visual tanto con y sin movimiento del modelo de cerebro. 3.4. Métodos relativos a la compensación de la gravedad El problema de la compensación de la gravedad aparece descrito en el apartado 2.1.2 como la diferencia de las componentes del vector peso de la mano y el oset almacenado tras cambiar la orientación de la mano. Para solucionarlo, se proponen diferentes métodos ordenados por complejidad matemática. 21 3.4 Métodos relativos a la compensación de la gravedad 3 MÉTODOS 3.4.1. Método del reinicio del sensor Este método es el más básico de todos, y sólo permite una funcionalidad limitada al impedir compensar los cambios mientras se está en contacto con la supercie. El procedimiento es sencillo, tras variar la orientación de la mano, sin estar en contacto, el sensor de fuerza se reinicia. Las mediciones obtenidas a partir del reinicio serán correctas siempre que no se modique la orientación . 3.4.2. Modelo sinusoidal o Computation Method Este método ha sido modicado a partir de un esquema básico de un trabajo anterior del departamento. En una fase de calibración inicial se miden los valores de fuerza para seis posiciones diferentes tal y como se indica en la gura 10. Para cada eje, a partir de dos posiciones inversas se puede obtener el oset almacenado durante el reinicio del sensor y el peso en cada eje. Estas posiciones inversas además hacen máximo y mínimo el peso de la mano en dicho eje, de forma que para cualquier orientación se puede obtener el valor esperado que medirá el sensor a través de cálculo trigonométrico. El cálculo matemático se describe en profundidad en el apartado 3.4.2 del Anexo I. Figura 10: Calibración requerida para el modelo sinusoidal de compensación de la gravedad. 3.4.3. Ajuste polinómico multidimensional o Surface Fitting Method Este método permite ajustar la función que obtiene el valor esperado de la fuerza y la torsión para una orientación dada en forma de ángulos de Euler intrínsecos. La función de la forma f(Z1, Y, Z2) = (forceX, forceY, forceZ, torqueX, torqueY, torqueZ) se puede descomponer a través de este método en composición de funciones f(x) = a0+a1x+. . . +akxk . Los coecientes de este tipo de funciones se obtienen a través de regresión polinomial [26]. Este método requiere una fase de calibración previa donde se almacenan las fuerzas y torsiones para todos los ángulos de Euler posibles cada una distancia angular dada. Esta fase puede durar varias horas dependiento del tamaño de paso elegido ya que su complejidad algorítmica es de O(n3) y cada orientación requiere unos dos segundos para tomar la medida nal a partir de la media de unas diez mediciones. Sin embargo, todos estos valores congurables. Para descomponer la función a ajustar, primero se divide en seis diferentes del tipo f(Z1, Y, Z2) = valor ; una para cada eje de fuerza y torsión. El problema se puede resolver de forma piramidal dimensión a dimensión utilizando el algoritmo de divide y vencerás. El proceso de obtención de los valores nales se incluye detallado y descrito con varios diagramas en el apartado 3.4.5 del Anexo I. Para agilizar el tiempo de cálculo, se almacena el ajuste de la dimensión Z2 al cargar los datos de calibración; de forma que se realiza una sola vez. El método desarrollado permite compensar cambios en el centro de masas de la mano en tiempo real, como por ejemplo portar un recipiente con líquido dentro. 3.4.4. Otros métodos Estos métodos requieren la misma calibración que en el método de ajuste polinómico de la sección anterior. 22 3 MÉTODOS 3.5 Métodos relativos a la calibración de las articulaciones Valor más cercano o Nearest Method Se toma como valor de fuerza y torsión para unas coordenadas Euler dadas, los valores correspondientes a las coordenadas más cercanas usando la distancia euclídea. El algoritmo se describe en el apartado 3.4.3 del Anexo I. Valor medio o Weighted Average Method Se calcula la media de los valores obtenidos para las 2, 4 u 8 coordenadas más cercanas almacenadas durante la calibración. El apartado 3.4.4 del Anexo I incluye el algoritmo. 3.5. Métodos relativos a la calibración de las articulaciones Los métodos que aquí se proponen se han desarrollado con el objetivo de lograr una alineación extremadamente exacta de las articulaciones del robot. Todos ellos siguen un patrón muy similar de aproximación logarítmica al ángulo correcto de alineación, aunque limitado por la precisión del sensor de fuerza. En ellos, se calcula el error entre dos orientaciones inversas de la mano del robot para tres ángulos diferentes. Considerando una función continua que presenta un único mínimo en el valor de ángulo correcto, éste se situará entre los ángulos cuya diferencia entre sus errores tenga un menor valor absoluto. Los algoritmos, diagramas, grácas y aspectos matemáticos se encuentran descritos en profundidad en el apartado 3.6 del Anexo I. 3.6. Implementación software En esta sección se introduce la arquitectura de software construida y la visualización de los resultados del análisis a través de la interfaz de usuario. La sección 4 del Anexo I contiene una descripción en detalle del software implementado. 3.6.1. Arquitectura del sistema La arquitectura del sistema se muestra en la gura 11. Está dividida en cuatro capas. Partiendo desde un nivel inferior se encuentra la capa de harware, que incluye el robot y el sensor. La capa de interfaz contiene las implementaciones thread-safe que se han desarrollado para este proyecto. La capa lógica controla todas las funcionalidades y métodos de pruebas. Por último se sitúa la interfaz de usuario que se describe en el apartado 3.6.2. La arquitectura sigue el patron Modelo-Vista-Controlador. Figura 11: Arquitectura del sitema. 23 4.4 Resultados para el PID 4 RESULTADOS Figura 20: Fuerza con respecto a cambios en el ángulo de alineación de las articulaciones 3 y 4. 4.4. Resultados para el PID Primero se obtuvieron los valores aproximados para las constantes a través del método de Ziegler- Nichols con una fuerza objetivo de 0,3 Newtons. El comportamiento observado se describe en el cuadro 1a. Los resultados calculados que se muestran en el cuadro 1b tuvieron inicialmente un mal funcionamiento durante la aproximación al cerebro. A pesar de limitar el cálculo de la integral a los 10 últimos errores, se seguía presentando el problema de integral-windup. Tras jar la constante integral a 0, el comportamiento del sistema mejoró, siendo capaz de responder con celeridad a los movimientos de la supercie. Kp Comportamiento Periodo (s) 0,4 Oscilaciones constantes 1,6 0,5 Oscilaciones constantes de 1 cm 2,0 0,6 Oscilaciones ligeramente irregulares 2,5 0,7 Oscilaciones totalmente irregulares 2,8 (a) Comportamiento observado. Constante Valor Kp 0,3 Ki 0,3 Kd 0,075 (b) Resultados obtenidos. Cuadro 1: Aplicación del método de Ziegler-Nichols. Una vez calculados los valores de partida, se realizó una batería de pruebas para cada punta del sensor, cuyos resultados se incluyen en los apartados 7.1, 7.2 y 7.3 del Anexo I. En ellas se analizaron las conguraciones de parámetros próximas a los valores obtenidos por el método de Ziegler-Nichols. Aquellas que presentaban un valor de ranking más bajo se probaron manualmente para determinar visualmente su comportamiento. Se comprobó que aumentar la estabilidad durante el contacto reducía siempre la velocidad de respuesta a los movimientos de la supercie, por lo que se tuvo que alcanzar un compromiso. Dependiendo de si se preere un contacto suave o una respuesta más rápida, se puede modicar la constante derivativa ligeramente. Se concluyó que el término integral no aporta ningún benecio, por lo que nalmente se eliminó. Tal y como se muestra en las tablas, las diferentes puntas tienen un comportamiento muy similar, salvo por la profundidad máxima alcanzada dentro del cerebro, mayor en la punta más na. Aumentar el número de medidas para calcular la media en cada iteración del PID aumenta la estibilidad pero reduce la velocidad respuesta. 30 4 RESULTADOS 4.4 Resultados para el PID Constantes Mejor contacto Buen contacto con mejor respuesta Kp 0,3 0,3 Ki 0,0 0,0 Kd 0.,025 0,75 Cuadro 2: Parámetros del PID nales. 31 5 CONCLUSIONES 5. Conclusiones En esta sección se incluyen las conclusiones nales, una valoración sobre las dicultades encontradas, la distribución del tiempo para las distintas fases del proyecto, una valoración personal, y posteriormente se introducen nuevas ideas para la investigación futura. 5.1. Valoración nal La principal conclusión que se extrae del proyecto es que es técnicamente viable construir un sistema de análisis por contacto de tejidos biológicos blandos en movimiento, controlado únicamente a través de un sensor de fuerza, y realizado de forma segura. El comportamiento del proceso es bueno, incluso teniendo en cuenta que se ha utilizado equipamiento industrial genérico. Con un equipo de personas, herramientas hechas a medida, y sensores adicionales se podría obtener un resultado excelente y pensar en su comercialización en un futuro a medio plazo. El mapa tridimensional obtenido puede llegar a ser tan detallado como se quiera, ya que no hay limitación en el número de puntos a escanear. El tiempo requerido para escanear una zona amplia con mucha denición, puede llegar a ser de varias horas, ya que analizar cada punto toma algunos segundos en total. La gura 21 muestra un ejemplo de mapa tumoral, mostrando en rojo los puntos con tumor y en azul los sanos. Figura 21: Ejemplo de un mapa tridimensional producido visto con MeshLab [15]. 33 5.2 Dicultades 5 CONCLUSIONES El concepto de la semiesfera de desplazamiento ha resultado ser clave para alcanzar el cerebro de forma segura. Se ha concluido que situar al paciente debajo de la base del robot elimina las singularidades en las articulaciones y permite el contacto con todos los puntos de la supercie. Esta conguración geométrica es la que mejores resultados ha proporcionado entre todas las posibilidades analizadas al comienzo del proyecto. A través de los métodos elaborados se concluye que no es necesario conocer la geometría del cerebro para su correcto análisis tumoral. Sin embargo, para evitar daños en un paciente debidos a un fallo del sensor de fuerza, se hace necesario añadir más sensores para un uso real. La velocidad de respuesta del sensor limita directamente el acompasamiento del movimiento de la supercie cerebral. La precisión del sensor, obliga a establecer un umbral de fuerza permitido para evitar oscilaciones del sensor tumoral durante el contacto. Para que éste sea óptimo y de aproximadamente 0,1 Newtons, se requiere un sensor de fuerza capaz de proporcinar una lectura real en menos de dieciséis milisegundos, y una precisión de al menos 0,01 Newtons. Sin embargo, para calcular una perpendicular perfecta a la supercie podría necesitarse un sensor aún más preciso. Dos fuentes de error empeoran aún más la precisión del sensor de fuerza: la compensación de la gravedad y la alinación de las articulaciones del robot. Además, el error introducido por la primera depende en su mayor parte de la alineación, que debe ser extremadamente exacta, ya que un error de 0,5 grados en una articulación puede suponer un error de más de 0,2 Newtons en las medidas. La precisión del sensor de fuerza representa un cuello de botella para los algoritmos de alineación desarrollados. El peso de la mano también es un factor clave. Una mano más ligera introduciría errores menores y su inercia tendría menor impacto en las mediciones. Por último, es importante concluir que la metodología de desarrollo en espiral ha resultado adecuada a la naturaleza del proyecto, ya que ha permitido progresar en paralelo en todos los aspectos del mismo y a la vez profundizar poco a poco en ellos, en un proceso de mejora continua. 5.2. Dicultades La principal dicultad para la realización del proyecto es inherente a la naturaleza del mismo. Al ser un proyecto que parte prácticamente desde cero, se abre un abanico de posibilidades que requiere un tiempo considerable para decidir y analizar los caminos a explorar. Sin embargo, es preciso señalar algunas dicultades concretas que han sido necesario solventar y que se describen en orden cronológico en esta sección. La primera dicultad está asociada a los sistemas de coordenadas. El robot dispone de dos sistemas de coordenadas diferentes. Además el sistema de referencia de la mano se transformó a la punta del sensor para facilitar la legibilidad de los métodos desarrollados. En el caso del sensor de fuerza, se presentó el problema añadido de no conocer con certeza la posición ni la orientación del sistema de referencia original, siendo necesario elaborar métodos para determinarlas. La segunda dicultad está relacionada con la posición del cerebro. Se probaron diferentes posiciones hasta que se concluyó que el concepto de la semiesfera de desplazamiento proporcionaba los mejores resultados y evitaba singularidades. Para ello fue necesario analizar el comportamiento de la trayectoria y de las articulaciones del robot, así como limitar la orientación de la mano para cada punto de la semiesfera. Posteriormente, los métodos de desplazamiento por la semiesfera empezaron a ganar complejidad, y se decidió añadir las coordenadas esféricas para darles una mayor claridad y sencillez. Al analizar el comportamiento del sensor, se concluyó que la precisión lograda estaba en el límite práctico para su uso en este tipo de aplicaciones. El siguiente problema surgió al tener que compensar la gravedad. Se desarrollaron diferentes métodos, uno de ellos modicando un trabajo anterior del departamento que fue necesario estudiar primero en profundidad. A pesar de que se tenía la certeza de la correcta implementación de los diferentes métodos, se presentaban irregularidades en los resultados. Se comprobó que el cable del sensor de fuerza en algunas orientaciones de la mano rozaba con la misma lo suciente como para introducir un error detectable. Sin embargo, una vez subsanado este problema, continuaron apareciendo valores extraños hasta que se hipotetizó que eran causados por la alineación de las articulaciones. La última dicultad crítica fue solucionar el problema de la alineación de las articulaciones; primero 34 5 CONCLUSIONES 5.3 Distribución del tiempo diseñando métodos para detectar y cuanticar los errores y luego tenerlos en cuenta en los métodos ya implementados. Otras difcultades adicionales relacionadas con la interfaz de usuaro fueron mostrar una vista 2D y 3D en la ventana del programa, permientiendo translaciones y rotaciones de todas las vistas, asi como implementar una triangulación de Delaunay [20] para poder exportar el mapa obtenido como chero en formato PLY [29]. Implementar las interfaces del robot, del sensor de fuerza y del control de los procesos de forma thread-safe añadió mayor complejidad al software, pero a la vez permitió detalles como por ejemplo mostrar el resultado del escaneo cerebral al cirujano en tiempo real. 5.3. Distribución del tiempo La gura 22 muestra cómo se ha distribuido el tiempo en las distintas fases del proyecto. La fase de documentación sobre el robot fue más rápida ya que había sido utilizado en asignaturas cursadas previamente. Sin embargo, la lectura de documentación técnica sobre el sensor tumoral y el sensor de fuerza fue más compleja al presentarse únicamente en idioma alemán. Es complicado separar la fase de análisis de la de implementación por ser un proceso en espiral, y por tanto, surgir nuevas ideas constantemente durante la implementación de las provenientes de la iteración anterior. Las pruebas tuvieron un peso igual al de la implementación durante el desarrollo del proyecto. Por último, redactar la memoria en inglés y en español incrementó ligeramente el tiempo previsto inicialmente para esta tarea. Figura 22: Distribución del tiempo del proyecto. 5.4. Valoración personal Tras haber superado con éxito varias asignaturas de robótica e informática aplicada a la medicina en la Universidad de Braunschweig durante mi estancia Erasmus, tuve la oportunidad de elegir un proyecto relacionado con la robótica quirúrgica. A pesar de la aparente complejidad del proyecto, la elección fue sencilla debido a mi interés personal en la materia. Al no existir un camino de desarrollo jado, la incertidumbre inicial provocó que al principio el proyecto progresara de forma lenta. Tuve que invertir mucho tiempo en pensar los siguientes pasos para evitar que el trabajo desarrollado fuera redundante o que no aportara nada. Una vez que el proyecto tomó forma y empezó a mostar un buen comportamiento, me centré en mejorar los resultados y añadir nuevas funcionalidades. Las limitaciones impuestas por la precisión del sensor, la compensación de la gravedad y otras fuentes de error como la alineación de las articulaciones, hicieron imposible optimizar más el proyecto en el tiempo establecido. Se alcanzó un punto, en el cual invertir cada vez más tiempo sólo reportaba pequeñas mejoras. El proyecto en general resultó complejo y laborioso, suponiendo un reto personal. En bastantes ocasiones para cumplir los objetivos jados fue necesario investigar e implementar métodos, que aunque 35 5.5 Investigación futura 5 CONCLUSIONES a priori podrían parecer simples, llevaron una considerable carga de trabajo asociada. El código nalmente implementado asciende a unas diez mil líneas, ya que contiene todos los procesos y los métodos de prueba. Fue necesario combinar aspectos de medicina, geometría, física, programación concurrente, robótica, ingeniería del software, estadística e informática gráca. En resumen, mi opinión es que el proyecto ha sido interesante, motivador y desaante. 5.5. Investigación futura En este apartado se proponen mejoras para continuar con el desarrollo iniciado con este proyecto. Los temas propuestos pueden dividirse en tres líneas de investigación complementarias. La primera línea de investigación incluye mejoras a nivel de hardware. Sustituir el sensor de fuerza actual por otro con mayor precisión y menor tiempo de respuesta permitiría aumetar la suavidad del contacto con la supercie del cerebro, una mejor reacción a los movimientos de la supercie, y encontrar una posición perpendicular más precisa. Una mano del robot más ligera reduciría los errores debidos a la alineación de las articulaciones del robot y la compensación de la gravedad. Utilizar un robot con más de seis articulaciones lograría más espacio para el cirujano al permitir conguraciones del brazo más complejas. Por último se propone añadir más sensores para determinar la distancia y geometría del cerebro: sensor de distancia ultrasónico, láser o sistemas de visión como por ejemplo Microsoft Kinect [30]. De esta forma se mejoraría la seguridad durante el análisis al disponer de varias fuentes de información en caso de fallo del sensor de fuerza. La segunda línea de investigación se centra en mejoras algorítmicas. Sería interesante hacer un modelo de predicción de los movimientos de la supercie cerebral correspondientes a las pulsaciones cardíacas. Métodos que utilizaran la información de diferentes sensores añadidos en la línea anterior permitirían un control más preciso del movimiento del sensor tumoral. Otro punto importante podría ser mejorar la precisión de la compensación de la gravedad con nuevas técnicas. Y por último, poder construir una rejilla regular cuyos puntos fueran equidistantes sobre la supercie del cerebro teniendo en cuenta sus circunvoluciones. En la tercera línea se proponen mejoras de software, con una interfaz de usuario más compleja y más medidas de seguridad en el programa. 36 REFERENCIAS REFERENCIAS Referencias [1] R. Westphal (2007): Sensor-Based Surgical Robotics: Contributions to Robot Assisted Fracture Reduction, ISBN 978-3-8322-6595-3, Shaker-Verlag, http://www.rob.cs.tu-bs.de/content/ 03-research/03-publications/download/rwe_2007_08_diss.pdf [2] Markus Rilk, Daniel Kubus, Friedrich M. Wahl, Klaus W.G. Eichhorn, Ingo Wagner, Friedrich Bootz (2010): Demonstration of a Prototype for Robot Assisted Endoscopic Sinus Surgery, Video proceedings of ICRA2010, http://www.rob.cs.tu-bs.de/content/03-research/ 01-projects/62-endoscope/icra2010_prototype.wmv [3] Etienne Dombre (2005): Introduction to Surgical Robotics, LIRMM Montpellier, http://www. lirmm.fr/~w3rob/UEE05/presentations/lecturers/Dombre.pdf [4] John E. Speich, Jacob Rosen (2004): Medical Robotics, http://bionics.soe.ucsc.edu/ publications/BC_01_Medical_Robotics.pdf [5] J. Lucena et al. (2007): Historia, evolución, estado actual y futuro de la cirugía robótica, Revista de la Facultad de Medicina, Volumen 30 - Número 2, 2007 (109-114), http://www.scielo.org. ve/pdf/rfm/v30n2/art02.pdf [6] Russell A. Faust (2007): Robotics in Surgery: History, Current, and Future Applications. [7] Anthony R. Lanfranco, Andres E. Castellanos, Jaydev P. Desai, William C. Meyers (2004): Robotic Surgery: A Current Perspective, Ann Surg. 2004 January; 239(1): 1421. [8] Lorrie Faith Cranor (2008): A Framework for Reasoning About the Human in the Loop, Carnegie Mellon University, http://www.cylab.cmu.edu/files/pdfs/tech_reports/cmucylab08001. pdf [9] Staübli Faverges (2004): Arm - RX series 90B family characteristics, http://www.gipsa-lab. grenoble-inp.fr/~nicolas.marchand/teaching/staubli_rx90.pdf [10] JR3 Inc.: JR3 100M40A3 Force Sensor Data Sheet, http://www.jr3.com/documents/ datasheets/MSeries/100M40A3.pdf [11] Ralf Stroop (2007): Taktile Sensorik in der intraoperativen Robotik, FernUniversität Hagen. [12] R. Stroop, D. O. Uribe, M. O. Martinez, M. Brökelmann, T. Hemsel, J. Wallaschek (2007): Tactile tissue characterisation by piezoelectric systems, Springer Science. [13] Prosise, Je (1999): Programming Windows with MFC, Microsoft Press. [14] Armadillo C++ linear algebra library, http://arma.sourceforge.net/ [15] MeshLab, http://meshlab.sourceforge.net/ [16] Barry W. Boehm (1988): A spiral model of software development and enhancement. [17] Sharam Hekmatpour, Darrel C. Ince (1988): Software Prototyping, Formal Methods, and VDM, Addison-Wesley, ISBN:020117572X [18] M. Araki (2002): PID Control. [19] Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars (2000): Computational Geometry: Algorithms and Applications, Springer-Verlag, ISBN 9783-540-77973-5. [20] E. A. Rodríguez Tello (April 13 2010): Triangulaciones de Delaunay (construcción incremental), Cinvestav Tamaulipas. [21] D. L. Applegate, R. M. Bixby, V. Chvátal, W. J. Cook (2006): The Travelling Salesman Problem, ISBN 0-691-12993-2 37 REFERENCIAS REFERENCIAS [22] M. Tham (1998): Discretised PID Controller, http://lorien.ncl.ac.uk/ming/digicont/ digimath/dpid1.htm [23] Tomas B. Co (February 13, 2004): Ziegler-Nichols Closed Loop Tuning, Michigan Technological University. [24] J. G. Ziegler, N. B. Nichols (1942): Optimum settings for automatic controllers, Transactions of the ASME. 64. pp. 759768 [25] Microstar Laboratories (2009): Ziegler-Nichols Tuning Rules for PID, http://www.mstarlabs. com/control/znrule.html [26] Eric W. Weisstein (2012): Least Squares Fitting-Polynomial, MathWorld - A Wolfram Web Resource, http://mathworld.wolfram.com/LeastSquaresFittingPolynomial.html [27] Soe Goderis (2008): On the separation of user interface concerns: A Programmer's Perspective on the Modularisation of User Interface Code, Ph.D. thesis, Vrije Universiteit Brussels. [28] Obj Specication, http://www.martinreddy.net/gfx/3d/OBJ.spec [29] Paul Bourke: PLY - Polygon File Format, http://paulbourke.net/dataformats/ply/ [30] Microsoft Corporation (2012): KINECT for Windows http://www.microsoft.com/en-us/ kinectforwindows/ Todos los enlaces han sido vericados a fecha de 21/08/2012 38 6 ANEXO I: MEMORIA EN INGLÉS 6. Anexo I: memoria en inglés A continuación se incluye de forma íntegra la memoria que se elaboró para la Universidad de Braunschweig en inglés. La memoria sigue una estructura similar a la versión española, desarrollando en profundidad todos los métodos. La memoria contiene su propio índice e incluye como anexos las tablas de la batería de pruebas del controlador PID y los códigos para ejecutar desde la interfaz gráca de usuario el proceso de escaneo, las calibraciones o las pruebas. 39