投影高斯-赛德尔求解器
Projected Gauss-SeidelPGS进阶物理引擎中逐个约束迭代求解接触力、并截断到合法范围的经典方法。
物理引擎每一步都要算出接触点和关节上的力(或冲量),保证物体不穿透、摩擦力不超限,这本质上是带不等式条件的方程组,常写成线性互补问题(LCP)。PGS 是求解它的经典迭代法:一次只处理一个约束,假定其他约束的力不变,算出它该给多大的力,再把结果「投影」(截断)到合法范围,如法向力不能为负、摩擦力不能超出摩擦锥;所有约束轮一遍算一次迭代,迭代越多越准也越慢。ODE 的 quick 求解器、PhysX 和 MuJoCo 都提供 PGS。PhysX 5.1 起加入 TGS(时间高斯-赛德尔),把时间步切成若干子步、每个子步求解一次约束并立即积分,对大质量比和关节驱动更准,官方推荐使用,Isaac Lab 也默认 TGS。仿真配置里的「位置/速度迭代次数」就是这类求解器的迭代轮数。
例子在 Isaac Lab 里灵巧手握着的方块在指间抖动或慢慢滑落时,常见的排查方法是确认求解器用的是 TGS,并调高位置迭代次数。
- 也叫
- Projective Gauss-Seidel、TGS(时间高斯-赛德尔,Temporal Gauss-Seidel)
- 相关
- 约束求解器、线性互补问题、求解器迭代次数、PhysX、MuJoCo、接触模型
- 来源
- PhysX 5 文档:Rigid Body Dynamics(Solver Type: PGS / TGS)
Gazebo Classic 教程:Physics Parameters(quick 求解器为 PGS)
Isaac Lab API:isaaclab.sim(PhysxCfg.solver_type 默认 TGS) - 信息截至
- 2026-09