19 Haptic Rendering (def)percro.sssup.it/marcello/didattica/AA20082009/19_Haptic... · 2008. 5....
Transcript of 19 Haptic Rendering (def)percro.sssup.it/marcello/didattica/AA20082009/19_Haptic... · 2008. 5....
-
Emanuele RuffaldiEmanuele Ruffaldi
Haptic RenderingHaptic Rendering
Corso di RealtCorso di Realtàà VirtualeVirtuale2008
Emanuele RuffaldiEmanuele [email protected]@sssup.ithttp://www.teslacore.ithttp://www.teslacore.it
Scuola Superiore S.AnnaScuola Superiore S.AnnaLab. PERCRO Lab. PERCRO
http://www.percro.orghttp://www.percro.org
-
ArgomentiArgomenti
•• Introduzione allIntroduzione all’’Haptic RenderingHaptic Rendering
•• Algoritmo del proxyAlgoritmo del proxy
•• Algoritmi 6DOF e volumetriciAlgoritmi 6DOF e volumetrici
•• Uso di Haptics con XVRUso di Haptics con XVR
•• Esempio di Sphere RenderingEsempio di Sphere Rendering
•• Esempio di Virtual CouplingEsempio di Virtual Coupling
-
OverviewOverview
-
Cosa sono le Haptics?Cosa sono le Haptics?
Sensing and Manipulation through touchSensing and Manipulation through touch
Con Haptics intendiamo l’insieme delle
tecnologie che permettono l’interazione
fisica con oggetti virtuali.
Tale interazione avviene attraverso
l’azione di forze esterne oppure attraverso
percezione tattile
-
Cosa si può fare con le Haptics?Cosa si può fare con le Haptics?
•• Tocco di superficiTocco di superfici
•• Manipolazione di oggettiManipolazione di oggetti
•• Navigazione allNavigazione all’’interno di ambienti interno di ambienti virtualivirtuali
-
Quali sono le caratteristiche Quali sono le caratteristiche aptiche di una superficie?aptiche di una superficie?
•• StiffnessStiffness
•• AttritoAttrito
•• RoughnessRoughness
•• MicrogeometryMicrogeometry
Esiste un parallelismo con la grafica
-
PointPoint--Model vs ModelModel vs Model--ModelModel
Haptic DeviceHaptic Device
Virtual ObjectVirtual Object
Virtual WorldVirtual World
Haptic DeviceHaptic Device
Virtual PointVirtual Point Virtual WorldVirtual World
3DOF
6DOF
-
Concetti baseConcetti base
•• Un esempio di interfacce aptiche sono Un esempio di interfacce aptiche sono quelle a punti di contattoquelle a punti di contatto
-
Punti di ContattoPunti di Contatto
•• Un punto di contatto Un punto di contatto èè ll’’elemento terminale elemento terminale delldell’’interfaccia aptica nel quale viene interfaccia aptica nel quale viene ll’’attuazioneattuazione
•• Di ciascun punto Di ciascun punto èè nota la posizione ed nota la posizione ed eventualmente leventualmente l’’orientamentoorientamento
•• Su un punto di contatto si possono Su un punto di contatto si possono esercitare forze o torsioniesercitare forze o torsioni
•• Per specificare le caratteristiche di un Per specificare le caratteristiche di un device si indicano i gradi di libertdevice si indicano i gradi di libertàà (Degree (Degree of Freedom) attuati e sensorizzatiof Freedom) attuati e sensorizzati�� Phantom 3/6 DOFPhantom 3/6 DOF�� GRAB 3/3 DOFGRAB 3/3 DOF
-
Haptic RenderingHaptic Rendering
•• LL’’Haptic Rendering Haptic Rendering èè ll’’operazione con la operazione con la quale si forniscono forze allquale si forniscono forze all’’utente a partire utente a partire dalla sua interazione con ldalla sua interazione con l’’ambiente virtualeambiente virtuale
•• In particolare data la posizione del punto di In particolare data la posizione del punto di contatto nellcontatto nell’’ambiente virtuale ambiente virtuale èè necessario necessario fornire la forza generatafornire la forza generata
•• Questa operazione ha grandi similitudini Questa operazione ha grandi similitudini rispetto allrispetto all’’operazione di Graphic Renderingoperazione di Graphic Rendering
-
Haptic RenderingHaptic Rendering
L’Haptic Rendering avviene
attraverso un modello molto
semplice a penalizzazione
Più il punto di contatto è all’interno
dell’oggetto più l’utente percepisce
una forza che si oppone alla
penetrazione
-
Simple Distance ApproachSimple Distance Approach
Thin
Objects
First compute the force by the penetration inside a
Virtual wall. Force is proportional to the penetration depth
When the nearest
surface changes the
force is flipped
More problems on
edges
-
Algoritmo del ProxyAlgoritmo del Proxy•• LL’’algoritmo del proxy ealgoritmo del proxy e’’ una tecnica di approssimazione una tecnica di approssimazione
delldell’’interazione a rigid body che risulta essere molto interazione a rigid body che risulta essere molto efficienteefficiente
L’algoritmo usa il punto di contatto H
per calcolare un punto sulla superficie
dell’oggetto IHIP chiamato proxy
Il proxy e' vincolato a muoversi sulla
superficie dell'oggetto, passando da
un triangolo a quello adiacente.
La forza applicata al device diretta
lungo il vettore tra HIP ed IHIP e
proporzionale alla rigidezza (stiffness)
dell'oggetto virtuale (costante k)
In alcuni paper HIP è chiamato H,
mentre IHIP è chiamato P
E’ possibile estendere tale algoritmi
per poter introdurre effetti di trama di
superficie e attrito.
-
AttritoAttrito•• L'algoritmo del proxy descritto sopra non tiene conto dell'attriL'algoritmo del proxy descritto sopra non tiene conto dell'attrito della to della
superficiesuperficie•• E' possibile simulare le forze di attrito agendo direttamente suE' possibile simulare le forze di attrito agendo direttamente sull'algoritmo ll'algoritmo
del proxydel proxy•• La differenza consiste nell'aggiornare la posizione del proxy soLa differenza consiste nell'aggiornare la posizione del proxy solo quando lo quando
la forza risultante e' maggiore della forza di attrito statico pla forza risultante e' maggiore della forza di attrito statico pari alla forza ari alla forza normale moltiplicata per il coefficiente di attrito staticonormale moltiplicata per il coefficiente di attrito statico
tg-1µs
d
tg -1µd
not slip
• L'attrito viene gestito usando due stati, statico e
dinamico
• Quando viene calcolato il nuovo punto del god xG si
misura la distanza rispetto al vecchio proxy xP• Se tale distanza e' inferiore rispetto al raggio di attrito
statico r si rimane nel caso statico e la forza risultante
e' ottenuta usando xH e xP
-
Attrito dinamicoAttrito dinamico
•• Nel caso di attrito dinamico si controlla che il vecchio Nel caso di attrito dinamico si controlla che il vecchio proxy sia fuori dal raggio di attrito dinamico.proxy sia fuori dal raggio di attrito dinamico.
•• Se lo e' si riporta il proxy sul bordo del cono altrimenti si Se lo e' si riporta il proxy sul bordo del cono altrimenti si passa allo stato staticopassa allo stato statico
xH
xG
tg-1µs
d
tg -1µd
slip
slipto not slip
xPx’P
-
Virtual ProxyVirtual Proxy
•• The VP uses the sphere for computing the The VP uses the sphere for computing the intersection with entitiesintersection with entities
•• The constraint is managed by computing The constraint is managed by computing the Sphere Swept from the Proxy position the Sphere Swept from the Proxy position to the Hip positionto the Hip position
•• The Sphere Swept can be tested with a The Sphere Swept can be tested with a variety of techniques, more later on CDvariety of techniques, more later on CD
•• It allows additional featuresIt allows additional features�� Force ShadingForce Shading�� TexturesTextures�� Material Stiffness on the GeometryMaterial Stiffness on the Geometry
-
Virtual ProxyVirtual Proxy
Extension of the single point interaction to a small sphere that is moved along
the surface of the object. This solution solves the problem of the small holes in
the geometrical surface
-
Event Based HapticsEvent Based Haptics
•• Simulate the Contact with the material Simulate the Contact with the material with an Open Loop responsewith an Open Loop response
•• The response has been measured with a The response has been measured with a force sensorforce sensor
Hard Wood contact
-
Implicit Functions RenderingImplicit Functions Rendering
• With cone friction as well
• More work for cutting planes and boolean operations
-
6 DOF Haptic Rendering6 DOF Haptic Rendering
Il rendering a sei gradi di libertIl rendering a sei gradi di libertàà tiene tiene conto della maggiore complessitconto della maggiore complessitààdelldell’’interazioneinterazione
-
Requisiti del 6DOFRequisiti del 6DOF
•• Niente penetrazione geometricaNiente penetrazione geometrica
•• Corpi rigidi, niente approssimazioni Corpi rigidi, niente approssimazioni puntiformipuntiformi
•• Complex Collision DetectionComplex Collision Detection
•• QualitQualitàà delldell’’interazioneinterazione
-
6 DOF Schema Generale6 DOF Schema Generale
6DOF Haptics6DOF Haptics
Collision
Management
Collision
Management Force FeedbackForce Feedback
Constraintbased
ConstraintbasedPenalty-based
Penalty-basedImpulsiveImpulsive
Direct
Rendering
Direct
RenderingVirtual
Coupling
Virtual
CouplingContact
Resolution
Contact
ResolutionCollsion
Propagation
Collsion
Propagation
SimultaneousSimultaneous
ChronologicalChronological
Model
Representation
Model
Representation
Local
Model
Local
ModelMulti
Resolution
Multi
Resolution
Dynamic
Simulation
Dynamic
Simulation
-
Rigid Body SimulationRigid Body Simulation
Haptic DeviceHaptic Device
Virtual ObjectVirtual Object
Collision Detection
and Response
Collision Detection
and Response
6DOF
Haptic DeviceHaptic Device
Virtual ObjectVirtual Object
Collision Detection
and Response
Collision Detection
and Response
Direct
Rendering
Haptic DeviceHaptic Device
Virtual ObjectVirtual Object
Collision Detection
and Response
Collision Detection
and Response
Virtual
Coupling
Virtual
Coupling
-
ImprovementImprovement
Haptic DeviceHaptic Device
Virtual ObjectVirtual Object
Virtual
Coupling
Haptic DeviceHaptic Device
Virtual ObjectVirtual Object
Virtual
Coupling
Linearized
Contact Model
Virtual
Coupling
Virtual
Coupling
Collision Detection
and Response
Collision Detection
and Response
Collision Detection
and Response
Collision Detection
and Response
-
Implicit IntegrationImplicit Integration
Haptic DeviceHaptic Device
Virtual ObjectVirtual Object
Virtual
Coupling
Linearized
Contact Model
Virtual
Coupling
Collision Detection
and Response
Collision Detection
and Response
-
Virtual CouplingVirtual Coupling•• LL’’interazione basata sul proxy interazione basata sul proxy
ee’’ sufficiente per il caso a 3 sufficiente per il caso a 3 gradi di libertagradi di liberta’’ e le l’’esplorazione esplorazione di superficidi superfici
•• Nel caso di manipolazione in Nel caso di manipolazione in un ambiente virtuale deve un ambiente virtuale deve essere sostituitaessere sostituita
•• Il virtual coupling consente di Il virtual coupling consente di manipolare oggetti virtualimanipolare oggetti virtuali
•• Il punto di contatto e lIl punto di contatto e l’’oggetto oggetto sono collegati da una molla sono collegati da una molla con smorzatore che media con smorzatore che media ll’’interazioneinterazione
(Colgate 1998)
Impedisce la creazione di cicli
-
Virtual Coupling ModelVirtual Coupling Model
1
s
Velocity
k
Spring
1
s
Position
1/m
Mass1
1/m
Mass
f_h
Force To Device
v_h
Device Velocity
x_h
Device Position
b
Damper
impulse
Coll ision
Impulse
posv el
-
Tecniche di Collision Detection Tecniche di Collision Detection per 6HRper 6HR
•• Soluzioni basate su MeshSoluzioni basate su Mesh
�� Local Minimum DistanceLocal Minimum Distance
�� Bounding VolumesBounding Volumes
•• Soluzioni basate su VolumesSoluzioni basate su Volumes
�� VPSVPS
Materiale addizionale su Collision Detection dall’anno precedente e nella lezione PBM
-
Collision ResponseCollision Response
•• Introduciamo il concetto di punto di Introduciamo il concetto di punto di contattocontatto
•• Un punto di contatto Un punto di contatto èè in separazione in separazione sese
n
p1
p0
δ
-
Voxel Point ShellVoxel Point Shell
Soluzione di Collision Detection
Contact Computation
-
ResourcesResources
•• PapersPapers�� McNeely, SIGGRAPH 1999McNeely, SIGGRAPH 1999�� Johnson, SIGGRAPH 2001Johnson, SIGGRAPH 2001�� Otaduy, SIGGRAPH 2003Otaduy, SIGGRAPH 2003
•• Physics LibrariesPhysics Libraries�� ODEODE�� BulletBullet
•• CoursesCourses�� CS277 Experimental Haptics, Ken Salisbury, StanfordCS277 Experimental Haptics, Ken Salisbury, Stanford�� COMP790COMP790--072 Robotics, Ming C. Lin, UNC072 Robotics, Ming C. Lin, UNC�� Baraff SIGGRAPHBaraff SIGGRAPH’’01 course on Physical Based 01 course on Physical Based
ModelingModeling�� GAMMA 6DOF projectsGAMMA 6DOF projects
-
Parte 2Parte 2
-
Haptic ed XVRHaptic ed XVR
•• Un insieme di librerie di estensione di Un insieme di librerie di estensione di XVR che forniscono lXVR che forniscono l’’interazione interazione Aptica che prende il nome di Aptica che prende il nome di HapticWebHapticWeb
•• Basato sulla libreria Open Source Basato sulla libreria Open Source CHAI3DCHAI3D
•• Fornisce un accesso al device ad alto Fornisce un accesso al device ad alto e basso livelloe basso livello
-
Caratteristiche di HapticWebCaratteristiche di HapticWeb
Access to
DevicesHigh Level
Haptic Rendering
Extension to HapticsDevice
Independence
Mesh
OpenGL
Capture
DeltaHaptic
Scenegraph
Low Level
Create by URL
Sensable
GRAB
Virtual
Devicel
Capabilities
and Workspace
Auto Device
-
Classi di HapticWebClassi di HapticWeb
•• HapticWeb rappresenta lHapticWeb rappresenta l’’interazione interazione aptica attraverso un insieme di classiaptica attraverso un insieme di classi
•• Le classi costituiscono un scenegraph Le classi costituiscono un scenegraph apticoaptico
�� HWorld HWorld -- il mondo apticoil mondo aptico
�� HTool HTool –– il punto di contattoil punto di contatto
�� HMesh HMesh –– una meshuna mesh
�� HEffect HEffect –– un effetto apticoun effetto aptico
-
Esempio di Sfera Aptica con Esempio di Sfera Aptica con XVRXVR
#include #include "hapticweb.h.s3d"
var h_world;var h_tool;var sphereCenter = [0,2,10];var sphereRadius = 5.0;var sphereStiffness = 2500; // N/mm
function OnDownload(){
FileDownload("hapticxvr.zip");}
function OnInit(){
HLoadModule ();h_world = HWorld();h_tool = HToolGL(h_world);h_tool.tool.start();h_world.run(false);
}
function OnTimer(){
var tool = h_tool.tool;tool.updatePose();
var delta = tool.devicePosition - sphereCenter;var d = modulus(delta);if(d > sphereRadius || d == 0)
tool.force = [0,0,0];else
tool.force = sphereStiffness*(sphereRadius-d)*(delta/d);
tool.applyForces();}
-
Esempio in XVREsempio in XVR
var h_world, p_sim;
var h_tool, p_tool, h_virtual;
var p_obj;
function OnInit()
{
HLoadModule();
NLoadModule();
h_world = HWorld();
p_sim = NSim();
h_tool = HToolGL(h_world);
h_virtual = HVirtualObject(h_world,
p_sim, h_tool);
h_virtual.stiffness = 5;
p_obj = p_sim.createBody(
N_GEO_SPHERE, 5);
p_obj.mass = 0.5;
h_virtual.attach(p_obj);
h_world.run();
…
}
function OnFrame()
{
h_virtual.preStep();
p_sim.step();
h_virtual.postStep();
…
h_virtual.render();
}
-
RiferimentiRiferimenti
•• What is Haptics? Mandayam What is Haptics? Mandayam SrinivasanSrinivasan
•• HapticWeb HapticWeb http://www.hapticweb.orghttp://www.hapticweb.org
•• CHAI3D http://www.chai3d.orgCHAI3D http://www.chai3d.org