Open Source Robotics

精选高质量开源机器人项目、工具和软件,推动机器人社区发展。

Penalty-Based Contact Model

  • 又称: spring-damper contact model, penalty method contact
  • 类别: Software & tooling › Simulation & twins
  • 标签: contact, physics-simulation, differentiable-simulation, numerical-methods, dynamics

一种接触模型,它允许物体轻微重叠,并用与穿透深度和穿透速度成正比的弹簧-阻尼力把它们推开。

定义

基于罚函数的接触模型(penalty-based contact model)把接触视为一根带阻尼的刚性弹簧。当两个物体重叠时,仿真器沿接触法向测量穿透深度,并施加一个排斥力,通常为 k 乘以深度加上 d 乘以穿透速率,其中 k 是刚度,d 是阻尼系数。该力只在物体重叠时起作用,并且会被截断,使接触永远不会把物体拉到一起。也存在非线性变体;例如 Hunt–Crossley 模型让阻尼力随穿透深度增长,以避免在碰撞瞬间出现非物理的力跳变。切向摩擦通常以库仑摩擦的正则化版本加入。

这种方法之所以有吸引力,是因为它简单且局部:接触力是当前状态的显式函数,因此无需求解全局约束问题,而且这些力关于状态是连续的,适合基于梯度的优化和可微仿真。另一类方法是硬接触或基于约束的接触,它通过互补问题或约束优化精确地强制不穿透,代价是求解器更复杂、行为不光滑。软约束模型和水弹性模型介于两者之间。

主要的困难在于刚度。软弹簧会导致明显的穿透,以及弹跳、发软的接触。硬弹簧能使穿透保持很小,但会使方程变得刚性,需要非常小的时间步长或隐式积分才能保持稳定,并且会产生大而快速变化的力。对于可微仿真,这也会影响梯度:刚性的罚函数接触在接触事件附近会产生非常大的梯度,而且这些梯度在不同 rollout 之间的方差会随刚度增大而增长,这可能使精确的仿真器梯度在策略优化中不如更平滑的估计有用。

为何重要

接触是机器人仿真中最困难的部分,接触模型的选择决定了仿真器的稳定性、速度、精度和可微性。罚函数模型在可微仿真器和研究用仿真器中很常见,因此理解它们在刚度上的权衡,可以解释工程师遇到的许多不稳定、穿透和梯度问题。

主要应用

  • 用于控制和设计优化的可微物理仿真器
  • 软接触和可变形接触的仿真
  • 使用柔顺地面模型的足式运动仿真
  • 触觉渲染和虚拟夹具
  • 用于原型开发和研究的简单自定义仿真器

实际应用

一位研究人员构建了一个简单的可微仿真器来优化一个推动动作。推杆、箱子和桌面之间的接触使用罚函数模型,沿法向是线性弹簧和阻尼器,再加上一个平滑的库仑摩擦项。刚度较低时,箱子明显陷入桌面并且滑动得很怪异;提高刚度可以解决这个问题,但除非把时间步长减小一个数量级,否则仿真就会发散。最终箱子位置关于推动轨迹的梯度也变得不稳定。研究人员最终选定了一个刚度,使穿透在所选时间步长下保持在不到一毫米,加入接近临界阻尼的阻尼,并通过对若干条扰动 rollout 取平均来平滑梯度估计。

常见误解

  • 出现穿透就说明模型坏了 — 弹簧需要一定的变形才能产生力,因此小的穿透是固有的,需要调节而不是消除
  • 接触越硬总是越准确 — 更高的刚度需要更小的时间步长,可能使仿真失稳,并使梯度的方差更高
  • 罚函数接触在任何地方都给出平滑的梯度 — 力仍然会在接触瞬间被接通和断开,因此接触事件附近的梯度可能很大或缺乏信息

谁需要了解

  • 物理仿真和物理引擎开发人员
  • 从事可微仿真的研究人员
  • 依赖仿真的运动与操作工程师
  • 触觉技术开发人员

相关技术

  • Hunt-Crossley 接触模型(Hunt-Crossley Contact Model)
  • Kelvin-Voigt 模型(Kelvin-Voigt Model)
  • 线性互补问题(Linear Complementarity Problem)
  • 水弹性接触(Hydroelastic Contact)
  • 隐式积分(Implicit Integration)

相关术语

  • Differentiable Simulation
  • Coulomb Friction
  • Contact mode
  • Signed Distance Field
  • Hybrid system
  • Reduced Coordinates

相关项目

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • ProtoMotions: NVIDIA framework for training simulated digital humans and humanoid robots on GPUs
  • PHC: Physics-based perpetual humanoid controller with fail-state recovery for real-time avatars
  • SOFA Framework: Real-time physics simulation framework for medical simulation and soft tissue modeling
  • DART: C++ physics engine for articulated rigid body dynamics and robotics simulation
  • frax: JAX library for fast, differentiable robot kinematics, dynamics and inverse kinematics

本网站需要 JavaScript 才能正常运行。请启用 JavaScript 以浏览我们的开源机器人项目。