[12호]왜 두 개의 센서를 융합하는가? 2부
상보필터 Part 2.
왜 두 개의 센서를 융합하는가?
저자약력 : PinkWink.
로봇의 실제 구현에 관련된 모든 것에 관심이 많으며, pinkwink.kr이라는 개인 블로그를 운영중.
2011년부터 은둔 생활을 청산하고 (주)엔티렉스 로봇연구소의 연구소장으로 재직중.
연재와 관련된 질문은 devicezine.co.kr에서 문의바랍니다.
1. 들어가며
1회에서 왜 하나의 센서만 사용해서는 각도 측정이 어려운가에 대해 이야기를 했다. 이제 본 회에서는 어떻게 센서를 융합하고, 또 어떤 원리로 그것이 동작하는가에 대해 이야기를 하려고 한다. 본 글에서는 융합의 방법으로 인터넷상에 나와있는 것 중 대표적인 것이 칼만필터와 상보필터인데, 그 중 상보필터를 다룰려고 한다. 필터가 중요한 것이 아니라 어떻게 융합하는지 그 원리가 중요할 것이다.
2. 현상의 관측
먼저 그림1에는 실험용 장비가 나타나있다. 흔히들 펜들럼, 역진자 시스템이라고 부르는 장비인데, 그림에 표시된 것처럼 자이로 센서와 가속도센서를 장착했다. 해당 위치에 장착해서 암과 진자를 모두 흔들면 1회에서 이야기한 것 처럼, 자이로 센서나 특히 가속도 센서 하나만 사용해서는 각도 측정에 어려움을 겪게 된다.
그림1의 장비에서 진자와 암을 동시에 임의로 흔든다. 그리고 나서 진자의 각도를 엔코더를 통해 보고(실선), 자이로 센서의 결과인 각속도를 적분해서 각도(점선)로 본 것이 그림2이다. 1회에서도 이야기했지만, 확실히 드리프트(drift)현상이 발생하는 것은 확인가능하다. 그런데, 한가지 자이로 센서의 결과를 적분한 것은 전체적으로 각도의 흐름현상은 있지만, 움직이는 변화추이는 상당히 잘 나타나 있다는 것을 알 수 있다.
그림3에서는 그림2와 같은 상황에서 엔코더의 각도와 가속도 센서에서 계산된 각도를 비교한 것이다. 그림2의 자이로의 결과를 적분한 것과는 달리, 각도의 흐름 현상(drift)은 관측되지 않지만, 암이 많이 움직인 곳에서는 신뢰할 수 없는 결과가 나타나고 있다. 또 다른 표현으로는 진자 자체만 보더라도 각도의 변화가 심한 곳에서는 신뢰할 수 없다고 볼 수도 있다.
그렇다면, 주어진 실험에서 확인할 수 있는 것은 각도가 흐르는 것은 아주 저 주파수의 영역이라고 본다면, 자이로 센서는 가속도센서에 비해 고주파 영역에서 비교적으로 괜찮은 결과가 나오며, 가속도 센서는 상대적으로 저주파 영역에서 괜찮은 결과가 나온다고 볼 수 있다. 결국, 자이로+가속도 센서를 통해 각도를 얻으려고 한다면, 저주파 영역에서는 가속도 센서를, 고주파 영역에서는 자이로 센서의 결과를 신뢰하면 안될까?
3. 상보필터의 기본개념
그림4의 상보필터의 기본개념을 보자. 이전 절에서 자이로 센서를 적분한 결과로 나타나는 각도는 고주파 영역에서 응답특성이 좋았기 때문에 고역통과필터를, 가속도 센서에서 계산된 각도는 저주파 영역에서 응답특성이 좋았기 때문에 저역통과필터를 적용시키고, 이를 합하기로 한다. 그림4의 개념은 이전 절의 제목처럼 현상을 보고 그 현상을 극복하는 방안으로 잡힌 것이다.
그림4를 수식화하면 바로,
‘1’이 되어야만 최종식은 성립된다. 이 규칙을 무너뜨리면 필터의 안정성은 보장받기가 어렵다.
4. 상보필터의 설계 방법
그렇다면 상보필터는 어떻게 설계하는 것일까. 먼저 아래 그림을 보자.
그림5는 저역/고역통과필터의 보드선도를 그려놓은 것이다. 저 두 필터가 만나는 곳을 차단주파수로 설정하는 것이 일반적으로 알려진 방법이다. 대상은 1차 필터로 한정하자.
위 식은 1차 고역통과필터이다. 이 두식을 필터의 개념식에 대입해서 정리하면,
아주 간단한 그림6의 1차 상보필터가 된다. 이때 필터계수는 딱 하나 뿐으로, 이를 가지고 간단히 실험을 수행해보면 쉽게 필터를
확정지을 수 있다. a1을 여기서는 간단히 ‘1’이라고 하자.
그림7에서 제시한 아주 간단히 설계된 1차 상보필터를 최초 실험에 적용한 결과를 보면 얼마나 각도가 잘 맞아가는지를 알 수 있다.
5. 결론
이렇게 2회 연재를 마치게 되었다. 애초 각도측정에 있어서, 프로세서에 적용하는 방법이나, 실제 MCU단에서의 설계 등은 이미 인터넷 서치를 통해 그 소스를 쉽게 구할 수 있다. 필자는 단지 그와 같은 소스들의 단순 사용이 아니라, 상보필터라는 것이 왜 필요한지에 대해 이야기를 할려고 했었다. 1회에서는 자이로 센서, 가속도 센서, 기울기 센서 등을 하나만 사용했을 때, 왜 각도 추정에 실패하는지에 대해 이야기를 했고, 이번 2회에서는 그 중, 자이로 센서와 가속도 센서를 놓고 센서들의 특성을 관측했다. 그로부터 상보필터의 개념을 소개했다. 다시 이야기하지만, 이 필터를 MCU단, 혹은 PC 프로그램상에서 어떻게 설계하는 것인가에 대한 문제는 이미 많이 공개된 인터넷상의 자료로 넘기고자 한다.
■ 본 글은 2011년 2월 필자의 학위논문 중 일부를 발췌 후 잡지의 의도에 맞게 재정리한 것임을 미리 밝힙니다.