안희준
(SeoulTech, Dept. of Electrical & Information Eng.)
,
훵꽁앙
(SeoulTech, Dept. of Electrical & Information Eng.)
,
도 딴 뚜안
(SeoulTech, Dept. of Electrical & Information Eng.)
소형드론의 상용화를 위해서는 안전성과 자율운행기능의 확보가 필수적이다. 최근 드론제작이 상당히 용이해졌으나, 여전히 안정적인 드론의 제작은 쉽지 않다. 따라서 자체드론제작 필요성은 영상이나 자율이동 등 상위 알고리즘의 연구에 큰 장애요소로 존재한다. 본 연구에서는 상용드론과 Raspberry PI, 및 오픈소스를 활용하여, 쿼드로터 드론의 자율운행기술 개발 중 영상기반 자율운행을 설계해볼 수 있는 지상원격제어시스템(GCS)을 설계하고 구현하였다. 설계한 시스템은 모듈화된 구성으로 통신, UI 및 영상처리 모듈로 구성하였고, 특히 주행선유지 알고리즘을 구현하여 기능 및 성능 실험을 하였다. 설계한 주행선유지 알고리즘은 Hough 변환에 의하여 검출된 차선을 소실점 검출과 자제적인 라인트래킹 알고리즘을 개발하여 사용하여 인식오류를 줄였으며, 주행선과 드론의 진행방향을 계산하고 방향 (전진, 정지, 좌우회전)제어하였다. 구현된 시스템은 현재 100m육상트랙의 직선과 완만한 곡선을 2-3 m/s로 주행할 수 있다.
소형드론의 상용화를 위해서는 안전성과 자율운행기능의 확보가 필수적이다. 최근 드론제작이 상당히 용이해졌으나, 여전히 안정적인 드론의 제작은 쉽지 않다. 따라서 자체드론제작 필요성은 영상이나 자율이동 등 상위 알고리즘의 연구에 큰 장애요소로 존재한다. 본 연구에서는 상용드론과 Raspberry PI, 및 오픈소스를 활용하여, 쿼드로터 드론의 자율운행기술 개발 중 영상기반 자율운행을 설계해볼 수 있는 지상원격제어시스템(GCS)을 설계하고 구현하였다. 설계한 시스템은 모듈화된 구성으로 통신, UI 및 영상처리 모듈로 구성하였고, 특히 주행선유지 알고리즘을 구현하여 기능 및 성능 실험을 하였다. 설계한 주행선유지 알고리즘은 Hough 변환에 의하여 검출된 차선을 소실점 검출과 자제적인 라인트래킹 알고리즘을 개발하여 사용하여 인식오류를 줄였으며, 주행선과 드론의 진행방향을 계산하고 방향 (전진, 정지, 좌우회전)제어하였다. 구현된 시스템은 현재 100m육상트랙의 직선과 완만한 곡선을 2-3 m/s로 주행할 수 있다.
The safety and autonomous flight function of micro UAV or drones is crucial to its commercial application. The requirement of own building stable drones is still a non-trivial obstacle for researchers that want to focus on the intelligence function, such vision and navigation algorithm. The paper pr...
The safety and autonomous flight function of micro UAV or drones is crucial to its commercial application. The requirement of own building stable drones is still a non-trivial obstacle for researchers that want to focus on the intelligence function, such vision and navigation algorithm. The paper present a GCS using commercial drone and hardware platforms, and open source software. The system follows modular architecture and now composed of the communication, UI, image processing. Especially, lane-keeping algorithm. are designed and verified through testing at a sports stadium. The designed lane-keeping algorithm estimates drone position and heading in the lane using Hough transform for line detection, RANSAC-vanishing point algorithm for selecting the desired lines, and tracking algorithm for stability of lines. The flight of drone is controlled by 'forward', 'stop', 'clock-rotate', and 'counter-clock rotate' commands. The present implemented system can fly straight and mild curve lane at 2-3 m/s.
The safety and autonomous flight function of micro UAV or drones is crucial to its commercial application. The requirement of own building stable drones is still a non-trivial obstacle for researchers that want to focus on the intelligence function, such vision and navigation algorithm. The paper present a GCS using commercial drone and hardware platforms, and open source software. The system follows modular architecture and now composed of the communication, UI, image processing. Especially, lane-keeping algorithm. are designed and verified through testing at a sports stadium. The designed lane-keeping algorithm estimates drone position and heading in the lane using Hough transform for line detection, RANSAC-vanishing point algorithm for selecting the desired lines, and tracking algorithm for stability of lines. The flight of drone is controlled by 'forward', 'stop', 'clock-rotate', and 'counter-clock rotate' commands. The present implemented system can fly straight and mild curve lane at 2-3 m/s.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서 드론의 자율주행 연구를 위한 GCS 설계 제작하였다. 개발된 시스템은 성능 평가를 위한 응용 예로, 육상 트랙 경기장의 트랙을 인식하여 레인을 따라서 일주행이 가능하도록 구현하였다.
본 연구는 영상제어가 가능한 GCS 시스템을 구성하는 것이 목적이나, 설계가 충분히 의미가 있음을 확인하기 위하여 구체적인 응용인 주행선 유지 알고리즘을 구현하였다. LDWS (Lane departure warning System)은 자동차에서 운전자 안전 보조기능으로 활발히 연구되고 있는 알고리즘이다 [6].
문헌상에 Parrot 사의 제품들을 활용하거나 분석한 연구들을 다수 찾을 수 있다[3-5].본 연구에서는 드론에서 전송되는 영상을 사용하여 주행선 유지하는 기능을 시험적으로 설계구현 하였다. 주행선 유지 기능을 선택한 이유는, 드론상용에 가장 우선적인 요소가 ‘안전성 확보’라고 볼 수 있으며, 드론에 자동차에서 적용되는 안전보조장치 (ADAS: Automatic Driving Assistant System) 기술[6]을 적용하고 가능성과 보완점을 찾는 것이 중요하다고 생각했기 때문이다.
따라서 통신, 영상처리, 인공지능 등의 전문연구 분야를 갖는 연구자들이 본인의 아이디어를 실현해볼 수 있는 개발환경을 구축하는 것이 필요하다. 본 연구에서는 현재 상용화된 드론과 보드를 활용하고, 널리 사용되는 오픈소스 프로그램 환경을 사용하여 통신 및 자율주행 연구를 할 수 있는 GCS (Ground Control System)시스템 설계를 수행하였다. 특히, 개발된 시스템의 동작을 확인하기 위하여 실제 자율운행기술을 개발하였다.
여기서는 설계한 드론 지상제어 시스템은 드론응용에 필요한 여러 가지 영상 처리알고리즘을 개발하고 이를 실험해 볼 수 있게 하려는 목적에서 설계하였다. 실험에서 사용한 드론(Parrot사의 Bebop)의 의존성을 최소화하기 위하여 모듈화하여 설계하였다.
11에 제시하였다. 연구의 최종 목적은 육상 경주 트랙을 완주하는 것으로 하였으나, 곡선 주로에 대한 영상 처리 알고리즘의 성능 안정적이지 못하여, 본연구의 결과는 직선 주로에서의 결과로 제한하였다. Snake 알고리즘[10] 등을 사용하여 곡선차선을 모델링하는 것이 추후 사항이다.
일반적인 처리 결과는 앞서 설명하였으므로, 구현 후 실험에서 나온 수행결과에 대해 기술한다. Raspberry PI3 환경에서 영상처리 각 단계의 실행시간은 Table 2와 같다.
제안 방법
각 모듈별로 실시간적 동시성을 만족하기 위하여, 각 부분 별로 쓰레드를 할당하였다. UI와 주 기능을 위한 주-쓰레드, 드론과의 프로토콜통신을 담당하는 프로토콜 쓰레드, 그리고 영상처리를 담당하는 영상처리 쓰레드로 구성하였다. 영상데이터를 수신하고 디코딩하는 부분 까지는 현재 프로토콜 쓰레드에서 담당하고 있다.
크게 드론과 통신을 담당하는 프로토콜부, 영상을 수신하고 영상 처리를 하는 영상처리부, 영상처리 결과를 바탕으로 드론시스템을 제어하는 주제어부로 구성하였다. 각 모듈별로 실시간적 동시성을 만족하기 위하여, 각 부분 별로 쓰레드를 할당하였다. UI와 주 기능을 위한 주-쓰레드, 드론과의 프로토콜통신을 담당하는 프로토콜 쓰레드, 그리고 영상처리를 담당하는 영상처리 쓰레드로 구성하였다.
본 논문에서 드론의 자율주행 연구를 위한 GCS 설계 제작하였다. 개발된 시스템은 성능 평가를 위한 응용 예로, 육상 트랙 경기장의 트랙을 인식하여 레인을 따라서 일주행이 가능하도록 구현하였다. 기존에 발표된 주행선 유지(lane-keeping) 알고리즘의 연구들을 바탕으로 환경에 맞게 개선하여, 직선과 완만한 곡선에서 성공적인 주행이 가능하였다.
이처럼 비동기적으로 동작하는 경우를, 생산자-소비자 쓰레드 모델로 쓰레드 간에 버퍼를 사용하고 세마포를 이용하여 동기화 하는 것이다. 그러나 본 응용의 경우에는 생산 빈도가 소비 빈도에 비하여 2-3배 이상 높으며 실시간 성 요구 때문에 버퍼에 저장하는 것이 크게 효율이 없기 때문에 버퍼는 하나만을 사용하여 구성을 단순화하였다
LDWS (Lane departure warning System)은 자동차에서 운전자 안전 보조기능으로 활발히 연구되고 있는 알고리즘이다 [6]. 따라서 기존의 차량용 알고리즘을 기초로 드론에 적용하고 차이를 살펴보았다. 차량용 LDWS 알고리즘과 근본적인 차이는 없다고 볼 수 없으나, 주행선 이탈을 경고하는데 그치지 않고, 조향을 제어하여 직접 자율 비행한다는 점과, 상대적으로 높은 고도에서 주행선을 내려 다보고 동작함으로써 주변경계물들이 영상에 많이 포함되어 이를 처리해야한다는 점등이 차이점이다.
영상 처리 주기에 비하여 고속으로 비행하는 경우 현재 주행하는 라인을 추적하는 것이 불가능하다. 따라서 영상 처리 속도에 따른 드론의 비행속도를 제한하여야하며, 본실험에서는 2-3 m/s를 설정하여 동작하도록 하였다.
이에 대하여 Particle 필터나, Kalman필터방식은 시스템의 모델링이 필요하고 계산량도 증가하는 점 등이 있다. 본 연구에서는 추정된 선분결과를 기록하고, 새롭게 추정된 선분과 비교하여 일정한 거리 안에 있는 선분을 매칭(Fig. 8)하는 방식을 사용하였다 (Fig. 7 (f)).
여기서는 설계한 드론 지상제어 시스템은 드론응용에 필요한 여러 가지 영상 처리알고리즘을 개발하고 이를 실험해 볼 수 있게 하려는 목적에서 설계하였다. 실험에서 사용한 드론(Parrot사의 Bebop)의 의존성을 최소화하기 위하여 모듈화하여 설계하였다.
2) 초벌 라인 검출: Canny 에지알고리즘을 통하여 라인의 경계 픽셀을 검출한 후, 이들로 구성된 Hough 변환을 사용한다. 알고리즘에 사용한 변수들은 모두 사전에 획득한 영상을 바탕으로 실험적으로 결정하였다. Cany Edge에 사용된 경계치 값은(theta = CV_PI/180, threshold = 70, minLineLen = 10, maxLineGap = 10)을 사용하고, Hough 변환에 사용한 경계치 값은 (threshold1 = 180, threshold2 = 120, apertureSize = 3)을 사용하였다 (Fig.
영상데이터를 수신하고 디코딩하는 부분 까지는 현재 프로토콜 쓰레드에서 담당하고 있다. 영상 디코딩 하는 기능과 프로토콜 부분을 구분하는 것이 프로토콜의 응답성 향상을 위해서는 바람직하다고 고려되나, 시스템을 단순화하는 측면에서 쓰레드의 수를 최소화하기 위하여 같은 쓰레드에서 처리하도록 하였다. 실제 구성하여 테스트한 결과 (향후에 자세히 설명) 영상을 디코딩하는데 걸리는 시간은 수 (2-3) ms정도로 프로토콜 간격 25ms를 고려했을 때 실시간성에 크게 문제되지 않음을 확인하였다.
하나의 프레임의 영상처리시간은 약 250ms 정도로 1초당 4개의 처리가 가능하다. 영상의 크기를 줄이면 15 렌 정도가 가능하나 영상 처리 결과가 만족스럽지 못하여 원해상도를 사용하였다. Hough처리가 가장 큰 시간이 소요되는데, OpenCV는 현재 단일 쓰레드활용 만을 하고 있어, 향후 4 core를 활용한 알고리즘[9]이나 GPU를 활용할 필요가 있다.
예로서, 기존에 연구자들과 프로그래머들이 Parrot사 드론의 프로토콜을 역공학하여 Github등에 공개한 ‘node-bebop’이 있으나, 본 연구에서는 이러한 정보를 바탕으로, 새롭게 C++ 기반 프로토콜 엔진 설계를 하였다.
5) 드론 위치 및 방향 추정: 추출된 라인들은 비행체의 시점이 영상의 중심이라는 가정에서, 순차적으로 해당하는 라인을 부여할 수 있다. 추적된 주행라인들을 바탕으로 중앙에 근접한 좌측, 우측 라인을 선정하여 현재 드론의 주행선을 결정하고, 이를 바탕으로 드론이 현재 주행선에서 상대적인 위치를 계산한다. 가장 아래쪽 픽셀라인의 절단점인 (x_left, x, right) 에서 x_center 를 뺀 (|x_left- x_center|, |x, right -x_center|)가 좌측 라인과 우측라인까지의 거리가 된다.
1과 같다. 크게 드론과 통신을 담당하는 프로토콜부, 영상을 수신하고 영상 처리를 하는 영상처리부, 영상처리 결과를 바탕으로 드론시스템을 제어하는 주제어부로 구성하였다. 각 모듈별로 실시간적 동시성을 만족하기 위하여, 각 부분 별로 쓰레드를 할당하였다.
본 연구에서는 현재 상용화된 드론과 보드를 활용하고, 널리 사용되는 오픈소스 프로그램 환경을 사용하여 통신 및 자율주행 연구를 할 수 있는 GCS (Ground Control System)시스템 설계를 수행하였다. 특히, 개발된 시스템의 동작을 확인하기 위하여 실제 자율운행기술을 개발하였다.
대표적으로 제어 및 영상에 사용된 프로토콜 포맷은 절대적으로 해당 제품에 따라서 구현하였다. 하지만, 시스템의 확장성을 고려하여, 각 클래스 API들은 가능한 범용적으로 사용할 수 있도록 설계하였다. 따라서 드론시스템에 따라 제어용으로 MAVLINK 프로토콜을 사용하도록 변경이 가능하며, 현재 자체 제작한 드론을 사용하여 이를 구현 중에 있다.
대상 데이터
앞서 설계한 내용은 Raspberry PI3에 구현하여 적색 우레탄에 흰색라인이 그려진 육상 경기장의 트랙에서 대상으로 실험하였다. 육상 트랙 레인의 폭은 125cm로 차량용인 3-3.
이론/모형
2) 초벌 라인 검출: Canny 에지알고리즘을 통하여 라인의 경계 픽셀을 검출한 후, 이들로 구성된 Hough 변환을 사용한다. 알고리즘에 사용한 변수들은 모두 사전에 획득한 영상을 바탕으로 실험적으로 결정하였다.
따라서 공통적인 소실점을 갖지 않는 선분들은 주행라인일 가능성이 떨어진다. RANSAC 알고리즘[8]을 적용하여 공통소실점을 갖는 선분들만을 추출하였다. 또한 레이싱 라인이 굵어서 두 라인이 찾아지는 경우가 발생하는데, 이 중복된 Hough 라인을 제거하기 위하여 간격이 일정 픽셀 이하인 경우 강한 선분만 남기고 제거하였다 (Fig 7 (e)).
영상 처리과정은 일반적으로 계산량이 많이 필요한 과정이다. 본 연구에서는 개발의 편이성을 위하여 공개 소프트웨어인 OpenCV (버전 3.1)을 사용하였다. 알고리즘에 따라 다르겠으나 일반적으로 30fps 정도의 속도로 내비게이션 알고리즘을 동작시키는 것은 임베디드 환경뿐 아니라 랩톱과 같은 환경에서도 쉽지 않을 일이다.
성능/효과
3) 라인 정제: ROI가 적절한 경우에도, 초벌 라인들은 주행선이외에 다양한 노이즈가 섞여있다. 이를 해결하기 위하여 두 가지 알고리즘을 적용하였다.
이는 초기 방향각이 잘못되어 있기 보다는 비행체의 한계와 바람 등의 외부 영향으로 볼 수 있다. 그래프에서 보는 바와 같이, 해당 문제 상황에서 정이와 방향각을 수정하여 주행선을 유지하는 목적을 만족하고 있음을 확인하였다. 정량적인 평가와 성능 개선을 위하여, 중앙선에서 벋어 나는 정도와 주행 속도를 평가 모델로 하고 알고리즘 개선작업을 하고 있다.
개발된 시스템은 성능 평가를 위한 응용 예로, 육상 트랙 경기장의 트랙을 인식하여 레인을 따라서 일주행이 가능하도록 구현하였다. 기존에 발표된 주행선 유지(lane-keeping) 알고리즘의 연구들을 바탕으로 환경에 맞게 개선하여, 직선과 완만한 곡선에서 성공적인 주행이 가능하였다. 현재 운행의 속도는 약 2m/s 정도로 저속으로 동작 시 에만 제어가 가능한 제약사항이 있다.
두 번째는 영상 스트림과 오류제어용 ACK이 오가는 로그로, 데이터양이 많아 인터벌이 매우 짧다. 세 번째는 25ms마다 실시간성 제어 및 상태 명령이 송수신 되는 것을 확인할 수 있다.
영상 디코딩 하는 기능과 프로토콜 부분을 구분하는 것이 프로토콜의 응답성 향상을 위해서는 바람직하다고 고려되나, 시스템을 단순화하는 측면에서 쓰레드의 수를 최소화하기 위하여 같은 쓰레드에서 처리하도록 하였다. 실제 구성하여 테스트한 결과 (향후에 자세히 설명) 영상을 디코딩하는데 걸리는 시간은 수 (2-3) ms정도로 프로토콜 간격 25ms를 고려했을 때 실시간성에 크게 문제되지 않음을 확인하였다.
후속연구
본 시스템을 기반으로 영상처리 인공지능 연구자들이 드론자체개발에 어려움이 없이 연구를 진행 할 수 있었으면 한다. 예를 들어 용용은 또한, 최근 국내외에서 조정방식의 드론레이싱이 스포츠 산업화[11]하는 시도가 있다.
질의응답
핵심어
질문
논문에서 추출한 답변
최근 IT 분야에서 쿼드로터 드론에 관심을 두는 이유는 무엇인가?
최근 IT 분야에서 쿼드로터 드론에 관심을 두는 원인은, 수직 이착륙 및 호버링이 가능하다는 장점과 함 께, 상대적으로 전문적인 항공역학적인 지식이 요구되지 않으며, 저가의 센서를 구하기 쉬워졌고, 관련 오픈 HW와 SW등이 공개되어, 제작과 개발이 용이해 진점을 들 수 있다[2]. 이런 추세에서 전자 IT 공학적 관점에서 드론을 일종의 날아다니는 로봇으로도 생각 할 수도 있게 되었다.
드론은 초기에 어떤 목적으로 연구되었는가?
드론은 초기에 미국 등 군사 강대국위주로 정찰용, 표적용 등 군사용 목적으로 고정익 (fixed-wing) 드론이 주로 연구되었으나, 최근에 와서는 쿼드로터와 같은 회전익 (rotating-wing) 드론을 바탕으로 하는 산업 /상업용 드론에 대한 가능성과 관심이 증대되고 있다 [1]. 특히, 항공촬영, 교통관제, 배송 분야에 우선적인 적용이 예상되고 있으며, 구체적으로 구글(Google), DHL, 아마존(Amazon), 도미노 피자 등이 수년 내에 드론을 배달서비스에 상용화하려고 노력 중이다.
산업 /상업용 드론을 개발하기 위해 노력 중인 기업으로 무엇이 있는가?
드론은 초기에 미국 등 군사 강대국위주로 정찰용, 표적용 등 군사용 목적으로 고정익 (fixed-wing) 드론이 주로 연구되었으나, 최근에 와서는 쿼드로터와 같은 회전익 (rotating-wing) 드론을 바탕으로 하는 산업 /상업용 드론에 대한 가능성과 관심이 증대되고 있다 [1]. 특히, 항공촬영, 교통관제, 배송 분야에 우선적인 적용이 예상되고 있으며, 구체적으로 구글(Google), DHL, 아마존(Amazon), 도미노 피자 등이 수년 내에 드론을 배달서비스에 상용화하려고 노력 중이다. 드론의 용도와 규모가 다양하여 국내에서도 생산기술연구원, ETRI, 삼성전자에서부터 중소 장난감업체까지 다양한 업체에서 관심을 갖고 개발 중이다.
참고문헌 (12)
J.-H. Jin and K-.B. Lee, "The understanding and trends of UAV/Drone," J. KICS, vol. 33, no. 2, pp. 80-85, 2016.
H, Lim, J. Park, D. Lee, and H. J. Kim, "Build your own quadrotor: Open-source projects on unmanned aerial vehicles," IEEE Robotics & Automation Mag., vol. 19, no. 3, pp. 33-45, 2012.
A. Hernandez, "Identification and path following control of an AR. Drone quadrotor," in Proc. IEEE ICSTCC, pp. 583-588, 2013.
B. Childers, "Hacking the Parrot AR drone," Linux J., vol. 241, no. 1, 2014.
T. Krajnik, "AR-drone as a platform for robotic research and education," in Proc. Int. Conf. Res. Edu. Robot., pp. 172-186, Prague, Czech Republic, Jun. 2011.
H.-P. Sun, "A study on the automotive ADAS market diffusion factors," in Proc. KICS Int. Conf. Commun., pp. 942-945, Jun. 2009.
J. F. Liu, Y. F. Su, M. K. Ko, and P. N. Yu, "Development of a vision-based driver assistance system with lane departure warning and forward collision warning functions," in Proc. IEEE DICTA, pp. 480-485, Dec. 2008.
J. P. Tardif, "Non-iterative approach for fast and accurate vanishing point detection," IEEE 12th Int. Conf. Comput. Vision, pp. 1250-1257, Sept. 2009.
Y. K, Chen, W. Li, J. Li, and T. Wang, "Novel parallel hough transform on multi-core processors," in Proc. IEEE Int. Conf. Acoust. Speech and Sign. Process., pp. 1457-1460. Mar. 2008.
Y. Wang, e. K. Teoh, and D. Shen, "Lane detection and tracking using B-Snake," Image and Vision Computing, vol. 22, no. 4, pp. 269-280, 2004.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.