• 카테고리

    질문 & 답변
  • 세부 분야

    임베디드 · IoT

  • 해결 여부

    미해결

쿼터니언을 사용하여 회전을 구하는 이유가 뭔가요?

21.03.15 05:08 작성 조회수 455

0

강의와 관련있는 질문을 남겨주세요.
• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)
• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)
서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등)

질문 전달에도 요령이 필요합니다.
• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.
• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.
• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. 
• 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요!

구체적인 질문일수록 명확한 답을 받을 수 있어요.
• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.
• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.
• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다.

기본적인 예의를 지켜주세요.
• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. 
• 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. 
반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 

안녕하세요. 강의 잘 보고있습니다.

학부 시절 쿼드콥터를 잠깐 맛 봤다가 좀 더 전문적으로 배우고 싶어 수강신청하게 되었습니다.

FC는 가지고있는 Sp racing f3 보드를 사용하고 있는데 이 센서엔 MPU6050이 달려 있어 각도는 제가 따로 구해야할 것 같더라구요.

그런데 각도를 계산하는 과정에서 왜 쿼터니언을 사용하는지 이해가 잘 안됩니다.

자이로 센서의 데이터를 그냥 적분하는 데이터 X축에 대한 회전각 (Roll), Y축에 대한 회전각(Pitch)와 가속도 센서를 이용하여도 자세를 구할 수 있는 것으로 알고있는데 쿼터니언을 사용하여 각도를 구하는 이유가 무엇인가요?

구글링을 많이 해봤지만 제 검색 능력 부족인지, 확답을 구할 수 없었습니다. 그래서 이렇게 질문을 남겨봅니다. 감사합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요!

회전각도를 구하는 방법이 여러가지가 있는데,

1. Complementary 필터를 이용한 방법 (말씀하신 방법이 여기에 해당되는 것 같습니다)

2. Kalman 필터를 이용한 방법

3. Quaternion을 이용한 방법 (Madgwick 알고리즘 등)

정도로 볼 수 있고, 가장 흔하게 사용되는 방법이 1번 방법인 것 같습니다.

1번 방법의 장점으로는 단순한 계산 과정과 한축의 회전이 다른축에 영향을 미치는 현상(짐벌락)이 없는것이라고 볼 수 있겠네요. 또한 회전 각도의 제한이 없습니다.

3번 방법은 쿼터니언을 사용하는데 이 역시 짐벌락 현상이 없는 방법인데, 이를 오일러각으로 변환하는 과정에서 회전각도의 제한이 발생합니다. 이건 단점이라고 볼 수 있겠죠.

제 수업에서는 3번 방법을 사용하는데, BNO080 센서에서 쿼터니언을 출력해주기 때문입니다. 센서에서 자체 계산된 쿼터니언의 값을 출력해주기 때문에 이를 이용해서 3축 회전 각도를 구하는 것이죠.  장점은 연산량이 줄어들고 계산에 필요한 상수(필터게인)를 직접 구할 필요가 없습니다. 단점은 회전각도의 제한이 있다는 것과 비용이 증가한다는 것이겠네요.

각각 장단점이 있기 때문에 정답이 있는건 아니고, 상황에 따라 적절한 방식을 사용하면 됩니다.

단, self-leveling 모드가 아닌 acro 모드로 비행할 때는 3번 방식은 사용할 수 없습니다. (회전각도의 제한 때문) 이때는 1번 방식이 정답이 될 것 같습니다.