# API for deploying Inverse Kinematics

May I know where I can find the documentation on deploying inverse kinematics?

Especially for a robot arm mounted on a moving base.

Thank you.

Check out the Lula Kinematics Solver:

Thank you so much.
But it seems Lula kinematics solver is for robot arm with fixed base.
Any API for inverse kinematics for mobile manipulators?

Thank you.

Not in general, but do you have a particular robot in mind? If it’s a holonomic base, one option would be to use Isaac Sim standard IK, representing the base as a pair of prismatic joints and a revolute joint (for XY position and rotation).

Yes, it is prismatic joints. May you tell me more about it?
Thanks

Yes, it is a holonomic base robot. May you tell me more about it?
Thank you.

The idea is to create a URDF where the mobile base is represented as a series of fake links and joints:

`fixed_link --> x_joint (prismatic) --> dummy_link_1 --> y_joint (prismatic) --> dummy_link_2 --> rotation_joint (revolute) --> base_of_arm --> ... (rest of arm)`

This is a hack, but it might work well enough depending on your use case.

Regarding this solution, I have a few questions:

1. The flow is “fixed_link → x_joint (prismatic) → dummy_link_1 → y_joint (prismatic) → dummy_link_2 → rotation_joint (revolute) → base_of_arm → … (rest of arm)”, does it mean the first link, “fixed_link”, is not movable?

2. May I know how to make a dummy link?

3. Would it be possible if you can demo it in a short video?

4. After this, may I know which Isaac Sim IK library is suitable?

Thank you so much.

1. Correct. It’s just serving as the origin of your (x,y) coordinate system.
2. The idea is to construct a URDF that looks something like this:
``````<robot name="my_holonomic_robot">
<joint name="x_joint" type="prismatic">
<origin rpy="0 0 0" xyz="0 0 0"/>
<axis xyz="1 0 0"/>
<limit effort="10" lower="-10" upper="10" velocity="1"/>
</joint>
<joint name="y_pos" type="prismatic">
<origin rpy="0 0 0" xyz="0 0 0"/>
<axis xyz="0 1 0"/>
<limit effort="10" lower="-10" upper="10" velocity="1"/>
</joint>
<joint name="rotation_joint" type="revolute">