[Isaac Lab] Collision fails on Conveyor (Surface Velocity) in InteractiveSceneCfg (Teleoperation task)

**IsaacSim: 5.1.0.0

Isaac Lab:** 0.47.2

Operating System

Ubuntu 22.04

GPU Information

  • Model: NVIDIA RTX 3090

  • Driver Version: 570.211.01

Topic Description

Collision fails on Conveyor (Surface Velocity) in InteractiveSceneCfg (Teleoperation task)

I am building a custom teleoperation task using the InteractiveSceneCfg workflow in Isaac Lab. I am encountering a persistent physics consistency issue where dynamic objects (and the robot’s end-effector) fall directly through a conveyor belt asset when running the environment via gym.make(). The issue is strictly tied to the Surface Velocity attribute—if enabled (even at 0.0), the collider is ignored.

Detailed Description

I am using a custom USD stage with a simple Cube primitive acting as a conveyor belt. The primitive has RigidBody, Collider (Box Collider), and Surface Velocity (Conveyor Surface) applied.

When I load this scene through the InteractiveSceneCfg architecture in a headless Gym script:

  1. The Conveyor Belt loads visually.

  2. However, collisions fail immediately. Dynamic objects placed on the belt fall directly through the mesh (“tunneling”).

  3. This happens regardless of the velocity magnitude. Even if Surface Velocity is set to (0, 0, 0), the presence of the API seems to invalidate the collider.

Crucial Observation (GUI vs. Gym): The exact same USD stage works perfectly in the Isaac Sim GUI (Play Mode). The issue is specific to the initialization/cloning process within Isaac Lab’s gym.make() workflow.

Steps to Reproduce

  1. Create USD Asset: Create a Cube primitive. Add RigidBody, Collider, and Surface Velocity.

  2. Configure Task: Create a task configuration class inheriting from InteractiveSceneCfg. Add the conveyor asset to the scene.

  3. Run Script: Load the task using gym.make("MyTask-v0") in a standard teleoperation script.

  4. Spawn Object: Spawn a dynamic object (e.g., a cylinder) above the conveyor.

  5. Observe: The object will fall through the conveyor.

Error Messages

No explicit error messages in the console. The physics simply fails silently.

Screenshots or Videos

I have recorded the behavior in both scenarios to demonstrate the discrepancy.

1. Isaac Sim GUI (Play Mode) - WORKS ✅ (The object rests on the conveyor correctly)

case_in_isaacsim

2. Isaac Lab Execution (Headless/Gym) - FAILS ❌ (The object tunnels through the conveyor immediately)

case_with_isaaclab

Additional Information

What I’ve Tried

I performed an A/B test to isolate the cause:

  • Case A (Surface Velocity Removed): Collision works ✅.

  • Case B (Surface Velocity Enabled, set to 0,0,0): Collision fails ❌.

  • Case C (Surface Velocity Enabled, set to 0.3,0,0): Collision fails ❌.

  • Rigid Body Check: I verified this happens with both Kinematic Rigid Bodies and Dynamic Rigid Bodies (with Locked DOF).

Additional Context

My environment installs Isaac Sim as a Python library. I suspect InteractiveSceneCfg (or the underlying Fabric/Cloner) might be stripping or mishandling Surface Velocityand Collider attributes during environment generation.

Thank you for your interest in Isaac Lab. To ensure efficient support and collaboration, please submit your topic to its GitHub repo following the instructions provided on Isaac Lab’s Contributing Guidelines regarding discussions, submitting issues, feature requests, and contributing to the project.

We appreciate your understanding and look forward to assisting you.