안녕하세요. PEACE- 에요.
안드로이드 스터디의 [세 번째] 글이네요.
우리 모두 남들보다 여러 발짝 앞서가는 개발자가 되어봅시당.
오늘은 지난 포스팅에 이어
ANDROID의 Motion Sensor 중 Gyroscope Sensor와 Accelerometer Sensor의 한계점에 대해
이야기해보도록 하겠습니다.
포스팅 목차는 다음과 같습니다.
1. 간단한 리뷰
2. 가속도계 센서와 자이로스코프 센서의 회전각 비교
3. 해결 방안 모색
# 1 간단한 리뷰
지난 포스팅에서
http://mailmail.tistory.com/2 :가속도계 센서 활용
http://mailmail.tistory.com/3 :자이로스코프 센서 활용
다음 포스팅
http://mailmail.tistory.com/10 :안드로이드 자이로스코프 센서와 가속도계 센서를 이용한 상보필터 적용
스마트폰의 [가속도계 센서를 이용해 회전 각을 구하는 과정]과
[자이로스코프 센서를 이용해 회전 각을 구하는 과정]에 대해 공부했습니다.
하지만 두 과정에서 각각 문제를 가지고 있다는 점을 언급했습니다.
간단하게 REVIEW를 해보자면
첫 째, 가속도계 센서를 통해 얻어진 회전각은 가속도의 영향을 받아 빠른 회전이나 턴할때 회전각 값이 크게 벗어나는 현상이 발생한다.
두 번째, 자이로스코프 센서를 통해 회전각을 구할때 적분을 한다. 하지만 적분 과정에서 작은 오차가 생기고 시간이 지나면서 측정 횟수가 많아질수록(=적분을 할 수록) 적분 오차가 쌓여 값이 한 쪽으로 드리프트(이동)한다.
그럼 두 센서의 측정 회전각을 비교해보자.
# 2 가속도계 센서와 자이로스코프 센서의 회전각 비교
[그림 1] 가속도계 센서와 자이로스코프 센서의 회전각 비교
위 그래프는 앞서 공부한 두 모션 센서의 회전각(Pitch) 비교이다.
동시에 같은 움직임을 했다.
파란색 가속도계 센서의 회전각을 보면 역방향 회전을 시도할 때 마다
자이로스코프 센서 보다 득쑥날쑥한걸 알 수 있다. 하지만 측정 횟수 245부분에서와 같이
다시 원래 상태로 돌아왔을때 회전각은 그대로 0이다.
= 움직이면서 값이 튀는 현상이 발생하지만 시작과 끝이 일정하다.
빨간색 자이로스코프 센서의 회전각을 보면 움직이는 동안의 회전각은 비교적 안정되지만
측정 횟수가 약 245인 부분에서 가속도계와 비교했을때 0이 아닌 25정도의 값을 유지하는 것으로 보인다.
이는 앞서 설명한 적분 오차가 쌓여 발생한 드리프트 현상이다.
= 회전각을 구하면서 드리프트 현상이 나타나지만 움직이는 동안 회전각의 변화는 안정적이다.
이를 해결하기 위해서는 어떻게 해야할까?
# 3 해결방안 모색
그래서 우리가 원하는건 올바른 회전각을 얻어내는 일이다.
두 센서에서 나타는 현상을 보면서 장점과 단점이 두드러지게 나타나는 것을 알 수 있다.
그렇다면 두 센서의 장점을 결합하는 방법을 찾아보는건 어떨까?
다음 포스팅에서는 1차 상보필터를 통해 간단하게 두 센서를 융합하여 회전각을 보정하는 방법을 다루겠습니다.
댓글과 공감은 환영입니다.