Upload
settimio-ippolito
View
218
Download
0
Embed Size (px)
Citation preview
1
la Torre Berardino
Force renderingForce rendering&&
Collision Collision detectiondetection
Dipartimento di Ingegneria dell’Informazione Siena 18-03-03 Ore 14.00-16.00
F1
F2
2
1. Detectare le interazioni.
2. Calcolo del proxy (God-Object,…).
3. Calcolo delle forze (Modello locale+globale, dinamica e stabilità).
4. Rendering di forza (PHANToM, modello 2 porte).
5. Aggiornamento della grafica (coerenza tra visione e tatto).
Collision detection
3
2-3 Proxy & Local model…
Local Model
Proxy
4
Per attuare una forza , espressanel sistema di riferimento cartesiano(x,y,z) dell’end effector, è necessariotrasformarla in una serie di coppiedi forza equivalenti da applicareai motori (giunti rotazionali).Questa trasformazione avviene attraverso la matrice jacobiana trasposta, che è legataalla cinematica dell’interfaccia.
• feedback di forza massimo : 6.4N• 3 gradi di libertà con feedback di forza : ( )• 6 gradi di libertà di posizionamento : ( ,roll,pitch,yaw)• attrito : 0.06N• risoluzione di posizionamento : 0.02 mm• frequenza di aggiornamento della forza
210 ,, 210 ,,
F
KHz1
4 Come viene attuata una forza…
5
1 Problema della collision detection
Lo stato dell’ambiente virtuale viene modificato dalle interazioni “fisiche” che avvengono tra i diversi oggettipresenti nella scena.
F1
F2
Modello fisico OA Modello fisico OB
Calcolo delle forze
Modifica la scena
Collision detectio
n
collisione
6
Problema della collision detection
7
Collisione
Utente
1KHz
25fps
Force rendering
SI NO
F RF
0F0F
1. L’ambiente virtuale è costituito da diversi oggetti. Uno di questi è rappresentativo dell’end-effectordell’interfaccia haptica.
2. L’obiettivo è quello di sapere ad ogni ciclo di controllo (1KHz) se il PHANToM è entrato o no in collisionecon modelli 3D della scena.
Problema:Il numero di triangoli checompongono la superficie dei diversioggetti è elevato (20.000 – 40.000)pensare di eseguire un test dicollisione controllandoli unoad uno non è fattibile nelle tempistiche di controllo richieste dalPHANToM.
Problema della collision detection
8
Problema della collision detection
Come posso fare per sapere in tempo“reale” con quale triangolo ho avutocollisione
?
9
Problema della collision detection
In effetti si tratta di eseguire un
processo di ricerca in uno spazio geometrico.
Spendo del tempo in fase di pre-processing(off-line) per organizzare/strutturare lospazio di ricerca. Così rendo più efficiente ilprocesso di ricerca (on-line)
ex: QuickSort, LookUp table (sin e cos)
10
1. L’idea, allora, è quella di eseguire una scomposizionespaziale della superficie, utilizzando delle primitive geometriche, in questo caso parallelepipedi, che vengono poi organizzate in una struttura gerarchica (albero binario di ricerca) OBB-Tree (Oriented Bound Box Tree).
• Nota la posizione Hp del PHANToM, in un primo momento viene utilizzato l’OBB-Tree al fine di localizzare in quale OBB è posizionata l’interfaccia.
• Se Hp non è contenuto in alcun OBB foglia, sicuramente non vi può essere collisione, altrimenti se ilprocesso di ricerca termina su un OBB foglia, vi è la possibilità di collisione e quindi viene raffinato il processodi ricerca andando a testare tutti e solo i triangolicontenuti in tale OBB, che generalmente sono dell’ordinedelle decina il test è quindi immediato.
Organizzazione dello spazio di ricerca : OBB-Tree
OBB-Tree (Oriented Bound Box Tree)OBB-Tree (Oriented Bound Box Tree)
11
Calcolo degli OBB
1. Il centro dell’OBB è posizionato nelvalor medio .
2. Gli autovettori di unamatrice simmetrica, come quella dicovarianza C sono mutuamente ortogonali, pertanto una volta normalizzati vengono usati come baseper l’OBB.
3. Infine per dimensionare l’OBBvengono presi il min e il max delleproiezione dei vertici lungo le tre direzioni.
kji aaa ,,
1. Fissato un livello di soglia sul numero max di triangoli contenuti negli OBB foglia, si procede con unaoperazione di splitting che provvede asuddividere in modo ricorsivo gli OBB che contengono un numero di triangoli superiore alla soglia fissata.
2. Posizionamento del piano di sezione1. a metà del lato più lungo.L’OBB-Tree non è bilanciato.2. media delle proiezioni deivertici sul lato più lungo
12
Esempio di OBB-Tree
13
Anche la sfera viene utilizzata come primitiva geometrica. Il GHOST SDK utilizza questoapproccio.
14
Quello che si fa in effetti per testare l’avvenutacollisione e verificare se il segmento congiungentela posizione attuale e quella precedente del PHANToMha intersezione dapprima con gli OBB e poi con uno deitriangoli.
Nessuna collisione
Potenziale collisione, c’è intersezione con un OBBfoglia ma nessuna con i triangoli contenuti nell’OBB
COLLISIONE, c’è intersezione con un OBB fogliae con uno dei triangoli contenuti nell’OBB
Test di intersezione
15
Generalmente si fa il test di collision detection traoggetti… Ci può essere collisione solo se c’è unaintersezione tra OBB foglia.
A B
A
B
16