notes contact friction
play

Notes Contact Friction Some normal force is keeping v N =0 Typo in - PowerPoint PPT Presentation

Notes Contact Friction Some normal force is keeping v N =0 Typo in test.rib --- fixed on the web now (PointsPolygon --> PointsPolygons) Coulomb s law (dry friction) If sliding, then kinetic friction: v T F friction =


  1. Notes Contact Friction � Some normal force is keeping v N =0 � Typo in test.rib --- fixed on the web now (PointsPolygon --> PointsPolygons) � Coulomb � s law (“dry” friction) • If sliding, then kinetic friction: v T F friction = � µ k F normal v T • If static (v T =0) then stay static as long as F friction � µ s F normal � “Wet” friction = damping F friction = � DF normal v T cs533d-term1-2005 1 cs533d-term1-2005 2 Collision Friction Wet Collision Friction � So replacing force with impulse: � Impulse assumption: m � v T = � Dm � v N v T • Collision takes place over a very small time interval after = v T before + � v T (with very large forces) v T � Divide through by m, use • Assume forces don � t vary significantly over that after = v T before � D � v N v T interval---then can replace forces in friction laws with before v T impulses ( ) v T = 1 � D � v N • This is a little controversial, and for articulated rigid before bodies can be demonstrably false, but nevertheless… • Normal impulse is just m � v N =m(1+ � )v N � Clearly could have monotonicity/stability issue • Tangential impulse is m � v T � Fix by capping at v T =0, or better approximation for time interval after = e � D � v N v T e.g. before v T cs533d-term1-2005 3 cs533d-term1-2005 4

  2. Dry Collision Friction Simplifying… after = v T before + � v T � Coulomb friction: assume µ s = µ k v T � Use after = 0 � � v T = � v T • (though in general, µ s � µ k ) before � Static case is v T before � µ � v N when v T before v T � Sliding: m � v T = � µ m � v N before v T � Sliding case is m � v T � µ m � v N before � Static: after = v T before � µ � v N v T v T before v T � Divide through by m to find change in tangential velocity � Common quantities! cs533d-term1-2005 5 cs533d-term1-2005 6 Dry Collision Friction Formula Where are we? � Combine into a max � So we now have a simplified physics model for • First case is static where v T drops to zero if inequality is obeyed • Frictionless, dry friction, and wet friction • Second case is sliding, where v T reduced in collision magnitude (but doesn � t change signed • Some idea of what contact is direction) � So now let � s start on numerical methods to simulate this � � after = max 0,1 � µ � v N � � before v T � v T � before v T � � cs533d-term1-2005 7 cs533d-term1-2005 8

  3. “Exact” Collisions Fixed collision time stepping � For very simple systems (linear or maybe � Even “exact” collisions are not so accurate in parabolic trajectories, polygonal objects) general • Find exact collision time (solve equations) • [hit or miss example] • Advance particle to collision time � So instead fix � t collision and don � t worry about • Apply formula to change velocity exact collision times (usually dry friction, unless there is lubricant) • Could be one frame, or 1/8th of a frame, or … • Keep advancing particle until end of frame or next � Instead just need to know did a collision happen collision during � t collision � Can extend to more general cases with • If so, process it with formulas conservative ETA � s, or root-finding techniques � Expensive for lots of coupled particles! cs533d-term1-2005 9 cs533d-term1-2005 10 Relationship with regular time Numerical Implementation 1 integration � Forgetting collisions, advance from x(t) to x(t+ � t collision ) � Get candidate x(t+ � t) • Could use just one time step, or subdivide into lots of small time � Check to see if x(t+ � t) is inside object steps (interference) � We approximate velocity (for collision processing) as constant over time step: � If so v = x ( t + � t ) � x ( t ) • Get normal n at t+ � t � t • Get new velocity v from collision response � If no collisions, just keep going with underlying formulas applied to average v=(x(t+ � t)-x(t))/ � t integration • Integrate x(t+ � t)=x(t+ � t) old + � t � v cs533d-term1-2005 11 cs533d-term1-2005 12

  4. Robustness? Making it more robust � If a particle penetrates an object at end of � Other alternative: candidate time step, we fix that • After collision, check if new x(t+ � t) also � But new position (after collision processing) penetrates could penetrate another object! • If so, assume a 2nd collision happened during � Maybe this is fine-let it go until next time step the time step: process that one • Check again, repeat until no penetration � But then collision formulas are on shaky ground… • To avoid infinite loop make sure you lose � Switch to repulsion impulse if x(t) and x(t+ � t) kinetic energy (don � t take perfectly elastic both penetrate bounces, at least not after first time through) • Find � v N proportional to final penetration depth, apply • Let � s write that down: friction as usual cs533d-term1-2005 13 cs533d-term1-2005 14 Numerical Implementation 2 Micro-Collisions � Get candidate x(t+ � t) � These are “micro-collision” algorithms � While x(t+ � t) is inside object (interference) � Contact is modeled as a sequence of small collisions • Get normal n at t+ � t • Get new velocity v from collision response formulas • We � re replacing a continuous contact force with a sequence of collision impulses and average v • Integrate collision: x(t+ � t)=x(t+ � t) old + � t � v � Is this a good idea? • [block on incline example] � Now can guarantee that if we start outside � More philosophical question: how can contact objects, we end up outside objects possibly begin without fully inelastic collision? cs533d-term1-2005 15 cs533d-term1-2005 16

  5. Improving Micro-Collisions Numerical Implementation 3 � Start at x(t) with velocity v(t), get candidate � Really need to treat contact and collision position x(t+ � t) differently, even if we use the same friction � Check if x(t+ � t) penetrates object formulas • If so, process elastic collision using v(t) from start of � Idea: step, not average velocity • Collision occurs at start of time step • Replay from x(t) with modified v(t) or simply • Contact occurs during whole duration of time add � t � v to x(t+ � t) instead of re-integrating • Repeat check a few (e.g. 3) times if you want step � While x(t+ � t) penetrates object • Process inelastic contact ( � =0) using average v • Integrate + � t � v cs533d-term1-2005 17 cs533d-term1-2005 18 Why does this work? Moving objects � If object resting on plane y=0, v(t)=0 though � Same algorithms, and almost same formulas: gravity will pull it down by the end of the • Need to look at relative velocity timestep, t+ � t v particle -v object instead of just particle velocity � In the new algorithm, elastic bounce works with • As before, decompose into normal and tangential pre-gravity velocity v(t)=0 parts, process the collision, and reassemble a relative • So no bounce velocity � Then contact, which is inelastic, simply adds just • Add object velocity to relative velocity to get final enough � v to get back to v(t+ � t)=0 particle velocity • Then x(t+ � t)=0 too � Be careful when particles collide: � NOTE: if � =0 anyways, no point in doing special • Same relative � v but account for equal and opposite forces/impulses with different masses… first step - this algorithm is equivalent to the previous one cs533d-term1-2005 19 cs533d-term1-2005 20

  6. Moving Objects… Collision Detection � Also, be careful with � We have basic time integration for particles in place now interference/collision detection • Want to check for interference at end of � Assumed we could just do interference detection, but… time step, so use object positions there � Detecting collisions over particle • Objects moving during time step mean trajectories can be dropped in for more more complicated trajectory intersection robustness - algorithms don � t change for collisions • But use the normal at the collision time cs533d-term1-2005 21 cs533d-term1-2005 22

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend