Thank you all for the replies, especially MOM.
Regarding your observation about K{0}, normally I would also expect to choose Z0 axis to points upwards, but in general this coordinate frame can be fixed as initial condition. That is why first translation along the z axis is (d1) is negative.
But in order to follow your example and notation I will use Z0 to point upwards. But can you please tell me from where you have a1 = 350 mm and d1 = 675 mm.
But if we assume that first coordinate frame is already given like shown in the picture, then we have for the first transformation: translation along -z0 by 1045 mm, rotation around z0 by angle theta1, then translation along x1 by 500 mm, and then rotation around x1 by 90 deg. This way K{0} will match K{1}, so DH parameters are: a1 = 500 mm, alpha1 = pi/2, d1 = -1045mm, th1 = joint_angle (A1).
Now the problem I see here is matching K{1} with K{2}. The normal between z1 and z2 axis has a distance 1300 mm along x2, so the a2 = 1300mm. Now in order to match K{1} with K{2}, it is needed th1 - rotation around z1 by pi/2, so the DH parameters in the second row should be:
a2 = 1300, alpha2 = 0, d2 = 0; th2 = joing_angle(A2) - pi/2.
Now, to match {K2} with {K3}, first there should be rotation about z2 for 180° (pi) plus additional joint_angle(A3) translatin along x3 by 55 mm and then rotation around x3 for -pi/2, so DH for the third row would be:
a3 = 55, alpha3 = -pi/2, d3 = 0, th3 = joint_angle(A3) + pi.
As you can see here there is a deviation in this logic to the complete DH table presented in the picture, but I have double checked everything and the DH table and final T06 transformation matrix is given in the attachment
All this time I'm refereeing to the coordinate frames shown in the attached picture in the first post.
So for the angles [0,30,-45,35,25,10] , the result transformation matrix is:
[-0.23857, 0.10868, 0.96503, 2434.2]
[ 0.65418, -0.71644, 0.2424, 70.297]
[ 0.71773, 0.68913, 0.099823, -2354.0]
[ 0, 0, 0, 1.0]
So my originally intended question was how to make correlation with the move instruction in KUKA robot programming language.
Here I have 4x4 transformation matrix. X,Y and Z coordinates of the flange (in comparison to the fixed reference coordinate system K{0}) are: 2434.2, 70.3 and -2354.0 mm. So, how I can now connect A,B and C angles for rotation to the 3x3 submatrix inside this T06 matrix?
I hope you understand what is my question here.
I need to add more to this.
If all angles are zeros, (as MOM said, to make my life easier) then T06 is
[6.1232e-17, -6.1232e-17, 1.0, 1815.0]
[6.1232e-17, -1.0, -6.1232e-17, 4.2863e-15]
[ 1.0, 6.1232e-17, -6.1232e-17, -2290.0]
[ 0, 0, 0, 1.0]
In that case, If I look at the initial picture with K{0} and K{6}, then it looks to me that I can match {0} and {6} in the following way:
1. Translate along z by (1045+1300-55) mm, then translate along x by (500+1025+290) mm
2. Rotate about z axis for 180° (A = 180°), then rotate around new y for -90° (B = -90)
If I do this in Matlab:
v = [0 0 -(1045+1300-55)];
T1 = trvec2tform(v);
v = [500+1025+290 0 0];
T2 = trvec2tform(v);
T3r = rotz(180);
T3 = rotm2tform(T3r);
T4r = roty(-90);
T4 = rotm2tform(T4r);
Tres = T1*T2*T3*T4
The result is:
Tres =
0 0 1 1815
0 -1 0 0
1 0 0 -2290
0 0 0 1
So in this case, there is a match in calculation.
rotz(A=180)*roty(B=-90) would produce 3x3 submatrix.