14.16 뉴턴-오일러 재귀 역동역학 알고리즘의 구조
1. 개요
뉴턴-오일러 재귀 역동역학 알고리즘은 매니퓰레이터의 역동역학(주어진 운동에 필요한 토크 계산) 문제를 효율적으로 푸는 알고리즘이다. 본 절에서는 알고리즘의 전체적 구조를 다룬다.
2. 알고리즘의 구조
2.1 입력
- 관절 변수 \mathbf{q}
- 관절 속도 \dot{\mathbf{q}}
- 관절 가속도 \ddot{\mathbf{q}}
- 외부 부하 (있다면)
2.2 출력
- 관절 토크 \boldsymbol{\tau}
2.3 두 단계
알고리즘은 두 단계로 구성된다.
- 전방 재귀: 운동학적 양 (속도, 가속도) 전파
- 후방 재귀: 동역학적 양 (힘, 토크) 전파
3. 전체 알고리즘
// 전방 재귀
ω_0 = 0, ω_dot_0 = 0, a_0 = -g
for i = 1 to n:
// 각속도와 각가속도
if 회전 관절:
ω_i = R^{i-1}_i^T ω_{i-1} + q_dot_i * z_i
ω_dot_i = R^{i-1}_i^T ω_dot_{i-1} + q_ddot_i * z_i
+ (R^{i-1}_i^T ω_{i-1}) × (q_dot_i * z_i)
else if 직선 관절:
ω_i = R^{i-1}_i^T ω_{i-1}
ω_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})
// 후방 재귀
f_{n+1} = 외부 힘
τ_{n+1} = 외부 토크
for i = n to 1:
// 관성력과 관성 모멘트
F_i = M_i * a_{c,i}
N_i = I_{c,i} * ω_dot_i + ω_i × (I_{c,i} * ω_i)
// 힘과 토크의 전파
f_i = R^i_{i+1} * f_{i+1} + F_i
τ_i = R^i_{i+1} * τ_{i+1} + N_i + r_{c,i} × F_i
+ r_{i,i+1} × (R^i_{i+1} * f_{i+1})
// 관절 토크
if 회전 관절:
tau_joint_i = τ_i^T * z_i
else if 직선 관절:
tau_joint_i = f_i^T * z_i
return tau_joint
4. 알고리즘의 특징
4.1 효율성
알고리즘의 시간 복잡도는 O(n)이다 (n은 자유도). 매우 효율적이다.
4.2 정확성
운동 방정식의 정확한 해를 산출한다. 근사가 없다.
4.3 일반성
회전 관절과 직선 관절 모두 처리한다. 다양한 매니퓰레이터 구조에 적용 가능하다.
5. 응용
5.1 실시간 제어
계산 토크 제어 등 실시간 제어 알고리즘에서 사용된다.
5.2 시뮬레이션
매니퓰레이터의 시뮬레이션에서 토크 계산에 사용된다.
5.3 매개변수 식별
매개변수 식별 실험에서 측정된 운동에 대한 예상 토크를 계산한다.
6. 본 절의 의의
본 절은 뉴턴-오일러 재귀 역동역학 알고리즘의 구조를 종합적으로 다루었다. 이 알고리즘은 매니퓰레이터 동역학 계산의 표준이며, 효율성과 정확성에서 우수하다.
7. 참고 문헌
- 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.
- Murray, R. M., Li, Z., & Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manipulation. CRC Press.
version: 1.0