Skip to content

Respect collision filtering from the contype & conaffinity algorithm #10

@andrewkaufman

Description

@andrewkaufman

Is this a new feature, an improvement, or a change to existing functionality?

New Feature

Feature Description

In mujoco, contype and conaffinity form a 32-bit integer bitmask used for contact filtering of dynamically generated contact pairs.

MJC geoms in the same body or geoms between parent & child bodies cannot collide. After filtering those, two geoms can collide if the contype of one geom is compatible with the conaffinity of the other geom or vice versa. Compatible means that the two bitmasks have a common bit set to 1:

(contype1 & conaffinity2) || (contype2 & conaffinity1)

In USD, contact filtering must be specified explicitly using either a UsdPhysicsCollisionGroup or by applying UsdPhysicsFilteredPairsAPI. Neither of these approaches maps particularly well to contype/conaffinity... but the feature is essential, so it must be converted to the USD Asset somehow.

Additional context or alternatives

No response

Code of Conduct

  • I agree to follow mujoco-usd-converter Code of Conduct
  • I have searched the open issues and have found no duplicates

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions