15.25 직렬 매니퓰레이터의 라그랑주 동역학 모델링
1. 개요
직렬 매니퓰레이터의 라그랑주 동역학 모델링은 운동 에너지와 위치 에너지를 일반화 좌표의 함수로 표현한 후 라그랑주 방정식을 적용하여 동역학 방정식을 유도하는 절차이다. 본 절에서는 직렬 매니퓰레이터의 라그랑주 동역학 모델링 절차를 자세히 다룬다.
2. 모델링 절차
2.1 단계 요약
직렬 매니퓰레이터의 라그랑주 동역학 모델링은 다음의 단계로 진행된다.
- 운동학 모형의 정의 (좌표계, 디나비트-하르텐베르크 매개 변수)
- 각 링크의 질량 중심 위치와 방향의 계산
- 자코비안의 계산 (선속도와 각속도)
- 운동 에너지의 계산
- 위치 에너지의 계산
- 라그랑지언의 형성
- 라그랑주 방정식의 적용
3. 운동학 모형
3.1 좌표계
각 링크에 대해 좌표계 \{i\}가 정의된다. 디나비트-하르텐베르크(DH) 표기법이 일반적으로 사용된다.
3.2 동차 변환
좌표계 \{i-1\}에서 \{i\}로의 변환은 다음의 동차 변환으로 표현된다.
{}^{i-1}\mathbf{T}_i = \begin{bmatrix} {}^{i-1}\mathbf{R}_i & {}^{i-1}\mathbf{p}_i \\ \mathbf{0}^T & 1 \end{bmatrix}
3.3 누적 변환
기저 좌표계 \{0\}에서 좌표계 \{i\}로의 누적 변환은
{}^{0}\mathbf{T}_i = {}^{0}\mathbf{T}_1 {}^{1}\mathbf{T}_2 \cdots {}^{i-1}\mathbf{T}_i
4. 질량 중심의 위치
4.1 정의
각 링크의 질량 중심 위치는 그 링크의 좌표계에서 정의되고 기저 좌표계로 변환된다.
{}^{0}\mathbf{r}_{c,i} = {}^{0}\mathbf{T}_i \cdot {}^{i}\mathbf{r}_{c,i}
여기서 {}^{i}\mathbf{r}_{c,i}는 링크 i의 좌표계에서의 질량 중심 위치이다.
4.2 자세
각 링크의 자세는 회전 행렬 {}^{0}\mathbf{R}_i로 표현된다.
5. 자코비안의 계산
5.1 선속도 자코비안
링크 i의 질량 중심의 선속도 자코비안은 다음과 같이 계산된다.
\mathbf{J}_{v,i}(\mathbf{q}) = \frac{\partial {}^{0}\mathbf{r}_{c,i}}{\partial \mathbf{q}}
또는 운동학적 사슬을 따라 계산할 수 있다.
회전 관절 j의 경우 (j \leq i)
\mathbf{J}_{v,i}^{(j)} = {}^{0}\mathbf{z}_{j-1} \times ({}^{0}\mathbf{r}_{c,i} - {}^{0}\mathbf{r}_{j-1})
직선 관절 j의 경우
\mathbf{J}_{v,i}^{(j)} = {}^{0}\mathbf{z}_{j-1}
5.2 각속도 자코비안
링크 i의 각속도 자코비안은 다음과 같다.
회전 관절 j의 경우
\mathbf{J}_{\omega,i}^{(j)} = {}^{0}\mathbf{z}_{j-1}
직선 관절 j의 경우
\mathbf{J}_{\omega,i}^{(j)} = \mathbf{0}
5.3 영향 범위
관절 j > i는 링크 i에 영향을 주지 않으므로 그에 대응하는 자코비안 열은 0이다.
6. 운동 에너지의 계산
6.1 링크별 운동 에너지
각 링크의 운동 에너지는 병진 운동 에너지와 회전 운동 에너지의 합이다.
T_i = \frac{1}{2}m_i (\mathbf{J}_{v,i}\dot{\mathbf{q}})^T(\mathbf{J}_{v,i}\dot{\mathbf{q}}) + \frac{1}{2}(\mathbf{J}_{\omega,i}\dot{\mathbf{q}})^T \bar{\mathbf{I}}_i (\mathbf{J}_{\omega,i}\dot{\mathbf{q}})
여기서 \bar{\mathbf{I}}_i = \mathbf{R}_i\mathbf{I}_i\mathbf{R}_i^T는 기저 좌표계에서 표현된 관성 텐서이다.
6.2 총 운동 에너지
T = \sum_{i=1}^{n}T_i = \frac{1}{2}\dot{\mathbf{q}}^T\mathbf{M}(\mathbf{q})\dot{\mathbf{q}}
여기서
\mathbf{M}(\mathbf{q}) = \sum_{i=1}^{n}(m_i\mathbf{J}_{v,i}^T\mathbf{J}_{v,i} + \mathbf{J}_{\omega,i}^T\bar{\mathbf{I}}_i\mathbf{J}_{\omega,i})
7. 위치 에너지의 계산
7.1 중력 위치 에너지
매니퓰레이터의 위치 에너지는 일반적으로 중력 위치 에너지가 지배적이다.
U(\mathbf{q}) = -\sum_{i=1}^{n}m_i \mathbf{g}_0^T {}^{0}\mathbf{r}_{c,i}(\mathbf{q})
여기서 \mathbf{g}_0는 중력 가속도 벡터이다.
8. 라그랑지언과 운동 방정식
8.1 라그랑지언
L(\mathbf{q}, \dot{\mathbf{q}}) = T(\mathbf{q}, \dot{\mathbf{q}}) - U(\mathbf{q})
8.2 라그랑주 방정식의 적용
각 일반화 좌표에 대해 라그랑주 방정식을 적용하면 동역학 방정식이 얻어진다.
\frac{d}{dt}\frac{\partial L}{\partial \dot{q}_i} - \frac{\partial L}{\partial q_i} = \tau_i
8.3 표준 형식
결과는 다음의 표준 형식이다.
\mathbf{M}(\mathbf{q})\ddot{\mathbf{q}} + \mathbf{C}(\mathbf{q}, \dot{\mathbf{q}})\dot{\mathbf{q}} + \mathbf{g}(\mathbf{q}) = \boldsymbol{\tau}
9. 모델링의 검증
9.1 대칭성
관성 행렬이 대칭임을 확인한다.
9.2 양정치성
관성 행렬이 양정행렬임을 확인한다.
9.3 차원
각 항의 차원이 일관됨을 확인한다.
9.4 단위 시험
특수한 경우(예: 정지 상태, 단순 운동)에서 결과가 예상과 일치하는지 확인한다.
10. 자동화 도구
10.1 기호 계산
기호 계산 도구(SymPy, Mathematica, Maple)를 사용하여 라그랑지언과 운동 방정식을 자동으로 유도할 수 있다.
10.2 코드 생성
자동 생성된 운동 방정식을 효율적인 코드로 변환할 수 있다.
10.3 라이브러리
매니퓰레이터 동역학 라이브러리(Pinocchio, RBDL, KDL 등)는 라그랑주 동역학을 효율적으로 계산한다.
11. 본 절의 의의
본 절은 직렬 매니퓰레이터의 라그랑주 동역학 모델링 절차를 다루었다. 이 절차는 매니퓰레이터의 정확한 동역학 모형 도출의 표준 방법이다.
12. 참고 문헌
- 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.
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2010). Robotics: Modelling, Planning and Control. Springer.
- Featherstone, R. (2008). Rigid Body Dynamics Algorithms. Springer.
version: 1.0