1
RAPORT ŞTIINŢIFIC ŞI TEHNIC
Etapa IV (ianuarie-decembrie 2015)
Titlu proiect: Sistem pentru palpare virtuală şi training avansat, diagnostic medical şi tratament
(VIPsystem)
Contractul de finanțare nr: 2011‐3.2‐0503
Director: Conf. Univ. Dr. Dan Gheonea
REZUMAT ETAPĂ:
A patra etapă a proiectului s-a întins pe 12 luni (ianuarie‐decembrie 2015) şi a inclus patru
activități: Utilizarea dispozitivului haptic final in timp real pe modelul tumoral reconstruit
(activitatea 4.1), Implementarea în context real a simulatorului haptic în cadrul diagnosticului şi
educației medicale (activitatea 4.2), Stabilirea capabilității dar şi a limitărilor platformei de
telemedicină folosită împreună cu dispozitivul haptic şi interfața creată (activitatea 4.3) și
Participarea la congrese şi diseminarea rezultatelor obținute (activitatea 4.4).
În cadrul primei activități am continuat folosirea volumelor tumorale reconstruite de la un
număr total de 51 pacienți. Aceștia au fost supuși celor două investigații care furnizează date despre
volumul tumoral, apoi, conform protocolului deja folosit în cadrul etapei anterioare, le-au fost
adăugate datele despre elasticitatea țesutului, provenite din elastografie. Am folosit apoi un
dispozitiv haptic intermediar (interfața haptică Geomagic TouchX) în timp real împreună cu
modelul computerizat. Reconstrucția volumetrică în trei dimensiuni, pornind de la informațiile
DICOM furnizate de investigarea CT/RMN și completate cu informațiile despre elasticitate, au
fost înglobate folosind diferite tehnici de modelare informatică, iar datele au fost transmise la
distanță prin intermediul aplicațiilor de telemedicină dezvoltate, dispozitivul haptic interacționând
de la distanță cu acesta. De asemenea, a fost completat modulul de stocare securizată a
informațiilor. Am avut întâlniri bi-lunare cu studenți din cadrul Facultății de Medicină Generală a
Universității de Medicină și Farmacie din Craiova, anii III-VI, prezentându-le sistemul și
invitându-i să participe la sesiuni de testare în timp real al acestuia. Am organizat o întâlnire cu
cadrele medicale ale Universității de Medicină și Farmacie din Craiova implicate în activități
didactice în specialități clinice, unde i-am familiarizat cu modul de funcționare al sistemului,
interfața grafică și sistemul haptic propriu-zis, pentru a disemina informația în mediul academic
local. Un chestionar standardizat cu 10 întrebări a fost administrat unui număr de 90 de studenți.
Rezultatele obținute au fost valorificate prin intermediul unui articol publicat într-o revistă
cotate ISI cu factor de impact. Un manuscris științific care prezintă aplicabilitatea sistemului în
programa de instruire a unor studenți la medicină, în paralel cu cursul de gastroenterologie clasic,
este în curs de acceptare la o revistă dedicată, fiind în prezent în proces de peer review.
A4.1 Utilizarea dispozitivului haptic final in timp real pe modelul tumoral reconstruit
Am implementat dispozitivul haptic în cadrul pregătirii extra-curriculare a studenților
anului V, pe parcursul cercului studențesc de gastroenterologie. Astfel, studenții au fost
familiarizați cu aspectul interfeței cu utilizatorul, explicându-se poziționarea butoanelor, slide-
urilor și potențiometrelor virtuale în imaginea vizibilă prin HUD-ul de realitate virtuală.
Studenții au fost instruiți pe parcursul a trei ore atât în ceea ce privește introducerea datelor
în sistem, cât și în folosirea efectivă a simulatorului haptic. Le-a fost explicată pe larg funcționarea
modelului tumoral, cât și pașii necesari colectării, stocării și folosirii datelor imagistice complexe.
2
Pașii au fost considerați necesari, o înțelegere bună a sistemului fiind necesară completării unui
chestionar standardizat.
Pasul următor a fost deci elaborarea și distribuirea unui chestionar, cu scopul de a testa
ușurința în înțelegere și utilizare a sistemului de către studenți și medici rezidenți aflați în timpul
pregătirii în gastroenterologie. Astfel, s-a ținut cont de principalele tipuri de cerințe ale
utilizatorilor în ceea ce privește o interfață grafică pentru controlul unui dispozitiv haptic, și
anume:
- Gradul de corectitudine anatomică al modelului virtual
- Manevrabilitatea dispozitivului
- Ușurința în utilizare a dispozitivului haptic
- Ușurința în a deprinde mișcările necesare poziționării modelului virtual
- Ușurința în introducerea datelor
- Gradul de noutate adus de sistem pentru cursanți
În continuare, studenților li s-a cerut să completeze chestionarul cu 10 întrebări, menit să
aducă informații cuantificabile referitoare la nivelul de satisfacție, al înțelegerii și posibilităților de
îmbunătățire a sistemului. Scala de notare a cuprins exprimarea acordului sau dezacordului
subiecților în legătură cu afirmații standardizate referitoare la sistemul VIP. Doar subiecții care au
folosit sistemul ulterior unei sesiuni complete de instruire au fost incluși în evaluare.
Un număr de 90 de studenți și tineri rezidenți au completat chestionarul. Rezultatele
evaluării pot fi urmărite în tabelul următor.
Dezacord
puternic Dezacord
Parțial
de acord
De
acord
Acord
puternic
Modelul respectă dimensiunile
reale alte tumorii 0 0 0 0 90
Modelul reproduce fidel forma
tumorii 0 0 0 0 90
Modelul reproduce fidel locația
tumorii 0 0 0 0 90
Modelul este ușor de manevrat 0 0 1 2 87
Dispozitivul haptic permite
interacțiunea facilă cu modelul
virtual
0 0 5 5 80
Echipamentul de realitate
virtuală oferă o experiență
realistă
0 1 21 42 26
Sistemul este ușor de folosit 0 0 1 9 80
Interfața este ușor de folosit și
prietenoasă 0 0 0 24 66
Sistemul a oferit informații utile
despre caracteristicile tumorilor
hepatice
0 0 0 0 90
Sistemul a fost util la acumularea
de noi cunoștințe despre patologia
studiată
0 0 0 0 90
3
Nici un student nu a raportat deficiențe majore în utilizarea sistemului. Nu au fost
semnalate disfuncționalități importante ale interfeței grafice, iar sistemul de realitate virtuală a fost
bine tolerat de către subiecți.
Toți studenții intervievați au considerat sistemul util pentru acumularea de cunoștințe noi
despre patologia hepatică malignă; de asemenea, aplicabilitatea acestor informații a fost
recunoscută de către toți subiecții (90/90, respectiv 100% din lotul studiat).
Interfața a fost considerată ușor de folosit de către toți studenții, în grade diferite de
tolerabilitate; aproximativ două treimi dintre aceștia nu au avut probleme în acomodarea cu
aceasta, iar aproximativ o treime (24/90 – 26,6%) considerând interfața prietenoasă și având
probleme minime de acomodare.
Un singur respondent nu a considerat dispozitivul ușor de folosit, însă a putut folosi
interfața după o sesiune scurtă de antrenare pentru acomodare; restul acomodându-se ușor cu
acesta – 80 (88.88%) au considerat sistemul extrem de accesibil, 9 subiecți nu au întâmpinat
probleme majore.
Sistemul de realitate virtuală a fost cel mai greu tolerat de către studenți – aproximativ o
treime (21/90 – 20.33%) considerând experiența parțial realistă, un student considerând-o
artificială. Modelul tridimensional nu a putut fi asimilat în totalitate cu unul real, deoarece
majoritatea studenților percepeau forma anatomică a ficatului și configurația sa naturală, sistemul
punând la dispoziție informația elastografică pe suprafața randată, aportul informațional derivat
din această vizualizare fiind considerat superior de către utilizatorii mai avansați (68 dintre
respondenți – 75.55%).
Interacțiunea cu modelul a fost considerată facilă, acesta fiind ușor de manevrat de către
toți respondenții – aceștia au fost de acord sau în total acord cu această afirmație.
De asemenea, redarea ficatului în configurație anatomică inițială și raportarea acestuia la
structurile anatomice adiacente, fiind bazată pe imaginile furnizate de imagistica tip CT/RMN, a
fost satisfăcătoare pentru toți subiecții.
A4.2 Implementarea în context real a simulatorului haptic în cadrul diagnosticului şi
educaţiei medicale
Dispozitivul haptic Geomagic TouchX
Dispozitivul haptic Geomagic TouchX (anterior Sensable Phantom Desktop) oferă o
soluție desktop accesibila și este ideală pentru specialiștii care efectuează anumite tipuri de
cercetare haptică.
TouchX oferă poziționare precisă ca
intrare și feedback de ieșire de înaltă fidelitate.
Design portabil, amprenta compacta, o interfața
care asigură o instalare ușoara și utilizare simplă.
Pentru modelare și design 3D, instruire
chirurgicală, asamblare virtuala și alte proceduri
care necesită un grad mare de precizie, TouchX
este ușor de folosit și este o opțiune accesibilă.
Dispozitivul haptic Geomagic Touch X permit utilizatorului să simtă obiecte modelate 3D
prin exercitarea unor forțe de răspuns asupra mâinii care acționează creând astfel o experiență
foarte apropiată de realitate. Durabilitatea, accesibilitatea și precizia fac ca dispozitivul haptic
Touch X să fie ideal pentru aplicații de cercetare, comerciale și medicale, în special când
dimensiunea și portabilitatea contează.
4
Specificatiile Tehnice pentru Geomagic TouchX:
Force feedback workspace ~6.4 W x 4.8 H x 4.8 D in > 160 W x 120 H x 120 D
mm
Footprint (Physical area device base
occupies on desk)
5 5/8 W x 7 1/4 D in ~143 W x 184 D mm
Weight (device only) 6 lbs 5oz
Range of motion Hand movement pivoting at wrist
Nominal position resolution > 1100 dpi ~ 0.023 mm
Backdrive friction < 0.23 oz (0.06 N)
Maximum exertable force at nominal
(orthogonal arms) position
1.8 lbf (7.9 N)
Continuous exertable force (24 hrs) 0.4 lbf (1.75 N)
Stiffness X axis > 10.8 lbs / in (1.86 N / mm)
Y axis > 13.6 lbs / in (2.35 N / mm)
Z axis > 8.6 lbs / in (1.48 N / mm)
Inertia (apparent mass at tip) ~0.101 lbm (45 g)
Force feedback x, y, z
Position sensing [Stylus gimbal] x, y, z (digital encoders)
[Pitch, roll, yaw (± 3% linearity potentiometers)
Interface Parallel port and FireWire® option*
Supported platforms Intel or AMD-based PCs
OpenHaptics®Toolkit compatibility Yes
Applications Selected Types of Haptic Research,
FreeForm®Modeling™system, Geomagic Sculpt
system
Geomagic FreeForm
Geomagic Freeform oferă profesioniștilor din domeniul medical și producătorilor de
dispozitive/implanturi un set de unelte pentru a dezvolta implanturi special pentru pacienți, modele
de studiu, ghiduri chirurgicale personalizate și orteze. Beneficiind de CT și de scanari de date 3D,
designer pot crea repede și precis modele organice și le pot pune în producție în timp record,
salvând timp și mai ales vieți.
Geomagic Freeform are o abilitate unică de a manevra voxeli, poligoane, subdiviziuni și
solide NURBS și suprafețe într-un mediu de dezvoltare consistent. Acesta îți oferă posibilitatea de
a folosi reprezentația corectă pentru job-ul potrivit, oferindu-ți mai multe posibilități foarte rapid.
Formatele robuste de import și export ale Freeform-ului permit integrarea modelelor traditionale
CAD.
Pentru simulările efectuate în programul Geomagic Freeform s-a folosit un fisier de tip “stl”.
5
Se observă zona palpată - deformată elastic.
Se observă zona palpată - a revenit la forma inițială.
Experiment cu un fișier de tip „obj”
Se observă prezența cursorului pentru
dispozitivul haptic - Geomagic TouchX
Cursorul cu ajutorul căruia s-a efectuat
palparea este un obiect care permite
deformarea.
Se observă prezența cursorului și a
dispozitivului haptic –Geomagic TouchX
6
Common Layer Interface (CLI) – este un format internațional pentru date geometrice de
intrare pentru sisteme de fabricație a modelelor bazate pe Layer Manufacturing Technologies
(LMT). Este potrivit pentru sisteme ce creează modele de bază strat cu strat.
Fișiere sursă în format OBJ
Fişierele OBJ sunt asociate cu formatul WaveFront 3D Object și este un format text dedicat
rețelelor triunghiulare suportat de multe aplicații software 3D. Nu necesită niciun fel de antet, dar
de obicei aceste fișiere încep cu un comentariu. Liniile de comentarii încep cu (#) . Spațiul și liniile
libere pot fi adăugate pentru formatarea textului. Următoarele cuvinte cheie pot fi incluse în cadrul
unui fișier OBJ. În această listă, cuvintele cheie sunt aranjate pentru tipurile de date, fiecare fiind
urmate de o scurtă descriere.
Cele mai des întâlnite fișiere OBJ conțin numai fețe poligonale. Pentru a descrie un
poligon, fișierul descrie prima dată fiecare punct cu cuvântul cheie “v”, apoi descrie fețele cu
cuvântul cheie “f”. Linia unei comenzi pentru fețe conține o enumerație de puncte din fața
poligonului, ca indici bazați pe 1 în lista de puncte, în ordinea aparută în fișier. Ca și exemplu,
următorul fișier descrie un triunghi:
# Simple Wavefront file
v 0.0 0.0 0.0
v 0.0 1.0 0.0
v 1.0 0.0 0.0
f 1 2 3
Este de asemenea posibil ca indicii de referință să fie negativi. Acest fapt face ca descrierea
punctelor într-o fața să fie ușor de descris, fără a necesita scrierea unei liste mari de puncte și indicii
lor. În această masură, comenzile “v” și “f” pot fi intercalate.
v -0.500000 0.000000 0.400000
v -0.500000 0.000000 -0.800000
v -0.500000 1.000000 -0.800000
v -0.500000 1.000000 0.400000
f -4 -3 -2 -1
Fișierele OBJ nu conțin definiții de culoare pentru fețe, deși ele pot face referire la materiale
care sunt stocate separat într-o librărie de materiale. Librăria de materiale poate fi încărcată
utilizând cuvântul cheie “mtllib”. Librăria de materiale conține definițiile pentru valorile RGB ale
material's diffuse, ambient și specular colors, împreuna cu alte caracteristici precum specularity,
refraction, transparency.
Fișierele OBJ fac referință la materiale folosind cuvântul cheie „usemtl”. Toate fețele ce
urmează după acest keyword le sunt atribuite acest material, până când următoarea comanda
„usemtl” este întâlnită.
Fețele și suprafețele pot și atribuite într-un grup folosind cuvântul cheie „g”. Acesta este
folosit pentru a crea sub-obiecte convenabile pentru a edita sau anima modele 3D. Fețele pot
aparține mai multor grupuri.
Fișiere sursă în format STL
Un fișier STL constă într-o listă de date de fațetă. Fiecare fațetă este unic identificată de o
unitate normală (o linie perpendiculară la triunghi cu lungimea de 1.0) și de trei vertecși (colțuri).
7
Normala și fiecare vertex este reprezentat de trei coordonate fiecare, astfel este un total de
doisprezece numere stocate pentru fiecare fațetă.
Orientarea fațetelor
Fațetele definesc suprafața unui obiect tridimensional. Astfel, fiecare fațetă este o parte din
limita dintre interiorul și exteriorul obiectului. Orientatea fațetelor (care este în exterior și care în
interior) este specificată în mod redundant în două feluri care trebuie să fie consistente. Prima,
direcția normalei este în exterior. A doua, vertecși sunt listați în sensul acelor de ceasornic când se
privește obiectul din exterior (right-hand rule).
Exemplu structura fisier .stl
000001 solid ascii
000002 facet normal 4.206248e-002 -5.926095e-004 9.991148e-001
000003 outer loop
000004 vertex 1.402310e+000 0.000000e+000 4.998023e+001
000005 vertex 1.401753e+000 -3.950587e-002 4.998023e+001
000006 vertex 2.802404e+000 -7.898065e-002 4.992124e+001
000007 endloop
000008 endfacet
OpenHaptics
Toolkit-ul OpenHaptics 3.4 dezvoltat de compania Geomagic include interfața
dispozitivului haptic (HDAPI), interfața bibliotecii haptice (HLAPI), și alte interfețe cât și
programe utilitar și drivere pentru diferite dispozitive haptice dintre care au fost folosite în cadrul
experimentelor Geomagic TouchX și Phantom Omni.
Interfața HDAPI oferă acces de nivel scăzut la dispozitivele haptice, permite
programatorului să redea forțele direct, oferă control asupra configurării comportamentului de
rulare al driver-ului și oferă caractereristici ajutătoare convenabile și ajutor în depanare.
Interfața HLAPI prevede redarea haptica de nivel înalt și este proiectat pentru a fi familiar
programatorilor de aplicații OpenGL. Permite reutilizarea codului existent OpenGL și simplifică
sincronizarea haptică și a firelor de execuție (threads). Caracteristici - OpenHaptics v3.4
- adâncimea de pătrundere - monitorizare continuă a adâncimii de penetrare de la
suprafață, la punctul de contact și setarea parametrilor de forță corespunzător. Ideal
pentru simulări, cum ar fi injecția epidurală, care simulează sentimentul unui ac care
trece prin diferite nivele de țesut.
- suport pentru fișiere standard 3D - încarcă fișiere 3D cu textură dintr-o singură
comandă.
- suportul pentru fișierele 3DS, OBJ, STL și PLY elimină nevoia de a mai converti
fișierele într-un fișier special înainte de programare.
8
- adjust torque parameters on 6DOF devices - Make individual adjustments to the torque
parameters for pitch, roll, and yaw on the gimbal.
- ajustarea parametrilor de cuplu la dispozitivele 6DOF – ajustarea individuală a
parametrilor de cuplu pe ghimbat pentru pas, rotire și girație.
- utilizarea haptică pentru a poziționa un dispozitiv medical în poziția corectă.
- definirea unui model de forță propriu.
- setarea diferitelor proprietăți ale materialelor depinzând de adâncimea de penetrare.
Forme
hlBeginShape
Următoarele comenzi de geometrie vor fi trimise către randarea haptică ca și parte a formei
până când funcția hlBeginShape este apelat. Primitivele geometrice pot fi trimise către randarea
haptică doar dacă ele sunt specificate în interiorul unui bloc hlBeginShape()/hlEndShape().
Gruparea primitivelor geometrice este importantă din două motive:
- Evenimentele de callback vor raporta id-ul primitivei geometrice atinse.
- Randarea haptică a primitivelor geometrice care se mișcă dinamic este îndeplinită prin
privirea diferențelor cadru cu cadru bazată pe id-ul formei.
Sintaxa : void hlBeginShape(HLenum type, HLuint shape)
Argument Definiție
tip Tipul de formă, pentru o lista de tipuri de forme suportate.
forma Id-ul formei specificate returnate la un apel anterior al funcției
hlGenShapes().
Utilizat înainte de specificarea geometriei și specificarea funcției de randare haptica.
hlEndShape
Completează forma specificată de ultimul apel al funcției hlBeginShape(). Geometria,
materialele, transformarile și alte stări ale formelor sunt capturate și trimise către randarea haptică.
Sintaxa: void hlEndShape()
Utilizat dupa un apel al funcției hlBeginShape().
Exemplu:
hlBeginShape(HL_SHAPE_FEEDBACK_BUFFER, myShapeId);
glBegin(GL_TRIANGLES);
glVertex3f(-1,-1,0);
glVertex3f(-1,1,0);
glVertex3f(1,1,0);
glEnd();
hlEndShape();
Erori: HL_INVALID_OPERATION - dacă nu se află în interiorul unui bloc
hlBeginFrame()/hlEndFrame() sau hlBeginShape()/hlEndShape().
Materiale și proprietațile suprafețelor
hlGetMaterialfv
La proprietățile materialului haptic curent pentru forme.
Sintaxa: void hlGetMaterialfv(HLenum face, HLenum pname, HLfloat *param.
Utilizat pentru a regăsi proprietățile materialelor care vor fi folosite pentru randări haptice.
9
Exemplu:
hlGetMaterialfv(HL_FRONT, HL_STIFFNESS, &stiffness);
Erori:
• HL_INVALID_ENUM - dacă argumentele face sau pname nu din lista de valori listate.
• HL_INVALID_OPERATION - dacă nu există o randare haptica.
hlTouchModel
Inițializează modelul de atingere specifice formelor ca și forme de contact sau constrângeri.
Sintaxa: void hlTouchModel(HLenum mode)
Argument Descriere
Model de contact sau constrângere. Pentru o lista de valori de mod mode suportate.
Utilizat înainte de a specifica o formă pentru a seta daca este o suprafață de contact care
rezistă străpungerii sau daca este o constrângere care va forța dispozitivul haptic la suprafață
formei.
Exemplu: hlTouchModel(HL_CONTACT);
Erori:
• HL_INVALID_ENUM - dacă mode nu este una din valorile listate.
• HL_INVALID_OPERATION - daca nu există o randare haptică.
Proxy
hlProxydv
Setează proprietățile proxy-ului.
Syntax: void hlProxydv (HLenum pname, const HLdouble *params)
Argument Definition
pname Numele parametrului care trebuie setat pentru o lista de pnames suportată.
Utilizat pentru a seta proprietățile proxy-ului. Proxy-ul este un obiect virtual care urmărește
dispozitivul haptic dar este constrâns de primitivele geometrice. Forța trimisă către dispozitivul
haptic este parțial bazată pe pozițiile relative ale dispozitivului haptic și a proxy-ului. Când
rezoluția proxy-ului este activată, motorul de randare haptică actualizează transformarea proxy
atunci când dispozitivul haptic se mișcă și primitivele geometrice se schimbă. Utilizatorii pot
dezactiva rezoluția proxy pentru a-și folosii algoritmii proprii.
Exemplu:
hlBeginFrame();
hlDisable(HL_PROXY_RESOLUTION);
HLdouble newProxyPos[] = {3, 4, 5};
hlProxydv(HL_PROXY_POSITION, newProxyPos);
hlEndFrame();
Erori:
• HL_INVALID_ENUM - dacă pname nu este una din valorile listate.
10
Amortizor
• HL_INVALID_OPERATION - daca nu este activ niciun context de randare sau daca nu este
într-un bloc hlBeginFrame()/hlEndFrame().
Algoritmul folosit utilizează calculul forțelor din librăriile haptice existente. Din acest
motiv algoritmul realizează detecția coliziunilor și trimite ca parametrii toată informația necesară
pentru calculul forțelor în același mod cum este făcut și pentru calculul meșelor poligonale.
OpenHaptics permite utilizatorilor sa definească forme proprii folosind o funcție callback
care este apelată din fiecare frame al firului de execuție (thread) aparținând buclei servoloop înainte
de calculul forțelor care sunt trimise spre dispozitivul haptic.
Prototipul acestei funcției intersect de callback este următorul:
bool intersectSurface(const HLdouble startPt[3], const HLdouble endPt[3],
Stuctura programului HLAPI
HLdouble intersectionPt[3], HLdouble intersectionNormal[3], HLenum *face, void *userdata);
Algoritmul este implementat ca o funcție de callback care răspunde funcției
intesectSurface, întoarce coordonatele punctului de contact P, intersecția cu vectorul normal N și
Pozitia Proxy
Arc
Suprafata Obiectului
Pozitia anterioara a
dispozitivului Haptic
Noua pozitie a
dispozitivului Haptic
11
caracteristicile suprafeței de contact. OpenHaptics calculează forțele bazat pe caracteristicile
materialului haptic asociat cu forma haptică - frecare static și dinamică, forța de amortizare și forța
elastică permițând utilizatorului să simtă contactul și forța de frecare dintre cursor și suprafețele
palpate.
Asemănător cu calculele făcute pentru mesele poligonale, setând fețele haptice ca suprafețe
de contact - HL_FRONT, HL_BACK sau HL_FRONT_AND_BACK- algoritmul permite
utilizatorului să simtă contactul și forțele de frecare dintre dispozitiv și o față sau două ale
obiectului palpat.
Daca nu există coliziuni OpenHaptics salvează poziția proxy-ului ca fiind poziția actuală a
dispozitivului haptic. Dacă însă există o coliziune, poziția proxy-ului va fi fixată pe suprafața
punctului de contact P și sunt calculate forțele care vor fi trimise spre dispozitivul haptic. Pentru a
detecta coliziunea cu suprafețe multiple este apelată funcția intersectSurface pentru fiecare formă
haptică definită. Aceste apeluri multiple sunt făcute în fiecare servo–fereastră la o frecvență de
1KHz. Dacă funcția intersectSurface returnează TRUE înseamnă că a apărut o coliziune cu forma
curentă altfel returnează FALSE.
Algoritmul trebuie executat doar odata pentru fiecare fereastră haptică având în vedere ca
scopul este să găsim primul voxel non-transparent de-a lungul liniei de segment de la Start la End.
Cel de-al sașelea argument (*userdata) al funcției intersectSurface este folosit pentru a trimite
forma care va fi evaluată la fiecare apel al funcției.
Algoritmul de detecție al coliziunilor este executat doar o dată în timpul apelului primei
forme din cadrul unei servo ferestre (cadru). Dacă este detectată o coliziune, algoritmul va
determina forma/suprafața de interacțiune comparând valoarea densității voxel-ului față de plaja
de valori luată de funcția de transfer. După primul apel în cadrul unei ferestre servo nu mai este
nevoie încă o data de execuția algoritmului de detecție al coliziunilor.
Bazat pe valoarea parametrului *userdata se verifică dacă funcția întoarce valoarea
booleană TRUE când apelul corespunde unei coliziuni și FALSE în celelate cazuri. În acest fel,
funcția intersectSurface din cadrul OpenHaptics este apelată de mai multe ori (o dată pentru fiecare
formă), dar algoritmul de detecție al coliziunilor este executat doar o dată pentru fiecare fereastra
servo, obtinând astfel un timp constant de execuție independent de numărul de forme/suprafețe.
Simularea forțelor cu OpenHaptics
Simulările efectuate în OpenHaptics – ficatul este specificat în format OBJ. Se obține feedback
variabil in toate simulările efectuate.
12
Opțiune activată: HL_HAPTIC_ADAPTIVE_VIEW_PORT
Mediul de lucru SOFA
Framework-ului SOFA (acronim pentru Simulation Open-Framework Arhitecture) [5]
permite simulări software și oferă suport pentru deprinderea aptitudinilor în domeniul medicinei.
Chiar dacă soluțiile actuale pentru aplicațiile medicale reprezintă o tendință importantă în
instruirea medicală, orientarea către interacțiunea cu alte simțuri decât cele folosite deja au adus
mari probleme dezvoltatorilor. Dezvoltarea aplicațiilor haptice care emulează simțul tactil a
introdus probleme referitoare la capacitățile de deformare, de suprafețe și de volum. SOFA
reprezintă un framework de simulare și dezvoltare pentru aplicațiile medicale. Aplicațiile SOFA
au o structură arborescentă de tip graf, definită prin meta-limbajul de marcare XML. De asemenea
se poate realiza un nivel mai detaliat prin definirea scenelor folosind limbajul de programare C++,
paradigma de programare orientată pe obiecte. Este permis algoritmilor dezvoltați și implementați
de către echipe independente să interacționeze în cadrul aceluiași mediu prin intermediul
aplicațiilor de tip plugin, micșorând astfel timpul de dezvoltare.
Folosind o arhitectura avansata a software-ului SOFA permite:
- Inițializarea unuia sau mai multor dispozitive haptice;
- Proiectarea scenei și a camerei;
- Crearea de simulări complexe cu noi algoritmi incluși;
- Modificarea parametrilor de simulare: comportamentul deformabil, constrângeri, coliziuni, forțe;
- Parsarea fișierelor geometrice din pachetele de animații;
- Maparea forței și a parametrilor de rigiditate pentru obiectele din scena;
- Redarea răspunsului la interacțiuni;
- Construirea de modele complexe.
Simularea interacțiunii dinamice dintre obiecte folosește ecuații de rezolvare. SOFA se
bazează pe mai multe concepte inovatoare cum sunt reprezentarea multi-model și SOFA mapping.
Cele mai multe componente de simulare: modelele deformabile, coliziunile între modele,
instrumente, pot avea mai multe reprezentări corelate printr-un mecanism de mapare. Fiecare
reprezentare poate fi apoi optimizată pentru o anumită activitate - de exemplu, detectarea
coliziunii.
Considerând modelul deformabil al ficatului prezentat în figura de mai jos, acesta este simulat
folosind trei modele diferite. Primul model se referă la reprezentarea și comportamentul intern
mecanic al ficatului și este determinat utilizând metoda elementelor finite. Geometria acestui
model este optimizată pentru calculul forțelor interne cu ajutorul unui număr redus de tetraedre
pentru viteză și precize. Cel mai bun compromis între precizie și viteză în detectarea coliziunilor
solicită un alt model geometric, în timp ce vizualizarea realistă necesită cu siguranță o geometrie.
13
Cel de-al doilea model se referă la detectarea coliziunilor și forțele de răspuns, în timp ce un al
treilea model este dedicat procesului de redare vizuală.
Sofa - Maparea modelului pentru ficat
Sofa - Modelul nivelului de coliziune
Sofa – Modelul corespunzător redării vizuale
Platforma SOFA oferă un mediu unitar pentru implementarea în cadrul simulărilor pentru
algoritmii de simulare a coliziunilor, algoritmii de deformare, precum și simularea forțelor de
răspuns. Ea reprezintă un mediu propice pentru implementarea și testarea algoritmilor și metodelor
în cadrul simulărilor, centrul de interes nefiind pe calitatea interacțiunii cu scena în timp real, ci
pe capacitatea înregistrarii și redării în timp real.
Folosirea forțelor de răspuns în SOFA
Modelul corespunzătoare SOFA este un set de componente conectate la un nod comun
numit scenegraph. Nodurile de tip scenegraph nu sunt noduri de simulare; fiecare componentă
este responsabil pentru un set redus de sarcini implementate cu ajutorul funcțiilor virtuale într-o
abordare orientată pe obiecte.
Conectivitatea care se referă la tetraedru este stocată în TetrahedronSetTopologyContainer
și este transmisă altor componente, cum ar fi TetrahedralCorotationalFEMForceField, care
acumulează forță pe baza elementelor finite. Un număr arbitrar de funcții de tip forță pot fi atașate
la nodul scenegraph, cum ar fi SpringForceField, care acumulează forțele generate de suprafața
membranei externe a ficatului și ConstantForceField, care se acumulează forțe externe la un
anumit subset de noduri de simulare (de exemplu presiunea exercitată de diafragma asupra
ficatului). FixedConstraint este folosit pentru a anula deplasările particulelor. Fiecare componentă
poate interoga nodul mamă pentru a avea acces la starea locală și topologia. Algoritmi nivel înalt,
cum ar fi integrarea de tip timp, sunt implementați cu ajutorul șablonului de proiectare de tip
vizitator care permite parcurgerea structurii de date care reprezintă modelul ficatului și forțele de
răspuns atașate acestuia.
14
Funcția MeshLoader este folosită pentru a citi topologia și geometria din cadrul fișierului
XML de tip scenă (format .scn). Coordonatele x, y ale nodurilor și toți ceilalți vectorii sunt stocați
în cadrul stării obiectului - MechanicalState, care este componenta de bază a modelului mecanic.
Sofa – forța de tip Spring
Sofa – forța de tip element finit
Acest tip de proiectare este foarte modulară deoarece componentele sunt independente una
de cealaltă. Pentru eficiență, MechanicalState conține vectorii de stare ai tuturor nodurilor de
simulare pentru obiectul ficat, pentru a evita apeluri consecutive ale funcțiilor virtuale.
Dimensiunea vectorului este dată de numărul de noduri și fiecare intrare vector are dimensiunea
tipului de nod. Se folosesc clase parametrizate C++ pentru a evita redundanță între tipurile scalare
(float, double) și între tipuri de noduri (particule, cadre sau coordonate generalizate). Toate
nodurile unui vector au același tip, cunoscut la compilare, pentru a permite optimizări. Nodurile
folosite pentru simulare sunt păstrate în diferite stări atașate la diferite noduri scenegraph, eventual
legate de forțele de interacțiune.
Mai multe clase care reprezintă forțele sunt folosite în SOFA, inclusiv forțe pentru
reprezentarea volumetrică (tetraedre și hexaedre) sau de suprafață; obiecte deformabile utilizând
reprezentări de tip hiperelastic au fost de asemenea utilizate. Diferitele tipuri de forțe elastice
permit modelarea ușoară și rapidă a deformațiilor, iar pentru obiectele rigide, componentele
principale sunt gradele de libertate și matricea de masă care conține inerția obiectului. Suprafețele
sunt aplicate sub-obiectelor folosind maparea.
Scenele pot fi construite procedural folosind componenta SOFA-Modeller sau citite din
fișiere XML al căror format este prezentat mai jos. Vizualizare interactivă este realizată folosind
OpenGL, Ogre sau OpenSceneGraph. Secvențele de fișiere care se referă la geometrie sunt
15
exportate, pentru a crea imagini și clipuri video. O caracteristică interesantă a scenelor de tip graf
este capacitatea lor de a fi încărcate, respectiv salvate din, respectiv în fișiere text.
<?xml version="1.0"?>
<Node name="scene" showVisualModels="1" showBehaviorModels="1"
showCollisionModels="1"
showMappings="0" showForceFields="0" >
<DefaultPipeline name="collisionPipeline" />
<BruteForceDetection name="broadPhase" />
<NewProximityIntersection name="narrowPhase" />
<DefaultContactManager name="contactManager" response="default" />
<Node name="rigid" >
<EulerSolver name="eulerSolver" />
<MechanicalState template="Rigid" name="rigidDofs" position="0 0 0 0 0 0 1" />
<UniformMass template="Rigid" name="rigidMass" />
<Node name="contactModel" >
<MechanicalState template="Vec3d" name="sphereCenters" position="0 0 0" />
<SphereModel template="Vec3d" name="spheres" fileSphere="mesh/liver.sph" />
<RigidMapping name="sphereMapping" input="@../rigidDofs" output="@sphereCenters" />
</Node>
</Node>
<Node name="deformable" >
<RungeKutta4Solver name="rungeKutta4Solver" />
<MechanicalState template="Vec3d" name="particleDofs" position="2 0 0 3 0 0" />
<DiagonalMass template="Vec3d" name="particleMasses" massDensity="1" />
<SphereModel template="Vec3d" name="paricleSpheres" />
<SpringForceField template="Vec3d" name="internalForces" />
</Node>
<SpringForceField template="Vec3d" name="contactSpring"
object1="rigid/contactModel/sphereCenters" object2="deformable/particleDofs" />
</Node>
Integrarea dispozitivelor haptice în scenele SOFA
Este utilizat un sistem foarte simplu de cuplare, prezentat în figura următoare. Cuplarea
este directă, simularea va juca rolul unui controlor într-o buclă deschisă.
Pentru detectarea coliziunilor și forța de răspuns, răspunsul de contact rapid este furnizat
folosind constrângeri cu frecare și se bazează pe sub-zone definite pentru suprafață ficatului. Este
ilustrată o simulare în timp real care implică contacte între instrumente chirurgicale reprezentate
cu ajutorul dispozitivelor haptice și ficat. Feedback-ul haptic, de fapt mișcarea instrumentului este
controlat cu ajutorul unei interfețe haptice. SOFA include drivere pentru diferite interfețe haptice
și oferă algoritmi de randare haptice. S-a proiecat un formalism generic pentru rezolvarea
16
interacțiunilor între diverse dispozitive medicale și structuri anatomice, precum și pentru
calcularea redării haptice asociate.
Pentru specificarea modelelor specifice interacțiunilor se folosesc mecanisme virtuale
(pentru obiecte deformabile) și sunt rezolvate printr-un proces bazat pe constrângeri. Cu această
abordare, este descris comportamentul specific al diverselor dispozitive medicale în timp ce depind
de o metodă unică pentru rezolvarea interacțiunile și calcularea feedback-ului haptic. Dinamica
obiectelor virtuale este determinată la rata scăzută în simulare și forțele de interacțiune mecanice
sunt modelate și rezolvate cu ajutorul constrângeri. Această reprezentare include (a) o măsură
fizică întemeiată de cuplarea mecanică dintre diferitele interacțiunile și (b) un set de momente
cinematice care surprind comportamentul interacțiunile modelate cu ajutorul legilor de
constrângere.
Metoda de palpare a ficatului folosește un concept nou: hărți dinamice de forță și o
îmbunătățire cu privire la algoritmul de redare haptic pentru calcularea rigidității [6]. Metode
numerice pentru soluții aproximative a ecuatiilor cu derivate parțiale, cum ar fi metoda elementului
finit (FEM) au câștigat teren în unele simulări interactive. Un API generic care oferă modelarea
algoritmilor pentru țesuturile moi este Haptics3D (H3D) [7]. Principalul avantaj al H3D este
capacitatea de a crea prototipuri rapide făcându-l ușor pentru dezvoltator de a gestiona atât grafica
3D și redarea haptic. Doi factori sunt importanți pentru țesuturile 3D deformabile: proprietățile de
suprafață ale țesuturilor și rigiditatea. Primul definește proprietățile vizuale și haptice la atingere,
în timp ce al doilea este parte a algoritmului de deformare, care oferă vizual, precum și feedback-
ul în timpul interacțiunii cu țesutul prin palpare.
Pentru a simula proprietăți de rigiditate diferite pentru țesutului ficatul este suprapus peste
algoritmii H3D de randare haptică o rețea hexagonală de tip hipergraf. Deformarea vizuală a
țesutului depinde de coordonatele curente și forța aplicată pe suprafața. Algoritmul de deformare
vizual sub platforma H3D folosește o funcție Gauss. Forța de răspuns este calculată de la modelul
haptic, având în vedere distanța de penetrare, constanta de deformare elastică, precum și doi
parametri ai nodului de deformare: rigiditate și amortizare. Un factor de amortizare mare înseamnă
că elasticitatea țesutului pentru punctul curent este redusă.
Bazându-se pe modelul de redare haptic hipernodul asociat cu fiecare nod al modelului
poligonal pentru a stoca valori care vor fi ulterior interpretate ca proprietăți de rigiditate al țesutului
pe baza patologiei (de exemplu, locație și mărimea țesutului chistic). Pentru fiecare hipernod al
hipergrafului sunt atașate valori care vor fi interpretate ca valori de rigiditate.
Aceste valorile au fost determinate în faza de modelare 3D pentru fiecare pacient. Au fost
generate pentru a fi folosite în cadrul simulării mai multe modele hepatice cu diferite stări de
evoluție a bolii. Aceste modele vor fi folosite pentru a pregăti studenții pentru a diagnostica
patologii hepatice prin palpare.
Concluzii A fost dezvoltat un simulator software pentru chirurgia hepatică care permite atât o
planificarea prechirurgicală, precum și formarea viitorilor medici cu privire la anatomie și
afecțiunile ficatului. Pentru aceasta a fost realizată o proiectare tridimensională (3D) a ficatului și
au fost adăugate proprietăți țesuturilor moi cu scopul de a avea un simulator chirurgical cât mai
realist care să furnizeze un răspuns complet și complex la palpare cu ajutorul dispozitivelor
GeoMagic Touch X si Phantom Omni. S-a evidențiat nevoia acută de astfel de simulator în
medicină în general, și în chirurgie în special, precum și avantajele sale față de metodele
17
tradiționale de învățare. Accentul a fost pus pe pe realitate virtuala și utilizarea de feedback haptic
pentru a îmbunătăți realismul simulatorului.
A4.3 – Stabilirea capabilității dar şi a limitărilor platformei de telemedicină folosită împreună cu
dispozitivul haptic şi interfața creată
Aplicația VIP propune un sistem de autorizare
prin cont si parola administrabil de către
operatorii cu drept de administrator
înregistrați in aplicație. Contul este transmis
către server in mod criptat după standardele
moderne.
Aplicația este construita in mod
WebApplication, propune un meniu de
funcționalități cu deschidere dinamica in
segmentul din dreapta.
Zona de administrare este permisa doar
operatorilor cu drept de administrare in
aplicație. Acest sector presupune segmentul
de unde aplicația poate fi configurata sa
funcționeze pe anumiți parametrii doriți,
aceștia pot fi schimbați la orice moment in
funcție de necesitățile administratorilor.
Zona medical oferă nomenclatoare spre
administrare cu privire la diagnosticul
pacienților dar si cu privire la markerii folosiți
in aplicație.
Nomenclator diagnostice presupune
funcționalitate de adăugare / modificare /
ștergere / filtrare / ordonare informații.
Nomenclator markeri presupune funcționalitate
de adăugare / modificare / ștergere / filtrare /
ordonare informații.
18
Zona Sistem prespune acele segmente de
control cu privire la partea tehnica a aplicației
(aici nu configuram nimic medical), acest
segment trebuie in mod normal accesat de
persoane ce dețin know-how IT.
Aplicația este prevăzută cu o interfață capabilă
sa colecteze un conținut dinamic cu privire la
stocare. Astfel, la orice moment poate sa fie
definiți un nou mediu de stocare local/rețea care
va fi considerat unitar alături de alte definiții de
stocare.
Aplicația propune un panou de control ce
indica modul in care aplicația funcționează.
In partea operaționala a aplicației avem o baza
de date cu pacienții înregistrați in sistem. Exista
un sector de căutare după anumite criterii.
Sistemul întoarce un număr predefinit de
rezultate pe baza căutărilor având ca scop
performanta sistemului in a nu aduce prea
multe informații in lista rezultata si astfel sa
fie încărcata memoria calculatorului. Lista
pacienților propune funcționalități: detaliu /
adăugare / editare / ștergere / ordonare / filtrare
Orice pacient inregistrat in sistem are o fisa in
care dispunem de toate informatiile colectate in
sistem fata de acesta:
Informații adiționale; Adrese; Diagnostice;
Vizite; Sesiuni.
19
In sectorul de informații adiționale putem
alcătui o serie de câmpuri care sa identifice
mai bine clientul sau după care ulterior se pot
produce căutări.
Orice pacient ii se poate inregistra una sau mai
multe adrese.
In fisa pacientului putem desemna un istoric
de diagnostice, o descriere a acestuia precum
si data, respectiv autorul diagnosticului.
Tot aici avem un istoric cu fiecare vizita pe care
pacientul a avut-o in cadrul sistemului nostru,
medicul autor ce a ținut vizita pacientului, data
precum si informații adiționale.
In cadrul fisei, avem un istoric de sesiuni
media. Aici pot fi catalogate diverse fișiere
media care au fost efectuate pacientului si pe
baza cărora au fost trasate diagnostice.
In orice moment poate sa fie definita/încărcata
o noua sesiune media. Limita acestora fiind
data doar de capacitatea de stocare informații al
serverului din punct de vedere hardware.
Bibliografie
1. Silvio H. Rizzi Cristian J. Luciano P. Pat Banerjee - Haptic Interaction with Volumetric Datasets Using Surface-
based Haptic Libraries -, Dept. of Mech. & Ind. Eng., Univ. of Illinois-Chicago, Chicago, IL, USA DOI:
10.1109/HAPTIC.2010.5444648 Conference: Haptics Symposium, 2010 IEEE Source: IEEE Xplore
20
2. SensAble Technologies, Inc. (2008): OpenHaptics Toolkit version 3.0 Programmer’s Guide.
http://sivirt.utsa.edu/Documents/Manuals/Open%20Haptics%20API.pdf
3. (Sensable, 2015) - Sensable OpenHaptics, Access date October, 2015, from Sensable site:
http://www.sensable.com/products - openhaptics - toolkit.htm
4. (Sensegraphics, 2015) - Sensegraphics H3D, Access date November, 2015, from Sensegraphics site:
http://www.h3dapi.org/
5. (SOFA, 2015) - SOFA, Access date November, 2015, from site: www.sofa-framework.org
6. C. Bogdan, F. G. Hamza-Lup, D. M. Popovici, A. Seitan, “Liver Pathology Simulation: Algorithm for Haptic
Rendering and Force Maps for Palpation Assessment,” Medicine Meets Virtual Reality (MMVR 2013), San Diego,
California, USA
7. APIs: H3D - h3d.org, Access date September, 2015.
A4.4 Participarea la congrese şi diseminarea rezultatelor obţinute
Publicarea unui articol într-o revistă indexată ISI, cu factor de impact – articol acceptat
Ioana-Andreea Gheonea, Costin Teodor Streba, Cosmin Gabriel Cristea, Alex Emilian Stepan,
Marius Eugen Ciurea, Theodor Sas, Simona Bondari. MRI and pathology aspects of hypervascular
nodules in cirrhotic liver: from dysplasia to hepatocarcinoma. Rom J Morphol Embryol. 2015,
56(3): In press, acceptat spre publicare (IF = 0,659) – articolul are integrat Acknowledgements
cu ID-ul si numele proiectului.
PARTICIPARE LA CONGRESE
23rd United European Gastroenterology Week, Barcelona, Spain,
Membrii ai echipei de cercetare:
Dan Ionuț Gheonea
Tudorel Ciurea
Costin Teodor Streba
Liliana Streba
Tatiana Cârțână
Mihaela Caliţa
COMEC 2015,
Membrii ai echipei de cercetare:
Nicu George Bâzdoacă
CONFERENG 2015,
Membrii ai echipei de cercetare:
Nicu George Bâzdoacă
Director proiect Conf. Univ. Dr. Dan Ionuț Gheonea
Top Related