I’m currently developing a navigation system using Isaac Sim (version 2024.1 / 4.0+), and I attempted to programmatically add a NavMesh obstacle to a prim using the following command:
import omni.kit
omni.kit.commands.execute(“ApplyNavMeshObstacleSchema”, prim_path=“/World/MyCube”)
However, it throws the following error at runtime:
[Error] [omni.kit.commands.command] Can’t execute command: “ApplyNavMeshObstacleSchema”, it wasn’t registered or ambiguous.
I checked the command list under Window > Commands, and there is no such command registered. I’ve enabled the following extensions:
“isaacsim.exp.base” = {}
“omni.anim.graph.schema” = {}
“omni.physx.commands” = {}
“omni.anim.navigation.schema” = {}
“omni.anim.navigation.core” = {}
“omni.anim.navigation.recast” = {}
“omni.anim.navigation.ui” = {}
“omni.anim.navigation.bundle” = {}
But this mainly covers baking and querying the NavMesh, not assigning obstacle properties to individual prims.
So I would like to ask:
1. Is ApplyNavMeshObstacleSchema a deprecated or internal-only command?
2. What is the correct way to mark a prim as a NavMesh obstacle via Python script (no GUI)?
3. Should I apply a specific USD schema manually, or is there an alternative command/API to achieve this?
Any guidance would be greatly appreciated. Thanks in advance!