KR102259920B1 - Estimation of azimuth angle of unmanned aerial vehicle that operates in indoor environment - Google Patents

Estimation of azimuth angle of unmanned aerial vehicle that operates in indoor environment Download PDF

Info

Publication number
KR102259920B1
KR102259920B1 KR1020200171022A KR20200171022A KR102259920B1 KR 102259920 B1 KR102259920 B1 KR 102259920B1 KR 1020200171022 A KR1020200171022 A KR 1020200171022A KR 20200171022 A KR20200171022 A KR 20200171022A KR 102259920 B1 KR102259920 B1 KR 102259920B1
Authority
KR
South Korea
Prior art keywords
azimuth
error compensation
uav
image
compensation value
Prior art date
Application number
KR1020200171022A
Other languages
Korean (ko)
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 KR1020200171022A priority Critical patent/KR102259920B1/en
Application granted granted Critical
Publication of KR102259920B1 publication Critical patent/KR102259920B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64DEQUIPMENT FOR FITTING IN OR TO AIRCRAFT; FLIGHT SUITS; PARACHUTES; ARRANGEMENTS OR MOUNTING OF POWER PLANTS OR PROPULSION TRANSMISSIONS IN AIRCRAFT
    • B64D45/00Aircraft indicators or protectors not otherwise provided for
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C17/00Compasses; Devices for ascertaining true or magnetic north for navigation or surveying purposes
    • G01C17/02Magnetic compasses
    • G01C17/28Electromagnetic compasses
    • G01C17/30Earth-inductor compasses
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C17/00Compasses; Devices for ascertaining true or magnetic north for navigation or surveying purposes
    • G01C17/38Testing, calibrating, or compensating of compasses

Abstract

A method for estimating an azimuth of an unmanned aerial vehicle (UAV) operating in an indoor environment is provided. The disclosed method comprises: a step of calculating an azimuth based on magnetic field measurement data received from a geomagnetic sensor of a UAV; a step of determining a sensor-based azimuth from the calculated azimuth and a preset error compensation value; a step of detecting a predetermined characteristic of an indoor environment based on image data received from an imaging unit of the UAV; a step of determining an image-based azimuth from the detected predetermined characteristic; and a step of updating the error compensation value based on the sensor-based azimuth and the image-based azimuth.

Description

실내 환경에서 운행하는 무인 비행체의 방위각의 추정{ESTIMATION OF AZIMUTH ANGLE OF UNMANNED AERIAL VEHICLE THAT OPERATES IN INDOOR ENVIRONMENT}ESTIMATION OF AZIMUTH ANGLE OF UNMANNED AERIAL VEHICLE THAT OPERATES IN INDOOR ENVIRONMENT

본 개시는 실내 환경에서 운행하는 무인 비행체(Unmanned Aerial Vehicle: UAV)의 방위각의 추정에 관한 것이다.The present disclosure relates to estimation of an azimuth of an unmanned aerial vehicle (UAV) operating in an indoor environment.

다양한 환경에서 무인 이동체, 특히 드론(drone)과 같은 무인 비행체(Unmanned Aerial Vehicle: UAV)를 활용하려는 연구가 활발하다. 실제로 UAV가 동작할 어떤 환경에서는 UAV의 자세를 정확히 추정하는 데에 난제가 있을 수 있다. 예를 들어, 글로벌 포지셔닝 시스템(Global Positioning System: GPS)과 같은 위성 항법 시스템을 이용하기가 쉽지 않은 실내 환경에서 무인 이동체를 운행할 경우에, 무인 이동체의 항법 시스템은 지자기 센서(geomagnetic sensor)(이는 자력계(magnetometer)로도 지칭됨)에 의해 제공되는 자기장 측정 데이터를 이용하여 무인 이동체의 방위각을 추정할 수 있다. 그런데, 여러 관성 항법 시스템에서 흔히 사용되는 다른 센서, 예컨대, 자이로스코프(gyroscope)나 가속도계(accelerometer)에 비해, 지자기 센서는 주변 환경의 영향을 크게 받는다. 예를 들어, 지자기 센서로부터 출력된 자기장 측정 데이터에는 지구 자력 외에 다른 자력을 야기하는 주변 물체 또는 기존의 자력의 방향을 바꾸는 주변 물체로 인해 왜곡(distortion)이 생길 수 있다.Research on the use of unmanned vehicles, particularly unmanned aerial vehicles (UAVs) such as drones, is active in various environments. In fact, in some environments in which the UAV will operate, it may be difficult to accurately estimate the posture of the UAV. For example, when an unmanned mobile vehicle is operated in an indoor environment where it is not easy to use a satellite navigation system such as a global positioning system (GPS), the navigation system of the unmanned mobile object is a geomagnetic sensor (which The azimuth of the unmanned moving object may be estimated using magnetic field measurement data provided by a magnetometer (also referred to as a magnetometer). However, compared to other sensors commonly used in various inertial navigation systems, for example, a gyroscope or an accelerometer, the geomagnetic sensor is greatly affected by the surrounding environment. For example, distortion may occur in magnetic field measurement data output from the geomagnetic sensor due to a surrounding object that causes a magnetic force other than the Earth's magnetic force or a surrounding object that changes the direction of an existing magnetic force.

실내 환경에서 운행하는 UAV의 방위각의 추정이 본 문서에 개시된다.Estimation of the azimuth of a UAV operating in an indoor environment is disclosed herein.

예 1에서, 실내 환경에서 운행하는 무인 비행체(Unmanned Aerial Vehicle: UAV)의 방위각을 추정하는 방법은 다음을 포함한다: 상기 UAV의 지자기 센서(geomagnetic sensor)로부터 수신된 자기장 측정 데이터를 기반으로 상기 방위각을 계산하는 단계; 상기 계산된 방위각 및 사전설정된 오차 보상 값으로부터 센서 기반 방위각을 판정하는 단계; 상기 UAV의 촬상 유닛(imaging unit)으로부터 수신된 영상 데이터를 기반으로 상기 실내 환경의 사전결정된 특징을 검출하는 단계; 상기 검출된 사전결정된 특징으로부터 영상 기반 방위각을 판정하는 단계; 및 상기 센서 기반 방위각 및 상기 영상 기반 방위각을 기반으로 상기 오차 보상 값을 갱신하는 단계.In Example 1, a method for estimating an azimuth of an unmanned aerial vehicle (UAV) operating in an indoor environment includes: the azimuth angle based on magnetic field measurement data received from a geomagnetic sensor of the UAV calculating ; determining a sensor-based azimuth from the calculated azimuth and a preset error compensation value; detecting a predetermined characteristic of the indoor environment based on image data received from an imaging unit of the UAV; determining an image-based azimuth from the detected predetermined feature; and updating the error compensation value based on the sensor-based azimuth and the image-based azimuth.

예 2는 예 1의 주제(subject matter)를 포함하는데, 상기 사전결정된 특징은 사전결정된 절대 방위각을 갖는 직선 부분을 포함하고, 상기 영상 기반 방위각을 판정하는 단계는 상기 UAV에 대한 상기 직선 부분의 상대 각도 및 상기 절대 방위각으로부터 상기 영상 기반 방위각을 계산하는 단계를 포함한다.Example 2 includes the subject matter of Example 1, wherein the predetermined characteristic includes a straight-line portion having a predetermined absolute azimuth, and wherein determining the image-based azimuth includes a relative of the straight-line portion to the UAV. and calculating the image-based azimuth from the angle and the absolute azimuth.

예 3은 예 1 또는 예 2의 주제를 포함하는데, 상기 오차 보상 값을 갱신하는 단계는 상기 센서 기반 방위각 및 상기 영상 기반 방위각을 상보 필터(complementary filter)로써 필터링하여 필터링된 방위각을 산출하는 단계와, 상기 센서 기반 방위각 및 상기 필터링된 방위각 간의 차이에 상기 오차 보상 값이 누적된 값으로 상기 오차 보상 값을 설정하는 단계를 포함한다.Example 3 includes the subject matter of Example 1 or Example 2, wherein updating the error compensation value includes: filtering the sensor-based azimuth and the image-based azimuth with a complementary filter to calculate a filtered azimuth; , setting the error compensation value as a value in which the error compensation value is accumulated in a difference between the sensor-based azimuth and the filtered azimuth.

예 4는 예 1 내지 예 3 중 임의의 것의 주제를 포함하는데, 상기 오차 보상 값을 갱신하는 단계는 상기 센서 기반 방위각 및 상기 영상 기반 방위각 간의 차이가 임계 값 이상인지를 기반으로, 상기 오차 보상 값을 초기 값으로 또는 상기 차이에 상기 오차 보상 값이 누적된 값으로 설정하는 단계를 포함한다.Example 4 includes the subject matter of any of Examples 1-3, wherein updating the error compensation value is based on whether a difference between the sensor-based azimuth and the image-based azimuth is greater than or equal to a threshold value; and setting as an initial value or a value in which the error compensation value is accumulated in the difference.

예 5는 예 1 내지 예 4 중 임의의 것의 주제를 포함하는데, 상기 영상 데이터가 상기 촬상 유닛으로부터 임계 시간 이상 수신되지 않는 경우에 상기 오차 보상 값을 초기 값으로 설정하는 단계를 더 포함한다.Example 5 includes the subject matter of any of Examples 1-4, further comprising setting the error compensation value to an initial value when the image data is not received from the imaging unit for more than a threshold time.

예 6은 예 1 내지 예 5 중 임의의 것의 주제를 포함하는데, 상기 방법은 상기 지자기 센서의 2차원 평면상 회전으로부터 수집된 데이터를 기반으로 상기 지자기 센서의 캘리브레이션(calibration)을 수행하는 단계를 더 포함하고, 상기 방위각을 계산하는 단계는 상기 캘리브레이션이 적용된 상기 자기장 측정 데이터를 기반으로 상기 방위각을 계산하는 단계를 포함한다.Example 6 includes the subject matter of any of Examples 1-5, wherein the method further comprises performing a calibration of the geomagnetic sensor based on data collected from a two-dimensional in-plane rotation of the geomagnetic sensor. and calculating the azimuth includes calculating the azimuth based on the magnetic field measurement data to which the calibration is applied.

예 7은 예 1 내지 예 6 중 임의의 것의 주제를 포함하는데, 상기 방위각을 계산하는 단계는 상기 UAV의 자이로스코프(gyroscope)로부터 수신된 각속도 측정 데이터를 기반으로 상기 방위각을 자이로스코프 기반 방위각으로서 계산하는 단계와, 상기 자기장 측정 데이터를 기반으로 상기 방위각을 지자기 센서 기반 방위각으로서 계산하는 단계와, 상기 자이로스코프 기반 방위각 및 상기 지자기 센서 기반 방위각을 상보 필터로써 필터링하여 상기 방위각을 계산하는 단계를 포함한다.Example 7 includes the subject matter of any of Examples 1-6, wherein calculating the azimuth comprises calculating the azimuth as a gyroscope based azimuth based on angular velocity measurement data received from a gyroscope of the UAV. calculating the azimuth as a geomagnetic sensor-based azimuth based on the magnetic field measurement data, and calculating the azimuth by filtering the gyroscope-based azimuth and the geomagnetic sensor-based azimuth with a complementary filter. .

예 8에서, 컴퓨터 프로세서에 의해 실행되는 경우 상기 컴퓨터 프로세서로 하여금 예 1 내지 예 7 중 임의의 것에 기재된 방법을 수행하게 하는 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체가 제공된다.In Example 8, there is provided a computer-readable storage medium having stored thereon computer-executable instructions that, when executed by a computer processor, cause the computer processor to perform the method described in any of Examples 1-7.

예 9에서, 컴퓨팅 장치는 프로세서와, 메모리를 포함하되, 상기 메모리는 실내 환경에서 운행하는 무인 비행체(Unmanned Aerial Vehicle: UAV)의 방위각을 추정하기 위해 상기 프로세서에 의해 실행가능한 컴퓨터 프로그램 명령어의 세트로써 인코딩되고, 상기 세트는 다음을 포함한다: 상기 UAV의 지자기 센서로부터 수신된 자기장 측정 데이터를 기반으로 상기 UAV의 방위각을 계산하는 명령어; 상기 계산된 방위각 및 사전설정된 오차 보상 값으로부터 센서 기반 방위각을 판정하는 명령어; 상기 UAV의 촬상 유닛으로부터 수신된 영상 데이터를 기반으로 상기 실내 환경의 사전결정된 특징을 검출하는 명령어; 상기 검출된 사전결정된 특징으로부터 영상 기반 방위각을 판정하는 명령어; 및 상기 센서 기반 방위각 및 상기 영상 기반 방위각을 기반으로 상기 오차 보상 값을 갱신하는 명령어.In Example 9, a computing device includes a processor and a memory, wherein the memory comprises a set of computer program instructions executable by the processor to estimate an azimuth of an unmanned aerial vehicle (UAV) operating in an indoor environment. encoded, the set comprising: instructions for calculating an azimuth of the UAV based on magnetic field measurement data received from a geomagnetic sensor of the UAV; instructions for determining a sensor-based azimuth from the calculated azimuth and a preset error compensation value; instructions for detecting a predetermined characteristic of the indoor environment based on image data received from the imaging unit of the UAV; instructions for determining an image-based azimuth from the detected predetermined feature; and a command for updating the error compensation value based on the sensor-based azimuth and the image-based azimuth.

예 10은 예 9의 주제를 포함하는데, 상기 사전결정된 특징은 사전결정된 절대 방위각을 갖는 직선 부분을 포함하고, 상기 영상 기반 방위각을 판정하는 명령어는 상기 UAV에 대한 상기 직선 부분의 상대 각도 및 상기 절대 방위각으로부터 상기 영상 기반 방위각을 계산하는 명령어를 포함한다.Example 10 includes the subject matter of Example 9, wherein the predetermined characteristic comprises a straight-line portion having a predetermined absolute azimuth, and wherein the instructions to determine the image-based azimuth include: a relative angle of the straight-line portion to the UAV and the absolute and instructions for calculating the image-based azimuth from the azimuth.

예 11은 예 9 또는 예 10의 주제를 포함하는데, 상기 오차 보상 값을 갱신하는 명령어는 상기 센서 기반 방위각 및 상기 영상 기반 방위각을 상보 필터로써 필터링하여 필터링된 방위각을 산출하는 명령어와, 상기 오차 보상 값을 상기 센서 기반 방위각 및 상기 필터링된 방위각 간의 차이에 상기 오차 보상 값이 누적된 값으로 설정하는 명령어를 포함한다.Example 11 includes the subject matter of Examples 9 or 10, wherein the command for updating the error compensation value includes: a command for filtering the sensor-based azimuth and the image-based azimuth with a complementary filter to calculate a filtered azimuth; and a command for setting a value as a value in which the error compensation value is accumulated in a difference between the sensor-based azimuth and the filtered azimuth.

예 12는 예 9 내지 예 11 중 임의의 것의 주제를 포함하는데, 상기 오차 보상 값을 갱신하는 명령어는 상기 센서 기반 방위각 및 상기 영상 기반 방위각 간의 차이가 임계 값 이상인지를 기반으로, 상기 오차 보상 값을 초기 값으로 또는 상기 차이에 상기 오차 보상 값이 누적된 값으로 설정하는 명령어를 포함한다.Example 12 includes the subject matter of any of Examples 9-11, wherein the instruction to update the error compensation value is based on whether a difference between the sensor-based azimuth and the image-based azimuth is greater than or equal to a threshold value: and a command for setting α as an initial value or a value in which the error compensation value is accumulated in the difference.

예 13은 예 9 내지 예 12 중 임의의 것의 주제를 포함하는데, 상기 세트는, 상기 영상 데이터가 상기 촬상 유닛으로부터 임계 시간 이상 수신되지 않는 경우에 상기 오차 보상 값을 초기 값으로 설정하는 명령어를 더 포함한다.Example 13 includes the subject matter of any of Examples 9-12, wherein the set further includes instructions to set the error compensation value to an initial value when the image data is not received from the imaging unit for more than a threshold time. include

예 14는 예 9 내지 예 13 중 임의의 것의 주제를 포함하는데, 상기 세트는, 상기 지자기 센서의 2차원 평면상 회전으로부터 수집된 데이터를 기반으로 상기 지자기 센서의 캘리브레이션을 수행하는 명령어를 더 포함하고, 상기 방위각을 계산하는 명령어는 상기 캘리브레이션이 적용된 상기 자기장 측정 데이터를 기반으로 상기 방위각을 계산하는 명령어를 포함한다.Example 14 includes the subject matter of any of Examples 9-13, wherein the set further comprises instructions to perform a calibration of the geomagnetic sensor based on data collected from a two-dimensional in-plane rotation of the geomagnetic sensor; , The command for calculating the azimuth includes a command for calculating the azimuth based on the magnetic field measurement data to which the calibration is applied.

예 15는 예 9 내지 예 14 중 임의의 것의 주제를 포함하는데, 상기 방위각을 계산하는 명령어는 상기 UAV의 자이로스코프로부터 수신된 각속도 측정 데이터를 기반으로 상기 방위각을 자이로스코프 기반 방위각으로서 계산하는 단계와, 상기 자기장 측정 데이터를 기반으로 상기 방위각을 지자기 센서 기반 방위각으로서 계산하는 단계와, 상기 자이로스코프 기반 방위각 및 상기 지자기 센서 기반 방위각을 상보 필터로써 필터링하여 상기 방위각을 계산하는 명령어를 포함한다.Example 15 includes the subject matter of any of Examples 9-14, wherein the instructions for calculating the azimuth include: calculating the azimuth as a gyroscope based azimuth based on angular velocity measurement data received from a gyroscope of the UAV; , calculating the azimuth as a geomagnetic sensor-based azimuth based on the magnetic field measurement data, and filtering the gyroscope-based azimuth and the geomagnetic sensor-based azimuth with a complementary filter to calculate the azimuth.

예 16에서, 예 9 내지 예 15 중 임의의 것에 기재된 지자기 센서, 촬상 유닛 및 컴퓨팅 장치를 포함하는 무인 비행체가 제공된다.In Example 16, an unmanned aerial vehicle comprising the geomagnetic sensor, imaging unit, and computing device described in any of Examples 9-15 is provided.

전술된 개요는 상세한 설명에서 추가로 후술되는 몇몇 양상을 단순화된 형태로 소개하기 위해 제공된다. 이 개요는 청구된 주제의 중요 특징 또는 필수적 특징을 식별하도록 의도되지 않고, 청구된 주제의 범위를 정하는 데 사용되도록 의도되지도 않는다. 나아가, 청구된 주제는 본 명세서에서 논의되는 임의의 또는 모든 이점을 제공하는 구현에 한정되지 않는다.The previous summary is provided to introduce in a simplified form some aspects that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to delineate the scope of the claimed subject matter. Furthermore, claimed subject matter is not limited to implementations that provide any or all advantages discussed herein.

본 개시에 따르면, 실내 환경에서 운행하는 UAV의 방위각을 추정하는 데에서 지자기 센서에 의해 측정된 자기장뿐만 아니라 실내 환경 내의 사전결정된 특징이 포착된 영상도 활용함으로써 추정의 정확도를 향상시킬 수 있다.According to the present disclosure, in estimating the azimuth of a UAV operating in an indoor environment, it is possible to improve the accuracy of estimation by utilizing not only the magnetic field measured by the geomagnetic sensor but also an image in which predetermined features in the indoor environment are captured.

도 1은 실내 환경에서의 운행을 위한 예시적인 무인 비행체(Unmanned Aerial Vehicle: UAV)의 항법 시스템의 예를 보여주는 블록도이다.
도 2는 도 1의 UAV의 자세 추정의 예시적인 흐름을 보여준다.
도 3은 도 1의 UAV의 방위각을 계산하기 위한 영상 처리의 예시적인 흐름을 보여준다.
도 4a 및 도 4b는 각각 도 3의 영상 처리에서의 에지 검출 및 직선 검출을 설명하기 위한 도면이다.
도 5는 도 1의 UAV의 방위각을 설명하기 위한 도식이다.
도 6은 도 1의 UAV의 방위각을 계산하는 데에 사용되는 지자기 센서의 출력 데이터에 대해 지자기 센서의 캘리브레이션이 적용되기 전과 후를 비교하기 위한 도면이다.
도 7은 도 1의 UAV의 방위각 추정에서의 오차에 대한 보상의 예시적인 흐름을 보여준다.
도 8은 도 1의 UAV의 방위각 추정에서의 오차에 대한 보상의 다른 예시적인 흐름을 보여준다.
도 9는 도 1의 UAV의 방위각을 추정하는 프로세스의 예를 보여주는 흐름도이다.
1 is a block diagram showing an example of a navigation system of an exemplary Unmanned Aerial Vehicle (UAV) for operation in an indoor environment.
FIG. 2 shows an exemplary flow of posture estimation of the UAV of FIG. 1 .
FIG. 3 shows an exemplary flow of image processing for calculating the azimuth of the UAV of FIG. 1 .
4A and 4B are diagrams for explaining edge detection and straight line detection in the image processing of FIG. 3 , respectively.
FIG. 5 is a diagram for explaining an azimuth of the UAV of FIG. 1 .
FIG. 6 is a diagram for comparing the output data of the geomagnetic sensor used to calculate the azimuth of the UAV of FIG. 1 before and after calibration of the geomagnetic sensor is applied.
7 shows an exemplary flow of compensation for an error in azimuth estimation of the UAV of FIG. 1 .
8 shows another exemplary flow of compensation for an error in azimuth estimation of the UAV of FIG. 1 .
9 is a flowchart illustrating an example of a process for estimating an azimuth of the UAV of FIG. 1 .

본 개시에서 사용되는 다양한 용어는 본 문서에서의 기능을 고려하여 상용 용어의 용어법으로부터 선택되는데, 이는 당업자의 의도, 준례, 또는 새로운 기술의 출현에 따라서 달리 인식될 수 있다. 특정한 사례에서, 몇몇 용어에는 상세한 설명에서 개진된 바와 같이 의미가 주어질 수 있다. 따라서, 본 문서에서 사용되는 용어는, 단순히 그 명칭에 의해서가 아니라, 본 개시의 맥락에서 그 용어가 갖는 의미와 일관되게 정의되어야 한다.Various terms used in the present disclosure are selected from the terminology of common terms in consideration of their functions in this document, which may be differently recognized according to the intention of those skilled in the art, practice, or emergence of new technology. In certain instances, some terms may be given meanings as set forth in the Detailed Description. Accordingly, terms used in this document should be defined consistent with their meaning in the context of the present disclosure and not simply by their names.

본 문서에서 용어 "포함하다", "가지다" 등은 이후에 열거된 요소, 예컨대, 어떤 특징, 숫자, 단계, 동작, 구성요소, 정보 또는 이들의 조합의 존재를 명시하는 경우에 사용된다. 달리 표시되지 않는 한, 이런 용어 및 이의 변형은 다른 요소의 존재 또는 추가를 배제하도록 의도되지 않는다.In this document, the terms "comprise", "have" and the like are used when specifying the presence of an element listed hereinafter, such as a certain feature, number, step, operation, element, information, or combination thereof. Unless otherwise indicated, these terms and variations thereof are not intended to exclude the presence or addition of other elements.

본 문서에서 사용되는 바와 같이, 용어 "제1", "제2" 등은 몇 개의 서로 닮은 요소를 식별하도록 의도된다. 달리 기재되지 않는 한, 그러한 용어는 이들 요소의 또는 이들의 사용의 특정한 순서와 같은 한정을 부과하도록 의도된 것이 아니라, 단지 여러 요소를 따로따로 지칭하기 위해 사용된다. 예를 들면, 어떤 요소가 일례에서 용어 "제1"로써 참조될 수 있는 한편 동일한 요소가 다른 예에서 "제2" 또는 "제3"과 같은 상이한 서수로써 참조될 수 있다. 그러한 예에서, 이들 용어는 본 개시의 범위를 한정하지 않는 것이다. 또한, 여러 요소의 리스트에서 용어 "및/또는"을 사용하는 것은 열거된 항목 중 임의의 하나 또는 복수 개를 비롯하여 이들 항목의 모든 가능한 조합을 포함한다. 나아가, 단수 형태의 표현은 명확하게 달리 사용되지 않는 한, 복수 형태의 의미를 포함한다.As used herein, the terms “first,” “second,” and the like are intended to identify several elements that resemble each other. Unless otherwise stated, such terms are not intended to impose limitations, such as the specific order of these elements or their use, but are merely used to refer to the various elements separately. For example, an element may be referenced in one example by the term "first" while the same element may be referenced in another example by a different ordinal number, such as "second" or "third." In such instances, these terms do not limit the scope of the present disclosure. Also, use of the term "and/or" in a list of multiple elements includes all possible combinations of those listed, including any one or multiple of those listed. Furthermore, expressions in the singular form include the meaning of the plural unless clearly used otherwise.

첨부된 도면을 참조하여 본 개시의 소정의 예가 이제 상세히 기술될 것이다. 다만, 본 개시는 많은 상이한 형태로 체현될 수 있으며, 본 문서에 개진된 예에 한정되는 것으로 해석되어서는 안 된다. 오히려, 이들 예는 본 개시의 범위의 더 나은 이해를 제공하기 위해서 주어지는 것이다.Certain examples of the present disclosure will now be described in detail with reference to the accompanying drawings. However, the present disclosure may be embodied in many different forms and should not be construed as being limited to the examples presented in this document. Rather, these examples are given to provide a better understanding of the scope of the present disclosure.

도 1은 실내 환경에서의 운행을 위한 예시적인 UAV(10)의 항법 시스템(100)의 예를 보여주는 블록도이다. UAV(10)의 예는 하나 이상의 로터(rotor)(또는 회전익(rotor blade))를 가진 드론(drone), 고정익(fixed wing)을 가진 드론 및 가변 로터(tilt-rotor) 메커니즘을 가진 드론을 포함한다.1 is a block diagram illustrating an example of a navigation system 100 of an exemplary UAV 10 for operation in an indoor environment. Examples of UAV 10 include drones with one or more rotors (or rotor blades), drones with fixed wings, and drones with a tilt-rotor mechanism. do.

도 1의 예시적인 항법 시스템(100)은 현재의 항법 정보(이는, 예컨대, UAV(10)의 위치, 속도 및 자세를 나타냄)를 UAV(10)에 장착된 센서로부터의 측정 정보 및 이전의 항법 정보에 기반하여 산출한다. 몇몇 예에서, 항법 시스템(100)은 외부의 항법 시스템(가령, GPS)으로부터 보조 정보를 수신하고 이를 사용하는 메커니즘을 갖지 않을 수 있다.The exemplary navigation system 100 of FIG. 1 provides current navigation information (which indicates, for example, the position, speed, and attitude of the UAV 10 ) to measurement information from sensors mounted on the UAV 10 and previous navigation information. Calculate based on information. In some examples, the navigation system 100 may not have a mechanism to receive and use assistance information from an external navigation system (eg, GPS).

도 1의 예에서, 항법 시스템(100)은 자이로스코프(110), 가속도계(120), 지자기 센서(130), 촬상 유닛(imaging unit)(140) 및 처리 유닛(processing unit)(150)을 포함한다. 항법 시스템(100)의 다른 예시적인 구현이 또한 고려된다. 예를 들어, 항법 시스템(100)은 도시되지 않은 추가적인 컴포넌트를 또한 포함할 수 있고/거나, 도 1에 도시된 컴포넌트 중 일부를 포함하나 전부를 포함하지는 않을 수 있다.In the example of FIG. 1 , the navigation system 100 includes a gyroscope 110 , an accelerometer 120 , a geomagnetic sensor 130 , an imaging unit 140 , and a processing unit 150 . do. Other example implementations of the navigation system 100 are also contemplated. For example, the navigation system 100 may also include additional components not shown and/or may include some but not all of the components shown in FIG. 1 .

도시된 예에서, 자이로스코프(110)는 각속도 측정 데이터를 제공한다. 예시적인 구현에서, 자이로스코프(110)는 각속도 측정 데이터가 UAV(10)의 동체 좌표계의 x축, y축 및 z축에 대해 각각 측정된 각속도

Figure 112020133338052-pat00001
,
Figure 112020133338052-pat00002
Figure 112020133338052-pat00003
를 나타내도록 UAV에 장착될 수 있다. 예를 들어, 자이로스코프(140)는 3축 자이로스코프일 수 있다.In the example shown, gyroscope 110 provides angular velocity measurement data. In an exemplary implementation, the gyroscope 110 is configured so that the angular velocity measurement data is the measured angular velocity with respect to the x-axis, y-axis, and z-axis of the body coordinate system of the UAV 10, respectively.
Figure 112020133338052-pat00001
,
Figure 112020133338052-pat00002
and
Figure 112020133338052-pat00003
It can be mounted on a UAV to indicate For example, the gyroscope 140 may be a three-axis gyroscope.

도시된 예에서, 가속도계(120)는 가속도 측정 데이터를 제공한다. 예시적인 구현에서, 가속도계(120)는 가속도 측정 데이터가 x축, y축 및 z축에 대해 각각 측정된 가속도

Figure 112020133338052-pat00004
,
Figure 112020133338052-pat00005
Figure 112020133338052-pat00006
를 나타내도록 UAV(10)에 장착될 수 있다. 예를 들어, 가속도계(150)는 3축 가속도계일 수 있다.In the illustrated example, accelerometer 120 provides acceleration measurement data. In an exemplary implementation, the accelerometer 120 provides the acceleration measurement data for measured accelerations with respect to the x-axis, y-axis, and z-axis, respectively.
Figure 112020133338052-pat00004
,
Figure 112020133338052-pat00005
and
Figure 112020133338052-pat00006
It may be mounted on the UAV 10 to indicate For example, the accelerometer 150 may be a three-axis accelerometer.

도시된 예에서, 지자기 센서(130)는 자기장 측정 데이터를 제공한다. 예시적인 구현에서, 지자기 센서(110)는 자기장 측정 데이터가 x축, y축 및 z축 방향에서 각각 측정된 자기장

Figure 112020133338052-pat00007
,
Figure 112020133338052-pat00008
Figure 112020133338052-pat00009
을 나타내도록 UAV(10)에 장착될 수 있다. 예를 들어, 지자기 센서(110)는 3축 자력계일 수 있다.In the illustrated example, the geomagnetic sensor 130 provides magnetic field measurement data. In an exemplary implementation, the geomagnetic sensor 110 is a magnetic field measurement data measured in the x-axis, y-axis and z-axis directions, respectively.
Figure 112020133338052-pat00007
,
Figure 112020133338052-pat00008
and
Figure 112020133338052-pat00009
It may be mounted on the UAV 10 to indicate For example, the geomagnetic sensor 110 may be a three-axis magnetometer.

도시된 예에서, 촬상 유닛(140)은 영상 데이터를 제공한다. 예시적인 구현에서, 촬상 유닛(120)은 사전결정된 주기로 UAV(10)의 전진 방향(가령, x축 방향)을 따라 포착된 M×N 픽셀의 영상 데이터를 제공하도록 UAV(10)에 장착될 수 있다. 예를 들어, 촬상 유닛(120)은 CMOS 이미지 센서, 카메라 모듈, 또는 다른 타입의 촬상 유닛일 수 있다.In the illustrated example, the imaging unit 140 provides image data. In an example implementation, the imaging unit 120 may be mounted to the UAV 10 to provide image data of M×N pixels captured along the forward direction (eg, the x-axis direction) of the UAV 10 at a predetermined period. have. For example, the imaging unit 120 may be a CMOS image sensor, a camera module, or other type of imaging unit.

도시된 예에서, 처리 유닛(150)은 UAV(10)의 자세를 추정한다. 그러한 자세 추정의 예시적인 흐름이 도 2에 도시된다.In the illustrated example, the processing unit 150 estimates the pose of the UAV 10 . An exemplary flow of such pose estimation is shown in FIG. 2 .

몇몇 예시적인 구현에서, 블록(210 및 215)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 자이로스코프(110)로부터 수신된 각속도 측정 데이터를 기반으로 UAV(10)의 롤(roll) 각, 피치(pitch) 각 및 요(yaw) 각(즉, 방위각)을 다음 수학식에 따라 각각

Figure 112020133338052-pat00010
,
Figure 112020133338052-pat00011
Figure 112020133338052-pat00012
으로서 계산할 수 있다.In some example implementations, as represented by blocks 210 and 215 , processing unit 150 determines the roll angle of UAV 10 based on angular velocity measurement data received from gyroscope 110 , The pitch angle and the yaw angle (i.e., azimuth) are respectively calculated according to the following equations:
Figure 112020133338052-pat00010
,
Figure 112020133338052-pat00011
and
Figure 112020133338052-pat00012
can be calculated as

Figure 112020133338052-pat00013
Figure 112020133338052-pat00013

위 수학식에서 알 수 있는 바와 같이, 자이로스코프(110)의 각속도 측정 데이터로써 UAV(10)의 자세를 계산하는 것은 오차의 누적을 야기하는 적분을 수반한다. 그러한 드리프트(drift)로 인한 계산된 값의 발산은, 예컨대, 다음에서 기술되는 바와 같이, 억제될 수 있다.As can be seen from the above equation, calculating the posture of the UAV 10 as the angular velocity measurement data of the gyroscope 110 involves integration causing accumulation of errors. The divergence of the calculated value due to such drift can be suppressed, for example, as described below.

몇몇 예시적인 구현에서, 블록(220)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 가속도계(120)로부터 수신된 가속도 측정 데이터를 기반으로 UAV(10)의 롤 각 및 피치 각을 다음 수학식에 따라 각각

Figure 112020133338052-pat00014
Figure 112020133338052-pat00015
으로서 계산할 수 있다.In some example implementations, as represented by block 220 , the processing unit 150 calculates the roll angle and pitch angle of the UAV 10 based on the accelerometer measurement data received from the accelerometer 120 by the following equations: according to each
Figure 112020133338052-pat00014
and
Figure 112020133338052-pat00015
can be calculated as

Figure 112020133338052-pat00016
Figure 112020133338052-pat00016

그러면, 블록(225)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 각속도 측정 데이터를 기반으로 계산된 롤 각

Figure 112020133338052-pat00017
및 피치 각
Figure 112020133338052-pat00018
을 가속도 측정 데이터를 기반으로 계산된 롤 각
Figure 112020133338052-pat00019
및 피치 각
Figure 112020133338052-pat00020
과 각각 융합하여 UAV(10)의 센서 기반 롤 각
Figure 112020133338052-pat00021
및 센서 기반 피치 각
Figure 112020133338052-pat00022
을 산출할 수 있다. 특정한 예에서, 그러한 융합은 상보 필터(complementary filter)의 사용, 예컨대, 자이로스코프 기반 각도 값
Figure 112020133338052-pat00023
Figure 112020133338052-pat00024
에 고대역 통과 필터(High Pass Filter: HPF)를 적용하는 것 및 가속도계 기반 각도 값
Figure 112020133338052-pat00025
Figure 112020133338052-pat00026
에 저대역 통과 필터(Low Pass Filter: LPF)를 적용하는 것을 포함할 수 있다.Then, as represented by block 225 , processing unit 150 performs the calculated roll angle based on the angular velocity measurement data.
Figure 112020133338052-pat00017
and pitch angle
Figure 112020133338052-pat00018
Roll angle calculated based on the accelerometer data
Figure 112020133338052-pat00019
and pitch angle
Figure 112020133338052-pat00020
The sensor-based roll angle of the UAV (10) by fusion with
Figure 112020133338052-pat00021
and sensor-based pitch angle
Figure 112020133338052-pat00022
can be calculated. In certain instances, such fusion may be accomplished using a complementary filter, eg, a gyroscope based angle value.
Figure 112020133338052-pat00023
and
Figure 112020133338052-pat00024
Applying a High Pass Filter (HPF) to the accelerometer-based angle values
Figure 112020133338052-pat00025
and
Figure 112020133338052-pat00026
It may include applying a low pass filter (LPF) to the.

또한, 몇몇 예시적인 구현에서, 블록(230)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 지자기 센서(130)로부터 수신된 자기장 측정 데이터를 기반으로, 그리고 UAV(10)의 롤 각 및 피치 각, 예컨대, 센서 기반 롤 각

Figure 112020133338052-pat00027
및 센서 기반 피치 각
Figure 112020133338052-pat00028
에 또한 기반하여, UAV(10)의 방위각을 다음 수학식에 따라
Figure 112020133338052-pat00029
으로서 계산할 수 있다.Further, in some example implementations, as represented by block 230 , the processing unit 150 is configured to perform the roll angle and pitch of the UAV 10 and based on the magnetic field measurement data received from the geomagnetic sensor 130 . angle, e.g. sensor-based roll angle
Figure 112020133338052-pat00027
and sensor-based pitch angle
Figure 112020133338052-pat00028
Also based on , the azimuth of the UAV 10 is calculated according to the following equation
Figure 112020133338052-pat00029
can be calculated as

Figure 112020133338052-pat00030
Figure 112020133338052-pat00030

그러면, 블록(235)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 각속도 측정 데이터를 기반으로 계산된 방위각

Figure 112020133338052-pat00031
을 자기장 측정 데이터를 기반으로 계산된 방위각
Figure 112020133338052-pat00032
과 융합할 수 있다. 특정한 예에서, 그러한 융합은 상보 필터의 사용, 예컨대, 자이로스코프 기반 각도 값
Figure 112020133338052-pat00033
에 HPF를 적용하는 것 및 지자기 센서 기반 각도 값
Figure 112020133338052-pat00034
에 LPF를 적용하는 것을 포함할 수 있다.Then, as represented by block 235 , processing unit 150 performs the calculated azimuth based on the angular velocity measurement data.
Figure 112020133338052-pat00031
azimuth calculated based on magnetic field measurement data
Figure 112020133338052-pat00032
can be fused with In certain instances, such fusion may be achieved by the use of a complementary filter, eg, a gyroscope based angle value.
Figure 112020133338052-pat00033
Applying HPF to and geomagnetic sensor based angle values
Figure 112020133338052-pat00034
may include applying LPF to

나아가, 몇몇 예시적인 구현에서, 방위각

Figure 112020133338052-pat00035
및 방위각
Figure 112020133338052-pat00036
의 융합은 사전설정된 오차 보상 값
Figure 112020133338052-pat00037
으로써 오차 보상이 될 수 있다. 예를 들어, 블록(250)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 융합으로부터 초래된 값에서 오차 보상 값
Figure 112020133338052-pat00038
을 감산함으로써 UAV(10)의 방위각의 최종적인 추정치로서 센서 기반 방위각
Figure 112020133338052-pat00039
을 산출할 수 있다. 특정한 예에서, 처리 유닛(150)은 UAV의 초기화 동안에 오차 보상 값
Figure 112020133338052-pat00040
을 초기 값(가령, 0)으로 초기화할 수 있고, 블록(245)에 의해 나타내어진 바와 같이, 오차 보상 값
Figure 112020133338052-pat00041
을 UAV(10)의 센서 기반 방위각
Figure 112020133338052-pat00042
및 영상 기반 방위각
Figure 112020133338052-pat00043
에 기반하여 갱신할 수 있다. 영상 기반 방위각
Figure 112020133338052-pat00044
은, 블록(240)에 의해 나타내어진 바와 같이, 촬상 유닛(140)으로부터 수신된 영상 데이터에 대해 처리 유닛(150)에 의해 수행된 영상 처리의 출력일 수 있다.Further, in some example implementations, azimuth
Figure 112020133338052-pat00035
and azimuth
Figure 112020133338052-pat00036
fusion of the preset error compensation value
Figure 112020133338052-pat00037
This can be error compensation. For example, as represented by block 250 , processing unit 150 may set an error compensation value in a value resulting from the fusion.
Figure 112020133338052-pat00038
The sensor-based azimuth as a final estimate of the azimuth of the UAV 10 by subtracting
Figure 112020133338052-pat00039
can be calculated. In a particular example, the processing unit 150 sets the error compensation value during initialization of the UAV.
Figure 112020133338052-pat00040
may be initialized to an initial value (eg, 0), and an error compensation value, as represented by block 245 .
Figure 112020133338052-pat00041
to the sensor-based azimuth of the UAV (10).
Figure 112020133338052-pat00042
and image-based azimuth
Figure 112020133338052-pat00043
can be updated based on image based azimuth
Figure 112020133338052-pat00044
may be an output of image processing performed by the processing unit 150 on the image data received from the imaging unit 140 , as indicated by block 240 .

몇몇 예에서, 처리 유닛(150)은 지자기 센서(130)로부터 자기장 측정 데이터를 제1 주기로 수신할 수 있고, 촬상 유닛(140)으로부터 영상 데이터를 제2 주기로 수신할 수 있는데, 제2 주기(가령, 0.5초)가 제1 주기(가령, 0.01초)보다 더 클 수 있다. 이들 예에서, 영상 데이터가 새로 수신될 때까지, 결국 영상 기반 방위각

Figure 112020133338052-pat00045
이 새로 출력될 때까지, 위와 같이 계산된 오차 보상 값
Figure 112020133338052-pat00046
이 센서 기반 방위각
Figure 112020133338052-pat00047
의 산출에 사용될 수 있다.In some examples, the processing unit 150 may receive the magnetic field measurement data from the geomagnetic sensor 130 in a first period, and may receive image data from the imaging unit 140 in a second period, in a second period (eg, , 0.5 sec) may be greater than the first period (eg, 0.01 sec). In these examples, until new image data is received, eventually the image based azimuth
Figure 112020133338052-pat00045
Until the new output, the error compensation value calculated as above
Figure 112020133338052-pat00046
This sensor based azimuth
Figure 112020133338052-pat00047
can be used to calculate

전술된 오차 보상은 자기장 측정 데이터에 발생할 수 있는 왜곡이 방위각 추정에 미칠 영향을 억제할 수 있다. 이와 같이, 실내에서 UAV(10)를 운행하면서 상당한 지자기 외란을 겪을 경우에도, 자이로스코프 기반 각도 값

Figure 112020133338052-pat00048
및 지자기 센서 기반 각도 값
Figure 112020133338052-pat00049
의 융합에 오차 보상을 적용하는 것은 보다 신뢰성 있는 방위각 추정을 가능하게 한다.The above-described error compensation may suppress the influence of distortion that may occur in the magnetic field measurement data on the azimuth estimation. As such, even when experiencing significant geomagnetic disturbance while driving the UAV 10 indoors, the gyroscope-based angle value
Figure 112020133338052-pat00048
and geomagnetic sensor-based angle values
Figure 112020133338052-pat00049
Applying error compensation to the fusion of α allows more reliable azimuth estimation.

다음은 도 2에 예시된 자세 추정에 관한 추가의 세부사항을 제공한다.The following provides additional details regarding the pose estimation illustrated in FIG. 2 .

우선, 도 3을 참조하여, UAV(10)의 방위각을 계산하기 위한 영상 처리의 예시적인 흐름이 논의된다. 도 3의 블록(310 내지 360)은 도 2의 블록(240)에 포함될 수 있다.First, referring to FIG. 3 , an exemplary flow of image processing for calculating the azimuth of the UAV 10 is discussed. Blocks 310 to 360 of FIG. 3 may be included in block 240 of FIG. 2 .

몇몇 예시적인 구현에서, 블록(310)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 UAV(10)가 실내 환경에서 운행하는 동안에 촬상 유닛(140)에 의해 포착된 영상 데이터를 촬상 유닛(140)으로부터 수신할 수 있다. 실내 환경 내에는, 예컨대, 실내 환경의 바닥에, 가시적으로든 또는 다른 식으로 인식가능(가령, 적외선 카메라로써 감지가능)하게든 표시된 직선 부분(가령, 직선 인공물)을 포함하는 사전결정된 특징이 있을 수 있다.In some example implementations, as represented by block 310 , the processing unit 150 is configured to convert image data captured by the imaging unit 140 while the UAV 10 is traveling in an indoor environment to the imaging unit 140 . ) can be received from Within the indoor environment, for example, on the floor of the indoor environment, there may be a predetermined feature comprising a marked straight portion (e.g., a straight artefact), whether visually or otherwise recognizable (e.g., detectable with an infrared camera). have.

몇몇 예시적인 구현에서, 수신된 영상 데이터는 RGB 색상 포맷으로 된 영상 데이터일 수 있다. 그러면, 블록(320)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 수신된 영상 데이터의 RGB 색상을 그레이스케일(grayscale)로 변환할 수 있다.In some example implementations, the received image data may be image data in RGB color format. Then, as represented by block 320 , the processing unit 150 may convert the RGB colors of the received image data to grayscale.

몇몇 예시적인 구현에서, 블록(330)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 그레이스케일 영상 데이터를 에지(edge) 보존 필터로써 처리할 수 있다. 예를 들어, 에지 보존 필터는 영상의 선명도를 증가시키고 영상의 노이즈를 감소시키는 데에 적합한 양방향 필터(bilateral filter)일 수 있다.In some example implementations, as represented by block 330 , processing unit 150 may process the grayscale image data with an edge-preserving filter. For example, the edge preservation filter may be a bilateral filter suitable for increasing image sharpness and reducing image noise.

몇몇 예시적인 구현에서, 블록(340)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 필터링된 영상 데이터로부터 에지를 검출할 수 있다. 예를 들어, 그러한 에지 검출을 위해 캐니 에지 검출(Canny edge detection) 알고리즘이 사용될 수 있다. 도 4a는 에지 검출의 결과를 나타낸다.In some example implementations, as represented by block 340 , processing unit 150 may detect an edge from the filtered image data. For example, a Canny edge detection algorithm may be used for such edge detection. 4A shows the result of edge detection.

몇몇 예시적인 구현에서, 블록(350)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 검출된 에지를 기반으로 실내 환경 내의 표시된 직선 부분을 검출할 수 있다. 예를 들어, 그러한 직선 검출을 위해 허프 라인 검출(Hough line detection) 알고리즘이 사용될 수 있다. 도 4b는 직선 검출의 결과를 나타낸다.In some example implementations, as represented by block 350 , processing unit 150 may detect a marked straight-line portion within the indoor environment based on the detected edge. For example, a Hough line detection algorithm may be used for such straight line detection. Fig. 4B shows the result of linear detection.

몇몇 예시적인 구현에서, 블록(360)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 검출된 직선 부분을 기반으로 UAV(10)의 영상 기반 방위각

Figure 112020133338052-pat00050
을 산출할 수 있다. 예를 들어, 도 5를 참조하면, 직선 부분이 검출된 경우에, 처리 유닛(150)은 UAV(10)의 전진 방향, 예컨대, 영상 데이터의 수직 해상도가 정의되는 수직 영상 방향(가령, 도 4b의 영상의 위쪽 방향)에 대한 직선 부분의 상대 각도
Figure 112020133338052-pat00051
를 판정할 수 있다. 한편, 직선 부분의 자북 기준 절대 방위각
Figure 112020133338052-pat00052
은 사전결정된 값으로서 처리 유닛(150)에 주어질 수 있다. 그러면, 처리 유닛(150)은 직선 부분의 절대 방위각
Figure 112020133338052-pat00053
및 상대 각도
Figure 112020133338052-pat00054
를 기반으로 영상 기반 방위각
Figure 112020133338052-pat00055
을 산출할 수 있다. 예를 들어, 도 5의 예에서, UAV(10)의 영상 기반 방위각은
Figure 112020133338052-pat00056
로 주어진다.In some example implementations, as represented by block 360 , processing unit 150 is configured to perform image-based azimuth of UAV 10 based on the detected straight-line portion.
Figure 112020133338052-pat00050
can be calculated. For example, referring to FIG. 5 , when a straight line portion is detected, the processing unit 150 determines the forward direction of the UAV 10 , eg, a vertical image direction in which the vertical resolution of image data is defined (eg, FIG. 4B ). the relative angle of the straight part with respect to the upward direction of the image of
Figure 112020133338052-pat00051
can be determined. On the other hand, the absolute azimuth relative to magnetic north of the straight line
Figure 112020133338052-pat00052
may be given to the processing unit 150 as a predetermined value. Then, the processing unit 150 determines the absolute azimuth angle of the straight line portion.
Figure 112020133338052-pat00053
and relative angle
Figure 112020133338052-pat00054
based on image based azimuth
Figure 112020133338052-pat00055
can be calculated. For example, in the example of FIG. 5 , the image-based azimuth of the UAV 10 is
Figure 112020133338052-pat00056
Is given by

다음으로, 지자기 센서(130)의 캘리브레이션(calibration)의 예가 논의된다. 지자기 센서(130)에 의해 제공되는 자기장 측정 데이터는 지구 자기장의 측정치 외에 동작 환경 내의 주변 물체로 인해 왜곡될 수 있다. 자기장 측정 데이터에서의 왜곡을 보정하는 것은 결국 지구의 자력이 아닌 자력의 영향을 자기장 측정 데이터에서 제거하는 것으로서, 특히 UAV(10)의 초기 방위각 추정에 유용하다. 지자기 센서의 캘리브레이션은 그러한 보정에 사용될 파라미터를 정하는 프로세스이다.Next, an example of calibration of the geomagnetic sensor 130 is discussed. The magnetic field measurement data provided by the geomagnetic sensor 130 may be distorted due to surrounding objects in the operating environment in addition to the measurement value of the Earth's magnetic field. Correcting the distortion in the magnetic field measurement data is to remove the influence of magnetic force, not the Earth's magnetic force, from the magnetic field measurement data, and is particularly useful for estimating the initial azimuth of the UAV 10 . Calibration of geomagnetic sensors is the process of determining the parameters to be used for such calibration.

몇몇 예시적인 구현에서, 처리 유닛(150)은 지자기 센서(130)의 2차원 평면상 회전(two-dimensional planar rotation)으로부터 자기장 측정 데이터를 수집할 수 있다. 특히, UAV(10)는 호버링(hovering) 동안에 롤 각 및 피치 각을 가능한 한 0도로 유지할 수 있다는 점을 고려하면, 그러한 2차원 캘리브레이션은 보다 복잡한 3차원 캘리브레이션에 비해 별다른 열화 없이 방위각 추정에 도움이 될 수 있다.In some example implementations, the processing unit 150 may collect magnetic field measurement data from a two-dimensional planar rotation of the geomagnetic sensor 130 . In particular, considering that the UAV 10 can keep the roll angle and pitch angle as 0 degrees as possible during hovering, such a two-dimensional calibration helps in azimuth estimation without significant degradation compared to a more complex three-dimensional calibration. can be

예를 들어, 처리 유닛(150)은 UAV(10)(의 지자기 센서(130))로 하여금 초기화 동안에 x-y 평면 상에서 360도 회전하도록 제어할 수 있다. 그러한 회전으로부터 수집된 데이터는 x축 및 y축 방향의 자력을 나타내는 수평 자기 벡터의 세트를 포함할 수 있다. 그러면, 처리 유닛(150)은 수집된 데이터를 기반으로 파라미터를 결정하고 향후 자기장 측정 데이터에서의 왜곡을 보정하는 데에 파라미터를 사용할 수 있다. 도 6은 지자기 센서(130)로부터 출력된 자기장 측정 데이터에 대해 그러한 캘리브레이션이 적용되기 전과 후를 보여준다. 지자기 센서(130)의 2차원 평면상 회전으로부터 수집된 데이터는, 왜곡의 보정이 정확할수록, 원점을 중심으로 하는 원에 가까운 그래프로 묘사된다. 왜곡의 보정이 부정확하면, 강성 왜곡(hard iron distortion)으로 인해 원 그래프의 중심이 원점을 벗어난 채로 그리고/또는 약성 왜곡(soft iron distortion)으로 인해 원 그래프가 찌그러져 타원 형태로 된 채로 남아 있다.For example, processing unit 150 may control UAV 10 (the geomagnetic sensor 130 of) to rotate 360 degrees on the x-y plane during initialization. The data collected from such rotation may include a set of horizontal magnetic vectors representing the magnetic forces in the x- and y-axis directions. Then, the processing unit 150 may determine the parameter based on the collected data and use the parameter to correct distortion in the future magnetic field measurement data. 6 shows before and after such calibration is applied to the magnetic field measurement data output from the geomagnetic sensor 130 . The data collected from the two-dimensional plane rotation of the geomagnetic sensor 130 is depicted as a graph closer to a circle centered on the origin, as the correction of the distortion is more accurate. If the correction of the distortion is incorrect, the center of the pie graph will remain off the origin due to hard iron distortion and/or the pie graph will be distorted and remain elliptical due to soft iron distortion.

몇몇 예시적인 구현에서, 전술된 2차원 캘리브레이션은 수집된 자기장 측정 데이터의 타원 방정식 행렬 표현을 사용한다. 그러한 타원 방정식의 계수는 지자기 센서(130)의 오차 파라미터에 달려 있다. 따라서, 그러한 캘리브레이션은 표현된 행렬에 대해 고유 분해(eigen-decomposition)(대각화 분해로도 지칭됨)를 수행하는 것과, 선형 최소 자승법(least square method)으로써 타원 방정식의 계수를, 그리고 결국 지자기 센서(130)의 오차 파라미터를 결정하는 것을 수반한다.In some example implementations, the two-dimensional calibration described above uses an elliptic equation matrix representation of the collected magnetic field measurement data. The coefficients of such an elliptic equation depend on the error parameter of the geomagnetic sensor 130 . Thus, such a calibration involves performing an eigen-decomposition (also referred to as diagonal decomposition) on the represented matrix, and calculating the coefficients of the elliptic equation by means of a linear least squares method, and eventually the geomagnetic sensor. It involves determining an error parameter of (130).

나아가, 도 7을 참조하여, UAV(10)의 방위각 추정에서의 오차에 대한 보상의 예시적인 흐름이 논의된다. 도 7의 블록(710 내지 730)은 도 2의 블록(245)에 포함될 수 있다.Further, with reference to FIG. 7 , an exemplary flow of compensation for errors in azimuth estimation of the UAV 10 is discussed. Blocks 710 to 730 of FIG. 7 may be included in block 245 of FIG. 2 .

몇몇 예시적인 구현에서, 블록(710)에 의해 나타내어진 바와 같이, 처리 유닛(150)은 센서 기반 방위각

Figure 112020133338052-pat00057
및 영상 기반 방위각
Figure 112020133338052-pat00058
을 융합하여 필터링된 방위각
Figure 112020133338052-pat00059
을 산출할 수 있다. 특정한 예에서, 그러한 융합은 상보 필터의 사용, 예컨대, 센서 기반 방위각
Figure 112020133338052-pat00060
에 HPF를 적용하는 것 및 영상 기반 방위각
Figure 112020133338052-pat00061
에 LPF를 적용하는 것을 포함할 수 있다.In some example implementations, as represented by block 710 , processing unit 150 is a sensor-based azimuth
Figure 112020133338052-pat00057
and image-based azimuth
Figure 112020133338052-pat00058
Filtered azimuth by fusing
Figure 112020133338052-pat00059
can be calculated. In certain instances, such fusion may be achieved by use of a complementary filter, such as sensor-based azimuth.
Figure 112020133338052-pat00060
Applying HPF to and image-based azimuth
Figure 112020133338052-pat00061
may include applying LPF to

몇몇 예시적인 구현에서, 블록(720)에 의해 나타내어지는 바와 같이, 처리 유닛(150)은 센서 기반 방위각

Figure 112020133338052-pat00062
및 필터링된 방위각
Figure 112020133338052-pat00063
의 차이
Figure 112020133338052-pat00064
를 계산할 수 있다.In some example implementations, as represented by block 720 , the processing unit 150 is a sensor-based azimuth
Figure 112020133338052-pat00062
and filtered azimuth
Figure 112020133338052-pat00063
difference of
Figure 112020133338052-pat00064
Can be calculated.

몇몇 예시적인 구현에서, 블록(730)에 의해 나타내어지는 바와 같이, 처리 유닛(150)은 계산된 차이

Figure 112020133338052-pat00065
에 오차 보상 값
Figure 112020133338052-pat00066
을 누적하는 방식으로 오차 보상 값
Figure 112020133338052-pat00067
을 갱신할 수 있다. 예를 들어, 갱신된 오차 보상 값
Figure 112020133338052-pat00068
은 UAV(10)의 차후 영상 기반 방위각
Figure 112020133338052-pat00069
이 산출될 때까지 UAV(10)의 오차 보상된 센서 기반 방위각
Figure 112020133338052-pat00070
을 산출하는 데에 사용될 수 있고, 그러한 경우에 만약 오차 보상 값
Figure 112020133338052-pat00071
이 누적되지 않는다면 이전에 보상된 오차만큼 오차가 존재할 것임을 감안하여, 오차 보상 값
Figure 112020133338052-pat00072
은 누적식으로 갱신될 수 있다.In some example implementations, as represented by block 730 , the processing unit 150 is configured to calculate the difference
Figure 112020133338052-pat00065
error compensation value in
Figure 112020133338052-pat00066
error compensation value by accumulating
Figure 112020133338052-pat00067
can be updated. For example, the updated error compensation value
Figure 112020133338052-pat00068
is the subsequent image-based azimuth of the UAV (10).
Figure 112020133338052-pat00069
The error-compensated sensor-based azimuth of the UAV 10 until
Figure 112020133338052-pat00070
can be used to calculate , in which case if the error compensation value
Figure 112020133338052-pat00071
If this is not accumulated, considering that there will be an error equal to the previously compensated error, the error compensation value
Figure 112020133338052-pat00072
can be updated cumulatively.

또한, 도 8을 참조하여, UAV(10)의 방위각 추정에서의 오차에 대한 보상의 다른 예시적인 흐름이 논의된다. 도 8의 블록(810 내지 840)은 도 2의 블록(245)에 포함될 수 있다.Also with reference to FIG. 8 , another exemplary flow of compensation for errors in azimuth estimation of the UAV 10 is discussed. Blocks 810 to 840 of FIG. 8 may be included in block 245 of FIG. 2 .

몇몇 예시적인 구현에서, 블록(810)에 의해 나타내어지는 바와 같이, 처리 유닛(150)은 센서 기반 방위각

Figure 112020133338052-pat00073
및 영상 기반 방위각
Figure 112020133338052-pat00074
의 차이
Figure 112020133338052-pat00075
를 계산할 수 있다.In some example implementations, as represented by block 810 , processing unit 150 is a sensor-based azimuth
Figure 112020133338052-pat00073
and image-based azimuth
Figure 112020133338052-pat00074
difference of
Figure 112020133338052-pat00075
Can be calculated.

몇몇 예시적인 구현에서, 블록(820)에 의해 나타내어지는 바와 같이, 처리 유닛(150)은 계산된 차이

Figure 112020133338052-pat00076
가 임계 값(가령, 30도) 이상인지를 판정할 수 있다.In some example implementations, as represented by block 820 , the processing unit 150 is configured to calculate the difference
Figure 112020133338052-pat00076
It may be determined whether is greater than or equal to a threshold (eg, 30 degrees).

블록(830)에 의해 나타내어지는 바와 같이, 만일 차이

Figure 112020133338052-pat00077
가 임계 값 미만인 경우, 처리 유닛(150)은 계산된 차이
Figure 112020133338052-pat00078
에 오차 보상 값
Figure 112020133338052-pat00079
을 누적하는 방식으로 오차 보상 값
Figure 112020133338052-pat00080
을 갱신할 수 있다. 예를 들어, 갱신된 오차 보상 값
Figure 112020133338052-pat00081
은 UAV(10)의 차후 영상 기반 방위각
Figure 112020133338052-pat00082
이 산출될 때까지 UAV(10)의 오차 보상된 센서 기반 방위각
Figure 112020133338052-pat00083
을 산출하는 데에 사용될 수 있고, 그러한 경우에 만약 오차 보상 값
Figure 112020133338052-pat00084
이 누적되지 않는다면 이전에 보상된 오차만큼 오차가 존재할 것임을 감안하여, 오차 보상 값
Figure 112020133338052-pat00085
은 누적식으로 갱신될 수 있다.As indicated by block 830 , if the difference
Figure 112020133338052-pat00077
is less than the threshold, the processing unit 150 calculates the difference
Figure 112020133338052-pat00078
error compensation value in
Figure 112020133338052-pat00079
error compensation value by accumulating
Figure 112020133338052-pat00080
can be updated. For example, the updated error compensation value
Figure 112020133338052-pat00081
is the subsequent image-based azimuth of the UAV (10).
Figure 112020133338052-pat00082
The error-compensated sensor-based azimuth of the UAV 10 until
Figure 112020133338052-pat00083
can be used to calculate , in which case if the error compensation value
Figure 112020133338052-pat00084
If this is not accumulated, considering that there will be an error equal to the previously compensated error, the error compensation value
Figure 112020133338052-pat00085
can be updated cumulatively.

블록(840)에 의해 나타내어지는 바와 같이, 만일 차이

Figure 112020133338052-pat00086
가 임계 값 이상인 경우, 처리 유닛(150)은 오차 보상 값
Figure 112020133338052-pat00087
을 초기 값으로 초기화할 수 있다. 환언하면, 전술된 바와 같이 누적식으로 오차 보상 값
Figure 112020133338052-pat00088
을 갱신하는 것은 차이
Figure 112020133338052-pat00089
가 어느 정도 한도 내에 있을 때에 유용하다. 만일 차이
Figure 112020133338052-pat00090
에 갑작스런 큰 변화가 있다면, 이 변화는 지자기 외란보다는 실내 환경 내의 사전결정된 특징에 포함된 인접한 부분들 간의 상당한 특징 차이(가령, 두 인접한 직선 부분의 절대 방위각 간의 큰 차이)에 기인할 공산이 높다. 이에 따라, 몇몇 예에서, 처리 유닛(150)은 그러한 경우에, 오차 보상 값
Figure 112020133338052-pat00091
을 계속해서 누적시키는 것 대신에, 오차 보상 값
Figure 112020133338052-pat00092
을 초기화할 수 있다.As indicated by block 840 , if the difference
Figure 112020133338052-pat00086
is greater than or equal to the threshold value, the processing unit 150 sets the error compensation value
Figure 112020133338052-pat00087
can be initialized to an initial value. In other words, as described above, the error compensation value is cumulative
Figure 112020133338052-pat00088
Updating is the difference
Figure 112020133338052-pat00089
It is useful when is within a certain limit. if the difference
Figure 112020133338052-pat00090
If there is a sudden large change in , this change is more likely to be due to significant feature differences between adjacent parts included in the predetermined feature in the indoor environment (eg, large difference between the absolute azimuths of two adjacent straight-line parts) rather than geomagnetic disturbances. Accordingly, in some examples, the processing unit 150 may, in such a case, determine the error compensation value.
Figure 112020133338052-pat00091
Instead of continuously accumulating
Figure 112020133338052-pat00092
can be initialized.

추가적으로, 도 7의 오차 보상에서든 또는 도 8의 오차 보상에서든, 촬상 유닛(140)으로부터 영상 데이터가 (그리고 따라서 영상 처리(240)의 결과로서 영상 기반 방위각

Figure 112020133338052-pat00093
이) 임계 시간(가령, 3초) 이상 수신되지 않는 경우에, 처리 유닛(150)은 오차 보상 값
Figure 112020133338052-pat00094
을 초기 값으로 초기화할 수 있다. 이 경우에도, 실내 환경의 이전에 검출된 특징을 기반으로 설정된 오차 보상 값
Figure 112020133338052-pat00095
을 계속해서 누적시키는 것은 오히려 센서 기반 방위각
Figure 112020133338052-pat00096
의 오차를 늘릴 수 있으므로, 처리 유닛(150)은 이를 방지하기 위해 오차 보상 값
Figure 112020133338052-pat00097
을 초기화할 수 있다.Additionally, whether in the error compensation of FIG. 7 or the error compensation of FIG. 8 , the image data from the imaging unit 140 (and thus the image-based azimuth as a result of the image processing 240 )
Figure 112020133338052-pat00093
If this) is not received for more than a threshold time (eg, 3 seconds), the processing unit 150 sets the error compensation value
Figure 112020133338052-pat00094
can be initialized to an initial value. Even in this case, the error compensation value set based on previously detected features of the indoor environment
Figure 112020133338052-pat00095
It is rather the sensor-based azimuth to continuously accumulate
Figure 112020133338052-pat00096
Since it is possible to increase the error of the processing unit 150, the error compensation value to prevent this
Figure 112020133338052-pat00097
can be initialized.

도 9는 UAV(10)의 방위각을 추정하는 프로세스(900)의 예를 보여주는 흐름도이다. 전술된 바와 같이, UAV(10)는 사전결정된 특징(가령, 인공물)을 포함하는 실내 환경에서 운행할 수 있다. 예를 들어, 도 9의 프로세스(900)는 UAV(10)의 항법 시스템(100)(특히, 처리 유닛(150))에 의해 수행될 수 있다. 또한, 예로서, 도 9의 프로세스(900)는 외부의 항법 시스템으로부터의 보조 정보의 사용 없이 수행될 수 있다. 프로세스(900)의 다른 예시적인 흐름이 또한 고려된다. 예를 들어, 프로세스(900)는 도시되지 않은 추가적인 동작을 또한 포함할 수 있고/거나, 도 9에 도시된 동작 중 일부를 포함하나 전부를 포함하지는 않을 수 있다.9 is a flow diagram illustrating an example of a process 900 for estimating the azimuth of the UAV 10 . As noted above, the UAV 10 may operate in an indoor environment that includes predetermined features (eg, artifacts). For example, the process 900 of FIG. 9 may be performed by the navigation system 100 (specifically, the processing unit 150 ) of the UAV 10 . Also, as an example, process 900 of FIG. 9 may be performed without the use of assistance information from an external navigation system. Other example flows of process 900 are also contemplated. For example, process 900 may also include additional operations not shown and/or may include some but not all of the operations illustrated in FIG. 9 .

동작(910)에서, UAV(10)의 지자기 센서(130)로부터 수신된 자기장 측정 데이터를 기반으로 UAV(10)의 방위각이 계산된다. 전술된 바와 같이, 자기장 측정 데이터는 자이로스코프(110)로부터 수신된 측정 데이터를 기반으로 방위각을 계산하는 데에서 발생하는 발산 오차를 보정하기 위해 사용될 수 있다. 몇몇 예에서, UAV(10)의 초기화 동안에 지자기 센서(130)의 2차원 평면상 회전으로부터 데이터가 수집될 수 있고, 수집된 데이터를 기반으로 지자기 센서(130)의 캘리브레이션이 수행될 수 있다. 그러면, UAV(10)의 방위각은 그러한 캘리브레이션이 적용된 자기장 측정 데이터를 기반으로 계산될 수 있다.In operation 910 , an azimuth of the UAV 10 is calculated based on the magnetic field measurement data received from the geomagnetic sensor 130 of the UAV 10 . As described above, the magnetic field measurement data may be used to correct a divergence error occurring in calculating an azimuth angle based on the measurement data received from the gyroscope 110 . In some examples, data may be collected from the two-dimensional in-plane rotation of the geomagnetic sensor 130 during initialization of the UAV 10 , and calibration of the geomagnetic sensor 130 may be performed based on the collected data. Then, the azimuth of the UAV 10 may be calculated based on the magnetic field measurement data to which the calibration is applied.

동작(920)에서, UAV(10)의 계산된 방위각 및 사전설정된 오차 보상 값으로부터 센서 기반 방위각이 판정된다. 예를 들어, 오차 보상 값은 초기화된 후에 후술되는 바와 같이 갱신될 수 있다.At operation 920 , a sensor-based azimuth is determined from the calculated azimuth of the UAV 10 and a preset error compensation value. For example, after the error compensation value is initialized, it may be updated as described below.

동작(930)에서, UAV(10)의 촬상 유닛(140)으로부터 수신된 영상 데이터를 기반으로 실내 환경의 사전결정된 특징이 검출된다. 촬상 유닛(140)으로부터 영상 데이터가 수신되는 주기는 지자기 센서(130)로부터 자기장 측정 데이터가 수신되는 주기보다 더 클 수 있다. 특정한 예에서, 사전결정된 특징은 (가령, 자북을 기준으로 한) 사전결정된 절대 방위각을 갖는 직선 부분을 포함할 수 있다.In operation 930 , a predetermined characteristic of the indoor environment is detected based on the image data received from the imaging unit 140 of the UAV 10 . A period in which image data is received from the imaging unit 140 may be greater than a period in which magnetic field measurement data is received from the geomagnetic sensor 130 . In a particular example, the predetermined feature may include a straight portion having a predetermined absolute azimuth (eg, with respect to magnetic north).

동작(940)에서, 검출된 사전결정된 특징으로부터 영상 기반 방위각이 판정된다. 특정한 예에서, UAV(10)에 대한 사전결정된 특징의 직선 부분의 상대 각도 및 이 직선 부분의 사전결정된 절대 방위각으로부터 영상 기반 방위각이 계산될 수 있다.At operation 940 , an image-based azimuth is determined from the detected predetermined feature. In a particular example, the image-based azimuth can be calculated from the relative angle of the straight-line portion of the predetermined feature with respect to the UAV 10 and the predetermined absolute azimuth of the straight-line portion.

동작(950)에서, 센서 기반 방위각 및 영상 기반 방위각을 기반으로 오차 보상 값이 갱신된다. 예를 들어, 센서 기반 방위각 및 영상 기반 방위각이 필터링된 방위각으로 처리될 수 있다. 그러한 처리는 센서 기반 방위각 및 영상 기반 방위각을 상보 필터로써 필터링하여 필터링된 방위각을 산출하는 것을 포함할 수 있다. 그러면, 센서 기반 방위각 및 필터링된 방위각 간의 차이에 오차 보상 값이 누적된 값으로 오차 보상 값이 설정될 수 있다. 다른 예에서, 센서 기반 방위각 및 영상 기반 방위각 간의 차이가 임계 값 이상인지를 기반으로, 상기 오차 보상 값은 초기 값으로 또는 상기 오차 보상 값에 상기 차이가 누적된 값으로 설정될 수 있다. 또한, 어느 예에서든, 영상 데이터가 촬상 유닛(140)으로부터 임계 시간 이상 수신되지 않는 경우에, 오차 보상 값은 초기 값으로 설정될 수 있다.In operation 950 , the error compensation value is updated based on the sensor-based azimuth and the image-based azimuth. For example, the sensor-based azimuth and the image-based azimuth may be processed as the filtered azimuth. Such processing may include filtering the sensor-based azimuth and the image-based azimuth with a complementary filter to yield a filtered azimuth. Then, the error compensation value may be set as a value in which the error compensation value is accumulated in the difference between the sensor-based azimuth and the filtered azimuth. In another example, based on whether the difference between the sensor-based azimuth and the image-based azimuth is equal to or greater than a threshold value, the error compensation value may be set as an initial value or a value in which the difference is accumulated in the error compensation value. Also, in any example, when image data is not received from the imaging unit 140 for more than a threshold time, the error compensation value may be set to an initial value.

도 9의 프로세스(900)의 추가적인 세부사항에 대해, UAV(10)의 항법 시스템(100)에 관해 전술된 설명이 참조될 수 있다.For further details of the process 900 of FIG. 9 , reference may be made to the description above regarding the navigation system 100 of the UAV 10 .

특정한 예에서, 본 문서에서 언급된 장치, 디바이스, 시스템, 머신 등은 임의의 적합한 유형은 컴퓨팅 장치이거나, 이를 포함하거나, 이에 구현될 수 있다. 컴퓨팅 장치는 프로세서 및 프로세서에 의해 판독가능한 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 프로세서는 컴퓨터 판독가능 저장 매체 내에 저장된 하나 이상의 명령어를 실행할 수 있다. 프로세서는 또한 컴퓨터 판독가능 저장 매체 내에 저장된 다른 정보를 판독할 수 있다. 추가로, 프로세서는 컴퓨터 판독가능 저장 매체 내에 새로운 정보를 저장할 수 있고 컴퓨터 판독가능 저장 매체 내에 저장된 어떤 정보를 갱신할 수 있다. 프로세서는, 예컨대, 중앙 처리 유닛(Central Processing Unit: CPU), 디지털 신호 프로세서(Digital Signal Processor: DSP), 그래픽 처리 유닛(Graphics Processing Unit: GPU), 프로세서 코어(processor core), 마이크로프로세서(microprocessor), 마이크로제어기(microcontroller), 필드 프로그램가능 게이트 어레이(Field-Programmable Gate Array: FPGA), 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC), 다른 하드웨어 및 로직 회로, 또는 이의 임의의 적합한 조합을 포함할 수 있다. 컴퓨터 판독가능 저장 매체는 다양한 정보, 예컨대, 프로세서에 의해 수행될 수 있는 프로세서 실행가능(processor executable) 명령어의 세트 및/또는 다른 정보로써 인코딩된다. 예를 들어, 컴퓨터 판독가능 저장 매체는 프로세서에 의해 실행되는 경우 컴퓨팅 장치(가령, 프로세서)로 하여금 본 문서에 개시된 몇몇 동작을 수행하게 하는 컴퓨터 프로그램 명령어 및/또는 그러한 동작에서 사용되는 정보, 데이터, 변수, 상수, 데이터 구조, 기타 등등이 내부에 저장될 수 있다. 컴퓨터 판독가능 저장 매체는, 예컨대, 판독 전용 메모리(Read-Only Memory: ROM), 랜덤 액세스 메모리(Random-Access Memory: RAM), 휘발성(volatile) 메모리, 비휘발성(non-volatile) 메모리, 착탈가능(removable) 메모리, 비착탈가능(non-removable) 메모리, 플래시(flash) 메모리, 솔리드 스테이트(solid-state) 메모리, 다른 타입의 메모리 디바이스, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 다른 타입의 저장 디바이스 및 저장 매체, 또는 이의 임의의 적합한 조합을 포함할 수 있다.In certain instances, any suitable type of apparatus, device, system, machine, etc. referred to herein may be, include, or be embodied in a computing device. A computing device may include a processor and a computer-readable storage medium readable by the processor. The processor may execute one or more instructions stored in a computer-readable storage medium. The processor may also read other information stored within the computer readable storage medium. Additionally, the processor may store new information in the computer-readable storage medium and update any information stored in the computer-readable storage medium. The processor is, for example, a central processing unit (CPU), a digital signal processor (DSP), a graphics processing unit (GPU), a processor core, a microprocessor. , a microcontroller, a Field-Programmable Gate Array (FPGA), an Application Specific Integrated Circuit (ASIC), other hardware and logic circuitry, or any suitable combination thereof. can A computer-readable storage medium is encoded with various information, such as a set of processor executable instructions and/or other information that can be executed by a processor. For example, a computer-readable storage medium may include computer program instructions that, when executed by a processor, cause a computing device (eg, a processor) to perform some operations disclosed herein and/or information, data, and/or information used in those operations; Variables, constants, data structures, etc. can be stored inside. Computer-readable storage media include, for example, read-only memory (ROM), random-access memory (RAM), volatile memory, non-volatile memory, removable Removable memory, non-removable memory, flash memory, solid-state memory, other types of memory devices, magnetic media such as hard disks, floppy disks and magnetic tapes, CDs - optical recording media such as ROM, DVD, magneto-optical media such as floppy disks, other types of storage devices and storage media, or any suitable combination thereof.

특정한 예에서, 본 문서에 기술된 동작, 기법, 프로세스, 또는 이의 어떤 양상이나 부분은 컴퓨터 프로그램 제품 내에 체현될 수 있다. 그러한 컴퓨터 프로그램은 컴퓨터에 의해 실행될 수 있는 어떤 유형의 (가령, 컴파일형(compiled) 또는 해석형(interpreted)) 프로그래밍 언어, 예컨대, 어셈블리(assembly), 기계어(machine language), 프로시저형(procedural) 언어, 객체지향(object-oriented) 언어 등등으로 구현될 수 있고, 하드웨어 구현과 조합될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독가능 저장 매체의 형태로 배포될 수 있거나 온라인으로 배포될 수 있다. 온라인 배포를 위해, 컴퓨터 프로그램 제품의 일부 또는 전부가 서버(가령, 서버의 컴퓨터 판독가능 저장 매체) 내에 일시적으로 저장되거나 일시적으로 생성될 수 있다.In certain instances, the acts, techniques, processes, or any aspect or portion thereof described herein may be embodied in a computer program product. Such computer programs can be implemented in any type (eg, compiled or interpreted) programming language that can be executed by a computer, such as assembly, machine language, procedural. It may be implemented in a language, an object-oriented language, etc., and may be combined with a hardware implementation. The computer program product may be distributed in the form of a computer-readable storage medium or may be distributed online. For online distribution, some or all of the computer program product may be temporarily stored or temporarily created in a server (eg, a computer-readable storage medium of the server).

이상의 설명은 상세하게 몇몇 예를 예시하고 기술하기 위해 제시되었다. 본 개시의 범주에서 벗어나지 않고서 위의 교시에 비추어 많은 수정 및 변형이 가능함을 당업자는 응당 이해할 것이다. 다양한 예에서, 전술된 기법이 상이한 순서로 수행되고/거나, 전술된 시스템, 아키텍처, 디바이스, 회로 및 유사한 것의 컴포넌트 중 일부가 상이한 방식으로 결합 또는 조합되거나, 다른 컴포넌트 또는 이의 균등물에 의해 대치 또는 치환되더라도 적절한 결과가 달성될 수 있다.The above description has been presented to illustrate and describe some examples in detail. It will be appreciated by those skilled in the art that many modifications and variations are possible in light of the above teachings without departing from the scope of the present disclosure. In various instances, the techniques described above are performed in a different order, and/or some of the components of the systems, architectures, devices, circuits and the like described above are combined or combined in different ways, replaced by other components or equivalents thereof, or Even with substitution, appropriate results can be achieved.

그러므로, 본 개시의 범주는 개시된 그 형태에 한정되어서는 안 되며, 후술하는 청구항 및 이의 균등물에 의해 정해져야 한다.Therefore, the scope of the present disclosure should not be limited to the form disclosed, but should be defined by the following claims and their equivalents.

10: 무인 비행체
100: 항법 시스템
110: 자이로스코프
120: 가속도계
130: 지자기 센서
140: 촬상 유닛
150: 처리 유닛
10: unmanned aerial vehicle
100: navigation system
110: gyroscope
120: accelerometer
130: geomagnetic sensor
140: imaging unit
150: processing unit

Claims (16)

실내 환경에서 운행하는 무인 비행체(Unmanned Aerial Vehicle: UAV)의 방위각을 추정하는 방법으로서,
상기 UAV의 지자기 센서(geomagnetic sensor)로부터 수신된 자기장 측정 데이터를 기반으로 상기 방위각을 계산하는 단계와,
상기 계산된 방위각 및 사전설정된 오차 보상 값으로부터 센서 기반 방위각을 판정하는 단계와,
상기 UAV의 촬상 유닛(imaging unit)으로부터 수신된 영상 데이터를 기반으로 상기 실내 환경의 사전결정된 특징을 검출하는 단계와,
상기 검출된 사전결정된 특징으로부터 영상 기반 방위각을 판정하는 단계와,
상기 센서 기반 방위각 및 상기 영상 기반 방위각을 기반으로 상기 오차 보상 값을 갱신하는 단계를 포함하되,
상기 사전결정된 특징은 사전결정된 절대 방위각을 갖는 직선 부분을 포함하고, 상기 영상 기반 방위각을 판정하는 단계는 상기 UAV에 대한 상기 직선 부분의 상대 각도 및 상기 절대 방위각으로부터 상기 영상 기반 방위각을 계산하는 단계를 포함하는,
방법.
As a method of estimating the azimuth of an unmanned aerial vehicle (UAV) operating in an indoor environment,
calculating the azimuth based on magnetic field measurement data received from a geomagnetic sensor of the UAV;
determining a sensor-based azimuth from the calculated azimuth and a preset error compensation value;
detecting a predetermined characteristic of the indoor environment based on image data received from an imaging unit of the UAV;
determining an image-based azimuth from the detected predetermined feature;
updating the error compensation value based on the sensor-based azimuth and the image-based azimuth,
wherein the predetermined feature comprises a straight-line portion having a predetermined absolute azimuth, and wherein determining the image-based azimuth includes calculating the image-based azimuth from the absolute azimuth and a relative angle of the straight-line portion with respect to the UAV. containing,
Way.
삭제delete 제1항에 있어서,
상기 오차 보상 값을 갱신하는 단계는 상기 센서 기반 방위각 및 상기 영상 기반 방위각을 상보 필터(complementary filter)로써 필터링하여 필터링된 방위각을 산출하는 단계와, 상기 센서 기반 방위각 및 상기 필터링된 방위각 간의 차이에 상기 오차 보상 값이 누적된 값으로 상기 오차 보상 값을 설정하는 단계를 포함하는,
방법.
The method of claim 1,
The updating of the error compensation value includes calculating a filtered azimuth by filtering the sensor-based azimuth and the image-based azimuth with a complementary filter, and adding the difference between the sensor-based azimuth and the filtered azimuth. Comprising the step of setting the error compensation value to the accumulated value of the error compensation value,
Way.
제1항에 있어서,
상기 오차 보상 값을 갱신하는 단계는 상기 센서 기반 방위각 및 상기 영상 기반 방위각 간의 차이가 임계 값 이상인지를 기반으로, 상기 오차 보상 값을 초기 값으로 또는 상기 차이에 상기 오차 보상 값이 누적된 값으로 설정하는 단계를 포함하는,
방법.
The method of claim 1,
The updating of the error compensation value includes using the error compensation value as an initial value or an accumulated value of the error compensation value based on whether the difference between the sensor-based azimuth and the image-based azimuth is equal to or greater than a threshold value. comprising the steps of setting
Way.
제1항에 있어서,
상기 영상 데이터가 상기 촬상 유닛으로부터 임계 시간 이상 수신되지 않는 경우에 상기 오차 보상 값을 초기 값으로 설정하는 단계를 더 포함하는,
방법.
The method of claim 1,
Setting the error compensation value to an initial value when the image data is not received from the imaging unit for more than a threshold time,
Way.
제1항에 있어서,
상기 지자기 센서의 2차원 평면상 회전으로부터 수집된 데이터를 기반으로 상기 지자기 센서의 캘리브레이션(calibration)을 수행하는 단계를 더 포함하고, 상기 방위각을 계산하는 단계는 상기 캘리브레이션이 적용된 상기 자기장 측정 데이터를 기반으로 상기 방위각을 계산하는 단계를 포함하는,
방법.
The method of claim 1,
Further comprising the step of performing calibration (calibration) of the geomagnetic sensor based on data collected from the two-dimensional plane rotation of the geomagnetic sensor, and calculating the azimuth is based on the magnetic field measurement data to which the calibration is applied Comprising the step of calculating the azimuth with
Way.
제1항에 있어서,
상기 방위각을 계산하는 단계는 상기 UAV의 자이로스코프(gyroscope)로부터 수신된 각속도 측정 데이터를 기반으로 상기 방위각을 자이로스코프 기반 방위각으로서 계산하는 단계와, 상기 자기장 측정 데이터를 기반으로 상기 방위각을 지자기 센서 기반 방위각으로서 계산하는 단계와, 상기 자이로스코프 기반 방위각 및 상기 지자기 센서 기반 방위각을 상보 필터로써 필터링하여 상기 방위각을 계산하는 단계를 포함하는,
방법.
The method of claim 1,
Calculating the azimuth includes calculating the azimuth as a gyroscope-based azimuth based on angular velocity measurement data received from a gyroscope of the UAV, and determining the azimuth based on the magnetic field measurement data based on a geomagnetic sensor Comprising the steps of calculating as an azimuth, and calculating the azimuth by filtering the gyroscope-based azimuth and the geomagnetic sensor-based azimuth with a complementary filter,
Way.
컴퓨터 프로세서에 의해 실행되는 경우 상기 컴퓨터 프로세서로 하여금 제1항 및 제3항 내지 제7항 중 어느 한 항에 기재된 방법을 수행하게 하는 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체.A computer-readable storage medium having stored thereon computer-executable instructions that, when executed by a computer processor, cause the computer processor to perform the method according to any one of claims 1 and 3-7. 컴퓨팅 장치로서,
프로세서와,
메모리를 포함하되, 상기 메모리는 실내 환경에서 운행하는 무인 비행체(Unmanned Aerial Vehicle: UAV)의 방위각을 추정하기 위해 상기 프로세서에 의해 실행가능한 컴퓨터 프로그램 명령어의 세트로써 인코딩되되, 상기 세트는,
상기 UAV의 지자기 센서로부터 수신된 자기장 측정 데이터를 기반으로 상기 UAV의 방위각을 계산하는 명령어와,
상기 계산된 방위각 및 사전설정된 오차 보상 값으로부터 센서 기반 방위각을 판정하는 명령어와,
상기 UAV의 촬상 유닛으로부터 수신된 영상 데이터를 기반으로 상기 실내 환경의 사전결정된 특징을 검출하는 명령어와,
상기 검출된 사전결정된 특징으로부터 영상 기반 방위각을 판정하는 명령어와,
상기 센서 기반 방위각 및 상기 영상 기반 방위각을 기반으로 상기 오차 보상 값을 갱신하는 명령어를 포함하되,
상기 사전결정된 특징은 사전결정된 절대 방위각을 갖는 직선 부분을 포함하고, 상기 영상 기반 방위각을 판정하는 명령어는 상기 UAV에 대한 상기 직선 부분의 상대 각도 및 상기 절대 방위각으로부터 상기 영상 기반 방위각을 계산하는 명령어를 포함하는,
컴퓨팅 장치.
A computing device comprising:
processor and
A memory comprising: a memory encoded as a set of computer program instructions executable by the processor for estimating an azimuth of an Unmanned Aerial Vehicle (UAV) operating in an indoor environment, the set comprising:
a command for calculating the azimuth of the UAV based on the magnetic field measurement data received from the geomagnetic sensor of the UAV;
instructions for determining a sensor-based azimuth from the calculated azimuth and a preset error compensation value;
instructions for detecting a predetermined characteristic of the indoor environment based on image data received from the imaging unit of the UAV;
instructions for determining an image-based azimuth from the detected predetermined feature;
a command for updating the error compensation value based on the sensor-based azimuth and the image-based azimuth,
The predetermined feature includes a straight line portion having a predetermined absolute azimuth, and the instructions for determining the image-based azimuth include instructions for calculating the image-based azimuth from the absolute azimuth and a relative angle of the linear portion with respect to the UAV. containing,
computing device.
삭제delete 제9항에 있어서,
상기 오차 보상 값을 갱신하는 명령어는 상기 센서 기반 방위각 및 상기 영상 기반 방위각을 상보 필터로써 필터링하여 필터링된 방위각을 산출하는 명령어와, 상기 오차 보상 값을 상기 센서 기반 방위각 및 상기 필터링된 방위각 간의 차이에 상기 오차 보상 값이 누적된 값으로 설정하는 명령어를 포함하는,
컴퓨팅 장치.
The method of claim 9,
The command for updating the error compensation value includes a command for calculating a filtered azimuth by filtering the sensor-based azimuth and the image-based azimuth with a complementary filter, and adding the error compensation value to the difference between the sensor-based azimuth and the filtered azimuth. including a command for setting the error compensation value to an accumulated value,
computing device.
제9항에 있어서,
상기 오차 보상 값을 갱신하는 명령어는 상기 센서 기반 방위각 및 상기 영상 기반 방위각 간의 차이가 임계 값 이상인지를 기반으로, 상기 오차 보상 값을 초기 값으로 또는 상기 차이에 상기 오차 보상 값이 누적된 값으로 설정하는 명령어를 포함하는,
컴퓨팅 장치.
The method of claim 9,
The command for updating the error compensation value is based on whether the difference between the sensor-based azimuth and the image-based azimuth is equal to or greater than a threshold value, and sets the error compensation value as an initial value or a value obtained by adding the error compensation value to the difference. containing the command to set,
computing device.
제9항에 있어서,
상기 세트는, 상기 영상 데이터가 상기 촬상 유닛으로부터 임계 시간 이상 수신되지 않는 경우에 상기 오차 보상 값을 초기 값으로 설정하는 명령어를 더 포함하는,
컴퓨팅 장치.
The method of claim 9,
The set further includes instructions for setting the error compensation value to an initial value when the image data is not received from the imaging unit for more than a threshold time,
computing device.
제9항에 있어서,
상기 세트는, 상기 지자기 센서의 2차원 평면상 회전으로부터 수집된 데이터를 기반으로 상기 지자기 센서의 캘리브레이션을 수행하는 명령어를 더 포함하고, 상기 방위각을 계산하는 명령어는 상기 캘리브레이션이 적용된 상기 자기장 측정 데이터를 기반으로 상기 방위각을 계산하는 명령어를 포함하는,
컴퓨팅 장치.
The method of claim 9,
The set further includes instructions for performing calibration of the geomagnetic sensor based on data collected from the two-dimensional rotation of the geomagnetic sensor, and the instruction for calculating the azimuth is the magnetic field measurement data to which the calibration is applied. Comprising a command to calculate the azimuth based on,
computing device.
제9항에 있어서,
상기 방위각을 계산하는 명령어는 상기 UAV의 자이로스코프로부터 수신된 각속도 측정 데이터를 기반으로 상기 방위각을 자이로스코프 기반 방위각으로서 계산하는 명령어와, 상기 자기장 측정 데이터를 기반으로 상기 방위각을 지자기 센서 기반 방위각으로서 계산하는 명령어와, 상기 자이로스코프 기반 방위각 및 상기 지자기 센서 기반 방위각을 상보 필터로써 필터링하여 상기 방위각을 계산하는 명령어를 포함하는,
컴퓨팅 장치.
The method of claim 9,
The command for calculating the azimuth is a command for calculating the azimuth as a gyroscope-based azimuth based on angular velocity measurement data received from the gyroscope of the UAV, and calculating the azimuth as a geomagnetic sensor-based azimuth based on the magnetic field measurement data and a command for calculating the azimuth by filtering the gyroscope-based azimuth and the geomagnetic sensor-based azimuth with a complementary filter.
computing device.
제9항 및 제11항 내지 제15항 중 어느 한 항에 기재된 지자기 센서, 촬상 유닛 및 컴퓨팅 장치를 포함하는 무인 비행체.An unmanned aerial vehicle comprising the geomagnetic sensor according to any one of claims 9 and 11 to 15, an imaging unit, and a computing device.
KR1020200171022A 2020-12-09 2020-12-09 Estimation of azimuth angle of unmanned aerial vehicle that operates in indoor environment KR102259920B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200171022A KR102259920B1 (en) 2020-12-09 2020-12-09 Estimation of azimuth angle of unmanned aerial vehicle that operates in indoor environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200171022A KR102259920B1 (en) 2020-12-09 2020-12-09 Estimation of azimuth angle of unmanned aerial vehicle that operates in indoor environment

Publications (1)

Publication Number Publication Date
KR102259920B1 true KR102259920B1 (en) 2021-06-01

Family

ID=76376145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200171022A KR102259920B1 (en) 2020-12-09 2020-12-09 Estimation of azimuth angle of unmanned aerial vehicle that operates in indoor environment

Country Status (1)

Country Link
KR (1) KR102259920B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113551663A (en) * 2021-06-21 2021-10-26 北京理工大学 Image and geomagnetism combined aircraft attitude calculation system and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080094618A (en) * 2007-04-19 2008-10-23 (주)에스엠엘전자 System and method for position estimation using enconders and accelerometers
KR20180051996A (en) * 2016-11-09 2018-05-17 삼성전자주식회사 An unmanned aerialvehicles and method for pthotographing a subject using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080094618A (en) * 2007-04-19 2008-10-23 (주)에스엠엘전자 System and method for position estimation using enconders and accelerometers
KR20180051996A (en) * 2016-11-09 2018-05-17 삼성전자주식회사 An unmanned aerialvehicles and method for pthotographing a subject using the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113551663A (en) * 2021-06-21 2021-10-26 北京理工大学 Image and geomagnetism combined aircraft attitude calculation system and method
CN113551663B (en) * 2021-06-21 2024-03-19 北京理工大学 System and method for resolving aircraft attitude by combining images and geomagnetism

Similar Documents

Publication Publication Date Title
KR102483649B1 (en) Vehicle localization method and vehicle localization apparatus
US20210027641A1 (en) Systems and methods for vehicle guidance
CN107111879B (en) Method and apparatus for estimating vehicle's own motion by panoramic looking-around image
US10788830B2 (en) Systems and methods for determining a vehicle position
EP4290878A2 (en) Techniques for co-optimization of motion and sensory control
CN106873619B (en) Processing method of flight path of unmanned aerial vehicle
CN112230242B (en) Pose estimation system and method
KR101738750B1 (en) Method and apparatus for robust localization in outdoor environments
KR20200044420A (en) Method and device to estimate position
US11814056B2 (en) Travel amount estimation apparatus
WO2018182524A1 (en) Real time robust localization via visual inertial odometry
CN111145251A (en) Robot, synchronous positioning and mapping method thereof and computer storage device
Svacha et al. Inertial yaw-independent velocity and attitude estimation for high-speed quadrotor flight
CN110793526A (en) Pedestrian navigation method and system based on fusion of wearable monocular vision and inertial sensor
KR102259920B1 (en) Estimation of azimuth angle of unmanned aerial vehicle that operates in indoor environment
CN115436917A (en) Synergistic estimation and correction of LIDAR boresight alignment error and host vehicle positioning error
EP4001844A1 (en) Method and apparatus with localization
CN114777768A (en) High-precision positioning method and system for satellite rejection environment and electronic equipment
CN107270904B (en) Unmanned aerial vehicle auxiliary guide control system and method based on image registration
Lee et al. Measuring vehicle velocity in real time using modulated motion blur of camera image data
EP3872692A1 (en) Compensation for vertical road curvature in road geometry estimation
KR101340158B1 (en) Method and computer-readable recording medium for calibrating position of a target using a fixed target for unmanned aerial vehicle
CN115456898A (en) Method and device for building image of parking lot, vehicle and storage medium
CN115560744A (en) Robot, multi-sensor-based three-dimensional mapping method and storage medium
KR102304662B1 (en) Navigation filtering for reproduction of accident of unmanned vehicle

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant