mindstorms_with_matlab_logo.png



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

Robot Dynamics 계속입니다. ^^

바로 강의 시작하겠습니다.


말씀 드렸듯이 Robot Dynamics를 풀기 위한 방법에는 크게 작용반작용의 원리를 이용한 Newton-Euler Method(N-E Method)와

Energy 관점에서 풀어나가는 Euler-Lagrangian Method(E-L Method)가 있습니다.


dynamics0203.png


Lagrangian mechanics를 이용하면 완벽한 형태의 closed form의 운동방정식을 유도할 수 있지만 

식을 유도하는 데에 많은 시간이 들고 이번시간에 다루는 Newton-Euler 방법보다 연산량이 상대적으로 많습니다.

반면 Newton-Euler 방법을 사용하게 되면 계산을 위해 유도된 식이 컴퓨터로 프로그래밍하게에 적합한 형태를 띕니다.

(ODE를 직접 풀지 않고 그냥 for문 돌리면 된다는 말씀)

또한 Lagrangian 방법보다 Newton-Euler 방법이 상대적으로 연산량이 적으므로 

실시간 Inverse Dynamics를 위한 토크 계산에 Newton-Euler 방법이 매우 유리합니다. 


강의를 본격적으로 진행하기 전에 우선 일반물리나 동역학 과목에서 배우셨던 것들을 간단히 remind, 정리하고 넘어 가죠. ^^


 dynamics0201.png

기억이 나시나요? o(^o^)o

Force/Torque 부분을 좀더 자세히 풀어서 써보면...


 dynamics0202.png


(추억이 새록새록) 가속도와 각가속도에 대해서 위의 식처럼 쓸 수 있구요~ ^^

회전에 저항하는 회전관성 Moment of Inertia I 는 아래처럼 됩니다.

dynamics0204.png

xy나 yx는 같으므로 적분을 수행한 Ixy와 Iyx는 같습니다. 나머지 Iyz = Izy, Ixz = Izx 도 동일한 이유로 같습니다.

만약 Ixy = Iyz = Izx = 0 이라면 Moment of Inertia I는 대각선 성분 Ixx Iyy Izz만 남고 모두 0이 되구요

이 때  Ixx Iyy Izz를 principal inertia라고 부릅니다.

Inertia of Momentum의 대각선 성분만 남게 하는 좌표를 principal axes라고 그러구요~ 

전후 상하 좌우가 모두 대칭이면 I가 위와 같은 대각선 형태로 나타납니다요 ^^


회전축과 무게중심(Center of Mass)이 일치하지 않으면 평행축정리(Parallel Axis Theorem)으로 간단히 회전축에 대한 I를 새로 계산할 수 있습니다.


dynamics0205.png


위의 식에서 M은 질량이구요 d는 회전축과 무게중심간의 거리입니다.

자~ 본격적으로 Link로 연결되어 있는 Robot을 살펴보겠습니다. o(^o^)o


dynamics0207.png

위의 그림에서 f1,2는 Link1이 Link2에 가해주는 힘입니다. N1,2는 Link1이 Link2에 가해주는 토크(torque)이구요~

그럼 f3,2는?? 넵 Link3이 Link2에 가해주는 힘이겠죠? ^^ 

Newton의 작용반작용의 법칙으로 Link3가 Link2에 가해주는 힘은 Link2가 Link3에 가해주는 힘과 크기는 같고 방향은 반대의 힘이 됩니다.

즉 f3,2는 -f2,3이란 말이죠~ Torque의 경우도 마찬 가지로 N3,2는 -N2,3과 같습니다. 이해가시죠?

r1,CM2는 Joint1에서 바라본 Link2의 무게중심의 위치입니다.


Force/Torque 식과 비교를 해보면



dynamics0208.png


위와 같이 식을 유도할 수 있습니다.

i 번째 Link에 대해서 식을 세우시려면 위의 식에서 1= (i-1), 2 = i, 3 = (i+1) 로 각각 바꾸시면 일반적인 식이 됩니다.


dynamics0209.png  


Forward Kinematics를 이용하면 각 Link의 무게중심에 대한 속도, 가속도, 각속도, 각가속도를 계산할 수 있고

계산되어진 속도, 가속도를 위에서 유도한 동역식에 대입하여 각 Link의 원하는 (각)가속도를 얻기위한 torque를 계산할 수 있습니다.

Base Link로부터 End-effector Link까지 차례대로 순차적으로 속도, 가속도를 계산하는 과정을 Forward Recursion이라고 그러구요

(Link2의 무게중심에 대한 (각)속도, (각)가속도를 계산하기 위해서는 우선 Link1의 (각)속도,(각)가속도가 필요합니다.)

반대로 End-effector부터 Base까지 돌아오면서 각 Joint의 coupling force, moment, torque를 계산하는 과정을 Backward Recursion이라고 합니다.


Newton-Euler method가 대충 어떻게 굴러가는지 감이 잡히시나요? ^^

Forward Recursion -> Backward Recursion -> Forward Recursion -> Backward Recursion -> ... 의 순서로 번갈아가며 계속 뱅글뱅글 돌면서 

값들을 update하는 거죠~ 


아! 그러고보니 가속도에 대한 이야기를 안했네요 ;; 냠..

Linear velocity와 Angular velocity는 Jacobian을 이용하면 바로 구하실 수 있구요~


dynamics0210.png


가속도와 각가속도는 p'을 시간에 대해 한번더 미분하면 되겠죠? o(^o^)o

Cross Product 형식으로 나타내면 아래처럼 정리할 수 있습니다.

dynamics0211.png

위의 식에서 θ는 Joint 각도이구요 ω는 Reference 프레임(base frame)에서 바라본 Joint의 각속도 입니다.

z에 모자를 씌운 녀석은 회전축의 방향이다~ 이말입습죠.

v는 Reference frame에서 바라본 Joint의 속도, vcm은 Reference frame에서 바라본 무게중심(Center of Mass)의 속도입니다.

r1,cm2는  Joint 1에서 바라본 Link 2의 무게중심의 위치이구요~ 


회전과 관련된 속도와 가속도에 관한 그림를 첨부 할테니 참고하세요~ ^^

(아~ 친절한 금자씨교주!!)

dynamics0206.png

(위의 그림은 Constant angular velocity(등각속도)의 경우를 나타내고 있습니다.)



자~ Robotics에서 여러운 고비 하나를 넘어 왔습니다. =(=^ㅅ^=)=

다음 시간에 뵙겠습니다.

이만 총총...

profile