동질 변환 행렬을 계산하는 데 필요한 사용 방법을 이해하려고합니다.
2 개의 다른 프레임에서 2 개의 점을 알고 해당 프레임에서 2 개의 원점을 알고 있습니다.
변환 행렬이 어떻게 생겼는지, 혼란스러운 것은 행렬에 필요한 (3×1) 위치 벡터를 계산하는 방법입니다. 내가 이해하는 바와 같이,이 벡터는 새 프레임에 비해 이전 프레임의 원점입니다. 그러나 그것을 계산하는 방법, 명백한 대답은 (제 생각에) 둘 다 빼는 것입니다 ($ O_ {new}-O_ {old} $),하지만 그것은 옳지 않다고 생각합니다.
간단한 질문은 알고 있지만 머리가이 문제를 해결할 수 없습니다. 내가 알고있는 정보로 올바른 방법을 어떻게 증명할 수 있습니까?
답변
동종 변환 행렬 $ H $는 이전 프레임에서 표현 된 한 프레임에서 다른 프레임으로 변환을 수행하기위한 행렬로 자주 사용됩니다. . 따라서 변환 벡터는 전자로 표현 된 후자 프레임의 [x, y (, z)] 좌표를 포함합니다. 아마도 이것은 이미 귀하의 질문에 대한 답변이지만 아래에보다 자세한 설명이 있습니다.
변환 매트릭스는 회전 및 변환에 대한 정보를 포함하며 $ n $의 특수 Eucledian 그룹 $ SE (n) $에 속합니다. -디. 이것은 회전 행렬 $ 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} $$ The 가장 좋은 점은 다음과 같이 스택 할 수 있다는 것입니다. $$ 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} $$ 이해도를 높이기 위해 그림을 그려보세요.