chapter 2. robot kinematics: position...

49
2019 가을학기, 로봇공학 (KAU, AME) 로봇공학, Chapter 2 2-1 Chapter 2. Robot Kinematics: Position Analysis 로봇 기구학: 위치 해석 Forward kinematics Inverse kinematics Denavit-Hartenberg representation 4 x 4 Homogeneous transformation matrix 로봇공학 (Robotics)

Upload: others

Post on 11-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-1

Chapter 2. Robot Kinematics: Position Analysis

로봇 기구학: 위치 해석

◆ Forward kinematics

◆ Inverse kinematics

◆ Denavit-Hartenberg representation

◆ 4 x 4 Homogeneous transformation matrix

로봇공학 (Robotics)

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-2

Robot Kinematics

▪ Forward kinematics:

• To determine the position and orientation of the end-effector

(gripper or hand)

• When all the joint variables (ex, 관절 회전각) and the linkage

parameters are known

• Using 4 x 4 homogeneous transformation matrix.

▪ Inverse kinematics:

• To determine the joint variables

• When we desire that the end-effector(hand) be located at a

particular point with specific orientation.

▪ Denavit-Hartenberg (D-H) method:

• A simple and standard way of modeling robot links and joints.

• Systematically determine 4 x 4 transformation matrix.

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-3

Robot Kinematics

1 2

( , , , , , )

( , , , )n

x y z

Given desired end-effector position

determine the required joint ang

Inverse kinemati

:

le

c

s

s

1 2( , , , )

( , , , , , )

n

x y z

차원 위치 및 자세각

Given joint angles

determine the end-effector posture(posit

Forward kinematics:

ion & orientation)

: 3 roll-pitch-yaw

PUMA(6dof → n=6)

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-4

A Simple Example

▪ Inverse kinematics : Given the

end-effector position (x, y) , find

the joint variables (theta 1, theta 2)

( )

( )

1 1 2 1 2

1 1 2 1 2

1 2

cos cos

sin sin

x l l

y l l

= + +

= + +

→ = =

2-link manipulator

?, ?

의 예

▪ Forward kinematics : Given the

joint variables (theta 1, theta 2),

find the end-effector position (x, y)

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-5

2.3 Robot Mechanism

▪ Manipulator-type robot의 특징

• 다물체(multi-body), 다자유도 시스템(multi-degrees of freedom system)

• 3차원 open-loop chain 메커니즘

➢ 각 joint 및 link에서의 error가 end-point 까지 누적: Fig. 2.2(b)

→ 내부센서(조인트 각 측정) 만으로는 실제 말단위치 측정 부정확

→ 극복방법: 로봇 말단 위치를 외부센서(Camera, laser sensor 등)로 측정

0x0y

0z

1x 1y

1z

2x 2y

2z

1 ( )nx n

( )ny o

( )nz a

23

n

0

nT

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-6

Robot Mechanism

▪ Closed-loop mechanism VS. Open-loop mechanism

(a) Closed-loop mechanism (b) open-loop mechanism

One active joint

Three active joints→ 3DOF manipulator

Four-bar mechanism(1 DOF, closed-loop)

passive joints

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-7

2.4 Matrix Representation (Position)

▪ 공간상의 점 위치 → 벡터로 표현

A point P in space :3 coordinates relative to

a reference frame

^^^

kcjbiaP zyx ++=

Fig. 2.4 Representation of a point in space Fig. 2.5 Representation of a vector in space

A vector P in space :3 coordinates of its tail and of its head

^^^__

kcjbiaP zyx ++=

=

w

z

y

x

P__

w: scaling factor

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-8

Matrix Representation (Orientation)

▪ 기준좌표계에 대한 회전좌표계의 자세 표현 (Fig. 2.7)

( , , )

( , , )

x x x

y y y

z z z

n o a

x y z

n o a

F n o a

n o a

=

(direction cosines)

(Rotation matrix): 회전좌표계 각 축이

고정좌표계 각 축과 이루는

방향코사인으로 구성

unit vectors

Fig. 2.7 Representation of a frame at the origin of the reference frame

Each Unit Vector is mutually perpendicular: normal, orientation, approach vector

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-9

Matrix Representation (Position & Orientation)

▪ 기준좌표계(고정)에 대한 이동좌표계(회전+위치이동)의 표현 (Fig. 2.8)

0 0 0 1

x x x x

y y y y

z z z z

n o a p

n o a pF

n o a p

= →

Rotation matrix + translation vector

Robot hand (Gripper)=end-effector

( )nn x

( )no y

( )na z

Fig. 2.8 Representation of a frame in a frame

• Example:

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-10

강체(Rigid Body)의 표현 (자세 및 위치)

▪ 3차원 공간 상의 강체 (로봇의 각 link) (Fig. 2.10)

Fig. 2.10 Representation of an object in space

An object can be represented in space by attaching a frameto it and representing the frame in space.

=

1000

zzzz

yyyy

xxxx

object

Paon

Paon

Paon

F

• 강체에 이동좌표계(moving frame) (n,o,a) 부착

기준좌표계에 대한 이동좌표계(강체)의

위치(position) 및 자세(orientation)의 변화

→ 4 x 4 transformation matrix로 표현

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-11

강체(Rigid Body)의 표현

▪ 3차원 공간상의 강체 (로봇의 각 link)

→ 기준좌표계(Reference frame)에 대하여 6자유도 운동

➢ (x,y,z) 각 축 방향의 translation (3DOF)

➢ (x,y,z) 각 축에 대한 Rotation (3 DOF)

( , , )

0 0 0 1

x x x x

y y y y

object x y z

z z z z

n o a p

n o a pF p p p

n o a p

= →

Rotation + translation

강체의 Rotation(3 DOF 운동)에대한 9개의 정보→ 6개의 constraints(구속조건)

포함 (2.10)식

강체의 translation(3 DOF 운동)에대한 3개의 정보

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-12

Rotation Matrix의 성질

0 0 0 1

x x x x

y y y y

object

z z z z

n o a p

n o a pF

n o a p

=

0n o o a a n

→ = = =

Rotation matrix : (2.10), (2.11)

Three unit vectors are mutually orthogonal

dot product = 0 :

The length of each unit vector = 1

특성

1n o a→ = = =

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-13

2.5 Homogeneous Transformation Matrix

▪ 기준좌표계에 대한 강체의 위치(position) 및 자세(orientation)의 변화

→ 4 x 4 homogeneous transformation matrix로 표현

▪ Transformation matrices must be in square form.

• It is much easier to calculate the inverse of square matrices.

• To multiply two matrices, their dimensions must match.

3 3 3 1

1 3

0 0

1

0 1

0

x x x x

y y y y

z z z z

n o a p

n o a pF

n o a p

R p

=

Homogeneous transformation matrix

1 1 2 2 1 11 2 2 2 1

1 2 1 2

1 2,

0 1 0 1 0 1 1 0 10

R p R p R p R pF F F F

R R p R p

= = → = =

+

Homogeneous transformation matrix

(Ex.)

의 연산

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-14

2.6 Transformations (강체의 이동 및 회전)

( , , )

0 0

0 0(

1

1

1

1

, , )0 0

0 0 0 1

0 0

0 0

0 0

0 0 0 1

1

1

x y z

x

y

x y z

z

x x x x x

y y y y

new

Trans d

z

d d

d

dT Trans d d d

d

d n o a p

d n o a pF

d

=

=

(Fig. 2.11)

Pure translation location

에 의한 의 변화

Pure translation1)

0 0 0 1 0 0 0 1

( , , )

old

x x x x x

y y y y y y

z z z z z z z z z

new x y z old

F

n o a p d

n o a p d

n o a p n o a p d

F Trans d d d F

+

+ = +

=

Pure translation Pure rotation about an axis Combination of translations or rotations.

(강체의 이동에 의한 위치 변화)

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-15

Transformations: Pure rotation about an axis

1 0 0 0

0 c 0

0 c 0

0 0 0 1

1 0 0

( , ) 0 c

0 c

c 0

( , ) 0 1 0

0 c

s

sRot x s

s

s

Rot y

s

= − =

= −

:

(Fig. 2.12, 2.13)

Rotation matrices

x-axis

: y-axis

기준좌표계 에 대하여 만큼 회전

기준좌표계 에 대하여

Pure Rotatio2) n

c 0

( , ) c 0

0 0 1

s

Rot z s

=

: z-axis

만큼 회전

기준좌표계 에 대하여 만큼 회전

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-16

1 0 0

( , ) 0 c

0 c

x n

xyz noa y o

z a

U U R

R

P P

P Rot x P P s P

P s P

P T P

= = −

→ = simply

R

noaP P=

Rotation about the x-axis.

U

xyzP P=

Fig. 2.13 → (2.17) → (2.18)

x x x

y y y

z z z

n o a

F n o a

n o a

=

* Direction cosine matrix= Rotational matrix

(강체의 회전에 의한 위치 변화)

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-17

Transformations: Combined transformations

( , ) ( , ) ( , ) ( , )Rot x Rot y Rot y Rot x

(Translation + Rotation)

Successive transformation

- Rotation

- Translation (Pure translation ):

의 경우 순서가

의 경

중요:

은 순서에 무 우

Combined Transformation 3)

( , , ) ( , , ) ( , , ) ( , , )

( , ) ( , , ) ( , ) ( , , )

x y z x y z x y z x y z

x y z x y z

Trans p p p Trans d d d Trans d d d Trans p p p

Rot x Trans p p p Rot y Trans d d d

Tran

=

→ →

(Reference frame) successive transformation:

=

기준좌

계 에 대한

( , , ) ( , ) ( , , ) ( , )x y z x y zs d d d Rot y Trans p p p Rot x

Premulti pl g! yin →

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-18

(Ex.) Transformation Matrix의 계산

0 0 0

0 0 0

0 0 0

1

( , ) ( , , ) (

( , , )

( , , ) ( , , )

( ,

, ) ( , , )

( , , ) ( , ) ( , ,, ) ( , , )) ( , )

x y z x y z

x y z x y z

R x Tr b b b R y Tr d d d

Tr d d d R y Tr b b

p x y z

p x y z x y z

p x y z b R x y zx

• → →→ →

=

(reference frame) transformation:

=

임의점 의 기준좌표계 에 대한

초기위치 최종위치

최종위치 초기위치

0

0

0

0 0 0

0 0 0

0 0 0

0 0 c 0 0 1 0 0 1 0 0 0

0 1 0 0 1 0 0 0 1 0 0 c 0

0 0 1 0 c 0 0 0 1 0 c 0

0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

c 0

0 1 0

0 c

0 0 0

x x

y y

z z

x

y

z

x x x

y y y

z z z

d s b n o a x

d b s n o a y

d s b s n o a z

s d

d

s d

=

0

0

0

0 0 0

0 0 0

0 0 0

1 0 0

0 c

0 c

1 0 0 0 1 0 0 0 1

0 0 0 1

, ,

x

y

z

x x x

y y y

z z z

x x x x

y y y y

x y z

z z z z

b n o a x

s b n o a y

s b n o a z

n o a p

n o a p

n o a px p y p z p

= = = =

. Then, we have

강체(Point p)에 부착된 회전좌표계의reference frame에 대한 초기자세

강체(Point p)에 부착된 회전좌표계의reference frame에 대한 최종자세

강체(Point p)의초기위치

강체(Point p)의 최종위치

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-19

2.6.4 회전좌표계에 대한 상대 변환 (Relative Transformation)

( , ) ( , , ) ( , ) ( , , )x y z x y zRot x Trans p p p Rot y Trans d d d

R

→ → →

Robot link

link

successive transformation :

Current frame = (

( )

=

Rotating frame

)회전

의 운동

각 에 부착된 회전좌표계에 대한

좌표계

상대운동으로 기술

에 대한

0 1 21 2

( , ) ( , , ) ( , ) ( , , )x y z x y z

ET T T

ot x Trans p p p Rot y Trans d d d

• ⎯⎯→ ⎯⎯→ ⎯⎯⎯→

reference rotating rotating end-effector

frame 0 frame 1 frame 2 frame E

Postmultiply

Referen

ing!

ce f

0 0 1 2

1 2

0 0 0 1

x x x x

y y y y

E

z z z

E

z

n o a p

n o a p

n o a pT T T T

=

=

rame{0} end-effector{E} 에 대한 의 위치 및 자세

자세(orientation)

위치(position)

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-20

Fig. 2.17 Transformations relative to the current(=rotating) frames.

Example 2.100 0( ,90 ) (4, 3,7) ( ,90 )xyz noaP Rot a Trans Rot o P= −

0( ,90 )Rot a

(4, 3,7)Trans −

0( ,90 )Rot o

7

3

2

noaP

=

0

6

0

xyzP

=

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-21

로봇 핸드의 위치 및 자세

0 0 1 2 1

1 1 2 2 3 3( ) ( ) ( ) ( )n

n n nT T T T T −

→ =

Robot hand(end-effector)

reference frame (position/orientation)

에 대한 좌표

0

0 0 0 1

x x x x

y y y y

n

z z z z

n o a p

n o a pT

n o a p

=

1 0 0 0

1

~ ( , , )

( , , ) , , )

( , , ) , , )

~

reference frame hand

position: orient forward kation: (

hand : (

joint ang

inematics.

le( )

n

x y z

x y z

n

x y z

p p p p n o a

p p p p n o a

=

• =

주어진 에 대하여 에 대한 의

과 을 구하려면

원하는 위치 와 자세 에 대하여

을 구하려면 Inverse kinema tics.→

0x0y

0z

1x1y

1z

2x 2y

2z

1 ( )nx n

( )ny o

( )nz a

23

n

0

nT

3x 3y

3z

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-22

2.7 Inverse of Transformation Matrices

Fig. 2.16>

: Reference frame, : Robot Base frame,

: Hand frame, : end-effector frame,

: Part fra

Unknown : Robot base(R) h (

m

an

e

d H

R

H

R

U U H U P

E R E P E

U R

H E

H

P

T T T T TT

T

= =

• 에 대한 ) transformation

Forward kinematics →

로 결정됨

Fig. 2.16 The Universe, robot, hand, part, and end effecter frames.

( ) ( )( )

( ) ( )( )

( ) ( )( )

( )

( ) ( )

1 1

1 1

1 1

1 1

,

U U H H

R R E E

U U P H

R P E E

U U P H

R P E E

R U P E R

U P E H H

U

R

H

R H E

R U E

R

H

H

T T T T

T T T T

T T T T

T

T

T

T T T T

T T T T

− −

− −

− −

− −

=

→ =

=

= =

=

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-23

1

1

0 0 0 1

0

( , ) ( , )

1

x x x x

y y y y

z z z z

T

T

n o a p

n o a p

n o a p

p

R R

RT

RT

x x −

• →

→ =

=

= =

Rotation matrix Inverse

Rotation matrix orthogonal matrix!

: unitary matrix

Transformation matrix Inverse

0 0 0 1

0 1

,

x y z

x y z

x y z

T

x x x x

y y y y

z z z z

n n n p n

o o o p o

a a a p a

p

p n o a

R

p n o a

p n o a

p n o a

= = = =

=

, where ,

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-24

2.8 Forward & Inverse Kinematics of Robots

▪ 공간상에서 기준좌표계(reference frame)에 대한 강체(rigid body)의 위치

(position)와 자세(orientation)을 구하기 위해서는

• 강체에 강체와 함께 움직이는 이동좌표계를 부착하고

• 이동좌표계 원점의 위치[(x,y,z):3 DOF]와

• 이동좌표계 각 축의 기준좌표계에 대한 자세[방향코사인 또는 Euler angle: 3

DOF]를 구함.

▪ Robot의 경우 (Fig. 2.17)

• Robot hand(= 강체)에 이동좌표계 (n,o,a)를 부착

• 로봇 각 링크의 parameter 값들과 주어진 joint angle에 의해 기준좌표계에 대한

이동좌표계(n,o,a) 원점의 위치와 자세를 결정.

Robot hand(Gripper)=end-effector

( )nn x

( )no y

( )na z

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-25

2.9 Kinematic Equations for Position

( , , )

1 0 0

0 1 0

0 0 1

0 0 0 1

x

yR

P

z

x y z

p

pT

p

=

Cartesian coordinates (Fig. 2.18):

( , , )

( , , ) (0,0, ) ( , ) ( ,0,0)

1 0 0 0 0 0 1 0 0

0 1 0 0 0 0 0 1 0 0

0 0 1 0 0 1 0 0 0 1 0

0 0 0 1 0 0 0 1 0 0 0 1

R

P cyl

r l

T T r l Trans l Rot z Trans r

c s r

s c

l

= =

Cylindrical coordinates (Fig. 2.19):

=

0

0

0 0 1

0 0 0 1

c s rc

s c rs

l

=

A gantry robot is a Cartesian robot.

2 Linear translations and 1 rotation

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-26

( , , )

( , , ) ( , ) ( , ) (0,0, )

0 0 0 0 1 0 0 0

0 0 0 1 0 0 0 1 0 0

0 0 1 0 0 0 0 0 1

0 0 0 1 0 0 0 1 0 0 0 1

R

P sph

r

T T r Rot z Rot y Trans r

c s c s

s c

s c r

= =

− −

Spherical coordinates (Fig. 2.20):

=

0

0 0 0 1

C C S S C rS C

C S C S S rS S

S C rC

=

1 2( , , , )n

Articulated coordinates (Fig. 2.21):

Robot

D-H transformation

관절형 의 경우:

방법에 따른

1 Linear translation and 2 rotations

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-27

2.10 Kinematic Equations for Orientation

2.10.1(a) Roll-Pitch-Yaw (RPY) angles

( ,

( , , )

( , ) ( , ) ( ,

, )

)

a o n

a o nRot a Rot o Rot

a o n

n

• = = =

→ → → →

about curren

Roll-Pitch-Yaw (RPY) angles (Fig. 2.22):

* RPY sequence of rotation

: (z y x )

:Current frame

t axes:

(회전좌표계의 현재 자세)에 대한 상대회전

Yaw: Rotation of about -axis (x-axis of the moving frame)n n

Roll: Rotation of about -axis (z-axis of the moving frame)aa

Pitch: Rotation of about -axis (y-axis of the moving frame)o o

( , , ) ( , , ) ( , ) ( , ) ( , )

0 0 0 0 1 0 0 0

0 0 0 1 0 0 0 0

0 0 1 0 0 0 0 0

0 0 0 1 0 0 0 1 0 0 0 1

a o nRPY RPY Rot a Rot o Rot n

c s c s

s c c s

s c s c

= =

− −

=

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-28

( , , )

( , , )

( , ) ( , ) ( , )

0

0

0

0 0 0 1

a o nRPY

RPY

Rot a Rot o Rot n

c c c s s s c c s c s c

s c s s s c c s s c c c

s c s c c

=

=

− +

+ − −

=

(2-36)식 ( , )nRot n

( , )aRot a ( , )oRot o

Roll-Pitch-Yaw (RPY) angles

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-29

( , , ) ( , ) ( , ) ( , )

0

0

0

0

0

0

0

0 0 10 1 0 0

x x x

y y y

z z z

RPY Rot a Rot o Rot n

c c c s s s c c s c s c

s c s s s c c s s c

n o a

n o a

n

c c

s oc c as c

=

− +

+ − −

= =

( )nn x

( )no y

( )na z

Roll-Pitch-Yaw (RPY) angles

End-effector orientation)

(robot base) end-effector RPY angle

의 자세(

기준좌표계 에 대한 좌표계의

2 2

2 2

tan tan tan

atan2( , )

atan2( , )

atan2( , )

y z z

x zz z

y x

z z z

z z

n n o

n ao a

n n

n o a

o a

−= = =

+→

=

= − +

=

, ,

Roll:

Pitch:

Ya :

w

RPY angles Direction cosines

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-30

2.10.2(b) Euler Angles

( , ) ( , ) (

( )

, )

, ,

Rot a Rot o Rot a

a o

z

a

→ → → →

about cu

Euler angle (Fig. 2.24):

RPY angle Euler angle

* Euler angle

: (z y )

:Current fr

rrent ax

ame(

es:

책마다 정의가 약간씩 다름.

도 의 한 종류.

회전순서

( , , ) ( , ) ( , ) ( , )

0 0 0 0 0 0

0 0 0 1 0 0 0 0

0 0 1 0 0 0 0 0 1 0

0 0 0 1 0 0 0 1 0 0 0 1

Euler Rot a Rot o Rot a

c s c s c s

s c s c

s c

=

− − −

=

= (2-43)

( ) RPY angle

재의 회전좌표계)에 대한 상대회전

주 의 .정의만 잘 익힐 것

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-31

, ,( ) ( , , )

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1 0 0 0 1

x y z

x

y

R

H car

z

t

x

T T RPY

c c c s s s c c s c s c

s c s s s c c s s c c c

s c s c c

c c c s s s c c s

p p p

p

p

p

pc s c

s s s s s c c

=

− +

+ − −

− +

+

=

=

1 1 2 2 1 2 1 1 2

3 3 3 1 21 3 3 3 1 ( , 0

0 0 0 1 0 0 0 1

0 1 1 0 1)

0

x x x x

y y y y

z z

y

z z z

n o a p

s s c c c n o a p

s c s c c n o a p

R P R P R R P R P

p

p

R I P

− = −

+=

= =

( ) 주

Forward Kinematic Equations

▪ Reference frame(기준좌표계 R) = Cartesian frame(직교좌표계)

▪ Robot hand의 자세를 기준좌표계에 대한 RPY angle로 표현한다면,

Robot hand 즉, 이동좌표계 (n, o, a)의 위치(location) 및 자세(Orientation)는?

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-32

2.12 Denavit-Hartenberg (D-H) Representation

▪ D-H representation 방법

→ Open kinematic chain 형태 robot manipulator의

forward kinematics를 계산하기에 편리함.

▪ Manipulators → Succession of joints and links

• Robot joint : 1) Revolute type(rotation), 2) Prismatic type(translation).

nz

joint n link n

nn

link link .

의 말단에 부착되어과 같이 움직임

n

1

n

nz

: (n-1) link

에 부착된 축에 대하여 회전

{ , , }

n n nx y z

좌표계

1 nz −

( 1)link n− 에 부착

nx

ny

관절 좌표계(joint coordinates)의 정의

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-33

D-H Parameters

1nz −

nz2nz − n

1n +

1n −

joint n1joint n−

1link n−

link n

( )1attached to link n−

( )attached to link n

( )2attached to link n−

1nx −

nxna

nd

n

n

o

o

▪ Transformation between two successive frames

21 1

1

1

1

n

n n n

n

n

n

n

d

a

− −−

z

x common normal between z z

y

-axis: n-th joint (revolute joint )

or (prismatic joint

variable

)

-axis: along the -axis

variab

& -axis

-axi

le

s: f

의 회전방향

직선운동 방향

ollows right-hand rule

1na

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-34

두 관절 좌표계 사이의 변환(Transformation)

1 1 1

1

1( (0,0,

{ , , } { , , }

, ) ) ( ,0,0) ( , )n

n

n

n

n n n n n n

n

n n n n n

n n n nd a

Rot z Trans d

x y z x y z

T Trans a Rot x

− − −

→ → →

⎯⎯⎯⎯⎯⎯⎯→

=

: x

transformation:

(n-1) link n-link

두 좌표계 사이의

좌표계 좌표계

1 1

1 1

n

n nn

n n n

n n n

d

a

− −

− −

x : z z

: x x z : z

축과 축 사이 각도 축과 축 원점 사이의 거리

축과 축 사이의 거리 축과 축 사이 각도

1

1

1

1

1(

(0,0,

(

( ,

, )

)

,0,0)

)

n n n

n n n

n n n

n n n n

nRot z

Trans d

Trans a

Rot x

−•

x x

x x colinear

x x .

z z

축이 축과 평행하게 됨.

축과 축이 하게 됨.

축의 원점이 축의 원점과 일치하게 됨

축이 축과 일치하게 됨.

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-35

두 이동좌표계 사이의 Transformation

1

1( (0,0,, ) ) ( ,0,0) ( , )

0 0 1 0 0 0 1 0 0 1 0 0 0

0 0 0 1 0 0 0 1 0 0 0 0

0 0 1 0 0 0 1 0 0 1 0 0 0

0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

n n

n

n

n

n n n n n n

n n

n n n n

n n

Rot z Trans d

a

d

T A Trans a Rot x

c s

s c c s

s c

−= =

− =

0 0 1 0 0

0 0 0 0

0 0 1 0 0

0 0 0 1 0 0 0 1

0

0 0 0 1

n

n

n

n

n

n n

n n n n

n n

n n n n n n

n n n n n n

n n

a

d

a

a

d

c s

s c c s

s c

c s c s s c

s c c c s s

s c

− =

− =

{n-1}좌표계에 대한 {n}좌표계의 자세

{n-1}좌표계 원점에 대한{n}좌표계 원점의 거리

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-36

(Robot Base → Hand)의 Transformation

▪ Robot base(Reference frame)에 대한 Robot hand의 위치 및 자세

1 2 1

1 1 2 2 3 3 1 2 3( ) ( ) ( ) ( )

: revolute joint variable

: prismatic joint

i i

i i

R R n

H n n n

q

q d

T T q T q T q T q A A A A

=•

=

= =

0x0y

0z

1x1y

1z

2x 2y

2z

1 ( )nx n

( )ny o

( )nz a

23

n

0

nT

3x 3y

3z

x y

z

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-37

Example 2.25 (PUMA type)

▪ D-H parameters

Joint # theta[i] d[i] a[i] alpha[i]

1

2

3

4

5

6

0x 0y

0z

6x6y

6z

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-38

Example 2.26 (Stanford Arm)

▪ D-H parameters (Table 2.6)

Joint # theta[i] d[i] a[i] alpha[i]

1

2

3

4

5

6

0x 0y

0z

6x

6y6z

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-39

2.13 Inverse Kinematic Solutions

▪ Position level (chap. 2)에서의 Inverse kinematics

• 특별한 규칙이 있는 것은 아니고 주로 기하적 방법(geometric

method)이나 transformation matrix의 element를 비교해서

solution을 찾음.

• 6DOF robot의 역기구학 해가 존재하기 위한 충분조건:

→ The last three revolute joint axes (wrist) intersects at a common

point.

0 0 0 1

x x x x

y y y y

z z z z

i

i

n o a p

n o a p

n o a p

d

Given the desired location:

& orientation of the robot

(revolute joint) or

Inv

Solve f

erse kinem

or the joint variables: (prismatic joi

atic

nt)

s

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-40

Ex. 2.25의 역기구학 해

1 1 2 2 3 3 4 4 5 5 6 6

1

6 6 6

1

0 0 0 1

( ) ( ) ( ) ( )

, , }

, , }

( ) ( ) [ ]

(1)

Desired orientation/location

: {

{ frame

of the hand

x x x x

y y y y

z z z z

x x x x

y y

R

H

n o a p

n o a p

n o a p

n o a p

n o

x y

T A A A A A A RH

z

n a

S

A

o

• =

=

=

1

1 2 2 3 3 4 4 1 3

5 2

5 5 6 6

1 1 1 1 1 1 1 1

4 3 2 1 4 3 2 1 5 5 6 6

1

34 2

5

4

0 0 0 1

0 0 0 1

[ ] ( ) ( ) ( ) ( ,

,

) ( )

(2) [ ] ( ) ( )[ ]

(3)

, ,

y y

z z z z

x x x x

y y y y

z z z z

a p

n o a p

n o a p

n o a p

n o a p

A RHS A A A A A

A A A A A A A A RHS A A RHS

A A

− − − − − − − −

= =

= =

1 1 1 1 1 1 1 1 1

4 3 2 1 4 3 1 65 2 6 6

0 0 0 1

[ ] ( )

x x x x

y y y y

z z z z

n o a p

n o a p

n o a pA A A A A A A A RHS A − − − − − − − − −

= =

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-41

Ex. 2.26 (Stanford Arm)의 역기구학 해

▪ 5R-1P manipulator

1 1 2 2 3 3 4 4 5 5

6 6

6 6

6

0 0 0 1

( ) ( ) ( ) ( ) ( ) ( ) [ ]

(1

, , }

, , }

)

1st three joints

Desired orientation/location

: of the {

{

ha

frame

nd

x x x x

y y y y

z z z z

R

H

n o a p

n o a p

n o a px y

T A A A

z

A A A RHS

n o a

=

=

=

3

3

2

21 1

1 6 2 2 3 3 4 4 5 5

2

1 1 1

3

2 3

1

1

2

0 0 0 1 0 0 0 1

0 0 0 1

( ) ( ) ( ) , ,( )

(2)

[

last three joints

known matr

x x x x

y y y y

z z z z

x x x x

y y y y

z z z z

n o a p d

n o a p d

n o a p d

n o a p

n o a p

n o a p

s

cA A A A A A

A A A

− −

− − −

= =

=

4 4 5 5 6 6

1

4 5 5 6 6 4 5 6

( ) ( ) ( )

[ ( ) ( , ,)

ix]

known matrix]

A A A

A A A

− →

=

=

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-42

2.15 Degeneracy and Dexterity

▪ Degeneracy

• Robot이 운동 중에 singular configuration에 들어가

degree of freedom 을 잃는 경우가 발생

1) Robot의 각 joint가 물리적 한계에 도달하는 경우 (즉, robot의

운동 영역인 workspace의 경계에 있는 경우)

2) 두개 joint의 z-axis가 colinear한 경우: 어느 축을 움직여야 하

는가 결정할 수 없음.

▪ Dexterity

• Robot hand를 workspace내의 임의 point에 원하는

orientation으로 위치시킬 수 있을 때 robot이

dexterous하다라고 말함.

• Robot workspace의 경계(boundary) 부분에는 hand를

원하는 자세로 보낼 수 없음. (dexterity를 잃는 경우)

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-43

2.16 Fundamental Problem with D-H Representation

▪ Defect of D-H presentation :

• D-H cannot represent any motion about the y-axis, because all motions

are about the x- and z-axis (Standard D-H 방법의 경우)

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-44

㈜ D-H 변환에서 Y축으로의 이동이 필요한 경우 (PUMA560)

1nz −

nz2nz − n

1n +

1n −

joint n1joint n−

1link n−

link n

( )1attached to link n−

( )attached to link n

( )2attached to link n−

1nx −

nxna

nd

n

n

o

onb

1

1

1

1

1(

(0,0,

(

,

(

(

, )

)

,0,0

0

)

,0)

)

,

n n n

n n n

n n n

n n

n

n

n

nRot z

Trans d

Trans a

Rot

Tran b

x

s

−•

x x

x x parallel

x x colinear )

x x

z

축이 축과 평행하게 됨.

축과 축이 하게 됨.

축과 축이 하게 됨 (동일직선상 .

축의 원점이 축의 원점과 일치하게 됨

1n n− z 축이 축과 일치하게 됨.

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-45

1

1( (0,0,, ) ) ( ,0,0) ( , )

0 0 1 0 0 0 1 0 0

0 0 0 1 0 0 0 1 0 0

0 0 1 0 0 0 1 0 0 1 0

0 0 0 1 0

(0, ,0)

1 0 0 0

0 1 0

0 0 1 0

00 0 01 0 00 0 1 1

n n

n

n

n

n

n n n n n n

n n

n n

nRot z Trans d

d

b

a

T A Trans a Rot x

c s

Tra

s c

ns b

−= =

− =

1 0 0 0

0 0

0 0

0 0 0 1

0

0 0 0 1

n n

n

nn

n

n n

n n

n n n n n n

n n n n n

n

nn

n

a

a

d

c s

s c

c s c s s c

s c c

b s

bc

s

cs s

c

− =

+

㈜ D-H 변환에서 Y축으로의 변환이 필요한 경우 (PUMA560)

1 1 1

1

1( (0,0,

{ , , } { , , }

, ) ) ( ,0,0) (0, ,0) ( ,n n

n n n n n n

n

n n n nn

n n n nnd ba

Rot z Trans d

x y z x y z

T Trans a Trans R tb o x

− − −

→→ → →

⎯⎯⎯⎯⎯⎯⎯⎯⎯→

=

transformation:

(n-1) link n-link

두 좌표계 사이의

좌표계 좌표계

1 1

111

)

n n

n

n n n n

n n nn nnn n

n

b

d

a

− −

− −−

: x x : z z

: x x : z : y y z

축과 축 사이 각도, 축과 축 사이의 거리,

축과 축 사이의 거리, 축과축과 축 사이의 축 사거리, 이 각도

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-46

PUMA560

Joint # theta[i] d[i] a[i] b[i] alpha[i]

1

2

3

4

5

6

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-47

▪ Methods for representation of points, vectors, frames, and 4 by 4

homogeneous transformations by matrices.

▪ Forward and inverse kinematics of robots

▪ RPY angles and Euler angles

▪ Denavit-Hartenberg method to derive the forward and inverse

kinematic equations

Summary of Chapter 2

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-48

[Homework #1] (220점)

▪ 예제 Example 2.9 ~ 2.28 (20 x 5점 = 100점)

(번역서: Example 2.1~2.20)

▪ Solve the following problems in chapter 2: (10점 x 7=70점)

• 2.6, 2.11, 2.14, 2.19, 2.30, 2.31, 2.32

(번역서: 2.3, 2.7, 2.9, 2.12, 2.20, 2.21, 2.22)

▪ Solve the forward/inverse kinematics of the stanford arm. (50점)

• Derive the Eq. (2.60): forward kinematics :번역서 (2.58)

• Derive the Eq. (2.80)~(2.85): inverse kinematics :번역서 (2.78)~(2.83)

(Ref.) Asada and Slotine “Robot analysis and control”

2019 가을학기, 로봇공학 (KAU, AME)

로봇공학, Chapter 2

2-49

H.W#1 2.32 문제 (번역서 2.22)

1) Ref. frame을 1번 joint에 둘 경우

Joint # theta d a alpha

1 theta1 0 0 90

2 0 l2 0 -90

3 theta3 0 0 90

H 0 l3 0 0

2) Ref. frame을 Text와 같이 둘에 둘 경우

Joint # theta d a alpha

U 0 0 l1

1 theta1 0 0 90

2 0 l2 0 -90

3 theta3 0 0 90

H 0 l3 0 0

0 0 1 2 3

1 2 3H HT A A A A=

0 0 1 2

0 0 1 2 3

U U U

H HT A T A A A A= =