IK Did Not Converge to a Solution

I’m trying to reproduce the results in the “Advanced Tutorials: Adding a new manipulator” and more specifically “Adding a Follow Target Task”. After completing the tutorial for my robot, I get the following error printed in the console: IK did not converge to a solution. No action is being taken. I can’t seem to figure out what I’m doing wrong:

My robot_descriptor.yaml is as follows:

api_version: 1.0
cspace:
- shoulder_L
- elbow_L
- insertion_L
- tool_roll_L
- wrist_joint_L
root_link: world
default_q: [
0.00, 0.00, 0.00, 0.00, 0.00
]
cspace_to_urdf_rules:
composite_task_spaces:

I’ve formatted my robot.urdf exactly as the tutorial’s cobotta_pro_900.usd as evidenced by the following screenshot:

<?xml version="1.0" ?>
<robot name="robot_single">
  <link name="world"/>
  <joint name="joint_w" type="fixed">
    <parent link="world"/>
    <child link="base_link_L"/>
  </joint>
 <link name="base_link_L">
    <visual>
      <geometry>
        <mesh filename="../meshes/dae/left_arm_d/base_w_motors.dae" />
      </geometry>
      <origin rpy="0 0 1.57075" xyz="0 0 0" />
    </visual>
    <collision>
      <geometry>
        <mesh filename="../meshes/dae/left_arm_d/base_w_motors.dae" />
      </geometry>
      <origin rpy="0 0 1.57075" xyz="0 0 0" />
    </collision>
    <inertial>
      <mass value="0.1"/>
      <origin rpy="0.000000 0.000000 0.000000" xyz="0.000000 0.000000 0.000000"/>
      <inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
    </inertial>
  </link>
 <joint name="shoulder_L" type="revolute">
    <axis xyz="0 0 1" />
    <limit effort="1" lower="-3.1415" upper="3.1415" velocity="0.5" />
    <origin rpy="1.5707963267948966 -1.9383641042662245 0" xyz="0.0 0.0 0" /> 
    <parent link="base_link_L" />
    <child link="link1_L" />
    <dynamics damping="9.5" friction="0"/>
  </joint>
  <link name="link1_L">
    <visual>
      <geometry>
        <mesh filename="../meshes/dae/left_arm_d/link1_w_cover.dae" />
      </geometry>
      <origin rpy="0 1.5705 -0.36751734624250643" xyz="0 0 0" />
    </visual>
    <collision>
      <geometry>
        <mesh filename="../meshes/dae/left_arm_d/link1_w_cover.dae" />
      </geometry>
      <origin rpy="0 1.5705 -0.36751734624250643" xyz="0 0 0" />
    </collision>
    <inertial>
      <mass value="0.50307"/>
      <origin rpy="0.000000 0.000000 0.000000" xyz="0.000000 0.000000 0.000000"/>
      <inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
    </inertial>
  </link>
etc...

Screenshot 2022-11-12 16:31:21

The ik_solver.py is formatted as follows:

from omni.isaac.motion_generation import ArticulationKinematicsSolver, LulaKinematicsSolver
from omni.isaac.core.articulations import Articulation
from typing import Optional


class KinematicsSolver(ArticulationKinematicsSolver):
    def __init__(self, robot_articulation: Articulation, end_effector_frame_name: Optional[str] = None) -> None:
        self._kinematics = LulaKinematicsSolver(robot_description_path="/home/cyril/Desktop/Theater-main/rmpflow/robot_descriptor.yaml",
                                                urdf_path="/home/cyril/Desktop/Theater-main/robot1/robot.urdf")
        if end_effector_frame_name is None:
            end_effector_frame_name = "wrist_L"
        ArticulationKinematicsSolver.__init__(self, robot_articulation, self._kinematics, end_effector_frame_name)
        return

Any help would be greatly appreciated!

same problem, waiting for help too

@czakka Sorry for the late reply. Since there has been a new release since you posted this question with improved tutorials, can you tell me if this is still an issue for you? Or is there anything else that I can help you with?

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