38
Emanuele Ruffaldi Emanuele Ruffaldi Haptic Rendering Haptic Rendering Corso di Realt Corso di Realt à à Virtuale Virtuale 2008 Emanuele Ruffaldi Emanuele Ruffaldi [email protected] [email protected] http://www.teslacore.it http://www.teslacore.it Scuola Superiore S.Anna Scuola Superiore S.Anna Lab. PERCRO Lab. PERCRO http://www.percro.org http://www.percro.org

19 Haptic Rendering (def)percro.sssup.it/marcello/didattica/AA20082009/19_Haptic... · 2008. 5. 27. · Haptic Rendering • L’Haptic Rendering èl’operazione con la quale si

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

  • 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