39.3 질량 행렬의 구성과 계산 복잡도

질량 행렬(관성 행렬)의 구성과 효율적 계산은 로봇 동역학의 실시간 구현에 핵심적이다. 다양한 알고리즘이 개발되어 있으며, 각각 다른 계산 복잡도와 특성을 가진다. 본 절에서는 질량 행렬의 구성과 계산 복잡도를 학술적으로 다룬다.

1. 질량 행렬의 의미

1.1 정의

운동 에너지 T = \frac{1}{2}\dot{\vec{q}}^\top \mathbf{M} \dot{\vec{q}}의 이차 형식 행렬이다.

1.2 대칭·양의 정부호

대칭이고 양의 정부호이다.

1.3 구성 의존

관절 구성에 의존한다.

2. 직접 구성 방법

2.1 자코비안 기반

각 링크의 자코비안을 활용한다.

\mathbf{M} = \sum_{i=1}^n [m_i \mathbf{J}_{v_i}^\top \mathbf{J}_{v_i} + \mathbf{J}_{\omega_i}^\top \mathbf{I}_i \mathbf{J}_{\omega_i}]

39.3.2.2 공식

병진과 회전 기여를 합산한다.

39.3.2.3 복잡도

직접 계산은 O(n^3)이다.

39.3.3 CRBA

39.3.3.1 Composite Rigid Body Algorithm

O(n^2) 복잡도의 효율적 알고리즘이다.

39.3.3.2 복합 강체 관성

복합 강체의 관성을 재귀적으로 계산한다.

39.3.3.3 Walker-Orin

Walker와 Orin이 학술적으로 확립했다.

39.3.4 CRBA 알고리즘

39.3.4.1 복합 관성 계산

복합 강체의 관성을 재귀적으로 계산한다.

39.3.4.2 질량 행렬 원소

복합 관성으로부터 질량 행렬 원소를 계산한다.

39.3.4.3 효율성

O(n^2)로 매우 효율적이다.

39.3.5 공간 벡터 형식

39.3.5.1 통합 표현

선속도와 각속도를 6-벡터로 통합한다.

39.3.5.2 공간 관성

공간 관성이 6 \times 6 행렬이다.

39.3.5.3 계산 효율

공간 벡터 형식이 효율적이다.

39.3.6 파라미터 선형화

39.3.6.1 선형 특성

질량 행렬이 파라미터에 대해 선형이다.

39.3.6.2 회귀 행렬

회귀 행렬(regressor matrix)로 분해된다.

39.3.6.3 파라미터 식별

식별에 활용된다.

39.3.7 심볼릭 최적화

39.3.7.1 사전 계산

심볼릭 유도로 상수 부분을 사전 계산한다.

39.3.7.2 코드 생성

최적화된 코드를 자동 생성한다.

39.3.7.3 실행 속도

실행 속도를 크게 향상시킨다.

39.3.8 복잡도 비교

39.3.8.1 직접 계산

O(n^3) 복잡도이다.

39.3.8.2 CRBA

O(n^2) 복잡도로 개선된다.

39.3.8.3 실무적 영향

n이 클수록 차이가 크다.

39.3.9 실무적 구현

39.3.9.1 소프트웨어 라이브러리

Pinocchio, RBDL 등의 라이브러리가 구현을 제공한다.

39.3.9.2 하드웨어 활용

SIMD, GPU 등의 활용이 가능하다.

39.3.9.3 실시간 성능

실시간 제어 루프에서 활용된다.

39.3.10 학술적 활용

본 절에서 다룬 질량 행렬의 구성과 계산 복잡도는 실시간 로봇 동역학 계산의 학술적·실무적 기반이다. 효율적 알고리즘의 이해와 구현이 고성능 로봇 시스템의 핵심 요소이다.

출처

  • Walker, M. W. and Orin, D. E., “Efficient dynamic computer simulation of robotic mechanisms”, Journal of Dynamic Systems, Measurement, and Control, Vol. 104, No. 3, pp. 205–211, 1982.
  • Featherstone, R., Rigid Body Dynamics Algorithms, Springer, 2008.
  • Featherstone, R., “An empirical study of the joint space inertia matrix”, International Journal of Robotics Research, Vol. 23, No. 9, pp. 859–871, 2004.
  • Spong, M. W., Hutchinson, S., and Vidyasagar, M., Robot Modeling and Control, 2nd edition, Wiley, 2020.
  • Carpentier, J., Saurel, G., Buondonno, G., Mirabel, J., Lamiraux, F., Stasse, O., and Mansard, N., “The Pinocchio C++ library: A fast and flexible implementation of rigid body dynamics algorithms and their analytical derivatives”, IEEE/SICE International Symposium on System Integration, pp. 614–619, 2019.

버전

  • 문서 버전: 1.0
  • 작성일: 2026-04-18