NO313477B1 - Fremgangsmåte og system for å simulere en tråd i datamaskinbaserte grafiske simuleringer - Google Patents

Fremgangsmåte og system for å simulere en tråd i datamaskinbaserte grafiske simuleringer Download PDF

Info

Publication number
NO313477B1
NO313477B1 NO20010127A NO20010127A NO313477B1 NO 313477 B1 NO313477 B1 NO 313477B1 NO 20010127 A NO20010127 A NO 20010127A NO 20010127 A NO20010127 A NO 20010127A NO 313477 B1 NO313477 B1 NO 313477B1
Authority
NO
Norway
Prior art keywords
segment
thread
segments
suspension
points
Prior art date
Application number
NO20010127A
Other languages
English (en)
Other versions
NO20010127L (no
NO20010127D0 (no
Inventor
Johannes Kaasa
Kyrre Stroem
Geir Westgaard
Jan Sigurd Roetnes
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
Priority to NO20010127A priority Critical patent/NO313477B1/no
Publication of NO20010127D0 publication Critical patent/NO20010127D0/no
Priority to EP02716497A priority patent/EP1364357B1/en
Priority to AT02716497T priority patent/ATE321320T1/de
Priority to DE60210055T priority patent/DE60210055T2/de
Priority to US10/250,375 priority patent/US7375726B2/en
Priority to PCT/NO2002/000009 priority patent/WO2002054370A1/en
Publication of NO20010127L publication Critical patent/NO20010127L/no
Publication of NO313477B1 publication Critical patent/NO313477B1/no

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

Description

Oppfinnelsen angår en fremgangsmåte som beskriver en tråd som et geometrisk objekt i et tredimensjonalt infografisystem. Oppfinnelsen relaterer også til et datamaskinbasert simuleringssystem som benytter nevnte fremgangsmåte for simulering av systemer der en tråd inngår. Det bør understrekes at uttrykket 'tråd' vil bli brukt gjennom hele denne beskrivelsen der det måtte være passelig, men 'tråd' skal også dekke andre uttrykk, som f.eks., men ikke begrenset til, sutur, wire, kabel, tau etc. Kravet er at et slikt objekt kan beskrives i et infografisystem i samsvar med fremgangsmåten angitt i kravene.
Opplæring i forbindelse med kirurgi, som for eksempel sammensying av to eller flere bløte objekter, har tradisjonelt vært begrenset til trening på døde mennesker eller på dyr. I de senere år har datamaskinsimulatorer blitt utviklet for å overkomme begrensninger i tradisjonell læring samt for å øke tilgjengeligheten for studenter og ansatte innenfor helsevesenet for å lære kirurgi, og for erfarne kirurger som skal opprettholde sine kunnskaper og utvikle nye metoder basert på den teknologiske utviklingen.
Et eksempel på en kirurgi-simulator er beskrevet i US-patent 5,766,016. Simulatoren tilbyr både visuell og taktil (følbar) tilbakemelding. Visuell tilbakemelding framskaffes via en grafisk computer som styrer et stereo display, samt diverse optikk som etterligner et kirurgisk mikroskop. Taktil tilbakemelding framskaffes via et instrument som kan simulere kirurgiske verktøy. Dette instrumentet kobles via stenger og hengsler til servomotorer som så kan simulere merkbare krefter i vilkårlige retninger. Simulatoren simulerer fortrinnsvis okular kirurgi, og framviser en modell av et øye. Modellen av øyet lages ved først å ta bilder av komponenter av øyet, deretter å legge tekstur på disse bildene, og så å utvikle en matematisk modell av øyet. Det er ingen beskrivelse av hvordan man vil kunne modellere kirurgiske tråder eller sømmer.
US-patent nummer 4,321,047 beskriver et instrument for å undervise teknikker for å feste kirurgiske knuter. Elastiske rør, laget av materiale som skal etterligne forskjellige typer av menneskelige årer, strekkes mellom armene i en bæreramme. Innenfor rørene er det fjærer, som strekkes ved spenn mellom armene i rammen. En liten detektor, tilknyttet hver av fjærene, kan så lage forskjellige signaler når fjærene kommer i kontakt med hverandre. Studenten knytter noen kirurgi-tråder rundt røret og strammer løkken inntil fjærer berøres, for så å indikere at en bestemt kraft har blitt anvendt på røret fra løkken. Ingen datamaskinsimuleringer er involvert.
US-patent nummer 5,956,040 inkluderer et simuleringssystem som bruker datamaskingrafikk og en fremgangsmåte for å uttrykke en modell på en måte som kan virkeliggjøre deformasjonene i en modell som er beskrevet ved hjelp av polygoner. Simulering av oppførselen til en kirurgisk tråd er imidlertid ikke beskrevet.
Ingen av publikasjonene som er nevnt ovenfor, beskriver simulering av kirurgisk sutur eller tråder på datamaskiner. På grunn av viktigheten av at en simulator kan gi en nøyaktig fremstilling av de virkelige forhold som de kirurgiske prosedyrer utføres under, og på grunn av det store antall slike prosedyrer som involverer sutur, er en tilstrekkelig nøyaktig modellering av en kirurgisk tråd i en kirurgisk simulator av stor betydning.
Det bør påpekes at selv om eksemplene over involverer kirurgisk simulering, og selv om utførelsene beskrevet her angår en slik applikasjon, kan den foreliggende oppfinnelse enkelt tilpasses til andre formål. Eksempler på dette kan være situasjoner som involverer sying i skredder-prosesser, simulering eller virtuell virkelighetssystemer hvor tråder eller kabler skal modelleres, datagrafikk eller animasjon av mer generel karakter, som dataspill eller filmer, hvor tråder eller kabler skal visualiseres på en naturlig og overbevisende måte. Det må derfor forstås at betegnelsen simuleringssystem derfor ikke er begrenset til tradisjonelle simulatorer, men også inkluderer systemer hvor numeriske simulering av tekniske problemer der tråder eller kabler er involvert, og også datagrafikk-arbeidsstasjoner som benyttes for å konstruere datagrafikkbasert representasjon som for eksempel vil bli vist fram som en film eller annen type framvisning.
"Augmented Lagrangian and Operator-Splitting Methods in Nonlinear Mechanics", av Roland Glowingski og Patrick Le Tallec, Society for Industrial and Applied Mathematics, Philadelphia, 1989, kapittel 8, side 259 — 286, diskuterer numerisk modellering av elastiske og ikke-tøyelige stenger, spesielt i forbindelse med elastiske rørledninger brukt i offshore produksjon. Den numeriske modelleringen som beskrives der kan også utvides til bruk sammen med foreliggende oppfinnelse. Kapittelet som nevnes ovenfor, samt algoritmene som beskrives i kapittel 3 i samme referanse, er herved inkludert i denne beskrivelse ved henvisning.
Numerisk representasjon av en tråd, kabel, streng eller tilsvarende, krever omfattende databeregninger, spesielt dersom andre objekter også påvirkes. Dette kan være en kritisk faktor i numeriske simuleringer eller datagrafikk, spesielt hvis simuleringen skal kjøres i sanntid, slik som på en simulator. Denne oppfinnelsen er basert på en datastruktur som overkommer denne flaskehalsen og som tillater hurtig beskrivelse og oppdatering av en tråd i datagrafikkbaserte omgivelser.
Denne datastrukturen modellerer tråden som en rekke med segmenter som knyttes sammen i opphengingspunkter som definerer punkter som tråden passerer gjennom. Formen på tråden beskrives deretter ved å definere formen på hvert enkelt segment individuelt. Oppdatering av modellen er basert på å overføre data fra et segment til nabosegmnetet og ved å flytte, legge til eller slette opphengingspunkter.
Mer spesielt så inkluderer beskrivelsen av en tråd som et slikt geometrisk objekt å generere et sett med opphengingspunkter, som definerer punkter i rommet som tråden kan passere gjennom, og ved å generere et sett med ett eller flere segmenter som representerer tråden mellom tilliggende opphengingspunkter. Hvert segment knyttes til to opphenginspunkter, hvor hvert punkt ligger på hver ende av det respektive segmentet, og de geometriske egenskapene for hvert enkelt segment beskrives.
For å kunne forenkle modellen ytterligere, kan segmenter av tråden som passerer gjennom andre objekter beskrives som rette linjer mellom opphengingspunkter festet til overflaten av det objektet tråden passerer gjennom, ved de respektive punkter hvor tråden går inn i eller kommer ut fra objektet. Et slikt segment vil heretter refereres til som innesluttede segmenter. Andre segmenter vil refereres til som frie segmenter.
Den faktiske geometriske beskrivelsen av segment gjøres fortrinnsvis via en referanse til en kurvedefinisjon som omfatter den numeriske beskrivelsen av formen til segmentet. Dette kan gjøres ved å definere segmentet som et objekt i et objekt-orientert datamaskinspråk og i dette objektet inkludere en peker til et ytterligere objekt som inkluderer de nødvendige kurveparametere og algoritmer som trengs for å beregne formen på kurven. Disse ytterligere objektene vil bli referert til som kurveobjekter. For et gitt segment vil kurveinstansieringen (dvs. resultatet av kurveformberegningen) så lagres i kurveobj ektet, som også inneholder de nødvendige funksjoner for å kunne beregne denne kurveinstansieringen fra informasjonen mottatt fra segmentobjektet. Formen på et innesluttet segment er en rett linje mellom opphengingspunktene, mens formen på et fritt segment beregnes basert på posisjonene til opphengingspunktene ved hver ende av segmentet, tyngdekraftvektor, og ytterligere parametre som trådfleksibilitet, endepunkt-tangenter, segment-lengder, avstander mellom opphengingspunkter osv.
Fortrinnsvis vil opphengingspunktene såvel som alle andre geometriske objekter defineres på en tilsvarende objekt-orientert måte. Segmentene vil da inneholde pekere til to opphengingspunkter, og opphengingspunktene vil inneholde pekere til segmenter, og muligenes også til noen andre geometriske objekter, samt en variabel som inneholder posisjonen til opphengingspunktet.
Tilleggs-data og funksjoner involvert sammen med de forskjellige objektene vil bli beskrevet i større detalj i det etterfølgende.
I et datasimuleringssystem vil datastrukturen bestå av data og instruksjoner i en datalagringsanordning som kan leses av en en prosessor. Prosessoren vil være i stand til, basert på dataene og instruksjonene, å generere en tredimensjonal numerisk modell av nevnte tråd og nevnte geometriske objekter som tråden kan interagere med, og å generere en videorepresentasjon av nevnte numeriske modell.
Simuleringssystemet inkluderer også et inngangsgrensesnitt for å motta styringssignaler som representerer håndteringen av simuleringssystemet og et utgangsgrensesnitt som er i stand til å sende nevnte videorepresentasjon til en fremvisningsanordning.
Oppfinnelsen omfatter også et dataprogram som beståt av et sett med datainstruksjoner for å utføre trinnene i de nevnte fremgangsmåtene. Et slikt program kan ta form av et dataprogram-produkt lagret på en CD ROM eller et hvilket som helst annet lagringsmedium, eller som et transmittert signal som bærer med seg informasjonen som utgjør et slikt dataprogram.
De definerende egenskapene til oppfinnelsen er inkludert i de vedlagte selvstendige krav, mens de uselvstendige kravene beskriver ytterligere trekk.
Oppfinnelsen vil nå bli beskrevet i større detalj ved hjelp av eksempler og med referanse til de medfølgende tegningene.
Fig. 1 viser den generelle strukturen på et datasimuleringssystem i henhold til
oppfinnelsen,
Fig. 2 viser et eksempel på et datasimuleringsproblem som oppfinnelsen kan
benyttes til,
Fig. 3a viser datastrukturen på oppfinnelsen når den brukes på eksempelet fra
figure 2,
Fig. 3b viser den generelle datastrukturen i henhold til oppfinnelsen,
Fig. 4 illustrerer et eksempel på en stegvis oppdatering av topologien til modellen
gjennom en typisk syprosess.
Det vises først til figur 1, der den generelle strukturen til et datamaskinbasert simuleringssystem ifølge oppfinnelsen er illustrert. Systemet mottar inndata gjennom et inngangsgrensesnitt 1. Disse inndata kan komme fra et keyboard og en mus, eller fra mer dedikert simuleringsutstyr som etterligner forskjellige typer verktøy eller kontrollutstyr. Den kan også komme fra ytre lagringskilder eller en kommunikasjonslinje eller et nettverk. Videre vil systemet bestå av en prosessor 2 og en lagringsanordning 3. Prosessoren 2 er i stand til å aksessere data og instruksjoner lagret på lagringsanordningen 3, og virke på de lagrede data og inndataene i henhold til instruksjonene. Resultatene fra operasjonene utført på grunnlag av instruksjonene kan lagres i lagringsanordningen 3 og/eller leveres til utgangsgrensesnitt 4. Resultatene av operasjonene som utføres av prosessoren vil vanligvis inneholde i det minste en videofremstilling av simuleringen som kan vises på et display, som f.eks. en videomonitor eller med videodisplay-briller, men den kan også inneholde følbar tilbakemeldingsinformasjon som leveres tilbake til inndata-kilden via inngangsgrensesnittet.
Prosessoren 2 i simuleringssystemet kan være en CPU i en vanlig PC eller arbeidsstasjon, men den kan også være en kombinasjon av flere prosessorkretser, inkludert spesielle grafikk-prosessorer. Lagringsanordningen 3 kan i prinsippet inkludere en hvilken som helst type lagringsmidler, som f.eks. en vanlig hard disk, en CD-ROM, minnekretser etc.
Det vises nå til figur 2. Her vises et eksempel på et computer-simuleringsproblem hvor oppfinnelsen vil anvendes. Eksempelet er hentet fra kirurgisk simulering for trening av leger. I tillegg til en tråd 10, viser figuren et antall geometriske objekter som tråden interagerer med. I dette eksempelet inkluderer disse objektene en nål 12 som er festet til enden av tråden og som holdes av et instrument 14. Det er også vist fleksibelt vev 16, 18 som skal sys sammen under simuleringen. Den geometriske beskrivelsen av disse ytterligere objektene er ikke en del av oppfinnelsen, og diskuteres derfor ikke i detalj. Det vil imidlertid være naturlig å beskrive nålen 12 som en rigid kurve (dvs. en kurve som ikke kan endre form i løpet av simuleringen), å beskrive instrumentet 14 som et stivt objekt ved f.eks. å beskrive dets overflater, samt å beskrive vevet 16, 18 som fleksible objekter igjen geometrisk representert ved sine overflater. Dersom vevet har en veggliknende struktur, for eksempel veggen i en arterie, kan vevet beskrives med to overflater, en ytre overflate 16a, 18a og en indre overflate 16b, 18b.
For å beskrive denne situasjonen i overenstemmelse med oppfinnelsen, introduseres opphengingspunkter. Minst seks opphengingspunkter kreves for å modellere situasjonen i figuren. Det bemerkes dog at de introduseres i løpet av simuleringen, slik det er beskrevet i det etterfølgende med referanse til figur 4. Ett opphengingspunkt 20 er plassert der nålen er festet til tråden, to opphengingspunkter 22, 24 er plassert der tråden entrer og forlater det første fleksible vevet 16, to opphengingspunkter 26, 28 er plassert der tråden entrer og forlater det andre fleksiblet vevet 18, og ett opphengingspunkt er plassert ved enden av tråden 29. Dette resulterer i et første fritt segment 30 mellom nålens opphenginspunkt 20 og det første vevsveggopphengingspunktet 22, et innesluttet segment 32 mellom vevsopphengingspunktene 22, 24, et fritt segment 34 mellom den indre vevsveggens opphengingspunkt 24 på det første vevsstykket 16 og opphengingspunktet 26 på den indre veggen på det andre vevsstykket 18, et innesluttet segment 36 mellom de to opphengingspunktene 26, 28 og det andre vevstykket 18, samt et fritt segment 38 mellom den ytre veggens opphengingspunkt 28 og trådendens opphengingspunkt 29.
Merk at det ikke finnes noe i datastrukturen som hindrer inkludering av ytterlige opphengingspunkter som deler de frie segmentene, men ingen er inkludert i dette eksempelet.
Figur 3a illustrerer datastrukturen for en del av problemet vist i figur 2. Datastrukturen beskrives som objekter og pekere i et objektorientert miljø, men det må forstås at oppfinnelsen ikke begrenses til dette. Andre beskrivelser som tillater en liknende utveksling av data og beregning av former og posisjonering av segmenter og opphengingspunkter, faller innenfor oppfinnelsen. Det vil imidlertid forstås fra beskrivelsen nedenfor at et objektorientert språk vil være et foretrukket middel for å skape datastrukturen.
Det bør også bemerkes at den følgende beskrivelsen omfatter en viss redundans mhp. pekere. Det er ikke nødvendig at alle objekter som pekes på av andre objekter peker tilbake på det pekende objektet. Det er heller ikke strengt nødvendig for to tilgrensende segmenter å peke til hverandre, siden de vil være forbundet av det opphengingspunktet de har til felles. Imidlertid vil en økning av antall pekere redusere antallet søk som må gjøres ved traversering frem og tilbake gjennom datastrukturen, f.eks når modellen oppdateres, noe som vil tilgodekomme en rask oppdatering ved sanntidssimulering. Det ville imidlertid være tilstrekkelig å inkludere nok pekere til å forbinde alle objektene i modellen. Det foretrekkes i det minste å ha pekere fra alle segmentobjekter til tilkoblede segmenter og opphengingspunkter, samt pekere fra opphengingspunktobj ekter til tilkoblede vevsobjekter (eller andre eksterne geometriske objekter som er inkludert i simuleringen).
De andre delene av modellen kan konstrueres i følge tradisjonell scenegrafteori, som er vel kjent i faget.
Siden oppfinnelsen som sådan er begrenset til beskrivelsen av opphengingspunkter og segmenter, tegnes disse med uthevede linjer i figur 3a, mens øvrige objekter som disse interagerer med - men som ikke er en del av oppfinnelsen - tegnes med tynnere linjer. Referansetallene korresponderer med de i figur 2 for korresponderende objekter.
Går man fra toppen i figur 3a, representerer det første objektet instrumentet 14. Dette objektet inneholder minst en peker som peker på nålobjektet 12. På samme måte peker nålobjektet 12 på instrumentobjektet 14. Nålen 12 og det første segmentet 30 av tråden 10 forbindes ved hjelp av det første opphengingspunktet 20. Som illustrert, kan alle disse objektene inneholde pekere til hverandre.
Det første segmentet 30 av tråden 10 er et fritt segment. Dette segmentet er forbundet til det andre segmentet 32 av tråden 10 ved hjelp av et andre opphengingspunkt 22. Det andre segmentet 32 er et innesluttet segment, som igjen er forbundet til et fritt segment 34 ved hjelp av et tredje opphengingspunkt 24. Til sist er det enda et innesluttet segment 36 forbundet med det andre frie segmentet 34 ved hjelp av et fjerde opphengingspunkt 26.
Opphengingspunktene 22, 24, 26 som forbinder de innesluttede segmentene 32, 36 har pekere også til vevsobjektene 16a, 16b, 18a og vice versa.
Sekvensen av segmenter illustrert i figur 3a (fritt segment, innesluttet segment, fritt segment, innesluttet segment), er typisk, men ikke påkrevd. Som allerede bemerket, kan to frie segmenter forbindes, og det samme gjelder to innesluttede segmenter.
Den geometriske beskrivelsen av de ulike objektene, spesielt segmentene, kan inneholdes i respektive objekter, men geometrien beskrives fortrinnsvis i separate objekter som peker til objektene de beskriver. På denne måten vil hvert segment, det være seg frie eller innesluttede, inneholde ytterligere pekere som peker på et geometrisk objekt eller et kurveobj ekt.
I tillegg til referansene mellom objektene, inneholder de data av ulik art og/eller referanser til andre objekter som inneholder data og funksjoner. Det etterfølgende er en mer komplett beskrivelse av dataobjektene inkludert i datastrukturen. Det refereres herved til figur 3 b som viser den generelle strukturen av datamodellen inkludert relasjoner mellom de ulike objekttypene. Igjen bemerkes det at ikke er nødvendig å ta med alle de pekere som her er illustrert, slik det er forklart ovenfor.
Segmenter kan være av ulik type avhengig av rollene de innehar i simuleringen. Forskjellen mellom disse uttrykkes enten internt i det respektive objekt, eller eksternt, som et resultat av hvilke andre dataobjekter de peker på. De to fundamentale segmenttyper, innesluttet segment og fritt segment, kan være av samme objekttype, men innesluttede segmenter vil defineres ved å referere til opphengingspunkter som er tilknyttet overflatene til andre objekter, og ved å referere til kurveobjekter som definerer en rett linje mellom disse opphengingspunktene. Uavhengig av hvordan segmentene er definert, vil noen typer data være felles for alle segmentobj ekter. Ved en foretrukket utførelse av oppfinnelsen, inkluderer dette pekere til to opphengingspunkter, ett ved hver ende av segmentet, pekere til nabosegmentene, dersom de eksisterer, en peker til et kurveobjekt med en beskrivelse av geometrien til segmentet, en variabel som inneholder segmentets spenn, dvs. avstanden avstanden mellom de to opphengingspunktene ved de respektive endene av segmentet, samt en variabel som inneholder lengden til segmentet målt langs tråden. Lengden er et resultat av en regnskapsprosess, slik at lengden økes hver gang et segment mottar mer lengde fra et tilgrensende segment og reduseres hver gang segmentet avgir lengde til et tilgrensende segment. Spenn beregnes på bakrunn av informasjon mottatt fra de respektive opphengingspunkter. De nødvendige funksjoner for å beregne og oppdatere verdiene til disse to variablene er fortrinnsvis inkludert i segmentobj ektet som lokale funksjoner.
Den totale lengden av tråden vil være en sum av lengdene av alle segmentene. Med mindre tråden beskrives med en viss elastisitet, holder trådlengen seg konstant, men ett segment kan avgi lengde til et tilgrensende segment som beskrevet under.
Opphengingspunkter kan deles av to segmenter, og definerer dermed en topologisk forbindelse. Et opphengingspunkt kan også representere den frie enden av tråden og forbindes kun med ett segment. Normalt vil opphengingspunktet tilknyttes et ytterligere objekt. I vårt kirurgieksempel vil dette ytterligere objekt vanligvis representere vev, men kan også representere et kirurgisk instrument. Et opphengingspunkt kan også deles mellom kun ett segment av tråden og et annet objekt slik som nål eller instrument.
Opphengingspunkter inneholder generelt de følgende data: To pekere som peker på segmentene forbundet av opphengingspunktet, hvis de er til stede (kun ett er påkrevd), pekere til et annet geometrisk objekt som opphengingspunktet er tilknyttet, slik som et instrument, en nål, eller vev, samt en variabel som inneholder posisjonen til opphengingspunktet. I tillegg inneholder oppengingspunktobjektet fortrinnsvis variabler som inneholder tangentene til segmentene tilknyttet opphengingspunktet. Hvis de to segmentene begge er frie, vil disse variablene normalt ha samme verdi, siden tråden er tangentielt kontinuerlig. I prinsipp er det imidlertid ikke påkrevd at tråden er tangentielt kontinuerlig, og normalt vil den ikke være det i tilfeller hvor et av segmentene er innesluttet.
Opphengingspunktene definerer forbindelser som tjener til utveksling av informasjon mellom objekter. Hvis ett opphengingspunkt flyttes, kan dette resultere i at andre opphengingspunkter flyttes eller at lengden av segmentene endres. Opphengingspunktene tjener som referansepunkter for utveksling av data som kan beregnes rekursivt eller simultant. Dette er beskrevet i ytterligere detalj under.
Kurveobjekter er objekter som refereres til av segmenter. For hvert segment finnes det et kurveobjekt som definerer den geometriske formen til dette segmentet. Dette kurveobj ektet inneholder den numeriske beskrivelsen av segmentet, inkludert formparametere, som fleksibilitet og gravitasjonsvektor, og formberegningsalgoritmer. Kurveobj ektet mottar informasjon fra segmentet og opphengingspunktene, inkludert spenn, lengde og opphengingspunktposisjoner, og basert på denne informasjonen vil kurveformen beregnes og lagres i kurveobj ektet. Kurveobj ektet kan også inneholde et utvalg av algoritmer og parametere for å balansere behovene for hastighet kontra presisjon.
Ved en foretrukket utførelse implementeres kurven som en B-spline, men andre fomater kan anvendes, slik som polygonsegmenter, implisitt beskrivelse, analytiske segmenter, etc.
Det er to basisoperasjoner som kan utføres på datastrukturen. Disse er en oppdatering av trådformen, og en oppdatering av trådtopologien (dvs antallet segmenter og deres rekkefølge). Det følgende er en generell beskrivelse av disse operasjonene som illustrerer oppfinnelsens fleksibilitet. Det bør imidlertid fremheves at et stort antall algoritmer kan implemeteres for å beregne de individuelle segmenters form, for å distribuere lengde og kraft langs tråden, for utveksling av informasjon mellom tråden og omgivelsene, etc. Den følgende beskrivelsen vil ikke søke å dekke alle slike muligheter siden det ville representere ulike former for bruk av oppfinnelsen heller enn oppfinnelsen i seg selv.
Først vil oppdateringen av trådens form som et resultat av bevegelse av et opphengingspunkt, beskrives. I denne situasjonen endres ikke modellens topologi. Tråden består av det samme antall segmenter før og etter oppdateringen, ingen ytterligere opphengingspunkter introduseres, og ingen ytterligere pekere til andre objekter introduseres.
Av bekvemmelighetshensyn refererer denne beskrivelsen til fig 3a og begynner med bevegelsen av opphengingspunktet 20 ved enden av tråden 10, hvor den er forbundet med nålen 12. Det ville også være mulig å begynne bevegelsen et sted på midten av tråden, noe som ville resultere i en oppdatering av trådens form i to retninger. I tillegg, igjen av bekvemmelighetshensyn, vil beskrivelsen begrense seg til et forenklet system hvor krefter ikke beregnes, og hvor lengde ikke utveksles med tilgrensende segmenter før, ved stramming av tråden, forholdet mellom spenn og lengde er 1 (dvs tråden er helt stram). Slakking av tråden kan beskrives som en delvis tilbakegang til den tidligere situasjonen. Datastrukturen og fremgangsmåten ifølge oppfinelsen tillater imidlertid mer sofistikerte algoritmer som tar hensyn til kraft, elastisitet i tråden og andre objekter (vev), etc.
Funksjonene for utveksling av lengde fra et objekt til et annet og for å bevege opphengingspunkter vil fortrinnsvis implementeres i hvert objekt. Når et opphengingspunkt flyttes, oppdateres de andre objektene på en rekursiv måte, først oppdateres opphengingspunktet som flyttes, og deretter oppdateres hvert punkt langsetter tråden. Hvis opphengingspunktet som flyttes ikke er ved en av endene av tråden, resulterer dette i en oppdatering i begge retninger ut fra opphengingspunktet. Oppdateringen bør administreres globalt vha en administrasjonsrutine i opphengingspunktet som flyttes, for å sikre at ingen illegale opdateringer gjøres ( f.eks. at et segment antar at det mottar mer lengde fra et tilstøtende segment enn det som er tilgjengelig) og slik at oppdateringen ikke traverserer frem og til bake langs tråden uten å terminere.
Når første opphengingspunkt 20 flyttes så langt at spennet fra første segment 30 overstiger dets egen lengde, må dette segmentet motta lengde fra andre segmenter. Det følgende segment 32 er innesluttet, og vil ikke forandre hverken spenn eller lengde. Det vil si at all den lengde som segment 30 mottar fra segment 32, vil segment 32 umiddelbart motta fra segment 34. Segment 30 vil bare motta tilstrekkelig med lengde til at dets egen lengde skal være like dets eget spenn, dvs. at det vil være stramt. Kurveobj ektet som pekes på av segment 30 vil beregne den nye formen til segment 30 som en rett linje. Segment 32 vil ikke bli forandret. Segment 34 vil ha samme spenn, men lengden vil bli redusert med det samme som segment 30 ble økt med. Kurveobjektet som pekes på av segment 34 vil beregne formen på segment 34 basert på den nye lengden.
Hvis alle segmentene er stramme (eller hvis modellen inkluderer friksjon eller krefter), så vil en ytterligere strekking av segment 30 ved å flytte på opphengingspunkt 20, resultere i en oppdatering av posisjonen til opphengingspunkt 22, som vil bli flyttet i en retning som er basert på retningen til de to segmentene 30 og 34 (hvis begge segmentene 30 og 34 er stramme, så vil opphengingspunktene 22 og 24 bli flyttet i en retning som er mellom retningene mot opphengingspunktene på de respektive motsatte ender til segmentene 30 og 34). Dette vil resultere i at opphengingspunktet 24 flyttes og også i en oppdatering av formen til vevobjektet 16. Bevegelsen av opphengingspunktene og oppdateringen av vevobjektet, vil redusere spennet til de frie segmentene som er knyttet til de opphengingspunktene som flyttes. Segmentene vil imidlertid forbli stramme, og lengden som de respektive segmentene reduseres med vil overføres til segment 30, slik at den totale trådlengden vil forbli konstant.
Den nye posisjonen til opphengingspunkt 24 vil redusere spennet til segment 34, men siden segment 30 forblir stramt, vil ikke segment 34 få noen slakk. Segment 34 vil derimot overføre sin ekstra lengde til segment 32 som umiddelbart overfører den videre til segment 30. Hver gang opphengingspunkter flyttes og tilhørende lengder har blitt utvekslet, så vil de relevante kurveobjektene oppdatere kurveformen til det relevante segment. Denne oppdateringen kan gjennomføres som en rekursiv oppdateringen langs tråden eller som en samtidig oppdatering av alle involverte objekter; dette er et spørsmål om implementering. Det som er viktig er å la trådlengden forbli konstant (hvis ikke elastisitet er inkludert), og å overføre informasjon mellom objektene basert på topologien definert fra opphengingspunktene.
Denne datastrukturen tillater også mer sofistikerte oppdateringsalgoritmer som også inkluderer krefter langs tangentene til segmentene i opphengingspunktene, samt friksjon. Regler inkludert i oppdateringsalgoritmen kan f.eks. overføre påført kraft til segment-stramming, flytting av opphengingspunkter og overvinning av friksjon (dvs. motta lengde fra det neste segmentet).
Prosessene beskrevet over vil forandre segmentparametere, slik som lengde, spenn og opphengingspunkt-posisjon. I henhold til oppfinnelsen så kan formen til hvert segment individuelt beregnes etter at verdien til disse parameterene er funnet. Dette skyldes at segmentene kun påvirkes av andre objekter ved sine respektive ender. Med andre ord så påvirker ikke formen på ett segment formen på noen av de andre segmenter. Oppgaven å beregne formen til et segment kan formuleres som et optimaliseringsproblem ved å kreve minimal potensiell energi for hvert segment. Det kan formuleres som:
for alle y inneholdt i K, der
K = {y|y inneholdt i H<2> (0,L;R<3>), |y'(s)| = 1 på [0,L],
pluss grensebetingelser:
y(0) = yO, y(L) = yl, y'(0) = yO', y'(L) = yl'
Integralet beregnes over lengden til segmentet, idet
J(y) er et uttrykk for den potensielle energien til tråden,
y er det ukjente kurvesegmentet, som er en funksjon av parameteren s, yO, yl er randbetingelser i euklidisk 3rrom,
yO', yl' er enhets-grensetangenter i euklidisk 3-rom,
L er lengden til segmentet,
P er fleksibiliten til segmentet,
f er den ytre kraften, som f.eks. tyngdekraft,
R<3> er det euklidiske 3-rom, og
H<2> er Sobolev rommet, bestående av distribusjoner med kvadratisk integrerbare deriverte med grad mindre enn eller lik 2.
Verdiene til yO og yl er basert på posisjonene til opphengingspunktene. Mens verdiene til yO' og yl' vanligvis vil bli definert enten basert på retningen til en tilliggende innesluttet serie, retningen til et tilknyttet redskap, eller disse kan overstyres, f.eks. pga tangent-diskontinuiteter som skyldes for stramt segment.
En løsning til dette problemet beskrives i "Augmented Lagrangian and Operator-Splitting Methods in Nonlinear Mechanics", av Roland Glowingski og Patrick Le Tallec, Society for Industrial and Applied Mathematics, Philadelphia, 1989, p 268, som herved er inkludert ved henvisning.
Det bør også påpekes at den foretrukne element-basisen ifølge oppfinnelsen (B-splines) er forskjellig fra den som er beskrevet.
Datastrukturen ifølge oppfinnelsen er svært fleksibel og tillater raske og enkle oppdateringer, også av trådens topologi, dvs. av antall segmenter og deres rekkefølge. Segmenter kan legges til eller fjernes ved å overføre informasjon mellom dem og ved å legge til eller fjerne opphengingspunkter. For eksempel, dersom et verktøy griper tråden midt på et fritt segment, så vil et nytt opphengingspunkt samt et nytt segment bli lagt til. Det nye segmentet vil motta data i henhold til dets avstand fra det opprinnelige segmentet, og derifra kan det nye segmentspennet beregnes. De to segmentene vil bli knyttet sammen via det nye opphenginspunktet.
Figur 4 illustrerer et eksempel på den stegvise oppdateringen av modellen etter en forandring i topologien til tråden, dvs. i antall segmenter og sorteringen av dem. Eksempelet består av å skyve en tråd gjennom et annet objekt, for eksempel et vev, i en sysimulerings beregning. Eksempelet vil ikke inkludere funksjoner for treff-påvisning mellom nål og vev eller beregning av deformasjonen til vevet som skyldes tråden, siden disse interaksjonene er utenfor omfanget til oppfinnelsen.
Oppdateringen av datastrukturen vil bestå av to trinn, og disse er de samme når tråden går inn i og ut av vevet.
Før tråden går inn i vevet, situasjonen er som illustrert i figur 4a, med et trådsegment knyttet til en nål via et opphengingspunkt. I første steg, etter at nålen har passert gjennom vevet, som i henholdsvis figur 4b og 4d, flyttes opphengingspunktet til treffpunktet, og formen på tråden oppdateres som beskrevet over. Nå vil det være en åpning mellom nålen og opphengingspunktet. I neste steg, legges det til et rett (eller stramt) segment fra opphengingspunktet på treffpunktet til enden av nålen. Dette er illustrert i figur 4c, der det nye segmentet er innesluttet, og i figur 4e, der det nye segmentet er et fritt segment.
I begge tilfellene vil det nye segmentet motta lengde fra de andre segmentene og formen på de forskjellige segmentene vil bli oppdatert som beskrevet ovenfor.
Eksemplene og konkretiseringene beskrevet ovenfor er tatt med for å beskrive prinsippene for oppfinnelsen og anvendelse av disse ved et valgt virkelig problem. En rekke modifikasjoner til de beskrevne eksemplene vil være innenfor omfanget av oppfinnelsen. For eksempel kan oppfinnelsen implementeres på en generell datamaskin eller på et spesifikt simuleringssystem. Den kan kobles til generelle inn- og/eller utgangsmidler, som en mus og en skjerm, eller på spesifiserte inn- og utgangsmidler som redskaps-simulatorer og stereo-briller. Det eksakte antall pekere, variabler og funksjoner knyttet til de forskjellige objektene kan velges på forskjellige måter, og oppfinnelsen kan brukes til å simulere en rekke forskjellige situasjoner som involverer tråder, sømmer, kabler, wire og tilsvarende, og alle slike alternativer vil være innenfor omfanget til oppfinnelsen slik den er definert i de medfølgende krav.

Claims (32)

1. Fremgangsmåte for å beskrive en tråd som et geometrisk objekt i et tredimensjonalt infografisystem, karakterisert ved- å generere et sett med opphengingspunkter som definerer punkter i rommet som tråden passerer gjennom, - å generere et sett med ett eller flere segmenter som representerer tråden mellom tilliggende opphengingspunkter, - å linke hvert segment til ett par av opphengingspunkter, hvor hvert punkt ligger på hver ende av det respektive segmentet, - å beskrive de geometriske egenskapene for hvert segment.
2. Fremgangsmåte ifølge krav 1, karakterisert ved at segmentene er av to typer, innesluttede segmenter som beskriver tråden som passerer gjennom et annet geometrisk objekt, og frie segmenter som beskriver trådsegmenter som bare kan samvirke med andre geometriske objekter ved deres ender.
3. Fremgangsmåte ifølge krav 2, karakterisert ved at formen til et innesluttet segment er en rett linje mellom opphengingspunkter på overflaten til det geometriske objektet tråden passerer gjennom.
4. Fremgangsmåte ifølge krav 1, karakterisert ved at formen til ett eller flere segmenter beregnes som en tilnærming til løsningen av optimaliseringsproblemet å minimalisere den potensielle energien for hvert segment.
5. Fremgangsmåte ifølge krav 4, karakterisert ved at den potensielle energien for et segment uttrykkes ved: forutsatt at y er i K, hvor hvor integralet tas over intervallet [0,L], og hvor y er det ukjente kurvesegment, yO, yl er grensestillinger i euklidisk 3-rom, yO', yl' er grenseenhet-tangenter i euklidisk 3-rom, L er segmentets lengde, p er segmentets fleksibilitet, f er en ekstern kraft, slik som tyngdekraften, R3 er det euklidiske 3-rom, og H er Sobolev-rommet for fordelinger med kvadratisk integrerbare deriverte av orden mindre enn eller lik 2.
6. Fremgangsmåte ifølge krav 1, karakterisert ved at den geometriske beskrivelsen av et hvilket som helst segment er utført gjennom en referanse til en kurvedefinisjon som inkluderer den numeriske beskrivelsen av formen til det respektive segmentet.
7. Fremgangsmåte ifølge krav 6, karakterisert ved at tråden er beskrevet i et objekt-orientert datamaskinspråk slik at - hvert opphengingspunkt er beskrevet som et objekt omfattende i det minste - - to pekere som peker til segmentene tilliggende opphengingspunktet, hvis de er tilstede, - - pekere til et hvilket som helst annet geometrisk objekt til hvilket opphengingspunktet er festet, - - en variabel som omfatter stillingen til opphengingspunktet, - hvert segment er beskrevet som et objekt omfattende i det minste - - to pekere som peker mot opphengingspunktene ved hver ende av segmentet, - - to pekere som peker mot nabosegmentene, hvis disse er tilstede, - - en peker som peker mot et kurveobjekt som omfatter den numeriske beskrivelsen av formen til segmentet, - hver kurvedefinisjon er beskrevet som et kurveobjekt omfattende i det minste - - formparametre, - - forberegningsalgoritmer.
8. Fremgangsmåte ifølge krav 7, karakterisert ved at hvert segmentobj ekt også omfatter en variabel som omfatter spennet til segmentet, definert som avstanden mellom to opphengingspunkter som det pekes til, og en variabel som omfatter segmentets lengde målt langs tråden mellom de to opphengingspunktene som det pekes mot.
9. Fremgangsmåte ifølge krav 7, karakterisert ved at hvert opphengingspunkt-objekt også omfatter en variabel som omfatter verdier som definerer tangenten(e) til segmentene som det pekes mot av opphengingspunkt-objektet ved stillingen til opphengingspunktet.
10. Fremgangsmåte ifølge krav 7, karakterisert ved at formparametrene for kurveobj ektene omfatter fleksibilitets- og tyngdekraftvektor, og at formberegningsalgoritmene omfatter funksjoner for å utføre geometriske beregninger basert på lengde- og spenninformasjon, opphengingspunkt-stillinger og endepunkt-tangenter mottatt fra det tilsvarende segmentobj ekt og også nevnte formparametre.
11. Fremgangsmåte ifølge krav 2, karakterisert ved at interaksjonen mellom et hvilket som helst fritt segment og et hvilket som helst annet objekt er beskrevet ved å innføre ytterligere opphengingspunkter som deler nevnte frie segment i to frie segmenter.
12. Fremgangsmåte ifølge krav 2, karakterisert ved at bevegelse av tråden beskrives ved å bevege et opphengingspunkt og på nytt å beregne formen og lengden til segmentene mellom tilliggende opphengingspunkter, ved å starte ved opphengingspunktet som beveges og ved rekursivt å gå langs trådens lengde.
13. Fremgangsmåte ifølge krav 1, karakterisert ved at trådens lengde holdes konstant ved å gjøre tilsvarende endringer i lengdene til hvert respektive segment slik at en hvilken som helst endring i et segment påvirker lengden til det etterfølgende segment på rekursiv måte.
14. Fremgangsmåte ifølge krav 1, karakterisert ved at en oppdatering av modellen utgjøres bilde for bilde slik at i et første trinn innføres nye data som beskriver en endring i modellen, i et annet trinn oppdateres modellen basert på de nye dataene, og i et tredje trinn visualiseres den oppdaterte modellen som et bilde i infografisystemet.
15. Fremgangsmåte ifølge et av de foregående krav, karakterisert ved at tråden representerer en kirurgisk sutur, og de geometriske objektene representerer vevet til en menneskekropp i et kirurgisk simuleringssystem.
16. Simuleringssystem for å simulere oppførselen til en tråd som samvirker med geometriske objekter i et tredimensjonalt infografisystem, karakterisert ved at systemet omfatter - et inngangsgrensesnitt for å motta styringssignaler som representerer håndtering av simuleringssystemet, - lagringsanordninger hvor et sett av instruksjoner og et sett av startdata er lagret, - en prosessor som er i stand til, basert på instruksjoner som er lagret i nevnte lagringsanordning, å generere en tredimensjonal numerisk modell av nevnte tråd og nevnte geometriske objekter, i stand til å oppdatere den tredimensjonale numeriske modellen basert på ytterligere instruksjoner på nevnte lagringsanordning og styringssignaler som er mottatt fra nevnte inngangsgrensesnitt, og som er i stand til å generere en videorepresentasjon av en tredimensjonal numerisk modell, og - et utgangsgrensesnitt for å sende nevnte videorepresentasjon til en fremvisningsanordning; hvor startdataene på nevnte lagringsanordninger representerer en starttilstand for den tredimensjonale numeriske modellen, og instruksjonene på nevnte lagringsmodell omfatter i det minste instruksjoner for å gjøre at prosessoren - genererer et sett med opphengingspunkter som definerer punkter i rommet gjennom hvilke tråden passerer, - genererer et sett med ett eller flere segmenter som representerer tråden mellom tilliggende opphengingspunkter, - linker hvert segment til et par av opphengingspunkter, ett ved hver ende av det respektive segmentet, - beskriver de geometriske egenskapene til hvert segment, - genererer en videorepresentasjon av den resulterende tredimensjonale numeriske modellen, og - sender den genererte videorepresentasjonen til utgangsgrensesnittet.
17. Simuleringssystem ifølge krav 16, karakterisert ved at segmentene er av to typer, innesluttede segmenter som beskriver tråden når den passerer gjennom et annet geometrisk objekt, og frie segmenter som beskriver trådsegmenter som bare kan samvirke med andre geometriske objekter ved sine ender.
18. Simuleringssystem ifølge krav 17, karakterisert ved at formen til et innesluttet segment er en rett linje mellom opphengingspunkter på overflaten til det geometriske objektet tråden passerer gjennom.
19. Fremgangsmåte ifølge krav 16, karakterisert ved at formen til et eller flere segmenter beregnes som en tilnærming til løsningen av optimaliseringsproblemet å minimalisere den potensielle energien til hvert segment.
20. Fremgangsmåte ifølge krav 19, karakterisert ved at den potensielle energien for et segment uttrykkes ved forutsatt at y i er i K, hvor hvor integralet er tatt over intervallet [0,L], og hvor y er det ukjente kurvesegmentet, yO, yl er grensestillinger i euklidisk 3-rom, yO', yl' er grenseenhets-tangenter i euklidisk 3-rom, L er segmentets lengde, P er segmentets fleksibilitet, f er en ekstern kraft, slik som tyngdekraften, R er det euklidiske 3-rom, og H2 er Sobolev-rommet for fordelinger med kvadratisk integrerbare deriverte av orden lik eller mindre enn 2.
21. Simuleringssystem ifølge krav 16, karakterisert ved at den geometriske beskrivelsen av et hvilket som helst segment utføres gjennom en henvisning til en kurvedefinisjon som inkluderer den numeriske beskrivelsen av formen til det respektive segmentet.
22. Simuleringsystem ifølge krav 21, karakterisert ved at instruksjonene på nevnte lagringsanordning er i et objektorientert datamaskinspråk slik at - hvert opphengingspunkt er beskrevet som et objekt omfattende i det minste - - to pekere som peker til segmentene tilliggende opphengingspunktet, hvis de er tilstede, - - pekere til et hvilket som helst geometrisk objekt til hvilket opphengingspunktet er festet, - - en variabel som omfatter stillingen til opphengingspunktet, - hvert segment er beskrevet som et objekt som omfatter i det minste - - to pekere som peker mot opphengingspunktene ved hver ende av segmentet, - - to pekere som peker mot de nærliggende segmentene, hvis de er tilstede, - - en peker som peker mot et kurveobjekt som omfatter den numeriske beskrivelsen av formen til segmentet, - hver kurvedefinisjon er beskrevet som et kurveobjekt omfattende i det minste - - formparametre, - - formberegningsalgoritmer.
23. Simuleringssystem ifølge krav 22, karakterisert ved at hvert segmentobj ekt også omfatter en variabel som omfatter segmentets spenn, definert som avstanden mellom de to opphengingspunktene som det pekes mot, og en variabel omfattende segmentets lengde, målt langs tråden mellom de to opphengingspunktene som det pekes mot.
24. Simuleringssystem ifølge krav 22, karakterisert ved at hvert opphengingspunkt-objekt også omfatter en variabel som omfatter verdier som definerer tangenten(e) til segmentene som det pekes mot med opphengingspunkt-obj ektet ved stillingen til opphengingspunktet.
25. Simuleringsystem ifølge krav 22, karakterisert ved at formparametrene til kurveobj ektehe omfatter fleksibilitets- og tyngdekraftvektor, og at formberegningsalgoritmene omfatter funksjoner for å utføre geometriske beregninger basert på lengde- og spenninformasjon, opphengingspunkt-stillinger og endepunk-tangenter mottatt fra det tilsvarende segmentobj ektet og også nevnte formparametre.
26. Simuleringsystem ifølge krav 17, karakterisert ved at interaksjonen mellom et hvilket som helst fritt segment og et hvilket som helst andre objekt er beskrevet ved å innføre ytterligere opphengingspunkter som deler det nevnte frie segmentet i to frie segmenter.
27. Simuleringsystem ifølge krav 16, karakterisert ved at trådens bevegelse er beskrevet ved å bevege et opphengingspunkt basert på en inngangsinformasjon mottatt over inngangsgrensesnittet og på nytt å beregne formen og lengden til segmentene mellom tilliggende opphengingspunkter, ved å starte fra opphengingspunktet som beveges og rekursivt å gå langs trådens lengde.
28. Simuleringssystem ifølge krav 16, karakterisert ved at lengden til tråden holdes konstant ved å gjøre tilsvarende endringer i lengden til hvert segment respektivt slik at en hvilken som helst endring i lengden til det ene segmentet påvirker lengden til det følgende segmentet på rekursiv måte.
29. Simuleringssystem ifølge krav 16, karakterisert ved at oppdatering av modellen utføres bilde for bilde slik at i et første trinn innføres nye data som beskriver en endring i modellen, i et andre trinn oppdateres modellen basert på de nye dataene, og i et tredje trinn visualiseres modellen som et bilde i infografisystemet.
30. Simuleringsystem ifølge et av kravene 16-29, karakterisert ved at tråden representerer en kirurgisk sutur, og de geometriske objektene representerer vevet til en menneskekropp i et kirurgisk simuleringssystem.
31. Datamaskinprogramprodukt omfattende et program med programinstruksj oner inkorporert i et datamaskinlesbart medium, for, når de er lastet i en datamaskin, å få datamaskinen til å utføre trinnene i et hvilket som helst av kravene 1 til 15.
32. Forplantet signal, som bærer informasjon om pro graminstruksj oner i datamaskinlesbar form som, når de er lastet i en datamaskin, å utføre trinnene i et hvilket som helst av kravene 1-15.
NO20010127A 2001-01-08 2001-01-08 Fremgangsmåte og system for å simulere en tråd i datamaskinbaserte grafiske simuleringer NO313477B1 (no)

Priority Applications (6)

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
EP02716497A EP1364357B1 (en) 2001-01-08 2002-01-08 Method and system for simulation of a thread in computer graphics simulations
AT02716497T ATE321320T1 (de) 2001-01-08 2002-01-08 Verfahren und system zur simulation eines fadens in computergrafiksimulationen
DE60210055T DE60210055T2 (de) 2001-01-08 2002-01-08 Verfahren und system zur simulation eines fadens in computergrafiksimulationen
US10/250,375 US7375726B2 (en) 2001-01-08 2002-01-08 Method and system for simulation of a thread in computer graphics simulations
PCT/NO2002/000009 WO2002054370A1 (en) 2001-01-08 2002-01-08 Method and system for simulation of a thread in computer graphics simulations

Applications Claiming Priority (1)

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

Publications (3)

Publication Number Publication Date
NO20010127D0 NO20010127D0 (no) 2001-01-08
NO20010127L NO20010127L (no) 2002-07-09
NO313477B1 true NO313477B1 (no) 2002-10-07

Family

ID=19911984

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20010127A NO313477B1 (no) 2001-01-08 2001-01-08 Fremgangsmåte og system for å simulere en tråd i datamaskinbaserte grafiske simuleringer

Country Status (6)

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

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
WO2010083272A1 (en) * 2009-01-15 2010-07-22 Simquest Llc Interactive simulation of biological tissue
EP2405822A4 (en) * 2009-03-12 2015-12-23 Health Research Inc TRAINING METHOD AND SYSTEM FOR VERY LITTLE INVASIVE SURGERY
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
WO1992009965A1 (en) * 1990-11-30 1992-06-11 Cambridge Animation Systems Limited Animation
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
DE60210055D1 (de) 2006-05-11
EP1364357A1 (en) 2003-11-26
US7375726B2 (en) 2008-05-20
NO20010127L (no) 2002-07-09
US20040222993A1 (en) 2004-11-11
EP1364357B1 (en) 2006-03-22
NO20010127D0 (no) 2001-01-08
WO2002054370A1 (en) 2002-07-11
DE60210055T2 (de) 2006-11-09
ATE321320T1 (de) 2006-04-15

Similar Documents

Publication Publication Date Title
Westwood et al. VIRGY: a virtual reality and force feedback based endoscopic surgery simulator
Brown et al. Real-time simulation of deformable objects: Tools and application
Brown et al. Algorithmic tools for real-time microsurgery simulation
Borst et al. Realistic virtual grasping
Liu et al. A survey of surgical simulation: applications, technology, and education
US8485829B2 (en) System and a method for simulating a manual interventional operation by a user in a medical procedure
Bro-Nielsen et al. VR simulation of abdominal trauma surgery
Choi et al. Virtual suturing simulation based on commodity physics engine for medical learning
De Paolis Serious game for laparoscopic suturing training
LeDuc et al. Toward Modeling of a Suturing Task.
WO1996016389A1 (en) Medical procedure simulator
Wang et al. Development of a microsurgery training system
Qi et al. Virtual interactive suturing for the Fundamentals of Laparoscopic Surgery (FLS)
Jourdes et al. Visual haptic feedback for training of robotic suturing
Szekely et al. Virtual reality based surgery simulation for endoscopic gynaecology
Ayache et al. Simulation of endoscopic surgery
NO313477B1 (no) Fremgangsmåte og system for å simulere en tråd i datamaskinbaserte grafiske simuleringer
Lamata et al. Conceptual framework for laparoscopic VR simulators
Thurfjell et al. Haptic interaction with virtual objects: the technology and some applications
Radetzky et al. Visualization and simulation techniques for surgical simulators using actual patient’s data
Tai et al. Real-time visuo-haptic surgical simulator for medical education–a review
Eriksson Haptic Milling Simulation in Six Degrees-of-Freedom: With Application to Surgery in Stiff Tissue
Moore et al. The interactive medical simulation toolkit (iMSTK): an open source platform for surgical simulation
Poon et al. The Use of Three-Dimensional Dynamic and Kinematic Modelling in the Design of a Colonoscopy Simulator
McColl et al. Haptic rendering & perception studies for laparoscopic surgery simulation