관리 메뉴

개발자비행일지

Drone -Gyro Sensor 본문

▶ Ardupilot

Drone -Gyro Sensor

Cyber0946 2020. 12. 6. 13:42

Gyroscope는 회전각을 측정하기 위한 센서이다. 즉, 회전하는 운동을 측정하는 센서라고 생각하면 된다. 

이러한 Gyrosocpe는 드론의 Attitude Control에서 핵심역할을 수행한다. 여기서 Attitude Control은 드론이 수평자세를 유지할 수 있게 해주는 Control로직의 핵심 알고리즘중 하나이며, 센서값 ->Callibration -> EKF -> PID -> Motor input 으로 일련의 데이터 플로우를 가지게 된다.

자이로의 원리 어떤 사물이 축을 기준으로 회전을 하게 될 때, 아래의 그림처럼 각속도라는 것을 가지게 된다.  

위의 그림에서 바퀴가 도는 중심축을  Z축이라하고, 바퀴위에 센서가 부착되었다고 가정해 본다.

그럼 센서를 통해서 Z축을 통해 회전하는 각속도를 측정할 수 있다.

만약, 1초에 한바퀴씩 회전한다고 할 때, 각속도 W 는 360˚/sec 가 된다.  이때 바퀴의 회전 방향(시계/반시계) 인지에 따라서 각속도의 부호가 결정된다. 

우리는 흔히 3축 자이로 센서라는 말을 자주 듣는다. 이 떄, 소위 3축 자이로센서라는 것은 위의 그림처럼 x,y,z,축의 회전 각속도를 측정할 수 있다는 것을 의미한다. 자이로는 매우 천천히 회전하는 시스템에도 사용되기도 한다. 실생활의 예로는 비행기가 있다. 비행기가 기울어진 정도를 보상해서(Attitude Control)을 통해 수평비행을 보조하는데 자이로센서가 사용된다. 그렇다면 자이로는 어떤 식으로 각속도를 측정하는 것일까??? 다음 그림을 통해서 알 수 있다. 

MEMS 기반의 자이로센서 내부에 있는 측정 시스템은 굉장이 작은 무게의 추가 내부에 존재하고, 이 추가 회전에 의해서 쉬프트 되는 방향을 측정하고, 이것을 전기신호로 증폭한 뒤, 발생하는 코리울리 힘을 통해서 회전속도를 검출하게 된다. 즉, 전기적으로 회전중심축으로 부터 어떤 방향으로 힘이 생기는 지 특정가능 하고 이로 인해 발생하는 코리울리 힘을 측정할 수 있다면 역으로 회전 방향과 회전 속도를 측정해 낼 수 있는 것이다. 아래 그림은 이해를 돕기 위해 필기한 내용이다.

 

자이로 연결

자이로를 사용하기 위해서는 우선 전원부분과 통신부분의 연결이 필요하며, 센서에 관해 설명이 되어 있는 데이터 시트가 필요하다. 구글링을 통해서 센서의 명칭을 검색하면, 연결 방법 및, 레지스터 데이터 읽어오는 법 등 다양한 튜토리얼들이 존재한다. 

통신 인터페이스

자이로 센서는 일반적으로 디지털 혹은 아날로그 방식으로 회전속도를 제공한다. 

  • 디지털 인터페이스로의 자이로센서는 소위 SPI 혹은 I2C 통신 프로토콜을 사용하는데, 아두이노와 같은 마이크로컨트롤러에서 기본적으로 제공한다. I2C 방식에 비해서 SPI 방식이 보다 빠르며, 이는 곧 초당 더 많은 수의 회전속도값을 받을 수 있다는 이야기입니다. 그렇게 되면 더 빠른 속도로 적분을 해서 오차가 적은 회전량을 측정할 수 있다.

  • 아날로그 방식의 자이로센서는 각속도를 전압으로 출력한다. 즉, 마이크로컨트롤러의 ADC를 사용하여 값을 읽을 수 있으며, 일반적으로 더 저렴하고 때로는 더 정확하다. 

전원

MEMS(멤스) 자이로는 일반적으로 저전력 장치입니다. 구동 전류는 몇 mA 혹은 몇 마이크로A이며, 전압은 일반적으로 5V보다 낮습니다.

자이로를 선택하는 법

너무나 많은 자이로센서들 중에서 어떤 자이로센서를 사용할지 결정하는 것이 힘든 것은 사실입니다. 가장 보편적인 방법으로는 가장 많이 사용하는 자이로센서를 사용하는 것이겠지만, 애플리케이션의 성능 및 사이즈에 따라서 고려해야할 사항이 많이 있을 수 있기 때문에, 메카솔루션 기술지원을 받으면 좋습니다(mechasolution.com). 일반적으로 다음의 사항들을 고려해서 선택한다. 1) 각속도 측정 범위, 2) 감도 (Sensitivity), 3) 오차 (Bias), 4) 가격, 5) 사용 인터페이스 등.

'▶ Ardupilot' 카테고리의 다른 글

[펌글]PWM이란?  (0) 2021.02.24
Drone-Gyroscope 계산과정  (0) 2020.12.06
매틀랩 단축키  (0) 2020.10.08
C++ 초기화 리스트  (0) 2020.09.03
Back Ground For Ardupilot, Mavlink  (0) 2020.08.01