You are on page 1of 8

SyntaxHighlighter.

all();
고졸 공돌이
CATEGORY
쿵짝쿵짝 임베디드

드론 개발/DCM

DCM - Direction Cosine Matrix에 대해


고졸 공돌이 2018. 5. 2. 19:44

기압계와 가속도계를 이용한 고도 필터를 공부하면서 도중 알게 된 DCM에 대해 포스팅해보도록 하겠습니다.


이 문서를 토대로 공부한 내용을 정리하겠습니다.
일반적으로 방향 좌표계는 고정적인 전역 좌표계를 기준으로 상대적인 몸체의 방향을 계산하게 됩니다.
보통, 전역적으로 고정되어 있는(불변하는) 절대적 좌표계를 global 좌표계라 하고, 몸체가 회전할 때마다 실시간으
로 가변되는 몸체의 좌표계를 body 좌표계라고 합니다.

DCM TUTORIAL – AN INTRODUCTION TO ORIENTATION KINEMATICS (REV 0.1)

I, J, K는 global 좌표계의 단위 벡터라고 하고, i, j, k는 body 좌표계의 단위 벡터라고 하겠습니다.(이 벡터들 모두


시점이 O로 같습니다.) 
global 좌표계의 관점에서 I, J, K는 아래와 같습니다.

body 좌표계의 관점에서 i, j, k는 아래와 같습니다.


쿵짝쿵짝 임베디드

Body 좌표계의 단위벡터의 Global 좌표계에서의 표현 

그렇다면, global 좌표계의 관점에서 i를 나타내면 

라고 나타낼 수 있습니다.

의 x좌표인  의 값은  벡터의 global 좌표계의 X축 위로의 정사영의 크기로 계산되어지므로 다음과 같이


나타낼 수 있습니다.

( 와  의 크기가 1인 이유는 단위 벡터이기 때문입니다.)

( 가 의미하는 것은 a와 b 사잇각에 대한 코사인 값입니다.)

여기서  를 벡터의 내적 혹은 스칼라곱이라고 합니다.

몸체의 회전은 두 벡터 사이의 각도를 변경시키지 않으므로

따라서 global 좌표계에서 i의 x좌표, y좌표, z좌표는 각각


쿵짝쿵짝 임베디드

그러므로 global 좌표계에서 i, j, k는 다음과 같습니다.

따라서, body 좌표계의 3차원 단위 벡터인 i, j, k를 global 좌표계로 행렬로 표현하면

여기서 DCM은 Direction Cosine Matirx인데, 그 이유는 이 행렬이 body 좌표계와 global 좌표계의 단위 벡터 사


이의 각도의 코사인값으로 이루어져 있기 때문입니다. 

Global 좌표계의 단위벡터의 Body 좌표계에서의 표현

한편, global 좌표계의 단위벡터인 I, J, K는 i, j, k을 이용하여 I, J, K의 body 좌표계 표현을 할 수 있습니다.


위와 같이 결과가 나온 이유는 위에서 body 좌표계의 단위 벡터인 i, j, k의 global 좌표계 표시 방법대로, global
쿵짝쿵짝 임베디드
좌표계의 단위 벡터 I, J, K의 body 좌표계 표현도 각각 벡터의 i, j, k 위로의 정사영의 크기를 이용하면 됩니다.

I, J, K의 body 좌표계 표현을 행렬로 나타내면

여기서  와  의 관계를 살펴보면

 또는  로 성립이 가능합니다.(서로 전치행렬 관계입니다.)

또한,

(i3는 3차원 단위행렬이라는 의미입니다.)

라고 나타낼 수 있기 때문에  와  는 서로 직교행렬입니다.

위 수식을 한번 증명해보도록 하겠습니다.

마지막 행렬을 3x3 단위행렬이며 단위 행렬이 나오는 이유는 

이기 때문입니다.(다른 벡터
들의 내적도 같은 내용입니다.)
쿵짝쿵짝 임베디드
임의의 벡터의 global 좌표계와 body 좌표계에서의 표현

그렇다면 좌표계 위에 임의의 벡터의 global 좌표계의 좌표와 body 좌표계의 좌표는 어떻게 될까요?

이 임의의 벡터를  로 두겠습니다.

global 좌표계의 관점에서 r은 

로 놓을 수 있고,

body 좌표계의 관점에서 r은

로 놓을 수 있습니다.

회전의 정의를 살펴보면,


회전은 벡터의 크기를 변경시키지 않고, 같은 회전을 받는 두 벡터 사이의 각도를 변경시키지 않는 변환이므로 다
른 회전한 좌표계에서 일부 벡터를 표현하여도 벡터들의 시점과 사잇각은 변하지 않는다.

따라서,
쿵짝쿵짝 임베디드

그러므로 global 좌표계의 관점에서 r은

한편, body 좌표계의 관점에서 r은  로 나타낼 수 있는데, 그 과정을 증명하자면

로 증명할 수 있다.

공감 구독하기
쿵짝쿵짝 임베디드

TAG DCM, 드론개발

댓글 0

여러분의 소중한 댓글을 입력해주세요

이름 비밀번호 비밀글 입력

공지사항 최근에 올라온 글 최근에 달린 댓글 Total

멤버 초기화 리스트를 사용해… 고등학생때 대단하시네요.. 대… 52,882


멤버 초기화 리스트란? 안녕하세요, 블로그 주인입니…
Today 20
.c 소스 코드 파일이 실행 파… 좋은 말씀 감사합니다!
Yesterday 8
칼만 필터 기초 - 알고리즘 안녕하세요, 블로그 주인입니…

링크 more TAG «   2023/07   » 글 보관함


일 월 화 수 목 금 토
터미널 C++ 컴파일 2019/11 (2)
1
2 3 4 5 6 7 8 2019/09 (1)
pwm teraterm UART
9 10 11 12 13 14 15
2018/05 (13)
16 17 18 19 20 21 22
멤버 초기… 로그 c
23 24 25 26 27 28 29

DCM 고도필터 30 31

초기화 리… Effective C…

STM32 드론 PID
DMA SPI computer_…

오실로스코… 컴퓨터구조
쿵짝쿵짝 임베디드

드론개발 compile

칼만필터

Blog is powered by Tistory / Designed by Tistory

You might also like