mindstorms_with_matlab_logo.png



안녕하세요? 교주 LGS입니다.

이번 강좌는 Lagrange Mechanics의 보충강좌입니다.

강좌 바로 시작하도록 하겠습니다.


dynamics0301.png


Lagrange equation에서 Kinetic energy는 위치(q)와 속도(q')의 함수이지만 Potential Energy는 단지 위치(q)만의 함수이므로

위의 Lagrangian을 다시 써보면 아래처럼 쓸 수 있습니다.


dynamics0302.png


Lagrangian을 모두 계산, 전개하면 다시 M,V,G의 항으로 정리할 수 있어요.

M,V,G 항으로 나타내진 식을 Robotics에서는 Manipulator Equation 이라고 합니다.

Manipulator Equation은 Robot 동력학을 해석하는 매우 강력한 도구입니다.

지금부터 M (mass + inertia), V (centrifugal + Coriolis),  G (gravity) 각각에 대해서 자세히 알아보겠습니다.

M(q)부터 뜯어봅시다요~ 고고씽~ o(^o^)o


dynamics0303.png


Kinetic Energy는 Translation(직선운동)과 Rotational(회전운동) Kinetic energy의 합이죠?

vc(무게중심의 속도)와 각속도를 각각 Homogeneous Transformation Matrix로부터 Jacobian matrix를 구하여 계산할 수 있으므로

M matrix(mass matrix)를 위와 같이 position Jacobian의 곱과 [orientation Jacobian과 Inertia matrix의 곱]의 합으로 유도할 수 있습니다..

질량은 항상 (+)양의 값을 가지므로 M matrix는 positive definite이고 항상 역행렬(inverse matrix)가 존재합니다.

작용 반작용의 관계를 생각한다면 M matrix는 항상 Symmetric(대각선을 중심으로 대칭) matrix가 됩니다. 즉 m12 == m21 입니다.


다음으로 V 항에 대해서 자세히 살펴보겠습니다.

K= 1/2(q'TMq')을 Lagrange equation에 넣고 전개하면 최종적으로 아래의 식을 얻을 수 있습니다.

dynamics0304.png


무슨 말인지 감이 잘 잡히지 않습니다. 예를 가지고 직접 해보도록 하죠~

M을 2x2 matrix라고 가정하고 위의 식의 M'q' 부분을 전개해보면...


 dynamics0305.png

위의 식을 얻을 수 있습니다.

수식이 길고 복잡해 보여도 간단한 편미분의 반복이므로 여려운 것은 전혀~ 없죠? ^^

아 그리고 m111과 같은 notation은 (이미 눈치 채셨겠지만 ^^) m11을 q1으로 편미분한 녀석을 나타냅니다.

m212는 m21을 q2로 편미분한 녀석을 나타내구요.

자~ V(q,q')의 나머지 부분도 전개해보겠습니다요~ 


dynamics0306.png

역시 어려운 건 없구요~ 모두 전개하신 후 마지막에 Mass matrix M은 대각선에 대해서 대칭(symmetric matrix)이니까 m12 = m21이겠죠?

그러므로 m121이나 m211이나 같은 녀석입니다. 1행을 보면 m121+m211 = 2m121이니까 앞의1/2이 사라지고 간단하게 m121으로 정리할 수 있습니다.

마지막으로 위에서 구한 식과 M'q'을 합쳐보면...


dynamics0307.png


위의 식처럼 쓸 수 있습니다.

그런데 위의 식을 잘 잘 보시면 일정한 패턴이 있습니다. ^^ 찾아내셨나요?

좀더 찾기 쉬운 형태로 바꿔보겠습니다.


dynamics0308.png


자~ 규칙을 찾으셨나요? o(^o^)o  (규칙을 찾으셨다면 당신은 진정한 천재~ )

한마디로 말하자면 Christoffel Symbols로 요약할 수 있습니다.

bijk를 아래와 같이 정의하면 V term이 깔끔하게 matrix 형태로 정리되구요~ 

dynamics0309.png


위의 식에서 q^2과 관련된 항은 Centrifugal force(원심력)을 나타내고 q1'q2' 항은 Coriolis force를 나타냅니다요~

2 x 2 M matrix를 n x n으로 확장하면 아래와 같이 됩니다.


dynamics0310.png  


C,와 B matrix를 각각 Centrifugal force(원심력) matrix, Coriolis force(코리올리 힘) matrix라고 부릅니다.

C matrix의 크기는?? 어떻게 되나요? 넵 잘하셨어요~ o(^o^)o generalized coordinate인 q가 nx1이므로 q'^2도 n개 있구요

그러므로 size(C) = [n x n] 이 되겠네요~ (square matrix)

[q'q']의 크기는?? 다시말해  (예를 들어) q1',q2',q3',q4',q5',q6' 에서 중복되지 않고 2개를 뽑는 방법은 몇가지 인가요?

넵 고등학교 수학입니다요~ ^^ 5*6/2 즉 (n-1)n/2죠? ㅋ

마찬가지로 size(B) = [ n x (n-1)n/2]로 쉽게 구하실 수 있을 거구요~


자~ 진짜 마자막으로 G (gravity) 항을 뜹어 봅시다.

Gravity 항은 정말 간단해요 ^^


dynamics0311.png


쉬우니까 설명이 굳이 필요없을 것 같구요 ㅎㅎ

최종적으로 식으 다시 정리해 봅시다.


dynamics0312.png

자~ 이제 위의 식이 눈에 들어오시나요? ^^

강의 초반에도 말씀 드렸지만 위의 Manipulation equation은 정말 강력한 도구입니다.

비단 Robotics 뿐만 아니라 일반적인 동력학 문제에서도 굉장한 힘을 발휘합니다요~

Manipulator equation 잘 익혀두시면 좋타!! 두번 좋타!! 이 말씀입습죠 ㅎㅎ




이번 강좌는 여기서 끄읏~ =(=^ㅅ^=)=

다음 시간에 뵙겠습니다. 뿅~!!

profile