• 검색 결과가 없습니다.

Development of Indoor Navigation Control System for Swarm Multiple AR.Drone's

N/A
N/A
Protected

Academic year: 2021

Share "Development of Indoor Navigation Control System for Swarm Multiple AR.Drone's"

Copied!
8
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

실내 환경에서의 AR.Drone 군집 비행 시스템 개발

문성태*, 조동현**, 한상혁***, 류동영****, 공현철*****

Development of Indoor Navigation Control System for Swarm Multiple AR.Drone

SungTae Moon*, Dong-Hyun Cho**, Sang-Hyuck Han***, DongYoung Rew****, HyunCheol Gong*****

Abstract

Recently, small quadcopters have been widely used in various areas ranging from military to entertainment applications because interest in the quadcopter increases. Especially, the research on swarm flight which control quadcopters simultaneously without any collision can increase success probability of a important mission. In addition the swarm flight can be applied for demonstrating choreographed aerial maneuvers such as dancing and playing musical instruments. In this paper, we introduce multiple AR.Drone control system based on motion capture for indoor environment in which quadcopters can recognize current position each other and perform scenario based mission.

최근 쿼드콥터에 대한 관심이 증가하면서 방송에서 군에 이르기까지 다양한 분야에서 활용되고 있다. 특히 다수의 쿼드콥터를 동시 제어하는 군집 비행 연구는 중요 임무 수행 성공 확률을 높일 수 있고, 예술과 융합되어 군무를 수행하는 등 다양한 응용에 활용될 수 있다. 본 논문에서는 AR.Drone을 활용하여 실내에서 모션 캡쳐 기반으로 다수의 비행체가 서로의 위치를 파악하고, 시나리오에 맞춰 정해진 임무를 수행하기 위해 개발된 군집 비행 시스템을 소개한다

키워드 : AR.Drone Quadcopter (에이알드론 쿼드콥터), Indoor Navigation(실내 자율 비행), Motion Capture System (모션 캡쳐 시스템), Swarm Flight (군집 비행)

접수일(2014년 5월 7일), 수정일(1차 : 6월 23일, 2차 : 6월 24일), 게재 확정일(2014년 7월 1일)

* 항공우주미래기술팀/[email protected] **융합기술연구팀/[email protected] ***항공우주미래기술/[email protected]

**** 달탐사기술팀/[email protected] *****항공우주미래기술팀/[email protected]

1. 서 론

쿼드콥터에 대한 관심이 증가하면서 군에서

민간 부분에 이르기 까지 다양한 분야에서 활용 되고 있다. 쿼드콥터는 제어가 쉽고, 정밀한 임무 수행이 가능해 항공 분야와 더불어 IT 분야에서 도 많은 연구가 진행되고 있다. 최근에는 무인기

(2)

의 기능 향상으로 다수의 무인기가 서로간의 충 돌 없이 공동으로 정해진 임무를 수행하여 넓은 범위의 정찰과 같은 어려운 임무에 대해 성공 확 률을 높이는 군집 비행 연구가 활발히 진행되고 있다. 이러한 군집 비행은 정찰 임무 외에도 3차 원 지도 생성, 목표물 인식 및 타격, 적대적 무인 기의 식별 및 저지 등의 복잡한 임무를 다수의 무인 항공기 및 자동 주행 차량의 계층적 구성 및 작전 수행을 통해 수행할 것으로 기대된다[2].

하지만 대부분 고가의 무인기를 다수 구매하여 연구하기 어렵기 때문에, 시뮬레이션으로 수행하 고 있다.

한편, Parrot사에서는 저가의 쿼드콥터인 AR.Drone (Augmented Reality Drone)을 상용화 하였다[1]. AR.Drone은 기존 쿼드콥터와 달리 이 미지 프로세싱을 활용한 Optical Flow 기술을 융 합하여 보다 정밀하고 쉽게 제어가 가능하다. 특 히 스마트폰을 활용하여 제어하기 때문에 일반 사용자들도 쉽게 제어할 있다. 또한 SDK(Software Development ToolKit)가 무료로 제공되어 개발자가 쉽게 제어 프로그램을 개발할 수 있어서 연구 분야에서도 AR.Drone을 활용하 고 있다. 하지만 내부 코드가 오픈되어 있지 않 기 때문에 내부 로직을 변경하기는 어렵다.

그림 1. AR.Drone 2.0[1]

본 논문에서는 저가의 AR.Drone을 활용하여 실내 시스템에서 다수의 비행체가 서로의 위치를 파악하고, 시나리오에 맞춰 군무를 수행하는 군 집 비행 시스템을 소개한다. 실내에서 위치 확인 을 위해서는 이미지 기반 위치 확인 방법과 외부 장비를 통한 위치 확인 방법이 있지만, 보다 정 밀한 측정을 위해 외부 장비인 모션 캡쳐를 활용 하였다.

논문의 구성은 다음과 같다. 2장에서는 모션

캡처를 통한 위치인식하는 방법과, 다수의 비행 체를 구분하는 방법에 대해 설명하고, 3장에서는 저가의 AR.Drone을 활용하여 군집비행에 사용하 기 위해 필요한 내부 수정 방법에 대해 설명한 다. 이후 4장에서는 AR.Drone의 제어 방법에 대 해 간략하게 설명하고, 5장에서는 다수 비행체를 동시 제어하는 지상국 시스템에 대해 설명하고, 6장에서는 다수의 비행체를 제어하는 실험 결과 를 설명한다. 마지막으로 7장에서는 결론과 향후 계획에 대해 논의한다.

2. Motion Capture System

실내에서 비행체의 위치를 인식하는 방법으로 크게 모션 캡쳐와 같은 외부 장비를 통한 방식과 이미지 기반의 위치 확인 방법이 있다. 이미지 기반 위치 인식 방법은 카메라 영상만을 가지고 인식하는 방법이다[3]. 하지만 이미지 기반 위치 인식 방법은 일반적으로 정확도가 1mm (1000Hz)인 모션 캡쳐에 비해 현저히 낮고, 다수 의 비행체에 대해 이미지 프로세싱하는 경우, 서 버의 부하가 커져 시간 측정이 어렵다. 반면, 모 션 캡쳐 방식은 장비가 상대적으로 비싸고, 측정 거리가 협소한 단점이 있지만, 최대 초당 1000번 까지 측정이 가능하므로, 정확한 데이터를 확보 할 수 있고, 이미지 프로세싱 작업을 카메라 내 부에서 처리하기 때문에 서버의 부하가 비교적 작다. 본 논문에서는 보다 정확한 위치 확인을 위해 모션 캡쳐 방식을 활용하였다.

2.1. 전체 구조

모션 캡쳐 기반 시험 환경은 그림 2와 같다.

우선 소형 무인 비행체를 인식할 수 있는 모션 캡쳐 카메라가 3대 이상 설치가 되어야 한다. 각 카메라는 기가넷(GigaNet)을 통해 이더넷으로 원 본 데이터를 모션 캡쳐 서버 (Motion Capture Server)에 전달한다. 모션 캡쳐 서버에서는 원본 데이터를 기반으로 실제 위치 데이터를 생성하고 연결된 지상국 시스템(AR.Drone Controller)에 전 달하고, 지상국 시스템에서는 이를 기반으로 각

(3)

소형 무인 비행체의 Roll/Pitch/Yaw/Gaz 정보를 무선 네트워크를 통해 AR.Drone에 전달한다.

그림 2. 시험 환경 구조

2.2. 객체 인식

모션 캡쳐는 측정하고자 하는 객체에 마커를 붙이고, 모션 캡쳐 카메라를 통해 그 위치를 파 악한다. 다수의 객체를 구분하여 위치 측정할 경 우에는 각 객체마다 다른 패턴으로 다수의 마커 를 붙여 구분하는 방법을 사용한다. 이때 Tracker는 대칭 결과를 확인하여, 자동으로 패턴 의 유사성을 구분해준다. 본 논문에서는 그림 3 과 같이 하나의 AR.Drone에 6~7개의 마커를 붙 여 객체 구분을 하였다.

그림 3. 마커를 붙인 AR.Drone

2.3. 시험 환경

한국항공우주연구원에서는 군집비행 연구를 위해 연구원 내에 그림 4와 같이 플라잉 플로어 (Flying Floor)를 설치하였다. 플라잉 플로어는 18x18x6.5 (m3) 크기의 비행 시험 공간으로 총 28 대의 VICON 모션캡쳐 카메라[6]가 설치되어 있다. 이 시스템을 통해 1mm 이하의 정확도로 모든 공간에 속한 객체를 최대 1000 Hz로 움직 임을 감지할 수 있다.

그림 4. 플라잉 플로어 (한국항공우주연구원)

3. 군집 비행 설정

AR.Drone은 SDK를 제공하지만, 코드가 공개 되어 있지 않기 때문에 내부 변경이 사실상 불가 능하다. 하지만, 리눅스 운영체제를 기반으로 동 작하기 때문에 설정 변경은 가능하다.

3.1. 다중 통신 시스템 구축

AR.Drone은 기본적으로 스마트폰에서 AR.Drone에 연결하여 명령을 전달하는 1:1 통신 기반으로 개발되었다. 하지만 군집비행을 위해서 는 지상국 시스템이 다수의 비행체를 제어해야 하기 때문에 기존 방식을 활용할 수 없다. 따라 서 AR.Drone을 클라이언트 방식으로 변경하여 지상국 시스템에서 다수의 기체를 제어할 수 있 도록 해야 한다. 이를 위해 외부에 AP(Access Point)를 설치하고, AR.Drone이 AP에 연결되도

(4)

록 수정한다.

iwconfig ath0 mode managed essid ardrone_ap ifconfig ath0 10.42.0.xx netmask 255.255.255.0 up route add default gw 10.42.0.1

표 1. 다중 접속을 위한 AR.Drone 설정

그리고 부팅 시 자동으로 적용될 수 있도록 하기 위해서는 AR.Drone 부팅 시 실행되는 /bin/wifi_setup.sh 파일에 표 1 정보를 추가해야 한다.

3.2. 초음파 센서 인식 기능 수정

AR.Drone은 고도 측정을 위해 초음파 센서 정보를 활용한다. 하지만 같은 기종의 AR.Drone 이 여러 대가 동시 이동 시에는 같은 주파수를 갖는 초음파 센서가 서로에게 간섭을 일으켜 잘 못된 고도 정보를 전달하게 되어 그림 5와 같이 오류가 발생한다.

그림 5. 다수 비행체의 초음파 센서 데이터 충돌 현상 이를 제거하기 위해 본 논문에서는 AR.Drone 의 원본 데이터를 직접 획득 및 분석하여 프로토 콜을 분석한 다음, 초음파 센서 데이터를 외부에 서 획득한 정확한 값으로 대체하는 스니핑 방식 을 사용하였다[7]. 그림 6과 같이 AR.Drone은 Raw Data를 /dev/ttyO1을 통해 시리얼 방식으 로 데이터를 얻는다. 우선 /dev/ttyF1으로 이름 을 변경하고, 개발된 SerialSniifer를 통해 데이터 를 받고, 프로토콜을 분석하여 초음파 센서 데이 터 부분을 획득한 다음 모션 캡쳐로부터 받은 고

도 정보로 바꾼다. 이후 다시 /dev/ttyO1에 데 이터를 전달함으로써 AR.Drone내의 제어기는 바 뀐 고도 정보를 사용하게 된다.

그림 6. 스니핑 기법을 사용한 고도 데이터 주입 방식 고도 정보를 바꾸기 위해서는 AR.Drone 내의 프로토콜 정보를 확인해야 한다. 하지만, AR.Drone에서는 내부 프로토콜을 공개하지 않기 때문에 프로토콜 분석이 필요하다. 고도 정보가 포함된 데이터의 프로토콜을 분석한 결과, 그림 7과 같이 전체 크기는 60 byte 이었다. 이중 초 음파 센서 정보를 이용해 고도 측정 데이터를 계 산하기 위해 필요한 데이터는 ultrasound와 sum_echo 및 flag 부분이었다. ultrasound는 초 음파 센서를 통해 획득한 고도 정보를 매 순간마 다 나타내는 정보이고 sum_echo는 고도 정보를 일정 기간 동안 누적시키는 정보를 담고 있다.

그리고 flag는 초음파 센서의 정상 동작 여부를 나타내는 플래그 값이다.

그림 7. AR.Drone 패킷 구조

위 정보를 기반으로 고도는 수식 (1)과 같이 계산할 수 있다.

      (1) 여기서, ultrasound는 초음파 센서 정보 값을

(5)

나타내고, 880과 26.553 값은 오프셋 값과, 스케 일 값을 각각 나타낸다. 식 (1)의 상수값은 AR.Drone에 사용된 초음파 센서의 특성에 따라 서 결정된 값이다.

3.3. 강건한 통신 시스템 구축

위 두 가지 설정을 변경하면 AR.Drone을 이 용하여 군집 비행이 가능하지만, 20대 이상의 AR.Drone을 동작하는 경우, 간헐적으로 통신이 끊기는 문제가 발생한다. 통신이 끊기는 현상은 AR.Drone이 지상 제어 시스템과 통신하기 위해 사용되는 IEEE 802.11의 특성상 실시간성이 보장 되지 않기 때문이다. IEEE 802.11는 기본적으로 CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) 방식으로 동작하는데 충돌 이 나는 경우 Back-Off 알고리즘에 의해 랜덤한 시간이 지난 후 재전송을 시도하기 때문에 실시 간성이 보장되지 않는다[4].

다수의 비행체, 노드간의 충돌을 최소화하기 위해, 그림 8에 보여진 바와 같이 AR.Drone 내 부에 Packet Manager 프로그램을 추가하여 데이 터 량을 줄여줌으로써 충돌 확률을 최소화 하였 다. 뿐만 아니라 충돌이 나서 명령이 전달되지 못하는 경우, Packet Manager는 자체 제어 명령 AR.Drone 프로그램(AR.Drone Core Program)에 전달한다. 이때 200ms 이상 명령 데 이터가 전달되지 않는 경우, 이동 없이 한 위치 에 머무는 호버링을 수행한다. 이후 5초 이상 명 령 데이터를 수신하지 못하는 경우 착륙하도록 설계되었다.

그림 8. 패킷 데이터 조절

4. 제어

AR.Drone의 비행제어를 위해 보편적으로 사 용하는 PID (Proportional Integral Differential) 제어기를 사용하였다. 우선, 그림 3과 같이 모션 캡쳐로부터 비행체의 자세 정보를 받고, 시간에 따른 절대 좌표계 (World Coordinate System)에 서의 오차 e(t)는 식 (2)과 같다.

      (2) e(t)는 목표 위치(Ptarget)와 현재 위치(Pcurrent)간의 차이로 x, y, z에 대해 각각 오차 값을 구한다.

그림 9. 비행 제어 알고리즘 로직

그림 9과 같이 우선 e(t)를 이용하여 x 및 y에 대한 오차를 구한다. 이후 좌표계 변환을 위해 DCM (Direction Cosine Matrix)을 사용하여 절 대 좌표계 (World Coordinate System)에서 동체 좌표계 (Body Coordinate System)을 변경하고, (3)과 같이 PID 제어기를 거쳐 Roll/Pitch/Yaw/Gaz 제어값인 MV(t)를 구한다.

      (3)

여기서, 는 비례항 이득값 (gain value)을 나타내고, 는 적분항 이득값을 나타낸다. 적분 항을 구할 때 20 cm 안으로 들어오는 경우에 한 해 오차값을 누적하였다. v는 20 cm안에 들어오 는 시간을 의미한다. 20 cm 를 벗어나는 경우 적분항은 0이 된다. 마지막으로 는 미분항 이

(6)

득값이고, 

는 -1로 표현 가능하다. 수행한 결 과, 그림 10과 같은 움직임을 수행할 수 있었다.

그림 10. 제어 수행 결과 (Pitch)

이를 기반으로 그림 11와 같이 다수의 비행체 간 충돌 회피를 위해 potential function을 개념 을 도입하여 비행체가 없는 부분으로 경로를 조 정하는 충돌 회피 기능도 추가하였다[5].

그림 11. 충돌회피 제어 로직

5. 지상국 시스템

지상국 시스템은 다양한 운영체제에서 동작할 수 있도록 설계되었으며, 다수의 이기종 소형 무 인 비행체를 제어할 수 있도록 설계되었다. 이를 위해 지상국 시스템은 그림 12와 같이 각 기능에 따라 크게 세 개 계층으로 구분된다.

그림 12. 지상국 시스템 구조도

우선 상위 GUI (Graphic User Interface) 계층 과 아래 계층은 기능적으로 구분되어 Viewer와 Controller의 기능을 분리시켰다. 이를 통해 Controller 변경 없이 사용자 취향에 맞게 Viewer를 변경 할 수 있다. 지상국 시스템 GUI 는 그림 13과 같다.

그림 13. 지상국 시스템 GUI

하위 Agent 계층은 다양한 이기종 소형 무인 기 비행체를 제어할 수 있도록 인터페이스를 제 공한다. 따라서 다양한 형태의 이기종 무인기를 하나의 제어기에서 제어 가능하다. 중간에 있는

(7)

Manager 계층은 UI와 Agent 계층을 이어주고, 관리하는 역할을 수행한다. 그리고 시나리오에 맞춰 다수의 비행체를 제어하는 기능을 수행한 다. 시나리오는 그림 14와 같이 각 비행체에 대 해 정해진 시간에 정해진 위치로 이동하도록 하 는 명령 목록을 가지고 있다. 이동 명령은 시간 에 따른 목표 위치를 설정하는 포인트 방식으로 처리된다. 이 명령에 따라 각 비행체는 원하는 형상을 그리며 군집비행을 수행할 수 있다.

그림 14. XML 기반의 시나리오 파일

6. 시험

시험에 앞서 시나리오에 대한 검증을 위해 그 림 15와 같이 파이썬 기반의 시뮬레이션 및 시나 리오 생성기 프로그램을 개발하였다. 이 프로그 램을 통해 전체 시나리오를 검증할 수 있고, 수 정할 수 있다.

그림 15. 20대 비행 시나리오 (원형 비행) 시험은 한국항공우주연구원에 설치된 플라잉 플로어 (Flying Floor)에서 수행하였다. 총 20대 의 AR.Drone이 비행에 사용되었고, 지상국과의 통신은 IEEE 802.11g WiFi가 활용되었다. 수행 결과 그림 16과 같이 20대의 군집 비행을 수행할 수 있었다.

그림 16. 20대 군집 비행 시험

7. 결론 및 향후계획

실내 군집 비행 시스템을 구축하기 위해 본 논문에서 저가의 AR.Drone을 활용하였다. 하지 만 군집비행을 위해서는 AR.Drone의 내부 시스 템을 일부 수정하였고, 안정적인 통신 환경을 구 축하기 위해 AR.Drone 내부 로직도 개발하였다.

(8)

그리고 다수 기체의 군무를 위해 시나리오 기반 의 동시 제어 기능 및 시뮬레이션 툴을 개발하였 다. 그리고 실내 환경에서 현재 위치를 측정하기 위해 모션 캡쳐를 사용하였으며, 다수 비행체의 충돌 회피 로직을 개발하였다.

추후, 시나리오 생성을 포인트 방식에서 궤적 제어 방식으로 변경하여 등속도로 정해진 궤적을 이동하도록 변경하고, 현재 사용 중인 통신 방식 을 일반적으로 많이 사용되고 있는 2.4 GHz에서 혼잡도가 덜한 5 GHz로 변경하여 충돌 확률을 줄임으로써 보다 안정된 통신 시스템을 구축하고 자 한다.

참 고 문 헌

1. Stephane, P., Nicolas, B, Pierre, E., and Frederic, D., “AR.Drone Developer Guide SDK 2.0,” Parrot, 2012, pp. 13-16.

2. 심현철, 탁민제, “시가지 환경에서 UAV의 완 전 분산형 군집 비행제어 기법,” 항공우주학 회, 2007, pp 189-190

3. SungTae M., DongHyun, C., "Development of Multiple AR.Drone Control System for Indoor Aerial Choreography," Asia-Pacific International Symposium on Aerospace Technology, 2013

4. M. Gast, "802.11 Wireless Networks: The Definitive Guide", O'Relly, 2002

5. DongHyun, C., SungTae M., Dongyoung R.,

"Development of AR.Drone Controller for the Multiple Indoor UAV," Korea Society for Aeronautical Space Sciences, 2013, pp.

434~437

6. VICON System, "http://www.vicon.com/

System/TSeries"

7. 박현미, 신은경, 이현후, “네트워크 스니핑 기 술 및 방지대책,” CERTCC-KR 기술문서 TR2000-07, 2000

수치

표 1. 다중 접속을 위한 AR.Drone 설정 그리고 부팅 시 자동으로 적용될 수 있도록 하기 위해서는 AR.Drone 부팅 시 실행되는 /bin/wifi_setup.sh 파일에 표 1 정보를 추가해야 한다
그림 9. 비행 제어 알고리즘 로직

참조

관련 문서

삼백초 추출물 종의 아질산염 소거능을 분석한 결과 초임계 추출물에서 가장 높은 효과를 보였으며 의 아질산염 소거능을 보였다 그 다음으로 에탄올 초음파 추출물

데이터 탐색가는 수많은 데이터를 걸러내 실제로 필요한 데이터를 발견하는 능력을 가진 사람이다.. - 분석한 자료를 가지고 찾아낸 우리가 적용할

4방 초음파 센서 부착의 경우 지각 능력을 통해 드론 조종 시의 안전사고들을 예방 할 수 있을 것이며 여러 센서를 이용한 놀이 제작으로 통해 학생들을 포함한

따라서 , 본 연구에서는 상변화 열전달 촉진 및 열전냉각장치의 냉각영역 개선을 위해 압전소자로 구성되어 진동을 일으키는 초음파 진동자와 압전 액츄에이터를

마이크 외부 소리의 크기를 측정하는 센서 가속도 센서 속력을 감지하는 센서.. 자이로 센서 각 크기를 감지하는 센서 압력 센서

본 연구의 내용은 전기자동차 충전소와 연관된 데이터를 수집하고 충전소 데이터의 주소를 활용하여 지리공간정보와 결합하였고, 데이터 전처리 및

녹나무 추출물 종의 총 폴리페놀 함량 을 분석한 결과 메탄올 초음파 추출물에서 로 가장 높게 나타났으며 에탄올 초음파 추출.

반면 본 논문에서 이용한 비접촉 공중 초음파 검사(Non-contact Air-coupled Ultrasonic Testing, NAUT)는 최첨단의 초음파 탐상기법으로 공기 중의 음향 임피던스