capturing coulomb friction within an assembly of thin rods...capturing coulomb friction within an...
TRANSCRIPT
Capturing Coulomb Frictionwithin an Assembly of Thin Rods
Florence Bertails-Descoubesjoint work with Gilles Daviet (Meche project), Florent Cadoux, and Vincent Acary
Inria Rhône-Alpes, BiPop research group
BiPop Spring SchoolJune 2010
Overview
We consider an assembly of thin elastic rods with
• Inelastic impacts between rods• Non-penetration constraints between rods• Contacts with dry friction
Goal:• Test various models for the dynamics of individual rods• Test various methods for resolving frictional contact• Analyze results in terms of robustness, efficiency and realism• Evaluate the impact of the rod model on the quality of results
In practice
Models:• Two families of rods models used
• Maximal-coordinates: Corde model• Reduced-coordinates: super-helix model
• Friction modeled with Coulomb’s law• Two families of solvers used
• Global: Alart and Curnier (1991), Cadoux (2009)• Local: Gauss-Seidel method
Evaluation:• Robustness evaluated as the quality of convergence• Efficiency evaluated as the mean comput. time per frame• Realism only evaluated through visual perception (for now)
In practice
• Not an exhaustive study yet (we’re on the way)• Still, some conclusions can be raised
Outline
1 Rods: models and contact formulation
2 Coulomb friction: notations and formulations
3 Frictional contact algorithms
4 Simulation results (not published yet - to be released !)
Outline
1 Rods: models and contact formulation
2 Coulomb friction: notations and formulations
3 Frictional contact algorithms
4 Simulation results (not published yet - to be released !)
Generic discrete rod: notations
• Centerline r(s)
• Degrees of freedom (dofs): q ∈ Rm
• Affine kinematics relationship:
u(s) = r(s) = H(s) q+w with H(s) =∂r∂q (s)
• Equation of motion:M(q) q + f (t, q, q) = 0
• Discrete equations (e.g., v = qt+dt):
Mv + f = 0 and u(s) = H(s) v + w
In practice: two rod models used
• Corde model (Spillman et al. 2008)• Super-Helix model (Bertails, Audoly 2006)
Corde model (Spillman et al. 2008)
• Maximal-coordinates model (explicit centerline)• Mass-spring system with stretch, bending and twist energies• Rod sampled in N + 1 nodes• Spatially discrete centerline: ri = r(si ), i ∈ {1 . . .N + 1}• Orientations modeled with quaternions zi• Constraints to be enforced:
• unitary quaternions: ‖zi‖ = 1 → post-normalization• coupling between the discrete centerline and the quaternions→ modeled as soft constraints
• Two decoupled systems for resolving ri and zi
Corde model (Spillman et al. 2008)
• Dofs: q = {ri}i , q∗ = {zi}i(m = 3 (N + 1) + 4N)
• Kinematics:r(s) = (1− λ) ri−1 + λ ri = H(s) qwith H(s) = [0, . . . , 0, (1− λ), λ, 0 . . . , 0]
• Equation of motion:M q + V q + G(q) = F (t, q, v)M and V diagonal, G(q) nonlinear
• Discrete equations (v = qt+dt)
Mv + f = 0 and u(s) = H(s) v
with M = M + dt V + dt2∇G sparse
Corde model (Spillman et al. 2008)
• Dofs: q = {ri}i , q∗ = {zi}i(m = 3 (N + 1) + 4N)
• Kinematics:r(s) = (1− λ) ri−1 + λ ri = H(s) qwith H(s) = [0, . . . , 0, (1− λ), λ, 0 . . . , 0]
• Equation of motion:M q + V q + G(q) = F (t, q, v)M and V diagonal, G(q) nonlinear
• Discrete equations (v = qt+dt)
Mv + f = 0 and u(s) = H(s) v
with M = M + dt V + dt2∇G sparse
Corde model (Spillman et al. 2008)
• Dofs: q = {ri}i , q∗ = {zi}i(m = 3 (N + 1) + 4N)
• Kinematics:r(s) = (1− λ) ri−1 + λ ri = H(s) qwith H(s) = [0, . . . , 0, (1− λ), λ, 0 . . . , 0]
• Equation of motion:M q + V q + G(q) = F (t, q, v)M and V diagonal, G(q) nonlinear
• Discrete equations (v = qt+dt)
Mv + f = 0 and u(s) = H(s) v
with M = M + dt V + dt2∇G sparse
Corde model (Spillman et al. 2008)
• Dofs: q = {ri}i , q∗ = {zi}i(m = 3 (N + 1) + 4N)
• Kinematics:r(s) = (1− λ) ri−1 + λ ri = H(s) qwith H(s) = [0, . . . , 0, (1− λ), λ, 0 . . . , 0]
• Equation of motion:M q + V q + G(q) = F (t, q, v)M and V diagonal, G(q) nonlinear
• Discrete equations (v = qt+dt)
Mv + f = 0 and u(s) = H(s) v
with M = M + dt V + dt2∇G sparse
Corde model (Spillman et al. 2008)
• Dofs: q = {ri}i , q∗ = {zi}i(m = 3 (N + 1) + 4N)
• Kinematics:r(s) = (1− λ) ri−1 + λ ri = H(s) qwith H(s) = [0, . . . , 0, (1− λ), λ, 0 . . . , 0]
• Equation of motion:M q + V q + G(q) = F (t, q, v)M and V diagonal, G(q) nonlinear
• Discrete equations (v = qt+dt)
Mv + f = 0 and u(s) = H(s) v
with M = M + dt V + dt2∇G sparse
Super-helix model (Bertails, Audoly 2006)
• Reduced-coordinates model (implicit centerline)• Inextensible model with bending and twist energies• Rod sampled in N elements• Spatially continuous centerline r(s) (exact calculus)• Discrete curvatures κ1
i , κ2i and twist τi , i ∈ {1 . . .N}
• No constraint to be enforced
Super-helix model (Bertails, Audoly 2006)
• Dofs: q = {κκκi}i (m = 3N)• Kinematics:
r(s) = H(s) q + r∗(s)
H(s) =[∂r∂κκκ1
(s), . . . , ∂r∂κκκQ
(s), 0, . . . , 0]
• Equation of motion
M(q) q + νK q + K q = F (t, q, v)
with M dense and K diagonal.• Discrete equations: v = qt+dt
Mv + f = 0
with M = M + dt νK + dt2 K dense
Super-helix model (Bertails, Audoly 2006)
• Dofs: q = {κκκi}i (m = 3N)• Kinematics:
r(s) = H(s) q + r∗(s)
H(s) =[∂r∂κκκ1
(s), . . . , ∂r∂κκκQ
(s), 0, . . . , 0]
• Equation of motion
M(q) q + νK q + K q = F (t, q, v)
with M dense and K diagonal.• Discrete equations: v = qt+dt
Mv + f = 0
with M = M + dt νK + dt2 K dense
Super-helix model (Bertails, Audoly 2006)
• Dofs: q = {κκκi}i (m = 3N)• Kinematics:
r(s) = H(s) q + r∗(s)
H(s) =[∂r∂κκκ1
(s), . . . , ∂r∂κκκQ
(s), 0, . . . , 0]
• Equation of motion
M(q) q + νK q + K q = F (t, q, v)
with M dense and K diagonal.• Discrete equations: v = qt+dt
Mv + f = 0
with M = M + dt νK + dt2 K dense
Super-helix model (Bertails, Audoly 2006)
• Dofs: q = {κκκi}i (m = 3N)• Kinematics:
r(s) = H(s) q + r∗(s)
H(s) =[∂r∂κκκ1
(s), . . . , ∂r∂κκκQ
(s), 0, . . . , 0]
• Equation of motion
M(q) q + νK q + K q = F (t, q, v)
with M dense and K diagonal.• Discrete equations: v = qt+dt
Mv + f = 0
with M = M + dt νK + dt2 K dense
Super-helix model (Bertails, Audoly 2006)
• Dofs: q = {κκκi}i (m = 3N)• Kinematics:
r(s) = H(s) q + r∗(s)
H(s) =[∂r∂κκκ1
(s), . . . , ∂r∂κκκQ
(s), 0, . . . , 0]
• Equation of motion
M(q) q + νK q + K q = F (t, q, v)
with M dense and K diagonal.• Discrete equations: v = qt+dt
Mv + f = 0
with M = M + dt νK + dt2 K dense
Assembly of rods
• Ns rods interacting:• Self-contacts• Mutual contacts• External contacts
→ Total number of dofs = Nsm• We denote n the total number of contacts• Assumption: one contact involves at most two bodies A and B
Collision detection
• Piecewise linear approximation of r(s)(independent of the rod’s resolution)
• Bounding cylinders of radius ε• Detection of contact by computing theminimal distance between cylinders axes:→ if d < 2 ε, a contact is set active
• Output:• Locations sA
i and sBi of the contact i for
each body A, B• Normal ei of contact i
• Acceleration techniques• Constraints partitioning• Spatial hash map
Advantage: simple and fast (takes 1 % of the total comput. time)Drawback: may require small time steps to avoid missing contacts
Collision detection
• Piecewise linear approximation of r(s)(independent of the rod’s resolution)
• Bounding cylinders of radius ε• Detection of contact by computing theminimal distance between cylinders axes:→ if d < 2 ε, a contact is set active
• Output:• Locations sA
i and sBi of the contact i for
each body A, B• Normal ei of contact i
• Acceleration techniques• Constraints partitioning• Spatial hash map
Advantage: simple and fast (takes 1 % of the total comput. time)Drawback: may require small time steps to avoid missing contacts
Collision detection
• Piecewise linear approximation of r(s)(independent of the rod’s resolution)
• Bounding cylinders of radius ε• Detection of contact by computing theminimal distance between cylinders axes:→ if d < 2 ε, a contact is set active
• Output:• Locations sA
i and sBi of the contact i for
each body A, B• Normal ei of contact i
• Acceleration techniques• Constraints partitioning• Spatial hash map
Advantage: simple and fast (takes 1 % of the total comput. time)Drawback: may require small time steps to avoid missing contacts
Collision detection
• Piecewise linear approximation of r(s)(independent of the rod’s resolution)
• Bounding cylinders of radius ε• Detection of contact by computing theminimal distance between cylinders axes:→ if d < 2 ε, a contact is set active
• Output:• Locations sA
i and sBi of the contact i for
each body A, B• Normal ei of contact i
• Acceleration techniques• Constraints partitioning• Spatial hash map
Advantage: simple and fast (takes 1 % of the total comput. time)Drawback: may require small time steps to avoid missing contacts
Collision detection
• Piecewise linear approximation of r(s)(independent of the rod’s resolution)
• Bounding cylinders of radius ε• Detection of contact by computing theminimal distance between cylinders axes:→ if d < 2 ε, a contact is set active
• Output:• Locations sA
i and sBi of the contact i for
each body A, B• Normal ei of contact i
• Acceleration techniques• Constraints partitioning• Spatial hash map
Advantage: simple and fast (takes 1 % of the total comput. time)Drawback: may require small time steps to avoid missing contacts
Contact relative velocity
• Relative velocity ui ∈ R3 at contact i :
ui = uB(sBi )− uA(sA
i ) = Hi v + w i
v←[
vA
vB
], H i ←
[−HA(sA
i ) HB(sBi )], w i ← wB
i − wAi
NB: For self-contact, v = vA = vB, H i ← H(sBi )− H(sA
i )
• Relative velocity uuu ∈ R3 n for all contacts:
uuu = H v + w
where
H =
0 . . . 0 . . .X 0 . . . X . . . 0...
......
......
0 . . .X . . . 0 X . . . 0 . . . 0
∈M3n,Nsm(R)
Contact relative velocity
• Relative velocity ui ∈ R3 at contact i :
ui = uB(sBi )− uA(sA
i ) = Hi v + w i
v←[
vA
vB
], H i ←
[−HA(sA
i ) HB(sBi )], w i ← wB
i − wAi
NB: For self-contact, v = vA = vB, H i ← H(sBi )− H(sA
i )
• Relative velocity uuu ∈ R3 n for all contacts:
uuu = H v + w
where
H =
0 . . . 0 . . .X 0 . . . X . . . 0...
......
......
0 . . .X . . . 0 X . . . 0 . . . 0
∈M3n,Nsm(R)
Incremental problem
• Global system (without interactions):
M v + f = 0
→ unknowns: q and v
• Global system (with self/mutual frictional contact):M v + f = H>rrruuu = H v + w(uuu, rrr) satisfies the Coulomb’s law
(1)
→ unknowns: q, v, uuu and rrr
Incremental problem
• Global system (without interactions):
M v + f = 0
→ unknowns: q and v
• Global system (with self/mutual frictional contact):M v + f = H>rrruuu = H v + w(uuu, rrr) satisfies the Coulomb’s law
(1)
→ unknowns: q, v, uuu and rrr
Elimination of v
• Let v = M−1 (H> rrr − f)
• Compact formulation in (uuu, rrr):{uuu = W rrr + q(uuu, rrr) satisfies the Coulomb’s law (2)
with W = H M−1 H> ∈M3n(R) and q = w−H M−1 f ∈ R3n
Elimination of v
• Let v = M−1 (H> rrr − f)
• Compact formulation in (uuu, rrr):{uuu = W rrr + q(uuu, rrr) satisfies the Coulomb’s law (2)
with W = H M−1 H> ∈M3n(R) and q = w−H M−1 f ∈ R3n
Outline
1 Rods: models and contact formulation
2 Coulomb friction: notations and formulations
3 Frictional contact algorithms
4 Simulation results (not published yet - to be released !)
Coulomb’s law: disjonctive formulationLet µ ∈ R+ and Kµ be the second-order cone
Kµ = {‖rT‖ ≤ µrN} ⊂ R3rrN
rT
e
Coulomb’s law
(uuu, rrr) ∈ C(e, µ) ⇐⇒
either take off r = 0 et uN > 0or stick r ∈ int(Kµ) and u = 0or slide r ∈ ∂Kµ \ 0, uN = 0
and ∃α ≥ 0, uT = −α rT
r = 0 r ∈ ∂Kr ∈ K
uN > 0 u = 0 uN = 0
Coulomb’s law: functional formulation
IdeaExpress Coulomb’s law as f (u, r) = 0 with f a nonsmooth function
Example: Alart and Curnier formulation (1991)
fff AC (uuu, rrr) =
[f ACN (uuu, rrr)
fff ACT (uuu, rrr)
]=
[PR+(rN − ρNuN) − rNPBBB(0,µrN)(rrrT − ρTuuuT ) − rrrT
]
where ρN , ρT ∈ R∗+ and PK is the projection onto the convex K .
(uuu, rrr) ∈ C(e, µ) ⇐⇒ fff AC (uuu, rrr) = 0
Solving methods
• Newton algorithm (requires the computation of ∇f )• Fixed-point method (if a reformulation rrr = ggg(uuu, rrr) is possible)
Coulomb’s law: functional formulation
IdeaExpress Coulomb’s law as f (u, r) = 0 with f a nonsmooth function
Example: Alart and Curnier formulation (1991)
fff AC (uuu, rrr) =
[f ACN (uuu, rrr)
fff ACT (uuu, rrr)
]=
[PR+(rN − ρNuN) − rNPBBB(0,µrN)(rrrT − ρTuuuT ) − rrrT
]
where ρN , ρT ∈ R∗+ and PK is the projection onto the convex K .
(uuu, rrr) ∈ C(e, µ) ⇐⇒ fff AC (uuu, rrr) = 0
Solving methods
• Newton algorithm (requires the computation of ∇f )• Fixed-point method (if a reformulation rrr = ggg(uuu, rrr) is possible)
Coulomb’s law: functional formulation
IdeaExpress Coulomb’s law as f (u, r) = 0 with f a nonsmooth function
Example: Alart and Curnier formulation (1991)
fff AC (uuu, rrr) =
[f ACN (uuu, rrr)
fff ACT (uuu, rrr)
]=
[PR+(rN − ρNuN) − rNPBBB(0,µrN)(rrrT − ρTuuuT ) − rrrT
]
where ρN , ρT ∈ R∗+ and PK is the projection onto the convex K .
(uuu, rrr) ∈ C(e, µ) ⇐⇒ fff AC (uuu, rrr) = 0
Solving methods
• Newton algorithm (requires the computation of ∇f )• Fixed-point method (if a reformulation rrr = ggg(uuu, rrr) is possible)
Coulomb’s law: complementarity formulation
Idea (De Saxcé, 1998)Modify the velocity uuu → uuu so that uuu and rrr are complementary.
uuu := uuu + µ ‖uT‖ e ∈ K ∗µ(= K 1µ
)
(uuu, rrr) ∈ C(e, µ) ⇐⇒ K ∗µ 3 uuu ⊥ rrr ∈ Kµ
Solving methods
• Fixed-point method: rrr = PKµ(rrr − ρ uuu) where ρ ∈ R∗+• Newton algorithm (requires the computation of ∇PKµ)
Coulomb’s law: complementarity formulation
Idea (De Saxcé, 1998)Modify the velocity uuu → uuu so that uuu and rrr are complementary.
uuu := uuu + µ ‖uT‖ e ∈ K ∗µ(= K 1µ
)
(uuu, rrr) ∈ C(e, µ) ⇐⇒ K ∗µ 3 uuu ⊥ rrr ∈ Kµ
Solving methods
• Fixed-point method: rrr = PKµ(rrr − ρ uuu) where ρ ∈ R∗+• Newton algorithm (requires the computation of ∇PKµ)
Coulomb’s law: complementarity formulation
Idea (De Saxcé, 1998)Modify the velocity uuu → uuu so that uuu and rrr are complementary.
uuu := uuu + µ ‖uT‖ e ∈ K ∗µ(= K 1µ
)
(uuu, rrr) ∈ C(e, µ) ⇐⇒ K ∗µ 3 uuu ⊥ rrr ∈ Kµ
Solving methods
• Fixed-point method: rrr = PKµ(rrr − ρ uuu) where ρ ∈ R∗+• Newton algorithm (requires the computation of ∇PKµ)
Outline
1 Rods: models and contact formulation
2 Coulomb friction: notations and formulations
3 Frictional contact algorithms
4 Simulation results (not published yet - to be released !)
Algorithms used
• Global methods:• Newton on the Alart and Curnier’s function• Cadoux’s approach
• Local methods (splitting Newton methods):• Splitting Alart and Curnier• Splitting De Saxcé projection
Incremental problem
• Global system with frictional contact:M v + f = H>rrruuu = H v + w(uuu, rrr) satisfies the Coulomb’s law
• Elimination of v:{uuu = W rrr + q(uuu, rrr) satisfies the Coulomb’s law
where W = H M−1 H> ∈M3n(R) and q = w−H M f ∈ R3n
→ unknowns: q, v, uuu and rrr
Nonsmooth Newton on the Alart-Curnier function
• Formulation of the incremental problem{uuu = W rrr + qfff AC (uuu, rrr) = 0
⇔ fff AC (W rrr + q, rrr) = Φ(rrr) = 0
• (Damped) Newton iteration:
rrrk+1 = rrrk − αk G−1k Φ(rrrk) where Gk ∈ ∂Φ(rrrk)
• Natural stopping criterion:
12 ‖Φ(rrr)‖2 < ε
Nonsmooth Newton on the Alart-Curnier function
• Formulation of the incremental problem{uuu = W rrr + qfff AC (uuu, rrr) = 0
⇔ fff AC (W rrr + q, rrr) = Φ(rrr) = 0
• (Damped) Newton iteration:
rrrk+1 = rrrk − αk G−1k Φ(rrrk) where Gk ∈ ∂Φ(rrrk)
• Natural stopping criterion:
12 ‖Φ(rrr)‖2 < ε
Nonsmooth Newton on the Alart-Curnier function
• Formulation of the incremental problem{uuu = W rrr + qfff AC (uuu, rrr) = 0
⇔ fff AC (W rrr + q, rrr) = Φ(rrr) = 0
• (Damped) Newton iteration:
rrrk+1 = rrrk − αk G−1k Φ(rrrk) where Gk ∈ ∂Φ(rrrk)
• Natural stopping criterion:
12 ‖Φ(rrr)‖2 < ε
Nonsmooth Newton on the Alart-Curnier function
• Formulation of the incremental problem{uuu = W rrr + qfff AC (uuu, rrr) = 0
⇔ fff AC (W rrr + q, rrr) = Φ(rrr) = 0
• (Damped) Newton iteration:
rrrk+1 = rrrk − αk G−1k Φ(rrrk) where Gk ∈ ∂Φ(rrrk)
• Natural stopping criterion:
12 ‖Φ(rrr)‖2 < ε
Cadoux’s method
• Relies on De Saxcé’s change of variables:• For contact i :
uuui := uuui + µi ‖uuuT‖i ei ∈ K∗µi
• For all contacts:uuu := uuu + E s ∈ L∗
s = [‖uuuT‖1, . . . , ‖uuuT‖n]>, E = BDiag(µi ei) and L∗ =∏
i K∗µi
Cadoux’s method
• Formulation of the incremental problemMv + f = H>rrr (a)
uuu = Hv + w + Es (b)L∗ 3 uuu ⊥ rrr ∈ L (c)
s = [‖uuuT‖1, . . . , ‖uuuT‖n]> (d)
• Key of the approach:if s is fixed, then (a), (b), (c) are the optimality conditions ofa convex optimization problem subject to conical constraints
Cadoux’s method
• Formulation of the incremental problemMv + f = H>rrr (a)
uuu = Hv + w + Es (b)L∗ 3 uuu ⊥ rrr ∈ L (c)
s = [‖uuuT‖1, . . . , ‖uuuT‖n]> (d)
• Key of the approach:if s is fixed, then (a), (b), (c) are the optimality conditions ofa convex optimization problem subject to conical constraints
Cadoux’s method
• Primal problem{min 1
2v>M v + f> v (quadratic, strict. convex)Hv + w + E s ∈ L∗ (conical contraints)
• Dual problemmin 1
2rrr>W rrr + b> rrr (quadratic, convex)rrr ∈ L (conical constraints)W = H M−1 H>b = −H M−1 f + w + E s
Cadoux’s method
• Primal problem{min 1
2v>M v + f> v (quadratic, strict. convex)Hv + w + E s ∈ L∗ (conical contraints)
• Dual problemmin 1
2rrr>W rrr + b> rrr (quadratic, convex)rrr ∈ L (conical constraints)W = H M−1 H>b = −H M−1 f + w + E s
Cadoux’s method
• To solve the full incremental problem, incorporate (d):
F (s) = s with F i (s) := ‖uuuiT (s)‖
→ Fixed-point equation
Splitting algorithm
Gauss-Seidel iterative process
• Init rrr , uuu ←W rrr + q• While k ≤ Nitermax
1. For i = 1 . . . n (loop over the contacts)(a)uuui ← (W rrr + q)i(b) qi ← uuui −Wii rrr i(c)Find rrr i such that (Wii rrr i + qi ) ∈ C(ei , µi )
2. End for3. uuunew ←W rrrnew + q4. If (stopping criteria), break
• End while
Splitting algorithm: in practice
Solver used for single contacts
• Newton on the Alart and Curnier function• De Saxcé projection on the Coulomb’s friction cone
Stopping criteria
• For Alart-Curnier: 12 ‖Φ(rrr)‖ < ε
• For De Saxcé: ‖rrr i,k+1−rrr i,k‖‖rrr i,k‖ < ε ∀i
Outline
1 Rods: models and contact formulation
2 Coulomb friction: notations and formulations
3 Frictional contact algorithms
4 Simulation results (not published yet - to be released !)
The End
Thank You for your attention !