ロボット アームの 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] が返されます。再びワールド座標に戻すにはどうすればよいですか?
また、変換行列は正しいですか?