ABB Robot rmpflow problem

Note: For any Isaac Lab topics, please submit your topic to its GitHub repo (GitHub - isaac-sim/IsaacLab: Unified framework for robot learning built on NVIDIA Isaac Sim) following the instructions provided on Isaac Lab’s Contributing Guidelines (Contribution Guidelines — Isaac Lab Documentation).

Please provide all relevant details below before submitting your post. This will help the community provide more accurate and timely assistance. After submitting, you can check the appropriate boxes. Remember, you can always edit your post later to include additional information if needed.

Isaac Sim Version

4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: RTX 2080
  • Driver Version: Studio Driver - 572.16

Topic Description

Detailed Description

I have been trying to import an ABB IRB6700 into isaac sim and perform a simple follow target task using RmpFlow. For this purpose, I started with importing the URDF file into IsaacSim. I then created the Lula Robot Description file by using the given tutorial (Lula Robot Description). I then proceeded to create the RmpFlow configuration files using the following tutorial (Configuring RMPflow for a New Manipulator). However, when I press the Follow Target button in the extension window, the command prompt shows “Failed to compute Inverse Kinematics” and the robot does not move. What could be a possible problem for this?

Steps to Reproduce

  1. Import robot URDF
  2. Create Lula Robot description file
  3. Run the Lula Test Widget extension to test the file.

Error Messages

I also get this error when I press play:

2025-05-26 10:54:23 [2,731,988ms] [Error] [omni.physx.plugin] Usd Physics: PhysxMimicJointAPI at /irb6700_235_265/link_1/cylinder_joint must have exactly 1 “referenceJoint” relationship defined. 2025-05-26 10:54:23 [2,731,989ms] [Error] [omni.physx.plugin] Usd Physics: PhysxMimicJointAPI at /irb6700_235_265/cylinder/piston_joint must have exactly 1 “referenceJoint” relationship defined.

Screenshots or Videos

Additional Information

What I’ve Tried

I have tried to recreate the files but it has not changed anything.

Additional Context

I am uploading the relevant files for you to troubleshoot. Since this is my first time creating RMPflow config files and robot description files, it is possible that I might have made a mistake in it.
Abb_irb6700.zip (2.8 MB)

Hello. Would love to have some update on this! Thank you!

Hi @saa-97! There could be multiple reason for IK failure, such as incorrect joint limits, target out of reach, etc. Could you please share your extension folder for the ABB robot so I can replicate this on my side? Thanks!

Hi I was able to make this work. I had another question about mimic joints, if you look at the zip file I attached above, there two joints in the ABB robot (cylinder and piston) which are mimic joints. I don’t really understand the purpose of mimic joints in this scenario. Also, if you use the physics inspector to move the robot around, the cylinder and piston move independently and in a wrong manner. Is there any way to get correct motion of the cylinder and piston with respect to the rest of the robot movement? Sorry for getting back to you so late. Thank you!

Hello, I have an update about the mimic joints. In the URDF of the robot, you can see that the cylinder and piston joints are set to mimic joint 2. However, when I load the robot in IsaacSim, the mimic joints lose their reference and donot function. If I manually put the references, it will work but will reset upon next reload.

Is there any way to make it stop losing references?


Thanks.

Hi @saa-97 could you please try our recent release Isaac Sim 5.0 and see if this issue still persists?

Hi @zhengwang. I tried with the latest release i.e. Isaac Sim 5.0 and the behavior seems to be the same as before. The robot does not pick up the joint reference for mimic joints directly from the urdf. I still have to put them manually.

Thanks @saa-97! Let me reach out to the internal team for this issue.

Hi @saa-97. Did you save your USD file after updating the reference joint?

You can also double check with either of the following ways:

  1. tools → usd → usd paths → reload paths. Then you should see the reference you added
  2. Layer → right click on the root layer and click on edit, it should pop up a (VScode) window with your usda file. In the file, it should have the reference path.

Hi @zhengwang, I confirmed from the original usd of the robot and I made sure that I saved the joint references before running the rmp flow example. However, I am not sure how to confirm using the methods that you mentioned. Still, I am attaching a screenshot where you can confirm that the joint has been added as a reference:

You can also see in the original robot .usd that the joint reference has been added:

I am also attaching the file which I got using method 2, however I cannot see any references in there.
usda.txt (8.7 KB)

Thanks for the shared usda file. Let me pass this to the internal team

Hi @saa-97 ! Thanks for your shared USD. But we are not able to replicate your issue. Please check out this video:

Hello!

We noticed that this topic hasn’t received any recent responses, so we are closing it for now to help keep the forum organized.

If you’re still experiencing this issue or have additional questions, please feel free to create a new topic with updated details. When doing so, we recommend mentioning or linking to this original topic in your new post—this helps provide context and makes it easier for others to assist you.

Thank you for being part of the NVIDIA Isaac Sim community.

Best regards,
The NVIDIA Isaac Sim Forum Team