SlideShare a Scribd company logo
1 of 114
Download to read offline
190607
도정찬
3D Rigid Body Transform
2
I. 로봇이 주행하기 위해 무엇이 필요할까?
II. 강체 운동
III. 오일러각과 쿼터니언
Contents
3
Intro
A
B
목적지
로봇, A 지점, B 지점, 그리고 목적지의 위치를 나타내기 위해 필요한 기준
=> 좌표계
4
A(1,2)
로봇의 중심을 원점으로 하면 A의 좌표는 (1,2)
점 B를 원점으로 하면 A의 좌표는 (-1,3)
x
y
1
2
A(-1,3)
x
y
-1
3
B
B
점 b를 원점으로 할 때로봇의 중심을 원점으로 할 때
좌표계
5
A(1,2)
로봇의 중심을 원점으로하는 좌표계를
로봇 좌표계
*이 좌표계에서 로봇의 좌표는 항상 (0,0)
좌표계
x
y
1
2
B
로봇 좌표계
6
A
좌표계 상의 모든 요소들의 위치를 나타내기 위한 최상위 좌표계
세계 좌표계(World Coordinate)
*세계 좌표계에서 로봇의 위치는 (4,2)
좌표계
x
y
B
O세계 좌표계 4
2
7
A
일반적인 로봇의 위치는 세계 좌표계 기준으로 하며 (4,2)
로봇 좌표계 기준으로 (0,0)
위치
x
y
O세계 좌표계 4
2 X’
y’
로봇 좌표계
8
A
점 A는 세계 좌표계 기준으로 (5,5)
로봇 좌표계 기준으로(1,3)
위치
x
y
O세계 좌표계 4
2 X’
y’
로봇 좌표계
5
5
3
1
9
3차원 공간에서 로봇의 위치
(4, 4, 0)
x
y
세계 좌표계
z
X’
Y’
Z’
4
4
(4,4,0)
위치
10
자세
로봇이 주행하려면 위치만 있으면 될까??
11
자세
A
B
목적지
실제 로봇은 주행하면서 회전 운동을 하게 됩니다.
이 때 회전한 정도를 자세(Orientation)이라 합시다.
x
y
12
자세
로봇이 주행하기 위해 필요한 것
->위치와 자세
13
자세
실제 로봇은 주행하면서 회전 운동을 하게 됩니다.
이 때 회전한 정도를 자세(Orientation)이라 합시다.
x
y
axis
axis
P
point
Coordinate
vector
x
y
A. B.
14
6 자유도 (6 Degrees of Freedom)는
x, y, z에 대한 물체의 직진/회전 운동을 설명합니다.
X
Y
Z
(4,4,0)
6자유도
15
X, y, z축 방향 직진 운동으로 3 자유도
X
Y
Z
6자유도
16
3차원 공간에서의 병진 운동(Transitional Movement)
x
y
세계 좌표계
z
X’
Y’
Z’
4
4
X’
Y’
Z’
(8,2,0)
2
8
X’
Y’
Z’
(2,6,1)
6
2
6자유도
17
X, y, z 축에 대한 회전 운동(Rotational Movement)으로 3자유도
총 6개의 자유도를 갖습니다.
6자유도
X’Y’
Z=z’
z
X’z’
y=y’
z
y’z’
x=x’
Z축에서 볼 때 y축에서 볼 때 x축에서 볼 때
18
6자유도
19
강체(Rigid Body)란?
힘을 받아도 형태가 변하지 않는 물체
강체 변환
20
강체 변환 = 평행 이동 + 회전
강체 변환
X
y
z
X
y
z
강체 변환 평행이동
회전
X’
Z’
= +
21
X축 방향으로 평행이동(Translation) 크기를 Tx
y축 방향으로 평행이동 크기를 Ty라 하자. 행렬 덧셈으로 표현하면 위와 같다.
평행 이동
*평행이동 행렬 덧셈 표현
22
X축 방향 변화량을 dx, y축 방향 변화량을 dy일 때
행렬 곱으로 나타내면 위와 같다.
평행 이동
*평행이동 행렬 곱 표현
23
로봇이 (x,y)^T에 있을 때 벡터 A 만큼 이동한다고 하자
어떻게 표현할까?
O x
y
A
평행 이동
24
3차원 공간에서의 병진 운동(Transitional Movement)
x
y
세계 좌표계
z
X’
Y’
Z’
(8,2,0)
2
8
X’
Y’
Z’
(2,6,1)
6
2
6자유도
25
3차원 공간에서의 병진 운동(Transitional Movement)
x
y
세계 좌표계
z
X’
Y’
Z’
(8,2,0)
2
8
X’
Y’
Z’
(2,6,1)
6
2
6자유도
26
로봇의 좌표를
평행 이동 A
x
y
O세계 좌표계 x
y
X’
Y’
27
로봇이 (x,y)^T에 있을 때 벡터 A 만큼 이동한다고 하자
어떻게 표현할까?
O x
y
A
평행 이동
28
로봇이 (x,y)^T에 있을 때 벡터 A 만큼 이동한다고 하자
어떻게 표현할까?
O x
y
A
평행 이동
29
3차원 공간에서 로봇은 x’, y’, z’축 방향으로
직진하는 병진 운동(Transitional Movement)
회전 행렬
30
각 좌표계들은 별개로 존재하게 된다.
세계 좌표계 기준으로 로봇의 위치는 (4,2)
로봇 좌표계 기준으로 로봇의 위치는 (0,0)
좌표계
x
y
O
X’
Y’
세계 좌표계
로봇 좌표계
4
2
31
좌표계
A(3,5)
B(5,2)
목적지
로봇이 주행하려면 위치만 있으면 될까??
(7,5)
Introduction
32
- 로봇이 돌아다니기 위해
- 로봇 위치(Position)와 자세(Orientation)
https://hoodymong.tistory.com/3
https://kor.midasuser.com/nfx/techpaper/keyword_view.asp?idx=17
33
강체
힘을 가해도 모양이 변하지 않고,
평행 이동과 회전만 가능한 물체
34
그리스 문자 기호 및 발음 표기
https://jersuji.tistory.com/76
35
수학 기호 의미
http://pigbrain.github.io/math/2015/07/15/MathematicalSymbol_on_Math
36
스칼라와 벡터
스칼라는 크기를 갖는다.
백터는 크기와 방향을 갖는다.
크기
스칼라 벡터
길이, 넓이, 질량,
밀도, 압력, 온도,
거리
변위, 속도, 가속도
모멘텀, 양력, 항력
속도
37
거리(스칼라)와 변위(벡터)
http://www.sciencegood.com/zboard/zboard.php?id=our_util&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=
headnum&desc=desc&no=20
점(point)
38
- 3차원 공간상의 점으로, 3개의 숫자로 표현
- 주로 위치를 나타냅니다.
x
y
z
4
5
3
P(5,4,3)
벡터(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
https://hoodymong.tistory.com/3
https://kor.midasuser.com/nfx/techpaper/keyword_view.asp?idx=17
70
강체
힘을 가해도 모양이 변하지 않고,
평행 이동과 회전만 가능한 물체
좌표계
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차원 좌표계
73
평면 좌표계
https://m.blog.naver.com/PostView.nhn?blogId=njinka&logNo=220873320940&proxyReferer=https%3A%2F%2Fwww.google.com%2F
직교(직교) 좌표계(Cartesian Coordinate)
- x, y가 길이 성분으로 표현되는 좌표계
극 좌표계(Polar Coordinate)
- 원점에서 임의의 점까지 길이와 각으로 이루어지는 좌표계
(임의의 점까지 길이 : r, x축으로부터 각도 : 𝜽)
74
3차원 좌표계
https://m.blog.naver.com/PostView.nhn?blogId=njinka&logNo=220873320940&proxyReferer=https%3A%2F%2Fwww.google.com%2F
직교(직교) 좌표계(Cartesian coordinate)
- x, y, z가 길이 성분으로 표현되는 좌표계
원통좌표계(Cylindrical coordinate)
- 두 개의 길이와 하나의 각으로 표현하는 좌표계
- z 축 길이 성분 z, 반지름 r, x축과 이루는 각도 𝜽
- 점 P는 (r, 𝜽, z)로 표현
구면좌표계(spherical coordinate)
- 두 개의 길이와 하나의 각으로 표현하는 좌표계
- z 축 길이 성분 z, 반지름 r, x축과 이루는 각도 𝜽
- 점 P는 (r, 𝜽, 𝝋)로 표현
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
- 기준 좌표계와 로봇 좌표계 간의 관계를 나타냄.
- 회전 변환과 평행 이동으로 구분
평행이동 변환(Translational Transformation)
79
평행 이동 변위 d가 아래와 같이 제공되면,
동차 변환 행렬 H는 다음과 같이 표현할 수 있다.
이 행렬을 사용시 위치 벡터는 4 x 1 형태를 갖는다.
벡터 q와 행렬 H를 곱하면 벡터 q를 d만큼 이동한 변위를 구한다.
평행이동 변환(Translational Transformation)
80
평행이동은 동차 행렬을 곱하여 표현할 수 있지만 벡터 q와 이동 거리 d의 합으로도 표현할 수 있다.
벡터 1i + 2j + 3k가 거리 2i – 5j + 4k 만큼 이동하면 아래와 같다.
회전 변환(Rotational Transformation)
81
회전 변위는 오른손 좌표계 시스템에서 나타낸다.
양 방향 회전은 원점에서 각 축의 끝을 볼 때 시계방향을 향하며
엄지 손가락을 축 방향으로 놓을 때, 손가락이 회전 변위의 양방향을 향하게 된다..
회전 변환(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 𝜶
회전 변환(Rotational Transformation)
84
y축 중심으로 보면 y와 y‘는 공선상에 있다.
회전 변환(Rotational Transformation)
85
y축 회전 변환 행렬
Z축 회전 변환 행렬
회전 변환(Rotational Transformation)
86
간단한 예시로 벡터 u = 14i + 6j+ 0k를 z축에 대해 90도 양방향 회전하여 벡터 w를 구해보자
𝑢 = 14𝑖 + 6𝑗 + 0𝑘
(14, 6, 0)
(-6, 14, 0)
Z 축 Rot
자세와 변위(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’의 위치
자세와 변위(Pose and Displacement)
90
자세와 변위(Pose and Displacement)
91
변위 구하기
자세와 변위(Pose and Displacement)
92
Quaternion
https://hoodymong.tistory.com/394
짐벌
단일 축으로 물체가 회전할 수 있도록 중심축을 가진 구조물
아래의 그림에서는 roll, pitch, yaw 세 개가 단일 축 역할을 하며
각 고리들은 각자의 축을 기준으로만 회전한다.
짐벌
https://hoodymong.tistory.com/395
짐벌과 짐벌락
왼쪽 그림의 각 짐벌들은 특정한 축을 기준으로 회전하도록 되어있지만
오른쪽 그림은 짐벌락 상태를 보여주며 다른 짐벌들을 돌려 놓지 않는 이상
가장 안쪽에 있는 짐벌은 pitch 축으로 회전할 수 없습니다.
https://hoodymong.tistory.com/396
오일러 각
오일러가 도입한 강체(rigid vody)의 회전시스템
강체를 수학적으로 표현하기 위해 위치(position)과 방향(rotation)을 정의해야함
위치는 x, y, z 좌표로 쉽게 정의할 수 있지만 방향은 어떻게 해야하는가?
방향을 x, y, z 세 축을 기준으로 회전하여 정의 한 것으로 오일러 각 시스템이라 한다.
https://hoodymong.tistory.com/3
https://en.wikipedia.org/wiki/Gimbal_lock
97
짐벌락(Gimbal lock)
두 짐벌이 겹쳐지면 한 축에 대한 자유도를 상실하게 되는 문제
=> 쿼터니온(Quaternion) 도입
Complex Numbers
98 http://chanhaeng.blogspot.com/2018/07/blog-post.html
- 쿼터니언은 복소수 체계를 기반으로 한다.
- 잘 아는 숫자들의 집합(실수, 정수, 유리수 등) 이외에, 복소수 체계는 허수를 도입.
- 허수는 아래와 같이 해가 없는 방법을 해결하기위해 발명
- 이 경우를 해결하기 위해서 어떤 수의 제곱은 항상 양수이므로 를 명시해야 한다.
- 위 처럼 해가 없는 식을 해결하기 위해 허수의 개념이 만들어 졌으며 아래의 형태를 갖는다.
Complex Numbers
99 http://chanhaeng.blogspot.com/2018/07/blog-post.html
- 허수의 집합은 로 나타낸다.
- 복소수의 집합은 (기호 로 나타내며) 실수와 허수의 합이고, 다음의 형태를 갖는다.
- 모든 실수들은 b = 0인 복소수이고, 모든 허수들은 a =0인 복소수가 된다.
Complex Plane
100 https://ko.wikipedia.org/wiki/%EB%B3%B5%EC%86%8C%ED%8F%89%EB%A9%B4
- 복소평면은 복소수를 기하학적으로 표현하기 위해 개발된 좌표 평면으로 서로 직교하는
실수 축과 허수 축으로 이루어 져 있습니다.
Rotors
101 http://chanhaeng.blogspot.com/2018/07/blog-post.html
- 복소 평면에서 이러한 형태의 복소수를 정의하여 회전 할 수 있다.
- 어떤 복소수를 rotor q로 곱하면 일반적인 회전 공식을 만들어 냅니다.
- 위 식을 행렬 형태로 쓰면 회전 행렬이 됩니다. 이 행렬로 복소 평면에서 원점에 대해 시계
반대방향으로 임의의 점을 이동 시킵니다.
Quaternions
102 http://chanhaeng.blogspot.com/2018/07/blog-post.html
- 복소수 체계와 복소 평면의 지식을 갖고, 우리는 I 이외에도 두개의 허수를 더하여 이것을
3차원 공간으로 확장 시킬 수 있습니다.
- 쿼터니언을 표현하는 일반적인 형태는 아래와 같습니다.
- Hamlton의 유명한 표현에 따라:
- I, j, k 사이의 관계는 카티시안 벡터에 대한 외적 규칙과 비슷합니다.
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인 쿼터니언 입니다.
- 그리고 두 실수 쿼터니언들의 곱은 다른 실수 쿼터니언이 됩니다.
Pure Quaternions
105 http://chanhaeng.blogspot.com/2018/07/blog-post.html
- Real Quaternions와 유사하게, 스칼라 항이 0인 Quaternion을 Pure Quaternion이라 합니다.
- 보통 이 요소를 아래와 같이 씁니다.
- 두 Pure quaternion의 곱은 아래와 같습니다.
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)
107
- 연산 관련 성질
− Conjugate ∶ ത𝑞 = 𝑅𝑒 q − Im q = 𝑞0 − 𝑞1 𝑖 − 𝑞2 𝑗 − 𝑞3 𝑘
− Norm ∶ 𝑞 = 𝑞ത𝑞 = 𝑞0
2
+ 𝑞1
2
+ 𝑞2
2
+ 𝑞3
2
For ∀𝑞 𝑎, 𝑞 𝑏, 𝑞 𝑐 ∈ ℋ
Quaternion (cont’d)
108
- Quaternion을 이용한 회전
- 3차원 공간 상의 한점 p에 대하여
- n 백터를 축으로 𝜃 만큼 회전을 나타내는 단위 쿼터니언을 이용하면
- 3차원 공간 상에서 회전된 점 𝑝′
을 계산 가능
- 계산 결과 실수부는 0이 되고, 허수부의 세 요소는 회전 후의 3차원 점의 좌표 표현
p = [ 0, x, y, z ]
q = [ cos
𝜃
2
, n sin
𝜃
2
]
𝑝′
= 𝑞𝑝𝑞−1
Quaternion (cont’d)
109
- 회전 벡터와 쿼터니언 간의 변환
- 단위 벡터 𝑛 = [𝑛 𝑥, 𝑛 𝑦, 𝑛 𝑧] 를 중심으로 𝜃 만큼 회전한 경우
Quaternion (cont’d)
110
- 회전 벡터와 쿼터니언 간의 변환
- 쿼터니언을 회전 벡터로 변환한 다음 Rodrigues 수식에 따라 행렬로 변환
- q와 –q가 같은 회전을 나타내므로 R의 쿼터니언 변환은 고유하지 않음
Quaternion (cont’d)
111
- 회전 벡터와 쿼터니언 간의 변환
- 쿼터니언을 회전 벡터로 변환한 다음 Rodrigues 수식에 따라 행렬로 변환
Interpolation
112
- 쿼터니언의 선형보간과 구면 선형보간(spherical linear interpolation)
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) 보간
으로 오류 발생률이 적은 장점을 지님
감사합니다
114

More Related Content

What's hot

Path Planning And Navigation
Path Planning And NavigationPath Planning And Navigation
Path Planning And Navigationguest90654fd
 
SLAM-베이즈필터와 칼만필터
SLAM-베이즈필터와 칼만필터SLAM-베이즈필터와 칼만필터
SLAM-베이즈필터와 칼만필터jdo
 
Introduction to Steering behaviours for Autonomous Agents
Introduction to Steering behaviours for Autonomous AgentsIntroduction to Steering behaviours for Autonomous Agents
Introduction to Steering behaviours for Autonomous AgentsBryan Duggan
 
Kinematic modelofrobotmanipulators (1)
Kinematic modelofrobotmanipulators (1)Kinematic modelofrobotmanipulators (1)
Kinematic modelofrobotmanipulators (1)Amarildo Pasha
 
Prediction and planning for self driving at waymo
Prediction and planning for self driving at waymoPrediction and planning for self driving at waymo
Prediction and planning for self driving at waymoYu Huang
 
Robotics for Path Planning
Robotics for Path PlanningRobotics for Path Planning
Robotics for Path PlanningHitesh Mohapatra
 
Inverse kinematics
Inverse kinematicsInverse kinematics
Inverse kinematicsLINE+
 
Robots one day presentation
Robots one day presentationRobots one day presentation
Robots one day presentationGanesh Murugan
 
Robot motion planning
Robot motion planningRobot motion planning
Robot motion planningAJAL A J
 
Simultaneous Localization, Mapping and Self-body Shape Estimation by a Mobile...
Simultaneous Localization, Mapping and Self-body Shape Estimation by a Mobile...Simultaneous Localization, Mapping and Self-body Shape Estimation by a Mobile...
Simultaneous Localization, Mapping and Self-body Shape Estimation by a Mobile...Akira Taniguchi
 
Introduction to SAC(Soft Actor-Critic)
Introduction to SAC(Soft Actor-Critic)Introduction to SAC(Soft Actor-Critic)
Introduction to SAC(Soft Actor-Critic)Suhyun Cho
 
Robotics of Quadruped Robot
Robotics of Quadruped RobotRobotics of Quadruped Robot
Robotics of Quadruped Robot홍배 김
 
Slam algorithms
Slam algorithmsSlam algorithms
Slam algorithmsjdo
 
Multi Agent Path Finding (MAPF)
Multi Agent Path Finding (MAPF)Multi Agent Path Finding (MAPF)
Multi Agent Path Finding (MAPF)MdAhasanulAlam
 
Image processing for robotics
Image processing for roboticsImage processing for robotics
Image processing for roboticsSALAAMCHAUS
 
Robot operating system [ROS]
Robot operating system [ROS]Robot operating system [ROS]
Robot operating system [ROS]Abrar Mohamed
 
Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)Bongseok Cho
 

What's hot (20)

Path Planning And Navigation
Path Planning And NavigationPath Planning And Navigation
Path Planning And Navigation
 
SLAM-베이즈필터와 칼만필터
SLAM-베이즈필터와 칼만필터SLAM-베이즈필터와 칼만필터
SLAM-베이즈필터와 칼만필터
 
Introduction to Steering behaviours for Autonomous Agents
Introduction to Steering behaviours for Autonomous AgentsIntroduction to Steering behaviours for Autonomous Agents
Introduction to Steering behaviours for Autonomous Agents
 
Kinematic modelofrobotmanipulators (1)
Kinematic modelofrobotmanipulators (1)Kinematic modelofrobotmanipulators (1)
Kinematic modelofrobotmanipulators (1)
 
Prediction and planning for self driving at waymo
Prediction and planning for self driving at waymoPrediction and planning for self driving at waymo
Prediction and planning for self driving at waymo
 
Robotics for Path Planning
Robotics for Path PlanningRobotics for Path Planning
Robotics for Path Planning
 
Inverse kinematics
Inverse kinematicsInverse kinematics
Inverse kinematics
 
Graph-based SLAM
Graph-based SLAMGraph-based SLAM
Graph-based SLAM
 
Robots one day presentation
Robots one day presentationRobots one day presentation
Robots one day presentation
 
Robot motion planning
Robot motion planningRobot motion planning
Robot motion planning
 
Simultaneous Localization, Mapping and Self-body Shape Estimation by a Mobile...
Simultaneous Localization, Mapping and Self-body Shape Estimation by a Mobile...Simultaneous Localization, Mapping and Self-body Shape Estimation by a Mobile...
Simultaneous Localization, Mapping and Self-body Shape Estimation by a Mobile...
 
Introduction to SAC(Soft Actor-Critic)
Introduction to SAC(Soft Actor-Critic)Introduction to SAC(Soft Actor-Critic)
Introduction to SAC(Soft Actor-Critic)
 
Robotics of Quadruped Robot
Robotics of Quadruped RobotRobotics of Quadruped Robot
Robotics of Quadruped Robot
 
Slam algorithms
Slam algorithmsSlam algorithms
Slam algorithms
 
Multi Agent Path Finding (MAPF)
Multi Agent Path Finding (MAPF)Multi Agent Path Finding (MAPF)
Multi Agent Path Finding (MAPF)
 
Ai lecture 04 robotics
Ai lecture 04 roboticsAi lecture 04 robotics
Ai lecture 04 robotics
 
Image processing for robotics
Image processing for roboticsImage processing for robotics
Image processing for robotics
 
Robot operating system [ROS]
Robot operating system [ROS]Robot operating system [ROS]
Robot operating system [ROS]
 
Robot Manipulation Basics
Robot Manipulation BasicsRobot Manipulation Basics
Robot Manipulation Basics
 
Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)Game Physics Engine Development (게임 물리 엔진 개발)
Game Physics Engine Development (게임 물리 엔진 개발)
 

Similar to 입문 Visual SLAM 14강 - 3장 3d rigid body transform

딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)WON JOON YOO
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)WON JOON YOO
 
차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)beom kyun choi
 
[0528 석재호]게임을위한기초수학과물리
[0528 석재호]게임을위한기초수학과물리[0528 석재호]게임을위한기초수학과물리
[0528 석재호]게임을위한기초수학과물리Jaeho Seok
 
컴퓨터 그래픽스 2015-2019년 기말시험
컴퓨터 그래픽스 2015-2019년 기말시험컴퓨터 그래픽스 2015-2019년 기말시험
컴퓨터 그래픽스 2015-2019년 기말시험Lee Sang-Ho
 
2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdfjinwookhong
 
2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdfkd19h
 
신경망 첫걸음 - 한빛미디어 요약
신경망 첫걸음 - 한빛미디어 요약신경망 첫걸음 - 한빛미디어 요약
신경망 첫걸음 - 한빛미디어 요약고포릿 default
 
선형대수 06. 영벡터공간과 해집합
선형대수 06. 영벡터공간과 해집합선형대수 06. 영벡터공간과 해집합
선형대수 06. 영벡터공간과 해집합AHRA CHO
 
환경계산법
환경계산법환경계산법
환경계산법Jaemin Seo
 
2012 Ds C2 06
2012 Ds C2 062012 Ds C2 06
2012 Ds C2 06seonhyung
 
제4강 명제와 논리-정보
제4강 명제와 논리-정보제4강 명제와 논리-정보
제4강 명제와 논리-정보csungwoo
 
Linear algebra for quantum computing
Linear algebra for quantum computingLinear algebra for quantum computing
Linear algebra for quantum computingssuserd0f07b
 
05_벡터와 매트릭스
05_벡터와 매트릭스05_벡터와 매트릭스
05_벡터와 매트릭스noerror
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)AHRA CHO
 
3D 컴퓨터 그래픽스 기초
3D 컴퓨터 그래픽스 기초3D 컴퓨터 그래픽스 기초
3D 컴퓨터 그래픽스 기초Seung Joon Choi
 
[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기Chris Ohk
 
파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기Yong Joon Moon
 

Similar to 입문 Visual SLAM 14강 - 3장 3d rigid body transform (20)

딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리 학습을 위한 PPT! (Deep Learning for Natural Language Processing)
 
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
딥 러닝 자연어 처리를 학습을 위한 파워포인트. (Deep Learning for Natural Language Processing)
 
차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)
 
선형 대수학
선형 대수학선형 대수학
선형 대수학
 
[0528 석재호]게임을위한기초수학과물리
[0528 석재호]게임을위한기초수학과물리[0528 석재호]게임을위한기초수학과물리
[0528 석재호]게임을위한기초수학과물리
 
컴퓨터 그래픽스 2015-2019년 기말시험
컴퓨터 그래픽스 2015-2019년 기말시험컴퓨터 그래픽스 2015-2019년 기말시험
컴퓨터 그래픽스 2015-2019년 기말시험
 
2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf
 
2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf2012 Dm A0 06 Pdf
2012 Dm A0 06 Pdf
 
신경망 첫걸음 - 한빛미디어 요약
신경망 첫걸음 - 한빛미디어 요약신경망 첫걸음 - 한빛미디어 요약
신경망 첫걸음 - 한빛미디어 요약
 
선형대수 06. 영벡터공간과 해집합
선형대수 06. 영벡터공간과 해집합선형대수 06. 영벡터공간과 해집합
선형대수 06. 영벡터공간과 해집합
 
환경계산법
환경계산법환경계산법
환경계산법
 
2012 Ds C2 06
2012 Ds C2 062012 Ds C2 06
2012 Ds C2 06
 
제4강 명제와 논리-정보
제4강 명제와 논리-정보제4강 명제와 논리-정보
제4강 명제와 논리-정보
 
Linear algebra for quantum computing
Linear algebra for quantum computingLinear algebra for quantum computing
Linear algebra for quantum computing
 
자료구조02
자료구조02자료구조02
자료구조02
 
05_벡터와 매트릭스
05_벡터와 매트릭스05_벡터와 매트릭스
05_벡터와 매트릭스
 
선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)선형대수 08. 선형 변환 (Linear Transformation)
선형대수 08. 선형 변환 (Linear Transformation)
 
3D 컴퓨터 그래픽스 기초
3D 컴퓨터 그래픽스 기초3D 컴퓨터 그래픽스 기초
3D 컴퓨터 그래픽스 기초
 
[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기[NDC 2018] 유체역학 엔진 개발기
[NDC 2018] 유체역학 엔진 개발기
 
파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기파이썬 Numpy 선형대수 이해하기
파이썬 Numpy 선형대수 이해하기
 

More from jdo

[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리jdo
 
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수jdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Othersjdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNetjdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNetjdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16jdo
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷jdo
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2jdo
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1jdo
 
[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2jdo
 
[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1jdo
 
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수jdo
 
[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트jdo
 
[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망jdo
 
[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열jdo
 
[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화jdo
 
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제jdo
 
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부jdo
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competitionjdo
 
1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식jdo
 

More from jdo (20)

[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 2. 데이터 전처리
 
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
[컴퓨터비전과 인공지능] 10. 신경망 학습하기 파트 1 - 1. 활성화 함수
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 5 - Others
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 4 - ResNet
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 3 - GoogLeNet
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16 [컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG-16
 
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
[컴퓨터비전과 인공지능] 8. 합성곱 신경망 아키텍처 1 - 알렉스넷
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 2
 
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
[컴퓨터비전과 인공지능] 7. 합성곱 신경망 1
 
[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2[컴퓨터비전과 인공지능] 6. 역전파 2
[컴퓨터비전과 인공지능] 6. 역전파 2
 
[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1[컴퓨터비전과 인공지능] 6. 역전파 1
[컴퓨터비전과 인공지능] 6. 역전파 1
 
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
[컴퓨터비전과 인공지능] 5. 신경망 2 - 신경망 근사화와 컨벡스 함수
 
[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트[리트코드 문제 풀기] 연결 리스트
[리트코드 문제 풀기] 연결 리스트
 
[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망[컴퓨터비전과 인공지능] 5. 신경망
[컴퓨터비전과 인공지능] 5. 신경망
 
[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열[리트코드 문제 풀기] 배열
[리트코드 문제 풀기] 배열
 
[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화[컴퓨터비전과 인공지능] 4. 최적화
[컴퓨터비전과 인공지능] 4. 최적화
 
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
[컴퓨터비전과 인공지능] 3. 선형 분류기 : 손실 함수와 규제
 
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
[컴퓨터비전과 인공지능] 3. 선형 분류 : 선형 분류기 일부
 
Titanic kaggle competition
Titanic kaggle competitionTitanic kaggle competition
Titanic kaggle competition
 
1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식1 2. 직선과 평면에서의 벡터 방정식
1 2. 직선과 평면에서의 벡터 방정식
 

입문 Visual SLAM 14강 - 3장 3d rigid body transform

  • 2. 2 I. 로봇이 주행하기 위해 무엇이 필요할까? II. 강체 운동 III. 오일러각과 쿼터니언 Contents
  • 3. 3 Intro A B 목적지 로봇, A 지점, B 지점, 그리고 목적지의 위치를 나타내기 위해 필요한 기준 => 좌표계
  • 4. 4 A(1,2) 로봇의 중심을 원점으로 하면 A의 좌표는 (1,2) 점 B를 원점으로 하면 A의 좌표는 (-1,3) x y 1 2 A(-1,3) x y -1 3 B B 점 b를 원점으로 할 때로봇의 중심을 원점으로 할 때 좌표계
  • 5. 5 A(1,2) 로봇의 중심을 원점으로하는 좌표계를 로봇 좌표계 *이 좌표계에서 로봇의 좌표는 항상 (0,0) 좌표계 x y 1 2 B 로봇 좌표계
  • 6. 6 A 좌표계 상의 모든 요소들의 위치를 나타내기 위한 최상위 좌표계 세계 좌표계(World Coordinate) *세계 좌표계에서 로봇의 위치는 (4,2) 좌표계 x y B O세계 좌표계 4 2
  • 7. 7 A 일반적인 로봇의 위치는 세계 좌표계 기준으로 하며 (4,2) 로봇 좌표계 기준으로 (0,0) 위치 x y O세계 좌표계 4 2 X’ y’ 로봇 좌표계
  • 8. 8 A 점 A는 세계 좌표계 기준으로 (5,5) 로봇 좌표계 기준으로(1,3) 위치 x y O세계 좌표계 4 2 X’ y’ 로봇 좌표계 5 5 3 1
  • 9. 9 3차원 공간에서 로봇의 위치 (4, 4, 0) x y 세계 좌표계 z X’ Y’ Z’ 4 4 (4,4,0) 위치
  • 11. 11 자세 A B 목적지 실제 로봇은 주행하면서 회전 운동을 하게 됩니다. 이 때 회전한 정도를 자세(Orientation)이라 합시다. x y
  • 12. 12 자세 로봇이 주행하기 위해 필요한 것 ->위치와 자세
  • 13. 13 자세 실제 로봇은 주행하면서 회전 운동을 하게 됩니다. 이 때 회전한 정도를 자세(Orientation)이라 합시다. x y axis axis P point Coordinate vector x y A. B.
  • 14. 14 6 자유도 (6 Degrees of Freedom)는 x, y, z에 대한 물체의 직진/회전 운동을 설명합니다. X Y Z (4,4,0) 6자유도
  • 15. 15 X, y, z축 방향 직진 운동으로 3 자유도 X Y Z 6자유도
  • 16. 16 3차원 공간에서의 병진 운동(Transitional Movement) x y 세계 좌표계 z X’ Y’ Z’ 4 4 X’ Y’ Z’ (8,2,0) 2 8 X’ Y’ Z’ (2,6,1) 6 2 6자유도
  • 17. 17 X, y, z 축에 대한 회전 운동(Rotational Movement)으로 3자유도 총 6개의 자유도를 갖습니다. 6자유도 X’Y’ Z=z’ z X’z’ y=y’ z y’z’ x=x’ Z축에서 볼 때 y축에서 볼 때 x축에서 볼 때
  • 19. 19 강체(Rigid Body)란? 힘을 받아도 형태가 변하지 않는 물체 강체 변환
  • 20. 20 강체 변환 = 평행 이동 + 회전 강체 변환 X y z X y z 강체 변환 평행이동 회전 X’ Z’ = +
  • 21. 21 X축 방향으로 평행이동(Translation) 크기를 Tx y축 방향으로 평행이동 크기를 Ty라 하자. 행렬 덧셈으로 표현하면 위와 같다. 평행 이동 *평행이동 행렬 덧셈 표현
  • 22. 22 X축 방향 변화량을 dx, y축 방향 변화량을 dy일 때 행렬 곱으로 나타내면 위와 같다. 평행 이동 *평행이동 행렬 곱 표현
  • 23. 23 로봇이 (x,y)^T에 있을 때 벡터 A 만큼 이동한다고 하자 어떻게 표현할까? O x y A 평행 이동
  • 24. 24 3차원 공간에서의 병진 운동(Transitional Movement) x y 세계 좌표계 z X’ Y’ Z’ (8,2,0) 2 8 X’ Y’ Z’ (2,6,1) 6 2 6자유도
  • 25. 25 3차원 공간에서의 병진 운동(Transitional Movement) x y 세계 좌표계 z X’ Y’ Z’ (8,2,0) 2 8 X’ Y’ Z’ (2,6,1) 6 2 6자유도
  • 26. 26 로봇의 좌표를 평행 이동 A x y O세계 좌표계 x y X’ Y’
  • 27. 27 로봇이 (x,y)^T에 있을 때 벡터 A 만큼 이동한다고 하자 어떻게 표현할까? O x y A 평행 이동
  • 28. 28 로봇이 (x,y)^T에 있을 때 벡터 A 만큼 이동한다고 하자 어떻게 표현할까? O x y A 평행 이동
  • 29. 29 3차원 공간에서 로봇은 x’, y’, z’축 방향으로 직진하는 병진 운동(Transitional Movement) 회전 행렬
  • 30. 30 각 좌표계들은 별개로 존재하게 된다. 세계 좌표계 기준으로 로봇의 위치는 (4,2) 로봇 좌표계 기준으로 로봇의 위치는 (0,0) 좌표계 x y O X’ Y’ 세계 좌표계 로봇 좌표계 4 2
  • 32. Introduction 32 - 로봇이 돌아다니기 위해 - 로봇 위치(Position)와 자세(Orientation)
  • 34. 34 그리스 문자 기호 및 발음 표기 https://jersuji.tistory.com/76
  • 36. 36 스칼라와 벡터 스칼라는 크기를 갖는다. 백터는 크기와 방향을 갖는다. 크기 스칼라 벡터 길이, 넓이, 질량, 밀도, 압력, 온도, 거리 변위, 속도, 가속도 모멘텀, 양력, 항력 속도
  • 38. 점(point) 38 - 3차원 공간상의 점으로, 3개의 숫자로 표현 - 주로 위치를 나타냅니다. x y z 4 5 3 P(5,4,3)
  • 39. 벡터(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. 벡터 곱 - 내적 40 - 내적에 대해 보기전에 벡터 곱에는 내적과 외적 2가지 종류가 있습니다. https://rfriend.tistory.com/145?category=606751
  • 41. 벡터 곱 41 - 내적에 대해 보기전에 벡터 곱에는 내적과 외적 2가지 종류가 있습니다. https://rfriend.tistory.com/145?category=606751
  • 42. 벡터 곱 – 내적과 외적 비교 42 https://rfriend.tistory.com/145?category=606751
  • 43. 벡터 곱 – 내적 43 https://rfriend.tistory.com/145?category=606751 내적의 표기 - 두 벡터의 내적은 ‘ . ’(dot)로 표기하며, 접곱(dot product)라고 합니다. 결과값이 스칼라 이기 때문에 스칼라곱(scalar product)이기도 하며, 한쪽 벡터의 코사인 값을 사용하기 때문에(즉, 한쪽 벡터에 직사광선을 쪼였을 때 그 그림자에 해당하는 코사인 값을 사용) 영사곱(projection product)라고도 합니다. - 똑같은 개념을 두고 표현이 다양한 이유는 대수학, 기하학, 물리학 등 학문 영역 별로 명칭, 표기가 다르기 때문입니다.
  • 44. 벡터 곱 – 내적 44 https://rfriend.tistory.com/145?category=606751 내적의 정의 - R^n 내의 두 열 벡터 a, b에 대해 곱 T(a)b을하면 단일 성분을 갖는 1*1 행렬, 즉 실수가 Scalar가 내적(inner product)가 됩니다. 식을 풀어 쓰면 아래와 같이 되고 결과는 스칼라가 됩니다.
  • 45. 벡터 곱 – 내적 45 https://rfriend.tistory.com/145?category=606751 내적의 계산 예시
  • 46. 벡터 곱 – 내적 46 https://rfriend.tistory.com/145?category=606751 내적의 계산 원리, 방법 1 - 내적을 계산하는 방법 중 하나로, 벡터를 성분 분해해서 각 성분들의 벡터 길이를 곱한 후 더하는 방법이 있습니다.
  • 47. 벡터 곱 – 내적 47 https://rfriend.tistory.com/145?category=606751 내적의 계산 원리, 방법 2 - 벡터 힘의 크기 또는 길이와 각도를 사용하는 방법이 있습니다. 벡터 힘의 크기/길이를 “norm”이라고도 부릅니다. 두 개중 한 개의 벡터에 빛을 비추었을 때 직각으로 생기는 그림자(vector a * cosine(theta))에다가 나머지 다른 벡터를 곱하는 개념입니다.
  • 48. 벡터 곱 – 내적 48 https://rfriend.tistory.com/145?category=606751 벡터 힘의 크기/길이(norm)
  • 49. 벡터 곱 – 내적 49 https://rfriend.tistory.com/145?category=606751 내적을 활용한 두 벡터의 각도 계산 - 벡터의 내적을 구하는 공식으로 벡터의 길이나 두 벡터간 각도를 구할 수 있습니다.
  • 50. 벡터 곱 – 외적 50 https://rfriend.tistory.com/146?category=606751 외적의 표기 - 두 벡터 a, b의 외적은 a x b라 쓰고 “a cross b”라고 읽습니다. 그래서 외적을 교차곱(cross product)라고도 부릅니다.
  • 51. 벡터 곱 – 외적 51 https://rfriend.tistory.com/146?category=606751 외적의 정의 - 두 벡터 a, b에 수직이 되는 벡터로서, v와 수직이 되는 두 벡터 a와 b는 공간 속 평면 위에 있는 평행사변형의 두 변을 이루며, 그 벡터의 길이(힘의 크기) |v|는 평행사변형의 면적과 같습니다. 출력 => 벡터(3 dimensional vector)
  • 52. 벡터 곱 – 외적 52 https://rfriend.tistory.com/146?category=606751 외적의 쉽게 계산하기 - 내적 대비 계산하는 방법이 어려워 보이는데 아래 처럼 a, b의 요소들을 두 번씩 세로로 쓰고 두 번째 행부터 순차적으로 대각선으로 곱하고 빼가면 v1, v2, v3을 구할 수 있습니다.
  • 53. 벡터 공간, 기저, 차원, 부분 공간 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. 벡터 공간, 기저, 차원, 부분 공간 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. 벡터 공간, 기저, 차원, 부분 공간 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. 벡터 공간, 기저, 차원, 부분 공간 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. 벡터 공간, 기저, 차원, 부분 공간 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. 벡터 공간, 기저, 차원, 부분 공간 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. 벡터 공간, 기저, 차원, 부분 공간 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. 벡터 공간, 기저, 차원, 부분 공간 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. 벡터 공간, 기저, 차원, 부분 공간 61 차원 을 만들어내는 기저는 처럼 여러 종류가 있다. 하지만 공통점이 있는데 을 만들려면 항상 3개의 원소가 필요하다. 그래서 이 3을 의 차원이라 부르고, 라 표기한다. http://blog.naver.com/PostView.nhn?blogId=ooooooooooo0&logNo=220386686575
  • 62. 벡터 공간, 기저, 차원, 부분 공간 62 벡터로 점과 축 표현하기 https://rfriend.tistory.com/161?category=606751 단위 벡터에 3을 스칼라 곱하여 점을 표현 단위벡터에 실수 c를 스칼라 곱하여 축을 표현
  • 63. 벡터 공간, 기저, 차원, 부분 공간 63 벡터로 직선 표현하기 https://rfriend.tistory.com/161?category=606751 X1=4인 직선 표현 X2=5인 직선 표현
  • 64. 벡터 공간, 기저, 차원, 부분 공간 64 벡터로 2차원 평면 표현하기 https://rfriend.tistory.com/161?category=606751 단위 벡터를 이용하여 x1, x2축에 평행인 2차원 평면 표현 단위 벡터를 사용하지 않은 경우
  • 65. 벡터 공간, 기저, 차원, 부분 공간 65 벡터로 3차원 공간 표현하기 https://rfriend.tistory.com/161?category=606751
  • 66. 벡터 공간, 기저, 차원, 부분 공간 66 벡터로 n차원 공간 표현하기 https://rfriend.tistory.com/161?category=606751
  • 67. 벡터 공간, 기저, 차원, 부분 공간 67 https://rfriend.tistory.com/161?category=606751 벡터 부분공간(vector subspace) 벡터 공간 V의 공집합이 아닌 부분집합 W가 벡터공간 구조를 가질 때, 부분집합 W가 벡터공간 V에서 정의된 (1) 덧셈 연산과 (2) 스칼라곱 연산을 만족할 때, 그 부분집합 W를 벡터의 부분공간 이라 한다.
  • 68. 벡터 공간, 기저, 차원, 부분 공간 68 https://rfriend.tistory.com/161?category=606751 벡터 부분공간의 예시 3차원 공간에서 단위 벡터를 기저로 하는 ‘원점을 지나는 직선’이나 ‘원점을 지나는 평면‘이 있습니다.
  • 69. 선형 독립과 선형대수의 관계 69 https://rfriend.tistory.com/163?category=606751
  • 71. 좌표계 71 - 좌표계는 3개의 직교 축으로 이루어지며, 정의 방식에 따라 왼손/오른손 좌표계로 구분 - 대부분 오른손 좌표계를 사용하지만, Direct3D와 일부 라이브러리들은 왼손 좌표계를 사용 https://kugistory.net/32
  • 72. 72 좌표계 - 평면 좌표계와 3차원 좌표계 https://m.blog.naver.com/PostView.nhn?blogId=njinka&logNo=220873320940&proxyReferer=https%3A%2F%2Fwww.google.com%2F 평면 좌표계 3차원 좌표계
  • 73. 73 평면 좌표계 https://m.blog.naver.com/PostView.nhn?blogId=njinka&logNo=220873320940&proxyReferer=https%3A%2F%2Fwww.google.com%2F 직교(직교) 좌표계(Cartesian Coordinate) - x, y가 길이 성분으로 표현되는 좌표계 극 좌표계(Polar Coordinate) - 원점에서 임의의 점까지 길이와 각으로 이루어지는 좌표계 (임의의 점까지 길이 : r, x축으로부터 각도 : 𝜽)
  • 74. 74 3차원 좌표계 https://m.blog.naver.com/PostView.nhn?blogId=njinka&logNo=220873320940&proxyReferer=https%3A%2F%2Fwww.google.com%2F 직교(직교) 좌표계(Cartesian coordinate) - x, y, z가 길이 성분으로 표현되는 좌표계 원통좌표계(Cylindrical coordinate) - 두 개의 길이와 하나의 각으로 표현하는 좌표계 - z 축 길이 성분 z, 반지름 r, x축과 이루는 각도 𝜽 - 점 P는 (r, 𝜽, z)로 표현 구면좌표계(spherical coordinate) - 두 개의 길이와 하나의 각으로 표현하는 좌표계 - z 축 길이 성분 z, 반지름 r, x축과 이루는 각도 𝜽 - 점 P는 (r, 𝜽, 𝝋)로 표현
  • 75. 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. 76 6 자유도(6DOF : 6 Degree of Freedom) - 6 자유도 운동은 3차원 직교 좌표계에 존재하는 로봇의 위치(Position)와 자세(Orientation) 표현 - 각 축에 대한 평행이동으로 3자유도(위치), 각 축에 대한 회전 운동으로 나머지 3자유도(자세)
  • 77. 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
  • 78. 3차원 강체 변환 78 - 기준 좌표계와 로봇 좌표계 간의 관계를 나타냄. - 회전 변환과 평행 이동으로 구분
  • 79. 평행이동 변환(Translational Transformation) 79 평행 이동 변위 d가 아래와 같이 제공되면, 동차 변환 행렬 H는 다음과 같이 표현할 수 있다. 이 행렬을 사용시 위치 벡터는 4 x 1 형태를 갖는다. 벡터 q와 행렬 H를 곱하면 벡터 q를 d만큼 이동한 변위를 구한다.
  • 80. 평행이동 변환(Translational Transformation) 80 평행이동은 동차 행렬을 곱하여 표현할 수 있지만 벡터 q와 이동 거리 d의 합으로도 표현할 수 있다. 벡터 1i + 2j + 3k가 거리 2i – 5j + 4k 만큼 이동하면 아래와 같다.
  • 81. 회전 변환(Rotational Transformation) 81 회전 변위는 오른손 좌표계 시스템에서 나타낸다. 양 방향 회전은 원점에서 각 축의 끝을 볼 때 시계방향을 향하며 엄지 손가락을 축 방향으로 놓을 때, 손가락이 회전 변위의 양방향을 향하게 된다..
  • 82. 회전 변환(Rotational Transformation) 82 X축을 정면에서 보면서 양 방향 회전 예시를 구해보자. 기준 좌표계 x-y-z를 x축에 대해 각도 𝜶만큼 양방향 회전 시 좌표계 x’-y’-z’는 아래의 그림처럼 구할 수 있다. *이 때 x와 x’ 축은 같은 선상에 존재한다.
  • 83. 회전 변환(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 𝜶
  • 84. 회전 변환(Rotational Transformation) 84 y축 중심으로 보면 y와 y‘는 공선상에 있다.
  • 85. 회전 변환(Rotational Transformation) 85 y축 회전 변환 행렬 Z축 회전 변환 행렬
  • 86. 회전 변환(Rotational Transformation) 86 간단한 예시로 벡터 u = 14i + 6j+ 0k를 z축에 대해 90도 양방향 회전하여 벡터 w를 구해보자 𝑢 = 14𝑖 + 6𝑗 + 0𝑘 (14, 6, 0) (-6, 14, 0) Z 축 Rot
  • 87. 자세와 변위(Pose and Displacement) 87 동차 변환 행렬로 기준 좌표계에 대한 새 자세나 변위를 표현 할 수 있다. 3 x 3 행렬로 회전, 3 x 1 행렬로는 평행 이동을 나타낸다. 동차 변환 행렬의 마지막 행은 항상 [ 0 0 0 1]이 된다. 물체 변위를 나타내는 경우, 왼쪽 위 행렬은 회전, 오른쪽 세 컬럼은 평행이동을 나타낸다.
  • 88. 자세와 변위(Pose and Displacement) 88 동차 변환 행렬 H로 행렬 내적을 고려해보자 회전 표현을 보면, 첫 세 컬럼이 x-y-z 좌표계에서 x’-y’-z’로 회전을 나타낸다.
  • 89. 자세와 변위(Pose and Displacement) 89 기준 좌표계 x-y-z에 대한 새 좌표계 x’-y’-z’의 위치
  • 90. 자세와 변위(Pose and Displacement) 90
  • 91. 자세와 변위(Pose and Displacement) 91 변위 구하기
  • 92. 자세와 변위(Pose and Displacement) 92
  • 94. https://hoodymong.tistory.com/394 짐벌 단일 축으로 물체가 회전할 수 있도록 중심축을 가진 구조물 아래의 그림에서는 roll, pitch, yaw 세 개가 단일 축 역할을 하며 각 고리들은 각자의 축을 기준으로만 회전한다. 짐벌
  • 95. https://hoodymong.tistory.com/395 짐벌과 짐벌락 왼쪽 그림의 각 짐벌들은 특정한 축을 기준으로 회전하도록 되어있지만 오른쪽 그림은 짐벌락 상태를 보여주며 다른 짐벌들을 돌려 놓지 않는 이상 가장 안쪽에 있는 짐벌은 pitch 축으로 회전할 수 없습니다.
  • 96. https://hoodymong.tistory.com/396 오일러 각 오일러가 도입한 강체(rigid vody)의 회전시스템 강체를 수학적으로 표현하기 위해 위치(position)과 방향(rotation)을 정의해야함 위치는 x, y, z 좌표로 쉽게 정의할 수 있지만 방향은 어떻게 해야하는가? 방향을 x, y, z 세 축을 기준으로 회전하여 정의 한 것으로 오일러 각 시스템이라 한다.
  • 97. https://hoodymong.tistory.com/3 https://en.wikipedia.org/wiki/Gimbal_lock 97 짐벌락(Gimbal lock) 두 짐벌이 겹쳐지면 한 축에 대한 자유도를 상실하게 되는 문제 => 쿼터니온(Quaternion) 도입
  • 98. Complex Numbers 98 http://chanhaeng.blogspot.com/2018/07/blog-post.html - 쿼터니언은 복소수 체계를 기반으로 한다. - 잘 아는 숫자들의 집합(실수, 정수, 유리수 등) 이외에, 복소수 체계는 허수를 도입. - 허수는 아래와 같이 해가 없는 방법을 해결하기위해 발명 - 이 경우를 해결하기 위해서 어떤 수의 제곱은 항상 양수이므로 를 명시해야 한다. - 위 처럼 해가 없는 식을 해결하기 위해 허수의 개념이 만들어 졌으며 아래의 형태를 갖는다.
  • 99. Complex Numbers 99 http://chanhaeng.blogspot.com/2018/07/blog-post.html - 허수의 집합은 로 나타낸다. - 복소수의 집합은 (기호 로 나타내며) 실수와 허수의 합이고, 다음의 형태를 갖는다. - 모든 실수들은 b = 0인 복소수이고, 모든 허수들은 a =0인 복소수가 된다.
  • 100. Complex Plane 100 https://ko.wikipedia.org/wiki/%EB%B3%B5%EC%86%8C%ED%8F%89%EB%A9%B4 - 복소평면은 복소수를 기하학적으로 표현하기 위해 개발된 좌표 평면으로 서로 직교하는 실수 축과 허수 축으로 이루어 져 있습니다.
  • 101. Rotors 101 http://chanhaeng.blogspot.com/2018/07/blog-post.html - 복소 평면에서 이러한 형태의 복소수를 정의하여 회전 할 수 있다. - 어떤 복소수를 rotor q로 곱하면 일반적인 회전 공식을 만들어 냅니다. - 위 식을 행렬 형태로 쓰면 회전 행렬이 됩니다. 이 행렬로 복소 평면에서 원점에 대해 시계 반대방향으로 임의의 점을 이동 시킵니다.
  • 102. Quaternions 102 http://chanhaeng.blogspot.com/2018/07/blog-post.html - 복소수 체계와 복소 평면의 지식을 갖고, 우리는 I 이외에도 두개의 허수를 더하여 이것을 3차원 공간으로 확장 시킬 수 있습니다. - 쿼터니언을 표현하는 일반적인 형태는 아래와 같습니다. - Hamlton의 유명한 표현에 따라: - I, j, k 사이의 관계는 카티시안 벡터에 대한 외적 규칙과 비슷합니다.
  • 103. Quaternions as an Ordered Pair 103 http://chanhaeng.blogspot.com/2018/07/blog-post.html - 쿼터니언들을 하나의 순서 쌍으로 표현할 수 있습니다. - 여기서 v는 각 요소들로도 나타낼 수 있습니다. - 이 표기법으로, 조금 더 쉽게 쿼터니언과 복소수 사이 유사성을 볼 수 있습니다.
  • 104. A Real Quaternion 104 http://chanhaeng.blogspot.com/2018/07/blog-post.html - Real Quaternion은 vector항이 0인 쿼터니언 입니다. - 그리고 두 실수 쿼터니언들의 곱은 다른 실수 쿼터니언이 됩니다.
  • 105. Pure Quaternions 105 http://chanhaeng.blogspot.com/2018/07/blog-post.html - Real Quaternions와 유사하게, 스칼라 항이 0인 Quaternion을 Pure Quaternion이라 합니다. - 보통 이 요소를 아래와 같이 씁니다. - 두 Pure quaternion의 곱은 아래와 같습니다.
  • 106. 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
  • 107. Quaternion (cont’d) 107 - 연산 관련 성질 − Conjugate ∶ ത𝑞 = 𝑅𝑒 q − Im q = 𝑞0 − 𝑞1 𝑖 − 𝑞2 𝑗 − 𝑞3 𝑘 − Norm ∶ 𝑞 = 𝑞ത𝑞 = 𝑞0 2 + 𝑞1 2 + 𝑞2 2 + 𝑞3 2 For ∀𝑞 𝑎, 𝑞 𝑏, 𝑞 𝑐 ∈ ℋ
  • 108. Quaternion (cont’d) 108 - Quaternion을 이용한 회전 - 3차원 공간 상의 한점 p에 대하여 - n 백터를 축으로 𝜃 만큼 회전을 나타내는 단위 쿼터니언을 이용하면 - 3차원 공간 상에서 회전된 점 𝑝′ 을 계산 가능 - 계산 결과 실수부는 0이 되고, 허수부의 세 요소는 회전 후의 3차원 점의 좌표 표현 p = [ 0, x, y, z ] q = [ cos 𝜃 2 , n sin 𝜃 2 ] 𝑝′ = 𝑞𝑝𝑞−1
  • 109. Quaternion (cont’d) 109 - 회전 벡터와 쿼터니언 간의 변환 - 단위 벡터 𝑛 = [𝑛 𝑥, 𝑛 𝑦, 𝑛 𝑧] 를 중심으로 𝜃 만큼 회전한 경우
  • 110. Quaternion (cont’d) 110 - 회전 벡터와 쿼터니언 간의 변환 - 쿼터니언을 회전 벡터로 변환한 다음 Rodrigues 수식에 따라 행렬로 변환 - q와 –q가 같은 회전을 나타내므로 R의 쿼터니언 변환은 고유하지 않음
  • 111. Quaternion (cont’d) 111 - 회전 벡터와 쿼터니언 간의 변환 - 쿼터니언을 회전 벡터로 변환한 다음 Rodrigues 수식에 따라 행렬로 변환
  • 112. Interpolation 112 - 쿼터니언의 선형보간과 구면 선형보간(spherical linear interpolation)
  • 113. 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) 보간 으로 오류 발생률이 적은 장점을 지님