[안드로이드] 자이로스코프 이야기. 가속도센서 vs 자이로센서 비교

by Blogger 하얀쿠아
2011. 8. 13. 08:54 소프트웨어 Note/Android

자이로스코프 이야기. 가속도센서 vs 자이로센서 비교


오늘은 자이로스코프(Gyroscope)에 대해서 얘기를 해볼까 한다.

자이로스코프는 보통 '자이로센서' 라고 부르는데, 이 센서의 유무에 따라 스마트폰 가격이 크게 달라지는 것 같다.
아이폰은 자이로센서가 기본 탑재인 반면 안드로이드폰은 의무사항이 아니다. 하드웨어 제조사에서는 단가를 낮춘 저가형 라인업도 가지고 있는 경우가 종종 있는데, 이런 안드로이드 스마트폰들은 자이로센서를 제외하고 출시하기도 한다.


아무튼, 이 자이로센서가 무엇이고 어떤 원리로 동작하는지를 알아보자.
그리고, 이 자이로센서가 가속도센서와는 어떻게 다른지, 그 둘간의 차이점에 대해서 그 후에 알아보겠다.

자이로스코프(Gyroscope)

운동하는 모든 물체는 각도를 갖고 있다. 예를 들면 자동차에 있어서는 도로를 회전하거나 등판 또는 경사된 길을 주행한다. 사람에 있어서는 어깨를 좌우로 흔들거나 머리를 회전시켜 사물을 보고, 그 방향으로 이동한다. 운동하는 물체의 특성을 파악할 때,  동적인 각도를 이해하는 것은 중요한 요소 중 하나이다. 그것을 제어 함으로써 자동차는 기울어져서 주행하는 상태를 파악할 수 있고 비행기는 무인으로 비행할 수 있는 것이다.


자이로스코프(Gyroscope)는 그 운동하는 물체의 각도를 계측하는 센서이다.

원리를 한번 알아보자.


각속도 측정의 원리


회전하는 구(球)를 생각해보자. 구의 회전축은 일정하게 유지하려는 특성을 갖고 있다. 또 구의 회전축을 기준으로 하면, 기준 축에 대한 기울기를 간단히 알 수가 있다. Gyro는 운동을 유지하고자 하는 성격을 이용하여 물체의 회전각도를 감지하는 센서이다. 가속도계를 이용하여 수직방향에 대해 어느 정도 기울어졌는지를 알 수 있는데 물체에 설치된 가속도계의 가속도 크기 와 수직에 대한 각도 사이에는 다음의 관계식이 된다.



그러므로 경사각속도 세타(θ)는 아래와 같다.



수식은 비교적 이해하기는 쉬우나 Gyro를 이해하기 어렵게 만드는 것은 각속도라는 동적(dynamical)인 '미분'양 을 다루지 않으면 안된다는 사실이다. 역학(力虐)이라는 측면에서 보면 속도 V로 병진운동하는 기준계에 대해 회전에 따라 생기는 「관성력」은 2m[  ]라는 콜리오리力과 m[    ]라는 원심력으로 이루어진다.(m:mass, r:radius)
결국, 일정속도로 운동하는 물체가 회전하면, 그 진행방향과 수직으로 콜리오리力이 발생하여, 진행방향 벡터와 합성한 벡터가 나타난다. 그래서 그 합성벡터를 관측하여 각 속도의 크기를 산출한다.


실제의 Gyroscope

이 각속도를 전압등의 전기적인 양으로 변화시키는 것이 현재 실용화되고 있는 Gyro이다.
Gyro는 각속도를 전압등의 전기량으로 출력한다. 예를 들어 /초, 즉 전혀 회전하지 않을 때  출력하고 /초의 회전 즉, 1초사이에  회전하는 각속도 때  역 회전 /초 때로 맞추어 출력한다.
만약, Gyro에서의 전압이 출력되면 현재의 각속도는 다음과 같다.

마이크로 컴퓨터는 Gyro 로부터의 전압출력을 고속 ADC(Analog Digital Converter)로 입력하여, 스케일을 물리적인 양으로 변화시키고 그것을 적분함으로써, 회전 각도를 구한다.


3차원 용도측정

현재 시판되고 있는 Gyro는 1축 Gyro인데 통상 그것을 3개 사용하여 3차원적인 각도센서로 만들어 공급하고 있다. 3개의 Gyro를 X, Y, Z축에 따라 이들 축의 회전각속도를 측정한다. x축 회전각도를 roll 각, Y축 회전을 pitch각, Z축 회전을 yaw라 부른다.


자동차가 경사진 주행로를 주행하는 경우를 생각해 보자. Gyro의 X축을 진행방향과 나란히 설치한 차를 일주시키면, 차의 1회전 각도 yaw각은 360가 되지 않으면 안된다.
roll각에 보통 30 기울어 졌을 때 Z축을 회전하는 차의 회전 각속도(yaw각속도)를 측정하면, 평면에 놓여졌을 때 보다 데이타가 작게 되어 1分 적분하면 결과는 360가 되지 않는다. 왜냐하면 3차원 물체는 각각의 축 단독으로 동작하지 않고, 다른 축에 영향을 받아서 회전하기 때문에 그 영향을 고려하는 것이 필요하다. 3차원 각도센서를 만들기 위해서는 그 영향을 알고리즘으로 확립하는 것이 필요하다.


Dynamical(동적) 각도 측정

움직이는 물체의 각도를 측정하기 위해서는 Gyro가 필요하다. 정적인 각도는 가속도계(G 센서)로 측정하고, 동적인 각도는 Gyro로서 측정하며, 그 둘을 합성한다. 가속도계의 단점은 중력 성분과는 별도로 운동에 따른 가속도도 감지하기 때문에 운동이 정지하여 가속도가 중력의 영향을 받을 때만 각도계로서 이용될 수 있는 것이다. 다시말하면, 움직이며 회전하는 물체의 각도 감지에는 적용될 수가 없다. 그 동적인 각도는 Gyro로서 측정한다. Gyro는 온도영향에 따라 계측 각도가 드리프트(drift)되는 단점을 가지고 있기 때문에 이것을 보정하고 나서 본래 물체의 각도를 구한다.


자이로스코프(Gyroscope)의 종류 

진동 Gyro (Vibration Gyro)

진동 자이로는 등 속도 운동을 하는 물체에 회전이 가해지면 속도방향과 수직한 방향으로 콜리오리力이 발생하여 속도와의 합성벡터를 측정하므로써 회전각속도를 계측하는 원리로 만들어진다. 
즉, 물체를  등 속으로 운동시키면서 거기에 전후로 진동을 가해 속도를 얻는다. 여기서, 진동이 필요하게 되어 진동 Gyro라 부른다. 


광 Fiber Gyro(FOG: Fiber Optics Gyroscope)

광 화이버를 좌우로 감고, 레이져 광선을 발광시킨다. 이 때 권선을 감은 축이 오른쪽으로 회전이 되면, 우측으로 돌아 나가는 광선 쪽이 주행경로가 길고, 왼쪽이 짧아진다. 즉, 회전에 의해 출구까지의 도달시간 차이로 위상이 달라져 좌우로 회전하는 빛에서 간섭을 일으킨다. 그것을 관측하여 회전각속도를 측정한다. 진동 자이로, 광 하이버자이로들은 정밀도와 크기가 다양하므로 보통 가격, 크기, 정밀도, 용도에 따라 사용하는 것이 나누어져 있다. 초고정도용 각도센서, 고정도 산업용 각도센서, 산업용 차속 센서, 다이나믹 경사계, 취미용 3차원, Cam-coder등으로 인간의 동작을 감지한다.


응용분야

- 머리의 움직임과 TV화면의 운동 ; 머리의 각도와 운동방향을   감지하여 화면과 연동시킨다.(간이형 진동 Gyro)

- BS 안테나 추적장치 ; 차량에 탑재된 BS안테나를 운전 중 요동을 cancel시켜 위성의 방향으로 향하게 한다.(고정도 진동 Gyro)

- 차의 경사센서 ; 차의 경사를 감지하여 기울기 제어를  (고정도 진동 Gyro)

- 도로의 휘어짐을 측정 ; 도로의 구부러짐과 경사각도를 계측 (중간정도 광 fiber Gyro)

- Camera 용 안테나 Stabilizer

- GPS를 이용 Navigation System(진동 Gyro Fog)

- Guideless 무인운반차, 무인청소차(Fog)

종합적으로 GYRO는 각도,위치 정보를 얻는 것으로 다양한 사업분야에 적용될 수 있다. (전기, 기계, 건축, 오락, 대학, 연구소, 의료업계등)

  * 저가격형 VIBRATING GYRO
    - 자동차,철도차량 이동체의 자세제어
    - 건설기계,로보트,무인차,헬기 자세제어
    - 이동 체에 탑재한 안테나등의 방향 감지
    - Navigation 시스템


  * 3축 가속도센서(정전용량형)
    - CAR NAVIGATION 관련 차속 검출
    - 지진 검지/ 경사 계측
    - MOTION CONTROL 전반
    - VIRTUAL REALITY(가상현실) SYSTEM 


  * 각도검출 유니트(프로세서 내장)
    - 연산 프로세서 및 소프트웨어 일체형
    - 저 가격 고정도의 이동 체 각도 검출 장치
    - 건기,크레인등의 붐(BOOM)의 경사각 검출
    - 무인운반차/무인농기계/무인건설차량의 자세제어
    - 이동 체에 탑재된 PLATFORM의 정 위치 계측
  * 고급형 GYROSCOPE
    - 고정밀도, 상위 콘트롤라와의 인터페이스 기능
    - 선박 및 시뮬레이션 기기


자이로 센서(Gyroscope)와 가속도 센서(Accelerometer)의 차이점

  1. 가속도 센서는 특정 지점에서 특정 지점으로 이동하는 벡터(Vector)형태의 인지밖에 할 수 없다.
  2. 자이로스코프 센서는 x, y, z축의 변화를 추적하여 말그대로 아이폰의 회전을 감지할 수 있다.
  3. 가속도 센서는 실제로 골프게임과 같은것을 구현할 때 골프채를 곡선으로 휘두르는것을 인지할수가 없다.
  4. 마찬가지로 가속도 센서는 트위스트와 같은 꽈배기 형태의 움직임을 인지할 수 없다.
  5. 자이로스코프센서는 아이폰의 회전률을 정확하게 알아낼 수 있다.

정리해 보면 가속도센서는 직선방향의 움직임을, 자이로스코프센서는 곡선(정확히는 장비의 회전)을 인식할 수 있다. 그러므로 둘다 적절히 혼합할 경우 재미난 것을 만들 수 있게 된다. 이 둘을 활용한 굉장히 다양한 어플리케이션이 등장할 것으로 예상된다.

 수많은 센서들을 이용하여 다양한 게임도 만들어낼수 있을것으로 보이는데, 자이로스코프 센서도 아이폰에서의 새로운 형태의 게임이 탄생되는 계기를 마련해 줄지 기대가 된다.






이 댓글을 비밀 댓글로
    • 2013.12.06 11:13
    비밀댓글입니다
    • ㄴㄴ
    • 2017.12.15 19:35
    자이로센서 만으로는 정확하게 측정이 안될텐데요
    직접 테스트 같은건 전혀 안해보고 작성하신것 같은데
    실제로 해보면 자이로센서는 움직일수록 값이 틀어집니다
    • 안녕하세요 ^^ 이 글은 자이로센서의 '원리', '응용분야', '종류' 및 '가속도센서와의 차이' 만을 소개하는 겉핡기 식의 글이었습니다.

      작성하고자 의도했던 글 내용 자체가 직접 테스트 같은건 전혀 해볼필요가 없는 것이라, 말씀하신대로 이글을 작성할 당시에는 테스트같은걸 하지 않고 작성했습니다. (물론 이 글을 작성하기 수개월 전부터 자이로센서를 이래저래 사용해오긴 했습니다만..^^;)

      말씀하신대로 자이로센서로 각도를 구하려 하면, drift라고 부르는 오차가 있습니다. 자이로센서의 출력값은 각도가 아니라 각속도 이다 보니, 각도를 구하기 위해 이 출력값을 적분을 하는 과정에서 생기는 오차이지요...

      단독으로 자이로센서만 사용할 경우 저가형/고가형 모두 정도차이는 있겠지만, 어쩔 수 없이 나타나는 현상이라 알고 있습니다.

      그래서 '가속도센서'로 이 drift오차를 보정해 주는 방법을 사용하기도 하고... 이런 저런 SW적인 필터로 보정을 하기도 하고... 예산이 가용한 범위내에서 최적의 방법으로 보정을 해서 사용을 해야 겠지요.

      그러나 개요만 핥고 지나가는 이 글에서는 그런 것 까지 다루진 않았습니다 ^^;

      혹시 제가 잘 못 알고 있는 부분이 있다면 알려주시면 감사하겠습니다!