벡터(Vector)
39
- 원점에서 어딘가를 가리키는 화살표
- 3차원 공간의 좌표계를 정의해야 벡터의 좌표를 구할 수 있으며 ℝ3
의 세 숫자로 표현
- 선형공간 (𝑒1, 𝑒2, 𝑒3)의 벡터 a의 좌표
𝑎 = 𝑒1 𝑒2 𝑒3
𝑎1
𝑎2
𝑎3
= 𝑎1 𝑒1 + 𝑎2 𝑒2 + 𝑎3 𝑒3
𝑒2
𝑒3
𝑒1
𝑎
𝑎1
𝑎2
𝑎3
https://docs.google.com/document/d/10gJsFWGAiNaFc5za8IJTZHU3JFYHzStvLNeLVKyrpUA/edit?fbclid=IwAR23dhCmK-H-
GUtX_Nz5EX8WBA56TIX5yLP0JbMLw-7kEWH4UnZZa5dvi88#heading=h.vpn62ti1ne0a
벡터 곱 - 내적
40
- 내적에 대해 보기전에 벡터 곱에는 내적과 외적 2가지 종류가 있습니다.
https://rfriend.tistory.com/145?category=606751
벡터 곱
41
- 내적에 대해 보기전에 벡터 곱에는 내적과 외적 2가지 종류가 있습니다.
https://rfriend.tistory.com/145?category=606751
벡터 곱 – 내적과 외적 비교
42 https://rfriend.tistory.com/145?category=606751
벡터 곱 – 내적
43 https://rfriend.tistory.com/145?category=606751
내적의 표기
- 두 벡터의 내적은 ‘ . ’(dot)로 표기하며, 접곱(dot product)라고 합니다. 결과값이 스칼라
이기 때문에 스칼라곱(scalar product)이기도 하며, 한쪽 벡터의 코사인 값을 사용하기
때문에(즉, 한쪽 벡터에 직사광선을 쪼였을 때 그 그림자에 해당하는 코사인 값을 사용)
영사곱(projection product)라고도 합니다.
- 똑같은 개념을 두고 표현이 다양한 이유는 대수학, 기하학, 물리학 등 학문 영역 별로
명칭, 표기가 다르기 때문입니다.
벡터 곱 – 내적
44 https://rfriend.tistory.com/145?category=606751
내적의 정의
- R^n 내의 두 열 벡터 a, b에 대해 곱 T(a)b을하면 단일 성분을 갖는 1*1 행렬, 즉 실수가
Scalar가 내적(inner product)가 됩니다. 식을 풀어 쓰면 아래와 같이 되고 결과는 스칼라가
됩니다.
벡터 곱 – 내적
45 https://rfriend.tistory.com/145?category=606751
내적의 계산 예시
벡터 곱 – 내적
46 https://rfriend.tistory.com/145?category=606751
내적의 계산 원리, 방법 1
- 내적을 계산하는 방법 중 하나로, 벡터를 성분 분해해서 각 성분들의 벡터 길이를 곱한 후
더하는 방법이 있습니다.
벡터 곱 – 내적
47 https://rfriend.tistory.com/145?category=606751
내적의 계산 원리, 방법 2
- 벡터 힘의 크기 또는 길이와 각도를 사용하는 방법이 있습니다. 벡터 힘의 크기/길이를
“norm”이라고도 부릅니다. 두 개중 한 개의 벡터에 빛을 비추었을 때 직각으로 생기는
그림자(vector a * cosine(theta))에다가 나머지 다른 벡터를 곱하는 개념입니다.
벡터 곱 – 내적
48 https://rfriend.tistory.com/145?category=606751
벡터 힘의 크기/길이(norm)
벡터 곱 – 내적
49 https://rfriend.tistory.com/145?category=606751
내적을 활용한 두 벡터의 각도 계산
- 벡터의 내적을 구하는 공식으로 벡터의 길이나 두 벡터간 각도를 구할 수 있습니다.
벡터 곱 – 외적
50 https://rfriend.tistory.com/146?category=606751
외적의 표기
- 두 벡터 a, b의 외적은 a x b라 쓰고 “a cross b”라고 읽습니다. 그래서 외적을 교차곱(cross
product)라고도 부릅니다.
벡터 곱 – 외적
51 https://rfriend.tistory.com/146?category=606751
외적의 정의
- 두 벡터 a, b에 수직이 되는 벡터로서, v와 수직이 되는 두 벡터 a와 b는 공간 속 평면 위에
있는 평행사변형의 두 변을 이루며, 그 벡터의 길이(힘의 크기) |v|는 평행사변형의 면적과
같습니다.
출력 => 벡터(3 dimensional vector)
벡터 곱 – 외적
52 https://rfriend.tistory.com/146?category=606751
외적의 쉽게 계산하기
- 내적 대비 계산하는 방법이 어려워 보이는데 아래 처럼 a, b의 요소들을 두 번씩 세로로
쓰고 두 번째 행부터 순차적으로 대각선으로 곱하고 빼가면 v1, v2, v3을 구할 수 있습니다.
벡터 공간, 기저, 차원, 부분 공간
53
벡터 공간 ℝ 𝑛
- ℝ 𝑛
에서 ℝ 은 실수를 뜻하며 ℝ 𝑛
은 실수 n개를 늘어놓은 집합이면서 공간
-> ℝ 𝑛
의 한 원소는 실수 n개를 늘어놓은 (𝑎1, 𝑎2, 𝑎3, … , 𝑎 𝑛)이 된다.
문제 ) (x,y)는 ℝ3
에 포함 될까?
http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
정답 : X
(x,y)는 실수가 2개인 원소 이므로 ℝ3
가 아니라 ℝ2
에 들어간다.
벡터 공간, 기저, 차원, 부분 공간
54
공간이란?
집합 = 공간
집합 A = { a, b, c}가 있다고 하자
원소 a와 b를 합할 수 있는가?
원소 a와 c를 곱할 수 있는가?
집합 A만으로 원소가 3개이고, 그것이 a, b, c인지만 알 수 있지 원소들을 연산 할 수 없다.
http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
벡터 공간, 기저, 차원, 부분 공간
55
군(Group)과 체(Field)
집합에 곱셈 규칙을 주면 군(Group)
덧셈과 곱셈, 나눗셈의 규칙을 주면 체(Field)
http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
https://rfriend.tistory.com/173
벡터 공간(Vector Space)
집합의 원소들이 덧셈과 스칼라곱에 대한 연산 법칙을 만족하면 벡터 공간 또는 선형
공간(linear space)라 하며, 그 원소를 벡터라 한다
벡터의 합에 대해
(1) a + b = b + a : 교환(commutative)법칙
(2) (a + b) + c = a + (b + c) : 결합(associative) 법칙
(3) a + 0 = a : 항등원
(4) a + (-a) = 0 : 역원
스칼라곱에 대해
(5) c(a + b) = ca + cb : 분배법칙
(6) (c + k)a = ca + ka : 분배법칙
(7) c(ka) = (ck)a
(8) 1a = a
벡터 공간, 기저, 차원, 부분 공간
56
기저(basis)
벡터 공간 V의 벡터들이 ‘선형 독립‘이면서 벡터 공간 V 전체를 생성할 수 있다면 이 벡터들의 집합
=> 기저는 ℝ 𝒏의 임의의 원소를 표현하기 위해 필요한 최소한의 벡터로 이루어진 집합
기저의 예시
- i=(1, 0, 0), j = (0, 1, 0), k =(0, 0, 1) [3차원 유클리드 공간의 대표적인 기저]
- I’=(2, 0, 0), j’ = (0, 2, 0), k’ = (0, 0, 2)
- I’’ = (1, 1, 1), j’’’ = ( 1, 1, 0), k’’’ = ( 1, 0, 0)
http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
https://rfriend.tistory.com/173
벡터 공간, 기저, 차원, 부분 공간
57
기저(basis)의 정의
ℝ 𝟑
의 일차독립인 원소가 ℝ 𝟑
를 생성할 때, 이 원소들을 ℝ 𝟑
의 기저가 된다.
일차독립(linearly independent)과 일차종속(linearly dependent)
(1, 0, 0)과 (2, 0, 0)은 일차종속이다.
(1, 0, 0)과 (0, 1, 0)은 일차독립이다.
덧셈과 스칼라곱으로 다른 원소를 만들 수 있으면 일차종속
덧셈과 스칼라곱으로 다른 원소를 만들 수 없으면 일차독립
http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
https://rfriend.tistory.com/173
벡터 공간, 기저, 차원, 부분 공간
58
일차독립과 일차종속의 예시
Ex1) {(1, 0, 0), (2, 0, 0)} :일차종속
2 * (1, 0, 0) = (2, 0, 0)
Ex2) {(1, 0, 0), (0, 1, 0)} : 일차독립
(1, 0, 0) + (0, 1, 0) = (1, 1, 0) != (0, 1, 0)
2*(1, 0, 0) = (2, 0, 0) != (0, 1, 0)
Ex3) {(1, 0, 0), (0, 0, 2), (0, 1, 1)} : 일차종속
(0, 0, 1)과 (0, 0, 2)는 2(0, 0, 1) = (0, 0, 2)
Ex4) {(1, 1, 1), (0, 1, 1), (0, 0, 1)} : 일차독립
(1, 1, 1)을 아무리 더하고 스칼라 곱을 해도 (0,0,1)을 만들 수 없음
(1, 1, 1)과 (0, 1, 1)을 아무리 더하고 스칼라 곱해도 (0, 0, 1)을 만들 수 없음
위와 같이 덧셈과 스칼라곱은 벡터의 연산이며, 이 연산이 생성 도구가 된다.
http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
https://rfriend.tistory.com/173
벡터 공간, 기저, 차원, 부분 공간
59
선형 생성(Linear span)
(1, 0, 0)을 연산(덧셈, 스칼라 곱)을 통해 만들 수 있는 집합을
< (1, 0, 0)> 또는 span(1, 0, 0)으로 표기하며, (1, 0, 0)의 생성 집합이라 한다.
Exam 1) span(1, 0, 0)의 생성 집합을 구해보자
(1, 0, 0)에 –n, …, -1, 0, 1, 2, … 등을 스칼라 곱 하면 아래의 원소들만 생성 할 수 있다.
…, (-1, 0, 0), (0, 0, 0), (1, 0, 0), (2, 0, 0), …
(1, 0, 0)로는 y성분과 z성분을 만들 수 없으므로 3차원 공간에서 x축만 만들어 낸다.
http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
벡터 공간, 기저, 차원, 부분 공간
60
선형 생성 예시
Exam 2) <(1, 1, 0)>의 생성 집합을 구해보자
(2, 2, 0), (3, 3, 0), …, (0, 0, 0), (-1, -1, 0)
=> Z축 성분은 만들 수 없지만 y=x인 그래프로, <(1, 1, 0)>는 z=0이고 y=x인 직선이 된다.
Exam 3) <(0, 0, 0)>의 생성 집합을 구해보자
(0, 0, 0)
=> <(0,0,0)>은 한 점만 생성한다.
선형 생성과 기저
<(0, 0, 1), (0, 0, 2)>의 생성집합을 고려하면,
{(0, 0, 1), (0, 0, 2)}는 종속 관계이며 선형 생성시 (0, 0, 2)는 필요 없다.
(0, 0, 1)은 (0, 0, z)인 원소들을 생성하는 기저가 된다.
http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
벡터 공간, 기저, 차원, 부분 공간
61
차원
을 만들어내는 기저는 처럼 여러 종류가 있다.
하지만 공통점이 있는데 을 만들려면 항상 3개의 원소가 필요하다.
그래서 이 3을 의 차원이라 부르고, 라 표기한다.
http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
벡터 공간, 기저, 차원, 부분 공간
62
벡터로 점과 축 표현하기
https://rfriend.tistory.com/161?category=606751
단위 벡터에 3을 스칼라 곱하여 점을 표현 단위벡터에 실수 c를 스칼라 곱하여 축을 표현
벡터 공간, 기저, 차원, 부분 공간
63
벡터로 직선 표현하기
https://rfriend.tistory.com/161?category=606751
X1=4인 직선 표현 X2=5인 직선 표현
벡터 공간, 기저, 차원, 부분 공간
64
벡터로 2차원 평면 표현하기
https://rfriend.tistory.com/161?category=606751
단위 벡터를 이용하여 x1, x2축에 평행인 2차원 평면 표현 단위 벡터를 사용하지 않은 경우
벡터 공간, 기저, 차원, 부분 공간
65
벡터로 3차원 공간 표현하기
https://rfriend.tistory.com/161?category=606751
벡터 공간, 기저, 차원, 부분 공간
66
벡터로 n차원 공간 표현하기
https://rfriend.tistory.com/161?category=606751
벡터 공간, 기저, 차원, 부분 공간
67 https://rfriend.tistory.com/161?category=606751
벡터 부분공간(vector subspace)
벡터 공간 V의 공집합이 아닌 부분집합 W가 벡터공간 구조를 가질 때, 부분집합 W가 벡터공간 V에서
정의된 (1) 덧셈 연산과 (2) 스칼라곱 연산을 만족할 때, 그 부분집합 W를 벡터의 부분공간 이라 한다.
벡터 공간, 기저, 차원, 부분 공간
68 https://rfriend.tistory.com/161?category=606751
벡터 부분공간의 예시
3차원 공간에서 단위 벡터를 기저로 하는 ‘원점을 지나는 직선’이나 ‘원점을 지나는 평면‘이 있습니다.
선형 독립과 선형대수의 관계
69 https://rfriend.tistory.com/163?category=606751
좌표계
71
- 좌표계는 3개의 직교 축으로 이루어지며, 정의 방식에 따라 왼손/오른손 좌표계로 구분
- 대부분 오른손 좌표계를 사용하지만, Direct3D와 일부 라이브러리들은 왼손 좌표계를 사용
https://kugistory.net/32
72
좌표계 - 평면 좌표계와 3차원 좌표계
https://m.blog.naver.com/PostView.nhn?blogId=njinka&logNo=220873320940&proxyReferer=https%3A%2F%2Fwww.google.com%2F
평면 좌표계 3차원 좌표계
75
직교 좌표계와 유클리드 공간
https://ko.wikipedia.org/wiki/%EC%A7%81%EA%B5%90_%EC%A2%8C%ED%91%9C%EA%B3%84
https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%EA%B3%B5%EA%B0%84
직교 좌표계(Rectangular Coordinate System)
- n 차원의 유클리드 공간을 나타내는 좌표계
- 데카르트가 발명하여 데카르트 좌표계나 카테시안 좌표계
(Cartesian Coordinate System)이라 부른다
- 원점으로부터 거리로 로봇의 위치 표현
유클리디안 공간(Euclidean space)
- 유클리드가 연구했던 평면과 공간을 일반화 한 것
- 거리, 길이, 각도를 좌표계를 도입하여 n차원의 공간으로 확장
- 직선은 1차원 유클리드 공간, 평면은 2차원 유클리드 공간,
공간은 3차원 유클리드 공간
- 유클리디안 공간의 대표적인 예로 직교 좌표계
76
6 자유도(6DOF : 6 Degree of Freedom)
- 6 자유도 운동은 3차원 직교 좌표계에 존재하는 로봇의 위치(Position)와 자세(Orientation) 표현
- 각 축에 대한 평행이동으로 3자유도(위치), 각 축에 대한 회전 운동으로 나머지 3자유도(자세)
77
X축 평행이동 y축 평행이동 z축 평행이동
X축 회전
(Roll)
y축 회전운동
(Pitch)
z축 회전운동
(Yaw)
x
y
z
x
y
z
x
y
z
6 자유도(6DOF : 6 Degree of Freedom)
https://commons.wikimedia.org/wiki/File:Aileron_roll.gif
3차원 강체 변환
78
- 기준 좌표계와 로봇 좌표계 간의 관계를 나타냄.
- 회전 변환과 평행 이동으로 구분
회전 변환(Rotational Transformation)
82
X축을 정면에서 보면서 양 방향 회전 예시를 구해보자.
기준 좌표계 x-y-z를 x축에 대해 각도 𝜶만큼 양방향 회전 시 좌표계 x’-y’-z’는 아래의 그림처럼 구할 수 있다.
*이 때 x와 x’ 축은 같은 선상에 존재한다.
회전 변환(Rotational Transformation)
83
회전 변위를 동차 변환 행렬로 나타내면 첫 세 행은 x, y, z 축을 나타내며, 세 열은 회전 좌표계의 x’, y‘, z’ 축을
표현한다.
행렬 H는 왼쪽 위에서 3 x 3 회전 행렬로 나타내며
회전 행렬 요소는 행과 열이 나타내는 축 사이 각을 코사인이 된다.
- x’-x 사이 각은 0도 이므로 cos 0 = 1
- x’-y 사이 각은 90도 이므로 cos 90 =0
- y’-y 사이 각은 𝜶도 이므로 cos 𝜶
자세와 변위(Pose and Displacement)
87
동차 변환 행렬로 기준 좌표계에 대한 새 자세나 변위를 표현 할 수 있다.
3 x 3 행렬로 회전, 3 x 1 행렬로는 평행 이동을 나타낸다.
동차 변환 행렬의 마지막 행은 항상 [ 0 0 0 1]이 된다.
물체 변위를 나타내는 경우, 왼쪽 위 행렬은 회전, 오른쪽 세 컬럼은 평행이동을 나타낸다.
자세와 변위(Pose and Displacement)
88
동차 변환 행렬 H로 행렬 내적을 고려해보자
회전 표현을 보면, 첫 세 컬럼이 x-y-z 좌표계에서 x’-y’-z’로 회전을 나타낸다.
자세와 변위(Pose and Displacement)
89
기준 좌표계 x-y-z에 대한 새 좌표계 x’-y’-z’의 위치
https://hoodymong.tistory.com/396
오일러 각
오일러가 도입한 강체(rigid vody)의 회전시스템
강체를 수학적으로 표현하기 위해 위치(position)과 방향(rotation)을 정의해야함
위치는 x, y, z 좌표로 쉽게 정의할 수 있지만 방향은 어떻게 해야하는가?
방향을 x, y, z 세 축을 기준으로 회전하여 정의 한 것으로 오일러 각 시스템이라 한다.
Quaternions as an Ordered Pair
103 http://chanhaeng.blogspot.com/2018/07/blog-post.html
- 쿼터니언들을 하나의 순서 쌍으로 표현할 수 있습니다.
- 여기서 v는 각 요소들로도 나타낼 수 있습니다.
- 이 표기법으로, 조금 더 쉽게 쿼터니언과 복소수 사이 유사성을 볼 수 있습니다.
A Real Quaternion
104 http://chanhaeng.blogspot.com/2018/07/blog-post.html
- Real Quaternion은 vector항이 0인 쿼터니언 입니다.
- 그리고 두 실수 쿼터니언들의 곱은 다른 실수 쿼터니언이 됩니다.
Quaternion
106
- Definition of the Quaternion
- 3차원 회전을 표현하기 위하여, 확장된 복소수인 사원수(quaternion)를 사용
- 3차원 공간을 다루기 위해서는 4차원 공간이 필요 by Willan R. Hamilton, 1843
- 실수부/스칼라부 Re(q)와 허수부/벡터부 lm(q)로 구성
- 쿼터니언의 기저(basis)간의 곱
q = 𝑞0 + 𝑞1 𝑖 + 𝑞2 𝑗 + 𝑞3 𝑘
𝑞 = 𝑠, 𝑣 , 𝑠 = 𝑞0 ∈ ℝ, 𝑣 = 𝑞1, 𝑞2, 𝑞3
𝑇
∈ ℝ3
실수부
: unpolarized energy
허수부
: polarized energy
x 1 i j K
1 1 i j K
i i -1 k -j
j j -k -1 i
k k j -i -1
Quaternion (cont’d)
108
- Quaternion을 이용한 회전
- 3차원 공간 상의 한점 p에 대하여
- n 백터를 축으로 𝜃 만큼 회전을 나타내는 단위 쿼터니언을 이용하면
- 3차원 공간 상에서 회전된 점 𝑝′
을 계산 가능
- 계산 결과 실수부는 0이 되고, 허수부의 세 요소는 회전 후의 3차원 점의 좌표 표현
p = [ 0, x, y, z ]
q = [ cos
𝜃
2
, n sin
𝜃
2
]
𝑝′
= 𝑞𝑝𝑞−1
Representation of the Rotation in 3D
113
- 회전 행렬 (Rotation matrix 3 x 3)
- 좌표계 간의 회전 변환 관계를 나타내는 행렬
- 3 DOF를 표현하기 위해 9개의 값을 사용하는 중복성 존재
- 행렬식이 1인 직교 행렬이라는 제약 조건에 따라 최적화 문제에서 복잡도 증가
- 오일러 각 (Euler angle 3 x 1)
- 세 축을 중심으로 하는 순차적 회전을 통한 매우 직관적인 표현법
- 특정 상황에서 1 자유도를 잃어버리는 짐벌락(gimbal rock) 문제가 발생
- 보간과 반복에 적합하지 않아 주로 결과의 신속한 가시화를 위해 사용
- 쿼터니언 (Quaternion 4 x 1)
- 4개의 값으로 이루어진 확장된 복소수 체계를 이용해 3차원 회전을 표현
- 행렬에 비해 연산 속도가 빠르고, 차지하는 메모리 양도 적으며, 최단(shortest arc) 보간
으로 오류 발생률이 적은 장점을 지님