August 11, 2020

디바이스마트 미디어:

[11호]왜 두 개의 센서를 융합하는가?

상보필터 Part 1. 

왜 두 개의 센서를 융합하는가?

저자약력 : PinkWink.
로봇의 실제 구현에 관련된 모든 것에 관심이 많으며, pinkwink.kr이라는 개인 블로그를 운영중.
2011년부터 은둔 생활을 청산하고 (주)엔티렉스 로봇연구소의 연구소장으로 재직중.
연재와 관련된 질문은 devicezine.co.kr에서 문의바랍니다.

1. 들어가며

저가의 MEMS형 센서를 사용해서 각도를 측정하는 많은 방법들이 소개되어있다. 실제로 인터넷을 조금만 찾아도 정말 많은 방법들이 소개되어 있음을 알 수 있다. 그 방법들에는 단순히 자이로 센서만 사용하는 방법에서부터 자이로 센서와 가속도 센서를 융합해서 사용하는 방법에까지 다양하게 나와있으며, 심지어 학습용으로 몇몇 대표적인 융합방법들을 예제로 제공하는 학습용 보드들도 디바이스마트(devicemart.co.kr)에 등록되어 있다.

자세 측정 자체에 관심이 없는 경우에는 이런 방법들을 그냥 가져다 쓰는 것이 당장의 문제를 해결하는 것에는 도움이 되겠으나, 만약 관련 부분에 대한 공부를 하는 경우에는 문제가 있다. 도대체 왜 각도 하나를 측정하자고 센서를 두 개나 사용해서 융합해야 하는가? 또, 왜 하필 그게 자이로 센서와 가속도 센서가 융합의 주류인가? 라는 의문을 자세 측정분야에 관심이 있다면 가져야 하지 않을까 생각한다.
하긴 그렇다고 하더라도, 사실 어떻게 융합하는가에 대한 설명은 참으로 많지만, 왜? 융합하는가에 대한 설명은 상대적으로 그 분량이 작다. 그래서, 이번 기획은 두 센서를 융합해서 자세를 측정하는 방법 중 상보필터라는 것을 소개하고, 그 첫번째 시간대로 도대체 왜 센서를 융합할 수 밖에 없었는가에 대한 글을 적고자 한다. 각도를 측정하는 일반적인 방법과 센서들을 몇 개 나열하고 센서를 하나만 사용했을 때의 어려움에 대해 이야기하고자 한다.

2. 엔코더나 포텐셔미터를 이용한 자세 측정의 문제점

엔코더나 포텐셔미터는 아마 가장 일반적으로 사용되는 각도 측정 장치일 것이다. 그러나 이와 같은 센서들은 고정점 대비 상대적인 각도를 측정한다. 그로 인해 공중에 떠 있거나, 혹은 고정빔을 설치할 수 없는 곳에서는 자세를 측정하는데 문제가 있다.

그림1. 포텐셔미터(좌)와 엔코더(우)

그림1. 포텐셔미터(좌)와 엔코더(우)

그림2. 엔코더나 포텐셔미터의 자세측정에서의 한계

그림2. 엔코더나 포텐셔미터의 자세측정에서의 한계

그림2에서 보다시피 좌측의 그림처럼 엔코더 자체를 고정하고, 엔코더의 축을 회전해야만 각도가 측정되는 것이기 때문에, 그림2의 우측처럼 고정점이 없으면, 정확한 각도를 측정하기 어려워진다.

3. 자이로 센서를 이용한 방법의 한계

자이로 센서 또한 자세 측정에 많이 사용된다. 그러나 여기서 다루는 것은 실제 항공기나 선박에 장착되는 고가의 장비가 아니라 겨우 몇 만원대의 MEMS형 저가 자이로 센서이다. 이런 저가의 자이로 센서는 역시 한계를 가지게 된다.

그림3. 실험장비

그림3. 실험장비

먼저 기억해야 할 것은 자이로 센서는 각도를 출력으로 가지지 않는다는 것이다. 자이로 센서는 그 구현 원리상 각속도를 출력으로 가진다. 그래서 각도를 구하기 위해서는 당연히 자이로의 출력인 각속도를 적분해서 각도로 변환할 필요가 있다. 여기서 바로 문제가 생기게 된다.
먼저 본 글 전체에 사용될 실험을 위한 장비가 그림3에 나타나있다. 흔히 진자시스템(Pendulum System)이라고 부르는 장비로 본래 목적은 아니지만, 이번 실험에는 아주 적합한 장비이다. 여기에 자이로센서와 다음 장에서 다룰 가속도 센서를 미리 연결하고, 참값과의 비교를 위해 엔코더 또한 장착했다. 센서들의 부착위치는 암(Arm)과 진자(Pendulum)가 만나는 곳이다.
먼저 자이로 센서의 정확도를 확인하기 위해 자이로의 출력값인 각속도와 그래도 참값이라고 믿을 수 있는 엔코더의 각도를 차분한 각속도를 비교해 본다.

그림4. 자이로의 출력(각속도)과 엔코더의 출력을 차분한 값과의 비교

그림4. 자이로의 출력(각속도)과 엔코더의 출력을 차분한 값과의 비교

그림4에서 보듯이 완전히 일치시킬 수는 없지만, 어느 정도는 자이로의 출력과 엔코더의 차분치를 일치 시켰다. 이제 이 상태에서 자이로의 출력인 각속도를 적분해서 각도를 확인해보자.

그림 5. 자이로센서의 출력을 적분한 각도와 엔코더와의 비교

그림 5. 자이로센서의 출력을 적분한 각도와 엔코더와의 비교

참값이라고 가정할 수 있는 엔코더의 차분치(물론 오차는 있지만)와 일치시키는 작업을 하고 난 후의 적분치이지만, 역시 한쪽으로 흐르는 현상이 있다. 이 드리프트(Drift)라고 부르는 적분 과정에서 생기는 오차는 적분이라는 과정을 수행하는 경우 항상 존재할 수 있는 상황이다. 아무리 온도보정을 많이 하고, 또 정교한 필터링을 한다고 해도, 결국 자이로 센서만 사용하는 경우는 어쩔 수 없이 나타나는 현상이다.
자이로 센서의 출력이 각속도이고, 그래서 각도를 얻기 위해서는 어쩔 수 없이 적분이라는 과정을 거쳐야 한다. 그리고, 그림5에서 보듯이 자이로의 출력에서 미세한 오차가 있다면, 결국 그것이 누적되고 또 누적되면서 적분한 결과인 각도는 한 쪽으로 흐르게 되는 현상이 발생하고, 이것이 자이로 센서 하나만 사용해서 자세를 측정할 수 없는 한계가 된다.

4. 기울기 센서를 이용한 방법의 한계

MEMS형 센서는 아니지만, 기울기 센서라는 것도 엄연히 존재한다. 너무 많은 종류의 기울기 센서들이 있기 때문에 역시 MEMS형 자이로 센서와 비슷한 가격대의 기울기 센서라고 한정짓도록 하자. 기울기 센서는 그럼 왜 안되는 걸까. 역시 그림3의 장비에서 자이로와 같은 위치에 기울기 센서를 장착하고 측정한 결과를 보자.

그림6. 기울기센서의 결과

그림6. 기울기센서의 결과

그림6에서 보이듯이 기울기센서도 이름처럼 그렇게 좋은 결과를 가져오지는 못한다. 기울기 센서는 일반적으로 유체성분이 센서 안에 밀폐되어있고, 적절한 점도를 가진 그 유체의 기울어지는 정도를 전압으로 환산해서 기울어진 각도를 측정하게 된다. 그런데 그릇에 물을 채워놓고 빠르게 기울이면, 유체는 신기하게도 가장 변화속도가 빠른 지점에서 물 자신이 기울어지는 속도보다 더 기울게 되는 현상이 있다. 이 현상이 기울기 센서에서도 발생하게 되는데, 그것이 그림6에 잘 나타나 있다.
그래서 기울기 센서는 내부의 유체가 안정화되는 시간이 필요하다. 이게 바로 기울기 센서의 응답속도를 느리게 만드는 요인이 되며, 대략 몇 백 ms정도의 시간이 필요하다. 센서와 같은 장비를 처음 만지는 학생들의 경우 이 응답속도라는 단어를 혼돈하게 되는데, 응답속도가 100ms라는 것이 참 값이 100ms후에 나온다는 의미가 아님을 알아야한다. 저렇게 유체가 안정화되는데 시간이 필요한 경우 빠르게 움직여야하는 시스템이라면 제대로 된 자세 측정은 어렵다고 봐야한다.

5. 가속도 센서를 이용한 방법의 한계

이제 마지막으로 또 각도를 측정하는 센서 중에서 많이 사용되는 것 중에 가속도 센서가 있다. 가속도를 측정한다는 의미의 이름이 붙은 이 센서로 어떻게 각도를 측정하는가? 정답은 간단한 삼각함수에 있다.

그림7. 가속도 센서에서 각도를 구하는 원리

그림7. 가속도 센서에서 각도를 구하는 원리

한 면만 놓고 쉽게 설명을 하면, 그림7에서 보듯이 가속도 센서의 두 축의 값을 읽어서 간단히 Arctan를 이용하면,
11scsang011
이렇게 각도를 구할 수 있다.
이 간단한 방법은 사실 정말 편하고 유용하다. 자이로 센서처럼 적분으로 인한 오차의 누적현상이 없고, 기울기 센서처럼 느린 응답속도로 인한 문제도 없다. 그림3의 장비에서 암(Arm)을 고정하고 진자(Pendulum)만 움직여서 얻은 결과를 보자.

그림8. 가속도 센서를 이용한 각도 측정

그림8. 가속도 센서를 이용한 각도 측정

그림 8을 보면 정말 결과가 좋다는 것을 알 수 있다. 그럼 아주 손쉽게 각도- 즉 자세를 측정할 수 있을 것 같지만, 사실 그렇지 않다. 그림8의 결과를 얻은 실험은 암(Arm)을 고정했다. 이것이 가속도 센서의 한계인데,

그림 9. 가속도 센서를 이용해 각도를 측정할 때의 문제점

그림 9. 가속도 센서를 이용해 각도를 측정할 때의 문제점

바로 그림7처럼 회전 각도가 발생하는 그 중심에 가속도센서가 위치하지 못하고, 그림9처럼 회전 중심축에서 멀어져서 회전하는 경우 문제가 발생한다. 센서의 이름이 가속도 센서라는 사실에 주목해야 하는데, 그림9와 같은 상황에서는 접선, 법선 방향의 가속도 성분이 가속도 센서에 같이 인가가 되면서, 그림8과 같은 실험을 수행하게 되면 결과가 이상해진다.

그림 10. 가속도 센서를 이용한 각도측정의 한계

그림 10. 가속도 센서를 이용한 각도측정의 한계

바로 그림10처럼 그 결과가 안좋아지게 된다. 이는 가속도 센서에 회전 각도를 검출하는데 필요한 성분에 더해서 접선, 법선 방향의 가속도 성분이 인가되면서 그렇게 된 것이다.

6. 결론

본 글에서 단일 센서만 사용했을 때, 자세 측정에서 어떤 문제가 발생하는지 확인해 보았다. 엔코더와 같은 센서들은 고정점이 필요하고, 자이로 센서는 적분에서의 오차가, 기울기 센서는 느린 응답특성이, 가속도 센서는 회전 중심축과 센서의 중심이 맞아야한다는 문제가 있음을 확인했다.
이제 다음에는 이와 같은 문제들로 인해 많이들 사용하는 센서의 융합에서 상보필터를 소개하고, 그 원리와 사용방법에 대해 다루고자 한다.


■ 본 글은 2011년 2월 필자의 학위논문 중 일부를 발췌 후 잡지의 의도에 맞게 재정리한 것임을 미리 밝힙니다.

Leave A Comment

*