Import / Load a usd file containing a skeleton

Hello,
i am trying to import / load usd file (e.g. omniverse://localhost/NVIDIA/Assets/Isaac/2022.2.1/Isaac/People/Characters/original_male_adult_construction_01/male_adult_construction_01.usd) via the python api (SimulationApp). All the other usds worked fine with create_prim(...). But when i load this contruction worker (or any other model with a skeleton / skelJoints) the skelJoints turn into xforms and are no longer moveable or rotatable - so the skeleton doesn’t work anymore. Also tried add_reference_to_stage(...)(same result as create_prim(...)) and found out about payloads which i don’t get to work with the python script BUT even when loading it via drag and drop (which should be payload) it again changes skelJoints to xforms. (in a new scene drag and drop works fine and the skelJoints are still moveable).
Is there any mistake that i do? The whole script is about 1000 lines, so i won’t post it - what information is necessary, so somebody could help me?

would really appreciate some help - cheers

Additional info:
Also the final plan for this worker would be to move his hand via a leap motion controller (positions get transmitted via ros - everything ready and already moving a franka panda hand with it). When i can load the worker only need to move his hand according to (scaled) leap motion controller - hand- and finger-coordinates. But there is another Problem: (how) is it possible to setup an IK-Solver for a human-like arm? Also tried to import prerigged (with IK configured) .fbx files, but it doesn’t import/use the IK.
I am explaining this, because if this doesn’t work (yet?) - the import / load of the model wouldn’t matter anyways. Then i would use just simple geometries, that represent every fingerlink and a palm and move them.

Hi @Buzz_T - It seems like you’re experiencing an issue with importing USD files that contain skeletal animations using the Python API in Omniverse Kit. When you import these files, the skelJoints are being converted into Xforms, which makes them unmovable and unrotatable.

This could be due to the way the USD file is being imported or referenced in your script. When you use the create_prim() or add_reference_to_stage() methods, it’s possible that the skeletal animation data is not being properly preserved.

Here are a few things you could try:

  1. Make sure you’re using the latest version of Omniverse Kit and the Python API. There might have been updates or bug fixes that could resolve your issue.
  2. Instead of using create_prim() or add_reference_to_stage(), try using the UsdStage::OverridePrim() method to import the USD file. This method is designed to preserve the original structure and properties of the prim, which might include the skeletal animation data.
  3. Check if there are any errors or warnings in the console when you import the USD file. These messages might give you a clue about what’s going wrong.
  4. Try importing a different USD file that contains skeletal animations to see if the issue is specific to the construction worker model or if it’s a more general problem.

If none of these suggestions work, it would be helpful to see a simplified version of your script that reproduces the issue.

Thank you @rthaker for your help! Sorry, for the late answer - just wanted to let you (and anyone who reads this) let you know that i was in a hurry, and so i went on with a simplified version. Couldn’t get it to work or find out what the problem was/is.

1 Like

Isaac Sim version: 2022.2.1

Hi, I think I managed to solve this problem for anyone interested.

I encountered basically the same problem as the one explained in the post. I was trying to import workers with animation through the Python API (especifically: omniverse://localhost/NVIDIA/Assets/Characters/Reallusion/Worker/Props/Worker.Market_Sales_Assisting_M.usd), and when doing so they would loose their animation.

The way I solved it is pretty simple. When using create_prim(...) just make sure to specify the function parameter prime_type as SkelRoot:

create_prim(
     prim_path="your_prim_path",
     prim_type="SkelRoot",
     usd_path="your_usd_path"
)
1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.