# Help with 2D forward kinematics

I have been trying to find the HTM of a 2-DOF arm in 2D by finding the rotation matrices and displacement vectors by hand rather than use DH parameters to better understand them. I have followed the steps in this video to find the rotation matrices by finding the rotation when the joint angle is 0, and multiplying with the 2x2 rotation matrix around the z-axis.

However, when I solve for the HTM with theta1 = 90 degrees in python, I get a displacement vector of 0,0. I am wondering if the method I'm using to find the R0-1 is correct, especially since frame 1 is offset from frame 0. My steps are listed below:

a1 and a2 are the link lengths, and theta1 and theta2 are the joint positions, shown starting at 0.

Any help is very appreciated.

• It looks like your two z axes should point in the opposite direction (right hand rule). Commented Jul 18, 2022 at 21:25

I think you are on the right track.

Prof. B.K.P. Horn at the MIT AI lab wrote this paper to analyze this problem almost 50 years ago - at a time when there weren't any robotics texts available. He goes through the problem slowly and step-by-step in a "classical" fashion.

The location of the first actuator is given by:

$$x_1 = a_1\cos\theta_1$$

$$y_1 = a_1\sin\theta_1$$

The location of the arm tip is:

$$x_2 = a_1\cos\theta_1 + a_2\cos(\theta_1+\theta_2)$$

$$y_2 = a_1\sin\theta_1 + a_2\sin(\theta_1+\theta_2)$$

I don't know if this is exactly what you are looking for, but if not I think you will find some guidance in Prof. Horn's paper. He also solves the torque problem using Lagrangians and goes through that step-by-step. If you have any other questions, you might email him. After 50 years, he is still at MIT and writes back!

• The location of the first actuator is given by this is the location of the second motor. Commented Feb 16, 2022 at 5:35

If you don't want DH, then why bother at all with rotation matrices. For this simple case, you can do it by hand much simpler than dealing with the rotation matrices.