使用方法、均質な変換行列の計算に必要なものを理解しようとしています。
2つの異なるフレームからの2つのポイントと、対応するフレームからの2つの原点を知っています。
変換行列はどのように見えるかですが、私を混乱させるのは、行列が必要とする(3×1)位置ベクトルをどのように計算するかです。私が理解しているように、このベクトルは新しいフレームと比較した古いフレームの原点です。しかし、それを計算する方法、明白な答え(私は思う)は両方を引くことです($ O_ {new} -O_ {old} $)、しかしそれは正しく感じられません。
簡単な質問は知っていますが、頭がこの問題を回避できません。知っている情報を使用して、正しい方法でそれを証明するにはどうすればよいですか?
回答
同種の変換行列$ H $は、前のフレームで表現された、あるフレームから別のフレームへの変換を実行するための行列としてよく使用されます。 。したがって、並進ベクトルには、前者で表現された後者のフレームの[x、y(、z)]座標が含まれます。おそらくこれはすでにあなたの質問に答えていますが、以下はより詳細な説明です。
変換行列には回転と平行移動の両方に関する情報が含まれており、$ n $の特別なユークレディアングループ$ SE(n)$に属しています。 -D。これは、回転行列$ R $と平行移動ベクトル$ r $で構成されます。せん断を許可しない場合、回転行列には回転に関する情報のみが含まれ、正規直交群$ SO(n)$に属します。
$$ H = \ begin {bmatrix} R & r \\ \ bar {0} & 1 \ end {bmatrix} $$
$ \ Phi_a $で表される$ \ Phi_a $の座標フレーム$ \ Phi_b $を表す変換行列$ H ^ a_b $を定義しましょう。 $ \ Phi_a $を原点にすることもできますが、他のフレームにすることもできます。
変換行列を使用して、点を表現できます$ p = [p_x \ p_y] ^ \ top $(ベクトル)別のフレーム:$$ P_a = H ^ a_b \、P_b $$ $$ P_b = H ^ b_c \、P_c $$ with $$ P = \ begin {bmatrix} p \\ 1 \ end {bmatrix} $$最良の部分は、次のようにスタックできることです。$$ P_a = H ^ a_b H ^ b_c \、P_c = H ^ a_c \、P_c $$ここに小さな2Dの例があります。フレーム$ \ Phi_b $が$ [ 3 \ 2] ^ \ top $で、$ \ Phi_a $に対して$ 90 ^ \ circ $度回転します。$$ H ^ a_b = \ begin {bmatrix} \ cos(90 ^ \ circ)&-\ sin(90 ^ \ circ)& 3 \\ \ sin(90 ^ \ circ)& \ cos(90 ^ \ circ)& 2 \\ 0 & 0 & 1 \ end {bmatrix} = \ begin {bmatrix} 0 & -1 & 3 \\ 1 & 0 & 2 \\ 0 & 0 & 1 \ end {bmatrix} $$フレーム$ \ Phi_b $で表されるポイント$ p_b = [3 \ 4] ^ \ top $は$$ \ begin {bmatrix} p_ {a、x} \\ p_ {a、y} \\ 1 \ end {bmatrix} = \ begin {bmatrix} 0 & -1 & 3 \\ 1 & 0 & 2 \\ 0 & 0 & 1 \ end {bmatrix} \ begin {bmatrix} 3 \\ 4 \\ 1 \ end {bmatrix} = \ begin {bmatrix} -1 \\ 5 \\ 1 \ end {bmatrix} \ to p_a = \ begin {bmatrix} -1 \\ 5 \ end {bmatrix} $$理解を深めるために図面を作成してみてください。