DCM20 수정 로드리게스 파라미터 (MRP) 수정 로드리게스 파라미터(MRP, modified Rodrigues parameters)는 1962년에 T. F. Wiener에 의해서 고안되었다. MRP \(\mathbf{e}_b^a\) 의 정의는 다음과 같다. \[ \begin{align} \mathbf{e}_b^a= \frac{ \mathbf{q}_{1:3}}{1+q_0 } \tag{1} \end{align} \] 앞선 게시글 (https://pasus.tistory.com/377) 에 있는 고전(classical) 로드리게스 파라미터의 정의와 비교해 보면 분모에 1을 더한 것을 볼 수 있다. 식 (1)과 쿼터니언의 특성에 의하면 다음식이 성립한다. \[ \begin{align} (1+q_0 )^2 (\mathbf{e}_b^a )^T \ma.. 2025. 6. 3. 로드리게스 파라미터 로드리게스 파라미터(Rodrigues parameters) 벡터 또는 깁스(Gibbs) 벡터는 1840년 로드리게스(Olinde Rodrigues)에 의해서 처음 도입되었다. 로드리게스 파라미터 벡터 \(\mathbf{g}_b^a\)는 쿼터니언으로부터 다음과 같이 정의된다. \[ \begin{align} \mathbf{g}_b^a= \begin{bmatrix} g_1 \\ g_2 \\ g_3 \end{bmatrix} = \frac{ \mathbf{q}_{1:3} }{ q_0} \tag{1} \end{align} \] 여기서 \(\mathbf{q}_{1:3}\) 는 쿼터니언의 벡터부이고 \(q_0\) 는 스칼라부다. 참고로 좌표계 \(\{a\}\) 를 회전축 \(\hat{p}\) 축을 중심으로 \(\.. 2025. 6. 1. 회전벡터 (Rotation Vector)의 시간 변화율 모든 좌표변환은 어떤 회전축과 그 회전축을 중심으로 하는 한번의 회전을 통해서 가능하다. 쿼터니언(quaternions)의 정의도 이 회전축과 회전각에 기반을 두고 있다. 단위벡터는 크기가 1인 벡터이기 때문에 방향을 표시하는데 자주 쓰인다. 여기서도 회전축 방향을 정하는데 단위벡터를 이용하기로 하고 기호로 \(\hat{p}\) 으로 표시한다. 회전벡터(rotation vector)는 회전축과 회전각을 간결하게 표현한 벡터로서 그 크기는 회전각이며 방향은 회전축과 같은 방향으로서 다음과 같이 정의한다. \[ \begin{align}\vec{\beta} = \beta \hat{p} \tag{1} \end{align} \] 여기서 \(\beta\) 는 회전각, \(\vec{\beta}\) 는 .. 2025. 4. 9. [B-Plane] 좌표변환 B-평면과 관련하여 3개의 평면을 정의할 수 있다. 목표(target) 행성의 적도면(equatorial plane), 진입 궤도면(orbital plane), 그리고 B-평면(B-plane)이 그것이다. 또한 각 평면에서 각각 행성중심관성좌표계 \(\{a\}\), 궤도중심좌표계(perifocal frame) \(\{p\}\), 그리고 TRS좌표계 \(\{s\}\) 를 정의할 수 있다. 아래 그림에 이 3개의 평면과 좌표계가 나와 있다. 그림에서 \(i\) 는 궤도의 경사각, \(\vec{h}\) 는 각운동량 벡터다. TRS좌표계 \(\{s\}\) 는 행성의 중심에 원점이 있고 점근선벡터 \(\hat{S}\) 를 z축, \(\hat{T}\) 을 x축, \(\hat{R}\) 을 y축으로하는 좌표계다... 2025. 1. 4. 정적 자세결정: QUEST 1978년 HEAO-B(High Energy Astronomy Observatory)의 자세 추정을 계산하는 데 Davenport의 q-방법을 사용했다. 그러나 당시의 컴퓨터 성능으로는 1년 후에 발사된 MAGSAT에서 요구된 보다 빈번한 자세 계산을 감당할 수는 없었다고 한다. QUEST(QUaternion Estimator) 알고리즘은 이러한 요구에 부응하기 위해 고안되었으며, Wahba 의 자세결정 문제를 해결하기 위한 알고리즘으로 널리 사용되게 되었다. QUEST는 Davenport의 q-방법과 마찬가지로 행렬 \(K\) 의 고유값을 찾아 Wahba의 문제를 푼다(https://pasus.tistory.com/303). 그러나 QUEST는 고유값을 계산할 때 Newton-Raphson 반복법을 사.. 2023. 11. 1. 정적 자세결정: Davenport의 q-방법 앞서 살펴본 TRIAD는 두 개의 측정 단위벡터를 이용하여 우주비행체의 자세를 결정하였다 (https://pasus.tistory.com/302). 만약 두 개 이상의 단위벡터를 측정할 수 있다면 모든 측정 벡터를 이용할 수 있도록 TRIAD 방법을 개선해야 할 것이다. 예를 들면 많은 항성을 동시에 추적할 수 있는 별센서를 사용한다면 다수의 단위벡터가 측정된다. Wahba는 센서의 불확실성으로 인해 발생하는 오류를 최소화하는 방식으로 다수의 측정 단위벡터를 처리하는 방법에 대한 문제를 정립했다. \(n\) 개의 측정 단위벡터를 \(\hat{s}_k, \ k=1, ..., n\) 이라고 하자. 그리고 이 벡터를 기준좌표계 \(\{a\}\) 와 동체좌표계 \(\{b\}\) 로 표현한 벡터를 각각 \(\ma.. 2023. 10. 22. 정적 자세결정 (Static attitude determination): TRIAD 유도항법제어(GNC, guidance, navigation, and control) 분야에서 자세(attitude)란 기준좌표계(reference frame)를 기준으로 3차원 공간에서 항공기 또는 우주비행체 등 운동체에 부착된 동체좌표계(body frame)가 어떤 방향으로 정렬되어 있는 지를 말한다. 자세를 표현하기 위한 방법으로는 오일러각(Euler angles), 방향코사인행렬(DCM, direction cosine matrix), 쿼터니언, 로드리게스 파라미터 등이 있다. 자세를 표현한다 함은 기본적으로 기준좌표계가 동체좌표계와 일치하려면 기준좌표계의 어느 축을 중심으로 얼마만큼 회전해야 하는 지를 나타낸다고 보면 된다. 센서의 측정값으로부터 자세를 계산해야 하는데, 이에 관련된 용어가 두 가지.. 2023. 10. 19. 궤도요소 (COE)로 부터 위치 및 속도벡터 계산 우주비행체의 위치벡터 및 속도벡터를 궤도요소(COE, classical orbital elements)로 변환할 수 있었다 (https://pasus.tistory.com/287). 이번에는 이와 반대로 궤도요소를 위치벡터와 속도벡터로 변환하는 방법에 대해서 알아보기로 하자. 시간 \(t=t_0\) 에서 주어진 궤도요소 \((a, \ e, \ i, \ \Omega, \ \omega, \ \theta (t_0 ))\) 에서 위치벡터 \(\vec{r}\) 과 속도벡터 \(\vec{v}\) 를 구하는 과정은 두 단계로 나누어진다. 궤도중심좌표계(perifocal frame)에서 위치벡터와 속도벡터를 구하는 단계와 좌표변환을 통하여 ECI좌표계로 이들 벡터를 변환하는 단계이다. 먼저 궤도중심좌표계에서 위치벡터와.. 2023. 7. 31. [PX4] 멀티콥터 자세 명령 PX4의 위치 제어기에서는 원하는 궤적(desired trajectory) 정보를 이용하여 추력 벡터를 계산한다. 관성 좌표계 \(\{i\}\) 로 표현된 추력 벡터는 별도로 주어지는 방위각(azimuth angle) 명령 \(\psi_{cmd}\) 와 함께 자세 명령(attitude command) 계산 모듈로 보내져서 쿼터니언 \(\mathbf{q}_{cmd}\) 로 파라미터화된 자세 명령을 생성하게 된다. 쿼터니언 \(\mathbf{q}_{cmd}\) 를 계산하기 위해서는 먼저 관성 좌표계 \(\{i\}\) 에 대해서 동체 좌표계 \(\{b\}\) 가 취해야 할 목표 좌표계를 구해야 하는데 이 좌표계를 \(\{d\}\) 라고 하자. 그러면 \(\mathbf{q}_{cmd}=\mathbf{q}_d^i.. 2023. 2. 25. 좌표변환과 관성행렬 (Inertia Matrix) 관성 다이아딕(inertia dyadic)은 특정 좌표계와 무관하지만 관성 다이아딕을 특정 좌표계로 표현한 관성행렬(inertia matrix)은 좌표계에 따라 달라진다. 어떤 강체의 질량중심 \(G\) 를 원점으로 하고 강체에 고정된 좌표계 \(\{a\}\) 와 좌표계 \(\{b\}\) 가 있다고 하자. 질량중심 \(G\) 에 관한 관성 다이아딕 \(\bar{I}_G\) 를 좌표계 \(\{a\}\) 와 좌표계 \(\{b\}\) 로 각각 표현하면 다음과 같다 (https://pasus.tistory.com/191). \[ \begin{align} \bar{I}_G &= \sum_{i=1}^3 \sum_{j=1}^3 I_{ij}^a \ \hat{a}_i \hat{a}_j \tag{1} \\ \\ &= \s.. 2023. 2. 17. 이전 1 2 다음