我有一个项目,我需要对机械臂进行基于 matlab 的仿真。
img http://img845.imageshack.us/img845/4512/l5mx.png
第一部分位于原点,可以在世界坐标系中绕 Z 轴旋转。这个关节称为joint1。下一个关节joint2在part 1坐标系的Z方向上位移0.8m。它将绕part2坐标系的Y轴旋转。Joint3在part2的csystem的Z方向上位移0.6m。它将围绕 part3 的 csystem 的 y 轴旋转。part3的末端在part3的csystem的Z方向上位移0.7m。
现在,让我们尝试做一些矩阵。我很确定我做错了这些。坐标将采用齐次形式,因此 v = [v,1]。
T_Wto1 = [cos(alpha(1)), -sin(alpha(1)), 0 , 0;
sin(alpha(1)), cos(alpha(1)), 0 , 0;
0, 0, 1 , 0.8;
0, 0, 0, 1];
T_1to2 = [cos(alpha(2)), 0, sin(alpha(2)), 0;
0, 1, 0, 0;
-sin(alpha(2)), 0, cos(alpha(2)), 0.6;
0, 0, 0, 1];
T_2to3 = [cos(alpha(3)), 0, sin(alpha(3)), 0;
0, 1, 0, 0;
-sin(alpha(3)), 0, cos(alpha(3)), 0.7;
0, 0, 0, 1];
对于 alpha(1) = 0,alpha(2) = alpha(3) = pi/2
首先。如果我使用 p1 = T_Wto1*[0,0,0,1]',我得到 [0,0,0.8,1]',到目前为止一切都很好。然后, T_1to2*[0,0,0.8,1]' 给出 [0.8,0,0.6,1]' (它现在在 X 方向位移 0.8,实际上是在 Z 方向位移 0.8,因为旋转) . 现在,假设我想将其转换回世界坐标。它应该说 [0.6,0,0.8],但我不确定如何做到这一点。如果只取矩阵 T_Wto2(T_Wto1 和 T_1to2 的乘积)的逆矩阵,则只需返回原点 [0,0,0,1]。你应该怎么做才能让它再次回到世界坐标?
另外,转换矩阵是否正确?