10.59 곱셈 자세 오차와 덧셈 자세 오차
1. 자세 오차의 두 가지 표현
자세 오차를 표현하는 방법에는 크게 두 가지가 있다.
- 곱셈 자세 오차 (Multiplicative Attitude Error): 리 군의 곱셈을 사용
- 덧셈 자세 오차 (Additive Attitude Error): 벡터 공간의 덧셈을 사용
두 표현은 각각 다른 응용에 적합하며, 수학적 성질도 다르다.
2. 곱셈 자세 오차
2.1 정의
곱셈 자세 오차는 리 군의 군 연산(쿼터니언 곱 또는 행렬 곱)을 사용하여 정의된다.
\mathbf{q}_e = \mathbf{q}^*\otimes\mathbf{q}_d
또는 회전 행렬로
\mathbf{R}_e = \mathbf{R}^T\mathbf{R}_d
2.2 특징
- SO(3) 매니폴드 준수: 오차 자체가 유효한 회전이다.
- 비선형: 군 곱셈은 일반적으로 비선형이다.
- 원래 자세의 영향: 오차가 현재 자세에 의존한다.
- 정확함: 큰 오차에서도 정확한 표현이다.
2.3 역 관계
\mathbf{q}\otimes\mathbf{q}_e = \mathbf{q}_d
즉, 곱셈 오차는 현재 자세에 “더해” 목표 자세로 이동시킨다. “더함“이 군 곱셈이다.
3. 덧셈 자세 오차
3.1 정의
덧셈 자세 오차는 벡터 공간의 덧셈을 사용한다.
\delta\mathbf{q} = \mathbf{q}_d - \mathbf{q}
또는 오일러 각으로
\delta\boldsymbol{\eta} = \boldsymbol{\eta}_d - \boldsymbol{\eta}
3.2 특징
- 선형: 덧셈이 선형 연산이다.
- 매니폴드 위반: 결과가 일반적으로 SO(3)의 원소가 아니다.
- 작은 오차에서만 유효: 작은 오차의 근사로만 사용된다.
- 단순함: 벡터 공간 연산이므로 단순하다.
3.3 한계
덧셈 자세 오차는 선형 공간을 전제로 하지만, SO(3)은 매니폴드이다. 따라서 덧셈은 매니폴드를 벗어난다.
4. 두 표현의 관계
작은 자세 오차에서 곱셈 오차와 덧셈 오차가 선형적으로 관련된다.
4.1 작은 오차의 근사
작은 회전 벡터 \delta\boldsymbol{\phi}의 경우
\mathbf{R}_e \approx \mathbf{I} + [\delta\boldsymbol{\phi}]_\times
이는 곱셈 오차의 1차 근사이다.
4.2 쿼터니언 관계
작은 오차의 쿼터니언 표현은
\mathbf{q}_e \approx (1, \delta\boldsymbol{\phi}/2)
벡터 부분이 회전 벡터 오차의 절반이다.
5. 곱셈 오차의 사용
곱셈 자세 오차는 정확하고 견고하므로 다음의 응용에서 사용된다.
5.1 자세 제어
자세 제어에서 오차는 곱셈적으로 정의된다.
\mathbf{u} = k_p\mathbf{q}_{e,v}
여기서 \mathbf{q}_{e,v}는 곱셈 쿼터니언 오차의 벡터 부분이다.
5.2 자세 추정
자세 추정 필터에서 측정값과 예측값의 차이를 곱셈적으로 계산한다.
5.3 SLAM
포즈 그래프 SLAM에서 두 포즈 간의 오차를 곱셈적으로 정의한다.
5.4 궤적 추적
궤적 추적에서 현재 자세와 목표 자세의 차이가 곱셈 오차이다.
6. 덧셈 오차의 사용
덧셈 자세 오차는 제한된 상황에서 사용된다.
6.1 작은 오차의 선형 근사
작은 오차에서 덧셈 오차가 곱셈 오차의 선형 근사로 사용된다.
6.2 칼만 필터의 선형화
확장 칼만 필터에서 자세를 선형 근사하여 처리할 때 덧셈이 사용된다.
6.3 간단한 계산
대략적인 오차 측정이 필요한 경우 덧셈이 간편하다.
7. 곱셈 오차의 유형
7.1 좌측 곱셈 오차
\mathbf{q}_e^{\text{L}} = \mathbf{q}_d\otimes\mathbf{q}^*
공간 좌표계에서의 오차이다. \mathbf{q}_e^{\text{L}}\otimes\mathbf{q} = \mathbf{q}_d가 성립한다.
7.2 우측 곱셈 오차
\mathbf{q}_e^{\text{R}} = \mathbf{q}^*\otimes\mathbf{q}_d
본체 좌표계에서의 오차이다. \mathbf{q}\otimes\mathbf{q}_e^{\text{R}} = \mathbf{q}_d가 성립한다.
7.3 선택
- 공간 좌표계 제어: 좌측 곱셈 오차
- 본체 좌표계 제어: 우측 곱셈 오차
본체 좌표계 제어가 실용적으로 더 일반적이다.
8. 덧셈 오차의 문제점
8.1 매니폴드 위반
\mathbf{q}_d - \mathbf{q}는 일반적으로 단위 쿼터니언이 아니다. 즉, 결과가 유효한 자세가 아니다.
8.2 선형 공간 가정
덧셈은 \mathbb{R}^4를 선형 공간으로 가정하지만, 자세는 S^3 매니폴드의 원소이다.
8.3 부호 이중성
\mathbf{q}와 -\mathbf{q}의 이중성이 덧셈 오차에 영향을 준다. 부호가 일관되지 않으면 큰 오차가 나타날 수 있다.
8.4 큰 오차에서의 부정확
큰 자세 오차에서 덧셈 근사가 부정확하다.
9. 곱셈 오차의 장점
9.1 매니폴드 준수
결과가 항상 유효한 자세이다.
9.2 비선형 정확성
큰 오차에서도 정확하다.
9.3 기하학적 의미
군 곱셈이 회전의 합성에 대응하므로 자연스럽다.
9.4 부호 이중성 처리
곱셈 오차는 부호 이중성을 자연스럽게 처리한다.
10. 곱셈 오차의 계산
10.1 알고리즘
function compute_multiplicative_error(q_current, q_desired):
q_error = q_desired.conjugate() * q_current # 또는 q_current.conjugate() * q_desired
# 부호 보정
if q_error.w < 0:
q_error = -q_error
return q_error
10.2 벡터 부분 추출
제어에서는 벡터 부분을 사용한다.
def error_vector(q_current, q_desired):
q_error = compute_multiplicative_error(q_current, q_desired)
return q_error.vec() # 벡터 부분 (x, y, z)
11. 작은 오차와 큰 오차의 처리
11.1 작은 오차
작은 오차의 경우 덧셈과 곱셈 오차가 거의 같다. 효율성을 위해 덧셈을 사용할 수 있다.
11.2 큰 오차
큰 오차의 경우 곱셈 오차가 필수이다. 덧셈은 부정확한 결과를 낳는다.
11.3 경계
임계값(예: 30°)에 따라 두 방법을 전환할 수 있다. 그러나 일관성을 위해 항상 곱셈 오차를 사용하는 것이 권장된다.
12. 오류 상태 칼만 필터 (ESKF)
ESKF는 곱셈 오차와 덧셈 오차를 결합한 접근이다.
12.1 명목 상태
명목 자세는 쿼터니언 (또는 회전 행렬)로 곱셈적으로 표현된다.
12.2 오류 상태
자세 오차는 작은 회전 벡터 (덧셈적)로 표현된다.
12.3 업데이트
\mathbf{q}_{\text{new}} = \mathbf{q}_{\text{nominal}}\otimes\exp(\delta\boldsymbol{\phi}/2)
여기서 \delta\boldsymbol{\phi}는 오차 상태(회전 벡터)이다.
12.4 장점
ESKF는 작은 오차의 선형성(필터 이론 적용 가능)과 곱셈의 정확성(매니폴드 구조 보존)을 결합한다.
13. 리아프노프 함수
자세 제어의 안정성 분석에서 자세 오차가 리아프노프 함수의 일부이다.
13.1 곱셈 오차 기반
V = k_p\lVert\mathbf{q}_{e,v}\rVert^2 + \frac{1}{2}\boldsymbol{\omega}_e^T\mathbf{J}\boldsymbol{\omega}_e
이는 쿼터니언의 곱셈 오차를 사용한다.
13.2 덧셈 오차 기반
덧셈 오차를 리아프노프 함수에 직접 사용하는 것은 매니폴드 구조를 위반하므로 부적절하다. 그러나 작은 오차의 근사로는 유효할 수 있다.
14. 오차 동역학
14.1 곱셈 오차의 동역학
\dot{\mathbf{q}}_e = \frac{1}{2}\mathbf{q}_e\otimes\boldsymbol{\omega}_{e,q}
여기서 \boldsymbol{\omega}_e는 각속도 오차이다.
14.2 덧셈 오차의 동역학
덧셈 오차의 동역학은 벡터 공간의 선형 동역학이다. 그러나 비선형 효과를 무시한 근사이다.
15. 예시: PD 제어
15.1 곱셈 오차 기반 PD 제어
\mathbf{u} = k_p\mathbf{q}_{e,v} + k_d(\boldsymbol{\omega}_d - \boldsymbol{\omega})
이는 모든 자세 범위에서 잘 작동한다.
15.2 덧셈 오차 기반 PD 제어
\mathbf{u} = k_p(\boldsymbol{\eta}_d - \boldsymbol{\eta}) + k_d(\boldsymbol{\omega}_d - \boldsymbol{\omega})
여기서 \boldsymbol{\eta}는 오일러 각이다. 짐벌 락 근처에서 작동하지 않는다.
16. 응용별 권장 사항
16.1 일반 자세 제어
곱셈 자세 오차를 사용한다. 정확하고 견고하다.
16.2 선형 제어 이론 적용
작은 오차의 덧셈 근사를 사용하여 선형 제어 이론을 적용한다.
16.3 칼만 필터
ESKF 접근: 명목 상태는 곱셈, 오차 상태는 덧셈.
16.4 최적화
작은 증분을 덧셈으로 처리하되, 전체 자세는 곱셈으로 누적한다.
17. 결론
곱셈 자세 오차와 덧셈 자세 오차는 각각 다른 특성과 용도를 가진다. 곱셈 오차는 SO(3) 매니폴드 구조를 준수하고 큰 오차에서도 정확하지만 비선형이다. 덧셈 오차는 선형적이지만 매니폴드를 위반하며 작은 오차에서만 유효하다. 실용적으로 곱셈 오차가 권장되며, 특히 오류 상태 칼만 필터와 같은 기법은 두 접근을 결합하여 선형 필터 이론을 비선형 자세 추정에 효과적으로 적용한다.
18. 참고 문헌
- Lefferts, E. J., Markley, F. L., & Shuster, M. D. (1982). “Kalman Filtering for Spacecraft Attitude Estimation.” Journal of Guidance, Control, and Dynamics, 5(5), 417–429.
- Markley, F. L., & Crassidis, J. L. (2014). Fundamentals of Spacecraft Attitude Determination and Control. Springer.
- Sola, J. (2017). “Quaternion Kinematics for the Error-State Kalman Filter.” arXiv:1711.02508.
- Shuster, M. D. (1993). “A Survey of Attitude Representations.” Journal of the Astronautical Sciences, 41(4), 439–517.
- Wen, J. T., & Kreutz-Delgado, K. (1991). “The Attitude Control Problem.” IEEE Transactions on Automatic Control, 36(10), 1148–1162.
version: 1.0