Rotation Matrix를 목적

회전행렬과 쿼터니언을 주로 활용

로봇 공학과 Rotation matrix

내부 모델 : 물체를 움직이기 위한 모델,

  • Kinematics 내부모델 : 관절의 회전(Joint Space)과 주먹 끝(Task Space)의 움직임의 관계를 이해하는 것
  • Dynamic 내부모델 :
  • 둘의 차이는 질량을 고려 하는냐 안 하느냐

Kinematics를 배우면 로봇을 원하는 궤적을 따라 움직이도록 할 수 있다

image

관절의 종류

  • Prismatic : 1DoF, 직선, 미끄럼 관절 (eg, 인형 뽑기)
  • Revolute : 1DoF, 회전 관절
  • Universal = 2 x Revolution
  • Spherical = 3 x Revolution

관절별 내부 모델 (기초적 방법)

  • Prismatic : 3V,2V,-5V = X,Y,Z (eg. 인형뽑기, 가로로 3초, 세로로 2초, 아래로 5초가면 집게의 위치)
  • Revolute : 각도를 다룸 , $$(\theta_1,\theta_2,\theta_3) = (x,y,z) $$
    • x = $$L_1 cos\theta + L_2 cos..............$$
    • y = ...................
    • z = z

관절별 내부 모델 (Rotation Matrix 방법)

  • Revolute의 관계식 cos/sin을 통해 구하는것은 복잡하고 어렵기 때문에 이를 쉽게 하는것이 Rotation Matrix이다.
  • 각 관절에서의 Transformation Matrix를 구해서 이를 모두 곱하면 (x,y,z)가 나옴
  • 확장 : Rotation Matrix + 길이(관절과 관절 사이)정보 = Transformation Matrix

Rotation Matrix 개요

  • 형태 : 3x3 행렬
  • 특징 : det(R) = +1 (*determinant)
  • 예 : Identity Matrix도 det(R) = +1

Rotation Matrix 유도 방법

  • 삼각형의 합동 이용
  • 벡터의 내적을 이용
  • 선형 변환을 이용하는 방법
  • etc.

Rotation Matrix 개요

  • $$ Va = R{ab}V_b $$
    • $$R{ab}$$ = a프레임에서 바로본 b프레임 = $$[x{a에서 바로본 b의}, y{a에서 바로본 b의}, z{a에서 바로본 b의}]$$
  • $$ R{ab} * R{bc} = R_{ac} $$ --> a에서b를 바라보고, b에서c를 바라본것은, 결과적으로 a에서 c를 바라본것과 같다.

Euler angle (오일러 각) ->Rotation Matrix 변환

모든 Rotation Matrix는 3번의 회전(a,b,c)으로 표현 가능

  • roll, pitch, yaw

오일러 3개의 각을 곱해서 Rotation matrix를 구할수 있음

3차원 공간에서

  • Particle은 (x,y,z) 3 DOF를 가짐
  • RIgid Body는 (x,y,z,a,b,c) 6 DoF를 가짐
    • a(alpha) : x측 회전 roll
    • b(beta) : y측 회전 pitch
    • c(gamma) : z측 회전 yaw
[Space & Body fixed movement]
Space fixed movement : 회전하는 축이 움직이지 않는것 
Body fixed movement : 이동한 다음에 움직이는 것, 로봇 세상에서 대부분의 움직임

Roation matrix의 요구 조건에 대한 설명 Special Orthogonal(3)그룹

  • 임의의 축으로도 회전
  • 임의의 축의 요구 사항

그룹 : element, operation (element가 operation후에도 element에 속하면 그룹이라 함)


2.1 변환 행렬 (오일러 앵글 이용하여)

A. 회전

3차원 공간의 점 (X, Y, Z)를 X축, Y축, Z축을 중심으로 θ 라디안(radian) 회전시키는 행렬을 각각 Rx(θ), Ry(θ), Rz(θ)라 하면 이들은 다음과 같다.

위 3개의 기본 회전변환 조합하면 임의의 3D 회전을 표현할 수 있다.
임이의 단위벡터$$u=(u_x, u_y, u_z)$$를 축으로 한 회전 변환 행렬

B. 평행 이동

평행 이동 $$ t=[tx,ty,tz]^T $$

C. 회전(R) + 평행 이동(t) = 변환행렬

변환행렬 변환행렬 (homogeneous 좌표 표현)

어떤 행렬 R이 회전변환이 되기 위한 필요충분 조건은 RT = R-1, det(R) = 1 이라 한다.

2.2 변환 행렬 구하기 (예)

목적 : 비행기 동선의 임의의 두 지점 사이의 변환관계를 구하는 것

A. 회전 변환 구하기

u을 u'로 이동시키는 회전변환은 다음과 같이 구할 수 있습니다.

  • u = [x, y, z]T
  • u' = [x', y', z']T
가. 회전각 θ와 회전축 단위벡터 v 구하기

  • 사잇각(θ): 두 벡터 u, u' 사이의 사잇각 = 벡터의 내적을 이용하여 계산
  • 회전축(v) : 두 벡터 u, u'에 의해 결정되는 평면에 수직인 벡터 -> 벡터의 외적을 이용하면 된다.

벡터의 외적 u1 × u2 란 두 벡터 u1, u2에 의해 결정되는 평면에 수직이면서(오른손 방향) 그 크기가 u1, u2를 두 변으로 하는 평행사변형의 면적과 같은 벡터를 말합니다

나. 임이의 단위벡터$$u=(u_x, u_y, u_z)$$를 축으로 한 회전 변환 행렬 구하기

B. Rigid 변환 구하기(회전 + 평행 이동)

절차

  • 1) p1이 원점이 되도록 A를 평행이동 시킨 후,
  • 2) A'의 방향과 일치되도록 회전시켜서,
  • 3) p1'까지 평행이동시킨다

https://darkpgmr.tistory.com/81?category=460965

3D에서 rigid 변환을 결정하기 위해 필요한 매칭쌍의 개수는 3개입니다.


image

  • w == 1 이면, 벡터 (x,y,z,1) 은 공간에서의 위치 입니다.
  • w == 0 이면, 벡터 (x,y,z,0) 은 방향입니다.

  • The first 3 rows and columns (top left) components are the rotation matrix.

  • The first 3 rows of the last column is the translation.

[예제-평행 이동] image


회전변환행렬 저랑 야바위 한판 하실래요? Rotation Matrix: T-Robotics블로그 선형 변환을 이용한 회전 행렬(Rotation matrix)의 유도 Rotation Matrix [Youtube] Rotation matrix 회전행렬 : [1강], [2강], [3강] 오일러각과 회전행렬(Euler Angles and Rotation Matrix) Tutorial 3 : 행렬(매트릭스)

results matching ""

    No results matching ""