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.
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:
https://docs.omniverse.nvidia.com/app_isaacsim/app_isaacsim/advanced_tutorials/tutorial_motion_generation_lula_kinematics.html
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:
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?
May I know how to make a dummy link?
Would it be possible if you can demo it in a short video?
After this, may I know which Isaac Sim IK library is suitable?
Thank you so much.
<robot name="my_holonomic_robot">
<link name="fixed_link"/>
<link name="dummy_link_1"/>
<joint name="x_joint" type="prismatic">
<parent link="fixed_link"/>
<child link="dummy_link_1"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<axis xyz="1 0 0"/>
<limit effort="10" lower="-10" upper="10" velocity="1"/>
</joint>
<link name="dummy_link_2"/>
<joint name="y_pos" type="prismatic">
<parent link="dummy_link_1"/>
<child link="dummy_link_2"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<axis xyz="0 1 0"/>
<limit effort="10" lower="-10" upper="10" velocity="1"/>
</joint>
<link name="base_of_arm"/>
<joint name="rotation_joint" type="revolute">
<parent link="dummy_link_2"/>
<child link="base_of_arm"/>
<origin rpy="0 0 0" xyz="0 0 0"/>
<axis xyz="0 0 1"/>
<limit effort="10" velocity="3.14"/>
</joint>
<!-- etc. -->
</robot>