Dynamics and Inverse dynamics
로봇 동역학은 매니퓰레이터에 작용하는 힘/토크들과 관절 가속도 간의 관계를 기술 한 것입니다.
용도에 따라서 다음과 같이 2가지로 구분됩니다.
- 순동역학 (forward dynamics or direct dynamics) : 주어진 입력 힘/토크에 대해서 로봇 운동 관절의 가속도를 산출하는 것.
부가적으로 수치적분 알고리즘을 적용하여 로봇 운동관절의 속도/위치 정도까지도 확정하여 얻는 과정을 포함하여 forward dynamics라고 한다. - 역동역학 (inverse dynamics) : 주어진 운동 관절의 가속도 정보로 부터 로봇의 힘/토크를 산출하는 것.
이를 확장하여 로봇 운동관절의 위치/속도/가속도가 주어져 있을 때, 상응하는 로봇 힘/토크를 대수적으로 계산하는 과정을 inverse dynamics이라 한다.
즉,
Forward dynamics는 torque/force $\rightarrow$ joint pos/vel ($q, \dot{q}$)정보를 얻는 과정이므로, 일반적으로 로봇 시뮬레이션을 구현할 때 주로 활용됩니다.
Inverse dynamics는 로봇 위치제어, 힘 제어, 궤적 생성 및 최적화 등과 같은 다양한 목적으로 사용 되고 있습니다.
Inverse dynamics
실제 로봇 제어를 할 때, 많이 쓰이는 알고리즘이 Inverse dynamics 이기 때문에 Forward dynamics 보다 먼저 살펴보고자 합니다.
로봇 동역학 식을 다시 살펴 보겠습니다.
* 이때,
$J(q)$는 매니퓰레이터 자코비안 입니다.
$f_{ext}$는 외부에서 로봇의 말단에 인가되는 힘/모멘트 벡터입니다.
이러한 inverse dynamics의 핵심은 관성행렬($M(q)$)과 비선형 토크벡터($\eta(q, \dot{q}, f_{ext})$)를 찾는 것입니다.
본 과정은 뉴턴-오일러 방식으로 접근할 경우, 식 (2.40) - (2.45)을 통해 산출되는 알고리즘 출력 $\tau_i$를 통해서 입력 조건들을 바꾸어가면서 얻을 수 있다.
로봇 동역학 모델 식 (2.57)에서 가속도 정보는 관성행렬의 역행렬을 이용하여 얻을 수 있습니다.
식 (2.58)을 2n차원의 상태변수로 확장하여 정의하면 ($x\triangleq[q^T, \dot{q}^T\in\Re^{2n}]$) 다음과 같은 비선형 상미분 방정식을 구할 수 있습니다. 1
외력을 측정하여 이미 알고 있다고 가정하고, 제어입력을 상태변수의 함수로 가정하면, 식 (2.59)를 $\dot{x}=f(x)$로 정리할 수 있습니다.
하지만 식 (2.59)를 해석적으로 풀어서 해를 구하는 것은 거의 불가능에 가까우므로, 수치 적분을 활용하여 근사해를 얻는 방법을 쓰게 됩니다. 결국 아래와 같은 오일러 적분을 적용하면,
식 (2.60)에서 살펴보면, $\triangle T$는 sampling time을 의미하며 결국 시간 $t$에서 $\triangle T$시간 후의 상태변수의 근사 값을 얻게 되는 것입니다.
물론, 식의 결과 값에 표기된 바와 같이 오차가 존재할 수 있지만 실제 제어할 때 최대한 $\triangle T$를 작게 가져가도록 노력해야 함을 알 수 있습니다.
이러한 오일러 적분 법의 단점을 보완 한 것이 룬게-쿠타(Runge-Kutta) 적분법입니다.
이를 통해 매우 정확하게 미분방정식의 근사 해를 얻을 수 있습니다.
본 알고리즘을 이용하는 방법에 대한 구체적인 예가 아래에 제시되어 있습니다.
이러한 Runge-Kutta법의 해는 $O(\triangle T^3)$에 비례하여 정확성을 가지는 것으로 알려져 있습니다.
즉, sampling time을 줄일수록 오차는 급격하게 줄어드는 것 입니다.
이상입니다.
* 본 글은 "실험로보틱스 교재 I(매니퓰래이션 및 비젼), 한국로봇학회, 제어로봇시스템학회, 한국로봇산업진흥원 "의 내용을 공부하면서 정리한 내용을 포스팅 한 것 입니다.
- $\triangleq$ : 정의하다, $\Re$: 실수 부 [본문으로]
'Robot Theory > Manipulator Theory' 카테고리의 다른 글
궤적 생성 방법 (0) | 2022.08.29 |
---|---|
동역학 파라미터들에 관한 선형 동역학 (0) | 2022.08.14 |
동역학 - 뉴턴 오일러 운동방정식 3 (0) | 2022.07.12 |
동역학 - 뉴턴 오일러 운동방정식 2 (0) | 2022.07.04 |
동역학 - 뉴턴 오일러 운동방정식 1 (0) | 2022.06.16 |