Open Robotics

ARS, INS, GPS (11)

1차 상보필터(complementary filter)와 쿼터니언으로 ARS(Attitude Reference System) 만들기 view 발행 | ARS, INS, GPS
page365 2011.06.15 19:41
지자계센서를 추가했는데요.

#if defined ADIS_16405 소스 안에 있는 dVector mn (0., 0., 1.); 부분에서 컴파일시 에러가 나는데..

dVector mn = dVector3(0., 0., 1.); 형식으로 바꿔줬더니 작동은 되었습니다.

그런데 이렇게 바꾸어 줘도 되는지 의문스러워서 리플을 달게 되었습니다.
예, 문제없습니다. ^^ 그런데 지자계 센서가 환경에 워낙 영향을 많이 받다보니 사용안하는게 시스템 및 사용자 건강에 이로울 것입니다. ^^
답변에 감사드립니다. ^^

추가적으로 으 망할 지자계센서를 다루면서 한바퀴를 돌리면 그 값이 똑같이 나와야하는데 다르게 나와서 이것저것
살펴보는 중에

제가 이해를 못한 부분이 있어서 지자계센서의 소스에 대한 설명을 부탁드립니다.

그리고 특히 코딩부분에 있는 ka 변수는 어떤 뭔지 알려주시면 감사하겠습니다.
Quaternion Qm()은 센서 좌표계를 기준으로 한 지자계의 방향을 나타내는 쿼터니언입니다. 이를 전역 좌표계를 기준으로 한 방향으로 바꾸기 위해 Qm = _Q * Qm * _Q.i(); 연산을 하게 됩니다. 그리고 전역 좌표계에서 지자기의 방향은 항상 자북을 향하고 있기때문에 _Q가 정확하다면 alpha 값이 0이 되어야 합니다. 그런데 _Q에 오차가 있다면 이 값이 alpha로 나타날텐데, 보정하는 방향은 오차의 반대 방향이 되어야 하기에 atan2() 함수 결과의 부호를 바꾸어 줍니다. 그리고 보정 게인 Ka를 곱하여 _Q를 보정해 줍니다.
등록
텍스티콘 텍스티콘
ARS-Quaternion.pdf (259 KB) 다운로드
TestGyroAccel-Q.zip (132 KB) 다운로드
TestGyroAccel-Q.zip (129 KB) 다운로드
ARS-상보필터와 Quaternion.pdf (258 KB) 다운로드
ARS-상보필터와 Quaternion.pdf (258 KB) 다운로드
TestGyroAccel-Q.zip (129 KB) 다운로드
ARS-상보필터와 Quaternion.pdf (265 KB) 다운로드