Embodied AI Glossary中文

Collision Filtering

碰撞过滤(碰撞组)Advanced

Declaring in advance which object pairs should never count as colliding, saving computation and avoiding contact that shouldn't exist.

Not every pair of objects in a simulation needs its collisions computed: a robot's adjacent links are naturally touching right at a joint, and thousands of parallel training environments running at once shouldn't collide with each other either. Collision filtering discards these pairs after the broad phase but before the narrow phase. A common technique is a bitmask attached to each geometry. In MuJoCo, every geom has two integers, contype and conaffinity, and a pair is only checked if one's contype shares at least one set bit with the other's conaffinity — a mechanism borrowed from the ODE engine, with both defaulting to 1; MuJoCo also skips collisions within the same rigid body and between parent and child bodies by default, and pairs can be explicitly excluded with exclude. PhysX implements similar grouping through a filter shader. Getting this wrong leads to problems like a gripper failing to hold an object or a foot passing through the ground.

ExampleIsaac Lab's InteractiveSceneCfg defaults to filter_collisions=True, so cloned environments never collide with each other, while all of them can still collide with global objects such as the ground.

Also called
Collision Groups, contype/conaffinity, Collision Mask, Collision Layers
Related
Broad-phase / Narrow-phase Collision Detection · Collision Detection · Self-Collision Checking · Collision Geometry (Collider) · MJCF (MuJoCo XML Format) · Vectorized Environments
Sources
MuJoCo Documentation: Computation - Collision detection (Selection)
NVIDIA PhysX 5 SDK Documentation: Rigid Body Collision - Collision Filtering
Isaac Lab API: isaaclab.scene (InteractiveSceneCfg.filter_collisions)
As of
2026-09

See it in the full glossary →