# Inverse Kinematics Problem of Articulated Manipulators Arm

I have a robotic arm consist of three joints (servomotor for each joint), as shown in the figure below:

Notes:

Each servomotor rotates around 180 degrees.

The angles of the theta2 and theta3 represent 90 degrees in the figure above.

I found the forward kinematics by using the parameters of DH convention, as shown in the figure above.

The Final Transformation Matrix is:

The position of the robotic arm end-effector is correct for any angle of theta1, theta2, and theta3 between -90 and 90 degrees.

My problem is in the inverse kinematics of the robotic arm, where, the theta2 always affected by theta3 and thus the response of theta2 incorrect, while theta1 and theta3 are always correct. Please see the cases below that show this problem.

Thank you.

I’ll get you started, and see if you can calculate all three joint angles given values for $$X$$, $$Y$$, and $$Z$$. If you cannot, we can continue peeling the onion until you are able to do that.

You will have to manipulate the expressions for $$X$$, $$Y$$, and $$Z$$, and use trigonometric identities to solve for the individual joint values.

Start with the easiest: using the $$X$$ and $$Y$$ terms only, you should be able to write an expression that only involves th1. It will be a tangent function that can be inverted to find th1.

Next, square the $$X$$ and $$Y$$ terms, and add them together. This will eliminate th1 from the expression. Subtract $$Z$$ squared from the remaining terms. You should be left with expressions of a constant times [cos(th2 + th3) cos(th2) + sin(th2 + th3) sin(th2)]. Using a trigonometric identity, this can be solved for th3 using the inverse cos function.

See if you can get to this point, then try other manipulations to solve for (th2 + th3), which will get you the last value.

• thank you for your reply, but I solved my problem by using the geometry approach and also I got the same results. – B. Antony Feb 6 at 5:48
• Great answer, it is possible to calculate the inverse kinematics without getting in touch with a real computer or real software projects. The answer explains the problem on a theoretical basis with a strong focus on algebra transformation. This avoids to raise detail problems which are happening while implementing the code in Python programming language or in a 3d physics engine. – Manuel Rodriguez Feb 6 at 10:05
• @B.Antony, the geometric approach is also a great way to solve this problem. Good job. – SteveO Feb 6 at 20:53
• Thanks @ManuelRodriguez. – SteveO Feb 6 at 20:53

New contributor
robotno is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.