1

ロボット アームの matlab ベースのシミュレーションを作成する必要があるプロジェクトがあります。

img http://img845.imageshack.us/img845/4512/l5mx.png

最初のパーツは原点にあり、ワールド座標系の Z 軸を中心に回転できます。このジョイントは、joint1 と呼ばれます。次のジョイントである joint2 は、パーツ 1 の座標系の Z 方向に 0.8m 変位します。パーツ 2 の座標系の Y 軸を中心に回転します。Joint3 は、part2 の座標系の Z 方向に 0.6m 変位します。part3 の csystem の y 軸を中心に回転します。パーツ 3 の端は、パーツ 3 の c 系の Z 方向に 0.7 m 変位します。

では、これを行列にしてみましょう。私はこれらで何か間違ったことをしていると確信しています。座標は同次形式になるため、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] が返されます。再びワールド座標に戻すにはどうすればよいですか?

また、変換行列は正しいですか?

4

0 に答える 0