로봇공학, Chapter 2 로봇공학 (Robotics) Chapter 2. Robot Kinematics: Position Analysis 로봇 기구학: 위치 해석 Forward kinematics Inverse kinematics Denavit-Hartenberg representation 4 x 4 Homogeneous transformation matrix 2-1 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 Robot Kinematics Forward kinematics: • To determine where the end-effector (gripper or hand) of robot is? • when all joint variables (ex, 로봇관절 회전각) and the linkage parameters are known. • 4 x 4 transformation matrix Inverse kinematics: • To determine what each joint variable is? • When we desire that the end-effector(hand) be located at a particular point. Denavit-Hartenberg (D-H) representation: • A simple and standard way of modeling robot links and joints. 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-2 로봇공학, Chapter 2 Robot Kinematics • Forward kinematics: Given joint angles (θ1 , θ 2 ," ,θ n ) → determine the end-effector posture(position & orientation) ( x, y, z , φ , θ ,ψ ) : 3차원 위치 및 roll-pitch-yaw 자세각 • Inverse kinematics: Given desired end-effector position ( x, y, z , φ ,θ ,ψ ) PUMA (6dof Æ n=6) → determine the required joint angles (θ1 ,θ 2 ," ,θ n ) 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-3 로봇공학, Chapter 2 • 2-link manipulator의 예 x = l1 cos θ1 + l2 cos (θ1 + θ 2 ) y = l1 sin θ1 + l2 sin (θ1 + θ 2 ) → θ1 = ?, θ 2 = ? 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-4 로봇공학, Chapter 2 2.2 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 등)로 측정 z2 z1 θ2 y2 x2 θn y1 x1 yn (o ) z0 x0 θ3 θ1 y0 xn (n) zn (a) 0 Tn 2-5 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 Robot Mechanism Closed-loop mechanism VS. Open-loop mechnism Four-bar mechanism (1 DOF, closed-loop) passive joints Three active joints Æ 3DOF manipulator One active joint (a) Closed-loop mechanism versus (b) open-loop mechanism 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-6 로봇공학, Chapter 2 (Rotational/Translational Matrix) 2.3 Matrix Representation 공간상의 점 위치 Æ 벡터로 표현 ♦ A point P in space : 3 coordinates relative to a reference frame ^ ^ ^ P = a x i + by j + c z k ♦ A vector P in space : 3 coordinates of its tail and of its head __ ^ ^ ⎡x⎤ ⎢ y⎥ __ P=⎢ ⎥ ⎢z⎥ ⎢ ⎥ ⎣ w⎦ ^ P = a x i + by j + c z k w: scaling factor Fig. 2.3 Representation of a point in space Fig. 2.4 Representation of a vector in space 2-7 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 Matrix Representation 기준좌표계(고정)에 대한 회전좌표계(이동)의 자세 표현 (Fig. 2.5) ⎡ nx F = ⎢⎢ n y ⎢⎣ nz ox oy oz ax ⎤ 회전좌표계( n, o, a ) 각 축이 ⎥ a y ⎥ (Rotation matrix): 고정좌표계( x, y , z ) 각 축과 이루는 방향코사인으로(direction cosines) 구성 az ⎥⎦ unit vectors ♦ Each Unit Vector is mutually perpendicular: normal, orientation, approach vector Fig. 2.5 Representation of a frame at the origin of the reference frame 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-8 로봇공학, Chapter 2 Matrix Representation 기준좌표계(고정)에 대한 이동좌표계(회전+위치이동)의 표현 (Fig. 2.6) ⎡ nx ⎢n F=⎢ y ⎢ nz ⎢ ⎣0 ox ax oy ay oz az 0 0 px ⎤ p y ⎥⎥ → Rotation matrix + translation vector pz ⎥ ⎥ 1⎦ • Example 2.3: Robot hand (Gripper) =end-effector o ( yn ) n( xn ) a ( zn ) Fig. 2.6 Representation of a frame in a frame 2-9 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 강체(Rigid Body)의 표현 3차원 공간 상의 강체 (로봇의 각 link) (Fig. 2.8) ♦An object can be represented in space by attaching a frame to it and representing the frame in space. • 강체에 이동좌표계(moving frame) (n,o,a) 부착 Fobject ⎡ nx ⎢n y =⎢ ⎢ nz ⎢ ⎣0 ox a x Px ⎤ o y a y Py ⎥⎥ oz a z Pz ⎥ ⎥ 0 0 1⎦ 기준좌표계에 대한 이동좌표계(강체)의 위치(position) 및 자세(orientation)의 변화 Fig. 2.8 Representation of an object in space 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon Æ 4 x 4 transformation matrix로 표현 2-10 로봇공학, Chapter 2 강체(Rigid Body)의 표현 3차원 공간상의 강체 (로봇의 각 link) Æ 기준좌표계(Reference frame)에 대하여 6자유도 운동 (6 DOF motion) ¾ (x,y,z) 각 축 방향의 translation (3DOF) ¾ (x,y,z) 각 축에 대한 Rotation (3 DOF) Fobject ⎡ nx ⎢n =⎢ y ⎢ nz ⎢ ⎣0 ox ax oy oz ay az 0 0 px ⎤ p y ⎥⎥ → Rotation + translation( px , p y , pz ) pz ⎥ ⎥ 1⎦ 강체의 Rotation(3 DOF 운동)에 대한 9개의 정보 Æ 6개의 constraints(구속조건) 포함 (2.10)식 강체의 translation(3 DOF 운동)에 대한 3개의 정보 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-11 로봇공학, Chapter 2 Rotation Matrix의 성질 Fobject ⎡ nx ⎢n =⎢ y ⎢ nz ⎢ ⎣0 ox ax oy oz ay az 0 0 px ⎤ p y ⎥⎥ pz ⎥ ⎥ 1⎦ Rotation matrix 특성 : (2.10), (2.11),식 • Three unit vectors are mutually orthogonal ↔ dot product = 0 : → n ⋅o = o ⋅a = a ⋅n = 0 • Each unit vector's length = 1 → n = o = a =1 Example 2.3 연습 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-12 로봇공학, Chapter 2 2.4 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. • Homogeneous transformation matrix ⎡ nx ⎢n F =⎢ y ⎢ nz ⎢ ⎣0 ox oy ax ay oz az 0 0 px ⎤ p y ⎥⎥ ⎡ R3×3 pz ⎥ ⎢⎣ 01×3 ⎥ 1⎦ p3×1 ⎤ 1 ⎦⎥ • Homogeneous transformation matrix의 연산 ⎡R (Ex.) F1 = ⎢ 1 ⎣0 p1 ⎤ ⎡R , F2 = ⎢ 2 ⎥ 1⎦ ⎣0 p2 ⎤ ⎡R → F2 F1 = ⎢ 2 ⎥ 1⎦ ⎣0 p2 ⎤ ⎡ R1 1 ⎥⎦ ⎢⎣ 0 p1 ⎤ ⎡ R2 R1 = 1 ⎥⎦ ⎢⎣ 0 R2 p1 + p2 ⎤ ⎥ 1 ⎦ 2-13 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 2.5 Transformations: Pure translation ♦ Pure translation ♦ Pure rotation about an axis ♦ Combination of translations or rotations. 1) Pure translation (Fig. 2.9) ⎡1 ⎢0 T =⎢ ⎢0 ⎢ ⎣0 0 0 dx ⎤ 1 0 d y ⎥⎥ Trans (d x , d y , d z ) 0 1 dz ⎥ ⎥ 0 0 1⎦ • Pure translation에 의한 location의 변화 Fnew ⎡ 1 0 0 d x ⎤ ⎡ n x ox a x p x ⎤ ⎡ n x ⎢0 1 0 d ⎥ ⎢ n o a p y ⎥⎥ ⎢⎢ n y y⎥⎢ y y y ⎢ = = ⎢ 0 0 1 d z ⎥ ⎢ nz oz a z p z ⎥ ⎢ nz ⎢ ⎥⎢ ⎥ ⎢ 0 0 0 1 ⎦⎣ 0 0 0 1 ⎦ ⎣ 0 ⎣ Trans ( d x , d y , d z ) ox oy ax ay oz 0 az 0 px + d x ⎤ p y + d y ⎥⎥ pz + d z ⎥ ⎥ 1 ⎦ Fold Fnew = Trans (d x , d y , d z ) × Fold 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-14 로봇공학, Chapter 2 Transformations: Pure rotation about an axis 2) Pure Rotation (Fig. 2.10, 2.11) • Rotation matrices ⎡1 0 Rot ( x, θ ) = ⎢⎢ 0 c θ ⎢⎣ 0 sθ 0 0⎤ ⎡1 0 0 ⎤ ⎢ 0 c θ − sθ 0 ⎥ ⎥ : 기준좌표계 x-axis에 대하여 θ만큼 회전 − sθ ⎥⎥ = ⎢ ⎢ 0 sθ c θ 0 ⎥ c θ ⎥⎦ ⎢ ⎥ 0 1⎦ ⎣0 0 0 sθ ⎤ 1 0 ⎥⎥ : 기준좌표계 y-axis에 대하여 θ만큼 회전 0 c θ ⎥⎦ ⎡ cθ Rot ( y, θ ) = ⎢⎢ 0 ⎢⎣ − sθ ⎡ c θ − sθ Rot ( z , θ ) = ⎢⎢ sθ c θ ⎢⎣ 0 0 0⎤ 0 ⎥⎥ : 기준좌표계 z-axis에 대하여 θ만큼 회전 1 ⎥⎦ 2-15 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 Fig. 2.11 Æ (2.16) Æ (2.17) ⎡ Px ⎤ ⎡1 0 Pxyz = Rot ( x,θ ) × Pnoa ⇔ ⎢⎢ Py ⎥⎥ = ⎢⎢0 c θ ⎢⎣ Pz ⎥⎦ ⎢⎣0 sθ → simply U P = U TR × R P 0 ⎤ ⎡ Pn ⎤ − sθ ⎥⎥ ⎢⎢ Po ⎥⎥ c θ ⎥⎦ ⎢⎣ Pa ⎥⎦ U R P = Pnoa P = Pxyz Rotation about the x-axis. 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-16 로봇공학, Chapter 2 Transformations: Combined transformations 3) Combined Transformation (Translation + Rotation) • Successive transformation - Rotation의 경우 순서가 중요: Rot ( x, θ ) × Rot ( y, φ ) ≠ Rot ( y, φ ) × Rot ( x,θ ) - Translation은 순서에 무관 (Pure translation의 경우): Trans ( px , p y , pz ) × Trans (d x , d y , d z ) = Trans (d x , d y , d z ) × Trans ( px , p y , pz ) • 기준좌표계(Reference frame)에 대한 successive transformation: Rot ( x, θ ) → Trans ( px , p y , pz ) → Rot ( y, φ ) → Trans (d x , d y , d z ) = Trans (d x , d y , d z ) × Rot ( y, φ ) × Trans ( px , p y , pz ) × Rot ( x, θ ) → Premultiplying! 2-17 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 (Ex.) Transformation Matrix의 계산 임의 point, p ( x0 , y0 , z0 )의 고정 기준좌표계(reference frame)에 대한 transformation: • 초기위치 p ( x0 , y0 , z0 ) → R( x, θ ) → Tr (bx , by , bz ) → R ( y, φ ) → Tr (d x , d y , d z ) → 최종위치( x, y, z ) • 최종위치 p ( x, y, z ) = Tr (d x , d y , d z ) × R ( y, φ ) × Tr (bx , by , bz ) × R ( x, θ ) × 초기위치( x0 , y0 , z0 ) ⎡1 ⎢0 =⎢ ⎢0 ⎢ ⎣0 ⎡ cφ ⎢ 0 =⎢ ⎢ − sφ ⎢ ⎣ 0 ⎡ nx ⎢n =⎢ y ⎢ nz ⎢ ⎣0 0 0 dx ⎤ ⎡ cφ 1 0 dy ⎥ ⎢ 0 ⎥⎢ 0 1 d z ⎥ ⎢ − sφ ⎥⎢ 0 0 1 ⎦⎣ 0 0 sφ 1 0 0 cφ 0 0 0 sφ 1 0 0 cφ 0 0 d y ⎥ ⎢0 c θ ⎥⎢ d z ⎥ ⎢ 0 sθ ⎥⎢ 1 ⎦ ⎣0 0 ox ax px ⎤ oy ay py ⎥ oz az pz ⎥ 0 0 1 d x ⎤ ⎡1 0 0 ⎤ ⎡1 0 0 bx ⎤ ⎡ 1 0 ⎥ ⎢ 0 0 1 0 by ⎥ ⎢ 0 c θ ⎥⎢ ⎥⎢ 0 ⎥ ⎢ 0 0 1 bz ⎥ ⎢ 0 sθ ⎥⎢ ⎥⎢ 1⎦ ⎣0 0 0 1 ⎦ ⎣0 0 0 − sθ cθ 0 bx ⎤ ⎡ nx 0 by ⎥ ⎢ n y 0 ⎥⎢ bz ⎥ ⎢ nz 0 ⎥⎢ 1⎦⎣ 0 0 − sθ cθ 0 x0 ⎤ ox 0 ax 0 oy0 ay0 y0 ⎥ oz 0 az 0 z0 ⎥ 0 0 1⎦ ⎥ ⎥ 0 ⎤ ⎡ nx 0 0⎥ ⎢ ny 0 ⎥⎢ 0 ⎥ ⎢ nz 0 ⎥⎢ 1⎦ ⎣ 0 x0 ⎤ ox 0 ax0 oy0 ay0 y0 ⎥ oz 0 az 0 z0 ⎥ 0 0 1⎦ ⎥ ⎥ 강체(Point p)의 초기위치 강체(Point p)에 부착된 회전좌표계의 reference frame에 대한 초기자세 ⎥ . Then, we have x = px , y = p y , z = pz ⎥ ⎦ 강체(Point p)의 최종위치 강체(Point p)에 부착된 회전좌표계의 reference frame에 대한 최종자세 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-18 로봇공학, Chapter 2 2.5.4 회전좌표계에 대한 상대 변환 (Relative Transformation) • Robot link의 운동 → 각 link에 부착된 회전좌표계에 대한 상대운동으로 기술 • Current frame =회전좌표계(Rotating frame)에 대한 successive transformation : (예) Rot ( x, θ ) → Trans ( px , p y , pz ) → Rot ( y, φ ) → Trans (d x , d y , d z ) = Rot ( x, θ ) × Trans ( px , p y , pz ) × Rot ( y, φ ) × Trans (d x , d y , d z ) → Postmultiplying! ⎧reference ⎫ ⎧rotating ⎫ ⎧rotating ⎫ ⎧end-effector ⎫ • ⎨ ⎬ ⎯⎯→ ⎨ ⎬ ⎯⎯→ ⎨ ⎬ ⎯⎯⎯ ⎬ 0T 1T 2T → ⎨ E 1 2 ⎩ frame 0 ⎭ ⎩ frame 1⎭ ⎩frame 2 ⎭ ⎩frame E ⎭ ⇒ Reference frame{0}에 대한 end-effector{E}의 위치 및 자세 ⎡ nx ⎢n 0 TE = 0T1 1T2 2TE = ⎢ y ⎢ nz ⎢ ⎣0 px ⎤ ox ax oy ay py ⎥ oz az pz ⎥ 0 0 ⎥ ⎥ 1 ⎦ 위치(position) 자세(orientation) 2-19 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 ♦Example 2.8 Pnoa ⎡7 ⎤ = ⎢⎢ 3 ⎥⎥ ⎣⎢ 2 ⎦⎥ Pxyz = Rot (a ,900 )Trans (4, −3, 7) Rot (o ,900 ) Pnoa Rot (a ,900 ) Trans (4, −3, 7) Rot (o ,900 ) ⎡0⎤ Pxyz = ⎢⎢6 ⎥⎥ ⎢⎣0 ⎥⎦ Fig. 2.15 Transformations relative to the current(=rotating) frames. 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-20 로봇공학, Chapter 2 로봇 핸드의 위치 및 자세 • Robot hand(end-effector)의 reference frame에 대한 좌표(position/orientation) → 0Tn = 0T1 (θ1 ) 1T2 (θ 2 ) 2T3 (θ3 )" n −1Tn (θ n ) z1 θ3 z2 θ2 y2 x2 x1 z3 x3 y3 ox oy oz ax ay az 0 0 px ⎤ p y ⎥⎥ pz ⎥ ⎥ 1⎦ θn y1 yn (o ) z0 x0 ⎡ nx ⎢n 0 Tn = ⎢ y ⎢ nz ⎢ ⎣0 θ1 y0 xn (n) zn (a) 0 Tn • 주어진 θ1 ~ θ n 에 대하여 reference frame( x0 , y0 , z0 )에 대한 hand의 position: p = ( px , p y , pz )과 orientation: (n , o , a )을 구하려면 → forward kinematics. • 원하는 hand 위치: p = ( px , p y , pz )와 자세 (n , o , a )에 대하여 joint angle(θ1 ~ θ n ) 을 구하려면 → Inverse kinematics. 2-21 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 2.6 Inverse of Transformation Matrices < Fig. 2.16> U TE = U TR RTH H TE = U TP PTE U : Reference frame, R H : Hand frame, E P : Robot Base frame, : end-effector frame, : Part frame • Unknown RTH : Robot base(R)에 대한 hand(H)의 transformation → Forward kinematics로 결정됨 ( U TR ) −1 ( U TR RTH H TE )( H TE ) = ( U TR ) −1 ( U −1 TP PTE )( H TE ) → RTH = ( U TR ) −1 ( U −1 TP PTE )( H TE ) −1 = RTU ( U TP PTE ) ETH = RTH ( U TR ) = RTU , ( H TE ) = ETH −1 −1 Fig. 2.16 The Universe, robot, hand, part, and end effecter frames. 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-22 로봇공학, Chapter 2 Rotation matrix의 Inverse • Rotation matrix → orthogonal matrix! → R( x, θ ) −1 = R( x, θ )T : unitary matrix Transformation matrix의 Inverse ⎡ nx ox ⎡ R p ⎤ ⎢⎢ n y o y T =⎢ ⎥ = ⎢n o 0 1 ⎣ ⎦ z z ⎢ ⎣0 0 ⎡ px ⎤ where p = ⎢⎢ p y ⎥⎥ , n ⎢⎣ pz ⎥⎦ ax px ⎤ py ⎥ ⎡ nx − p T R ⎤ ⎢ ox ⎥=⎢ 1 ⎦ ⎢ ax ⎢ ⎣0 ⎡ RT ⎥ ⇒ T −1 = ⎢ az pz ⎥ ⎣0 ⎥ 0 1⎦ ⎡ nx ⎤ ⎡ ox ⎤ ⎡ ax ⎤ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ = ny , o = oy , a = a y ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢⎣ nz ⎥⎦ ⎢⎣ oz ⎥⎦ ⎢⎣ az ⎥⎦ ay −p ⋅n⎤ ny nz oy oz −p ⋅o⎥ ay az −p ⋅a⎥ 0 0 1 ⎥ ⎥ ⎦ 2-23 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 2.7 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(= 강체)에 hand frame(n,o,a)를 부착 • 로봇 각 링크의 parameter 값들과 주어진 joint angle에 의해 이동좌표계(n,o,a) 원점의 위치와 기준좌표계에 대한 hand 좌표계의 자세가 결정됨. Robot hand(Gripper) =end-effector o ( yn ) n( xn ) a ( zn ) 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-24 로봇공학, Chapter 2 2.7.1 Kinematic Equations for Position • Cartesian coordinates (Fig. 2.18): ( x, y, z ) ⎡1 ⎢0 R TP = ⎢ ⎢0 ⎢ ⎣0 0 0 1 0 0 1 0 0 px ⎤ p y ⎥⎥ pz ⎥ ⎥ 1⎦ A gantry robot is a Cartesian robot. • Cylindrical coordinates (Fig. 2.19): (r , α , l ) TP = Tcyl (r , α , l ) = Trans (0, 0, l ) Rot ( z , α )Trans (r , 0, 0) R ⎡1 ⎢0 = ⎢ ⎢0 ⎢ ⎣0 ⎡cα ⎢ sα = ⎢ ⎢0 ⎢ ⎣0 0 0 0 ⎤ ⎡ cα − sα 1 0 0 ⎥⎥ ⎢⎢ sα cα 0 1 l⎥⎢ 0 0 ⎥⎢ 0 0 1⎦ ⎣ 0 0 − sα 0 rcα ⎤ cα 0 rsα ⎥⎥ 0 1 l ⎥ ⎥ 0 0 1 ⎦ 0 0 ⎤ ⎡1 0 0 ⎥⎥ ⎢⎢ 0 1 0⎥ ⎢0 ⎥⎢ 0 1 ⎦ ⎣0 0 0 r⎤ 1 0 0 ⎥⎥ 0 1 0⎥ ⎥ 0 0 1⎦ 2 Linear translations and 1 rotation 2-25 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 Kinematic Equations for Position • Spherical coordinates (Fig. 2.20): (r , β , γ ) TP = Tsph (r , β , γ ) = Rot ( z , γ ) Rot ( y, β )Trans (0, 0, r ) R ⎡cγ − sγ 0 ⎢ sγ cγ 0 = ⎢ ⎢0 0 1 ⎢ 0 0 ⎣0 ⎡ C β ⋅ Cγ − S γ ⎢ C β ⋅ S γ Cγ = ⎢ ⎢ −S β 0 ⎢ 0 ⎣ 0 0 ⎤ ⎡ cβ 0 ⎥⎥ ⎢⎢ 0 0⎥ ⎢ − sβ ⎥⎢ 1⎦ ⎣ 0 S β ⋅ Cγ S β ⋅ Sγ Cβ 0 0 sβ 1 0 0 cβ 0 ⎤ ⎡1 0 ⎥⎥ ⎢⎢ 0 0⎥ ⎢0 ⎥⎢ 0 0 1 ⎦ ⎣0 rS β ⋅ Cγ ⎤ ⎥ rS β ⋅ S γ ⎥ rC β ⎥ ⎥ 1 ⎦ 0 0 0⎤ 1 0 0 ⎥⎥ 0 1 r⎥ ⎥ 0 0 1⎦ 1 Linear translation and 2 rotations • Articulated coordinates (Fig. 2.21): (θ1 , θ 2 ," ,θ n ) → 관절형 Robot의 경우: D-H 방법에 따른 transformation 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-26 로봇공학, Chapter 2 2.7.2 Kinematic Equations for Orientation 2.7.2(a) Roll-Pitch-Yaw (RPY) angles • Roll-Pitch-Yaw (RPY) angles (Fig. 2.22): (φa = φ , φo = θ , φn = ψ ) * RPY sequence of rotation about current (a, o, n) axes: Rot (a, φa ) → Rot (o, φo ) → Rot (n, φn ) : (z → y → x) :Current frame(현재의 회전좌표계)에 대한 상대회전 ♦Roll: Rotation of φa about a -axis (z-axis of the moving frame) ♦Pitch: Rotation of φo about o -axis (y-axis of the moving frame) ♦Yaw: Rotation of φn about n -axis (x-axis of the moving frame) RPY (φa , φo , φn ) = RPY (φ , θ ,ψ ) = Rot (a, φ ) Rot (o, θ ) Rot (n,ψ ) ⎡cφ ⎢ sφ = ⎢ ⎢0 ⎢ ⎣0 − sφ cφ 0 0 0 0 ⎤ ⎡ cθ 0 0 ⎥⎥ ⎢⎢ 0 1 0 ⎥ ⎢ − sθ ⎥⎢ 0 1⎦ ⎣ 0 0 sθ 1 0 0 cθ 0 0 0 ⎤ ⎡1 0 0 ⎥⎥ ⎢⎢ 0 cψ 0 ⎥ ⎢ 0 sψ ⎥⎢ 1⎦ ⎣0 0 0 − sψ cψ 0 0⎤ 0 ⎥⎥ 0⎥ ⎥ 1⎦ 2-27 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 2.7.2(a) Roll-Pitch-Yaw (RPY) angles Rot (a, φa ) Rot (o, φo ) RPY (φa , φo , φn ) = RPY (φ , θ ,ψ ) = Rot (a, φ ) Rot (o, θ ) Rot (n,ψ ) ⎡cφ cθ ⎢ sφ cθ =⎢ ⎢ − sθ ⎢ ⎣ 0 cφ sθ sψ − sφ cψ cφ sθ cψ + sφ cψ sφ sθ sψ + cφ cψ sφ sθ cψ − cφ cψ cθ sψ 0 cθ cψ 0 (2-36)식 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 0⎤ 0 ⎥⎥ 0⎥ ⎥ 1⎦ Rot (n, φn ) 2-28 로봇공학, Chapter 2 2.7.2(a) Roll-Pitch-Yaw (RPY) angles • End-effector의 desired orientation에 대하여 기준좌표계(robot base)에 대한 end-effector 좌표계의 RPY angle을 구하는 방법 RPY (φ , θ ,ψ ) = Rot (a, φ ) Rot (o,θ ) Rot (n,ψ ) ⎡cφ cθ ⎢ sφ cθ = ⎢ ⎢ − sθ ⎢ ⎣ 0 cφ sθ sψ − sφ cψ cφ sθ cψ + sφ cψ sφ sθ sψ + cφ cψ cθ sψ 0 sφ sθ cψ − cφ cψ cθ cψ 0 0⎤ ⎡ nx ⎢n 0 ⎥⎥ = ⎢ y ⎢ nz 0⎥ ⎢ ⎥ 1⎦ ⎣0 RPY angles → tan φ = ny nx , tan θ = − nz oz2 + az2 ox ax oy oz 0 ay az 0 0⎤ 0 ⎥⎥ 0⎥ ⎥ 1⎦ Direction cosines , tanψ = oz az Roll: φ = atan2(n y , nx ) θ Pitch: θ = atan2(− nz , oz2 + az2 ) o ( yn ) φ ψ a ( zn ) n( xn ) Yaw: ψ = atan2(oz , az ) 2-29 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 2.7.2(b) Euler Angles • Euler angle (Fig. 2.24): 책마다 정의가 약간씩 다름. RPY angle도 넓은 의미에서 Euler angle의 한 종류임. * Euler angle 회전순서 about current (a, o, a ) axes: Rot (a, φ ) → Rot (o, θ ) → Rot (a,ψ ) : (z → y → z ) :Current frame(현재의 회전좌표계)에 대한 상대회전 Euler (φ , θ ,ψ ) = Rot (a, φ ) Rot (o,θ ) Rot (a,ψ ) ⎡cφ ⎢ sφ = ⎢ ⎢0 ⎢ ⎣0 − sφ cφ 0 0 0 0 ⎤ ⎡ cθ 0 0 ⎥⎥ ⎢⎢ 0 1 0 ⎥ ⎢ − sθ ⎥⎢ 0 1⎦ ⎣ 0 0 sθ 1 0 0 cθ 0 0 0 ⎤ ⎡ cψ 0 ⎥⎥ ⎢⎢ sψ 0⎥ ⎢ 0 ⎥⎢ 1⎦ ⎣ 0 − sψ cψ 0 0 0 0⎤ 0 0 ⎥⎥ 1 0⎥ ⎥ 0 1⎦ = (2-43)식 (주) RPY angle의 정의만 잘 익힐 것. 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-30 로봇공학, Chapter 2 2.7.3 Forward Kinematic Equations Robot base에 부착된 Reference coord.(기준좌표계 R)가 Cartesian coord.(직교좌표 계)이고, Robot hand에 부착된 이동좌표계의 Orientation을 기준좌표계에 대한 RPY angle로 표현한다면, Robot hand의 (즉, 이동좌표계의) Base에 대한 위치(location) 및 자세(Orientation)는? TH = Tcart ( px , p y , pz ) × RPY (φ , θ ,ψ ) R ⎡1 ⎢0 = ⎢ ⎢0 ⎢ ⎣0 0 1 0 0 0 0 1 0 ⎡ cφ cθ ⎢ sφ sθ = ⎢ ⎢ − sθ ⎢ ⎣ 0 px ⎤ ⎡cφ cθ p y ⎥⎥ ⎢⎢ sφ cθ pz ⎥ ⎢ − sθ ⎥⎢ 1 ⎦⎣ 0 cφ sθ sψ − sφ cψ sφ sθ sψ + cφ cψ cθ sψ 0 cφ sθ sψ − sφ cψ sφ sθ sψ + cφ cψ cθ sψ 0 ⎡ R13×3 (주) ⎢ ⎣ 0 P13×1 ⎤ ⎡ R 23×3 ⎥⎢ 1 ⎦⎣ 0 cφ sθ cψ + sφ cψ sφ sθ cψ − cφ cψ cθ cψ 0 cφ sθ cψ + sφ cψ sφ sθ cψ − cφ cψ cθ cψ 0 P 23×1 ⎤ ⎡ R1 R 2 ⎥=⎢ 1 ⎦ ⎣ 0 p x ⎤ ⎡ nx p y ⎥⎥ ⎢⎢ n y = p z ⎥ ⎢ nz ⎥ ⎢ 1 ⎦ ⎣0 P1 + R1 P 2 ⎤ ⎥ 1 ⎦ 0⎤ 0 ⎥⎥ 0⎥ ⎥ 1⎦ ox a x oy a y oz a z 0 0 px ⎤ p y ⎥⎥ pz ⎥ ⎥ 1⎦ ( R1 = I , P 2 = 0) 2-31 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 2.8 Denavit-Hartenberg (D-H) Representation D-H representation 방법 Æ Open kinematic chain 형태 robot manipulator의 forward kinematics를 기술하기에 편리함. Manipulators Æ Succession of joints and links • Robot joint : Revolute type (rotation) or Prismatic type (translation). zn−1 link (n −1)에 부착 θ n: (n-1) link에 부착된 zn−1축에 대하여 회전 θn joint n link n의 끝단에 부착되어 link n과 같이 움직임. zn link n {xn , yn , zn } yn 좌표계 xn 관절 좌표계(joint coordinates)의 정의 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-32 로봇공학, Chapter 2 D-H Parameters Transformation between two successive frames zn − 2 to (attached link n − 2 ) zn −1 θn to (attached link n − 1 ) zn θ n −1 joint n − 1 θ n+1 link n − 1 joint n link n an an −1 to (attached link n ) dn o αn o xn θ n xn −1 • z n −1 -axis: n-th joint 의 회전방향 (revolute joint → θ n이 variable) or 직선운동 방향 (prismatic joint → d n이 variable) • x n −1 -axis: along the common normal an −1 between z n − 2 -axis & z n −1 -axis • y n −1 -axis: follows right-hand rule 2-33 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 두 관절 좌표계 사이의 변환(Transformation) • 두 좌표계 사이의 transformation: ⎡(n-1) link 좌표계⎤ ⎯⎯⎯⎯⎯⎯⎯ ⎡n-link 좌표계⎤ → θ → d → a → α n n n n ⎣⎢ {xn −1 , yn −1 , zn −1} ⎥⎦ ⎣⎢ {xn , yn , zn } ⎦⎥ Tn = Rot ( zn −1 , θ n ) × Trans (0, 0, d n ) × Trans (an , 0, 0) × Rot ( xn , α n ) n −1 θ n : x n −1축과 x n축 사이 각도 d n : z n −1축과 z n축 사이의 거리 an : x n −1축과 x n축 사이의 거리 α n : z n −1축과 z n축 사이 각도 • Rot ( zn −1 , θ n ) → x n −1축이 x n축과 평행하게 됨. • Trans (0, 0, d n ) → x n −1축과 x n축이 colinear하게 됨. • Trans ( an , 0, 0) → x n −1축의 원점이 x n축의 원점과 일치하게 됨. • Rot ( xn , α n ) → z n −1축이 z n축과 일치하게 됨. 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-34 로봇공학, Chapter 2 두 이동좌표계 사이의 Transformation Tn = An = Rot ( zn −1 , θ n ) × Trans (0, 0, d n ) × Trans (an , 0, 0) × Rot ( xn , α n ) n −1 ⎡cθ n ⎢ sθ =⎢ n ⎢ 0 ⎢ ⎣ 0 − sθ n 0 0 ⎤ ⎡1 0 0 0 ⎤ ⎡1 cθ n 0 0 ⎥⎥ ⎢⎢ 0 1 0 0 ⎥⎥ ⎢⎢ 0 0 1 0⎥ ⎢0 0 1 d n ⎥ ⎢0 ⎥⎢ ⎥⎢ 0 0 1 ⎦ ⎣0 0 0 1 ⎦ ⎣0 − sθ n 0 0 ⎤ ⎡1 0 0 ⎥ ⎢ cθ n 0 0 ⎥ ⎢ 0 cα n − sα n 0 1 d n ⎥ ⎢ 0 sα n cα n ⎥⎢ 0 0 1 ⎦ ⎣0 0 0 − sθ n cα n sθ n sα n an cθ n ⎤ cθ n cα n −cθ n sα n an sθ n ⎥⎥ sα n cα n dn ⎥ ⎥ 0 0 1 ⎦ ⎡cθ n ⎢ sθ =⎢ n ⎢ 0 ⎢ ⎣ 0 ⎡cθ n ⎢ sθ =⎢ n ⎢ 0 ⎢ ⎣ 0 0 0 an ⎤ ⎡ 1 0 1 0 0 ⎥⎥ ⎢⎢ 0 cα n 0 1 0 ⎥ ⎢ 0 sα n ⎥⎢ 0 0 1 ⎦ ⎣0 0 an ⎤ 0 ⎥⎥ 0⎥ ⎥ 1⎦ 0 − sα n cα n 0 0⎤ 0 ⎥⎥ 0⎥ ⎥ 1⎦ {n-1}좌표계 원점에 대한 {n}좌표계 원점의 거리 {n}좌표계의 {n-1}좌표계에 대한 자세 2-35 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 ㈜ D-H 변환에서 Y축으로의 이동이 필요한 경우 (PUMA560) zn − 2 to (attached link n − 2 ) zn −1 θn to (attached link n − 1 ) zn θ n −1 joint n − 1 to (attached link n ) θ n+1 link n − 1 joint n link n an dn o αn o bn xn θ n xn −1 • Rot ( zn −1 , θ n ) → x n −1축이 x n축과 평행하게 됨. • Trans (0, 0, d n ) → x n −1축과 x n축이 parallel하게 됨. • Trans ( an , 0, 0) → x n −1축과 x n축이 colinear하게 됨 (동일직선상). • Trans (0, bn , 0) → x n −1축의 원점이 x n축의 원점과 일치하게 됨 • Rot ( xn , α n ) → z n −1축이 z n축과 일치하게 됨. 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-36 로봇공학, Chapter 2 ㈜ D-H 변환에서 Y축으로의 변환이 필요한 경우 (PUMA560) • 두 좌표계 사이의 transformation: n-link 좌표계⎤ ⎡(n-1) link 좌표계⎤ ⎯⎯⎯⎯⎯⎯⎯⎯⎯ →⎡ ⎢⎣ {xn −1 , yn −1 , zn −1} ⎥⎦ θn →dn →an →bn →αn ⎢⎣ {xn , yn , zn } ⎥⎦ Tn = Rot ( zn −1 , θ n ) × Trans (0, 0, d n ) × Trans (an , 0, 0) × Trans(0, bn , 0) × Rot ( xn , α n ) n −1 θ n : x n −1축과 x n축 사이 각도, d n : z n −1축과 zn축 사이의 거리, an : x n −1축과 x n축 사이의 거리, bn : y n −1축과 y n축 사이의 거리, α n : z n −1축과 z n축 사이 각도 Tn = An = Rot ( zn −1 , θ n ) × Trans (0, 0, d n ) × Trans (an , 0, 0) × Trans (0, bn , 0) × Rot ( xn , α n ) n −1 ⎡cθ n ⎢ sθ =⎢ n ⎢ 0 ⎢ ⎣ 0 ⎡cθ n ⎢ sθ =⎢ n ⎢ 0 ⎢ ⎣ 0 − sθ n cθ n 0 0 ⎤ ⎡1 0 0 0 ⎥⎥ ⎢⎢0 1 0 1 0⎥ ⎢0 0 ⎥⎢ 0 0 1 ⎦ ⎣0 0 − sθ n cα n sθ n sα n cθ n cα n −cθ n sα n sα n cα n 0 0 0 ⎤ ⎡1 0 0 ⎥⎥ ⎢⎢ 0 1 1 d n ⎥ ⎢0 0 ⎥⎢ 0 1 ⎦ ⎣0 0 an cθ n − d n sθ n ⎤ ⎥ an sθ n + d n cθ n ⎥ ⎥ dn ⎥ 1 ⎦ 0 0 0 an ⎤ ⎡ 1 0 0 ⎥⎥ ⎢⎢0 1 0 ⎥ ⎢0 ⎥⎢ 0 1 ⎦ ⎣0 0 0 0 ⎤ ⎡1 0 1 0 bn ⎥⎥ ⎢⎢0 cα n 0 1 0 ⎥ ⎢0 sα n ⎥⎢ 0 0 1 ⎦ ⎣0 0 0 − sα n cα n 0 0⎤ 0 ⎥⎥ 0⎥ ⎥ 1⎦ 2-37 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 PUMA560 Joint # theta[i] d[i] a[i] b[i] alpha[i] 1 2 3 4 5 6 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-38 로봇공학, Chapter 2 (Robot Base Æ Hand)의 Transformation Robot base(Reference frame)에 대한 Robot hand의 위치 및 자세 TH = RT1 (q1 ) 1T2 (q2 ) 2T3 (q3 )" n −1Tn (qn ) = A1 A2 A3 " An R • variable qi = θ i : revolute joint qi = d i : prismatic joint z1 θ3 z2 θ2 y2 x2 x1 y3 θn yn ( o ) z0 θ1 y x0 x3 y1 z x z3 xn (n) zn (a) 0 y0 Tn 2-39 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 Example 2.19 (PUMA type) D-H parameters Joint # theta[i] d[i] a[i] alpha[i] 1 2 3 4 5 6 z0 x0 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon y0 z6 y6 x6 2-40 로봇공학, Chapter 2 Example 2.20 (Stanford Arm) D-H parameters Joint # theta[i] d[i] a[i] alpha[i] 1 z6 2 y6 3 4 x6 5 6 z0 x0 y0 2-41 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 2.9 Inverse Kinematic Solutions • Inverse kinematics ⎡ nx ⎢ ⎛ Given the desired location ⎞ ⎢ n y ⎜ & orientation of the robot ⎟: ⎢ n ⎝ ⎠ z ⎢ ⎣0 px ⎤ p y ⎥⎥ pz ⎥ ⎥ 1⎦ ⎛ θ (revolute joint) or ⎞ ⇒ Solve for the joint variables: ⎜ i ⎟ ⎝ di (prismatic joint) ⎠ ox oy oz 0 ax ay az 0 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. 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-42 로봇공학, Chapter 2 Ex. 2.19의 역기구학 해 • RTH = A1 (θ1 ) A2 (θ 2 ) A3 (θ 3 ) A4 (θ 4 ) A5 (θ 5 ) A6 (θ 6 ) [ RHS ] ⎡ nx ⎢n =⎢ y ⎢ nz ⎢ ⎣0 ⎡ nx ⎢ −1 n y (1) A1 ⎢ ⎢ nz ⎢ ⎣0 ox ax oy ay oz az 0 0 ox ax oy ay oz az 0 0 ⎡ nx ⎢n (2) A4−1 A3−1 A2−1 A1−1 ⎢ y ⎢ nz ⎢ ⎣0 px ⎤ ⎛ Desired orientation/location ⎞ ⎟ :⎜ of the hand {x6 , y6 , z6 } ⎟ pz ⎥ ⎜ ⎟ = {n , o , a } frame ⎥ ⎝ ⎠ 1⎦ py ⎥ ⎜ ⎥ px ⎤ py ⎥ ⎥ = A1−1[ RHS ] = A2 (θ 2 ) A3 (θ3 ) A4 (θ 4 ) A5 (θ5 ) A6 (θ 6 ) → θ1 , θ3 pz ⎥ ⎥ 1⎦ ox ax oy ay oz az 0 0 ⎡ nx ⎢n (3) A5−1 A4−1 A3−1 A2−1 A1−1 ⎢ y ⎢ nz ⎢ ⎣0 px ⎤ py ⎥ ⎥ = A4−1 A3−1 A2−1 A1−1[ RHS ] = A5 (θ5 ) A6 (θ 6 )[ RHS ] → θ5 ,θ 234 , θ 2 , θ 4 pz ⎥ ⎥ 1⎦ ox ax oy ay oz az 0 0 px ⎤ py ⎥ ⎥ = A5−1 A4−1 A3−1 A2−1 A1−1[ RHS ] = A6 (θ 6 ) → θ 6 pz ⎥ ⎥ 1⎦ 2-43 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 Ex. 2.20 (Stanford Arm)의 역기구학 해 5R-1P manipulator • RTH = A1 (θ1 ) A2 (θ 2 ) A3 (θ 3 ) A4 (θ 4 ) A5 (θ 5 ) A6 (θ 6 ) [ RHS ] ⎡ nx ⎢n =⎢ y ⎢ nz ⎢ ⎣0 ox ax oy ay oz az 0 0 px ⎤ ⎛ Desired orientation/location ⎞ ⎟ ⎥ :⎜ of the hand {x6 , y6 , z6 } ⎜ ⎟ pz ⎥ ⎜ ⎟ = {n , o , a } frame ⎥ ⎝ ⎠ 1⎦ py ⎥ (1) 1st three joints d 3 s2 ⎤ ⎡ nx ox a x p x ⎤ ⎡ ⎢n o a p ⎥ ⎢ − d 3 c2 ⎥ y y y y −1 −1 ⎢ ⎥ ⎢ ⎥ → θ1 , θ 2 , θ3 A1 A6 = A2 (θ 2 ) A3 (θ3 ) A4 (θ 4 ) A5 (θ5 ) = d2 ⎥ ⎢ nz oz a z p z ⎥ ⎢ ⎢ ⎥ ⎢ ⎥ 1 ⎦ ⎣0 0 0 1 ⎦ ⎣0 0 0 (2) last three joints ⎡ nx ox a x p x ⎤ ⎢n o a p ⎥ y y y ⎥ = [known matrix] = A4 (θ 4 ) A5 (θ5 ) A6 (θ 6 ) A3−1 A2−1 A1−1 ⎢ y ⎢ nz oz a z p z ⎥ ⎢ ⎥ ⎣0 0 0 1 ⎦ A4−1[known matrix] = A5 (θ5 ) A6 (θ 6 ) → θ 4 , θ5 , θ 6 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-44 로봇공학, Chapter 2 2.11 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를 잃는 경우) 2-45 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 2.12 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. 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-46 로봇공학, Chapter 2 Summary of Chapter 2 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 2-47 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 로봇공학, Chapter 2 [Homework #1] (200점) 예제 Example 2.1 ~ 2.20 (5점 x 20 = 100) Solve the following problems in chapter 2: (10점 x 7=70) • 2.3, 2.7, 2.9, 2.12, 2.20, 2.21, 2.22 Solve the forward/inverse kinematics of the stanford arm. (30점) • Derive the Eq. (2.58): forward kinematics • Derive the Eq. (2.78)~(2.83): inverse kinematics (Ref.) Asada and Slotine “Robot analysis and control” Due date: 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon 2-48 로봇공학, Chapter 2 H.W#1 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 TH = 0 A1 1 A2 2 A3 3 AH 0 2) Ref. frame을 Text와 같이 둘에 둘 경우 Joint # theta d a U 0 0 l1 1 theta1 0 0 90 2 0 l2 0 -90 3 theta3 0 0 90 H 0 l3 0 0 2008 Fall Semester, Robotics (School of AME, KAU) by sjkwon alpha U TH = U A0 0TH = U A0 0 A1 1 A2 2 A3 2-49