Surface Gripper Bindings#
The compiled Surface Gripper binding module (_surface_gripper) moved from the
isaacsim.robot.surface_gripper package root into the bindings subpackage. This
matches the Isaac Sim packaging convention, where compiled pybind11 modules live
under <package>/bindings/.
Scripts that import the binding through its old submodule path fail at import time:
import isaacsim.robot.surface_gripper._surface_gripper
# ModuleNotFoundError: No module named 'isaacsim.robot.surface_gripper._surface_gripper'
The interface is otherwise unchanged. acquire_surface_gripper_interface(),
release_surface_gripper_interface(), GripperStatus, and SurfaceGripperInterface
behave exactly as before — only the import path changed. Update your imports as described
below.
Note
The bindings relocation applies to every Isaac Sim extension with compiled
pybind11 modules, not only Surface Gripper. For example,
import isaacsim.sensors.physics._sensor,
import isaacsim.sensors.physx._range_sensor, and
import isaacsim.core.simulation_manager._simulation_manager fail the same way in
6.0, while the package-root re-export form
(from isaacsim.sensors.physics import _sensor) keeps working. Apply the same
import mapping shown below to any deep binding import in your project.
Import mapping#
The binding is available in two equivalent ways. Use the package-root re-export when you
want the module as a namespace, and the direct bindings submodule import when you only
need specific symbols.
Old import (Isaac Sim 5.x and earlier) |
New import (Isaac Sim 6.0 and later) |
|---|---|
|
|
|
|
Code examples#
Acquire the interface and query gripper status
# Old (Isaac Sim 5.x and earlier)
import isaacsim.robot.surface_gripper._surface_gripper as surface_gripper
gripper = surface_gripper.acquire_surface_gripper_interface()
status = gripper.get_gripper_status("/World/SurfaceGripper")
is_closed = status == surface_gripper.GripperStatus.Closed
# New (Isaac Sim 6.0 and later)
from isaacsim.robot.surface_gripper import _surface_gripper as surface_gripper
gripper = surface_gripper.acquire_surface_gripper_interface()
status = gripper.get_gripper_status("/World/SurfaceGripper")
is_closed = status == surface_gripper.GripperStatus.Closed
Import specific symbols
# Old (Isaac Sim 5.x and earlier)
from isaacsim.robot.surface_gripper._surface_gripper import (
acquire_surface_gripper_interface,
GripperStatus,
)
# New (Isaac Sim 6.0 and later)
from isaacsim.robot.surface_gripper.bindings._surface_gripper import (
acquire_surface_gripper_interface,
GripperStatus,
)
Deprecated CreateSurfaceGripper Command#
The CreateSurfaceGripper Kit command is deprecated in Isaac Sim 6.0 and
will be removed in a future release. It still works but logs a deprecation
warning. Call isaacsim.robot.surface_gripper.create_surface_gripper
instead. As with the old command, pass the parent prim path — the function
creates a child prim named SurfaceGripper (SurfaceGripper_01, and so
on, if the name is taken) and returns the created Usd.Prim.
# Old (Isaac Sim 5.x and earlier) — deprecated in 6.0
import omni.kit.commands
result, prim = omni.kit.commands.execute(
"CreateSurfaceGripper",
prim_path="/World/Robot",
)
# New (Isaac Sim 6.0 and later)
import omni.usd
from isaacsim.robot.surface_gripper import create_surface_gripper
stage = omni.usd.get_context().get_stage()
prim = create_surface_gripper(stage, "/World/Robot")