Korean Institute of Information Technology

Home

The Journal of Korean Institute of Information Technology - Vol. 16 , No. 12

[ Article ]
The Journal of Korean Institute of Information Technology - Vol. 16, No. 12, pp. 49-56
Abbreviation: Journal of KIIT
ISSN: 1598-8619 (Print) 2093-7571 (Online)
Print publication date 31 Dec 2018
Received 07 Sep 2018 Revised 18 Oct 2018 Accepted 21 Oct 2018
DOI: https://doi.org/10.14801/jkiit.2018.16.12.49

멀티콥터의 자율비행을 위한 호버링 시스템
김형수* ; 박병호** ; 한영환***
*상지대학교 정보통신공학과
**㈜코스모티어 기술연구소 소장
***상지대학교 정보통신공학과 교수

Hovering System for Autonomous Flight of Multi-copter
Hyung-Su Kim* ; Byeong-Ho Park** ; Young-Hwan Han***
Correspondence to : Young-Hwan Han Department of Information and Communication Eng., Sangji University Wonju, Korea, Tel: +82-33-730-0485, Email: yhhan@sanji.ac.kr


초록

4차 산업혁명 시대가 도래하면서 무인항공기의 활용에 대한 관심이 급증하고 있다. 드론을 활용한 다양한 기술개발이 이루어지고 있는 가운데 드론의 비행 제어는 가장 기본이 된다. 드론의 비행제어 중 특히 자율비행을 가능하게하기 위해서는 호버링 제어가 필수적이다. 본 논문에서는 드론의 호버링 제어를 위해 ATmega2560과 소나, Optical Flow, 가속도/자이로 6축 센서를 바탕으로 드론을 설계하고 PID 제어를 기반으로 한 수평제어, 고도제어, 위치 추적 및 고정 알고리즘을 개발하였다. 본 연구에서는 드론의 객관적인 결과를 측정하기 위하여 시간에 따라 드론이 이륙하는 직후부터 고도를 유지하고 위치를 고정하고 안정적인 호버링을 유지할 때까지의 이동 값을 측정하여 비교 분석 하였다. 실험결과 드론은 기준좌표의 50cm 상공에서 수평 4cm, 수직 2cm 이내에서 안정적으로 호버링 할 수 있는 것으로 나타났다.

Abstract

As the era of the 4th industrial revolution comes, there is a growing interest in the use of UAVs. While various technologies are being developed using drones, controlling flight of drones is the most basic. Hovering control is essential in order to enable autonomous flight, especially during flight control of drones. In this paper, we design drones based on ATmega2560, Sonar, Optical Flow, and acceleration / gyro 6 axis sensor for drones hovering control, and developed horizontal control, altitude control, position tracking and fixed algorithm based on PID control. In this research, in order to measure the objective result of the drone, keeping the altitude immediately after the drone takes off according to the time, measure the movement value until the position is fixed and stable hovering is maintained and compared analyzed. Experimental results show that the drones can stably hover within 4cm horizontal and 2cm vertical from 50cm above the reference coordinates.


Keywords: optical flow, altitude control, position hold, PID control

Ⅰ. 서 론

4차 산업혁명 시대에는 인공지능, 사물 인터넷, 빅 데이터, 모바일 등 첨단 정보통신기술이 사회 전반에 보급 및 사용되면서 사회의 아주 작은 부분까지 정보와 융합되고 있다. 특히 정보수집의 중요성이 대두됨에 따라 접근이 어려운 영역까지 정보를 수집하기 위한 다양한 방법이 연구되고 있다. 정보수집수단의 일환으로써 드론이 사용되고 있으며 이에 대한 관심과 활용에 대한 연구가 활발히 진행되고 있다[1].

드론은 무인항공기 분야 중 멀티콥터류를 일컫는 것으로 초기에 군사용으로 많이 개발되고 사용되었던 에어콥터 형태의 무인항공기보다 활용도가 더욱 높은 것으로 기대되고 있다. 초기 군사용 무인항공기의 경우 고고도에서의 임무수행 및 장거리 임무수행 등의 기능이 중시되었다. 현재 민간에서 활용할 무인항공기는 고고도에서의 임무보다는 고도 10여미터 이내의 저고도와 근거리 혹은 실내공간에서의 임무수행이 주요 활용목적이다. 때문에 고정익 형태의 에어콥터보다 회전익 형태의 멀티콥터가 사용에 적합하여 많이 활용되고 있다.

드론의 구조는 크게 하드웨어와 소프트웨어로 나눌 수 있다. 하드웨어적 구조를 살펴보면 회전날개의 개수가 3개, 4개, 6개, 8개를 가진 것들이 많이 사용되고 있으며, 여러 개의 날개를 가지고 있다하여 멀티콥터라고 칭하고 있다. 드론의 세부 부품들은 수많은 제조사들이 용도별로 제작하여 시판하고 있다. 소프트웨어는 마이크로 컨트롤러를 통한 제어와 각종 센서를 이용한 정보수집, 용도에 따라 부착된 기계장치의 제어, 통신 등을 포함한다[2]-[4].

드론을 제어하기 위하여 기체의 바디와 프레임의 균형을 맞추는 것이 기본적으로 선행되어야 한다. 소프트웨어는 기체의 상태를 실시간으로 제어할 수 있어야 하며, 이를 위해 기체의 상태를 정확하게 파악할 수 있어야 한다. 기체의 상태를 정확하게 파악하기 위한 센서로 가속도 센서, 자이로 센서, 고도 센서 등을 부착한다[5]-[7].

드론을 제어할 때는 드론의 비행환경에서 발생할 수 있는 다양한 변수를 고려하여야 한다. 장애물이 많거나, 사람이 많은 장소 등에서 제어가 불가능한 상황이 발생하면 최악의 경우 인명사고까지 발생할 수 있는 심각한 문제를 일으킬 수 있다. 또한, 장애물에 충돌하여 드론이 파손되거나 분실하는 상황이 발생하여 금전적 피해가 발생할 수 있어 최근 이를 방지하기 위한 다양한 연구가 진행되고 있다[6][7].

이러한 문제점을 해결하기 위해서는 드론을 안정적으로 제어하여야 한다. 안정적 제어라는 드론이 어떠한 공간에서 비행을 하더라도 명령을 통하여 드론을 제자리에 고수할 수 있어야 한다.

본 논문에서는 이러한 연구의 일환으로 드론의 자세와 위치를 감지하고, 현재의 위치를 고수하도록 제어하는 호버링 알고리즘을 연구하였다. 이를 위해옵티컬 플로우 센서, 초음파 센서, 가속도/자이로 6축 센서를 사용하여 기체의 위치와 고도, 자세를 측정하였다. PID 알고리즘을 적용하여 현재의 위치와 고도를 수평으로 유지할 수 있도록 하여 호버링 시스템을 구축하였다.

본 논문의 구성은 다음과 같다. 2장에서는 본 논문에서 설계한 시스템에 대하여 설명한다. 3장에서는 설계하여 구축한 시스템의 테스트 결과에 대하여 기술하고 4장에서 결론을 기술한다.


Ⅱ. 호버링 시스템

멀티콥터에서 호버링이란 드론이 제자리에서 정지 비행하는 것을 말한다. 멀티콥터가 정지 비행하는 동안 무게와 항력의 합이 추력과 양력의 합과 같아야한다. 이 두 가지의 합을 정확히 일치한 상태로 유지시키기 어렵다. 또한 하드웨어적인 문제, 전기적인 문제, 외부의 문제 등 다양한 영향에 의해 지속적인 제어가 필요하다. 멀티콥터를 상승시키거나 하강시키기 위해서는 추력을 증가시키거나 감소시켜야 하는데 적정한 추력의 값을 구하기 위하여 개발한 각 알고리즘에 PID 알고리즘을 적용하였다.

PID 알고리즘은 모터를 제어하는데 가장 많이 사용되는 제어 방법 중 하나이다. PID 제어는 오래전부터 사용되어온 방법으로 설계가 비교적 쉬우며, 다양한 운용 조건에서도 안정적인 결과를 가져오기 때문에 본 논문에서 개발한 알고리즘에 각각 적용하였다.

2.1 하드웨어 설계

본 논문의 시스템을 설계 및 테스트하기 위하여 드론을 설계하였다. 설계한 드론은 F450급 프레임 바디를 사용하였으며, 마이크로컨트롤러는 Atmel사의 ATmega2560 프로세서를 기반으로 한다. 전체적인 하드웨어 구조는 센서, 모터 출력, 통신, 전원으로 구성된다. 그림 1은 본 논문에서 설계한 드론의 구성을 나타낸 것이다.


Fig. 1. 
Hardware diagram

FC(Flight Controller)는 구성된 하드웨어를 통합적으로 제어하는 역할을 수행하고 비행에 필요한 알고리즘 연산도 담당한다. 센서는 옵티컬 플로우 센서(Adns-3080), 초음파 센서(HC-SR04), 가속도/자이로 6축 센서(MPU-6050)로 구성한다. 옵티컬 플로우 센서를 활용하여 드론의 현재 좌표값을 인식하여 위치를 고정하는 역할을 수행한다. 초음파 센서는 드론의 높이를 실시간으로 마이크로프로세서에 전달함으로써 고도를 원활하게 유지한다. 가속도/자이로 6축 센서를 활용하여 드론이 항상 수평을 유지하면서 비행할 수 있도록 한다. 멀티콥터의 4개의 모터에 원활하게 전압 및 전류를 공급하기 위해 변속기(ESC, Electronic Speed Controller)는 필수적으로 사용되어야 한다. 변속기는 드론의 모터 회전방향과 모터의 회전속도를 제어 함으로써 드론이 안정적인 비행이 가능하도록 한다. 또한, 조종기의 throttle값과 체널 값을 수신 받아 드론의 모터를 제어한다.

2.2 소프트웨어 설계

설계한 드론의 소프트웨어 구성은 메인루프가 동작하는 동안 센서 컨트롤을 통한 위치 추적 알고리즘과 고도유지 알고리즘, 수평제어 알고리즘에 의해 변속기 및 모터 제어를 수행한다. 사용자는 조종기를 통한 이벤트를 발생시켜 특정 알고리즘의 on/off 제어 및 수동 조종을 수행할 수 있다.

그림 2는 본 논문에서 설계한 소프트웨어의 동작과 관련된 구성도를 나타낸 것이다.


Fig. 2. 
Software diagram

드론이 시동된 상태에서는 수평제어 알고리즘이 동작하며, 드론의 사용자 명령 수행과 병행하여 기체의 수평을 유지해 준다. 고도제어 알고리즘은 초음파 센서의 값을 기반으로 PID 알고리즘을 적용하여 일정 고도를 유지하도록 하였다. 위치추적 알고리즘은 옵티컬 플로우 센서를 사용하여 사용자가 조종기의 이벤트를 통해 지정한 기준점을 추적하여 PID 알고리즘을 통한 제어를 통해 기준점을 이탈하지 않도록 변속기와 모터를 제어한다.

2.3 제안 알고리즘

본 논문에서는 드론이 고도를 유지하는 동시에 특정한 위치의 좌표를 고수하는 동작을 수행한다. 위 동작을 위하여 총 3가지의 제어 알고리즘을 고안하였다. 그림 3은 비행 중 드론이 지속적으로 수평을 유지할 수 있게 하는 알고리즘의 흐름도이다.


Fig. 3. 
Horizontal control algorithm

수평유지 알고리즘은 조종기의 throttle을 올리는 동시에 동작하며 비행이 끝날때까지 수평을 유지하는 동작을 수행한다. 6축 센서로부터 roll, pirch, yaw의 센서값을 읽어와 초당각도(deg/seg)를 계산하고 PID gain값을 Ziegler-Nichols method를 참조하여 계산하였다. Ziegler-Nichols method는 매우 오래 전부터 실용화되어 많이 사용되는 자동 조정 방법이다. PID 설정의 최적 값을 구하도록 되어있으며, 근사 응답과 한계 감도법의 두 가지가 있다. 이 중 근사 응답을 이용하는 계단응답곡선은 제어 대상에 단위계단 입력을 넣어 구한 출력 응답을 통해 구한 특성계수로부터 PID계수를 선정하는 것이다. 한계 감도법을 이용한 방법은 Ti를 무한대로하고 Td를 0으로 두고서 Kp를 0부터 증가시키면서 임계 이득과 임계주기를 구하여 게인 값을 구할 식에 넣어 제어기를 구하는 것이다. 여기서 Kp는 비례계수, Ti는 적분시간, Td는 미분시간을 나타낸다. 근사응답 방법은 적분기가 없는 시스템에서만 사용 가능하기 때문에 멀티콥터는 한계 감도법을 사용하여야 한다.

다음 식 (1)은 임계이득과 임계주기를 계산하는 식을 나타낸 것이다.

Kcr=4dAπPcr=2πWc(1) 

식 (1)에서 d는 릴레이 진폭, A는 출력 진폭을 나타낸다. 앞서 기술한 방법으로 임계이득(Kcr, Critical Gain)과 임계주기(Pcr, Critical Period)를 구한 후 다음 표 1을 이용하여 이득값을 구한다. 다음 식 2표 1에 값을 계산하는 일반식이다.

MVt=Kpet+Ti0tetdt+Tddedt(2) 
Table 1. 
Ziegler-nichols method
제어기의 종류 Kp Ti Td
PID 0.6Kcr 0.5Pcr 0.125Pcr

위 방법을 사용하여도 조금의 오차가 발생할 수 있는데 이는 PID계수를 조금 수정하여 보정할 수 있다. 그림 4는 4개의 모터를 제어하여 수평을 유지할 때 PID 계산 알고리즘을 나타낸 것이다.


Fig. 4. 
PID calculation algorithm

드론의 고도유지 알고리즘은 수평유지 알고리즘이 동작하고 있는 가운데 드론의 높이를 실시간으로 입력받아 제어를 실시한다. 초음파 센서를 통해 높이 정보를 입력 받으면 비주기적인 프레임에 오류정보가 입력된다. 이 때 초음파 센서 값을 가공하지 않고 적용하면 특정 고도를 유지할 수 없다. 따라서 초음파 센서 값에 메디안필터를 적용해 오류 값을 예외로 처리함과 동시에 일정한 고도 값을 유지할 수 있도록 하였다. PID value의 throttle 값의 범위는 모터의 출력 가능 범위를 나타낸 것이다. 그림 5는 드론이 수평 비행하면서 고도를 유지할 수 있게 하는 알고리즘의 흐름도이다.


Fig. 5. 
Altitude hold algorithm

드론이 비행하는 도중 수평 유지 알고리즘과 고도 유지 알고리즘이 동작할 때 드론은 현재의 위치를 유지하지 못한다. 내부적으로 모터의 출력이 항상 정확하고 일정하게 유지되지 못하며, 외부적으로 공기의 흐름 혹은 바람 등의 요인으로 인하여 드론의 위치가 지속적으로 변화하게 된다. 이를 해결하기 위하여 위치 추적 알고리즘을 개발하였다.

개발한 위치 추적 알고리즘은 옵티컬 플로우 센서를 이용하여 드론의 좌표를 특정하게 된다. 사용자 특정 위치에 기준 좌표를 설정하면 해당 좌표를 유지하기 위한 동작을 수행한다. 기준 좌표를 기점으로 드론이 이동한 좌표와의 이동 거리를 산출하여 PID 알고리즘을 통한 보정 값을 적용한다.

그림 6은 드론이 수평과 고도를 유지하는 동시에 드론의 현재 위치를 추적하여 고정할 수 있는 알고리즘의 흐름도이다.


Fig. 6. 
Location tracking algorithm

PID의 특성 상 최초의 보정 값이 적용된 후 오버슈트가 발생하게 되고 오버슈트된 만큼의 좌표 이탈이 발생하게 되어 정상상태(목표치도달)에 이르기까지 정착시간을 줄이기 위해 PID 설정 값을 조정하였다. 내적인 요인과 외적인 요인에 상관없이 위치의 이동이 발생하면 기준 좌표를 추적하여 위치를 유지하도록 설계하였다. 개발한 알고리즘을 모두 적용한 드론은 3차원공간에서의 특정 위치를 유지하며 호버링할 수 있다. 그림 7은 본 논문에서 설계한 드론이다.


Fig. 7. 
Designed drone


Ⅲ. 실 험
3.1 실험 환경 및 방법

실험 결과 데이터 수집을 위해 개발한 드론에 블루투스 모듈(전송속도:115200bps)을 설치하고 실시간으로 데이터를 전송하도록 하였다. 또한 동일한 조건을 유지하여 실험하기 위해 외적 요인을 최소화한 실내 공간을 첫 번째 실험 장소로 지정하였다.

본 연구에서는 드론의 객관적인 결과를 측정하기 위하여 시간에 따라 드론이 이륙하는 직후부터 고도를 유지하고 위치를 고정하고 안정적인 호버링을 유지할 때까지의 이동 값을 측정하여 비교 분석 하였다. 제안 알고리즘을 적용하여 드론이 위치 고정 연산을 수행하는 동안 드론에 오버슈트가 발생하여 기준좌표를 이탈하게 된다. 이 때 드론이 오버슈트 되어 이동된 좌표를 기록하여 분석하였다. 지정한 공간에서 100회의 반복적인 실험을 실시하였다. 드론의 비행은 고도 50cm를 지속적으로 유지하고 위치 고정 명령을 내리는 순간 비행하고 있는 위치를 기준좌표로 설정한다. 기준좌표를 이탈하면 드론이 제어를 시작한다. 실험의 목표치는 호버링 시 기준좌표에서 ±10cm 이내와 목표고도에서 ±5cm 이내의 범위에서 동작하는 것으로 한다.

3.2 실험 결과

본 연구에서는 드론의 객관적인 결과를 측정하기 위하여 시간에 따라 거리변화량을 측정하였고 동시에 평면공간에서의 드론의 이동경로를 추적하였다. 1번 실험 당 10회의 비행을 수행하였으며, 총 10번의 실험 데이터를 통해 분석하였다. 실험 시간은 1회 비행 시 60초간 데이터를 측정하였으며 모든 비행에서 10초 이후로는 안정적인 상태를 유지하였기 때문에 실험 결과 데이터는 10초 이내에서 제시하였다. 그림 8은 10번의 실험 중 1번의 실험(10회)에 대한 드론의 고도변화를 나타낸 것이다. 그래프에서와 같이 목표 고도인 50cm를 오차범위 2cm 이내에서 유지하는 것을 확인할 수 있었다.


Fig. 8. 
Altitude variation range

그림 9는 10번의 실험 데이터에서 시간에 따른 거리변화량을 그래프로 표현한 것이다.


Fig. 9. 
Distance variation range

그래프에서와 같이 드론의 움직임은 특정 좌표를 선택하여 정상상태에 들어서면 4cm 이내의 오차범위를 유지하는 것을 확인할 수 있었다. 기준좌표로부터 드론의 위치에 대한 거리는 x축의 거리와 y축의 거리를 기반으로 삼각함수를 이용하여 계산하였다.

그림 10은 드론이 움직이는 좌표를 바탕으로 평면공간에 표현한 것이다. 기준좌표를 중심으로 정상상태에 들어서면 위치를 잘 유지하는 것을 확인할 수 있었다.


Fig. 10. 
Path of the drones in the plane space


Ⅳ. 결론 및 향후 과제

본 논문에서는 고도를 유지하는 동시에 특정 위치를 고수할 수 있는 호버링 동작이 가능한 드론을 설계하였다. ATmega2560 기반으로 초음파, 옵티컬 플로우, 가속도/자이로 6축 센서를 바탕으로 하드웨어를 설계하였다. 소프트웨어는 PID 알고리즘 기반으로 수평유지, 고도유지, 위치추적 및 고정 알고리즘을 설계하였다. 드론은 이륙과 동시에 수평유지를 수행하고 조종기의 명령에 따라 고도와 위치를 고정한다.

실험은 외부요인을 최소화한 실내공간에서 이루어졌으며, 총 100회의 실험을 실시하였다. 실험결과 드론의 고도유지는 목표 고도인 50cm를 오차범위 ±2cm 이내에서 유지하는 것을 확인할 수 있었다. 위치 추적 및 고정명령은 드론이 비행하는 중간에 이루어 졌으며 명령을 내리는 순간의 좌표를 기준좌표로 설정한다. 그 결과 드론은 관성 및 내외부요인에 영향을 받았으나 정상상태에 들어서면 ±4cm 이내의 오차범위를 유지하는 것을 확인할 수 있었다. 따라서 기준좌표의 50cm 상공에서 수평 ±4cm, 수직 ±2cm 이내에서 안정적으로 호버링 할 수 있는 것으로 나타났다.

향후연구로는 안정적인 호버링을 바탕으로 라이다 센서와 영상처리 기술을 응용한 지능형 드론개발을 진행할 계획이다.


References
1. S. H. Park, Y. J. H. Go, J. Ryi, and J. S. Choi, "Prediction and Verification of Hover Performance through Multi-Copter Propulsion System Test Results", Journal of the Korean Society for Aeronautical & Space Sciences, 46(7), p527-534, Jul, 2018.
2. Mustapa Zaki, S. H. Husin, and N. Abas, "Altitude controller design for multi-copter UAV", In Computer, Communications, and Control Technology (I4CT), 2014 International Conference on. IEEE, 2(4), p382-387, Sep, 2014.
3. H. Robert, "A survey of indoor inertial positioning systems for pedestrians", IEEE Communications Surveys & Tutorials, 15(3), p1281-1239, Jan, 2013.
4. Y. M. Kim, and W. B. Baek, "Terminal Sliding Mode Hovering Control for Quadrotor with Input Uncertainty", Journal of KIIT, 14(2), p7-12, Feb, 2016.
5. N. H. Abbas, and A. R. Sami, "Tuning of PID Controllers for Quadcopter System using Cultural Exchange Imperialist Competitive Algorithm", Journal of Engineering, 24(2), p80-99, Feb, 2018.
6. A. Dorzhigulov, B. Bissengaliuly, B. F. Spencer, J. Kim, and A. P. James, "ANFIS based quadrotor drone altitude control implementation on Raspberry Pi platform", Analog Integrated Circuits and Signal Processing, 95(3), p435-445, Mar, 2018.
7. M. J. Kim, W. K. Baek, K. N. Ha, and M. G. Joo, "Implementation of Hovering AUV and Its Attitude Control Using PID Controller", Journal of Ocean Engineering and Technology, 30(3), p221-226, Jun, 2016.

저자소개
김 형 수 (Hyung-Su Kim)

2012년 2월 : 상지대학교 컴퓨터정보공학부 (공학사)

2014년 2월 : 상지대학교 컴퓨터정보공학과 (공학석사)

2014년 3월 ~ 현재 : 상지대학교 컴퓨터정보공학과 박사과정

관심분야 : 센서신호처리, 영상처리, 임베디드시스템

박 병 호 (Byeong-Ho Park)

2012년 2월 : 상지대학교 컴퓨터정보공학부 (공학사)

2010년 2월 : 상지대학교 컴퓨터정보공학과 (공학석사)

2014년 8월 : 상지대학교 컴퓨터정보공학과 (공학박사)

2012년 12월 ~ 현재 : ㈜코스모티어 기술연구소 소장

관심분야 : 센서네트워크, 신호처리, 영상처리

한 영 환 (Young-Hwan Han)

1995년 8월 : 인하대학교 전자공학과 (공학박사)

1996년 3월 ~ 현재 : 상지대학교 정보통신공학과 교수

관심분야 : 영상처리, 바이오인식, 임베디드시스템