기사 디렉토리
1. 점과 벡터의 표현
포인트 : 길이도 없고 부피도 없는 공간의 기본 요소이다.
3차원 공간에 점 aa가 있다고 가정하자.a , 좌표는[ x , y , z ] T \left[\begin{matrix}x, y, z\end{matrix}\right]^\text{T}로[엑스 ,y ,z]티。
벡터는 두 점을 연결하여 형성됩니다.
벡터 : 한 점에서 다른 점을 가리키는 화살표로 볼 수 있습니다. 벡터와 좌표의 두 가지 개념을 혼동하지 마십시오. 벡터는 벡터 a ⃗ \vec{a} 와 같이 공간에 있는 것입니다.ㅏ. 여기 ⃗ \vec{a}ㅏ여러 실수와 연관되지 않습니다. 이 3차원 공간에서 특정 좌표계를 지정해야만 이 좌표계에서 벡터의 좌표에 대해 이야기할 수 있습니다. 즉, 이 벡터에 해당하는 여러 실수를 찾을 수 있습니다.
벡터 a ⃗ \vec{a}ㅏ선형 공간 기반에서 [ e ⃗ 1 , e ⃗ 2 , e ⃗ 3 ] \left[\begin{matrix}\vec{e}_1, \vec{e}_2, \vec{e}_3\end{matrix} \오른쪽][이자형1,이자형2,이자형3] 아래의 좌표는 [ x , y , z ] T \left[\begin{matrix}x, y, z\end{matrix}\right]^\text{T}[엑스 ,y ,z]T 이면 다음과 같은 공식이 있습니다
a ⃗ = [ e ⃗ 1 e ⃗ 2 e ⃗ 3 ] [ xyz ] = e ⃗ 1 x + e ⃗ 2 y + e ⃗ 3 z = xe ⃗ 1 + ye ⃗ 2 + ze ⃗ 3 \begin{aligned} \ vec{a} = \left[\begin{행렬} \vec{e}_1 & \vec{e}_2 & \vec{e}_3 \end{행렬}\right] \left[\begin{행렬} x \\ y \\ z \\ \end{행렬}\right] = \vec{e}_1x + \vec{e}_2 y + \vec{e}_3 z \\ = x \vec{e}_1+ y \vec{e}_2 + z \vec{e}_3 \end{정렬됨}ㅏ=[이자형1이자형2이자형3] 엑스와이z =이자형1엑스+이자형2와이+이자형3지=엑스이자형1+와이이자형2+지이자형3
2. 벡터 기반의 회전 행렬 RR 도출아르 자형
동일한 벡터에 대해 a ⃗ \vec{a}ㅏ, 단위 직교 기준으로 설정 [ e ⃗ 1 , e ⃗ 2 , e ⃗ 3 ] \left[\begin{matrix}\vec{e}_1, \vec{e}_2, \vec{e}_3\end {행렬}\오른쪽][이자형1,이자형2,이자형3] 아래의 좌표는 [ x , y , z ] T \left[\begin{matrix}x, y, z\end{matrix}\right]^\text{T}[엑스 ,y ,z]T ,
한 회전 후에 단위 직교 기저는[ e ⃗ 1 ′ , e ⃗ 2 ′ , e ⃗ 3 ′ ] \left[\begin{matrix}\vec{e}_1^\prime, \vec{ e} _2^\소수, \vec{e}_3^\소수\end{행렬}\오른쪽][이자형1”,이자형2”,이자형삼”] , 그리고 벡터a ⃗ \vec{a}ㅏ새로운 직교 기저 아래의 좌표는 [ x ′ , y ′ , z ′ ] T \left[\begin{matrix}x^\prime, y^\prime, z^\prime\end{matrix}\right입니다. ]^\text{T}[엑스′ ,와이′ ,지”]티。
이 벡터는 좌표계의 회전에 따라 움직이지 않기 때문에 좌표의 정의에 따르면 다음과 같습니다.
a ⃗ = [ e ⃗ 1 e ⃗ 2 e ⃗ 3 ] [ xyz ] = [ e ⃗ 1 ′ e ⃗ 2 ′ e ⃗ 3 ′ ] [ x ′ y ′ z ′ ] \begin{aligned} \vec{a} &= \left[\begin{행렬} \vec{e}_1 & \vec{e}_2 & \vec{e}_3 \end{행렬}\right] \left[\begin{행렬} x \\ y \\ z \\ \end{행렬}\right]\ \\ &= \left[\begin{행렬} \vec{e}_1^\prime & \vec{e}_2^\prime & \vec{e }_3^\프라임 \end{행렬}\오른쪽] \left[\begin{행렬} x^\프라임 \\ y^\프라임 \\ z^\프라임 \\ \end{행렬}\오른쪽] \end{ 정렬됨}ㅏ=[이자형1이자형2이자형3] 엑스와이z =[이자형1”이자형2”이자형삼”] 엑스′와이′지”
행렬이 방정식의 양변에 동시에 왼쪽 곱셈을 하면 [ e ⃗ 1 T e ⃗ 2 T e ⃗ 3 T ] \left[\begin{matrix}\vec{e}_1^\text{ T} \\ \vec{e} _2^\text{T} \\ \vec{e}_3^\text{T}\end{행렬}\right] 이자형1티이자형2티이자형삼티 ,가지다
[ e ⃗ 1 T e ⃗ 2 T e ⃗ 3 T ] [ e ⃗ 1 e ⃗ 2 e ⃗ 3 ] [ xyz ] = [ e ⃗ 1 T e ⃗ 2 T e ⃗ 3 T ] [ e ⃗ 1 ′ e ⃗ 2 ′ e ⃗ 3 ′ ] [ x ′ y ′ z ′ ] [ e ⃗ 1 T e ⃗ 1 e ⃗ 1 T e ⃗ 2 e ⃗ 1 T e ⃗ 3 e ⃗ 2 T e ⃗ 1 e ⃗ 2 T e ⃗ 2e ⃗ 2 T e ⃗ 3 e ⃗ 3 T e ⃗ 1 e ⃗ 3 T e ⃗ 2 e ⃗ 3 T e ⃗ 3 ] [ xyz ] = [ e ⃗ 1 T e ⃗ 1 ′ e ⃗ 1 T e ⃗ 2 ′ e ⃗ 1 T e ⃗ 3 ′ e ⃗ 2 T e ⃗ 1 ′ e ⃗ 2 T e ⃗ 2 ′ e ⃗ 2 T e ⃗ 3 ′ e ⃗ 3 T e ⃗ 1 ′ e ⃗ 3 T e ⃗ 2 ′ e ⃗ 3 T e ⃗ 3 ′ ] [ x ′ y ′ z ′ ] \begin{aligned} \left[\begin{matrix} \vec{e}_1^\text{T} \\ \vec{e}_2^ \text{T} \\ \vec{e}_3^\text{T} \\ \end{matrix}\right] \left[\begin{matrix} \vec{e}_1 & \vec{e}_2 & \vec{e}_3 \end{행렬}\right] \left[\begin{행렬} x \\ y \\ z \\ \end{행렬}\right] &= \left[\begin{행렬} \vec{e}_1^\text{T} \\ \vec{e}_2^\text{T} \\ \vec{e}_3^\text{T} \\ \end{행렬}\right] \left[\begin{행렬} \vec{e}_1^\prime& \vec{e}_2^\프라임 & \vec{e}_3^\프라임 \end{행렬}\right] \left[\begin{행렬} x^\프라임 \\ y^\프라임 \\ z^ \프라임 \\ \end{행렬}\right] \\ \left[\begin{행렬} \vec{e}_1^\text{T} \vec{e}_1 & \vec{e}_1^\text {T} \vec{e}_2 & \vec{e}_1^\text{T} \vec{e}_3 \\ \vec{e}_2^\text{T} \vec{e}_1 & \ vec{e}_2^\text{T} \vec{e}_2 & \vec{e}_2^\text{T} \vec{e}_3 \\ \vec{e}_3^\text{T} \vec{e}_1 & \vec{e}_3^\text{T} \vec{e}_2 & \vec{e}_3^\text{T} \vec{e}_3 \\ \end{행렬 }\right] \left[\begin{행렬} x \\ y \\ z \\ \end{행렬}\right] &= \left[\begin{행렬} \vec{e}_1^\text{T } \vec{e}_1^\프라임 & \vec{e}_1^\text{T} \vec{e}_2^\프라임 & \vec{e}_1^\text{T} \vec{e} _3^\프라임 \\ \vec{e}_2^\text{T} \vec{e}_1^\프라임 & \vec{e}_2^\text{T} \vec{e}_2^\프라임 & \vec{e}_2^\text{T} \vec{e}_3^\프라임 \\ \vec{e}_3^\text{T} \vec{e}_1^\프라임& \vec{e}_3^\text{T} \vec{e}_2^\prime & \vec{e}_3^\text{T} \vec{e}_3^\prime \\ \end{matrix }\right] \left[\begin{행렬} x^\프라임 \\ y^\프라임 \\ z^\프라임 \\ \end{행렬}\right] \end{정렬} 이자형1티이자형2티이자형삼티 [이자형1이자형2이자형3] 엑스와이z 이자형1티이자형1이자형2티이자형1이자형삼티이자형1이자형1티이자형2이자형2티이자형2이자형삼티이자형2이자형1티이자형3이자형2티이자형3이자형삼티이자형3 엑스와이z = 이자형1티이자형2티이자형삼티 [이자형1”이자형2”이자형삼”] 엑스′와이′지” = 이자형1티이자형1”이자형2티이자형1”이자형삼티이자형1”이자형1티이자형2”이자형2티이자형2”이자형삼티이자형2”이자형1티이자형삼”이자형2티이자형삼”이자형삼티이자형삼” 엑스′와이′지”
분명히 있습니다
e ⃗ 1 T e ⃗ 1 = 1 , e ⃗ 1 T e ⃗ 2 = 0 , e ⃗ 1 T e ⃗ 3 = 0 , e ⃗ 2 T e ⃗ 1 = 0 , e ⃗ 2 T e ⃗ 2 = 1 , e ⃗ 2 T e ⃗ 3 = 0 , e ⃗ 3 T e ⃗ 1 = 0 , e ⃗ 3 T e ⃗ 2 = 0 , e ⃗ 3 T e ⃗ 3 = 1 , \begin{aligned} \vec{e} _1^\text{T} \vec{e}_1 = 1, \quad & \vec{e}_1^\text{T} \vec{e}_2 = 0, \quad & \vec{e}_1^ \text{T} \vec{e}_3 = 0, \quad \\ \vec{e}_2^\text{T} \vec{e}_1 = 0, \quad & \vec{e}_2^\ 텍스트{T} \vec{e}_2 = 1, \quad & \vec{e}_2^\text{T} \vec{e}_3 = 0, \quad \\ \vec{e}_3^\text {T} \vec{e}_1 = 0, \quad & \vec{e}_3^\text{T} \vec{e}_2 = 0, \quad & \vec{e}_3^\text{T } \vec{e}_3 = 1, \quad \\ \end{aligned}이자형1티이자형1=1 ,이자형2티이자형1=0 ,이자형삼티이자형1=0 ,이자형1티이자형2=0 ,이자형2티이자형2=1 ,이자형삼티이자형2=0 ,이자형1티이자형3=0 ,이자형2티이자형3=0 ,이자형삼티이자형3=1 ,
따라서 다음과 같이 더욱 단순화할 수 있습니다.
[ e ⃗ 1 T e ⃗ 1 e ⃗ 1 T e ⃗ 2 e ⃗ 1 T e ⃗ 3 e ⃗ 2 T e ⃗ 1 e ⃗ 2 T e ⃗ 2 e ⃗ 2 T e ⃗ 3 e ⃗ 3 T e ⃗ 1 e ⃗ 3 T e ⃗ 2 e ⃗ 3 T e ⃗ 3 ] [ xyz ] = [ e ⃗ 1 T e ⃗ 1 ′ e ⃗ 1 T e ⃗ 2 ′ e ⃗ 1 T e ⃗ 3 ′ e ⃗ 2 T e ⃗ 1 ′ e ⃗ 2 T e ⃗ 2 ′ e ⃗ 2 T e ⃗ 3 ′ e ⃗ 3 T e ⃗ 1 ′ e ⃗ 3 T e ⃗ 2 ′ e ⃗ 3 T e ⃗ 3 ′ ] [ x ′ y ′ z ′ ] [ xyz ] = [ e ⃗ 1 T e ⃗ 1 ′ e ⃗ 1 T e ⃗ 2 ′ e ⃗ 1 T e ⃗ 3 ′ e ⃗ 2 T e ⃗ 1 ′ e ⃗ 2 T e ⃗ 2 ′ e ⃗ 2 T e ⃗ 3 ′ e ⃗ 3 T e ⃗ 1 ′ e ⃗ 3 T e ⃗ 2 ′ e ⃗ 3 T e ⃗ 3 ′ ] [ x ′ y ′ z ′ ] = def R [ x ′ y ′ z ′ ] \begin {정렬} \left[\begin{행렬} \vec{e}_1^\text{T} \vec{e}_1 & \vec{e}_1^\text{T} \vec{e}_2 & \ vec{e}_1^\text{T} \vec{e}_3 \\ \vec{e}_2^\text{T} \vec{e}_1 & \vec{e}_2^\text{T} \vec{e}_2 & \vec{e}_2^\text{T} \vec{e}_3 \\ \vec{e}_3^\text{T} \vec{e}_1 & \vec{e }_3^\text{T} \vec{e}_2 & \vec{e}_3^\text{T} \vec{e}_3 \\\end{행렬}\right] \left[\begin{행렬} x \\ y \\ z \\ \end{행렬}\right] &= \left[\begin{행렬} \vec{e}_1^ \text{T} \vec{e}_1^\프라임 & \vec{e}_1^\text{T} \vec{e}_2^\프라임 & \vec{e}_1^\text{T} \ vec{e}_3^\프라임 \\ \vec{e}_2^\text{T} \vec{e}_1^\프라임 & \vec{e}_2^\text{T} \vec{e}_2 ^\프라임 & \vec{e}_2^\text{T} \vec{e}_3^\프라임 \\ \vec{e}_3^\text{T} \vec{e}_1^\프라임 & \ vec{e}_3^\text{T} \vec{e}_2^\prime & \vec{e}_3^\text{T} \vec{e}_3^\prime \\ \end{matrix}\ 오른쪽] \left[\begin{행렬} x^\프라임 \\ y^\프라임 \\ z^\프라임 \\ \end{행렬}\right] \\ \left[\begin{행렬} x \\ y \\ z \\ \end{행렬}\right] &= \left[\begin{행렬} \vec{e}_1^\text{T} \vec{e}_1^\prime & \vec{e} _1^\text{T} \vec{e}_2^\프라임 & \vec{e}_1^\text{T} \vec{e}_3^\프라임 \\ \vec{e}_2^\text{ T} \vec{e}_1^\프라임 & \vec{e}_2^\text{T} \vec{e}_2^\프라임& \vec{e}_2^\text{T} \vec{e}_3^\프라임 \\ \vec{e}_3^\text{T} \vec{e}_1^\프라임 & \vec{e }_3^\text{T} \vec{e}_2^\prime & \vec{e}_3^\text{T} \vec{e}_3^\prime \\ \end{matrix}\right] \ 왼쪽[\begin{행렬} x^\소수 \\ y^\소수 \\ z^\소수 \\ \end{행렬}\오른쪽] \\ & \overset{def}{=} R \left[\begin {행렬} x^\프라임 \\ y^\프라임 \\ z^\프라임 \\ \end{행렬}\right] \end{정렬} 이자형1티이자형1이자형2티이자형1이자형삼티이자형1이자형1티이자형2이자형2티이자형2이자형삼티이자형2이자형1티이자형3이자형2티이자형3이자형삼티이자형3 엑스와이z 엑스와이z = 이자형1티이자형1”이자형2티이자형1”이자형삼티이자형1”이자형1티이자형2”이자형2티이자형2”이자형삼티이자형2”이자형1티이자형삼”이자형2티이자형삼”이자형삼티이자형삼” 엑스′와이′지” = 이자형1티이자형1”이자형2티이자형1”이자형삼티이자형1”이자형1티이자형2”이자형2티이자형2”이자형삼티이자형2”이자형1티이자형삼”이자형2티이자형삼”이자형삼티이자형삼” 엑스′와이′지” =데 에프 _아르 자형 엑스′와이′지”
이 RRR은 회전 행렬(Rotation Matrix)이라고 불리는 벡터의 회전을 설명합니다.
위의 도출 과정은 벡터의 대수적 관계와 3차원 좌표축의 회전 각도를 이용한 도출 과정을 기반으로 하며, 3장 - 기초 수학적 지식 -> 좌표 변환 의 글을 참고하시면 됩니다 .
회전 행렬RRR 에는 다음과 같은 속성이 있습니다.
-
회전 행렬RRR 은 행렬식이 1인 직교 행렬입니다. 반대로, 행렬식이 1인 직교 행렬은 회전 행렬이기도 합니다. 알앤_n 차원 회전 행렬은 특별한 직교 그룹SO(n) SO(n)을SO ( n )。 SO (n ) = { R ∈ R n × n ∣ RRT = I , det ( R ) = I } SO(n) = \{ R \in \R^{n \times n} | RR^\text{T} = 나, \text{det}(R) = 나 \}그래서 ( n )={ R∈아르 자형n × n ∣RR티=나는 ,그것 ( R )=나는 }
-
회전 행렬RRR 은 직교행렬(Orthogonal Matrix, 직교행렬은 역수가 자신의 전치인 행렬)이고, 회전행렬의 역행렬은R − 1 R^{-1}아르 자형− 1은 반대 회전을 나타냅니다.
3. 벡터의 유클리드 변환
컴퓨터 비전 및 로봇 공학에서 유클리드/강체 변환(또는 강체 변환)은 매우 일반적인 변환입니다.
유클리드 변환은 두 부분으로 구성됩니다.
- 회전(Rotation): 회전 행렬로 표현할 수 있습니다.
- 번역(Translation): 번역 벡터로 표현할 수 있습니다.
불명확하신 분들은 [수학적 지식] 강체의 기본운동, 평행이동과 회전 글을 참고해주세요 .
다음과 같은 회전 및 변환 프로세스가 있다고 가정합니다. 세계 좌표계에 벡터 a ⃗ 1 \vec{a}_1이 있습니다.ㅏ1, 1회전 후 R 1 t 2 R_{1t2}아르 자형1t 2 _그리고 번역 t 1 t 2 t_{1t2}티1t 2 _그 후, 벡터 a ⃗ 2 \vec{a}_2 가 얻어집니다.ㅏ2, 그러면 다음과 같은 관계가 있습니다
a ⃗ 2 = R 1 t 2 a ⃗ 1 + t 1 t 2 \vec{a}_2 = R_{1t2} \vec{a}_1 + t_{1t2}ㅏ2=아르 자형1t 2 _ㅏ1+티1t 2 _
4. 유클리드 변환에는 비선형 한계가 있습니다.
유클리드 변환은 회전과 평행 이동을 포함하는 강체 변환입니다. 변환은 선형이지만 회전은 비선형입니다.
회전의 경우 회전 행렬, 쿼터니언 또는 회전축과 회전 각도를 사용하여 설명할 수 있습니다. 어떻게 설명하든 회전의 본질은 비선형입니다.
두 가지 변환을 수행하면: R 1 t 2 , t 1 t 2 R_{1t2}, t_{1t2}아르 자형1t 2 _,티1t 2 _와 R 2 t 3 , t 2 t 3 R_{2t3}, t_{2t3}아르 자형2t 3 _,티2t 3 _
a ⃗ 2 = R 1 t 2 a ⃗ 1 + t 1 t 2 a ⃗ 3 = R 2 t 3 a ⃗ 2 + t 2 t 3 = R 2 t 3 ( R 1 t 2 a ⃗ 1 + t 1 t 2 ) + t 2 t 3 \begin{aligned} \vec{a}_2 &= R_{1t2} \vec{a}_1 + t_{1t2} \\ \vec{a}_3 &= R_{2t3} \vec {a}_2 + t_{2t3} \\ &= R_{2t3} (R_{1t2} \vec{a}_1 + t_{1t2}) + t_{2t3} \end{aligned}ㅏ2ㅏ3=아르 자형1t 2 _ㅏ1+티1t 2 _=아르 자형2t 3 _ㅏ2+티2t 3 _=아르 자형2t 3 _( R1t 2 _ㅏ1+티1t 2 _)+티2t 3 _
위 변환에는 두 개의 회전 행렬이 있지만 두 회전의 조합 R 2 t 3 × R 1 t 2 R_{2t3} \times R_{1t2}아르 자형2t 3 _×아르 자형1t 2 _덧셈과 같은 두 회전 행렬의 단순한 선형 결합과 같지 않습니다.
마찬가지로 회전을 설명하기 위해 쿼터니언을 사용하면 쿼터니언 곱셈도 비선형입니다.
5. 변환 행렬 TT 사용T는 비선형성을 해결합니다.
유클리드 변환의 비선형 문제는 동차좌표법을 통해 해결할 수 있습니다.
동종 좌표는 추가 좌표를 추가하여 표준 좌표를 확장합니다. 회전과 평행이동은 단일 행렬로 표현될 수 있으므로 변환이 더 간단해집니다.
구체적인 해결책은 끝에 1을 추가하여 3차원 벡터를 동차 좌표라고 하는 4차원 벡터로 바꾸는 것입니다. 이 유클리드 변환의 경우
a ⃗ 2 = R 1 t 2 a ⃗ 1 + t 1 t 2 \vec{a}_2 = R_{1t2} \vec{a}_1 + t_{1t2}ㅏ2=아르 자형1t 2 _ㅏ1+티1t 2 _
회전 행렬과 평행 이동 벡터를 동일한 변환 행렬(Transformation Matrix)에 쓰고 동시에 차원을 확장합니다.
[ a ⃗ 2 1 ] = [ R 1 t 2 t 1 t 20 1 × 3 1 ] [ a ⃗ 1 1 ] = T [ a ⃗ 1 1 ] \begin{aligned} \left[\begin{matrix} \ vec{a}_2 \\ 1 \end{행렬}\right] &= \left[\begin{행렬} R_{1t2} & t_{1t2} \\ 0_{1 \times 3} & 1 \\ \end {행렬}\right] \left[\begin{행렬} \vec{a}_1 \\ 1 \\ \end{행렬}\right] \\ &= T \left[\begin{행렬} \vec{a }_1 \\ 1 \\ \end{행렬}\right] \end{정렬}[ㅏ21]=[아르 자형1t 2 _01 × 3티1t 2 _1][ㅏ11]=티[ㅏ11]
TTT 는 변환 행렬입니다.
동차좌표의 의미는 유클리드 변환을 선형 관계로 표현한다는 것입니다.
따라서 유클리드 변환이 동차 좌표가 된 후에는 다음을 얻습니다.
a ⃗ 2 = R 1 t 2 a ⃗ 1 + t 1 t 2 [ a ⃗ 2 1 ] = T [ a ⃗ 1 1 ] \begin{aligned} \vec{a}_2 &= R_{1t2} \vec{ a}_1 + t_{1t2} \\ \left[\begin{행렬} \vec{a}_2 \\ 1 \end{행렬}\right] &= T \left[\begin{행렬} \vec{a }_1 \\ 1 \\ \end{행렬}\right]\end{정렬}ㅏ2[ㅏ21]=아르 자형1t 2 _ㅏ1+티1t 2 _=티[ㅏ11]
변환 행렬 TTT 의 속성 :
-
변환 행렬 TTT는 특별한 유클리드 그룹SE SE를SE:
SE ( 3 ) = { T = [ R t 0 1 × 3 1 ] ∈ R 4 × 4 ∣ R ∈ SO ( 3 ) , t ∈ R 3 } SE(3) = \{ T = \left[\ 시작{행렬} R & t \\ 0_{1\times3} & 1 \\ \end{행렬}\right] \in \R^{4\times4} | R \in SO(3), t \in \R^3 \}남동 ( 3 )={ 티=[아르 자형01 × 3티1]∈아르 자형4 × 4 ∣R_∈그래서 ( 3 ) ,티∈아르 자형3 } -
변환 행렬의 역은 역 변환을 나타냅니다:
T − 1 = [ RT − RT t 0 1 × 3 1 ] T^{-1} = \left[\begin{matrix} R^\text{T} & - R^\text{T} t \\ 0_{1\times3} & 1 \\ \end{행렬}\right]티- 1=[아르 자형티01 × 3- Rㅜㅜ _1]