Enable multiccd by default.
PiperOrigin-RevId: 902752921 Change-Id: I8e2085ff17db0ac0db1641b8837415c458e5eca4
This commit is contained in:
committed by
Copybara-Service
parent
8e7787ad09
commit
6cb6e5a93f
@@ -92,8 +92,6 @@ class EnableBit(enum.IntFlag):
|
||||
|
||||
INVDISCRETE = mujoco.mjtEnableBit.mjENBL_INVDISCRETE
|
||||
# unsupported: OVERRIDE, ENERGY, FWDINV, ISLAND
|
||||
# required by the C implementation only, ignored otherwise: MULTICCD
|
||||
MULTICCD = mujoco.mjtEnableBit.mjENBL_MULTICCD
|
||||
SLEEP = mujoco.mjtEnableBit.mjENBL_SLEEP
|
||||
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ from mujoco.mjx.third_party.mujoco_warp._src.types import MJ_MAX_EPAHORIZON
|
||||
from mujoco.mjx.third_party.mujoco_warp._src.types import MJ_MAXCONPAIR
|
||||
from mujoco.mjx.third_party.mujoco_warp._src.types import MJ_MAXVAL
|
||||
from mujoco.mjx.third_party.mujoco_warp._src.types import Data
|
||||
from mujoco.mjx.third_party.mujoco_warp._src.types import EnableBit
|
||||
from mujoco.mjx.third_party.mujoco_warp._src.types import DisableBit
|
||||
from mujoco.mjx.third_party.mujoco_warp._src.types import GeomType
|
||||
from mujoco.mjx.third_party.mujoco_warp._src.types import Model
|
||||
from mujoco.mjx.third_party.mujoco_warp._src.types import mat43
|
||||
@@ -1127,7 +1127,7 @@ def convex_narrowphase(m: Model, d: Data, ctx: CollisionContext, collision_table
|
||||
epa_iterations = 16 if nboxbox == ncollision else m.opt.ccd_iterations
|
||||
|
||||
# set to true to enable multiccd
|
||||
use_multiccd = m.opt.enableflags & EnableBit.MULTICCD
|
||||
use_multiccd = m.opt.disableflags & DisableBit.MULTICCD == 0
|
||||
|
||||
# need at least 4 (square sides) if there's a box collision needing multiccd
|
||||
nmaxpolygon = 4 if nboxbox > 0 else 0
|
||||
|
||||
+1
-1
@@ -370,7 +370,7 @@ def put_model(mjm: mujoco.MjModel) -> types.Model:
|
||||
)
|
||||
|
||||
# check for unsupported margin + multicontact / box-box CCD combinations
|
||||
use_multiccd = mjm.opt.enableflags & types.EnableBit.MULTICCD
|
||||
use_multiccd = (mjm.opt.disableflags & types.DisableBit.MULTICCD) == 0
|
||||
nativeccd_disabled = mjm.opt.disableflags & types.DisableBit.NATIVECCD
|
||||
BOX = int(mujoco.mjtGeom.mjGEOM_BOX)
|
||||
MESH = int(mujoco.mjtGeom.mjGEOM_MESH)
|
||||
|
||||
+2
-2
@@ -184,6 +184,7 @@ class DisableBit(enum.IntFlag):
|
||||
EULERDAMP: implicit damping for Euler integration
|
||||
NATIVECCD: native convex collision detection (ignored in MJWarp)
|
||||
ISLAND: constraint islands
|
||||
MULTICCD: multiple CCD contact points
|
||||
"""
|
||||
|
||||
CONSTRAINT = mujoco.mjtDisableBit.mjDSBL_CONSTRAINT
|
||||
@@ -203,6 +204,7 @@ class DisableBit(enum.IntFlag):
|
||||
EULERDAMP = mujoco.mjtDisableBit.mjDSBL_EULERDAMP
|
||||
NATIVECCD = mujoco.mjtDisableBit.mjDSBL_NATIVECCD
|
||||
ISLAND = mujoco.mjtDisableBit.mjDSBL_ISLAND
|
||||
MULTICCD = mujoco.mjtDisableBit.mjDSBL_MULTICCD
|
||||
# unsupported: MIDPHASE, AUTORESET
|
||||
|
||||
|
||||
@@ -212,12 +214,10 @@ class EnableBit(enum.IntFlag):
|
||||
Attributes:
|
||||
ENERGY: energy computation
|
||||
INVDISCRETE: discrete-time inverse dynamics
|
||||
MULTICCD: multiple contacts with CCD
|
||||
"""
|
||||
|
||||
ENERGY = mujoco.mjtEnableBit.mjENBL_ENERGY
|
||||
INVDISCRETE = mujoco.mjtEnableBit.mjENBL_INVDISCRETE
|
||||
MULTICCD = mujoco.mjtEnableBit.mjENBL_MULTICCD
|
||||
# unsupported: OVERRIDE, FWDINV, ISLAND
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user