Inverse Kinematics Problem of Parallel Mechanisms

Isaac Sim Version

4.2.0

Isaac Lab Version (if applicable)

1.2

Operating System

Ubuntu 22.04

GPU Information

  • Model: RTX4090
  • Driver Version: 560.35.03

Topic Description

In Isaac Sim, I successfully built a parallel mechanism model using the Exclude from Articulation feature. After setting the desired joint positions, the end effector is able to move. However, now I want to specify the desired position of the end effector and calculate the target joint positions. I found that the Lula library requires defining a URDF, but my model cannot be defined with a URDF.
Are there other methods in Isaac Sim to solve the inverse kinematics? I have looked into the Kinematic Solver interface, but it only provides the interface, and apart from LulaKinematicsSolver, there are no other implementation classes.

I also attempted to use Isaac Lab’s IKController to solve the inverse kinematics, but the Jacobian matrix I retrieved using the API robot.root_physx_view.get_jacobians() is incorrect (it’s not an issue of end effector and joint index mismatch). Could this be because the solver itself does not support parallel mechanisms, or is it due to a configuration issue on my part? Additionally, I couldn’t find documentation for this API. How should I troubleshoot and identify the cause of the error?

You’re correct that the LulaKinematicsSolver requires a URDF. Even if other input modalities were supported, the Lula library assumes that the underlying kinematic structure is a tree (i.e., single root frame, single parent frame per joint and no cyclic dependencies). This means that the Lula motion generation extension will unfortunately not be able to help with your parallel mechanism.

I am not familiar with he Isaac Lab IKController, and cannot speak to how well it may or may not work for this mechanism.

1 Like

Thank you very much for your response.

Aside from the Lula library, are there other ways to calculate IK in Isaac Sim?

Or can I implement my own inverse kinematics solver by extending the KinematicSolver interface?

To my knowledge, there aren’t any other IK solutions supported in Isaac Sim.

If you built your own IK solution, you could extend the KinematicsSolver interface (if the interface itself added value for your application), or you could use your IK solution directly to set joint position targets (if the KinematicsSolver interface did not itself add value for your application)

Thank you for your reply.

I’m planning to write my own IK solver.

Good Luck.