Spatial Descriptions and Transformations: Robotics

Download as pdf or txt
Download as pdf or txt
You are on page 1of 36

ROBOTICS

Spatial Descriptions and Transformations

Http://raic.kunsan.ac.kr

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
contents

1. Introduction
2. Descriptions(positions, orientations and frames)
3. Mappings(changing descriptions from frame to frame)
4. Operators(translations, rotations, transformations)
5. Summary of interpretations
6. Transformation arithmetic
7. Transform equations
8. More on representation of orientation
9. Transformation of free vectors
10. Computational considerations

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
1. Introduction

• Define of a robot manipulation

– 의미: 공간상에서 공구 또는 부품을 어떤 종류의 기구를 이용하여 옮김


– 부품 또는 기구자체의 위치와 방위를 표시 할 필요가 있음

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
P-1. Coordinates

• Coordinates : any set of numbers which can


characterize the object uniquely

y
Ex) Point : (x, y), (r, θ)

 ( x, y)
Triangle : {(1,1), (0,0), (3, -2)}  1 1

j
Line : {(x, y) | ax+by+c=0} 
x
i

• Coordinate system(=frame):
system of basis vectors by which an unique
representation is possible.

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
P-2. Vectors

• Vectors : magnitude and directions

  
• Notation : a, b, c

 

Let a  (a , a , , a )
1 2 n b  (b , b , , b )
1 2 n

 
Then a  b  (a1  b1 , a  b , , a  b )
2 2 n n

 a  (a , a , , a
1 2 n
)

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
3-dimensional space (cartesian space)

  


i, j, k : unit vectors
z
b 

a
 
a x 
  
 
k y a a i a ja k
x y z
 a y 
a 
  z

i j
    

x a  b  (a x  b x ) i  (a y  b y ) j  (a z  b z ) k
      

 a   (a i  a j  a k )  ( a ) i  ( a ) j  ( a ) k
x y z x y z

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
Dot product (Scalar product)
 

a  b  a b cos

b        

a  b  (a i  a j  a k )  (b i  b j  b k )
x y z x y z

a b a b a b
θ x x y y z z

a      

여기서, i i  j j  k  k 1
     

i j j k  k  i  0

   

교환 법칙 a b  b a
      
분배 법칙 (a  b)  c  a  c  b  c

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
Cross product (Vector product)
  

a  b  a b sin  k
  

a b sin    i j k
a b  det a a a x y z


b b b x y z


b  
 (a bz  a z b y) i  (a bx  a x bz ) j  (a b y  a y bx) k
y z x

k
θ        
a 여기서, ii  j j  k k  0
        

i j k, jk  i , ki  j


   
교환 법칙 : a  b   b a

      
분배 법칙 : a  (b  c)  a b  a  c

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
2. Descriptions
1. Description of a position
좌표계가 설정되면 우주상의 어떤 점(point)도 3X1의 위치 벡터로서 위치를
정할 수 있다.
• 벡터들이 자신이 설정된 좌표계를 나타내는 첨자를 좌측 상반부 (leading
superscript)에 달고 있다.

ex) A P 는 frame {A}의 축들을 따라서 측정된 거리를 나타내는 수치값을 갖


으며, 3x1 벡터로 표현된다.

{A}

ZA
A
P p 
A
 x
p p 
 y
p 

 z
YA

XA
그림 2.1 계에 기준한 벡터의 예
School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
2. Description of an orientation

• 한 물체의 방위를 표시하기 위하여 그 물체에 좌표계를 부착하고


그 후에 이 좌표계를 기준 좌표계에 대하여 상대적인 표시를 한다.
• 물체에 부착된 좌표계 {B}를 나타내는 방법은 기준 좌표계 {A}에
대한 3주축의 단위 벡터를 적는 방법이 있다.
  
-. 좌표계 {B} 의 주축들을 나타내는 단위 벡터 :
A A  A
X ,Y , ZB B B
 
-. 좌표계 {A} 의 방법으로 표현 :
X Y Z B B B

• 회전행렬(rotation matrix) : A
B R

  
r r r
11 12 13
A r r r
B R =[ A X B AY B A Z B ]= 21

r r r
22 23

31 32 33

(2.2)

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
Px
A Py
P=
Pz

{B}

{A}

A Z
P B

[그림2.2] 대상물을 위치와 방위로 설정함.

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 식 (2.2) 의 스칼라양 r ij 에 대한 표현을 간단히 하면
A
B R 는

     
X B X A Y B X A Z B X A
 A  A  A 
      
A
B R   X B YB ZB   X B Y A Y B Y A Z BY A (2.3)
  
X B Z A
  
Y B Z A
 
Z B Z A

• 식 (2.3) 의 행렬의 열은 {A} 의 단위 벡터를 계 {B} 에서 표시한 것.

B
• A
은 계 {A} 를 계 {B} 에 대하여 표시하는 것이 되므로 식 (2.3)의
R
전치행렬이 된다.
B 
T
XA
A  A  
B  B
R BART
A 

BR   XB ZB  
T
A
YB YA 즉 A
  B 
T
ZA

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
3. Description of a frame

• 위치와 방위정보를 주는 네 개 벡터의 조합으로 구성된 요소를 정


하고 계(frame) 라고 부른다. (위치를 나타내는 벡터와 방위를 표
시하기 위한 세 개의 벡터)
• 계는 방위에 추가하여 원점을 나타내는 다른 계에 기준한 위치 벡
터를 갖고 있는 좌표계가 된다.
A A
• 예를 들어 계 {B} 는 B R 과 PBORG 로 나타낸다.

 {B}
ZB
{A}


{B} {BA R, APBORG}
ZA A
PBORG YB

XB


YA
XA

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
 여러 가지 계의 예


{A}
ZA 
YA 
{C}
ZC

{B}

{U} 
 
YU 
ZB 
ZU XA YC
XC


YB
 
XU XB

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
3. Mappings
(changing descriptions from frame to frame)

1. Mappings involving translated frames

 {B}
ZB
{A}
 B
ZA A
P P

YB
A
PBORG
 
 YA XB
XA A
P  BP  APBORG

[그림 2.4] 전위된 매핑


School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 벡터 B P 로 정의된 공간상의 점을 {B} 와 동일한 방위를 갖고 있는
계 {A} 에 관하여 표시하고자 한다.

• {B}는 {A}와 전위(translation)만큼 다르며, 이 전위는 {A} 계의


A
원점에서 {B} 의 원점의 위치를 나타내는 벡터인 PBORG 로 나타내
어 진다.

A
P  P  PBORG
B A

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 2. Mappings involving rotated frames

• 회전행렬의 열은 모두 단위 크기이고 또한 이들 단위 벡터들은


서로 직교한다.
• 직교하고 단위 크기의 열을 갖고 있는 행렬의 역 행렬은 전치
(transpose)행렬과 동일하다.
B 1 B T
B
A
A A R R  R
A A
• B R 의 열들은 {A}에 기준한 {B}의 단위벡터 이고, B R 의
행들은 {B}에 기준한 {A}의 단위 벡터이다.
• 회전행렬은 세 개의 행 벡터 또는 세 개의 열 벡터의 조합으로
해석할 수 있다.
B  T
XA
A ^ A  A  B  T
A
B R [ X B YB Z B ]  YA
B  T
ZA

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
•그림[2.5]에서 두 계의 원점이 일치할 경우 계 {B}에 대하여 벡터의 정의를
알고 있을 때 , 다른 계 {A} 에 대한 그 벡터를 정의 할 수 있다.
•이 계산은 {B}의 방위 표현이 {A}에 관하여 알려 졌을 때 가능하다.
•이 방위는 회전행렬 A
B R 에 의해서 주어진다.
• A
P 는 다음과 같이 계산 된다.
B  {A}
A
p x  X A  BP {B} 
ZA

B  ZB B
P
p y  YA  P P R P
A B A A B 
B YB
B 
A
p z  Z A  BP 
YA

XA

XB

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
회전 행렬 구하는 방법
           
( X A , YA , Z A )  ( i , j , k ), ( X B , YB , Z B )  (i', j', k ')
T
  pz   known
B B B B

{A} p 
p x
, p y
,

{B} 
  p ,
T

pz  ?
A A A A


ZA p  x
p, y

ZB B
P  B          
 A B B B B B
p  i p  i ( p i' p j' p k ') p i  i' p i  j'  p i  k ')
YB x x y z x y z

          
A B B B B B B
p  j p  j ( p i' p j' p k ') p j  i' p j j'  p j  k ')
 y x y Z x y z

YA  B          
 A B B B B B

XA p  k  p  k ( p i' p j' p k ') p k  i' p k  j'  p k  k ')


z x y Z x y z

A   
XB       
B
 px    i i' ij' 
i k '  p  x
A       
B 
 p   j  i' j  j' j  k ' p
y 
A
P R PA B  A   
y
    B 
B  p  k  i' k  j' k k '
  p z 
 z  
 

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 3. Mappings involving general frames

• {B}의 원점에 위치하는 벡터를 A PBORG 라고 부른다.


• {B}가 {A}에 기준하여 회전한 양은 BA R 로 표시 한다.
• B P 가 주어졌을 때, A P 는 다음과 같다.


{B}
ZB

{A} A
P
P  BAR BP  APBORG
A B
  P
ZA XB
(2.17)
A 
PBORG YB


YA
XA

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 위의 식은 한 계에서 다른 계로 벡터의 표시를 변환하는 일반적인
맵핑을 나타낸다.

• 한 계에서 다른 계로의 맵핑은 행렬 형태의 연산자로 생각.


A
P  ABT B
P (2.18)
• 식 (2.17)식을 (2.18)식에 의하여 제안되는 행렬연산자 형식으로
표현하기 위하여 4*4 행렬 연산자를 정의하고, 4*1 위치 벡터를 사
용하여 (2.18)을 다음과 같이 구성한다.

A A A B
P B R PBORG P
= (2.19)
1 000 1 1

• (2.19)식의 4*4 행렬은 균질행렬(homogeneous transform)이라고


부른다.

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
4. Operators
(translations, rotations, transformations)

• 1. Translational operators

• 공간의 한 점을 주어진 벡터 방향으로 일정한 거리 만큼 움직이는 것이 전


위이다.

• 공간에서의 점을 실제로 전위 시키는 데는, 단지 한 개의 좌표시스템만이


필요하다.

• 공간에서 점을 전위 시키는 것은 한 점을 다른 계로 맵핑 시키는 것과 같은


수학으로 이루어 진다.

A A
• [그림 2.9]는 어떻게 벡터 P1이 벡터 Q 에 의하여 전위되었는가를 보여
준다.(벡터 AQ 는 이 전위를 수행하는 데 필요한 정보를 제공한다.)

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 전위를 수행한 결과 새로운 벡터는 다음과 같다. A
P2  AP 1 AQ
• 행렬 연산자로 전위를 수행하는 것을 나타내면 A
P2  DQ (q) AP1이다.

(여기서 q 는 벡터 Q 의 방향으로  부호를 가진 전위의 크기이다.)
• D Q 라는 연산자는 다음의 간단한 형식의 균질 변환으로 생각할 수 있다.

1 0 0 qx
0 1 0 qy
DQ (q ) 
0 0 1 qz
0 0 01 {B}
q x , q y , qz 는 전위벡터 Q {A} A
P2
• 여기서  A A
ZA P1 P1
의 성분이고, q  qx2  q y2  qz2
이 된다. A
Q

YA

XA
[그림 2.4] 전위 연산자.

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 2. Rotational operators

• 연산자로써 회전행렬이 나타나면 두계를 연결 시키는 것으로 보지 않기 때


문에 , 상단이나 하단에 첨자가 나타나지 않는다.
A
P2  R AP1
• 벡터를 R 만큼 회전시키는 회전행렬은, 기준계 관하여 R 만큼 회전된 계를
표시하기 위하여 사용되는 회전행렬과 동일하다.

• 어떤 축이 회전축이 되는가를 명확히 지적하기 위하여 회전연산자의 다른


표기법을 정의한다. (“ RK ()“는 K 축 주위로  만큼 회전을 수행하
는 회전연산자 이다.)
A
P2  RK () AP1
• 이 연산자는위치 벡터 부분이 0인 균질변환으로 쓰여질 수도 있다.
• 예를 들어 K 축 주위로  도 만큼 회전하는 연산자는 다음과 같다.
cos   sin  0 0
sin  cos  0 0
RZ ()  0 0 1 0
0 0 0 1

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 3. Transformation operators

• 계는 변환 연산자 (transformation operators)라는 해석은 단 한 개의 좌표


시스템이 사용 되며 T 의 기호는 상단이나 하단의 첨자가 없이 사용된다.

A
• 연산자 T는 벡터 P2 를 계산한다. A
P2 T AP1

• R만큼 회전하고 Q만큼 전위하는 변환은 기준계에 대하여 R만큼 회전하고


Q만큼 전위하는 계를 표시하는 변환과 동일하다.

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
5. Summary of interpretations

• 균질변환의 세 가지 해석
A
1. 이것은 계의 표시 이다. B 는 계 {A} 에 기준한 계 {B} 를 표시한다.
A
T
A
특히, B R
의 열은 {B}의 주축의 방향을 정의하는 단위 벡터이고, BORG P
는 {B}의 원점의 위치를 정한다.

2. 이것은 변환매핑 이다. AT 는 B P 를 A P 로 맵핑한다.


B

A A
3. 이것은 변환연산자 이다. T 는 P1 에 작용하여 P2 를 생성한다.

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
6. Transformation arithmatic

• 1.Compound transformations
C A
• [그림2.12]에서 P 를 알고서 P 를 구하기를 원한다.

B
P  CBT CP (2.37)

A
P ABT BP (2.38) 
Z B {C}
Z B{B} C
P

위의 두식을 결합하면  YC
{A}
ZA A
P
A
P T T P
A
B
B
C
C


위의 결과에서 다음을 정의할 수 있다.  YB 
 YA XC
XA
A
C T T TA
B
B
C

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
A
• {B}와 {C}를 알고 있으므로 T 의 표현을 나타낼 수 있다.
C

A
B R B
C R A
B R BPCORG  APBORG
A
C T
0 0 0 1

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 2. Inverting a transform

A
• 계 {A}에 기준하여 알려진 계 {B} 즉, BT 의 값을 아는 계가 있을때 {B} 에 기
준한 {A}의 표시 즉, BT 를 얻기 위하여 이변환의 역을 얻기를 원한다.
B A A A B B
• AT 를 발견하기 위하여 , B R 과 PBORG 로부터 A R 과 PAORG 를 계산 해야
한다.

1) B
A R  BA R T

2)
B A
( PBORG ) ABR APBORG  BPAORG  0

위 식의 왼쪽이 0이 되어야 하므로,


B
PAORG  ABR APBORG  BART APBORG

 A T
BR  BART A PBORG  A 1
AT     BT
B

 0 1 

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
7. Transform eqations

[그림2.14]는 계 {D}가 변환의 곱으로 표시될 수 있는 두 가지 다른 경우를 보인다.

{D}
1)
U
DT UAT DAT

2)
U
D T UBT CBT CDT {A}
변환방정식을 만들기 위하여 이 두 가지 식을
같게 놓는다.
U
A T DAT UBT CBT CDT {C}

만약 CT 를 제외하고 모든 변환이 알려 졌다고 {U}


B

하면 해는 다음과 같다.
{B}
B
C T UBT 1 UAT DAT CDT 1

[그림2.14]

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
[그림 2.15]는 유사한 다른 경우를 나타내며 {C}의 가능한 두 가지 표시는 다음과 같다.

1)
U
C T UAT DAT 1 DCT
2)
U
C T UBT CBT
{D}
U
위의 두 식을 같게 놓음으로써 A T 를 구할 수 있다.

U
A T UBT CBT DCT 1 DAT {A}

{C}

{U}

{B}

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
8. More on representation of orientation
• 방위를 표시하는 방법으로 3*3 회전행렬 만을 사용.
• 회전행렬은 모든 열이 서로 수직이고 단위 크기를 가지고 있으며 그 행렬
식의 값이 언제나 +1인 경우이다.
• 회전행렬은 고유 정규직교행렬(proper orthonormal matrices)이라
고 한다.
• 정규직교행렬에 관한 Cayley 의 공식[3] 의 결과에 의하여 어떤 3*3 회
전행렬도 세 개의 파라미터만으로 표시할 수 있다.
• 회전행렬 R이 주어졌을 때, 요소 사이의 종속관계를 쉽게 나타낼 수 있다.
     
R  [X Y Z]  [ i j k]
• 행렬 9개의 요소에, 6개의 제한조건이 있다. (단위 벡터의 성질)
  
| X | 1 X Y  0

 
|Y | 1 XZ  0

 
| Z | 1 Y Z  0

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 1. X-Y-Z fixed angles

• 계 {B}의 방위를 표시하는 방법은 알려진 계 {A}와 일치하는 계로부터


시작한다. 
각도  만큼 회전한 후, YA 주위로 각도

• 맨 처음에 {B}를 X A 주위로


만큼 회전하고, 그 후에 Z A 주위로 만큼
회전한다.
X 축 주위로   만큼 회전하는 것을 롤, Y 축 주위로  만큼 회전하는


것을 피치, Z 축 주위로  만큼 회전하는 것을 요우라고 부른다.
• 등가의 회전행렬 BA RXYZ ( ,  , ) 는 모든 회전이 기준계의 축 주위에서
발생하므로, 간단하게 유도될 수 있다.
• 회전의 순서는 롤 , 피치 , 요우 이다.
A
B RXYZ ( ,  , )  RZ ( ) RY (  ) RX ( )
c  s 0 c 0 s 1 0 0
= s c 0 0 1 0 0 c  s
0 0 1  s 0 c 0 s c

c c c s s  s c c s c  s s
A
B RXYZ ( ,  , )  s c s s s  c c s s c  c s (2.64)
 s c s c c

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
• 회전행렬로부터 등가의 롤, 피치와 요우각을 역으로 계산하는 문제.
• (2.64)식을 주어진 회전행렬과 같도록 놓는다.
r11 r12 r13
A
B RXYZ ( ,  , )  r21 r22 r23
r31 r32 r33

• 식(2.64)로 부터 c  0 이면  ,  와  는 다음과 같다.

  A tan 2(r31, r112  r212 )

  A tan 2(r21 / c , r11 / c )


  A tan 2(r32 / c , r33 / c )
• 만약   90.0도이면 윗 식의 해는 구할 수 없다.따라서   0.0 으로 선택하
고 결과는 다음과 같다.

   A tan 2(r12, r22 )


  90.0 (복호동순)

  0.0

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
9. Transformation of free vectors

• 두 개의 벡터는 같은 차원, 같은 크기와 같은 방향을 가지고 있을 때 동등(equal)


하다.

• 두 개의 벡터는 , 각각이 어떤 능력 안에서 유발하는 효과가 같으면, 이 능력 안


에서 등가(equivalent)이다.

• 선 벡터(line vector)는 벡터의 효과가 작용선(line of action)에 따라 영향을 받


는 방향과 크기를 가진 벡터를 지칭한다.

• 자유 벡터(free vector)는 크기와 방향이 보존되는 한, 벡터의 의미의 변화나 손


상이 없이 공간상에서 어느 곳에든지 위치할 수 있는 벡터를 지칭한다.

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB
10. Computatoinal considerations
• 변환이 수행되는 순서는, 같은 양을 계산하는 데 필요한 계산양의 많은 차를 나
타낸다.


A
P  BAR CBR DC R DP 와 같이 벡터의 회전이 여러 번 수행 된다고 할 때

1) 세 회전행렬을 맨 처음에 곱하면 2) 한 번에 한 개씩 벡터를 행렬로 변환 하면


A
P  BAR B
C R C
D R D
P A
P  BAR B
C R C
D R D
P

27 mul
18 add 9 mul
27 mul 9 mul 6 add
18 add 9 mul 6 add
9 mul
6 add 6 add

Total 63 mul, 42 add Total 27 mul, 18 add

School of Electronic & Information Eng., Kunsan National University. Robotics & AI Control LAB

You might also like