읽기 설정
동차 변환을 고려해 보겠습니다. 프레임 A, 프레임 B, 그리고 점 P가 있다고 가정해 봅시다.00:00
프레임 B에서 점 P는 이 벡터로 표현될 수 있습니다.00:06
A프레임에서는 이 벡터로 표현할 수 있습니다.00:11
프레임 A를 기준으로 프레임 B의 위치는 또 다른 벡터 T를 사용하여 표현할 수 있습니다.00:15
지금은 벡터 P가 B에 존재한다고 가정하고, 이 벡터 P를...00:23
그래서 이 벡터를 간단한 벡터 합으로 얻을 수 있도록 이 PA가 될 것입니다.00:30
이 벡터에 이 벡터를 더하는 것인데, 두 벡터 모두 프레임 A에 있어야 합니다.00:36
벡터는 이미 프레임 A에 있지만, 이 벡터는 프레임 A에 없기 때문에 프레임 A에 맞춰줘야 합니다.00:42
이것을 프레임 A로 변환하려면, 사실 회전만 하면 됩니다. 프레임 안에서 이 점을 회전시키기만 하면 되는 거죠.00:46
이는 이 t 값과 이 pb 값을 더하여 회전시켜 프레임을 구성할 수 있습니다. 이를 좀 더 표현하기 쉽게 나타낼 수 있습니다.00:52
컴팩트합니다.00:59
여기서 pa는 회전 행렬에 pb를 곱한 것과 같다는 의미입니다. 왜냐하면 이처럼 표현되기 때문입니다.00:59
그리고 이것에 t 배 곱하기 1, 즉 이 1과 여기 마지막 행이 있습니다.01:07
하나, 011입니다.01:14
정확성을 위해, 이 첫 번째 요소를 티알드(tilde)와 함께 '파(pa)'라고 부르겠습니다.01:15
틸드(~)가 포함된 텍스트도 있습니다.01:22
그리고 이들은 동차 좌표라고 불립니다. 따라서 벡터를 가질 때, a1을 더해줍니다.01:24
이는 동차 좌표라고 불리는 4차원 벡터이며, 이 행렬은 그것과 관련됩니다.01:31
이것을 동차 변환 행렬이라고 부릅니다. 동차 변환 행렬은요.01:37
변환 행렬은 위치와 방향을 나타내며, 이를 자세 변환이라고 합니다.01:45
프레임과 프레임 간의 상대적인 위치를 나타내는 것으로, 이러한 구성 요소들을 포함하고 있습니다.01:50
회전 부분이며, 이 부분은 번역 부분입니다. 혹은 간결하게 표현하면 이렇습니다.01:56
이것은 R입니다, 이것은 T입니다, 그리고 이것은 항상 0입니다. 사실, 0, 0, 0이고, 이것은...02:00
음, 항상 하나이고, 이 두 가지는 변하지 않습니다. 단지 'r'과 't'만 회전 및 이동에 따라 바뀔 뿐입니다.02:06
이것은 위치 수학, 특히 SE3 그룹에 속하며, 이는 특수한 유클리드 공간, 즉 데카르트 좌표계를 의미합니다.02:12
R3 위치와 SO3 지향 사이의 제품은 또한 그렇게 볼 수 있습니다.02:19
투영 기하학적인 관점에서는, 하지만 이 과정에서 투영 생물학에 대해서는 다루지 않을 겁니다.02:25
순수한 변환은 이런 식으로 됩니다. 이건 순수한 회전인데, 병진 이동이 없기 때문이고, 이건 순수합니다.02:32
회전이 없기 때문에 번역이 필요합니다. 하지만 회전이 없다고 해서 이것이 영(0)이라는 의미는 아니니 주의해 주세요.02:38
이것이 바로 그 정체성이라는 뜻입니다.02:45
네, 그렇다면 순수한 변환으로 계속해서 X축 회전은 동일할 것입니다.02:49
X축 회전은 괜찮지만, 여기에 번역은 없고 Y축 회전도 번역이 안 되고 Z축 회전도 안 됩니다.02:52
번역과 순수 번역은 여기에서 동일성을 가지며, 만약 이것이 X로의 번역이라면 여기에서 D가 X에 나타날 것입니다.02:57
만약 이것이 Y에 있다면, D도 Y에 있습니다. 만약 이것이 Z에 있다면, D도 Z에 있습니다.03:05
변환이 고정 좌표계에 대해 적용될 때, 합성 결과는 회전 행렬을 사용하는 경우와 완전히 동일합니다.03:09
그렇다는 것은, 미리 곱해야 한다는 의미입니다.03:17
현재 프레임, 모바일 또는 새로운 프레임을 기준으로 적용할 경우, 뒤에서 곱해야 합니다.03:20
예를 들어, 프레임 A를 X축을 기준으로 90도 회전시킨 후, 벡터로 이동한다고 가정해 보겠습니다. 이 벡터는요, 03:27
고정 프레임 또는 초기 프레임에 대해, A에 대한 B의 동차 변환을 찾고 싶습니다.03:34
그래서 먼저 X축을 기준으로 90도 회전하고, 그 다음에 평행 이동을 합니다. 즉, 먼저 회전을 하고요.03:40
고정 좌표계에 대해 변환을 할 때요, 고정 좌표계에 대해 변환한다는 것은, 미리 곱셈을 한다는 뜻이에요. 그러니까, 먼저 회전을 하고, 그다음에 미리 곱하는 거죠.03:47
번역의 경우에는 그냥 여기 숫자를 치환하면 이렇게 됩니다.03:54
또 다른 예시를 통해 동차 변환을 찾는 것을 살펴보겠습니다.03:59
알파 각도의 회전과 함께 B를 따라 번역하는 것을 의미합니다.04:03
새로운 X축에 이어서 새로운 축을 따라 D만큼의 이동이 이루어집니다.04:08
그리고 새로운 축을 중심으로 회전이 일어납니다. 보시다시피 모든 것이 새로운 축에 관해서입니다. 그래서 항상 후행 곱셈이 됩니다.04:12
먼저 승후 곱셈, 승후 곱셈, 그리고 승후 곱셈입니다.04:17
이것만 작동시키시면 그 매트릭스에서 벗어나세요. 이제 이걸 이용해서 균질적으로 분해할 수 있습니다.04:21
두 개의 행렬로의 변환입니다. 하나는 번역(translation)이고, 다른 하나는 회전(rotation)입니다.04:27
쉽게 확인하실 수 있습니다.04:33
R 곱하기 항등원과 0을 더한 값입니다. 즉, R과 항등원 곱하기 0, 그리고 더하기...04:35
번역만 부탁드립니다. 간단하게, T만으로요.04:41
이전의 사전 곱셈 구성들을 활용하여.04:44
곱셈 이후의 변환에 대해 두 가지 해석이 가능합니다.04:48
첫 번째 해석은 우리가 T 단위의 번역을 이 부분에 적용한다는 것입니다.04:54
그리고 나서 이 새로운 좌표계를 기준으로 회전을 적용합니다.04:58
다른 하나는 다른 것 같습니다.05:03
해석은 회전을 기준으로 시작되므로, 먼저 회전을 적용한 후에 다른 작업을 진행하게 됩니다.05:06
원래 시스템을 존중하면서 고정 좌표계를 기준으로 번역을 수행합니다.05:10
균질 변환(homogeneous transformations)은 물체의 자세(자세 위치 및 방향)를 나타냅니다.05:17
다른 프레임에 관해서도 점이 표현되는 기준 프레임이 함께 변화합니다.05:23
이것은 점 B이고, 이 동차 변환 행렬이 이 점 B를 변환합니다.05:28
이제 A 프레임으로 옮겨서, 점을 동차 좌표를 사용하여 표현해야 합니다.05:34
따라서, 마지막에 1을 추가하고 균일한 값을 사용할 때의 표기법을 명시해야 합니다.05:40
좌표는 이 물결표시고, 세 번째 용도는 변환을 적용하는 것입니다.05:45
회전과 이동을 같은 기준 프레임의 한 점에 적용하는 것이죠.05:50
이 세 가지 용도가 회전 행렬이 가진 용도와 동일하다는 점은 분명하지만, 이번 경우에는 다릅니다.05:53
번역을 추가하고 있습니다. 예시를 한번 살펴보겠습니다. 프레임 A와 B를 고려해 보면, 이 두 프레임은 지시하고 있습니다.06:00
프레임 b에서의 p 좌표는 이 값들로 주어지고 있습니다. 프레임 a에 대한 좌표를 찾고 싶어합니다.06:07
따라서, 먼저 이 값들을 동차 좌표로 변환한 다음 값을 치환해야 합니다.06:14
점 p의 값을 대체한 다음, 이것은 b에서 a로의 변환 과정입니다. 그 이유는…06:20
xb은 여기 있습니다. Y 마이너스에 위치하고 있습니다. YB는 X에 있습니다. 따라서 YB는 X에 있습니다.06:27
그리고 ZB는 Z와 동일하므로, ZB도 마찬가지입니다. 자, 이제 원점입니다.06:33
X에서는 영하 4도이며, 따라서 영하 4도입니다.06:39
Y, A에서는 6이고, 그래서 6개가 있습니다. 그리고 Z에서는 Z가 없어서 그냥 0으로 하겠습니다.06:42
그리고 나서 주어진 이 값을 이용해서 다른 숫자를 대입하면 이 결과가 나옵니다.06:48
여기서 X에 -4가 있으므로 그래프적으로 확인하실 수 있습니다.06:53
X에서는 -4이고, Y에서는 4이며, 그리고 이것은 2였습니다. 따라서 6에서 2를 빼면 됩니다.06:59
Z 값이 4이고, Z 방향으로 1이 있습니다. 여기 1이 있으므로 Z 방향으로 1이 있고, 그다음에...07:05
마지막 벡터를 가지게 됩니다. 이 경우에는 이 벡터는 단순히...07:11
균일한 표현 방식에 대해 살펴봅시다. 두 번째 예시로 프레임 A가 있다고 가정해 보겠습니다.07:16
먼저 회전된 후, 초기 프레임에 맞춰 번역됩니다.07:21
먼저 회전시킨 다음, 초기점을 기준으로 고정된 위치로 번역합니다.07:25
프레임을 미리 곱한 후, 특정 점을 고려합니다.07:29
새로운 프레임이고, 그 점의 초기 프레임에 대한 좌표를 결정하고 싶습니다. 따라서 이 변환은 A에 대한 B입니다.07:34
이 점은 B에 있으므로, 이 변환으로 곱해주면 됩니다. 이것이 바로 첫 번째입니다.07:41
변환을 진행한 후에는 이 값에 곱해야 할 지점이 있습니다.07:45
이 요소를 통해 변환을 수행하면 벡터에 따라 프레임이 이동합니다.07:49
6에서 10을 빼고, 그런 다음 고정 프레임을 기준으로 회전했습니다. 이 경우에는 이것이...07:54
반대로, 먼저 번역한 다음 고정된 것을 기준으로 회전시킵니다.07:59
회전은 현재 이 번역에 곱해지고 있습니다. 다시 점을 얻게 되었습니다.08:03
새로운 프레임과 관련하여 말씀드리면, 문제점은 이전과 완전히 동일합니다. 저희는 동일하게 처리해야 합니다.08:07
이것을 적용하면 변환 지점을 대체해야 하고, 그냥 대체하면 됩니다.08:11
여기에서 이 결과를 확인하시면 벡터가 다름을 알 수 있습니다.08:15
한 가지 이유는 이것이 다시 교환 법칙을 만족하지 않기 때문입니다. 회전, 평행이동, 또는 동차 변환과 같은 것들도 교환 법칙을 만족하지 않죠.08:20
먼저 동차 변환의 역방향에 대해 살펴보겠습니다.08:26
만약 이것이 동차 변환이라면, 그 역은 이 식과 같습니다.08:31
전치 행렬이 아니라는 것을 알 수 있습니다. 따라서 동차 변환의 경우...08:36
역변환은 전치행렬과 다르다는 것을 알 수 있습니다. 왜냐하면 이 표현이 그렇기 때문입니다.08:39
점 B를 표현하고 싶을 때, 다음과 같이 생각해 봅시다.08:45
A에 대한 거죠, 그리고 처음에 우리가 얻었던 식입니다. 지금은 제가08:50
P in B를 구하고 싶습니다. 반대 문제를 풀고 싶거든요. 이 P가 주어졌을 때08:54
B에서 P를 찾기 위해, 우선 회전을 적용하고 곱해야 합니다.09:00
이 문제를 풀고 계신 겁니다. 그러면 이 결과값이 나오게 되죠.09:06
다시 균일 변환을 사용하여 표현할 수 있습니다.09:11
이것 역시 동차 변환을 사용하여 표현할 수 있습니다. 이 경우 순서를 재배열하면 이러한 항들이 이것과 정확히 일치한다는 것을 알 수 있습니다.09:16
왜냐하면 점 A는 회전 행렬의 전치 행렬로 표현되는 것일 뿐입니다.09:22
번역을 위해 이 R 전치를 빼서 사용하게 되었습니다.09:28
번역은 빼기를 한 전치행렬입니다. 여기서 중요한 건 역함수가 전치행렬이 아니라는 걸 기억해야 한다는 거예요.09:31
이 식을 통해 주어지거든요.09:36
동차 변환의 곱입니다.09:40
R들을 곱하고, 회전 변환을 적용합니다. 그리고 병진 변환의 경우, 첫 번째 변환을 적용하고, 두 번째 변환은 회전을 적용합니다.09:43
첫 번째의 경우에 그렇습니다. 하지만 컴퓨터로 그렇게 하시면 행렬을 곱하는 작업만 수행하게 되므로 이 표현식에 너무 많은 관심을 두지 않으실 겁니다.09:50
다시 한번 말씀드리지만, 이는 교환 법칙이 성립하지 않는다는 것을 알 수 있습니다. 예시를 하나 고려해 보겠습니다. 이 예시에서는 로봇, 컨베이어 벨트, 그리고 물체가 있습니다.09:57
그리고 저희는 여러 부위에 각각 다른 기준 프레임을 연결해 놓았습니다.10:04
여기에서 보시는 것처럼 저희가 알고 있는 부분도 있기는 하지만, 아직 모르는 부분도 있습니다.10:08
예를 들어, 로봇의 기준 좌표에 대한 물체의 자세를 저희가 알지 못하고, 그것을 찾아야 하는 상황입니다.10:13
그리고 저희는 또한 엔드 이펙터에 대한 물체의 자세를 정확히 알지 못하고, 또 원하기도 합니다.10:20
그것을 확인하기 위해. 그러면 베이스에 대한 이 객체와 엔드 이펙터에 대한 이 객체를 원하게 됩니다.10:23
이걸 이해하고 싶다면, 우선 적어도 기본적인 이해는 되어야 합니다.10:29
이 엔드 이펙터 프레임을 객체의 프레임과 일치하도록 만들려면요.10:36
지금 현재, 무엇을 알고 있습니까? 우리는 W에 대한 벨트와 로봇 베이스의 변환을 알고 있습니다.10:41
저희도 이것을 알고 있습니다. 또한 벨트에 따른 객체에 대해서도 알고 있습니다.10:46
벨트와 관련하여의 객체 및 베이스와 관련하여의 엔드 이펙터입니다.10:50
기본 좌표계를 기준으로 객체의 자세를 파악하고 싶습니다. 기본적으로 객체의 자세를 기준 좌표계에 대해 알아내려고 합니다.10:54
이제, 동차 변환의 조합을 이용하여, 이러한 무언가를 찾아보고 싶을 수도 있습니다.10:59
W를 기준으로 하는 객체, 그리고 B를 기준으로 하는 W는 서로 상쇄되어, 결국 B를 기준으로 하는 O가 남게 됩니다.11:04
하지만 데이터상으로는 정확히 그런 정보가 없는 관계로, 가지고 있는 요소들을 활용해야 할 것 같습니다.11:10
W에 관해서 B를 가지고 있습니다만, 동일하지만, 이 경우에는 역과정을 적용해야 합니다.11:15
이 경우에는 F를 중간 프레임으로 활용하여 적용할 수 있습니다. F가 여기 있으니까, 이것이 해결책이 되겠습니다.11:22
이것이 해결책이 될 것 같습니다.11:29
다음 사례에서는 엔드 이펙터에 관하여 객체를 찾아야 하는데, 어떤 방식으로든 그걸 고려해야 할 것 같습니다.11:30
W를 중간 프레임으로 활용해서, 그런 다음 제가 알고 있는 변수들을 직접 풀어볼 수 있을 것 같습니다.11:37
결국 이렇게 표현이 나오게 되는데, 여기서 중요한 점은 제가 알고 있는 프레임만 사용해야 한다는 것입니다.11:44
다른 프레임을 사용하지 않도록 하기 위해,요11:49
마지막 예시로 테이블, 로봇, 물체, 그리고 카메라가 있습니다.11:53
그리고 이 물체들에 부착된 몇몇 프레임들이 있으며, 이러한 프레임을 조작할 수 있도록 변환을 찾아야 합니다.11:57
예시를 읽어보시고, 아래에 제시된 답은 검토를 통해 얻은 결과입니다. 이 방법을 통해 관련된 내용을 찾을 수 있습니다.12:02
각 프레임을 서로에 대해 변환하는 동차 변환을 의미합니다.12:07
이것은 회전이고, 이것은 번역입니다. 여기서 거의 모든 것을 쉽게 확인하실 수 있습니다.12:12
한 미터, 두 미터니까, 쉽게 확인하실 수 있고, 그 후에 찾으실 수 있습니다.12:17
곱셈을 수행하고, 변환의 조합을 사용하여 결과를 찾아보세요.12:24
여기서 중요한 점은 방향을 세 개 또는 네 개의 매개변수로 표현할 수 있다는 것입니다.12:30
최소 표현 방식으로는 오일러 각, 로프 각, 그리고 축 각 등이 있습니다.12:34
단순히 세 가지 요소만을 사용하지만, 특이점이 존재합니다. 쿼터니언은 네 개의 구성 요소를 사용하며, 특이점이 없습니다.12:41
그리고 그것들은 회전을 표현하는 선호되는 방식입니다. 동차 변환은 위치와 방향 모두를 나타냅니다.12:46
그리고 로봇공학에서 매우 중요하게 사용된답니다.12:53
AI Summary
이 글은 로봇 공학 및 컴퓨터 비전 분야에서 중요한 역할을 하는 동차 변환에 대해 자세히 설명하고 있어요. 동차 변환은 물체의 위치와 방향을 동시에 표현하는 4x4 변환 행렬로, 회전 행렬과 이동 벡터로 구성되어 있답니다. 로봇의 자세나 카메라의 위치를 표현하고 계산하는 데 사용되며, 여러 프레임 간의 변환 관계를 정의하고 특정 위치를 계산하는 데 활용돼요. 하지만 변환의 순서에 따라 결과가 달라지는 점, 회전 표현 방법의 다양성, 역변환 계산 시 주의사항 등을 잘 알아두는 게 중요하답니다.
Key Highlights
- •동차 변환은 3차원 공간의 위치와 방향을 동시에 표현하는 변환 행렬이다.
- •로봇 공학 및 컴퓨터 비전 분야에서 로봇의 자세, 카메라 위치 등을 표현하고 계산하는 데 사용된다.
- •변환의 순서에 따라 결과가 달라지므로, 변환 순서에 주의해야 한다.
- •회전을 표현하는 다양한 방법(오일러 각, 쿼터니언 등)이 있으며, 쿼터니언은 특이점 문제를 피할 수 있는 좋은 선택이다.
- •동차 변환의 역변환은 단순히 전치행렬을 취하는 것이 아니라, 회전 부분은 전치, 이동 벡터는 반전시키는 방식으로 계산해야 한다.


