14.11 전방 재귀: 링크 가속도 전파

1. 개요

뉴턴-오일러 재귀 알고리즘의 전방 재귀에서 링크의 선가속도가 베이스에서 말단으로 전파된다. 본 절에서는 링크 가속도의 전파를 다룬다.

2. 가속도의 전파

2.1 일반 식

링크 i의 원점의 가속도는 다음과 같이 전파된다.

\mathbf{a}_i = \mathbf{R}_i^{i-1, T}[\mathbf{a}_{i-1} + \dot{\boldsymbol{\omega}}_{i-1} \times \mathbf{r}_{i-1, i} + \boldsymbol{\omega}_{i-1} \times (\boldsymbol{\omega}_{i-1} \times \mathbf{r}_{i-1, i})]

여기서

  • \mathbf{a}_{i-1}: 링크 i - 1의 가속도
  • \dot{\boldsymbol{\omega}}_{i-1}: 링크 i - 1의 각가속도
  • \boldsymbol{\omega}_{i-1}: 링크 i - 1의 각속도
  • \mathbf{r}_{i-1, i}: 좌표계 i - 1의 원점에서 좌표계 i의 원점으로의 벡터

2.2 항의 의미

  • \mathbf{a}_{i-1}: 인접 링크의 가속도
  • \dot{\boldsymbol{\omega}}_{i-1} \times \mathbf{r}_{i-1, i}: 각가속도에 의한 접선 가속도
  • \boldsymbol{\omega}_{i-1} \times (\boldsymbol{\omega}_{i-1} \times \mathbf{r}_{i-1, i}): 구심 가속도

3. 직선 관절의 추가 항

3.1 추가 항

직선 관절의 경우 다음의 항이 추가된다.

\mathbf{a}_i \mathrel{+}= \ddot d_i\hat{\mathbf{z}}_i + 2\boldsymbol{\omega}_i \times (\dot d_i\hat{\mathbf{z}}_i)

여기서

  • \ddot d_i\hat{\mathbf{z}}_i: 직선 관절의 가속도
  • 2\boldsymbol{\omega}_i \times (\dot d_i\hat{\mathbf{z}}_i): 코리올리 가속도

4. 질량 중심의 가속도

4.1 계산

링크 i의 질량 중심의 가속도는 좌표계 i의 원점의 가속도와 회전 효과로부터 계산된다.

\mathbf{a}_{c,i} = \mathbf{a}_i + \dot{\boldsymbol{\omega}}_i \times \mathbf{r}_{c,i} + \boldsymbol{\omega}_i \times (\boldsymbol{\omega}_i \times \mathbf{r}_{c,i})

여기서 \mathbf{r}_{c,i}는 좌표계 i의 원점에서 질량 중심으로의 벡터이다.

4.2 응용

질량 중심의 가속도는 후속의 후방 재귀에서 관성력 계산에 사용된다.

\mathbf{F}_i = M_i\mathbf{a}_{c,i}

5. 중력 보상

5.1 베이스의 가속도

중력의 효과는 베이스의 가속도에 추가하여 처리할 수 있다.

\mathbf{a}_0 = -\mathbf{g}

이 트릭으로 중력이 자동으로 모든 링크에 적용된다.

6. 알고리즘

ω_dot_0 = 0
a_0 = -g  (중력 보상)

for i = 1 to n:
    ω_dot_i = R^{i-1}_i^T (ω_dot_{i-1}) + ...  (관절 종류에 따라)
    
    a_i = R^{i-1}_i^T [a_{i-1} + ω_dot_{i-1} × r_{i-1,i}
                       + ω_{i-1} × (ω_{i-1} × r_{i-1,i})]
    if 직선 관절:
        a_i += d_ddot_i * z_i + 2 * ω_i × (d_dot_i * z_i)
    
    a_{c,i} = a_i + ω_dot_i × r_{c,i} + ω_i × (ω_i × r_{c,i})

7. 본 절의 의의

본 절은 전방 재귀의 링크 가속도 전파를 다루었다. 이는 동역학 계산의 핵심 단계이며, 후속의 후방 재귀에서 사용된다.

8. 참고 문헌

  • Luh, J. Y. S., Walker, M. W., & Paul, R. P. (1980). “On-line computational scheme for mechanical manipulators.” Journal of Dynamic Systems, Measurement, and Control, 102(2), 69–76.
  • Featherstone, R. (2008). Rigid Body Dynamics Algorithms. Springer.
  • Spong, M. W., Hutchinson, S., & Vidyasagar, M. (2020). Robot Modeling and Control (2nd ed.). Wiley.

version: 1.0