10.58 자세 오차(Attitude Error)의 정의
1. 자세 오차의 개념
자세 오차(attitude error)는 두 자세 사이의 차이를 수량화하는 개념으로, 자세 추정, 자세 제어, 궤적 추적 등 다양한 응용에서 핵심 역할을 한다. 자세 오차는 현재 자세와 목표 자세의 관계를 대수적으로 표현하며, 제어 시스템의 피드백 신호로 사용된다.
2. 자세 오차의 기본 정의
2.1 회전 행렬 기반
두 회전 행렬 \mathbf{R}(현재)와 \mathbf{R}_d(목표)의 오차는 다음과 같이 정의된다.
\mathbf{R}_e = \mathbf{R}_d\mathbf{R}^T
또는
\mathbf{R}_e = \mathbf{R}^T\mathbf{R}_d
두 형태는 좌측 오차와 우측 오차로, 좌표계 해석이 다르다.
2.2 쿼터니언 기반
쿼터니언 \mathbf{q}(현재)와 \mathbf{q}_d(목표)의 오차는
\mathbf{q}_e = \mathbf{q}^*\otimes\mathbf{q}_d
또는
\mathbf{q}_e = \mathbf{q}_d\otimes\mathbf{q}^*
3. 좌측과 우측 오차
3.1 좌측 오차
\mathbf{R}_e^{\text{L}} = \mathbf{R}_d\mathbf{R}^T
이는 공간 좌표계에서의 오차이다. \mathbf{R}_e^{\text{L}}\mathbf{R} = \mathbf{R}_d의 관계가 성립한다.
3.2 우측 오차
\mathbf{R}_e^{\text{R}} = \mathbf{R}^T\mathbf{R}_d
이는 본체 좌표계에서의 오차이다. \mathbf{R}\mathbf{R}_e^{\text{R}} = \mathbf{R}_d의 관계가 성립한다.
3.3 좌표계의 선택
응용에 따라 좌측 또는 우측 오차를 선택한다.
- 본체 제어: 우측 오차 (본체 좌표계에서 오차 측정)
- 공간 제어: 좌측 오차 (공간 좌표계에서 오차 측정)
4. 자세 오차의 다양한 표현
4.1 회전 행렬 \mathbf{R}_e
오차를 3\times 3 행렬로 표현한다. 가장 완전한 표현이지만 9 성분으로 비효율적이다.
4.2 쿼터니언 \mathbf{q}_e
4 성분으로 효율적이다. 벡터 부분이 주로 피드백에 사용된다.
4.3 회전 벡터 \boldsymbol{\phi}_e
3 성분으로 가장 간결하다. 리 대수 구조를 가진다.
\boldsymbol{\phi}_e = \log(\mathbf{R}_e)^\vee
4.4 오일러 각 오차
가장 직관적이지만 짐벌 락 문제가 있다.
4.5 MRP 오차
\boldsymbol{\sigma}_e로 표현된다. 우주 항공에서 사용된다.
5. 자세 오차의 벡터 부분
많은 응용에서 자세 오차의 “벡터 부분“이 사용된다. 이는 회전 축과 회전 각의 곱에 비례하는 양이다.
5.1 쿼터니언의 벡터 부분
쿼터니언 오차 \mathbf{q}_e = (q_{e,w}, \mathbf{q}_{e,v})의 벡터 부분은
\mathbf{q}_{e,v} = \sin(\phi_e/2)\hat{\mathbf{u}}_e
5.2 작은 오차의 근사
작은 자세 오차의 경우 \phi_e \approx 0이므로
\mathbf{q}_{e,v} \approx \frac{\phi_e}{2}\hat{\mathbf{u}}_e = \frac{\boldsymbol{\phi}_e}{2}
즉, 쿼터니언 오차의 벡터 부분이 회전 벡터 오차의 절반이다. 작은 오차에서 두 표현이 선형적으로 관련된다.
6. 자세 오차의 크기
자세 오차의 크기는 회전 각도로 측정된다.
6.1 회전 행렬 오차의 크기
\phi_e = \arccos\left(\frac{\mathrm{tr}(\mathbf{R}_e) - 1}{2}\right)
6.2 쿼터니언 오차의 크기
\phi_e = 2\arccos(\lvert q_{e,w}\rvert)
또는
\phi_e = 2\arcsin(\lVert\mathbf{q}_{e,v}\rVert)
절댓값은 부호 이중성을 처리한다.
6.3 회전 벡터 오차의 크기
\phi_e = \lVert\boldsymbol{\phi}_e\rVert
6.4 측지선 거리
이 각도가 SO(3) 매니폴드 상의 측지선 거리이다. 두 자세 사이의 “가장 짧은 회전“의 크기이다.
7. 자세 오차의 성질
7.1 항등 원소
현재와 목표 자세가 같으면 오차는 항등 회전이다.
\mathbf{R} = \mathbf{R}_d \Rightarrow \mathbf{R}_e = \mathbf{I}
7.2 비가환성
자세 오차의 좌측과 우측 표현은 일반적으로 다르다. 이는 SO(3)의 비가환성 때문이다.
7.3 대칭성
오차의 크기는 대칭적이다.
\lVert\log(\mathbf{R}_e)\rVert = \lVert\log(\mathbf{R}_e^T)\rVert
즉, \mathbf{R}에서 \mathbf{R}_d로의 오차와 반대 방향 오차의 크기가 같다.
7.4 비선형성
자세 오차는 일반적으로 비선형이다. 작은 오차의 경우에만 선형 근사가 가능하다.
8. 자세 오차와 제어
자세 제어에서 자세 오차는 제어 입력의 핵심 요소이다.
8.1 PD 제어
가장 단순한 자세 제어는 PD (비례 미분) 제어이다.
\mathbf{u} = k_p\mathbf{q}_{e,v} + k_d(\boldsymbol{\omega}_d - \boldsymbol{\omega})
여기서 \mathbf{q}_{e,v}는 쿼터니언 오차의 벡터 부분이며, k_p > 0, k_d > 0은 제어 이득이다.
8.2 피드백 선형화
자세 오차의 비선형 동역학을 피드백 선형화로 선형화할 수 있다. 이는 고급 자세 제어의 기반이다.
9. 자세 오차와 자세 추정
자세 추정 필터(예: 칼만 필터)에서 자세 오차는 상태의 일부이거나 측정 잔차이다.
9.1 오류 상태 칼만 필터 (ESKF)
ESKF에서 작은 자세 오차를 회전 벡터로 표현한다.
\delta\boldsymbol{\phi} = \log(\mathbf{R}^T\mathbf{R}_{\text{measured}})^\vee
이는 선형 필터 이론을 비선형 자세 추정에 적용할 수 있게 한다.
9.2 측정 잔차
자세 측정(예: 별 추적기)과 예측 자세의 차이가 측정 잔차이다. 이는 칼만 필터의 업데이트 단계에서 사용된다.
10. 자세 오차와 궤적 추적
매니퓰레이터나 드론이 자세 궤적을 추적할 때 자세 오차를 최소화한다.
10.1 궤적 추적
시간에 따라 변하는 목표 자세 \mathbf{R}_d(t)에 대해 자세 오차가 계속 계산된다.
\mathbf{R}_e(t) = \mathbf{R}_d(t)\mathbf{R}(t)^T
10.2 동적 오차
자세 오차는 일반적으로 0에 수렴해야 한다. 이는 제어기의 목표이다.
11. 자세 오차와 리 군
자세 오차는 리 군 구조에서 자연스럽게 정의된다.
11.1 군 차이
SO(3)에서 “차이“는 군 연산으로 정의된다. 덧셈이 아니라 곱셈이다.
\mathbf{R}_e = \mathbf{R}_d\cdot\mathbf{R}^{-1} = \mathbf{R}_d\mathbf{R}^T
11.2 리 대수 오차
작은 오차를 리 대수 공간에서 표현할 수 있다.
\boldsymbol{\phi}_e = \log(\mathbf{R}_d\mathbf{R}^T)^\vee
이는 오차를 3차원 벡터로 다루는 자연스러운 방법이다.
12. 자세 오차의 미분
제어에서 자세 오차의 시간 미분이 필요하다.
12.1 쿼터니언 오차의 미분
\dot{\mathbf{q}}_e = \frac{1}{2}\mathbf{q}_e\otimes\boldsymbol{\omega}_{e,q}
여기서 \boldsymbol{\omega}_e = \boldsymbol{\omega}_d - \boldsymbol{\omega}는 각속도 오차이다.
12.2 회전 벡터 오차의 미분
\dot{\boldsymbol{\phi}}_e \approx \boldsymbol{\omega}_e
작은 오차의 경우 간단한 관계이다.
13. 자세 오차의 응용 분야
13.1 자세 제어
자세 제어에서 오차를 최소화하여 목표 자세로 수렴한다.
13.2 자세 추정
칼만 필터의 업데이트에서 측정 잔차로 사용된다.
13.3 궤적 추적
시간에 따라 변하는 목표 자세를 추적한다.
13.4 자세 보정
카메라 캘리브레이션, 센서 정렬 등에서 자세 오차가 보정 대상이다.
13.5 매니퓰레이터 말단 장치 제어
매니퓰레이터의 말단 장치가 목표 자세로 수렴하도록 제어한다.
13.6 SLAM과 최적화
그래프 기반 SLAM에서 두 포즈 간의 관측 오차가 자세 오차이다.
14. 자세 오차의 측정
자세 오차는 다음의 방법으로 측정된다.
14.1 직접 측정
- 회전 벡터의 크기: \lVert\boldsymbol{\phi}_e\rVert
- 쿼터니언 벡터 부분의 크기: \lVert\mathbf{q}_{e,v}\rVert
14.2 프로베니우스 노름
\lVert\mathbf{R}_e - \mathbf{I}\rVert_F
이는 행렬의 프로베니우스 노름이다. 작은 오차에서 회전 각에 비례한다.
14.3 내적 기반
\mathrm{tr}(\mathbf{R}_e) = 1 + 2\cos\phi_e
대각합을 통해 오차 크기를 계산할 수 있다.
15. 자세 오차와 안정성 분석
리아프노프 안정성 분석에서 자세 오차가 리아프노프 함수의 구성 요소이다.
15.1 리아프노프 함수의 예
V = k_p\lVert\mathbf{q}_{e,v}\rVert^2 + \frac{1}{2}\boldsymbol{\omega}_e^T\mathbf{J}\boldsymbol{\omega}_e
이 함수의 시간 미분이 음수이면 시스템이 안정적이다.
15.2 점근 안정성
자세 오차가 0으로 수렴하면 시스템이 점근 안정이다.
\lim_{t\to\infty}\mathbf{R}_e(t) = \mathbf{I}
16. 자세 오차의 시각화
자세 오차는 다양한 방법으로 시각화할 수 있다.
16.1 각도
회전 각 \phi_e를 단일 숫자로 표시한다.
16.2 3D 시각화
두 자세(현재와 목표)를 3D로 동시 표시하고, 오차 회전을 축과 각도로 시각화한다.
16.3 시간 그래프
자세 오차의 각 성분(roll, pitch, yaw 또는 회전 벡터 성분)을 시간에 따라 그린다.
16.4 벡터 필드
자세 오차의 분포를 벡터 필드로 시각화한다.
17. 자세 오차와 수치 정밀도
17.1 작은 오차의 정확성
작은 자세 오차는 대부분의 표현에서 정확하게 처리된다.
17.2 큰 오차의 문제
큰 오차(예: \phi_e \approx \pi)는 일부 표현에서 수치 문제를 야기할 수 있다.
- 로드리게스 매개변수: 발산
- 오일러 각: 짐벌 락 가능
- 쿼터니언: 부호 이중성 주의 필요
18. 자세 오차의 일관된 정의
응용에서 일관된 자세 오차 정의가 중요하다.
18.1 명확한 규약
- 좌측 vs. 우측 오차
- 현재에서 목표로 vs. 목표에서 현재로
- 부호 관례
이러한 규약을 명시하지 않으면 혼동이 발생한다.
18.2 문서화
모든 함수와 알고리즘에서 자세 오차의 정의를 명확히 문서화한다.
19. 결론
자세 오차는 자세 제어, 추정, 궤적 추적 등 다양한 응용에서 핵심 개념이다. 회전 행렬, 쿼터니언, 회전 벡터 등 다양한 형태로 표현될 수 있으며, 각각 적합한 응용이 다르다. 일반적으로 작은 오차는 회전 벡터 또는 쿼터니언의 벡터 부분으로, 큰 오차는 쿼터니언 또는 회전 행렬로 표현된다. 자세 오차의 비선형성은 SO(3) 매니폴드의 성질을 반영하며, 이를 이해하는 것이 고급 자세 제어와 추정 알고리즘의 기반이다.
20. 참고 문헌
- Markley, F. L., & Crassidis, J. L. (2014). Fundamentals of Spacecraft Attitude Determination and Control. Springer.
- Wie, B. (2008). Space Vehicle Dynamics and Control (2nd ed.). AIAA Education Series.
- Sola, J. (2017). “Quaternion Kinematics for the Error-State Kalman Filter.” arXiv:1711.02508.
- Sidi, M. J. (1997). Spacecraft Dynamics and Control. Cambridge University Press.
- Siciliano, B., Sciavicco, L., Villani, L., & Oriolo, G. (2009). Robotics: Modelling, Planning and Control. Springer.
version: 1.0