Robot Contact and Friction: Stick or Slide
A contact can push along its normal and resist a limited sideways load. Sticking uses only the friction needed; sliding activates a different force rule.
Why Does This Exist?
A foot supports a robot vertically but slips when the controller requests too much horizontal force. Touching the ground does not supply arbitrary force. Contact and friction models specify which forces can exist and how they change when bodies separate, stick or slide. Those distinctions matter before optimizing any motion.
The contact normal points outward from the supporting surface into the supported body. Tangential directions lie along that surface. Forces change acceleration through robot dynamics; the contact law restricts which external forces are available. This page teaches force admissibility and slip transitions. Robot simulation explains how numerical stepping and contact solvers approximate their evolution.
Think of It Like This
A rubber eraser on a tilted book
At a shallow tilt, the eraser stays still: friction supplies the amount needed to oppose the downhill load. Tilt farther and the required resistance exceeds the available grip, so the eraser slides. Push the eraser harder into the book and the friction allowance increases. Normal loading maps to pressing into the surface, tangential loading to the downhill pull, and slip to relative surface motion. The analogy stops at the dry-contact approximation: rubber deformation, adhesion and speed-dependent friction can make the real threshold more complicated.
How It Actually Works
Which forces are allowed at rest?
For a nonadhesive contact, normal force is nonnegative: the surface pushes but does not pull. If signed separation is positive, normal force is zero. At closed contact, and normal force may be positive. In an ideal rigid model, , , and . These are compatibility conditions, not a formula computing force from gap. The body dynamics and other contacts also participate in finding the force.
Under Coulomb static friction,
where is the tangential force vector in newtons and is the dimensionless static coefficient. In a plane this reduces to . The cone half-angle is . Inside that set, static friction takes the value required for sticking; it does not automatically equal the boundary value. Modern Robotics' friction chapter distinguishes the set of possible zero-slip forces from the sliding rule.
What changes after slip starts?
For nonzero tangential relative velocity , one kinetic approximation is
with kinetic coefficient . The minus sign opposes relative sliding, not necessarily the body's world velocity. Its contact power is : friction dissipates energy at the interface. Do not divide by zero at rest; select the sticking condition or use an explicitly justified regularization.
Compute the force-mode change
Take a stationary 2 kg block on a horizontal floor. Let gravity be 9.81 m/s², , , and apply a horizontal pull at a height chosen so that the block does not tip. With no vertical acceleration, N. The static allowance is N.
An 8 N pull permits N: net horizontal force and acceleration are zero. A 12 N pull would require N, outside the cone, so sticking is impossible. Once rightward sliding begins, kinetic friction is N and acceleration is m/s². Static and kinetic coefficients are assumed fixture values, not measured material properties.
The diagram is force space, not a drawing of the block. Vertical position encodes normal force at 9 drawing units/N; horizontal position encodes tangent force at 12 units/N. Thus the drawn cone angle is intentionally rescaled, while its force coordinates still obey the inequality. The horizontal slice fixes 19.62 N. The solid vector ends at the feasible sticking force; the crossed dashed vector is the impossible force needed to hold against 12 N. Neither depicts the post-slip kinetic force or a trajectory.
How do planners use the cone?
Given a candidate contact mode, require each contact's forces to satisfy its cone, then balance the resulting net wrench. That is the next step in grasp wrench balance. In three dimensions, independently bounding both tangent components by admits corner forces of magnitude , outside the true circular cone. An inscribed friction pyramid sacrifices some feasible directions for linear inequalities. A circular-cone constraint preserves that boundary but changes the optimization problem.
MIT's contact equilibrium formulation combines unilaterality, friction and force/moment balance. A compliant normal law instead permits deformation and ties force to it. Compliance can better represent soft pads but needs stiffness and damping calibration. A rigid Coulomb model is a useful first screening for dry contact; adhesive, lubricated or strongly deforming interfaces need a different law. Impact impulses also need a collision model, rather than applying these static equations across an instantaneous velocity jump.
These contact directions also determine which quantities a controller can regulate. Hybrid force/position control uses the surface tangent for motion and its normal for pressing force, with explicit treatment of contact establishment and loss.
Code
This standalone Python makes the mode decision for an initially stationary block. The pull is positive and horizontal, with tipping excluded. A second case shows why the static boundary must be distinguished from actual friction.
def initial_response(pull: float, mass: float = 2.0) -> tuple[str, float, float]: if pull < 0 or mass <= 0: raise ValueError("Requires a nonnegative pull and positive mass") normal = mass * 9.81 if pull <= 0.5 * normal: return "stick", -pull, 0.0 friction = -0.4 * normal return "slide", friction, (pull + friction) / mass
for pull in (8.0, 12.0): mode, friction, acceleration = initial_response(pull) print(f"{pull:.0f} N: {mode}, friction {friction:.3f} N, a {acceleration:.3f} m/s^2")assert initial_response(0.0) == ("stick", -0.0, 0.0)assert initial_response(8.0)[1] != -0.5 * 2.0 * 9.81Output is 8 N: stick, friction -8.000 N, a 0.000 m/s^2 and
12 N: slide, friction -7.848 N, a 2.076 m/s^2.
Watch Out For
Static friction is set to its maximum everywhere
A resting block accelerates backward under a small forward pull. The code subtracts even when less force is required. Solve for the force needed to stick, check it against the cone, and use a sliding rule only when the mode requires it.
A feasible planned force slips on the actual surface
Foot force lies inside the assumed cone but contact moves. Check the measured coefficient, normal loading, contact frame and state of the surface. Use a justified conservative coefficient and detect slip; increasing normal force may help grip but can violate actuator or object-pressure limits. Cone feasibility is conditional on the model and does not establish stability of the full robot.
The Quick Version
- A nonadhesive contact pushes normally and cannot transmit normal force across a gap.
- Sticking friction occupies a bounded set; sliding friction opposes relative slip.
- The example's static allowance is 9.81 N, so 8 N sticks and 12 N initiates sliding.
- Three-dimensional tangential force must satisfy a magnitude bound, not two independent maxima.
- Contact laws constrain forces; full dynamics and geometry determine the motion.