[isaacsim.asset.gen.conveyor] Isaac Sim Conveyor belt utility#

Version: 1.2.2

Overview#

The isaacsim.asset.gen.conveyor extension provides utilities for authoring and simulating conveyor belts in Isaac Sim. It includes a C++ plugin for runtime conveyor physics, an OmniGraph node for controlling conveyor behavior during simulation, and Python commands for programmatic conveyor creation.

Key Components#

Python API — create_conveyor_belt#

The create_conveyor_belt function creates an Action Graph containing the IsaacConveyor node and wires it to a target rigid body prim. If the selected prim does not already have a rigid body API, the function applies one.

from isaacsim.asset.gen.conveyor import create_conveyor_belt

stage = omni.usd.get_context().get_stage()
conveyor_prim = stage.GetPrimAtPath("/World/ConveyorBeltRigidBody")
conveyor_node = create_conveyor_belt(stage, conveyor_prim, prim_name="ConveyorActionGraph")

Deprecated: The CreateConveyorBelt Kit command is deprecated. Use create_conveyor_belt(stage, conveyor_prim) directly instead.

C++ Plugin#

A native Carbonite plugin (IOmniIsaacConveyor) provides the runtime interface used by the OmniGraph node for conveyor physics computations.

Usage#

To add a conveyor belt interactively, use Create > Isaac Sim > Warehouse Items > Conveyor. For track-based conveyor systems built from Digital Twin Assets, see the companion extension isaacsim.asset.gen.conveyor.ui and its Tools > Conveyor Track Builder window.

Enable Extension#

The extension can be enabled (if not already) in one of the following ways:

Define the next entry as an application argument from a terminal.

APP_SCRIPT.(sh|bat) --enable isaacsim.asset.gen.conveyor

Define the next entry under [dependencies] in an experience (.kit) file or an extension configuration (extension.toml) file.

[dependencies]
"isaacsim.asset.gen.conveyor" = {}

Open the Window > Extensions menu in a running application instance and search for isaacsim.asset.gen.conveyor. Then, toggle the enable control button if it is not already active.

Python API#

create_conveyor_belt(
stage: pxr.Usd.Stage,
conveyor_prim: pxr.Usd.Prim,
prim_name: str = 'ConveyorBeltGraph',
) pxr.Usd.Prim#

Create a conveyor belt action graph on a rigid body prim.

Creates an action graph containing OnPlaybackTick, IsaacConveyor, and ReadVariable nodes wired to the given prim. If the prim does not already have a rigid body API, the function walks up the hierarchy to find one or applies RigidBodyAPI, CollisionAPI, and PhysxSurfaceVelocityAPI. For UsdGeomMesh prims it additionally applies UsdPhysics.MeshCollisionAPI with the convexHull approximation, because PhysX rejects the default meshSimplification (triangle mesh) approximation on dynamic bodies and emits an error per parse otherwise. Non-mesh primitives (Cube/Sphere/Cylinder/Capsule) resolve to their analytic collision shapes and do not need (or accept) MeshCollisionAPI.

Parameters:
  • stage – The USD stage.

  • conveyor_prim – The rigid body prim to apply the conveyor belt to.

  • prim_name – Name for the conveyor belt graph prim.

Returns:

The created conveyor node prim.


Omnigraph Nodes#

The extension exposes the following Omnigraph nodes: