KR20210075647A - 깊이 카메라를 이용한 무인 비행체의 비행 제어를 위한 학습 방법 및 장치 - Google Patents

깊이 카메라를 이용한 무인 비행체의 비행 제어를 위한 학습 방법 및 장치 Download PDF

Info

Publication number
KR20210075647A
KR20210075647A KR1020190166983A KR20190166983A KR20210075647A KR 20210075647 A KR20210075647 A KR 20210075647A KR 1020190166983 A KR1020190166983 A KR 1020190166983A KR 20190166983 A KR20190166983 A KR 20190166983A KR 20210075647 A KR20210075647 A KR 20210075647A
Authority
KR
South Korea
Prior art keywords
unmanned aerial
aerial vehicle
neural network
artificial neural
processor
Prior art date
Application number
KR1020190166983A
Other languages
English (en)
Inventor
임광재
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020190166983A priority Critical patent/KR20210075647A/ko
Publication of KR20210075647A publication Critical patent/KR20210075647A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64CAEROPLANES; HELICOPTERS
    • B64C39/00Aircraft not otherwise provided for
    • B64C39/02Aircraft not otherwise provided for characterised by special use
    • B64C39/024Aircraft not otherwise provided for characterised by special use of the remote controlled vehicle type, i.e. RPV
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U20/00Constructional aspects of UAVs
    • B64U20/80Arrangement of on-board electronics, e.g. avionics systems or wiring
    • B64U20/87Mounting of imaging devices, e.g. mounting of gimbals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • B64C2201/141
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64UUNMANNED AERIAL VEHICLES [UAV]; EQUIPMENT THEREFOR
    • B64U2201/00UAVs characterised by their flight controls
    • B64U2201/10UAVs characterised by their flight controls autonomous, i.e. by navigating independently from ground or air stations, e.g. by using inertial navigation systems [INS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Mechanical Engineering (AREA)
  • Remote Sensing (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Traffic Control Systems (AREA)

Abstract

학습을 통해 비행 제어를 수행하는 무인 비행체로서, 상기 무인 비행체 주변 환경에 관한 정보를 포함하는 적어도 하나 이상의 이미지 및 상기 무인 비행체의 물리 정보를 획득하는 프로세서; 상기 프로세서로부터 획득한 상기 무인 비행체 주변 환경의 이미지 및 상기 물리 정보를 기초로 장애물 맵을 생성하는 맵 프로세서; 및 상기 프로세서로부터 획득한 상기 무인 비행체 주변 환경의 이미지, 상기 물리 정보 및 상기 맵 프로세서로부터 획득한 상기 장애물 맵을 기초로 인공 신경망을 통해 상기 무인 비행체의 비행 동작을 결정하고, 상기 결정된 비행 동작의 결과 값을 기초로 상기 인공 신경망을 업데이트 하는 인공 신경망부를 포함한다.

Description

깊이 카메라를 이용한 무인 비행체의 비행 제어를 위한 학습 방법 및 장치{METHOD AND APPARATUS FOR LEARNING OF CONTROLLING AVIATION OF UNMANNED AVIATION VEHICLE BY USING DEPTH CAMERA}
본 발명은 무인 비행체(unmanned aviation vehicle, UAV)의 비행 제어 방법에 관한 것으로, 더욱 상세하게는 깊이 카메라(depth camera)로부터 획득한 이미지를 기초로 강화 학습(reinforcement learning)을 수행하여 자율적으로 무인 비행체의 비행을 제어하는 방법에 관한 것이다.
최근 재난 감시, 환경 감시, 정찰 등을 위한 무인비행기(UAV, Unmanned Aerial Vehicle)에 관한 연구가 활발하게 진행되고 있다. 특히, 이러한 무인비행체 중에서 쿼드로터형 무인비행체(Quad-rotor unmanned aerial vehicle)는 회전익형 비행체로서 VTOL(Vertical Take-off and Landing, 수직 이착륙), 전 방향 이동 및 호버링(Hovering, 정지비행)이 가능하고, 동축 반전형 및 싱글 로터형 등 다른 형식에 비해 구조가 간단하다는 장점이 있다. 또한, 소형 비행로봇은 BLDC 모터의 개발과 MEMS(Micro Electro Mechanical Systems) 기반의 센서 및 고밀도 리튬-폴리머 배터리(Li-Po Battery)의 개발로 인하여 급속히 성장하고 있다. 이러한 장점으로 인해, 국내외 대학에서 실내외 자율비행을 위한 쿼드로터 비행체에 대한 활발한 연구들이 진행 중에 있다.
실외 환경에서는 GPS(Global Positioning System)를 이용한 유도 항법 제어 및 협동제어, 실내 환경에서는 다중의 카메라를 이용한 위치 인식 시스템 Vicon Motion Capture System이나 Laser Rangefinder를 이용하여 실내 mapping 및 쿼드로터의 실내 위치 제어 및 물체 회피에 대한 기술이 제안되고 있다.
그러나, 종래의 기술들은 실외 환경에서는 GPS에 매우 의존적이며 실내 환경에서는 위치 인식 시스템의 고가의 시스템 환경 구축, 공간의 제약성으로 인하여 한정적이며 활용도가 낮다는 문제가 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 깊이 카메라(depth camera)로부터 획득한 이미지를 기초로 인공 신경망(artificial neural network)을 이용하여 무인 비행체로 하여금 자율적으로 비행 동작을 제어하는 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 제1 실시예에 따른 학습을 통해 비행 제어를 수행하는 무인 비행체로서, 상기 무인 비행체 주변 환경에 관한 정보를 포함하는 적어도 하나 이상의 이미지 및 상기 무인 비행체의 물리 정보를 획득하는 프로세서; 상기 프로세서로부터 획득한 상기 무인 비행체 주변 환경의 이미지 및 상기 물리 정보를 기초로 장애물 맵을 생성하는 맵 프로세서; 및 상기 프로세서로부터 획득한 상기 무인 비행체 주변 환경의 이미지, 상기 물리 정보 및 상기 맵 프로세서로부터 획득한 상기 장애물 맵을 기초로 인공 신경망을 통해 상기 무인 비행체의 비행 동작을 결정하고, 상기 결정된 비행 동작의 결과 값을 기초로 상기 인공 신경망을 업데이트 하는 인공 신경망부를 포함한다.
본 발명에 의하면, 무인 비행체는 깊이 카메라(depth camera)로 촬영한 깊이 이미지를 기초로 무인 비행체 주변의 장애물과의 거리 정보 등을 포함하는 장애물 맵을 생성함으로써, 무인 비행체에 의해 결정되는 비행 동작 명령의 정확성을 향상시킬 수 있다.
본 발명에 의하면, 무인 비행체는 인공 신경망(artificial neural network)를 이용하여 깊이 이미지들을 기초로 무인 비행체의 비행 동작을 결정하고, 무인 비행체의 비행 동작을 결정하기 위한 인공 신경망의 강화 학습을 수행하여, 깊이 이미지만을 입력하여 무인 비행체의 비행 동작을 자율적으로 제어할 수 있다.
도 1은 무인 비행체(unmanned aviation vehicle)의 일 실시예를 도시한 블록도이다.
도 2는 무인 비행체의 프로세서(processor)의 일 실시예를 도시한 블록도이다.
도 3은 무인 비행체의 비행 동작을 산출하는 프로세서의 동작의 일 실시예를 도시한 흐름도이다.
도 4는 깊이 이미지(depth image)를 기초로 장애물 맵(obstacle map)을 생성하는 프로세서의 동작의 일 실시예를 도시한 흐름도이다.
도 5는 무인 비행체의 인공 신경망부의 구조의 일 실시예를 도시한 개념도이다.
도 6은 무인 비행체의 인공 신경망부와 외부 환경과의 상호 작용의 일 실시예를 도시한 개념도이다.
도 7은 무인 비행체의 비행 동작을 산출하기 위한 인공 신경망의 강화 학습을 수행하는 프로세서의 동작의 일 실시예를 도시한 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 무인 비행체(unmanned aviation vehicle)의 일 실시예를 도시한 블록도이다.
도 1을 참조하면, 무인 비행체는 이미지 촬영부(110), 센서부(120), 프로세서(130), 메모리(140), 비행 제어부(150) 및 구동부(160)를 포함할 수 있다. 무인 비행체에 포함된 구성은 하드웨어에 의해 구현될 수 있다. 그리고 무인 비행체에 포함된 논리적 구성은 메모리(140)에 기록된 하나 이상의 명령들로 구현될 수 있다. 무인 비행체의 메모리(140)에 기록된 하나 이상의 명령들은 무인 비행체의 프로세서(130)에 의해 실행될 수 있다. 무인 비행체에 포함된 각각의 구성 요소들은 버스에 의해 연결되어 서로 통신을 수행할 수 있다. 다만, 무인 비행체에 포함된 각각의 구성요소들은 공통 버스가 아니라, 프로세서(130)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다. 예를 들어, 프로세서(130)는 이미지 촬영부(110), 센서부(120), 메모리(140), 비행 제어부(150) 및 구동부(160) 중에서 적어도 하나와 전용 인터페이스를 통하여 연결될 수도 있다.
이미지 촬영부(110)는 무인 비행체 외부의 이미지를 획득할 수 있다. 이미지 촬영부(110)는 카메라를 포함할 수 있으며, 구체적으로는 이미지의 깊이 정보를 더 획득할 수 있는 깊이 카메라(depth camera)를 포함할 수 있다. 깊이 카메라는 무인 비행체 외부에 적외선을 발광할 수 있으며, 외부의 물체에 의해 반사된 적외선을 수광하는 카메라일 수 있다. 깊이 카메라는 적외선의 발광 시간 및 수광 시간 간의 차이를 이용하여 무인 비행체와 외부 물체간의 거리 정보를 포함하는 깊이 이미지를 생성할 수 있다. 즉, 이미지 촬영부(110)는 깊이 이미지를 획득할 수 있으며, 획득한 이미지를 프로세서(130)로 전달할 수 있다.
센서부(120)는 무인 비행체의 위치, 자세, 방향, 속도 및 가속도 정보를 포함하는 물리 정보를 측정할 수 있다. 센서부(120)는 GPS(global position system) 센서, IMU(inertial measurement sensor) 센서 및 SLAM(simultaneous localization and mapping) 센서를 포함할 수 있다. IMU 센서는 자이로센서, 가속도계, 자력계 등을 더 포함할 수 있다. 센서부(120)는 무인 비행체의 물리 정보를 측정할 수 있으며, 측정한 물리 정보를 프로세서(130)로 전달할 수 있다.
프로세서(130)는 메모리(140)에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(130)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서(130)를 의미할 수 있다.
프로세서(130)는 무인 비행체의 구성들로부터 무인 비행체 주변의 환경 정보를 획득할 수 있다. 예를 들어, 프로세서(130)는 이미지 촬영부(110)로부터 무인 비행체 주변 이미지를 획득할 수 있다. 그리고 프로세서(130)는 센서부(120)로부터 무인 비행체의 물리 정보를 획득할 수 있다. 프로세서(130)는 무인 비행체 주변의 환경 정보(예를 들어, 이미지 및 물리 정보 등)을 기초로 무인 비행체의 비행 동작을 결정할 수 있다. 프로세서(130)는 결정된 비행 동작에 관한 정보를 비행 제어부(150)로 전달할 수 있다.
메모리(140)는 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(140)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
비행 제어부(150)는 무인 비행체의 비행을 제어할 수 있다. 비행 제어부(150)는 프로세서(130)로부터 비행 동작에 관한 정보를 획득할 수 있다. 비행 제어부(150)는 획득한 비행 동작에 관한 정보를 기초로 구동부(160)에 비행 동작에 관한 명령을 전달할 수 있다.
구동부(160)는 무인 비행체의 비행을 위한 동작을 수행할 수 있다. 구동부(160)는 다수개의 모터(motor) 또는 서보 모터(servo motor)를 포함할 수 있다. 그리고 각각의 모터(또는 서보 모터)는 회전익과 연결될 수 있다. 각각의 모터(또는 서보 모터)는 서로 대칭이 되도록 무인 비행체에 배치될 수 있다. 또한 각각의 모터(또는 서보 모터) 사이의 거리 및 각도는 동일할 수 있다. 구동부(160)는 비행 제어부(150)로부터 비행 동작에 관한 명령을 획득할 수 있다. 구동부(160)는 획득한 비행 동작에 관한 명령에 기초하여 모터 또는 서보 모터를 구동할 수 있다.
도 2는 무인 비행체의 프로세서(processor)의 일 실시예를 도시한 블록도이다.
도 2를 참조하면, 프로세서(130)는 맵 프로세서(131) 및 인공 신경망(artificial neural network, ANN)부(132)를 포함할 수 있다. 프로세서(130)에 포함된 논리적 구성은 메모리(140)에 기록된 하나 이상의 명령들로 구현될 수 있다. 또한 프로세서(130) 및 프로세서(130)에 포함된 논리적 구성은 무인 비행체의 다른 구성들과 연결될 수 있다. 예를 들어, 프로세서(130) 및 프로세서(130)의 각 구성은 이미지 촬영부(110) 및 센서부(120)와 연결될 수 있다.
맵 프로세서(131)는 무인 비행체 주변 지역의 지형 정보를 구성할 수 있다. 맵 프로세서(131)는 이미지 촬영부(110)로부터 무인 비행체 주변 지역의 깊이 이미지를 획득할 수 있다. 그리고 맵 프로세서(131)는 센서부(120)로부터 무인 비행체의 물리 정보를 획득할 수 있다. 맵 프로세서(131)는 무인 비행체 주변 지역의 깊이 이미지 및 무인 비행체의 물리 정보를 기초로 무인 비행체 주변 지역의 장애물 정보 등을 포함하는 맵을 구성할 수 있다.
인공 신경망부(132)는 이미지 촬영부(110)로부터 무인 비행체 주변 지역의 깊이 이미지를 획득할 수 있으며, 센서부(120)로부터 무인 비행체의 물리 정보를 획득할 수 있다. 그리고 인공 신경망부(132)는 맵 프로세서(131)로부터 무인 비행체 주변 지역의 장애물 정보 등을 포함하는 맵을 획득할 수 있다. 인공 신경망부(132)는 복수개의 인공 신경망 회로를 포함할 수 있다. 예를 들어, 인공 신경망부(132)는 컨볼루션 신경망(convolution neural network, CNN), 심층 신경망(deep neural network, DNN), FCN(fully convolution network) 및 서포트 벡터 머신(support vector machine, SVM) 중 적어도 하나 이상의 인공 신경망을 포함할 수 있다. 인공 신경망부(132)는 인공 신경망 회로를 이용하여 깊이 이미지 및 장애물 정보 등을 포함하는 맵을 세그먼트 단위로 분할할 수 있다. 그리고 인공 신경망부(132)는 깊이 이미지 및 장애물 정보 등을 포함하는 맵 등으로부터 획득한 각각의 값들을 학습된 인공 신경망에 입력하여 비행 동작에 관한 정보를 출력할 수 있다. 무인 비행체는 인공 신경망부(132)에 의해 출력된 비행 동작에 관한 정보가 지시하는 바에 따라서 비행 동작을 수행할 수 있다. 그리고 인공 신경망부(132)는 학습 동작을 수행하여 인공 신경망을 이용하여 산출되는 비행 동작 정보의 정확도를 향상시킬 수 있다.
도 3은 무인 비행체의 비행 동작을 산출하는 프로세서의 동작의 일 실시예를 도시한 흐름도이다.
도 3에 도시된 동작을 수행하는 무인 비행체는 도 1 내지 도 2에 도시된 구성들과 동일하거나 유사한 구성들을 포함할 수 있다. 도 3을 참조하면, 무인 비행체는 다음과 같은 동작을 수행하여 비행 동작을 결정할 수 있다.
무인 비행체(예를 들어, 센서부(120))는 무인 비행체의 물리 정보를 측정할 수 있다(S310). 예를 들어, 센서부(120)는 GPS 센서를 통해 현재 무인 비행체의 위치 정보를 측정할 수 있다. 센서부(120)는 IMU 센서를 통해 현재 무인 비행체의 각속도, 가속도 등을 측정할 수 있다. 또는 센서부(120)는 SLAM 센서를 이용하여 무인 비행체 주변 환경에 관한 정보 및 무인 비행체의 위치 정보를 측정할 수 있다. 센서부(120)는 무인 비행체의 물리 정보를 기초로 무인 비행체의 자세 정보를 추정할 수 있다. 무인 비행체의 자세 정보는 요(yaw), 롤(roll) 및 피치(pitch)와 같이 표현될 수 있다. 센서부(120)는 측정한 무인 비행체의 물리 정보(예를 들어, 위치, 각속도, 가속도, 포즈 정보 등)를 프로세서(130)로 전달할 수 있다.
무인 비행체(예를 들어, 이미지 촬영부(110))는 무인 비행체 주변 환경에 대한 정보를 획득할 수 있다(S320). 예를 들어 이미지 촬영부(110)는 깊이 카메라를 통해 무인 비행체 주변의 깊이 이미지를 획득할 수 있다(S320). 이미지 촬영부(110)는 무인 비행체의 일 방향(예를 들어, 전방)의 깊이 이미지를 획득할 수 있다. 이미지 촬영부(110)과 획득한 깊이 이미지는 2차원(HxW) 깊이 이미지일 수 있다. 무인 비행체는 전방 이외의 방향에 대한 깊이 이미지를 추가로 획득할 수 있다. 이미지 촬영부(110)는 획득한 무인 비행체 주변의 이미지를 프로세서(130)로 전달할 수 있다.
무인 비행체(예를 들어, 프로세서(130))는 이미지 처리 동작을 수행할 수 있다(S330). 프로세서(130)의 맵 프로세서(131)는 센서부(120)로부터 무인 비행체의 물리 정보를 획득할 수 있으며(S310), 이미지 촬영부(110)로부터 적어도 하나 이상의 깊이 이미지들을 획득할 수 있다(S320). 맵 프로세서(131)는 이미지 처리 동작을 수행하여 무인 비행체의 물리 정보 및 깊이 이미지들을 기초로 비행 동작을 도출하기 위한 입력 값들을 산출할 수 있다(S330). 맵 프로세서(131)는 아래에 설명되는 동작들을 수행하여 획득한 이미지를 처리할 수 있다(S330).
도 4는 깊이 이미지를 기초로 장애물 맵을 생성하는 프로세서의 동작의 일 실시예를 도시한 흐름도이다.
도 4에 도시된 동작을 수행하는 무인 비행체는 도 1 내지 도 2에 도시된 구성들과 동일하거나 유사한 구성들을 포함할 수 있다. 도 4를 참조하면, 무인 비행체는 다음과 같은 동작을 수행하여 이미지 처리 동작을 수행할 수 있다.
맵 프로세서(131)는 이미지 촬영부(110)로부터 획득한 적어도 하나 이상의 깊이 이미지들을 조합하여 3차원 이미지를 생성할 수 있다(S331). 맵 프로세서(131)에 의해 생성된 깊이 이미지들을 조합하여 3차원 이미지는 3차원 전역 장애물 맵(3D global obstacle map)일 수 있다. 3차원 전역 장애물 맵은 3차원 그리드 형태로 표현될 수 있으며, 각각의 그리드에 장애물이 위치할 확률에 관한 정보를 포함할 수 있다.
맵 프로세서(131)는 장애물 등의 상대 위치 좌표를 연산할 수 있다(S332). 맵 프로세서(131)는 이미지 촬영부(110)로부터 획득한 깊이 이미지에 포함된 각각의 픽셀들의 정보를 산출할 수 있다. 예를 들어, 맵 프로세서(131)는 무인 비행체와 각각의 픽셀들 간의 거리, 방위각 및 앙각 정보를 산출할 수 있다. 구체적으로 맵 프로세서(131)는 픽셀의 깊이 값을 기초로 무인 비행체와 픽셀 간의 거리 정보를 산출할 수 있다. 그리고 맵 프로세서(131)는 깊이 이미지 상의 각각의 픽셀들의 위치를 기초로 무인 비행체와 픽셀 간의 방위각 및 앙각 정보를 산출할 수 있다. 픽셀들의 정보를 산출함에 있어, 맵 프로세서(131)는 일정 거리 이상의 픽셀들에 관한 정보를 폐기할 수 있다. 맵 프로세서(131)는 각각의 픽셀들의 정보(무인 비행체와 각각의 픽셀들 간의 거리, 방위각 및 양각 정보 등)를 기초로 상대 위치 좌표계에서 각각의 픽셀들의 좌표 값인 상대 위치 좌표 값을 연산할 수 있다(S332).
맵 프로세서(131)는 연산 결과 획득한 상대 위치 좌표를 변환할 수 있다(S333). 맵 프로세서(131)는 각각의 픽셀들의 상대 위치 좌표를 변환하여 각각의 픽셀들의 3차원 전역 장애물 맵 상에서의 좌표를 획득할 수 있다(S333). 구체적으로 맵 프로세서(131)는 무인 비행체의 현재 위치, 방위각 및 앙각 정보 등을 기초로 각각의 상대 위치 좌표 값을 변환하여 전역 좌표 값을 산출할 수 있다(S333).
맵 프로세서(131)는 변환된 전역 좌표 값을 기초로 3차원 전역 장애물 맵을 갱신할 수 있다. 맵 프로세서(131)는 3차원 전역 장애물 맵에서 장애물이 위치하는 픽셀들에 대응되는 그리드의 장애물 위치 확률 값을 1로 갱신할 수 있다(S335).
맵 프로세서(131)는 갱신된 3차원 전역 장애물 맵으로부터 일부 지역에 관한 정보를 추출하여 별도의 맵을 생성할 수 있다(S336). 예를 들어, 맵 프로세서(131)는 무인 비행체로부터 미리 설정된 거리 이내의 범위에 포함되는 지역에 관한 정보를 기초로 상대적으로 무인 비행체 인근 지역의 맵을 생성할 수 있다(S336). 무인 비행체 인근 지역의 맵은 3차원 지역 장애물 맵(3D local obstacle map)일 수 있다.
또는 맵 프로세서(131)는 갱신된 3차원 전역 장애물 맵으로부터 3차원 지역 장애물 맵을 갱신할 수 있다(S336). 맵 프로세서(131)는 3차원 전역 장애물 맵에서 갱신된 정보 중를 기초로 3차원 지역 장애물 맵을 갱신할 수 있다(S336). 따라서, 맵 프로세서(131)는 무인 비행체 주변에 위치하는 고정된 장애물뿐만 아니라 이동형 장애물에 관한 정보를 주기적으로 갱신할 수 있다(S336).
다시 도 3을 참조하면, 깊이 이미지를 미리 설정된 방식에 따라서 이미지 처리한 무인 비행체(예를 들어, 프로세서(130))는 비행체의 동작을 산출할 수 있다(S340). 프로세서(130)의 인공 신경망부(132)는 센서부(120)로부터 무인 비행체의 물리 정보를 획득할 수 있고, 이미지 촬영부(110)로부터 2차원 깊이 이미지를 획득할 수 있으며, 맵 프로세서(131)로부터 3차원 지역 장애물 맵을 획득할 수 있다. 인공 신경망은 무인 비행체의 각 구성으로부터 획득한 정보들(예를 들어, 무인 비행체의 물리 정보, 2차원 깊이 이미지 및 3차원 지역 장애물 맵 정보 등)을 기초로 무인 비행체의 비행 동작을 산출할 수 있다(S340). 인공 신경망부(132)는 아래에 기재된 바와 같은 구조를 포함할 수 있으며, 아래에 기재된 동작들을 수행하여 비행 동작을 산출할 수 있다.
도 5는 무인 비행체의 인공 신경망부의 구조의 일 실시예를 도시한 개념도이다.
도 5를 참조하면, 인공 신경망부(132)는 서로 다른 복수개의 인공 신경망(510, 520, 530)을 포함할 수 있다. 예를 들어 인공 신경망부(132)는 깊이 이미지를 처리하기 위한 제1 인공 신경망(510), 3차원 지역 장애물 맵을 처리하기 위한 제2 인공 신경망(520) 및 무인 비행체의 비행 동작을 산출하기 위한 제3 인공 신경망(530)을 포함할 수 있다.
인공 신경망부(132)는 미리 설정된 시간(h) 동안 연속적으로 2차원 전방 깊이 이미지를 획득할 수 있다. 인공 신경망부(132)는 연속적으로 획득한 2차원 전방 깊이 이미지들을 제1 인공 신경망(510)에 입력할 수 있다. 제1 인공 신경망(510)은 2차원 CNN일 수 있다. 인공 신경망부(132)는 2차원 CNN을 이용하여 2차원 전방 깊이 이미지들을 세그먼트(segment) 단위로 분할할 수 있다. 인공 신경망부(132)는 세그먼트 단위로 분할된 값들을 기초로 제1 입력 값을 생성할 수 있다.
인공 신경망부(132)는 미리 설정된 시간(h) 동안 연속적으로 3차원 지역 장애물 맵을 획득할 수 있다. 인공 신경망부(132)는 연속적으로 획득한 3차원 지역 장애물 맵들을 제2 인공 신경망(520)에 입력할 수 있다. 제2 인공 신경망(520)은 3차원 CNN일 수 있다. 인공 신경망부(132)는 3차원 CNN을 이용하여 3차원 지역 장애물 맵을 세그먼트 단위로 분할할 수 있다. 인공 신경망부(132)는 세그먼트 단위로 분할된 값들을 기초로 제2 입력 값을 생성할 수 있다.
그리고 인공 신경망부(132)는 미리 설정된 시간(h)동안 연속적으로 무인 비행체의 물리 정보를 획득할 수 있다. 인공 신경망부(132)는 제1 인공 신경망의 출력 값(제1 입력 값), 제2 인공 신경망의 출력 값(제2 입력 값) 및 무인 비행체의 물리 정보를 제3 인공 신경망(530)에 입력할 수 있다. 제3 인공 신경망(530)은 FCN일 수 있다. 인공 신경망부(132)는 제3 인공 신경망(530)을 이용하여 각각의 출력 값들에 대응되는 결과 값을 산출할 수 있다. 인공 신경망부(132)는 결과 값을 기초로 무인 비행체의 비행 동작을 산출할 수 있다. 비행 동작 값은 무인 비행체의 전/후 방향의 이동 속도, 좌/우 방향의 이동 속도 및 상/하 방향의 이동 속도에 관한 정보를 포함할 수 있다.
다시 도 3을 참조하면, 프로세서(130)(예를 들어 인공 신경망부(132))는 인공 신경망(예를 들어, 제3 인공 신경망(530) 등)을 이용하여 무인 비행체의 비행 동작을 산출할 수 있으며(S340), 산출된 비행 동작에 관한 정보를 비행 제어부(150)로 전달할 수 있다. 비행 제어부(150)는 프로세서(130)로부터 무인 비행체의 비행 동작에 관한 정보를 획득할 수 있으며, 비행 동작 정보에 상응하는 구동 명령을 구동부(160)로 전달할 수 있다. 따라서 무인 비행체는 프로세서(130)에 의해 산출된 비행 동작 정보를 기초로 비행할 수 있다.
무인 비행체의 인공 신경망부(132)는 인공 신경망을 통해 산출하는 비행 동작 값의 정확도를 향상시키기 위해 학습 동작을 수행할 수 있다. 인공 신경망부(132)는 기계 학습 알고리즘(machine learning algorithm)을 통해 정확한 비행 동작을 산출하기 위한 학습을 수행할 수 있다. 인공 신경망부(132)는 실제 비행 동작 또는 가상의 환경에서 수행한 시뮬레이션 비행 동작에 의해 경험 데이터를 획득할 수 있으며, 획득한 경험 데이터를 기초로 학습 동작을 수행할 수 있다. 인공 신경망부(132)는 교사 학습(supervised learning) 알고리즘, 비교사 학습 및 강화 학습(reinforcement learning) 알고리즘에 따라서 학습을 수행할 수 있다. 본 발명의 일 실시예에 따르면 무인 비행체의 인공 신경망부(132)는 강화 학습 알고리즘을 통해 비행 동작 값의 정확도를 향상시키기 위한 학습 동작을 수행할 수 있다.
도 6은 무인 비행체의 인공 신경망부와 외부 환경과의 상호 작용의 일 실시예를 도시한 개념도이다.
도 6을 참고하면, 무인 비행체의 인공 신경망부(132)는 복수의 환경(실제 환경 또는 시뮬레이션에 의한 가상 환경 등)을 통해 복수의 경험 데이터를 획득할 수 있으며, 획득한 복수의 경험 데이터를 기초로 학습 동작을 수행할 수 있다. 인공 신경망부(132)는 각각의 환경들로부터 상태(state, s)에 관한 정보를 획득할 수 있다. 인공 신경망부(132)는 상태에 관한 정보를 기초로 하나의 비행 동작(action, a)을 결정할 수 있다. 무인 비행체는 인공 신경망부(132)에 의해 결정된 비행 동작을 수행할 수 있으며, 비행 동작에 대한 보상 정보(reward, r)를 획득할 수 있다. 비행 동작을 수행한 무인 비행체는 비행 동작 이후의 상태(s')에 관한 정보를 획득할 수 있다.
인공 신경망부(132)는 비행 동작 이후의 상태에 관한 정보를 더 획득할 수 있으며, 상태 정보, 비행 동작 정보, 보상 정보 및 비행 동작 이후의 상태에 관한 정보를 기초로 경험 데이터(s, a, r, s')를 생성할 수 있다. 인공 신경망부(132)는 생성한 경험 데이터를 메모리(140)에 저장할 수 있다. 그리고 인공 신경망부(132)는 생성한 경험 데이터를 기초로 인공 신경망을 업데이트할 수 있다. 외부 환경과 상호 작용의 결과로 학습하는 인공 신경망부의 동작은 아래에 기재된 바와 같을 수 있다.
도 7은 무인 비행체의 비행 동작을 산출하기 위한 인공 신경망의 강화 학습을 수행하는 프로세서의 동작의 일 실시예를 도시한 개념도이다.
도 7에 도시된 동작을 수행하는 무인 비행체는 도 1 내지 도 2 및 도 5에 도시된 구성들과 동일하거나 유사한 구성들을 포함할 수 있다. 도 7을 참조하면, 인공 신경망부(132)는 다음 동작을 수행하여 강화 학습을 수행할 수 있다.
무인 비행체(예를 들어, 인공 신경망부(132))는 상태에 관한 정보를 획득할 수 있다. 무인 비행체는 센서부(120)를 통해 무인 비행체의 물리 정보(예를 들어, 위치 정보, 각속도, 가속도 정보 등)를 측정할 수 있다(S710). 그리고 무인 비행체는 이미지 촬영부(110)를 통해 무인 비행체 주변 환경의 깊이 이미지(예를 들어, 2차원 깊이 이미지)를 획득할 수 있다(S720). 무인 비행체는 전방 이외의 방향에 대한 깊이 이미지를 추가로 획득할 수 있다. 따라서 인공 신경망부(132)는 무인 비행체의 물리 정보 및 주변 환경의 깊이 이미지를 포함하는 상태 정보를 획득할 수 있다.
그리고 무인 비행체(예를 들어, 인공 신경망부(132))는 상태에 관한 정보를 획득함에 있어, 3차원 장애물 맵을 더 획득할 수 있다(S730). 무인 비행체는 맵 프로세서(131)를 통해 무인 비행체의 물리 정보(예를 들어, 위치 정보, 각속도, 가속도 정보 등) 및 무인 비행체 주변 환경의 깊이 이미지(예를 들어, 2차원 깊이 이미지)를 반영하여 3차원 장애물 맵을 생성할 수 있다(S730). 3차원 장애물 맵은 3차원 전역 장애물 맵 또는 3차원 지역 장애물 맵일 수 있다. 따라서 인공 신경망부(132)는 무인 비행체 주변의 3차원 장애물 맵을 획득할 수 있다(S730).
무인 비행체의 인공 신경망부(132)는 2차원 깊이 이미지 및 3차원 장애물 맵을 처리하여 인공 신경망의 입력 값들을 생성할 수 있다(S740). 인공 신경망부(132)는 미리 설정된 시간(h) 동안 연속적으로 2차원 전방 깊이 이미지, 3차원 장애물 맵을 획득할 수 있다. 인공 신경망부(132)는 연속적으로 획득한 2차원 전방 깊이 이미지들을 제1 인공 신경망에 입력할 수 있다. 인공 신경망부(132)는 연속적으로 획득한 3차원 지역 장애물 맵들을 제2 인공 신경망에 입력할 수 있다. 그리고 인공 신경망부(132)는 미리 설정된 시간(h)동안 연속적으로 무인 비행체의 물리 정보를 획득할 수 있다.
인공 신경망부(132)는 생성된 인공 신경망의 입력 값들 및 무인 비행체의 물리 정보를 입력하여 무인 비행체의 동작을 산출할 수 있다(S750). 산출된 무인 비행체의 동작에 관한 정보는 무인 비행체의 전/후 방향의 이동 속도, 좌/우 방향의 이동 속도 및 상/하 방향의 이동 속도에 관한 정보를 포함할 수 있다. 무인 비행체는 산출된 동작 정보를 기초로 비행할 수 있다.
산출된 동작 정보를 기초로 비행한 후, 무인 비행체(예를 들어서 인공 신경망부(132))는 비행 동작 결과를 기초로 비행 동작에 대한 보상을 획득할 수 있다(S760). 예를 들어서, 무인 비행체는 비행 동작을 수행한 결과 비행이 성공적으로 완료되었을 경우, 양의 보상을 획득할 수 있다(S760). 그리고 무인 비행체는 비행 동작을 수행한 결과 충돌, 고도 이탈, 정지 등의 현상이 발생한 경우, 음의 보상 값을 획득할 수 있다(S760). 또는 무인 비행체는 특정 상황에서 특정 동작을 수행한 경우에만 양의 보상을 획득할 수 있다. 예를 들어, 무인 비행체에 의해 산출된 비행 동작 정보가 동일한 상황에서 전문 비행사에 의해 결정된 비행 동작과 일치하는 경우에 한하여, 무인 비행체는 양의 보상 값을 획득할 수 있다(S760).
그리고 무인 비행체(예를 들어, 인공 신경망부(132))는 비행 동작 이후의 상태에 관한 정보를 획득할 수 있다. 무인 비행체는 센서부(120)를 통해 무인 비행체의 물리 정보(예를 들어, 위치 정보, 각속도, 가속도 정보 등)를 획득할 수 있다. 그리고 무인 비행체는 이미지 촬영부(110)를 통해 무인 비행체 주변 환경의 깊이 이미지(예를 들어, 2차원 깊이 이미지)를 획득할 수 있다. 따라서 인공 신경망부(132)는 비행 동작 이후의 무인 비행체의 물리 정보 및 주변 환경의 깊이 이미지를 포함하는 상태 정보를 획득할 수 있다.
인공 신경망부(132)는 비행 동작 이전의 상태 정보, 비행 동작 정보, 비행 동작 결과 획득한 보상 정보 및 비행 동작 이후의 상태에 관한 정보를 기초로 경험 데이터(s, a, r, s')를 생성할 수 있다. 인공 신경망부(132)는 생성한 경험 데이터를 메모리(140)에 저장할 수 있다. 그리고 인공 신경망부(132)는 생성한 경험 데이터를 기초로 인공 신경망을 업데이트할 수 있다(S770).
예를 들어, 인공 신경망부(132)는 경험 데이터를 기초로 인공 신경망의 가중치 벡터(weight vector)를 업데이트할 수 있다. 따라서 인공 신경망부(132)는 강화 학습을 수행할 수 있으며, 인공 신경망에 의해 산출되는 비행 동작 값의 정확도가 향상될 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (1)

  1. 학습을 통해 비행 제어를 수행하는 무인 비행체로서,
    상기 무인 비행체 주변 환경에 관한 정보를 포함하는 적어도 하나 이상의 이미지 및 상기 무인 비행체의 물리 정보를 획득하는 프로세서;
    상기 프로세서로부터 획득한 상기 무인 비행체 주변 환경의 이미지 및 상기 물리 정보를 기초로 장애물 맵을 생성하는 맵 프로세서; 및
    상기 프로세서로부터 획득한 상기 무인 비행체 주변 환경의 이미지, 상기 물리 정보 및 상기 맵 프로세서로부터 획득한 상기 장애물 맵을 기초로 인공 신경망을 통해 상기 무인 비행체의 비행 동작을 결정하고,
    상기 결정된 비행 동작의 결과 값을 기초로 상기 인공 신경망을 업데이트 하는 인공 신경망부를 포함하는 무인 비행체.
KR1020190166983A 2019-12-13 2019-12-13 깊이 카메라를 이용한 무인 비행체의 비행 제어를 위한 학습 방법 및 장치 KR20210075647A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190166983A KR20210075647A (ko) 2019-12-13 2019-12-13 깊이 카메라를 이용한 무인 비행체의 비행 제어를 위한 학습 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190166983A KR20210075647A (ko) 2019-12-13 2019-12-13 깊이 카메라를 이용한 무인 비행체의 비행 제어를 위한 학습 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20210075647A true KR20210075647A (ko) 2021-06-23

Family

ID=76599506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190166983A KR20210075647A (ko) 2019-12-13 2019-12-13 깊이 카메라를 이용한 무인 비행체의 비행 제어를 위한 학습 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20210075647A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113467248A (zh) * 2021-07-22 2021-10-01 南京大学 基于强化学习的无人机传感器故障时容错控制方法
KR102525912B1 (ko) * 2022-09-22 2023-04-26 (주)제이마플 무인 비행체 및 그 제어 방법
KR102633461B1 (ko) * 2023-07-05 2024-02-02 한성진 선박항해 안내를 위한 드론장치 및 그 장치의 구동방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113467248A (zh) * 2021-07-22 2021-10-01 南京大学 基于强化学习的无人机传感器故障时容错控制方法
KR102525912B1 (ko) * 2022-09-22 2023-04-26 (주)제이마플 무인 비행체 및 그 제어 방법
KR102633461B1 (ko) * 2023-07-05 2024-02-02 한성진 선박항해 안내를 위한 드론장치 및 그 장치의 구동방법

Similar Documents

Publication Publication Date Title
US11237572B2 (en) Collision avoidance system, depth imaging system, vehicle, map generator and methods thereof
US11530921B2 (en) Method of generating a collision free path of travel and computing system
US10914590B2 (en) Methods and systems for determining a state of an unmanned aerial vehicle
US10565732B2 (en) Sensor fusion using inertial and image sensors
EP3971674B1 (en) Systems and methods for uav flight control
Matthies et al. Stereo vision-based obstacle avoidance for micro air vehicles using disparity space
Saha et al. A real-time monocular vision-based frontal obstacle detection and avoidance for low cost UAVs in GPS denied environment
WO2017206179A1 (en) Simple multi-sensor calibration
Dijkshoorn Simultaneous localization and mapping with the ar. drone
WO2016033797A1 (en) Multi-sensor environmental mapping
EP3734394A1 (en) Sensor fusion using inertial and image sensors
CN111615677B (zh) 一种无人机的安全降落方法、装置、无人机及介质
KR20210075647A (ko) 깊이 카메라를 이용한 무인 비행체의 비행 제어를 위한 학습 방법 및 장치
US10937325B2 (en) Collision avoidance system, depth imaging system, vehicle, obstacle map generator, and methods thereof
Winkvist et al. Towards an autonomous indoor aerial inspection vehicle
KR20160085963A (ko) 깊이 지도를 이용한 사물 형상 맵핑 및 실시간 유도를 위한 무인기 비행 제어 장치 및 방법
Schnipke et al. Autonomous navigation of UAV through GPS-denied indoor environment with obstacles
Doukhi et al. Deep reinforcement learning for autonomous map-less navigation of a flying robot
Fink et al. Dynamic visual servoing for a quadrotor using a virtual camera
CN111443733B (zh) 一种无人机飞行控制方法、装置及无人机
JP6900029B2 (ja) 無人航空機、位置推定装置、飛行制御装置、位置推定方法、制御方法及びプログラム
Dinaux et al. FAITH: Fast iterative half-plane focus of expansion estimation using optic flow
US20230242250A1 (en) Aerial Vehicle Path Determination
KR102368734B1 (ko) 드론 및 드론 제어 방법
Sanchez-Rodriguez et al. Onboard plane-wise 3D mapping using super-pixels and stereo vision for autonomous flight of a hexacopter