Couplers#

Couplers 处理 Genesis 中不同 solvers 之间的多物理场交互。它们支持模拟不同材料类型相互作用的场景(例如机器人抓取软体物体)。

可用的 Couplers#

Coupler

描述

使用场景

LegacyCoupler

基于脉冲的耦合

简单交互

SAPCoupler

空间加速

高效的 broad-phase

IPCCoupler

Incremental Potential Contact

鲁棒的接触

配置#

Couplers 通过 coupler 选项配置:

import genesis as gs

gs.init()
scene = gs.Scene(
    coupler_options=gs.options.CouplerOptions(
        # Coupler 特定的选项
    ),
)

多物理场示例#

机器人 + 软体物体#

# 刚体机器人
robot = scene.add_entity(gs.morphs.URDF(file="gripper.urdf"))

# 软体 MPM 物体
soft = scene.add_entity(
    gs.morphs.Box(pos=(0.5, 0, 0.5), size=(0.1, 0.1, 0.1)),
    material=gs.materials.MPM.Elastic(),
)

scene.build()

# 耦合自动发生
for i in range(1000):
    scene.step()

工具 + 流体#

# 运动学工具
tool = scene.add_entity(
    gs.morphs.Mesh(file="paddle.obj"),
    material=gs.materials.Tool(),
)

# SPH 流体
fluid = scene.add_entity(
    gs.morphs.Box(pos=(0, 0, 0.5)),
    material=gs.materials.SPH.Liquid(),
)

Coupler 类型#

另请参阅#