Contents · Convex Optimization
Part 0 · Convexity
Part 1 · Quadratic Programs
Part 2 · Duality
Part 3 · Cones
- Cones, SOCP, and the Friction Cone
Part 4 · Descent
Part 3 · Cones
Cones, SOCP, and the Friction Cone
The friction cone is not just a picture. It is a second-order cone, the same object that defines a whole class of convex programs. Naming it that way is what lets a contact solver borrow decades of conic optimization: solving contact becomes optimizing over, or projecting onto, this cone.
A convex cone
A set is a cone if it is closed under nonnegative scaling: and imply . It is a convex cone if it is also convex, equivalently if it is closed under nonnegative combinations,
Scaling a force keeps it admissible and adding two admissible forces keeps them admissible, so the set of forces a contact can exert is a convex cone.
The second-order (Lorentz) cone
The workhorse is the second-order cone (also Lorentz or ice-cream cone), split coordinates into a vector and a scalar :
At each height the slice is a ball of radius ; the boundary is the curved wall . A second-order cone program (SOCP) minimizes a linear objective subject to membership in such cones,
Linear and convex quadratic programs are special cases, and interior-point methods solve SOCPs in polynomial time.1
The friction cone is a second-order cone
Coulomb's law bounds the tangential force by the scaled normal force,
which is exactly after the rescaling . So the set of admissible contact forces is a second-order cone. This is why modern contact is posed as a conic program: MuJoCo, for instance, solves a convex program over elliptic (second-order) friction cones.2 The physics companion article on the friction cone works through the contact model itself; here the point is the geometry, and its central operation is projection onto .
Projecting onto the cone
Given a point , its Euclidean projection onto has a closed form with three cases:1
The middle case is the polar cone , which points the opposite way and collapses to the apex. The third case splits the excess evenly between the tangential and normal directions, landing on the curved boundary.
Worked example. Take so , and project the point . Here , so it is not inside; and , so it is not below the polar. Apply the boundary formula:
Check that the result sits on the boundary: , so . The correction moved the point straight toward the cone wall, shortening the oversized tangential part and lifting the normal part until Coulomb's law holds with equality, which is exactly the onset of sliding.
cone cross-section (drag the force point)
- ‖t₀‖
- 1.60
- μ·z₀
- 0.60
- ‖t₀‖ ≤ μ·z₀ ?
- no
- proj p
- (1.10, 1.10)
projected to sliding boundary.
The linearized alternative
The curved wall is nonlinear, so a solver can instead replace the cone with a polyhedral (pyramidal) approximation: an inscribed -facet pyramid whose faces are linear inequalities . That turns contact into a linear complementarity problem, which classic pivoting solvers handle well, but the pyramid is anisotropic: friction along a facet direction differs from friction between facets, so the limit depends on direction. The true second-order cone is isotropic and exact, at the cost of a nonlinear (conic) subproblem. The trade between the two is the recurring theme of cone-based contact.
Footnotes
-
Boyd & Vandenberghe, Convex Optimization (2004). ↩ ↩2
-
MuJoCo docs, Computation. ↩