我有一个项目,我需要在其中进行基于matlab的机器人手臂模拟。
img http://img845.imageshack.us/img845/4512/l5mx.png
第一部分位于原点,可以在世界坐标系中绕Z轴旋转。这个关节叫做joint1。下一个关节,关节2在第1部分的坐标系的Z方向上移位0.8m。它将围绕第2部分的坐标系的Y轴旋转。 Joint3在part2的系统的Z方向上移位0.6m。它将围绕第3部分的csystem的y轴旋转。第3部分的末端在第3部分的系统的Z方向上移位0.7米。
现在,让我们尝试做一些这样的矩阵。我很确定我做错了。坐标将是同质的,因此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]。你应该做些什么才能让它再次回到世界坐标?
此外,转换矩阵是否正确?