정보공간_1

[4기 대구 하호성] marine compass 본문

IT 놀이터/Elite Member Tech & Talk

[4기 대구 하호성] marine compass

알 수 없는 사용자 2013. 11. 29. 21:16

안녕하세요. 대구멤버십 22-1기 하호성입니다.
안드로이드에서 방향 센서 값을 평균내는 방법에 대해 이야기 하려 합니다.

방향 센서 값을 이용하다 보면 값이 튀거나 너무 흔들려서
사용하기 어려울 때가 있습니다.
센서 값을 평균내서 쉽게 보정하는 방법이 있는데
앱 스토어에 있는 Marine Compass 라는 무료 앱의 소스에 좋은 방법이 있었습니다.

 

프랑스 개발자 Pierre Hébert 라는 분이 오픈 소스로 구글 플레이에 등록해 놓은 앱 입니다.
이 앱은 누워서도 볼 수 있는 나침반 앱으로 많이 알려져 있는데
이 소스에서 센서 값을 평균내는 방법이 있습니다.

휴대폰에서 얻어진 5개의 방향 값이 θ1, θ2, θ2, θ3, θ4, θ5일 때

 

각각의 θ값에 대한 cos과 sin을 구하면 다음과 같이 방향 벡터를 얻을 수 있습니다.

 

그리고 이렇게 구해진 방향 벡터들을 모두 더하면 하나의 합벡터를 구할 수 있습니다.

 
그리고 그 값을 각각 a와 b라고 할 때 atan2(a,b)를 하게 되면 평균된 방향각을 알 수 있습니다.

이 때 각각의 cos, sin값 그리고 합벡터의 값을 queue 자료형으로 관리하고 queue의 크기를 n으로 관리하면
평균된 방향 센서의 값을 얻을 수 있습니다.

다음은 참고용 소스코드입니다.

 

이상 포스팅을 마치겠습니다.

참고싸이트
https://play.google.com/store/apps/details?id=net.pierrox.mcompass&hl=ko
http://www.pierrox.net/cmsms/#