10.72 쿼터니언의 드론 자세 제어 응용
1. 드론 자세 제어의 개요
드론(드론, drone) 또는 무인 항공기(unmanned aerial vehicle, UAV)의 자세 제어는 비행 안정성과 임무 수행 능력의 핵심을 결정한다. 드론은 본질적으로 불안정한 동역학을 가진 비행체이며, 능동적인 자세 제어 없이는 안정된 비행이 불가능하다. 자세 제어의 수학적 표현으로 쿼터니언이 채택되는 이유는 짐벌 락이 없고, 자세의 부드러운 보간과 정확한 합성이 가능하며, 모든 자세에서 균등하게 매개변수화가 이루어지기 때문이다.
2. 멀티콥터의 동역학과 자세
2.1 강체로서의 멀티콥터
쿼드콥터, 헥사콥터, 옥토콥터 등 멀티콥터는 모두 강체로 모델링된다. 강체의 운동은 6자유도(3차원 위치와 3차원 자세)로 기술되며, 제어 입력은 모터의 회전 속도이다. 자세는 단위 쿼터니언 \mathbf{q} \in \mathbb{S}^3으로 표현된다.
2.2 동역학 방정식
쿼드콥터의 자세 동역학은 오일러 운동 방정식을 따른다.
\mathbf{J}\dot{\boldsymbol{\omega}} + \boldsymbol{\omega} \times (\mathbf{J}\boldsymbol{\omega}) = \boldsymbol{\tau}
여기서
- \mathbf{J}: 본체 좌표계에서의 관성 행렬
- \boldsymbol{\omega}: 본체 좌표계의 각속도
- \boldsymbol{\tau}: 모터에 의해 생성되는 토크
쿼터니언의 운동학 방정식은 다음과 같다.
\dot{\mathbf{q}} = \frac{1}{2}\mathbf{q} \otimes \boldsymbol{\omega}_{\text{quat}}
이 두 방정식이 결합되어 자세 동역학을 완전히 기술한다.
3. 자세 제어의 계층 구조
드론의 비행 제어 시스템은 일반적으로 계층적 구조를 가진다.
3.1 위치 제어
가장 바깥 루프인 위치 제어기는 목표 위치와 현재 위치의 오차로부터 목표 가속도와 목표 추력을 계산한다. 출력은 본체 좌표계의 추력 방향과 크기이다.
3.2 자세 제어
중간 루프인 자세 제어기는 목표 자세 쿼터니언과 현재 자세 쿼터니언의 오차로부터 목표 각속도 또는 목표 토크를 계산한다.
3.3 각속도 제어
가장 안쪽 루프인 각속도 제어기는 목표 각속도와 측정된 각속도의 오차로부터 모터 명령을 계산한다. 일반적으로 PID 제어기가 사용된다.
쿼터니언은 자세 제어 루프의 핵심 변수로 사용된다.
4. 쿼터니언 자세 오차의 정의
4.1 곱셈 오차
목표 자세를 \mathbf{q}_d, 현재 자세를 \mathbf{q}라 할 때, 자세 오차는 곱셈 형태로 정의된다.
\mathbf{q}_e = \mathbf{q}^* \otimes \mathbf{q}_d
이 오차 쿼터니언은 현재 자세에서 목표 자세로의 회전을 나타내며, 자세가 일치할 때 항등 쿼터니언 [1, 0, 0, 0]^T이 된다.
4.2 부호 모호성 처리
쿼터니언은 이중 포복 특성으로 인해 \mathbf{q}와 -\mathbf{q}가 같은 회전을 나타낸다. 자세 오차 계산 시 가장 짧은 회전 경로를 선택하려면 다음과 같이 처리한다.
\mathbf{q}_e \leftarrow \mathrm{sgn}(q_{e,w}) \cdot \mathbf{q}_e
이로써 항상 q_{e,w} \geq 0을 유지한다. 이는 회전 경로가 \pi 라디안 이상 진행되지 않도록 보장한다.
4.3 벡터 부분의 의미
오차 쿼터니언의 벡터 부분 \mathbf{q}_{e,v} = [q_{e,x}, q_{e,y}, q_{e,z}]^T는 회전 축의 방향과 회전 각의 사인 절반에 비례한다. 미소 자세 오차에 대해 이 벡터는 회전 벡터의 절반에 근사하며, 자세 오차의 직접적인 표현으로 사용된다.
\mathbf{q}_{e,v} \approx \frac{1}{2}\boldsymbol{\theta}_e
5. 쿼터니언 기반 자세 제어 법칙
5.1 비례 미분 제어
기본적인 쿼터니언 기반 자세 제어 법칙은 다음과 같이 표현된다.
\boldsymbol{\tau} = -k_q\mathbf{q}_{e,v} - k_\omega\boldsymbol{\omega}_e
여기서
- \mathbf{q}_{e,v}: 자세 오차 쿼터니언의 벡터 부분
- \boldsymbol{\omega}_e = \boldsymbol{\omega} - \boldsymbol{\omega}_d: 각속도 오차
- k_q, k_\omega: 양의 이득 행렬
이 형태는 PD 제어기와 유사하며, 자세 오차와 각속도 오차에 비례하는 토크를 생성한다.
5.2 동역학 보상 제어
오일러 운동 방정식의 비선형 항을 보상하면 더 정확한 제어가 가능하다.
\boldsymbol{\tau} = \boldsymbol{\omega} \times (\mathbf{J}\boldsymbol{\omega}) + \mathbf{J}(\dot{\boldsymbol{\omega}}_d - k_q\mathbf{q}_{e,v} - k_\omega\boldsymbol{\omega}_e)
이 형태는 입력-출력 선형화의 원리를 적용한 것이다.
5.3 리아푸노프 안정성
쿼터니언 기반 PD 자세 제어 법칙의 안정성은 리아푸노프 함수를 사용하여 증명된다. 다음의 후보 함수를 고려한다.
V = k_q(1 - q_{e,w}^2) + \frac{1}{2}\boldsymbol{\omega}_e^T\mathbf{J}\boldsymbol{\omega}_e
이 함수가 양의 정부호이고 시간 미분이 음의 정부호임을 보임으로써 점근 안정성을 증명할 수 있다.
6. 목표 자세의 생성
6.1 위치 제어로부터의 변환
위치 제어기는 목표 가속도 벡터 \mathbf{a}_d를 생성한다. 이 가속도를 달성하기 위해 필요한 추력 방향이 목표 자세의 z축이 되어야 한다.
\hat{\mathbf{z}}_d = \frac{\mathbf{a}_d + g\hat{\mathbf{e}}_3}{\lVert\mathbf{a}_d + g\hat{\mathbf{e}}_3\rVert}
여기서 g\hat{\mathbf{e}}_3는 중력을 보상하는 항이다. 또한 비행 방향(요)은 별도로 지정된다.
6.2 회전 구성
목표 자세는 \hat{\mathbf{z}}_d와 비행 방향으로부터 다음과 같이 구성된다.
\hat{\mathbf{x}}_d = \frac{\hat{\mathbf{z}}_d \times \hat{\mathbf{y}}_{\text{ref}}}{\lVert\hat{\mathbf{z}}_d \times \hat{\mathbf{y}}_{\text{ref}}\rVert}
\hat{\mathbf{y}}_d = \hat{\mathbf{z}}_d \times \hat{\mathbf{x}}_d
여기서 \hat{\mathbf{y}}_{\text{ref}}는 목표 요 각도에 의해 결정되는 기준 벡터이다. 이렇게 구성된 회전 행렬 \mathbf{R}_d = [\hat{\mathbf{x}}_d, \hat{\mathbf{y}}_d, \hat{\mathbf{z}}_d]로부터 목표 쿼터니언 \mathbf{q}_d를 추출한다.
6.3 곡예 비행 모드
곡예 비행에서는 목표 자세가 직접 입력되거나 사용자의 조종 명령으로부터 생성된다. 이 경우 쿼터니언을 직접 다루는 것이 안정적이며 짐벌 락 문제를 회피할 수 있다.
7. 쿼터니언 기반 자세 추정의 통합
자세 제어기는 정확한 자세 추정을 입력으로 받아야 한다. IMU 측정값으로부터 쿼터니언을 추정하는 알고리즘은 마드윅 필터, 마호니 필터, 확장 칼만 필터 등이 있으며, 모두 단위 쿼터니언을 자세 표현으로 사용한다. 이러한 추정기와 제어기가 동일한 표현을 사용하므로 변환 오버헤드가 없다.
8. 비행 제어 시스템의 구현
8.1 PX4
PX4는 가장 널리 사용되는 오픈소스 비행 제어 시스템이며, 자세 제어 모듈에서 쿼터니언을 핵심 표현으로 사용한다. 자세 추정과 자세 제어 모두 쿼터니언 기반으로 구현되어 있다.
8.2 ArduPilot
ArduPilot 또한 쿼터니언 기반 자세 제어를 채택하고 있으며, 다양한 항공기 플랫폼(쿼드콥터, 고정익, 수중 로봇)을 지원한다.
8.3 Crazyflie
Bitcraze의 Crazyflie는 소형 연구용 쿼드콥터로, 쿼터니언 기반 마호니 필터와 자세 제어기를 사용한다.
8.4 Betaflight
레이싱 드론에서 널리 사용되는 Betaflight는 빠른 응답성을 위해 쿼터니언 기반 자세 표현을 활용한다.
9. 쿼터니언 자세 제어의 장점
9.1 짐벌 락의 부재
오일러 각 기반 제어기는 일정 자세에서 특이점이 발생한다. 쿼터니언은 모든 자세를 균등하게 표현하므로 어떤 자세에서도 안정적으로 동작한다. 이는 곡예 비행에서 특히 중요하다.
9.2 부드러운 보간
목표 자세 사이의 보간을 SLERP로 수행하면 부드럽고 자연스러운 자세 전이가 이루어진다. 오일러 각 기반 보간은 직관적이지 않은 경로를 따를 수 있다.
9.3 효율적인 합성
쿼터니언 곱은 회전 행렬 곱보다 연산이 적다. 자세 합성과 변환 계산에 효율적이다.
9.4 수치적 안정성
쿼터니언은 정규화를 통해 단위성을 유지하면 수치 오차가 누적되지 않는다. 회전 행렬은 직교성 보존을 위해 더 복잡한 처리가 필요하다.
10. 실용적 고려사항
10.1 정규화
수치 적분 후 쿼터니언의 노름이 1에서 벗어날 수 있다. 매 갱신 단계에서 다음과 같이 정규화한다.
\mathbf{q} \leftarrow \frac{\mathbf{q}}{\lVert\mathbf{q}\rVert}
이 단순한 연산이 수치적 안정성을 보장한다.
10.2 부호 처리
이중 포복 특성으로 인한 부호 모호성을 일관되게 처리해야 한다. 보간이나 오차 계산 시 두 쿼터니언의 내적을 확인하여 부호를 통일한다.
10.3 고정 소수점 구현
저가형 임베디드 시스템에서는 고정 소수점 산술이 사용되기도 한다. 이 경우 쿼터니언 연산의 수치적 정밀도에 주의해야 한다.
10.4 표현의 일관성
기체 좌표계의 정의(예: NED 또는 ENU)에 따라 쿼터니언의 의미가 달라진다. 개발 과정에서 좌표계 정의를 일관되게 유지해야 한다.
11. 자세 제어의 확장된 응용
11.1 시각 추적 비행
드론이 카메라로 목표를 추적하면서 비행하는 응용에서, 카메라 짐벌의 자세도 쿼터니언으로 표현되며 본체 자세와 결합되어 제어된다.
11.2 충돌 회피
장애물 회피를 위한 빠른 자세 변경이 필요할 때, 쿼터니언 기반 제어가 모든 자세에서 일관된 응답을 제공한다.
11.3 군집 비행
다수의 드론이 협조 비행을 할 때, 각 드론의 자세를 쿼터니언으로 표현하고 통신하면 표현 효율성과 정확성이 향상된다.
11.4 정밀 호버링
GPS, 비전, IMU의 융합으로 정밀 호버링이 가능하며, 쿼터니언 기반 자세 제어가 이러한 정밀 제어의 토대가 된다.
12. 시뮬레이션 환경
쿼터니언 기반 드론 제어기는 다양한 시뮬레이션 환경에서 검증된다. Gazebo, AirSim, jMAVSim 등이 대표적이며, 모두 쿼터니언 기반 동역학 모형을 채택하고 있다. 이 환경들은 실제 비행 전 알고리즘 검증과 매개변수 튜닝에 사용된다.
13. 참고 문헌
- Mellinger, D., & Kumar, V. (2011). “Minimum snap trajectory generation and control for quadrotors.” IEEE International Conference on Robotics and Automation, 2520–2525.
- Lee, T., Leok, M., & McClamroch, N. H. (2010). “Geometric tracking control of a quadrotor UAV on SE(3).” IEEE Conference on Decision and Control, 5420–5425.
- Mahony, R., Kumar, V., & Corke, P. (2012). “Multirotor aerial vehicles: Modeling, estimation, and control of quadrotor.” IEEE Robotics & Automation Magazine, 19(3), 20–32.
- Fresk, E., & Nikolakopoulos, G. (2013). “Full quaternion based attitude control for a quadrotor.” European Control Conference, 3864–3869.
- Beard, R. W., & McLain, T. W. (2012). Small Unmanned Aircraft: Theory and Practice. Princeton University Press.
version: 1.0