DE60210055T2 - Verfahren und system zur simulation eines fadens in computergrafiksimulationen - Google Patents

Verfahren und system zur simulation eines fadens in computergrafiksimulationen Download PDF

Info

Publication number
DE60210055T2
DE60210055T2 DE60210055T DE60210055T DE60210055T2 DE 60210055 T2 DE60210055 T2 DE 60210055T2 DE 60210055 T DE60210055 T DE 60210055T DE 60210055 T DE60210055 T DE 60210055T DE 60210055 T2 DE60210055 T2 DE 60210055T2
Authority
DE
Germany
Prior art keywords
segment
thread
segments
length
shape
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60210055T
Other languages
English (en)
Other versions
DE60210055D1 (de
Inventor
Johannes Kaasa
Kyrre Strom
Geir Westgaard
Sigurd Jan ROTNES
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Simsurgery AS
Original Assignee
Simsurgery AS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Simsurgery AS filed Critical Simsurgery AS
Publication of DE60210055D1 publication Critical patent/DE60210055D1/de
Application granted granted Critical
Publication of DE60210055T2 publication Critical patent/DE60210055T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B23/00Models for scientific, medical, or mathematical purposes, e.g. full-sized devices for demonstration purposes
    • G09B23/02Models for scientific, medical, or mathematical purposes, e.g. full-sized devices for demonstration purposes for mathematics
    • G09B23/04Models for scientific, medical, or mathematical purposes, e.g. full-sized devices for demonstration purposes for mathematics for geometry, trigonometry, projection or perspective

Landscapes

  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Geometry (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Algebra (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Preliminary Treatment Of Fibers (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Description

  • Die Erfindung betrifft ein Verfahren zum Beschreiben eines Fadens als ein geometrisches Objekt in einem dreidimensionalen Computergrafiksystem. Die Erfindung bezieht sich auch auf ein Computersimulationssystem, welches das Verfahren zum Simulieren von Systemen, einen Faden beinhaltend, anwendet. Es soll verstanden werden, dass der Ausdruck Faden der Einfachheit halber durch diese Beschreibung hindurch verwendet werden wird, dass es aber beabsichtigt ist, dass andere Begriffe dadurch abgedeckt sind, einschließlich aber nicht beschränkt auf, eine Wundnaht, einen Draht, ein Kabel, ein Seil usw., in dem Umfang, wie solche Objekte in einem Computergrafiksystem in Übereinstimmung mit dem beanspruchten Verfahren beschrieben werden können.
  • Ein Üben von chirurgischen Abläufen, wie etwa einem Zusammennähen von zwei oder mehr flexiblen Objekten, war traditionell beschränkt auf ein Üben an menschlichen Leichnahmen oder Tieren. In den letzten Jahren sind Computersimulatoren entwickelt worden, um die Beschränkungen beim herkömmlichen Üben zu überwinden und die Zugänglichkeit für Personal aus dem Gesundheitswesen und Studenten, welche chirurgische Fähigkeiten erlernen, zu erhöhen, wie auch bei erfahrenen Chirurgen Fähigkeiten beizubehalten oder neue Verfahren zu erlernen, basierend auf einer Entwicklung in der Technologie.
  • Ein Beispiel eines chirurgischen Simulators ist beschrieben im US-Patent 5 766 016. Der Simulator bietet sowohl visuelles als auch taktiles Feedback. Visuelles Feedback wird geboten durch einen Grafikcomputer, welcher eine Stereoanzeige betreibt, und einen Satz von Optiken, welcher ein chirurgisches Mikroskop nachahmt. Taktiles Feedback wird geboten durch ein Instrument, welches ein chirurgisches Werkzeug simuliert und über Hebel und Gelenke mit Servomotoren ver bunden ist, welche Widerstandskräfte entlang jeglicher Richtung erzeugen. Der Simulator simuliert bevorzugt Augenchirurgie und zeigt ein Modell eines Auges an. Das Modell eines Auges wird erzeugt durch zunächst Fotografieren von Komponenten des Auges, Mappen einer Textur der Fotografien und Entwickeln eines mathematischen Modells des Auges. Dort gibt es keine Beschreibung, wie chirurgische Fäden oder chirurgische Nähte modelliert werden können.
  • Das US-Patent 4 321 047 offenbart eine Vorrichtung zum Lehren von chirurgischen Knottechniken. Eine flexible Röhre, hergestellt aus einem Material, welches verschiedene menschliche Gefäße und Röhren simuliert, ist zwischen den Armen eines Trägerrahmens positioniert. Innerhalb der Röhre befinden sich Federdrähte, welche unter Spannung verwunden sind zwischen den Armen des Trägerrahmens. Eine Detektionsvorrichtung ist mit den Drähten verbunden, welche verschiedene Arten von Signalen erzeugen wird, wenn die Drähte miteinander in Kontakt geraten. Der Student schlingt ein Stück chirurgischen Fadens um die Röhre und zieht die Schlinge zu bis sich die Drähte berühren, somit anzeigend, dass eine bestimmte Kraft durch die Schleife auf die Röhre aufgebracht worden ist. Dabei ist keine Computersimulation enthalten.
  • Das US-Patent 5 956 040 offenbart ein Simulationssystem, welches eine Computergrafik verwendet, und ein Modellausdrucksverfahren, in der Lage der Deformation eines Modells, beschrieben durch die Verwendung von Polygonen, Realität zu verleihen. Eine Simulation des Verhaltens eines chirurgischen Fadens ist nicht beschrieben.
  • Die oben erwähnten Veröffentlichungen beschreiben keine Simulation einer chirurgischen Naht oder eine Simulation eines chirurgischen Fadens auf Computern. Aufgrund der Wichtigkeit der Fähigkeit eines Simulators, die tatsächlichen Bedingungen, unter welchen ein chirurgischer Eingriff durchgeführt wird, genau wiederzugeben, und aufgrund des weiten Bereichs und der Anzahl solcher Verfahren, welche chirurgische Nähte enthalten, ist ein ausreichend exaktes Modellieren eines chirurgischen Fadens in einem chirurgischen Simulator von großer Wichtigkeit.
  • Es soll jedoch herausgestellt werden, dass, obwohl die obigen Beispiele chirurgische Simulation enthalten, und obwohl die hier beschriebene Ausführungsform solch eine Anwendung betrifft, die vorliegende Erfindung leicht für andere Zwecke angepasst werden kann. Beispiele schließen ein, ein Nähen bei einem Schneidervorgang, Simulationen oder Systeme virtueller Realität, wo Fäden oder Kabel modelliert werden sollen, oder Computergrafiken oder Animationen von allgemeinerer Art, wie etwa Computerspiele oder Filme, wo ein Faden oder ein Kabel in einer natürlichen und überzeugenden Art und Weise visualisiert werden soll. Dann soll klar sein, dass der Ausdruck Simulationssystem nicht auf herkömmliche Simulatoren beschränkt ist, sondern auch Systeme zur numerischen Simulation von Entwicklungsproblemen einschließt, welche Fäden oder Kabel enthalten, und auch Computergrafik-Workstations zum Erzeugen einer Computergrafikwiedergabe, welche z.B. als Film oder als Präsentation wiedergegeben werden wird.
  • "Augmentated Lagrangian and Operator-Splitting Method in Nonlinear Mechanics" von Roland Glowingski und Patrick Le Tallec, Society for Industrial and Applied Mathematics, Philadelphia, 1989, Kapitel 8, Seiten 259–286, diskutiert numerisches Modellieren von flexiblen und nicht ausdehnbaren Stäben, insbesondere im Zusammenhang mit flexiblen Pipelines, wie sie in der Off-Shore-Herstellung verwendet werden. Das beschriebene numerische Modellieren könnte angepasst werden zur Verwendung mit der vorliegenden Erfindung. Das oben erwähnte Kapitel wie auch die in Kapitel 3 des gleichen Dokuments beschriebenen Algorithmen sind hier durch Bezugnahme enthalten.
  • Die numerische Wiedergabe eines Fadens, Kabels, Drahtes oder dergleichen, insbesondere falls er/es mit anderen Objekten interagiert, erfordert einen beträchtlichen Rechenaufwand. Dies kann ein kritischer Faktor sein bei numerischer Simulation oder Computergrafik, insbesondere falls die Simulation in Echtzeit laufen soll, wie etwa in einem Simulator. Die Erfindung basiert auf einer Datenstruktur, welche diesen Flaschenhals überwindet und eine rasche Beschreibung und ein Update eines Fadens in einem Computergrafikumfeld ermöglicht.
  • Die Datenstruktur modelliert den Faden als einen Satz von Segmenten, miteinander verbunden durch Aufspannpunkte, welche Punkte darstellen, durch welche der Faden läuft. Die Form des Fadens wird dann beschrieben durch Beschreibung der Form eines jeden Segments unabhängig voneinander. Das Update des Modells basiert auf einem Weitergeben von Information von einem Segment zu dem nächsten und auf einem Bewegen, Hinzufügen oder Entfernen von Aufspannpunkten.
  • Insbesondere schließt die Beschreibung eines Fadens die Erzeugung eines Satzes von Aufspannpunkten ein, welche Punkte im Raum definieren, durch welche der Faden läuft, und die Erzeugung eines Satzes von einem oder mehreren Segmenten, welche den Faden zwischen angrenzenden Aufspannpunkten darstellen. Jedes Segment ist mit einem Paar von Aufspannpunkten verknüpft, einer an jedem Ende des jeweiligen Segments, und die geometrischen Eigenschaften eines Segments werden beschrieben.
  • Um das Modell weiter zu vereinfachen können Segmente des Fadens, welche durch andere Objekte durchtreten, als gerade Linien zwischen Aufspannpunkten beschrieben werden, angebracht an der Oberfläche des Objekts, durch welches der Faden durchtritt, an den jeweiligen Punkten, wo der Faden in das Objekt eintritt oder es verlässt. Solch ein Segment wird daher als ein eingebettetes Segment bezeichnet werden. Andere Segmente werden als freie Segmente bezeichnet.
  • Die eigentliche geometrische Beschreibung eines Segments wird bevorzugt vorgenommen als eine Bezugnahme auf eine Kurvendefinition, einschließend die numerische Beschreibung der Form der Kurve. Dies kann vorgenommen werden durch Definieren des Segments als ein Objekt in einer objektorientierten Compu tersprache und schließt in diesem Objekt einen Zeiger auf ein zusätzliches Objekt ein, welches die nötigen Kurvenparameter und Algorithmen zur Berechnung der Form der Kurve enthält. Diese zusätzlichen Objekte werden als Kurvenobjekte bezeichnet werden. Für ein gegebenes Segment wird der Kurvenfall (d.h. das Ergebnis der Kurvenformberechnung) dann in dem Kurvenobjekt gespeichert, was auch die notwendigen Funktionen einschließt, um diesen Kurvenfall aus Informationen zu berechnen, empfangen von dem Segmentobjekt. Die Kurve eines eingebetteten Segments ist eine gerade Linie zwischen zwei Aufspannpunkten, wohingegen die Kurve eines freien Segments berechnet wird basierend auf der Position der Aufspannpunkte an jedem Ende des Segments, Schwerkraftvektoren und jeglichen anderen Parametern, wie etwa eine Flexibilität des Fadens, eine Tangente der Kurve durch den Aufspannpunkt, die Länge des Segments, der Abstand zwischen Aufspannpunkten usw.
  • Bevorzugt werden die Aufspannpunkte wie auch irgendwelche anderen geometrischen Objekte ähnlich beschrieben in einer objektorientierten Art und Weise. Die Segmente werden dann Zeiger auf zwei Aufspannpunkte einschließen, und die Aufspannpunkte werden Zeiger auf Segmente und möglicherweise auf ein weiteres geometrisches Objekt und eine Variable einschließen, welche die Position des Aufspannpunkts enthält.
  • Zusätzliche Daten und Funktionen der verschiedenen Objekte werden im größeren Detail unten beschrieben werden.
  • In einem Computersimulationssystem wird die Datenstruktur als Daten und Befehle auf einem Datenspeicher gespeichert, zugänglich durch einen Prozessor. Der Prozessor wird in der Lage sein, basierend auf den Daten und den Befehlen, ein dreidimensionales numerisches Modell des Fadens und jeglicher Objekte zu erzeugen, mit welchen der Faden interagiert, und eine Videodarstellung dieses numerischen Modells zu erzeugen.
  • Das Simulationssystem schließt auch eine Eingabeschnittstelle zum Empfangen von Steuersignalen ein, welche eine Manipulation des Simulationssystems darstellen, und eine Ausgabeschnittstelle zum Senden der erzeugten Videodarstellung zu einer Videoanzeige.
  • Die Erfindung bezieht sich auch auf ein Computerprogramm, welches Programmbefehle enthält, zum Ausführen der Schritte des Verfahrens. Solch ein Programm könnte ausgestaltet sein als ein Computerprogrammprodukt, gespeichert auf einem Träger wie etwa einer CD-ROM oder irgendeinem anderen Speichermedium, oder als ein verbreitertes Signal, welches die Information trägt, welche solch ein Computerprogramm ausmacht.
  • Die die Erfindung definierenden Merkmale werden in den angehängten unabhängigen Ansprüchen dargelegt, wobei die abhängigen Ansprüche zusätzliche Merkmale beschreiben.
  • Die Erfindung wird nun im größeren Detail im Wege von Beispielen und mit Bezugnahme auf die angehängten Zeichnungen beschrieben werden.
  • 1 zeigt die generelle Struktur eines Computersimulationssystems gemäß der Erfindung,
  • 2 zeigt ein Beispiel eines Computersimulationsproblems, bei welchem die Erfindung angewandt werden kann,
  • 3a zeigt die Datenstruktur der Erfindung, wie angewendet auf das Beispiel der 2,
  • 3b zeigt die generelle Datenstruktur gemäß der Erfindung,
  • 4 stellt ein Beispiel des Schritt für Schritt Updates der Topologie des Modells während eines Nähvorgangs dar.
  • Als erstes wird Bezug genommen auf 1, worin die generelle Struktur eines Computersimulationssystems gemäß der Erfindung dargestellt ist. Das System empfängt Eingabedaten durch eine Eingabeschnittstelle 1. Diese Eingabe kann von einer Tastatur und einer Maus kommen oder von einer spezifischeren Simulationsausstattung, welche verschiedene Werkzeuge oder Steuerungen simuliert. Sie kann auch von externen Speichermitteln kommen oder von einer Kommunikationsleitung oder einem Netzwerk. Weiter weist das System einen Prozessor 2 und Speichermittel 3 auf. Der Prozessor 2 ist in der Lage, auf Daten und Befehle zuzugreifen, welche auf den Speichermitteln 3 gespeichert sind, und mit den gespeicherten Daten wie auch den Eingabedaten in Übereinstimmung mit den Befehlen zu operieren. Die Ergebnisse der Operationen, welche auf Basis der Befehle durchgeführt werden, können auf den Speichermitteln 3 gespeichert werden und/oder zu einer Ausgabeschnittstelle 4 geliefert werden. Die Ergebnisse der Operationen, welche durch den Prozessor ausgeführt werden, werden am häufigsten zumindest eine Videowiedergabe der Simulation einschließen, welche an eine Anzeige geliefert wird, wie etwa einem Videomonitor oder Videoanzeigebrillen, aber sie können auch Kraft-Feedback oder taktile Feedbackinformationen einschließen, welche an die Eingabemitteln geliefert werden, verbunden mit der Eingabeschnittstelle.
  • Der Prozessor 2 des Simulationssystems kann eine CPU eines Personal Computers oder einer Workstation sein, aber er kann auch eine Kombination verschiedener Prozessorschaltungen sein, einschließlich spezieller Grafikprozessoren. Die Speichermittel 3 können im Prinzip jegliche Art von Speichermitteln einschließen, wie etwa eine Festplatte, einen CD-ROM, Speicherschaltungen usw.
  • Nun wird auf 2 Bezug genommen. Dort ist ein Beispiel eines Computersimulationsproblems gezeigt, auf welches die Erfindung angewandt werden wird. Das Beispiel ist genommen aus dem Gebiet der chirurgischen Simulation zum Training von Ärzten. Zusätzlich zu einem Faden 10 zeigt die Figur eine Anzahl von geometrischen Objekten, mit welchen der Faden interagiert. In diesem Beispiel schließen diese Objekte eine Nadel 12 ein, angebracht an das Ende des Fadens, und welche durch ein Werkzeug 14 gehalten wird. Auch sind zwei flexible Ge webe 16, 18 gezeigt, wobei es die Aufgabe ist, dass sie während der Simulation zusammengenäht werden. Die geometrische Beschreibung dieser zusätzlichen Objekte ist nicht Teil der Erfindung und wird nicht im Detail diskutiert werden. Jedoch wird es natürlich sein, die Nadel 12 als eine starre Kurve (d.h. eine Kurve, welche ihre Form während der Simulation nicht ändern kann) zu beschreiben, das Werkzeug 14 als ein starres Objekt zu beschreiben, möglichst durch Beschreiben seiner Randoberflächen, und die Gewebe 16, 18 als flexible Objekte zu beschreiben, wiederum geometrisch wiedergegeben durch ihre Randoberflächen. Wenn das Gewebe eine wandartige Form aufweist, z.B. die Wände in einer Arterienröhre, kann es beschrieben werden durch zwei Oberflächen, eine äußere Oberfläche 16a, 18a und eine innere Oberfläche 16b, 18b.
  • Um diese Situation in Übereinstimmung mit der Erfindung zu beschreiben, werden Aufspannpunkte eingeführt. Ein Minimum von sechs Aufspannpunkten ist erforderlich für das Modellieren der Situation in der Figur. Es soll jedoch angemerkt werden, dass diese eingefügt werden während der Simulation, wie sie unten mit Bezugnahme auf 4 beschrieben wird. Ein Aufspannpunkt 20 ist positioniert wo die Nadel an dem Faden angebracht ist, zwei Aufspannpunkte 22, 24, wo der Faden in das erste flexible Gewebe 16 eintritt und es verlässt, zwei Aufspannpunkte 26, 28, wo der Faden in das zweite flexible Gewebe 18 eintritt und es verlässt und ein Aufspannpunkt am Ende des Fadens 29. Dies resultiert in einem ersten freien Segment 30 zwischen dem Nadelaufspannpunkt 20 und dem ersten Gewebewandaufspannpunkt 22, einem eingebetteten Segment 32 zwischen den Gewebewandaufspannpunkten 22, 24, einem freien Segment 34 zwischen dem inneren Gewebewandaufspannpunkt 24 des ersten Gewebes 16 und dem inneren Gewebewandaufspannpunkt 26 des zweiten Gewebes 18, einem eingebetteten Segment 36 wiederum zwischen den zwei Aufspannpunkten 26, 28 des zweiten Gewebes 18 und einem freien Segment 38 zwischen dem äußeren Gewebewandaufspannpunkt 28 und dem Endaufspannpunkt 29.
  • Man beachte, dass dort nichts in der Datenstruktur vorhanden ist, was das Einschließen von zusätzlichen Aufspannpunkten verhindert, welche die freien Segmente weiter unterteilen, aber dass keine in diesem Beispiel eingefügt sind.
  • 3a stellt die Datenstruktur für einen Teil des Problems dar, welches in 2 dargestellt ist. Die Datenstruktur wird beschrieben werden als Objekte und Zeiger in einem objektorientierten Denkmuster, aber es sollte verstanden werden, dass die Prinzipien der Erfindung nicht darauf beschränkt sind. Andere Beschreibungen, welche einen ähnlichen Austausch von Daten und eine Berechnung von Formen und Positionen von Segmenten und Aufspannpunkten ermöglichen, würden in den Rahmen der Erfindung fallen. Jedoch wird aus der folgenden Darstellung verstanden werden, dass eine objektorientierte Sprache ein bevorzugtes Mittel zum Erzeugen der Datenstruktur ist.
  • Es soll auch festgestellt werden, dass die folgende Beschreibung eine bestimmte Redundanz hinsichtlich von Zeigern einschließt. Es ist nicht notwendig für alle Objekte, dass auf sie gezeigt wird durch andere Objekte, um einen Zeiger einzuschließen, welcher auf das andere Objekt zurückzeigt. Auch ist es nicht strikt notwendig für zwei angrenzende Segmente aufeinander zu zeigen, da sie durch den Aufspannpunkt, welchen sie gemeinsamen haben, verbunden sein werden. Jedoch wird ein Erhöhen der Anzahl der Zeiger die Anzahl von Suchvorgängen verringern, welche durchgeführt werden müssen, wenn man durch die Datenstruktur zurück und vorwärts geht, d.h., wenn man das Modell updated, etwas, was ein rasches Update während einer Echtzeitsimulation vereinfachen wird. Es wäre jedoch ausreichend, genug Zeiger einzuschließen, um all die Objekte des Modells zu verbinden. Es ist bevorzugt, zumindest Zeiger einzuschließen von allen Segmentobjekten zu verbundenen Segmenten und Aufspannpunkten und Zeiger von Aufspannpunktobjekten zu verbundenen Gewebeobjekten (oder was auch immer für andere externe geometrische Objekte in der Simulation enthalten sind).
  • Die anderen Teile des Modells können gemäß traditioneller Szenario-Graphentheorie konstruiert werden, wie sie in der Technik gut bekannt ist.
  • Da die Erfindung als solches auf die Beschreibung von Aufspannpunkten und Segmenten beschränkt ist, sind diese in 3a mit fetten Linien gezeichnet, wohingegen zusätzliche Objekte, mit welchen diese interagieren, aber welche nicht Teil der Erfindung sind, mit dünneren Linien gezeichnet sind. Die Bezugszeichen entsprechen denen in 2 für entsprechende Objekte.
  • Beginnt man oben in der 3a, gibt es dort als erstes ein Objekt, welches das Werkzeug 14 wiedergibt. Dieses Objekt enthält zumindest einen Zeiger, welcher auf das Nadelobjekt 12 zeigt. Auf gleiche Art und Weise enthält das Nadelobjekt 12 einen Zeiger, welcher auf das Werkzeugobjekt 14 zeigt. Die Nadel 12 und das erste Segment 30 des Fadens 10 sind miteinander verbunden durch den ersten Aufspannpunkt 20. Wie dargestellt, können all diese Objekte Zeiger enthalten, welche aufeinander zeigen.
  • Das erste Segment 30 des Fadens 10 ist ein freies Segment. Dieses Segment ist verbunden mit dem zweiten Segment 32 des Fadens 10 durch einen zweiten Aufspannpunkt 22. Das zweite Segment 32 ist ein eingebettetes Segment, welches wiederum verbunden ist mit einem freien Segment 34 durch einen dritten Aufspannpunkt 24. Letztlich ist ein weiteres eingebettetes Segment 36 mit dem zweiten freien Segment 34 durch einen vierten Aufspannpunkt 26 verbunden.
  • Die Aufspannpunkte 22, 24, 26, welche eingebettete Segmente 32, 36 verbinden, weisen auch Zeiger auf, welche auf Gewebeobjekte 16a, 16b, 18a zeigen und umgekehrt.
  • Die in 3a dargestellte Abfolge von Segmenten (freies Segment, eingebettetes Segment, freies Segment, eingebettetes Segment) ist typisch, aber nicht zwingend.
  • Wie bereits angemerkt, können zwei freie Segmente miteinander verbunden sein und auf gleiche Weise können es zwei eingebettete Segmente sein.
  • Die geometrische Beschreibung der verschiedenen Objekte, insbesondere der Segmente, kann in den Objekten selbst enthalten sein, aber bevorzugt werden sie beschrieben in separaten Objekten, auf welche gezeigt wird durch die Objekte, welche sie beschreiben. Somit enthält jedes Segment, ob frei oder eingebettet, einen zusätzlichen Zeiger, welcher auf ein geometrisches Objekt oder ein Kurvenobjekt zeigt.
  • Zusätzlich zu den Bezugnahmen zwischen den Objekten selbst enthalten die Objekte verschiedene Daten und Funktionen und/oder Bezugnahmen auf zusätzliche Objekte, welche Daten und Funktionen enthalten. Das Folgende ist eine komplettere Beschreibung der Datenobjekte, enthalten in der Datenstruktur. Es wird Bezug genommen auf 3b, welche die allgemeine Struktur des Datenmodells zeigt, einschließlich Beziehungen zwischen den verschiedenen Objekttypen. Wiederum soll angemerkt werden, dass es nicht notwendig ist, dass alle dargestellten Zeiger enthalten sind, wie oben beschrieben.
  • Segmente können gemäß den Rollen, welche sie in der Simulation spielen, von unterschiedlichem Typ sein. Der Unterschied zwischen ihnen kann intern ausgedrückt werden in dem jeweiligen Objekt oder extern als ein Ergebnis davon, auf welche anderen Datenobjekte sie zeigen. Die zwei fundamentalen Typen von Segmenten, eingebettete Segmente und freie Segmente, können vom gleichen Objekttyp sein, aber eingebettete Segmente werden definiert werden durch Bezugnahme auf Aufspannpunkte, welche angebracht sind an den Oberflächen von anderen Objekten, und durch Bezugnahme auf Kurvenobjekte, welche eine gerade Linie zwischen diesen Aufspannpunkten definieren. Wie auch immer die Segmentobjekte definiert sind, sind einige Daten allen Segmentobjekten gemein. In einer bevorzugten Ausführungsform der Erfindung schließt dies Zeiger auf zwei Aufspannpunkte ein, einen an jedem Ende des Segments, Zeiger zu den benach barten Segmenten, falls sie existieren, einen Zeiger zu einem Kurvenobjekt, die Geometrie des Segments beschreibend, eine Variable, welche die Spanne des Segments enthält, d.h. den Abstand zwischen den zwei Aufspannpunkten an den jeweiligen Enden des Segments, und eine Variable, welche die Länge des Segments enthält, gemessen entlang dem Faden. Die Länge ist ein Ergebnis eines Bilanzierungsvorgangs, so dass die Länge jedes Mal vergrößert wird, wenn das Segment mehr Länge von einem angrenzenden Segment empfängt, und verringert wird, jedes Mal, wenn das Segment Länge an ein angrenzendes Segment verliert. Eine Spanne wird berechnet aus Informationen, empfangen von den jeweiligen Aufspannpunkten. Die nötigen Funktionen zum Berechnen und Updaten der Werte dieser zwei Variablen sind bevorzugt enthalten in den Segmentobjekten als lokale Funktionen.
  • Die Gesamtlänge des Fadens wird die Summe der Längen all der Segmente sein. Außer im Fall, dass der Faden mit einer bestimmten Elastizität beschrieben wird, wird die Gesamtlänge des Fadens konstant sein, jedoch kann ein Segment Länge an ein angrenzendes Segment, wie oben beschrieben, abgeben.
  • Aufspannpunkte können von zwei Segmenten geteilt werden und dabei eine topologische Verbindung definieren. Ein Aufspannpunkt kann auch das freie Ende des Fadens darstellen und nur mit einem Segment verbunden sein. Normalerweise wird der Aufspannpunkt auch verbunden sein mit einem zusätzlichen Objekt. In unserem Chirurgiebeispiel wird dieses zusätzliche Objekt gewöhnlicherweise ein Gewebe wiedergeben, aber es kann auch ein chirurgisches Werkzeug wiedergeben. Ein Aufspannpunkt kann auch durch nur ein Segment des Fadens und ein anderes Objekt geteilt werden, wie etwa eine Nadel oder ein Werkzeug.
  • Aufspannpunktobjekte enthalten allgemein die folgenden Daten: Zwei Zeiger, welche auf die Segmente zeigen, welche durch den Aufspannpunkt verbunden sind, falls sie vorhanden sind (nur einer muss vorhanden sein), Zeiger auf irgendein anderes geometrisches Objekt, an welches der Aufspannpunkt angebracht ist, wie etwa ein Werkzeug, eine Nadel oder Gewebe, und eine Variable, welche die Position des Aufspannpunkts enthält. Zusätzlich enthält das Aufspannpunktobjekt bevorzugt Variable, welche die Tangenten der durch den Aufspannpunkt verbundenen Segmente enthalten. Falls die zwei Segmente beide frei sind, werden diese Variablen normalerweise die gleichen Werte enthalten, da der Faden als tangential kontinuierlich betrachtet wird. Im Prinzip braucht der Faden jedoch nicht tangential kontinuierlich zu sein, und dies wird normalerweise nicht der Fall sein in Fällen, wo eines der Segmente eingebettet ist.
  • Die Aufspannpunkte definieren Verbindungen, welche dazu dienen, um Daten zwischen Objekten auszutauschen. Wenn ein Aufspannpunkt bewegt wird, kann das Ergebnis sein, dass andere Aufspannpunkte bewegt werden, oder dass die Länge der verschiedenen Segmente geändert wird. Die Aufspannpunkte dienen als Bezugspunkte für diesen Austausch von Daten, was rekursiv oder simultan berechnet werden kann. Dies wird in weiterem Detail unten beschrieben.
  • Kurvenobjekte sind Objekte, auf welche durch Segmente Bezug genommen wird. Für jedes Segment gibt es ein Kurvenobjekt, welches die geometrische Form des Segments definiert. Dieses Kurvenobjekt enthält die numerische Beschreibung des Segments, einschließlich von Formparametern, wie etwa Flexibilität und einen Schwerkraftvektor, und Formberechnungsalgorithmen. Das Kurvenobjekt empfängt Information von dem Segment und den Aufspannpunkten, einschließlich einer Spanne, einer Länge und Aufspannpunktpositionen und, basierend auf dieser Eingabe, wird die Form berechnet und in dem Kurvenobjekt gespeichert. Das Kurvenobjekt kann auch eine Auswahl von Algorithmen und Parametern enthalten, um das Erfordernis nach Geschwindigkeit und Genauigkeit auszugleichen.
  • In einer bevorzugten Ausführungsform ist die Kurve implementiert als ein B-Spline, aber andere Formate können verwendet werden, wie etwa Polygonsegmente, eine implizite Beschreibung, analytische Segmente usw.
  • Es gibt zwei Grundoperationen, welche an der Datenstruktur ausgeführt werden können. Dies sind ein Update der Fadenform und ein Update der Fadentopologie (d.h. der Anzahl von Segmenten und deren Abfolge). Das Folgende ist eine allgemeine Beschreibung dieser Operationen, welche die Flexibilität der Erfindung darstellt. Es soll jedoch herausgestellt werden, dass eine große Anzahl an verschiedenen Algorithmen zum Kalkulieren der Form von individuellen Segmenten implementiert werden könnte zur Verteilung von Länge und Kraft entlang des Fadens, zum Austauschen von Information zwischen dem Faden und der Umgebung usw. Die folgende Beschreibung wird nicht versuchen, all solche Möglichkeiten abzudecken, da diese verschiedene Anwendungen wiedergeben würden, auf welche die Erfindung angewandt werden könnte, anstatt die Erfindung selbst.
  • Als erstes wird das Update der Fadenform als Ergebnis der Bewegung eines Aufspannpunkts beschrieben werden. In dieser Situation wird die Topologie des Modells nicht geändert. Der Faden ist zusammengesetzt aus der gleichen Anzahl und Arten von Segmenten vor und nach dem Update, keine zusätzlichen Aufspannpunkte sind eingefügt worden und keine zusätzlichen Zeiger oder andere Objekte sind eingefügt worden.
  • Zur Erleichterung bezieht sich diese Beschreibung auf 3a und beginnt mit der Bewegung des Aufspannpunkts 20 am Ende des Fadens 10, wo er mit einer Nadel 12 verbunden ist. Es wäre auch möglich, mit der Bewegung eines Aufspannpunkts irgendwo in der Mitte des Fadens zu beginnen, etwas, das zu einem Update der Form des Fadens in zwei Richtungen führen würde. Auch wird, wiederum aus Bequemlichkeitsgründen, die Beschreibung auf einem vereinfachten System basieren, wo Kräfte nicht berücksichtigt werden, und wo eine Länge nicht unter angrenzenden Segmenten ausgetauscht wird, wenn der Faden angezogen wird, ein Verhältnis zwischen einer Spanne und einer Länge erhöht wird, bis es gleich 1 ist (d.h. es gibt kein Durchhängen mehr zwischen den Aufspannpunkten). Ein Nachgeben des Fadens könnte beschrieben werden als ein teilweises Rückkehren zur vorhergehenden Situation. Die Datenstruktur und das Verfahren der vorliegenden Erfindung gestattet jedoch einen anspruchsvolleren Algorithmus einschließlich von Kraft, Elastizität des Fadens und andere Objekte (Gewebe) usw.
  • Die verschiedenen Funktionen zum Austauschen der Länge von einem Objekt zu einem anderen und zum Bewegen von Aufspannpunkten werden bevorzugt in jedem Objekt implementiert werden. Wenn ein Aufspannpunkt bewegt wird, wird ein Update der anderen Objekte vorgenommen in einer rekursiven Art und Weise, beginnend bei dem Aufspannpunkt, welcher bewegt wird, und fortschreitend entlang des Fadens. Falls der Aufspannpunkt, welcher bewegt wird, sich nicht an einem der Enden des Fadens befindet, wird dieses Update in beide Richtungen des Fadens gehen. Das Update soll jedoch global verwaltet werden, d.h. im Wege eines Verwaltungsalgorithmus in dem Aufspannpunkt, welcher bewegt wird, um sicherzustellen, dass keine unzulässigen Updates ausgeführt werden (wie etwa, dass ein Segment annimmt, dass es mehr Länge von folgenden Segmenten erhält als eigentlich verfügbar ist) und so, dass Updates nicht entlang des Fadens ohne Ende hin und zurück laufen.
  • Wenn der erste Aufspannpunkt 20 so weit bewegt wird, dass die Spanne des ersten Segments 30 dessen Länge überschreitet, muss das Segment Länge von anderen Segmenten empfangen. Das folgende Segment 32 ist eingebettet und wird weder Spanne noch Länge ändern. Das bedeutet, dass die gesamte Länge, welche Segment 30 von Segment 32 empfängt, Segment 32 unmittelbar von Segment 34 empfangen wird. Das Segment 30 wird nur genug Länge empfangen, um seine Länge der Spanne anzugleichen, in anderen Worten wird es straff werden. Das Kurvenobjekt, auf welches durch Segment 30 gezeigt wird, wird die neue Form des Segments 30 als gerade Linie berechnen. Segment 32 wird nicht geändert werden. Segment 34 wird die gleiche Spanne aufweisen, aber seine Länge wird um den gleichen Betrag verringert werden, wie der, mit dem Segment 30 erhöht wurde. Das Kurvenobjekt, auf welches durch Segment 34 gezeigt wird, wird die Form des Segments 34 wieder berechnen, basierend auf der neuen Länge.
  • Wenn alle Segmente straff sind (oder wenn das Modell Reibung und Kraft enthält), wird eine zusätzliche Dehnung des Segments 30 durch Bewegung des Aufspannpunkts 20 zu einem Update der Position des Aufspannpunkts 22 führen, welcher in eine Richtung bewegt werden wird, basierend auf den Richtungen der zwei Segmente 30 und 34 (wenn beide Segmente 30 und 34 straff sind, werden die Aufspannpunkte 22 und 24 in eine Richtung bewegt irgendwo zwischen den Richtungen zu den Aufspannpunkten jeweils an den gegenüberliegenden Enden der Segmente 30 und 34). Dies wird zu einer Bewegung des Aufspannpunkts 24 führen und auch zu einem Update der Form des Gewebeobjekts 16. Die Bewegung der Aufspannpunkte und das Update des Gewebeobjekts wird die Spanne von freien Segmenten verringern, welche mit den Aufspannpunkten, die bewegt werden, verbunden sind. Die Segmente werden jedoch straff bleiben und die Länge, um welche die jeweiligen Segmente verringert werden, wird zu Segment 30 weitergereicht, so dass die Gesamtlänge des Fadens konstant bleibt.
  • Die neue Position des Aufspannpunkts 24 wird die Spanne des Segments 34 verringern, aber da das Segment 30 noch straff ist, wird das Segment 34 nicht durchhängen. Vielmehr wird es seine zusätzliche Länge zu Segment 32 geben, welches unmittelbar diese zu Segment 30 weiterreicht. Jedes Mal, wenn Aufspannpunkte bewegt werden und eine Länge geändert wird, updaten die relevanten Kurvenobjekte die Kurvenform der relevanten Segmente. Ob das Update ausgeführt wird als ein rekursives Update entlang des Fadens oder als ein simultanes Update aller involvierten Objekte ist eine Sache der Implementierung. Der wichtige Punkt ist, die Länge des Fadens konstant zu halten (außer Elastizität ist eingeführt) und eine Information zwischen Objekten als ein Ergebnis der Topologie auszutauschen, definiert durch die Aufspannpunkte.
  • Die Datenstruktur gestattet anspruchsvollere Update-Algorithmen, welche eine Kraft entlang der Tangenten der Segmente in den Aufspannpunkten einschließen, sowie Reibung. Regeln, welche in dem Updatealgorithmus enthalten sind, kön nen z.B. die aufgebrachte Kraft in ein Straffen des Segments aufteilen, eine Bewegung von Aufspannpunkten und ein Überwinden von Reibung (d.h. ein Gewinnen von Länge von dem nächsten Segment).
  • Die oben beschriebenen Operationen ändern die Parameter der Segmente, wie etwa Länge, Spanne und Aufspannpunktposition. Gemäß der Erfindung kann die Form der einzelnen Segmente unabhängig berechnet werden, nachdem diese Bedingungen erstellt worden sind. Dies gilt, da die Segmente nur beeinflusst sind von anderen Objekten an ihren jeweiligen Enden. Mit anderen Worten beeinflusst die Form eines Segments nicht die Form irgendeines anderen Segments. Das Problem der Berechnung der Form kann formuliert werden als ein Optimierungsproblem der Minimierung der potentiellen Energie eines jeden Segments. Dies kann vorgenommen werden als: minJ(y) = ½∫β|y''||y''| – fydsGegenstand von y in K, wobei K = {y|y in H2(0, L; R3), |y'(s)| = 1 in [0, L],plus Grenzbedingungen:
    y(0) = y0, y(L) = y1, y'(0) = y0', y'(L) = y1'
  • Das Integral wird genommen über die Länge des Segments, und worin
    J(y) ein Ausdruck für die potentielle Energie des Fadens ist,
    y das unbekannte Kurvensegment mit s als Parameter ist,
    y0, y1 Grenzpositionen im euklidischen 3-Raum sind,
    y0', y1' Grenzeinheit-Tangenten im euklidischen 3-Raum sind,
    L die Länge des Segments ist,
    β die Flexibilität des Segments ist,
    f eine äußere Kraft, wie etwa die Schwerkraft, ist,
    R3 der euklidische 3-Raum ist, und
    H2 der Sobolev-Raum von Verteilungen mit quadratisch integrierbaren Ableitungen der Größenordnung kleiner oder gleich 2 ist.
  • Die Werte von y0 und y1 sind gegeben durch die Positionen der Aufspannpunkte und y0' und y1' werden normalerweise definiert entweder durch die Richtung einer angrenzenden eingebetteten Sequenz, der Richtung eines angebrachten Werkzeugs, oder diese werden nicht berücksichtigt z.B. aufgrund einer tangentialen Diskontinuität aufgrund dessen, dass das Segment zu straff ist.
  • Eine Lösung dieses Problems ist beschrieben in "Augmentated Lagrangian and Operator-Splitting Method in Nonlinear Mechanics" von Roland Glowingski und Patrick Le Tallec, Society for Industrial and Applied Mathematics, Philadelphia, 1989, Seite 268, welche hierin durch Bezugnahme enthalten ist.
  • Es soll angemerkt werden, dass die bevorzugte Elementenbasis gemäß der Erfindung (B-Splines) unterschiedlich von demjenigen ist, welches beschrieben ist.
  • Die Datenstruktur gemäß der Erfindung ist sehr flexibel und gestattet ein einfaches Update auch der Topologie des Fadens, d.h. einer Anzahl von Segmenten und deren Sequenz. Segmente können hinzugefügt oder entfernt werden durch Austauschen von Information zwischen ihnen und Hinzufügen oder Entfernen von Aufspannpunkten. Wenn z.B. ein Werkzeug den Faden in der Mitte eines freien Segments greift, würde ein neuer Aufspannpunkt hinzugefügt werden, wie auch ein neues Segment. Das neue Segment würde Daten empfangen bezüglich seiner Länge von dem originalen Segment, und neue Segmentspannen würden berechnet. Die zwei Segmente würden durch den neuen Aufspannpunkt verbunden.
  • 4 zeigt ein Beispiel eines Schritt für Schritt Updates des Modells während einer Änderung in der Topologie des Fadens, welches in der Anordnung und Anzahl der Segmente liegt. Das Beispiel ist das eines Vorgangs des Ziehens eines Fadens durch ein anderes Objekt, wie etwa ein Gewebe, bei einer Simulation eines Nähens. Das Beispiel wird keine Funktionen einer Trefferdetektion berücksichtigen zwischen einer Nadel und einem Gewebe oder eine Berechnung einer Deformation des Gewebes aufgrund des Fadens, da diese Interaktionen außerhalb des Umfangs der Erfindung liegen.
  • Das Update der Datenstruktur wird zwei Schritte aufweisen und diese sind die gleichen, wenn der Faden in das Gewebe eintritt und es verlässt.
  • Bevor der Faden in das Gewebe eintritt, ist die Situation, wie in 4a dargestellt, mit einem Fadensegment angebracht an eine Nadel mittels eines Aufspannpunkts. In einem ersten Schritt, wenn die Nadel durch die Gewebewand durchgetreten ist, wie jeweils in 4b und 4d, wird der Aufspannpunkt zu dem Trefferpunkt bewegt und die Form des Fadens wird upgedated, wie oben beschrieben. Nun gibt es einen Spalt zwischen der Nadel und dem Aufspannpunkt. In einem zweiten Schritt wird ein gerades (oder straffes) Segment von dem Aufspannpunkt an den Trefferpunkt zum Ende der Nadel hinzugefügt. Dies ist in 4c dargestellt, wo das neue Segment eingebettet wird, und in 4e, wo das neue Segment ein freies Segment ist.
  • In beiden Fällen empfängt das neue Segment Länge von den anderen Segmenten und die Form der jeweiligen Segmente wird upgedated, wie oben beschrieben.
  • Die Beispiele und Ausführungsformen, welche oben beschrieben sind, sind gedacht, um die Prinzipien der Erfindung und ihre Anwendung auf ein bestimmtes reales Problem zu erklären. Eine Anzahl von Modifikationen zu den beschriebenen Beispielen wird innerhalb des Rahmens der Erfindung fallen. Zum Beispiel könnte die Erfindung implementiert werden auf allgemein verwendbaren Computern oder einem dafür dezidierten Simulationssystem. Es könnte verbunden werden mit allgemeinen Eingabe- und/oder Ausgabemitteln, wie etwa einer Maus und einer Computeranzeige, oder mit spezialisierten Eingabe- und Ausgabevorrichtungen, wie etwa Werkzeugsimulatoren oder Steuerungsmitteln mit speziellem Zweck und Stereoanzeigebrillen. Die exakte Anzahl von Zeigern, Variablen und Funktionen, welche in den verschiedenen Objekten enthalten sind, kann auf viel fältige Art und Weise ausgewählt werden, und die Erfindung könnte angewandt werden auf eine Simulation einer Anzahl von unterschiedlichen Simulationen von Situationen, welche Fäden, chirurgische Nähte, Kabel, Drähte oder dergleichen enthalten, und alle solche Alternativen fallen innerhalb des Rahmens der Erfindung, wie er durch die angehängten Ansprüche definiert ist.

Claims (32)

  1. Verfahren zum Beschreiben eines Fadens als ein geometrisches Objekt in einem dreidimensionalen Computergrafiksystem, gekennzeichnet durch – Erzeugen eines Satzes von Aufspannpunkten im Raum, durch welche der Faden durchtritt, – Erzeugen eines Satzes von einem oder mehreren Segmenten, welche den Faden zwischen angrenzenden Aufspannpunkten wiedergeben, – Verknüpfen eines jeden Segments mit einem Paar von Aufspannpunkten, einen an jedem Ende des jeweiligen Segments, und – Beschreiben der geometrischen Eigenschaften eines jeden Segments.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Segmente von zweierlei Art sind, eingebettete Segmente, welche den Faden, welcher durch ein anderes geometrisches Objekt durchtritt, beschreiben, und freie Segmente, welche Segmente des Fadens beschreiben, die nur mit anderen geometrischen Objekten an ihren Enden interagieren können.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Form eines eingebetteten Segments eine gerade Linie zwischen Aufspannpunkten an der Oberfläche des geometrischen Objekts ist, durch welches der Faden durchtritt.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Form des einen oder der mehreren Segment(e) berechnet wird als eine Annäherung an die Lösung des Optimierungsproblems der Minimierung der potentiellen Energie eines jeden Segments.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die potentielle Energie eines Segments ausgedrückt wird als J(y) = ½∫β|y''||y''| – fydsGegenstand von y in K, wobei K = {y|y in H2(0, L; R3), |y'(s)| = 1 in [0, L], y(0) = y0, y(L) = y1, y'(0) = y0', y'(L) = y1'}wobei das Integral genommen wird über das Intervall [0, L] und wobei y das unbekannte Kurvensegment ist, y0, y1 Grenzpositionen im euklidischen 3-Raum sind, y0', y1' Grenzeinheit-Tangenten im euklidischen 3-Raum sind, L die Länge des Segments ist, β die Flexibilität des Segments ist, f eine äußere Kraft, wie etwa die Schwerkraft, ist, R3 der euklidische 3-Raum ist, und H2 der Sobolev-Raum von Verteilungen mit quadratisch integrierbaren Ableitungen der Größenordnung kleiner oder gleich 2 ist.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die geometrische Beschreibung eines beliebigen Segments vorgenommen wird durch eine Bezugnahme auf eine Kurvendefinition, welche die numerische Beschreibung der Form des jeweiligen Segments einschließt.
  7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass der Faden in einer objektorientierten Computersprache beschrieben wird, so dass – jeder Aufspannpunkt als ein Objekt beschrieben wird, welches zumindest aufweist – zwei Zeiger, welche auf die Segmente, angrenzend an den Aufspannpunkt, falls vorhanden, zeigen, – Zeiger zu irgendeinem anderen geometrischen Objekt, an welches der Aufspannpunkt angebracht ist, – eine Variable, welche die Position des Aufspannpunkts enthält, – jedes Segment als ein Objekt beschrieben wird, welches zumindest aufweist – zwei Zeiger, welche auf die Aufspannpunkte an jedem Ende des Segments zeigen, – zwei Zeiger, welche auf die benachbarten Segmente zeigen, falls vorhanden, – einen Zeiger, welcher auf ein Kurvenobjekt zeigt, welches die numerische Beschreibung der Form des Segments enthält, – jede Kurvendefinition beschrieben wird als ein Kurvenobjekt, welches zumindest aufweist – Formparameter, – Formberechnungsalgorithmen.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass jedes Segmentobjekt auch eine Variable enthält, welche die Spanne des Segments enthält, definiert als den Abstand zwischen den zwei Aufspannpunkten, auf die gezeigt wird, und eine Variable, welche die Länge des Segments enthält, gemessen entlang dem Faden zwischen den zwei Aufspannpunkten, auf welche gezeigt wird.
  9. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass jedes Aufspannpunktobjekt auch eine Variable aufweist, welche Werte enthält, die die Tangente(n) des Segments definieren, auf welches durch das Aufspannpunktobjekt gezeigt wird, an der Position des Aufspannpunkts.
  10. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die Formparameter des Kurvenobjekts einen Flexibilitäts- und einen Gravitationsvektor einschließen, und dass die Formberechnungsalgorithmen Funktionen ein schließen zum Vornehmen geometrischer Berechnungen, basierend auf Längen- und Spannen-Informationen, Aufspannpunktpositionen und Endpunkttangenten, empfangen von dem entsprechenden Segmentobjekt, wie auch die Formparameter.
  11. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass eine Interaktion zwischen jeglichem freien Segment und jeglichem anderen Objekt beschrieben wird durch Einführung zusätzlicher Aufspannpunkte, welche das freie Segment in zwei freie Segmente teilen.
  12. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Bewegung des Fadens beschrieben wird durch Bewegen eines Aufspannpunkts und Neuberechnen der Form und Länge des Segments zwischen angrenzenden Aufspannpunkten, wobei von dem Aufspannpunkt gestartet wird, der bewegt wird, und rekursiv entlang der Länge des Fadens fortgeschritten wird.
  13. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Länge des Fadens konstant gehalten wird durch Vornehmen entsprechender Änderungen der Länge eines jeden jeweiligen Segments, so dass jegliche Änderung in der Länge eines Segments die Länge des folgenden Segments in einer rekursiven Art und Weise beeinflusst.
  14. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass eine Aktualisierung des Modells in einer rahmenweisen Art und Weise durchgeführt wird, so dass in einem ersten Schritt neue Daten eingeführt werden, welche eine Änderung des Modells beschreiben, in einem zweiten Schritt das Modell aktualisiert wird, basierend auf den neuen Daten, und in einem dritten Schritt das aktualisierte Modell als ein Rahmen im Computergrafiksystem visualisiert wird.
  15. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der Faden eine chirurgische Wundnaht darstellt, und dass die geometrischen Objekte ein Gewebe eines menschlichen Körpers in einem chirurgischen Simulationssystem darstellen.
  16. Simulationssystem zum Simulieren des Verhaltens eines Fadens, welcher mit geometrischen Objekten in einem dreidimensionalen Computergrafiksystem interagiert, dadurch gekennzeichnet, dass das System aufweist – eine Eingabeschnittstelle zum Empfangen von Steuersignalen, welche eine Manipulation des Simulationssystems darstellen, – Speichermittel, in welchen ein Satz von Befehlen und ein Satz von Ausgangsdaten gespeichert ist, – einen Prozessor, der in der Lage ist, basierend auf Befehlen, die in den Speichermitteln gespeichert sind, ein dreidimensionales numerisches Modell des Fadens und der geometrischen Objekte zu erzeugen, der in der Lage ist, das dreidimensionale numerische Modell zu aktualisieren, basierend auf zusätzlichen Befehlen an die Speichermittel und Steuersignalen, welche von der Eingabeschnittstelle empfangen werden, und der in der Lage ist, eine Videowiedergabe des dreidimensionalen numerischen Modells zu erzeugen, und – eine Ausgabeschnittstelle zum Senden der Videodarstellung an eine Anzeige; wobei die Ausgangsdaten an den Speichermitteln einen Ausgangszustand des dreidimensionalen numerischen Modells wiedergeben und die Befehle an den Speichermitteln zumindest Befehle einschließen zum Veranlassen des Prozessors – einen Satz von Aufspannpunkten zu erzeugen, welche Punkte im Raum definieren, durch welche der Faden durchtritt, – einen Satz von einem oder mehreren Segmenten zu erzeugen, welche den Faden zwischen benachbarten Aufspannpunkten darstellen, – jedes Segment mit einem Paar von Aufspannpunkten zu verbinden, einen an jedem Ende des jeweiligen Segments, – die geometrischen Eigenschaften eines jeden Segments zu beschreiben, – eine Videodarstellung des sich ergebenden dreidimensionalen numerischen Modells zu erzeugen, und – die erzeugte Videodarstellung an die Ausgabeschnittstelle zu senden.
  17. Simulationssystem nach Anspruch 16, dadurch gekennzeichnet, dass die Segmente von zweierlei Art sind, eingebettete Segmente, welche den Faden, welcher durch ein anderes geometrisches Objekt durchtritt, beschreiben, und freie Segmente, welche Segmente des Fadens beschreiben, die nur mit anderen geometrischen Objekten an ihren Enden interagieren können.
  18. Simulationssystem nach Anspruch 17, dadurch gekennzeichnet, dass die Form eines eingebetteten Segments eine gerade Linie zwischen Aufspannpunkten an der Oberfläche des geometrischen Objekts ist, durch welches der Faden durchtritt.
  19. Simulationssystem nach Anspruch 16, dadurch gekennzeichnet, dass die Form des einen oder der mehreren Segment(e) berechnet wird als eine Annäherung an die Lösung des Optimierungsproblems der Minimierung der potentiellen Energie eines jeden Segments.
  20. Simulationssystem nach Anspruch 19, dadurch gekennzeichnet, dass die potentielle Energie eines Segments ausgedrückt wird als J(y) = ½∫β|y''||y''| – fydsGegenstand von y in K, wobei K = {y|y in H2(0, L; R3), |y'(s)| = 1 in [0, L], y(0) = y0, y(L) = y1, y'(0) = y0', y'(L) = y1'}wobei das Integral genommen wird über das Intervall [0, L] und wobei y das unbekannte Kurvensegment ist, y0, y1 Grenzpositionen im euklidischen 3-Raum sind, y0', y1' Grenzeinheit-Tangenten im euklidischen 3-Raum sind, L die Länge des Segments ist, β die Flexibilität des Segments ist, f eine äußere Kraft, wie etwa die Schwerkraft, ist, R3 der euklidische 3-Raum ist, und H2 der Sobolev-Raum von Verteilungen mit quadratisch integrierbaren Ableitungen der Größenordnung kleiner oder gleich 2 ist.
  21. Simulationssystem nach Anspruch 16, dadurch gekennzeichnet, dass die geometrische Beschreibung eines beliebigen Segments vorgenommen wird durch eine Bezugnahme auf eine Kurvendefinition, welche die numerische Beschreibung der Form des jeweiligen Segments einschließt.
  22. Verfahren nach Anspruch 21, dadurch gekennzeichnet, dass die Befehle auf den Speichermitteln in einer objektorientierten Computersprache vorliegen, so dass – jeder Aufspannpunkt als ein Objekt beschrieben wird, welches zumindest aufweist – zwei Zeiger, welche auf die Segmente, angrenzend an den Aufspannpunkt, falls vorhanden, zeigen, – Zeiger zu irgendeinem anderen geometrischen Objekt, an welches der Aufspannpunkt angebracht ist, – eine Variable, welche die Position des Aufspannpunkts enthält, – jedes Segment als ein Objekt beschrieben wird, welches zumindest aufweist – zwei Zeiger, welche auf die Aufspannpunkte an jedem Ende des Segments zeigen, – zwei Zeiger, welche auf die benachbarten Segmente zeigen, falls vorhanden, – einen Zeiger, welcher auf ein Kurvenobjekt zeigt, welches die numerische Beschreibung der Form des Segments enthält, – jede Kurvendefinition beschrieben wird als ein Kurvenobjekt, welches zumindest aufweist – Formparameter, – Formberechnungsalgorithmen.
  23. Simulationssystem nach Anspruch 22, dadurch gekennzeichnet, dass jedes Segmentobjekt auch eine Variable enthält, welche die Spanne des Segments enthält, definiert als den Abstand zwischen den zwei Aufspannpunkten, auf die gezeigt wird, und eine Variable, welche die Länge des Segments enthält, gemessen entlang dem Faden zwischen den zwei Aufspannpunkten, auf welche gezeigt wird.
  24. Simulationssystem nach Anspruch 22, dadurch gekennzeichnet, dass jedes Aufspannpunktobjekt auch eine Variable aufweist, welche Werte enthält, die die Tangente(n) des Segments definieren, auf welches durch das Aufspannpunktobjekt gezeigt wird, an der Position des Aufspannpunkts.
  25. Simulationssystem nach Anspruch 22, dadurch gekennzeichnet, dass die Formparameter des Kurvenobjekts einen Flexibilitäts- und einen Gravitationsvektor einschließen, und dass die Formberechnungsalgorithmen Funktionen einschließen zum Vornehmen geometrischer Berechnungen, basierend auf Längen- und Spannen-Informationen, Aufspannpunktpositionen und Endpunkttangenten, empfangen von dem entsprechenden Segmentobjekt, wie auch die Formparameter.
  26. Simulationssystem nach Anspruch 17, dadurch gekennzeichnet, dass eine Interaktion zwischen jeglichem freien Segment und jeglichem anderen Objekt beschrieben wird durch Einführung zusätzlicher Aufspannpunkte, welche das freie Segment in zwei freie Segmente teilen.
  27. Simulationssystem nach Anspruch 16, dadurch gekennzeichnet, dass die Bewegung des Fadens beschrieben wird durch Bewegen eines Aufspannpunkts, basierend auf Eingabeinformationen, empfangen über die Eingabeschnittstelle, und Neuberechnen der Form und Länge des Segments zwischen angrenzenden Aufspannpunkten, wobei von dem Aufspannpunkt gestartet wird, der bewegt wird, und rekursiv entlang der Länge des Fadens fortgeschritten wird.
  28. Simulationssystem nach Anspruch 16, dadurch gekennzeichnet, dass die Länge des Fadens konstant gehalten wird durch Vornehmen entsprechender Änderungen der Länge eines jeden jeweiligen Segments, so dass jegliche Änderung in der Länge eines Segments die Länge des folgenden Segments in einer rekursiven Art und Weise beeinflusst.
  29. Simulationssystem nach Anspruch 16, dadurch gekennzeichnet, dass eine Aktualisierung des Modells in einer rahmenweisen Art und Weise durchgeführt wird, so dass in einem ersten Schritt neue Daten eingeführt werden, welche eine Änderung des Modells beschreiben, in einem zweiten Schritt das Modell aktualisiert wird, basierend auf den neuen Daten, und in einem dritten Schritt das aktualisierte Modell als ein Rahmen im Computergrafiksystem visualisiert wird.
  30. Simulationssystem nach einem der Ansprüche 16 bis 29, dadurch gekennzeichnet, dass der Faden eine chirurgische Wundnaht darstellt, und dass die geometrischen Objekte ein Gewebe eines menschlichen Körpers in einem chirurgischen Simulationssystem darstellen.
  31. Computerprogrammprodukt, aufweisend Programmbefehle, enthalten auf einem computerlesbaren Medium, um, wenn in einen Computer geladen, den Computer zu veranlassen, die Schritte eines der Ansprüche 1 bis 15 auszuführen.
  32. Verbreitetes Signal, wobei Information über Programmbefehle in computerlesbarer Form getragen wird, um, wenn in einen Computer geladen, den Computer zu veranlassen, die Schritte eines der Ansprüche 1 bis 15 auszuführen.
DE60210055T 2001-01-08 2002-01-08 Verfahren und system zur simulation eines fadens in computergrafiksimulationen Expired - Lifetime DE60210055T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NO20010127A NO313477B1 (no) 2001-01-08 2001-01-08 Fremgangsmåte og system for å simulere en tråd i datamaskinbaserte grafiske simuleringer
NO20010127 2001-01-08
PCT/NO2002/000009 WO2002054370A1 (en) 2001-01-08 2002-01-08 Method and system for simulation of a thread in computer graphics simulations

Publications (2)

Publication Number Publication Date
DE60210055D1 DE60210055D1 (de) 2006-05-11
DE60210055T2 true DE60210055T2 (de) 2006-11-09

Family

ID=19911984

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60210055T Expired - Lifetime DE60210055T2 (de) 2001-01-08 2002-01-08 Verfahren und system zur simulation eines fadens in computergrafiksimulationen

Country Status (6)

Country Link
US (1) US7375726B2 (de)
EP (1) EP1364357B1 (de)
AT (1) ATE321320T1 (de)
DE (1) DE60210055T2 (de)
NO (1) NO313477B1 (de)
WO (1) WO2002054370A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005028103A1 (de) * 2005-06-16 2006-12-21 Flexilution Gmbh Verfahren zur Darstellung flexibler längenerstreckter Volumenobjekte
US20070239696A1 (en) * 2006-03-28 2007-10-11 Microsoft Corporation Interactive relational graphic solutions
EP1878823B1 (de) * 2006-07-10 2019-03-06 BERNINA International AG Verfahren und Vorrichtung zum Darstellen von Nahprozessen
EP2387760B1 (de) * 2009-01-15 2019-05-01 SimQuest LLC Interaktive simulation von biologischem gewebe
WO2010105237A2 (en) * 2009-03-12 2010-09-16 Health Research Inc. Method and system for minimally-invasive surgery training
US10860900B2 (en) * 2018-10-30 2020-12-08 International Business Machines Corporation Transforming source distribution to target distribution using Sobolev Descent

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4321047A (en) * 1980-06-05 1982-03-23 Bradley Landis Simulator and process for teaching surgical knot tying techniques
AU8391091A (en) 1990-09-21 1992-04-15 Medsim, Inc. System for simulating the physiological response of a living organism
JPH06503663A (ja) * 1990-11-30 1994-04-21 ケンブリッジ アニメーション システムズ リミテッド 動画作成装置
US5766016A (en) * 1994-11-14 1998-06-16 Georgia Tech Research Corporation Surgical simulator and method for simulating surgical procedure
JPH10111958A (ja) * 1996-10-04 1998-04-28 Olympus Optical Co Ltd コンピュータグラフィックスを用いたシミュレーションシステム及びシミュレーションシステムにおけるモデル表現方法
WO1998024083A1 (en) 1996-11-25 1998-06-04 Dadkhah Shahiar Coronary angioplasty simulator apparatus
US6204860B1 (en) * 1998-07-02 2001-03-20 Silicon Graphics, Inc. Method and apparatus for geometric model deformation using wires
US6707452B1 (en) * 2000-07-19 2004-03-16 Pixar Method and apparatus for surface approximation without cracks

Also Published As

Publication number Publication date
EP1364357A1 (de) 2003-11-26
DE60210055D1 (de) 2006-05-11
WO2002054370A1 (en) 2002-07-11
ATE321320T1 (de) 2006-04-15
NO20010127L (no) 2002-07-09
NO20010127D0 (no) 2001-01-08
US7375726B2 (en) 2008-05-20
EP1364357B1 (de) 2006-03-22
US20040222993A1 (en) 2004-11-11
NO313477B1 (no) 2002-10-07

Similar Documents

Publication Publication Date Title
DE602004002756T2 (de) Bildverarbeitungsverfahren zur automatischen anpassung eines deformierbaren 3d-modells auf eine im wesentlichen röhrenförmige oberfläche eines 3d-objekts
Hegarty Diagrams in the mind and in the world: Relations between internal and external visualizations
Heng et al. A virtual-reality training system for knee arthroscopic surgery
EP1251462B1 (de) Verfahren zum Segmentieren einer in einem Objekt enthaltenen dreidimensionalen Struktur, insbesondere für die medizinische Bildanalyse
DE19543410A1 (de) Virtuelles Untersuchungssystem für innere Hohlräume
US8005659B2 (en) Simulation of coupled objects
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE112006000938T5 (de) Dynamischer Lösungsfinder mit fester Zeitschrittgrösse für interagierende Teilchensysteme
DE3608438A1 (de) Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc
DE19900884A1 (de) System und Verfahren zum Bedienen und Beobachten eines Automatisierungssystems mit Prozeßvisualisierung und Prozeßsteuerung durch virtuelle Anlagenmodelle als Abbild einer realen Anlage
DE602004011749T2 (de) Umschlagsdeformation mittels unterteilten Oberflächen
DE112004000722T5 (de) Verfahren und Vorrichtung zur schnellen automatischen Mittellinien-Extraktion für die virtuelle Endoskopie
DE69936078T2 (de) Objektwiedergabesystem zur Erzeugung röntgenähnlicher Bilder
EP2325725A1 (de) Verfahren zum reduzieren eines effekts auf virtuelle objekte
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE102013220539A1 (de) Modifikation einer Hohlorgan-Repräsentation
DE60210055T2 (de) Verfahren und system zur simulation eines fadens in computergrafiksimulationen
US20080088578A1 (en) Flexible object simulator
DE60024514T2 (de) Aufzeichnungsmedium, Verfahren und Einrichtung zur Bildverarbeitung mit integrierten Daten zur Formmodellierung
DE19644481A1 (de) Computergestütztes Arbeits- und Informationssystem und zugehöriger Baustein
DE112010005294T5 (de) Bildanzeigevorrichtung
DE19646702A1 (de) Verfahren zum Detektieren von Produktionsfehlern in einem Artikel
DE102004016329A1 (de) System und Verfahren zur Durchführung und Visualisierung von Simulationen in einer erweiterten Realität
DE10004898C2 (de) Darstellungseinrichtung
DE102007020060B4 (de) Verteilte Berechnung von Bildern volumetrischer Objekte mittels Ray Casting

Legal Events

Date Code Title Description
8364 No opposition during term of opposition