14.18 순동역학 문제의 정의와 해법
1. 개요
순동역학 문제(forward dynamics problem)는 주어진 관절 토크에서 매니퓰레이터의 가속도를 계산하는 문제이다. 이는 시뮬레이션과 운동 분석에 사용된다. 본 절에서는 순동역학 문제의 정의와 주요 해법을 다룬다.
2. 순동역학 문제의 정의
2.1 입력과 출력
- 입력: 관절 변수 \mathbf{q}, 관절 속도 \dot{\mathbf{q}}, 관절 토크 \boldsymbol{\tau}
- 출력: 관절 가속도 \ddot{\mathbf{q}}
2.2 운동 방정식
매니퓰레이터의 운동 방정식은 다음과 같다.
\mathbf{M}(\mathbf{q})\ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) = \boldsymbol{\tau}
순동역학은 이 식을 \ddot{\mathbf{q}}에 대해 풀어야 한다.
2.3 해
해는 다음과 같이 표현된다.
\ddot{\mathbf{q}} = \mathbf{M}^{-1}(\mathbf{q})[\boldsymbol{\tau} - \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}} - \mathbf{g}(\mathbf{q})]
3. 해법
3.1 직접 방법
직접 방법은 운동 방정식을 명시적으로 유도하고 위의 식으로 푼다. 단점은 관성 행렬의 명시적 계산과 역행렬 계산이 비효율적이라는 것이다.
3.2 합성 강체 알고리즘
합성 강체 알고리즘(Composite Rigid Body Algorithm, CRBA)은 관성 행렬을 효율적으로 계산한다. 시간 복잡도는 O(n^2)이다.
3.3 절차
- CRBA로 관성 행렬 \mathbf{M}(\mathbf{q}) 계산
- 뉴턴-오일러 재귀로 \mathbf{C}\dot{\mathbf{q}} + \mathbf{g} 계산 (가속도를 0으로 설정하고 호출)
- 선형 시스템을 풀어 \ddot{\mathbf{q}} 계산
3.4 시간 복잡도
이 방법의 시간 복잡도는 O(n^3)이다. 선형 시스템 풀이가 O(n^3)이기 때문이다.
4. 관절 공간 관성 행렬 알고리즘
4.1 Articulated Body Algorithm (ABA)
Featherstone의 ABA(Articulated Body Algorithm)는 순동역학을 O(n) 시간에 계산한다. 가장 효율적인 알고리즘이다.
4.2 원리
ABA는 각 관절의 관성을 articulated body inertia로 변환하여 재귀적으로 계산한다. 자세한 내용은 별도의 절에서 다룬다.
4.3 적용
ABA는 큰 자유도의 매니퓰레이터(예: 인간형 로봇)에 특히 효과적이다.
5. 응용
5.1 시뮬레이션
매니퓰레이터의 시뮬레이션에서 순동역학이 사용된다. 매 시간 단계마다 가속도가 계산되고 적분된다.
5.2 운동 계획
운동 계획 알고리즘에서 시뮬레이션이 필요하면 순동역학이 사용된다.
5.3 모델 예측 제어
모델 예측 제어(MPC)에서 미래 상태의 예측에 순동역학이 활용된다.
6. 본 절의 의의
본 절은 순동역학 문제의 정의와 해법을 다루었다. 순동역학은 시뮬레이션과 운동 분석의 기초이며, 효율적인 알고리즘이 다양한 응용을 가능하게 한다.
7. 참고 문헌
- Featherstone, R. (2008). Rigid Body Dynamics Algorithms. Springer.
- Walker, M. W., & Orin, D. E. (1982). “Efficient dynamic computer simulation of robotic mechanisms.” Journal of Dynamic Systems, Measurement, and Control, 104(3), 205–211.
- Spong, M. W., Hutchinson, S., & Vidyasagar, M. (2020). Robot Modeling and Control (2nd ed.). Wiley.
version: 1.0