GetPrimAtPath(): incompatible function arguments. in 2023 is crashing, while wroks in 2022

Hi!

I have a problem with a function GeometryPrim(prim.GetPath() in 2023 of Nvidia Isaac.

I tested that same code works in 2022 version, but crashes in 2023 with


Traceback (most recent call last):
  File "/home/karavaev/isaac/isaac_sim_experiment/soto_world.py", line 291, in <module>
    sim = RobotSimulator(simulation_app, args=args,
  File "/home/karavaev/isaac/isaac_sim_experiment/soto_world.py", line 129, in __init__
    super().__init__(simulation_app, stage_path=args.stage_path)
  File "/home/karavaev/isaac/isaac_sim_experiment/general_scene.py", line 13, in __init__
    self.setup_scene()
  File "/home/karavaev/isaac/isaac_sim_experiment/soto_world.py", line 232, in setup_scene
    self.robot = Soto(self.simulation_app, self.args.urdf_path,
  File "/home/karavaev/isaac/isaac_sim_experiment/soto.py", line 75, in __init__
    self.urdf_import()
  File "/home/karavaev/isaac/isaac_sim_experiment/soto.py", line 177, in urdf_import
    backpack_prims = [GeometryPrim(prim.GetPath()) for prim
  File "/home/karavaev/isaac/isaac_sim_experiment/soto.py", line 177, in <listcomp>
    backpack_prims = [GeometryPrim(prim.GetPath()) for prim
  File "/home/karavaev/.local/share/ov/pkg/isaac_sim-2023.1.0/exts/omni.isaac.core/omni/isaac/core/prims/geometry_prim.py", line 93, in __init__
    self._geometry_prim_view = GeometryPrimView(
  File "/home/karavaev/.local/share/ov/pkg/isaac_sim-2023.1.0/exts/omni.isaac.core/omni/isaac/core/prims/geometry_prim_view.py", line 96, in __init__
    XFormPrimView.__init__(
  File "/home/karavaev/.local/share/ov/pkg/isaac_sim-2023.1.0/exts/omni.isaac.core/omni/isaac/core/prims/xform_prim_view.py", line 121, in __init__
    self._set_xform_properties()
  File "/home/karavaev/.local/share/ov/pkg/isaac_sim-2023.1.0/exts/omni.isaac.core/omni/isaac/core/prims/xform_prim_view.py", line 193, in _set_xform_properties
    current_positions, current_orientations = self.get_world_poses()
  File "/home/karavaev/.local/share/ov/pkg/isaac_sim-2023.1.0/exts/omni.isaac.core/omni/isaac/core/prims/xform_prim_view.py", line 557, in get_world_poses
    positions[write_idx], orientations[write_idx] = get_world_pose(self._prim_paths[i])
  File "/home/karavaev/.local/share/ov/pkg/isaac_sim-2023.1.0/exts/omni.isaac.core/omni/isaac/core/utils/xforms.py", line 164, in get_world_pose
    result_transform = _get_world_pose_transform_w_scale(prim_path)
  File "/home/karavaev/.local/share/ov/pkg/isaac_sim-2023.1.0/exts/omni.isaac.core/omni/isaac/core/utils/xforms.py", line 88, in _get_world_pose_transform_w_scale
    fabric_prim = get_prim_at_path(prim_path=prim_path, fabric=True)
  File "/home/karavaev/.local/share/ov/pkg/isaac_sim-2023.1.0/exts/omni.isaac.core/omni/isaac/core/utils/prims.py", line 42, in get_prim_at_path
    return get_current_stage(fabric=fabric).GetPrimAtPath(prim_path)
TypeError: GetPrimAtPath(): incompatible function arguments. The following argument types are supported:
    1. (self: usdrt.Usd._Usd.Stage, path: usdrt.Sdf._Sdf.Path) -> usdrt::UsdPrim

Invoked with: Stage(<ID: 9223049>), Sdf.Path('/soto_2_1_description/base_link/base_to_backpack_base')

I can’t share full code unfortunately, because of NDA, but since it works with previous version, I am pretty sure it’s something with new API ?

Hi @karavaev

Please, use prim.GetPath().pathString to get the prim path as a Python string to run on all versions

3 Likes