Skip to content

[Bug Report] Error shows when import Pink IK Controller #4266

@BowenFF

Description

@BowenFF

Describe the bug

When I import Pink IK in Isaaclab, the terminal shows different error if I import in different order.

1st Condition:
`from isaaclab.app import AppLauncher

import pinocchio as pin
import torch
import warp as wp

import argparse

import numpy as np
from enum import IntEnum
from collections.abc import Sequence

parser = argparse.ArgumentParser(description="Pick and lift a teddy bear with a FR3 Duo robot using Direct Workflow.")
parser.add_argument("--num_envs", type=int, default=1, help="Number of environments to simulate.")
parser.add_argument("--urdf_path", type=str, default="/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/assets/URDF/franka_description/robots/fr3_duo/fr3_duo.urdf", help="Path to FR3 Duo URDF file.")
parser.add_argument("--mesh_path", type=str, default="/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/assets/URDF")
AppLauncher.add_app_launcher_args(parser)
args_cli = parser.parse_args()

app_launcher = AppLauncher(headless=args_cli.headless)
simulation_app = app_launcher.app`

When I RUN this code, the log shows:

`2025-12-21T12:37:45Z [11,706ms] [Error] [omni.kit.commands.command] Failed to execute a command: AddReference.
File "/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/tasks/direct/run_dual_arm_deformable_standalone_pink_V2.py", line 542, in
main()
File "/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/tasks/direct/run_dual_arm_deformable_standalone_pink_V2.py", line 536, in main
scene = InteractiveScene(scene_cfg)
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/scene/interactive_scene.py", line 179, in init
self._add_entities_from_cfg()
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/scene/interactive_scene.py", line 744, in _add_entities_from_cfg
self._deformable_objects[asset_name] = asset_cfg.class_type(asset_cfg)
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/assets/deformable_object/deformable_object.py", line 65, in init
super().init(cfg)
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/assets/asset_base.py", line 84, in init
self.cfg.spawn.func(
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/sim/utils.py", line 266, in wrapper
prim = func(prim_paths[0], cfg, *args, **kwargs)
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/sim/spawners/from_files/from_files.py", line 76, in spawn_from_usd
return _spawn_from_usd_file(prim_path, cfg.usd_path, cfg, translation, orientation)
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/sim/spawners/from_files/from_files.py", line 277, in _spawn_from_usd_file
prim_utils.create_prim(
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/exts/isaacsim.core.utils/isaacsim/core/utils/prims.py", line 736, in create_prim
add_reference_to_stage(usd_path=usd_path, prim_path=prim_path)
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/exts/isaacsim.core.utils/isaacsim/core/utils/stage.py", line 346, in add_reference_to_stage
omni.kit.commands.execute("AddReference", stage=stage, prim_path=prim.GetPath(), reference=payref)
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/kit/data/Kit/Isaac-Sim/5.1/exts/3/omni.kit.commands-1.4.10+69cbf6ad.lx64.r.cp311/omni/kit/commands/command.py", line 463, in execute
result = omni.kit.undo.execute(command, name, kwargs)
[...skipped...]
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/kit/data/Kit/Isaac-Sim/5.1/exts/3/omni.kit.commands-1.4.10+69cbf6ad.lx64.r.cp311/omni/kit/undo/undo.py", line 78, in execute
result = _execute(command, name, level, history_key)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/kit/data/Kit/Isaac-Sim/5.1/exts/3/omni.kit.commands-1.4.10+69cbf6ad.lx64.r.cp311/omni/kit/undo/undo.py", line 459, in _execute
raise error
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/kit/data/Kit/Isaac-Sim/5.1/exts/3/omni.kit.commands-1.4.10+69cbf6ad.lx64.r.cp311/omni/kit/undo/undo.py", line 420, in _execute
result = command.do()
^^^^^^^^^^^^
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/kit/data/Kit/Isaac-Sim/5.1/exts/3/omni.usd-1.13.10+69cbf6ad.lx64.r.cp311/omni/usd/commands/usd_commands.py", line 5070, in do
if self._is_reference_valid() is False:
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/kit/data/Kit/Isaac-Sim/5.1/exts/3/omni.usd-1.13.10+69cbf6ad.lx64.r.cp311/omni/usd/commands/usd_commands.py", line 5045, in _is_reference_valid
return omni.usd.is_usd_crate_file_version_supported(self._reference.assetPath)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/kit/data/Kit/Isaac-Sim/5.1/exts/3/omni.usd-1.13.10+69cbf6ad.lx64.r.cp311/omni/usd/_impl/utils.py", line 248, in is_usd_crate_file_version_supported
if not is_usd_crate_file(resolved_path):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/wcf/miniconda3/envs/isaacsim5.1/lib/python3.11/site-packages/isaacsim/kit/data/Kit/Isaac-Sim/5.1/exts/3/omni.usd-1.13.10+69cbf6ad.lx64.r.cp311/omni/usd/_impl/utils.py", line 206, in is_usd_crate_file
if Sdf.FileFormat.GetFileExtension(filepath) not in ("usdc", "usd"):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

<class 'Boost.Python.ArgumentError'> Python argument types in
FileFormat.GetFileExtension(ResolvedPath)
did not match C++ signature:
GetFileExtension(std::__cxx11::basic_string<char, std::char_traits, std::allocator >)
2025-12-21T12:37:47Z [13,512ms] [Warning] [omni.physx.fabric.plugin] FabricManager::initializePointInstancer mismatched prototypes on point instancer: /Visuals/LeftEEFrame.
2025-12-21T12:37:47Z [13,512ms] [Warning] [omni.physx.fabric.plugin] FabricManager::initializePointInstancer mismatched prototypes on point instancer: /Visuals/RightEEFrame.
2025-12-21T12:37:47Z [13,534ms] [Warning] [omni.fabric.plugin] getAttributeCount called on non-existent path /World/envs/env_0/Robot/fr3_duo/right_fr3v2_rightfinger/visuals/right_fr3v2_rightfinger_visual/Scene
2025-12-21T12:37:47Z [13,534ms] [Warning] [omni.fabric.plugin] getTypes called on non-existent path /World/envs/env_0/Robot/fr3_duo/right_fr3v2_rightfinger/visuals/right_fr3v2_rightfinger_visual/Scene
Traceback (most recent call last):
File "/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/tasks/direct/run_dual_arm_deformable_standalone_pink_V2.py", line 542, in
main()
File "/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/tasks/direct/run_dual_arm_deformable_standalone_pink_V2.py", line 538, in main
run_simulator(scene, sim, sim_cfg)
File "/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/tasks/direct/run_dual_arm_deformable_standalone_pink_V2.py", line 281, in run_simulator
sim.reset() # Reset to load initial state
^^^^^^^^^^^
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/sim/simulation_context.py", line 504, in reset
self.render()
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/sim/simulation_context.py", line 567, in render
raise exception_to_raise
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/assets/asset_base.py", line 317, in _initialize_callback
self._initialize_impl()
File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/assets/deformable_object/deformable_object.py", line 280, in _initialize_impl
raise RuntimeError(`

RuntimeError: Failed to find a deformable body when resolving '/World/envs/env_.*/Object'. Please ensure that the prim has 'PhysxSchema.PhysxDeformableBodyAPI' applied.

2nd Condition:
`from isaaclab.app import AppLauncher

import argparse

from enum import IntEnum
from collections.abc import Sequence

parser = argparse.ArgumentParser(description="Pick and lift a teddy bear with a FR3 Duo robot using Direct Workflow.")
parser.add_argument("--num_envs", type=int, default=1, help="Number of environments to simulate.")
parser.add_argument("--urdf_path", type=str, default="/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/assets/URDF/franka_description/robots/fr3_duo/fr3_duo.urdf", help="Path to FR3 Duo URDF file.")
parser.add_argument("--mesh_path", type=str, default="/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/assets/URDF")
AppLauncher.add_app_launcher_args(parser)
args_cli = parser.parse_args()

app_launcher = AppLauncher(headless=args_cli.headless)
simulation_app = app_launcher.app

import pinocchio as pin
import torch
import warp as wp
import numpy as np`

When I RUN this code, the log shows:

Traceback (most recent call last): File "/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/tasks/direct/run_dual_arm_deformable_standalone_pink_V2.py", line 540, in <module> main() File "/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/tasks/direct/run_dual_arm_deformable_standalone_pink_V2.py", line 536, in main run_simulator(scene, sim, sim_cfg) File "/home/wcf/IsaacLab2.3/fr3_duo_direct_workflow/source/fr3_duo_direct_workflow/fr3_duo_direct_workflow/tasks/direct/run_dual_arm_deformable_standalone_pink_V2.py", line 350, in run_simulator ik_controller_left = PinkIKController( ^^^^^^^^^^^^^^^^^ File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/controllers/pink_ik/pink_ik.py", line 77, in __init__ self.pink_configuration = PinkKinematicsConfiguration( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/wcf/IsaacLab2.3/IsaacLab/source/isaaclab/isaaclab/controllers/pink_ik/pink_kinematics_configuration.py", line 65, in __init__ self._all_joint_names = self.full_model.names.tolist()[1:] ^^^^^^^^^^^^^^^^^^^^^
TypeError: No Python class registered for C++ class std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > >

System Info

Describe the characteristic of your environment:

  • Commit: [e.g. 8f3b9ca]
  • Isaac Sim Version: [5.1]
  • Isaac Lab Version: [2.3.0]
  • OS: [e.g. Ubuntu 22.04]
  • GPU: [e.g. RTX 5090]
  • CUDA: [e.g. 12.8]

Additional context

In my scene, I have a deformable objects. I am not sure that whether the deformable objects simulation is conflict witth Pink IK library?

Checklist

  • [yes] I have checked that there is no similar issue in the repo (required)
  • [yes] I have checked that the issue is not in running Isaac Sim itself and is related to the repo

Acceptance Criteria

Add the criteria for which this task is considered done. If not known at issue creation time, you can add this once the issue is assigned.

  • Criteria 1
  • Criteria 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions