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 以瀏覽我們的開源機器人專案。