3축 가속도와 3축 자이로 센서를 조합한 후 각각의 센서 출력을 내보내는 장치를 관성측정장치(IMU; Inertial Measurement Unit)이라고 부릅니다. 스마트폰에도 탑재되어 있을 정도로 그 용도가 근래에 흔하며, 비행기의 항법 장치에 필수적인 요소입니다. 기체의 자세 제어에 요구되는 롤(Roll), 피치(Pitch), 요(Yaw)의 기울어진 각도를 알기 위함으로, 롤은 좌우로 기울어짐, 피치는 앞뒤로 기울어짐, 요는 z축 방향으로 기울어짐(회전각)을 의미합니다. 여기서 롤과 피치는 중력방향을 기준으로 얼마나 기울어져 있는지를 나타냅니다.



이처럼 롤과 피치 그리고 요와 같은 자세 측정을 위해서는 필요한 장치가 자이로와 가속도 센서입니다.


MEMS 기반의 3축 가속도 센서(Accelerometer)는 x축, y축, z축 방향의 가속도를 측정할 수 있으며 단위는 [g]입니다. 가속도 센서는 정지한 상태에서 중력 가속도를 감지하기 때문에 z축 방향으로 -g 만큼의 값을 출력합니다. 센서의 초기 출력은 모두 '0'이라고 가정하고 센서를 y축 기준으로 45도 기울여 보면, 기울어진 상태에서 z축 방향과 x축 방향으로 동일한 값의 가속도가 측정되며 중력방향으로 g가 측정되어야 하므로 0.707g 만큼 z축과 x축 방향으로 값이 출력됩니다. 결과적으로는 z축과 x축 값의 비율을 arctan으로 계산하여 기울어진 값을 구할 수 있습니다.



그러나 정지 상태가 아닌 움직이는 가속 상태의 경우, 또다른 힘의 영향으로 중력 방향이 변한 것처럼 올바른 값을 얻을 수가 없습니다. 즉, 정지하지 않은 움직임 상태에서는 가속도 센서만으로 기울기 값을 측정할 수는 없습니다. 뿐만 아니라 z축상에 회전각인 요는 중력 방향(중력가속도)이 전혀 변하지 않으므로 측정이 불가능합니다.


3축 자이로 센서(Gyroscope)는 가속도를 측정하는 가속도 센서와 달리 각속도를 측정하므로 단위는 [degree/sec]입니다. 자이로는 각속도를 재는 장치이기에 이를 이용해서 각도를 알려면 전체 시간에 대하여 적분을 하여 얻게 됩니다. 그러나 센서에서 측정되는 각속도는 노이즈나 어떠한 이유에 의해 측정값에 에러가 계속 생기는데, 이 오차가 적분시에는 누적이 되어서 최종 값이 드리프트 되는 현상이 발생합니다. 게다가 시간이 지날수록 이 오차는 커져 각도가 변하게 된다는 것입이다.


결과적으로 정지상태의 긴 시간의 관점에서 보면 가속도 센서에 의해 계산된 각도는 올바른 값을 보여주지만, 자이로 센서에서는 시간이 지날 수록 틀린 값을 내보내게 됩니다. 반대로 움직이는 짧은 시간의 관점에서 보면 자이로 센서는 올바른 값을 보여주지만 가속도 센서는 다른 값을 내보내게 됩니다.


그러므로 가속도 센서와 자이로 센서를 모두 사용해서 각각의 단점을 보상할 수 있는 알고리즘을 적용하여 롤 또는 피치 값을 계산하여야 한다는 것입니다. 많이 사용하는 보상 방법 및 필터링으로는 칼만 필터(Kalman filter)의 적용입니다.


요의 회전축은 z축방향, 즉 중력방향과 같으므로 가속도 센서가 아닌 자이로 센서의 z축 값을 측정해서 이 값을 이용해 요값을 계산하여야 하고 드리프트되는 오차를 보상하는 다른 센서를 추가적으로 사용하는데, 이것이 지자기 센서(magnetometer or compass)입니다. 자이로는 온도가 변하면 그 값이 같이 변하는 특성이 있어 정교한 측정을 위해서는 온도 센서도 함께 사용해서 오차를 보상하기도 합니다. 이를 모두 고려하면 3축 가속도 센서, 3축 자이로 센서, 3축 지자기 센서를 내장한 IMU 센서를 9축 센서라 부르는 이유에서 입니다.



위 그림의 칩은 Invensense사의 9DOF IMU인 MPU-9150입니다. 이는 3축 자이로 센서와 3축 가속도 센서인 MPU-6050과 3축 지자기 센서(digital compass)를 One Pakage(SiP)하였으며, I2C(TWI)를 지원합니다. 여기서 DOF는 'Degree Of Freedom'의 약자로 '축(Axis)'을 의미합니다.



'Flight Controller 이해 > 센서' 카테고리의 다른 글

MPU6050 센서  (1) 2017.12.01
드론에 요구되는 각종 센서들  (0) 2017.02.26
Posted by Nature & Life


각종 센서들이 측정한 상태측정치들은 각 센서들 고유의 오차 및 잡음이 포함되기 때문에 비행제어기에서 바로 사용할 수 없습니다. 센서융합기는 자이로 센서, 가속도 센서 및 지자기 센서가 측정한 드론의 회전운동 상태측정치와 GPS 수신기 및 기압 센서가 측정한 드론의 병진운동 상태측정치들을 적절히 융합하여 각종 오차 및 잡음이 최소화 된 상태추정치를 계산합니다.


자이로 센서(Gyroscope)

관성측정장치(IMU) 내부에 있는 3축 자이로 센서를 이용해 드론 기체좌표 x, y, z 세 축이 지구관성좌표에 대하여 회전하는 각속도를 측정한 후 고정좌표로 변환된 값(Wx.gyro, Wx.gyro, Wx.gyro)을 계산합니다. 자이로 센서 측정치는 선형 미분방정식을 이용해 오일러 각도 (Φgyro, ϴgyro, ψgyro)로 변환될 수 있다. 자이로 센서 측정치는 저주파수 대역에서 바이어스(bias) 오차를 포함하기 때문에(즉, 드론이 정지해 있을 때에도 자이로 센서의 측정치가 '0'이 되지 않음) x, y, z 세 축에 대한 자이로 센서의 바이어스 오차가 제거되어야 합니다.


가속도 센서(Accelerometer)

자이로 센서의 스코프의 오차를 제거하기 위해 가속도 센서가 이용됩니다. 관성측정장치(IMU) 내부에 있는 가속도 센서를 이용해 드론 기체좌표 x, y, z 세 축의 지구관성좌표에 대한 가속도를 측정한 후 고정좌표로 변환된 값 (fx,acc, fy,acc, fz,acc)을 계산합니다. 가속도센서 측정치 역시 오일러 각도의 '롤(Φacc)'과 '피치(ϴacc)'로 변환될 수 있으며, 이 값들은 자이로 센서의 측정치를 이용해 계산한 '롤(Φgyro)'과 '피치(ϴgyro)'에 포함된 바이어스 오차를 제거하는데 이용됩니다. 하지만, 가속도 센서는 '요(yaw)'를 측정할 수 없기 때문에 자이로 센서를 이용해 측정한 '요(ψgyro)'에 포함된 바이어스 오차를 제거할 수 없습니다.


지자기 센서(Magetometer or Compass)

지자기 센서를 이용해 드론 기체좌표 x, y, z 세 축의 자북점에 대한 방향을 측정합니다. 이 값을 이용해 기체좌표의 NED 좌표에 대한 '요' 값을 계산할 수 있으며, 센서융합기는 지자기 센서로 측정한 '요(ψmag)'를 이용해 자이로 센서 측정치 '요(ψgyro)'에 포함된 바이어스 오차를 제거합니다. 고정날개 드론의 경우 몸체 전면에 피토관(Pitot Tube)을 부착해 좀 더 정확한 '요' 값을 측정할 수 있으나, 드론의 경우 몸체가 회전하면서 날아가기 때문에 피토관을 이용하기가 어렵다는 것입니다.


GPS 수신기 

GPS 수신기는 GPS 위성들로부터 수신한 신호를 이용해 NED 좌표 상에서 드론의 병진운동상태, 즉 위도(Pn.GPS), 경도(Pe.GPS), 고도(hMSL.GPS), 위도상의 속도(Vn.GPS), 경도상의 속도(Ve.GPS) 및 고도상의 속도(Vd.GPS)를 계산합니다. 여기서 첨자 MSL은 해수면(MSL: Mean Sea Level)을 의미합니다.


기압 센서(Barometer)

GPS 수신기를 통해 수신한 위치 좌표에는 항상 5~10m의 오차가 존재합니다. 민수용 GPS 수신기는 L1 주파수밴드(1.5GHz)의 C/A(Coarse-Acquisition) 코드 혹은 L2 주파수밴드(1.2GHz)의 C/A 코드 둘 중의 하나만을 수신할 수 있습니다. 하지만 군사용 GPS 수신기는 L1 C/A와 L2 C/A를 동시에 수신할 수 있어 Diversity로 인한 이득을 얻을 수 있으며, 추가로 암호화 신호(Encrypted Signal) P(Y)를 수신할 수 있어 GPS 신호가 지구의 이온층을 통과할 때 교란되는 것을 보정할 수 있습니다. 이를 이온층 보정(Ionospheric Correction라 일컫습니다. 5~10m의 GPS 고도 오차는 주로 저공비행을 하는 드론의 지상시설물들과의 충돌 위험을 야기시킵니다. 따라서 별도의 기압 센서를 이용하여 고도(hALP.baro)를 측정하기도 한다는 것입니다. 여기서, 첨자 ALP는 기압(Air-Level Pressor)를 의미하며 드론의 이륙시 기압과 현재 비행고도에서의 기압을 비교해 이륙 지점으로부터의 현재 고도를 계산합니다.


센서융합기는 회전운동상태(ΦE, ϴE, ψE)만을 추정하거나, 회전운동 상태와 병진운동상태(Plon.E, Plat.E, hE)를 동시에 추정할 수 있습니다. 회전운동상태 만을 추정하는 센서융합기를 AHRS(Attitude & Heading Reference System)라고 부르고, 회전운동상태와 병진운동상태를 동시에 추정하는 센서융합기를 관성항법기(INS; Inertial Navigation System)라고 부릅니다.


AHRS를 이용한 센서융합기

AHRS 센서융합기는 보상필터(Complimentary Filter; 상보필터)를 이용하거나 확장 칼만 필터(EKF: Extended Kalman Filter)를 이용합니다. AHRS 보상필터는 고주파 대역 특성이 좋은 자이로 센서의 상태측정치(Φgyro, ϴgyro)를 고주파 대역 필터로 추출하고, 저주파 대역 특성이 좋은 가속도 센서의 상태측정치(Φacc, ϴacc)를 저주파 대역 필터로 추출한 후 합쳐서 자이로 센서의 바이어스 오차가 최소화된 상태추정치(ΦE, ϴE)를 비행제어기(FC)로 전달해 줍니다.


AHRS 확장칼만필더(AHRS-EKF)는 드론의 비행역학(Flight Dynamics)을 이용해 각종 오차를 제거하는 방법입니다. 자이로 센서를 이용한 측정치(Φgyro, ϴgyro, ψgyro), 가속도 센서를 이용한 측정치(Φacc, ϴacc), 지자기 센서를 이용한 측정치(ψmag) 및 GPS 수신기를 이용한 측정치(Vn.GPS, Ve.GPS, Vd.GPS)를 이용해 실시간으로 드론의 회전운동역학(Rotational Dynamics)을 확장 칼만 필터를 이용해 모델링하면서 자이로 센서 및 가속도 센서의 바이어스 오차가 최소화된 상태추정치(ΦE, ϴE, ψE)를 계산해 비행제어기로 전달해 줍니다. GPS 수신기로 측정한 병진운동상태 측정치(Pn.GPS, Pe.GPS) 및 기압 센서로 측정한 고도측정치(hALP.baro)는 융합과정을 거치지 않고 그대로 비행제어기로 전달된다.




Posted by Nature & Life


과거 전통적인 RC 헬기는 역동적인 비행이나 실기에서 보지 못했던 배면 비행이나 곡예 비행 등으로 매니아를 사로잡았다면 최근의 쿼드콥터(Quadcopter)와 같은 드론은 안정된 기체의 자세 제어을 통해서 매우 정숙한 호버링이나 자동 이착륙 혹은 소위 'mission planner'와 같은 툴로 사용자가 미리 경유지점을 정해놓고 자동 비행하는 waypoint 비행 등으로 더욱 매력을 느끼게 할 것입니다.


전자의 경우 RC 헬기의 테일 움직임을 감지하여 메인 로터에 대한 반동 토크를 상쇄시켜 기체의 회전으로부터 안정성을 꾀하기 위한 최소한의 센서만을 사용하였고, 나머지 비행은 사용자 조종기의 사이클릭 제어에 절대 의지할 수 밖에 없기 때문에 입문자의 접근이 쉽지 않았다는 것입니다.


반면에 후자의 경우에는 갖가지 센서들을 탑재하여 비행 안정성이 확보되었기 때문에 드론이 단순한 취미나 레포츠를 떠나 항공촬영이나 방재, 택배 등의 임무에 적용이 용이하게 되었고, 그 만큼 비행자동화의 덕택으로 쉽게 배울 수 있어 사용자 층이 훨씬 두터워지고 급기야는 드론의 대중화가 현실화 되었다는 것입니다.


이와 같이 드론이 비행 안정화 및 자동화가 가능했던 이유는 우선 각종 첨단 센서들을 탑재한 시너지 효과라는 것입니다.


Accelerometer(가속도계):

직선 가속도를 측정하는 센서로 최근에는 x,y 그리고 z에 대한 3축(공간) 자이로(Gyro; Gyroscope)를 이용한 센서가 류를 이루게 되었습니다. 과거 RC 헬기가 단방향의 자이로 센서를 채용한 것과 달리, 이는 공간상에서 어느 방향이든 기체의 기울어짐을 감지하여 펌웨어로 하여금 즉시 자세 제어를 가능하게끔 하여 매우 정교한 호버링(정지비행)이 가능하게 되었다는 것입니다.



Barometer(공기압계): 

고도 센서의 용도로서 공기압이 지표면으로터 고도에 따라 감소함을 이용하여 공기압을 측정함으로서 현재 기체의 고도를 역으로 알 수 있게 되었다는 것입니다. 따라서 사용자는 정확이 얼마의 고도에서 기체가 비행할 수 있도록 명령할 수 있고 기체는 이 센서를 통하여 자동으로 고도를 조정할 수 있게 되었다는 것입니다.


Magnetometer(지자기계):

지자기 센서는 '전자 나침판(Electronic compass)'으로 지구의 자기(지자기)를 검출하여 동서남북 방향을 알려주는 센서로, 이를 이용하여 드론은 기체의 방향을 정확히 돌리거나 정해진 방향으로 자동으로 비행이 가능할 수 있게 되었다는 것입니다.


GPS(위치 센서):

익숙한 내용인 Global Positioning System으로 드론은 GPS 센서를 이용하여 인공위성으로부터 자신의 절대 위치를 알 수 있고 따라서 비행 좌표를 설정하거나 혹은 사용자가 시야에 보이지 않아도 안전하게 원래 위치로 되돌아 오는 등의 기능이 가능하게 되었다는 것입니다.




'Flight Controller 이해 > 센서' 카테고리의 다른 글

MPU6050 센서  (1) 2017.12.01
관성측정장치(IMU)의 원리  (0) 2017.03.14
Posted by Nature & Life
Drone News/Review2017. 2. 23. 22:13


Cheerson CX-20 Auto-Pathfinder는 'Quanum NOVA'라고도 불리우며 비행제어기(flight controller)로서 APM v2.5.2가 사용되며 firmware는 ArduCopter v3.1.2입니다. APM v2.5.2는 외장 지자기(magnetometer) 센서을 사용하며 메인 마이크로컨트롤러는 ATmega2560입니다.


다음은 Cheerson CX-20 Auto-Pathfinder의 내부 구성입니다.


CX-20 Auto-Pathfinder(Quanum NOVA)의 내부 모습


외장 I2C magnetometer와 APM v2.52


Barometric sensor를 보호하기 위해서 폼(foam)을 사용


APM과 프레임 사이에 진동을 차단하기 위해서 폼(foam)을 사용


GPS 


APM은 위의 CPU 보드와 아래의 I/O 보드로 구성


I/O 보드


Brushless 모터와 ESC


CPU 보드(APM v2.5.2)


I/O 보드


Cheerson CX-20 Auto-Pathfinder의 Open Source Version의 구입처:



Posted by Nature & Life


 

APM 2.6 Set (external compass)
 
The APM 2.6 is a complete open source autopilot system and the bestselling technology that won the prestigious 2012 Outback Challenge UAV competition. It allows the user to turn any fixed, rotary wing or multirotor vehicle (even cars and boats) into a fully autonomous vehicle; capable of performing programmed GPS missions with waypoints. Available with top or side connectors.

APM 2.6는 완전한 오픈 소스 자동조정장치 시스템이며 권위있는 2012 Outback Challenge UAV 대회에서 수상한 가장 많이 팔린 기술입니다. 이것은 사용자가 어떤 고정된, 회전하는 날개 혹은 멀티로터(multirotor) 운송수단(심지어 자동차 그리고 보트)을 완전히 자율적인 운송수단으로 가능하게 합니다; 경유지를 정해 프로그램된 GPS 미션을 수행하는 것이 가능합니다. 위 혹은 옆 커넥터와 함께 가능합니다. 

 

This revision of the board has no onboard compass, which is designed for vehicles (especially multicopters and rovers) where the compass should be placed as far from power and motor sources as possible to avoid magnetic interference. (On fixed wing aircraft it's often easier to mount APM far enough away from the motors and ESCs to avoid magnetic interference, so this is not as critical, but APM 2.6 gives more flexibility in that positioning and is a good choice for them, too). This is designed to be used with the 3DR uBlox GPS with Compass (see option below), so that the GPS/Compass unit can be mounted further from noise sources than APM itself.

보드의 이번 수정판은 온보드 compass를 실장하지 않습니다. 이것은 자기장 간섭을 가능한 피하기 위해서 파워나 모터로부터 멀리 떨어져 위치해야만 하는 compass를 가진 운송수단(특히 멀티콥터 그리고 로버)을 위하여 설계되었습니다. (고정 날개 비행체에서는 자기장 간섭을 피하기 위해 모터나 전자변속기(ESC)로부터 충분히 떨어져 APM를 탑재하는 것이 종종 쉽습니다 그래서 이것은 중요하지 않지만 APM 2.6은 어디에 탑재하느냐에 좀더 유연성을 주고 그것들을 위해서 역시 좋은 선택이 됩니다). 이것은 compass(see option below)를 가진 3DR uBlox GPS을 사용하도록 설계되어졌습니다. 그 결과, GPS/Compass는 APM 자체보다 잡음 소스로부터 좀더 멀리 탑재하는 것이 가능합니다.

 

 

APM 2.6 requires a GPS unit with an onboard compass for full autonomy.

APM 2.6은 완전한 자율조정을 위해서 온보드 compass를 가진 GPS를 필요합니다.

If you are using APM 2.6 with a GPS module that does not have a compass sensor, you must use a stand-alone external compass.

만일 여러분이 compass 센서를 가지지 않는 GPS 모듈과 APM 2.6을 사용한다면 여러분은 독립적인 외장 compass를 사용해야만 합니다. 

 

Features:
- Arduino Compatible!

- Can be ordered with top entry pins for attaching connectors vertically, or as side entry pins to slide your connectors in to either end horizontally.

- Includes 3-axis gyro, accelerometer and magnetometer, along with a high-performance barometer.

  (3축 자이로를 탑재한 가속도계와 지자기계, 고성능의 고도계)

- Onboard 4 MegaByte Dataflash chip for automatic datalogging.

  (자동적인 데이터 기록을 위한 4Mbyte 크기의 플레쉬 메모리 탑재)

- Optional off-board GPS, uBlox LEA-6H module with Compass.

  (지자기 센서를 포함하여 외장 GPS 모듈인 uBlox LEA-6H의 선택 가능)

- One of the first open source autopilot systems to use Invensense's 6 DoF Accelerometer/Gyro MPU-6000.

  (3축 자이로 가속도 센서로 MPU-6000)

- Barometric pressure sensor upgraded to MS5611-01BA03, from Measurement Specialties.

  (공기압을 측정하여 고도를 감지할 수 있는 고도 센서로서 MS5611-01BA03으로 개선됨)

- Atmel's ATMEGA2560 and ATMEGA32U-2 chips for processing and usb functions respectively.

  (USB 통신을 위해서 ATMEGA32U-2 칩을 내장)


APM(AutoPilot Mega) History

APM v2.5 - on board compass.

APM v2.5.2 ~ v2.8 - APM v2.5와 하드웨어와 소프트웨어는 동일하지만, PCB상에서 외란에 대한 간섭을 최소화하기 위해서 외장 지자기 센서를 사용할지 말지에 대한 점퍼스위치를 갖추고 있습니다. 기존에는 내장 Mediatek GPS를 사용하지만 APM v2.6에서는 외장 Ublox GPS/Compass 모듈의 사용이 가능합니다.




Posted by Nature & Life