KR101880940B1 - 자세 제어 방법 및 그를 적용한 드론 - Google Patents

자세 제어 방법 및 그를 적용한 드론 Download PDF

Info

Publication number
KR101880940B1
KR101880940B1 KR1020170143963A KR20170143963A KR101880940B1 KR 101880940 B1 KR101880940 B1 KR 101880940B1 KR 1020170143963 A KR1020170143963 A KR 1020170143963A KR 20170143963 A KR20170143963 A KR 20170143963A KR 101880940 B1 KR101880940 B1 KR 101880940B1
Authority
KR
South Korea
Prior art keywords
euler
velocity
estimated
measured
final
Prior art date
Application number
KR1020170143963A
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 KR1020170143963A priority Critical patent/KR101880940B1/ko
Application granted granted Critical
Publication of KR101880940B1 publication Critical patent/KR101880940B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/08Control of attitude, i.e. control of roll, pitch, or yaw
    • G05D1/0808Control of attitude, i.e. control of roll, pitch, or yaw specially adapted for aircraft
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/10Simultaneous control of position or course in three dimensions
    • G05D1/101Simultaneous control of position or course in three dimensions specially adapted for aircraft
    • 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
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P15/00Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration
    • G01P15/14Measuring acceleration; Measuring deceleration; Measuring shock, i.e. sudden change of acceleration by making use of gyroscopes
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/04Control of altitude or depth
    • G05D1/042Control of altitude or depth specially adapted for aircraft

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Navigation (AREA)

Abstract

본 발명은, 가속도계로부터 측정된 측정 오일러 각을 이용하여 현재의 추정 각속도를 계산하고, 자이로스코프로부터 측정된 측정 각속도를 이용하여 현재의 추정 오일러 각을 계산하며, 전술한 현재의 추정 각속도, 추정 오일러 각, 측정 오일러 각 및 측정 각속도와 메모리에 기 저장된 과거 오일러 각과 각속도를 이용하여 최종 오일러 각 및 최종 각속도를 계산하는 메카니즘을 제공한다.
이에, 본 발명은 드론의 자세와 변화 방향을 추정하고 특정화할 수 있어, 드론의 자세를 보다 더 정밀하게 제어하는 장점을 준다.

Description

자세 제어 방법 및 그를 적용한 드론{METHOD FOR CONTROLLING ATTITUDE AND DRONE ATAPTED THE SAME}
본 발명은 자세 제어 방법 및 그를 적용한 드론에 관한 것으로서, 더욱 상세하게는 드론의 자세를 추정하여 제어하기 위한 자세 제어 방법 및 그를 적용한 드론에 관한 것이다.
일반적으로, 무인 비행체, 예컨대, 드론은 가속도계(accelerometer) 및 자이로스코프(gyroscope)를 장착하고, 이들을 통해 가속도와 각속도를 직접 취득하여 자세 제어를 위한 정보로서 활용한다.
이때, 드론은 각각의 가속도와 각속도 정보에 대한 신뢰도를 높이는 방법으로서, 노이즈 제거를 위한 필터 알고리즘을 적용하고, 다수의 동종 센서를 통한 다수의 가속도와 각속도 정보를 취득하여 이를 평균화하는 기법을 사용함으로써, 자세 제어를 수행하게 된다.
그러나, 기존의 드론은 그 제원의 제약 상 많은 수의 센서를 사용하는 데에 제한이 있을 수 밖에 없으며, 사용 환경 상에서 수 많은 잡음 노이즈에 노출 될 수 밖에 없기 때문에, 단순히 센서를 늘리는 것만으로 비용 대비 정확한 자세 추정이 쉽지 않은 문제점이 있었다.
한국공개특허 : 제2016-0068260호, 공개일자 : 2016년 06월 15일, 발명의 명칭 : 실내환경에서의 쿼드로터형 무인비행체의 자세 안정화 및 고도 제어.
전술한 문제점을 해결하기 위하여, 본 발명은 각속도 및 가속도를 보다 더 정밀하게 상호 보완하여 자세를 추정하고 제어하기 위한 방법 및 그를 적용한 드론을 제공하는데 그 목적이 있다.
전술한 여러 목적을 달성하기 위한 본 발명은, 가속도계로부터 측정된 측정 오일러 각(Eulermeasured)을 이용하여 현재의 추정 각속도(Velocityestimated)를 계산하는 단계; 자이로스코프로부터 측정된 측정 각속도(Velocitymeasured)를 이용하여 현재의 추정 오일러 각(Eulerestimated)을 계산하는 단계; 및 상기 현재의 추정 각속도, 추정 오일러 각, 상기 측정 오일러 각 및 상기 측정 각속도와 메모리에 기 저장된 과거 오일러 각과 각속도를 이용하여 최종 오일러 각(Eulerfinal) 및 최종 각속도(Velocityfinal)를 계산하는 단계를 포함하는 드론의 자세 제어 방법을 제공한다.
상기 측정 오일러 각은 공간 좌표 상(x,y,z)에서 하기의 식 (1) 및 식 (2)를 통해 계산된 Eulerroll 및 Eulerpith의 각을 포함할 수 있다.
Figure 112017108046810-pat00001
식 (1)
Figure 112017108046810-pat00002
식 (2)
이때, 상기 atan2는 tan-1이고, 상기 Accelx, Accely 및 Accelz는 x축, y축 및 z축의 가속도를 의미할 수 있다.
상기 현재의 추정 각속도는 하기의 식 (3)을 통해 산출될 수 있다.
Velocityroll_estimated = (Eulerroll - Eulerroll-1)/△T
Velocitypitch_estimated = (Eulerpitch - Eulerpitch-1)/△T 식 (3)
이때, 상기 현재의 추정 각속도는 roll과 pitch에 대해서 각각 산출된 값(Velocityroll_estimated, Velocitypitch_estimated)을 의미하고, 상기 △T는 시간 변위를 의미할 수 있다.
상기 현재의 추정 오일러 각은 하기의 식 (4)를 통해 산출될 수 있다.
Figure 112017108046810-pat00003
식 (4)
이때, 상기 Fhdr은 Heuristic Drift Reduction Filter의 함수이고, 상기 Flpf는 Low Pass Filter의 함수이며, 상기 Vangle_t는 시간(t)의 특정 측정 시점에서의 가속도이고, 상기 △T는 시간 변위를 의미할 수 있다.
상기 최종 오일러 각을 계산하는 단계는 메모리에 기 저장된 과거의 오일러 각 중 N 번째 오일러 각(Eulern)과 N-1 번째 오일러 각(Eulern-1)을 이용하여 과거 오일러 각 차이값(gn)을 계산하는 단계를 포함하고, 상기 과거 오일러 각 차이값(gn)은 하기의 식 (5)를 통해 계산될 수 있다.
gn=Eulern- Eulern-1 식 (5)
상기 최종 오일러 각을 계산하는 단계는 상기 측정 오일러 각(Eulermeasured)과 상기 N번째 오일러 각(Eulern) 및 상기 과거 오일러 각 차이값(gn)을 이용하여 측정 오일러 각 차이값(gmeasured)을 계산하는 단계를 더 포함하고, 상기 측정 오일러 각 차이값(gmeasured)은 하기의 식 (6)을 통해 계산될 수 있다.
gmeasured = Abs(Abs(Eulermeasured - Eulern) - Abs(gn)) 식 (6)
이때, 상기 Abs는 절대값을 의미할 수 있다.
상기 최종 오일러 각을 계산하는 단계는 상기 추정 오일러 각(Eulerestimated)과 상기 N번째 오일러 각(Eulern) 및 상기 과거 오일러 각 차이값(gn)을 이용하여 추정 오일러 각 차이값(gestimated)을 계산하는 단계를 더 포함하고, 상기 추정 오일러 각 차이값(gestimated)은 하기의 식 (7)를 통해 계산될 수 있다.
gestimated = Abs(Abs(Eulerestimated - Eulern) - Abs(gn)) 식 (7)
상기 최종 오일러 각을 계산하는 단계는 상기 측정 오일러 각 차이값(gmeasured)이 상기 추정 오일러 각 차이값(gestimated)보다 작으면, 하기의 식 (8)을 통해 상기 최종 오일러 각(Eulerfinal)을 계산하고, 상기 측정 오일러 각 차이값(gmeasured)이 상기 추정 오일러 각 차이값(gestimated)보다 크면, 하기의 식 (9)를 통해 상기 최종 오일러 각(Eulerfinal)을 계산하는 단계를 더 포함할 수 있다.
Eulerfinal = Eulermeasured×keuler + Eulerestimated(1-keuler) 식 (8)
Eulerfinal = Eulerestimated×keuler + Eulermeasured(1-keuler) 식 (9)
이때, 상기 keuler은 상기 keuler은 (0 ≤ keuler ≤ 1)의 범위를 갖는 오일러 가중치를 의미할 수 있다.
상기 최종 각속도를 계산하는 단계는 메모리에 기 저장된 상기 과거의 각속도 중 N번째 각속도(Velocityn)와 N-1번째 각속도(Velocityn-1)를 이용하여 과거 각속도 차이값(Vn)을 계산하는 단계를 포함하고, 상기 과거 각속도 차이값(Vn)은 하기의 식 (10)를 통해 계산될 수 있다.
Vn = Velocityn - Velocityn-1 식 (10)
상기 최종 각속도를 계산하는 단계는 상기 측정 각속도(Velocitymeasured)와 상기 N번째 각속도(Velocityn) 및 상기 과거 각속도 차이값(Vn)을 이용하여 측정 각속도 차이값(Vmeasured)을 계산하는 단계를 더 포함하고, 상기 측정 각속도 차이값(Vmeasured)은 하기의 식 (11)를 통해 계산될 수 있다.
Vmeasured = Abs(Abs(Velocitymeasured - Velocityn) - Abs(vn)) 식 (11)
상기 최종 각속도를 계산하는 단계는 상기 추정 각속도(Velocityestimated)와 상기 N번째 각속도(Velocityn) 및 상기 과거 각속도 차이값(Vn)을 이용하여 추정 각속도 차이값(Vestimated)을 계산하는 단계를 더 포함하고, 상기 추정 각속도 차이값(Vestimated)은 하기의 식 (12)을 통해 계산될 수 있다.
vestimated = Abs(Abs(Velocityestimated - Velocityn) - Abs(Vn)) 식 (12)
상기 최종 각속도를 계산하는 단계는 상기 측정 각속도 차이값(Vmeasured)이 상기 추정 각속도 차이값(Vestimated)보다 작으면, 하기의 식 (13)를 통해 상기 최종 각속도(Velocityfinal)를 계산하고, 상기 측정 각속도 차이값(Vmeasured)이 상기 추정 각속도 차이값(Vestimated)보다 크면, 하기의 식 (14)를 통해 상기 최종 각속도(Velocityfinal)를 계산하는 단계를 더 포함할 수 있다.
Velocityfinal = Velocitymeasured × kvelocity + Velocityestimated(1-kvelocity) (13)
Velocityfinal = Vestimated × kvelocity + Vmeasured(1-kvelocity) 식 (14)
이때, 상기 kvelocity는 (0 ≤ kvelocity ≤ 1)의 범위를 갖는 각속도 가중치를 의미할 수 있다.
상기 드론의 자세 제어 방법은 상기 과거의 오일러 각과 상기 최종 오일러 각(Eulerfinal)을 이용하여 현재의 오일러 각(EulerN)을 계산하고, 상기 과거의 각속도와 상기 최종 각속도(Velocityfinal)를 이용하여 현재의 각속도(VelocityN)를 계산하는 단계를 더 포함할 수 있다.
상기 현재의 오일러 각을 계산하는 단계는 상기 최종 오일러 각(Eulerfinal)과 상기 과거의 오일러 각 중 N번째 오일러 각(Eulern)에 N번째 오일러 가중치(keuler_n)를 적용한 하기의 식 (15) 내지 식 (17)를 통해 상기 현재의 오일러 각(EulerN)을 특정하는 단계를 포함할 수 있다.
EulerN = Eulerfinal × keuler_n + Eulern(1-keuler_n) 식 (15)
Eulern-1 = Eulern 식 (16)
Eulern = EulerN 식 (17)
이때, 상기 keuler_n은 (0 ≤ keuler_n ≤ 1)의 범위를 갖는 N번째 오일러 각 가중치를 의미할 수 있다.
상기 현재의 각속도를 계산하는 단계는 상기 최종 각속도(Velocityfinal)와 상기 과거의 각속도 중 N번째 각속도(Velocityn)에 N번째 각속도 가중치(Velocity_n)를 적용한 하기의 식 (18) 내지 식 (20)을 통해 상기 현재의 각속도(VelocityN)를 특정하는 단계를 더 포함할 수 있다.
VelocityN = Velocityfinal × kvelocity_n + Velocityn(1-kvelocity_n) 식 (18)
Velocityn-1 = Velocityn 식 (19)
Velocityn = VelocityN 식 (20)
이때, 상기 kvelocity_n은 (0 ≤ kvelocity_n ≤ 1)의 범위를 갖는 N번째 각속도 가중치를 의미할 수 있다.
본 발명에 따르면, 기존에 이미 사용중인 가속도계 및 자이로스코프로부터 취득되는 가속도와 각속도를 좀더 정확하게 상호 보완하여 추정함으로써 드론의 자세를 보다 더 정밀하게 제어하기 때문에, 기존의 비용 대비 효과를 높일 수 있다.
본 발명은 또한, 각속도 및 가속도를 추정하는 알고리즘을 사용하고, 드론의 자세 변화와 관련한 측정된 값 및 추정된 값 사이의 유사성을 이용하여 실제 자세 변화를 유추함으로써, 다양한 노이즈에 대하여 보다 정확한 자세를 추정하고 특정할 수 있다.
본 발명의 좋은 효과들은 위에 언급한 것으로만 제한되지 않으며, 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있는 다른 다양한 효과들을 포함한다.
이하에 첨부되는 도면들은 본 발명의 이해를 돕기 위한 것으로, 상세한 설명과 함께 발명들을 제공한다. 다만, 본 발명의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 발명으로 구성될 수 있다.
도 1은 본 발명의 자세 제어 방법을 예시적으로 나타낸 순서도이다.
도 2는 도 1의 자세 제어 방법을 실현하는 드론의 구성을 예시적으로 나타낸 도면이다.
도 3은 본 발명에 따른 130 단계의 최종 오일러 각을 산출하기 위한 알고리즘을 설명하기 위한 순서도이다.
도 4는 본 발명에 따른 130 단계의 최종 각속도를 산출하기 위한 알고리즘을 설명하기 위한 순서도이다.
도 5는 본 발명에 따른 140 단계의 자세 특정화 알고리즘을 설명하기 위한 순서도이다.
도 6은 본 발명의 자세 제어를 위한 드론의 구성을 예시적으로 나타낸 블럭 구성도이다.
이하의 설명과 특허청구범위에서, '포함하다' 또는 '이루어지다' 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소를 여러 구성요소 중의 하나로 갖추고 있음을 의미하는 것으로, 다른 구성 요소를 배제하고자 하는 것이 아니다.
또한, 이하의 설명과 특허청구범위에서 설명되는 ' ~부'라는 용어는, 하드웨어 또는 소프트웨어 또는 하드웨어와 소프트웨어가 결합하여 수행하는 기능을 구분하여 특정 기능을 수행하는 하나의 단위 또는 블록을 의미할 수 있다.
통상, 무인 비행체는 드론, 무인 헬리콥터 및 무인 항공기 등을 포함한다. 이하에서는, 무인 비행체 중 드론에 한정하여 드론의 자세 제어 방법 및 이를 적용한 드론에 대해 관련 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명과 특허청구범위에서 설명되는 드론에 한정하여 설명할 예정이지만, 다른 무인 비행체에도 적용될 수 있음을 미리 밝혀둔다.
도 1은 본 발명의 자세 제어 방법을 예시적으로 나타낸 순서도이고, 도 2는 도 1의 자세 제어 방법을 실현하는 드론의 구성을 예시적으로 나타낸 도면이다.
도 2는 도 1를 설명할 때 보조적으로 인용된다.
도 1를 참조하면, 본 발명에 따른 자세 제어 방법은 도 2의 드론의 제어기를 통해 실현되는 110 단계 내지 140 단계를 포함한다. 도 2에 도시된 드론은 가속도계(10) 및 자이로스코프(20), 제어기(30) 및 메모리(40)를 포함할 수 있다. 가속도계(10)는 드론의 움직임(자세 변화)에 대한 가속도를 측정하고, 자이로스코프는 드론의 움직임(자세 변화)에 대한 각속도를 측정한다.
이러면, 도 2에 도시된 제어기는 측정된 가속도 및 각속도를 상호 보완하여 드론의 자세 및 자세 방향을 추정하고, 특정하는 자세 변화 알고리즘을 수행하고, 이 결과에 따라 정밀한 자세 제어를 실시할 수 있다.
도 2에 도시된 메모리는 전술한 제어기의 명령에 따라 가속도계(10) 및 자이로스코프(20)에 의해 측정된 가속도 및 각속도를 누적시켜 과거 데이터로서 저장할 수 있고, 전술한 제어기에 의해 처리된 데이터를 저장할 수 있다.
이하에서는, 전술한 드론의 제어기에 의해 실현되는 도 1의 110 단계 내지 140 단계는 다음과 같다.
110 단계에서, 드론의 제어기(30)는 가속도계(10)가 가속도 및 측정 오일러 각(Eulermeasured)을 측정하면, 상기 가속도계(10)로부터 측정된 가속도 및 측정 오일러 각(Eulermeasured)을 수신하여 메모리(40)에 저장시킬 수 있다.
언급된 측정 오일러 각(Eulermeasured)은 공간 좌표 상(x, y, z)의 가속도를 오일러 법칙에 적용한 하기의 수학식 1 및 수학식 2를 통해 계산된 Eulerroll 및 Eulerpith의 각을 포함할 수 있다.
Figure 112017108046810-pat00004
(수학식 1)
Figure 112017108046810-pat00005
(수학식 2)
이때, 수학식 1 및 2에서의 atan2는 tan-1를 가리키고, Accelx, Accely 및 Accelz는 x축, y축 및 z축의 가속도를 가리킬 수 있다.
이로써, 드론의 제어기(30)는 가속도계(10)로부터 측정된 측정 오일러 각(Eulermeasured)을 이용하여 현재의 각속도를 추정하기 위한 추정 각속도(Velocityestimated)를 계산할 수 있다.
예를 들면, 드론의 제어기(30)는 전술한 측정 오일러 각(Eulermeasured)에 대해 시간 변위(△T )에 따른 현재의 각속도를 추정하기 위한 추정 각속도(Velocityestimated)를 계산할 수 있는데, 하기의 수학식 3을 통해 현재의 추정 각속도(Velocityestimated)를 계산할 수 있다. 계산된 현재의 추정 각속도(Velocityestimated)는 메모리(40)에 저장됨은 물론이다.
Velocityroll_estimated = (Eulerroll - Eulerroll-1)/△T
Velocitypitch_estimated = (Eulerpitch - Eulerpitch-1)/△T (수학식 3)
여기서, 현재의 추정 각속도(Velocityestimated)는 roll과 pitch에 대해서 각각 산출된 값(Velocityroll_estimated, Velocitypitch_estimated)을 가리키고, 상기 △T는 시간 변위를 가리키며, 상기 Eulerroll 및 Eulerpith는 현재의 측정 오일러 각(Eulermeasured)을 가리키고, Eulerroll -1 및 Eulerpith -1은 현재의 측정 오일러 각(Eulermeasured)의 이전 값을 가리킬 수 있다.
120 단계에서, 드론의 제어기(30)는 자이로스코프(20)가 드론의 각속도 및 측정 각속도(Velocitymeasured)를 측정하면, 상기 가속도계(10)로부터 측정된 각속도 및 측정 각속도(Velocitymeasured)를 수신하여 메모리(40)에 저장시킬 수 있다.
이로써, 드론의 제어기(30)는 자이로스코프(20)로부터 측정된 측정 각속도(Velocitymeasured)를 이용하여 현재의 오일러 각을 추정하기 위한 추정 오일러 각(Eulerestimated)을 계산할 수 있다.
예를 들면, 드론의 제어기(30)는 시간 t에서의 측정된 각속도(Vangle_t)와 Low Pass Filter의 함수 및 Heuristic Drift Reduction Filter의 함수를 적용한 하기의 수학식 4를 통해 현재의 추정 오일러 각(Eulerestimated)을 계산할 수 있다. 계산된 현재의 추정 오일러 각(Eulerestimated)은 메모리(40)에 저장됨은 물론이다.
Figure 112017108046810-pat00006
(수학식 4)
이때, 수학식 4에서, 상기 Fhdr은 Heuristic Drift Reduction Filter의 함수이고, 상기 Flpf은 Low Pass Filter의 함수이며, 상기 Vangle_t는 시간(t)의 특정 측정 시점에서의 가속도이고, 상기 △T는 시간 변위를 가리킬 수 있다.
언급된, Heuristic Drift Reduction Filter의 함수(Flpf)는 Heuristic Drift Reduction Filter를 통해 자이로스코프(20)로부터 측정된 각속도에서 발생된 Heuristic Drift 노이즈 성분을 제거하기 위한 값을 의미할 수 있고, Low Pass Filter의 함수(Flpf)는 Low Pass Filter를 통해 자이로스코프(20)로부터 측정된 각 각속도에서 발생된 저역 노이즈 성분을 제거하기 위한 값을 의미할 수 있다.
130 단계에서, 드론의 제어기(30)는 전술한 110 단계 및 120 단계에 의해 계산된 현재의 추정 각속도(Velocityestimated), 추정 오일러 각(Eulerestimated)과 가속도계(10)로부터 측정된 측정 오일러 각(Eulermeasured)과, 자이로스코프(20)로부터 측정된 측정 각속도(Velocitymeasured) 및 메모리(40)에 기 저장된 과거 오일러 각과 각속도를 이용하여 최종 오일러 각(Eulerfinal) 및 최종 각속도(Velocityfinal)를 계산(산출)함으로써, 드론의 자세 변화(예: 드론의 자세 및 자세 방향)를 추정할 수 있다.
이중에서, 메모리(40)에 기 저장된 과거 오일러 각은 가속도계(10)를 통해 측정된 과거의 누적 가속도를 이용하여 예컨대, E1, E2, E3, ... En-1 및 En의 오일러 각을 의미할 수 있고, 과거의 각속도는 자이로스코프(20)를 통해 측정된 과거의 누적 각속도를 이용하여 예컨대, V1, V2, V3, ... Vn-1 및 Vn의 각속도를 의미할 수 있다.
이런 경우, 전술한 측정 오일러 각(Eulermeasured)은 En의 오일러 각 이후에 발생하는 En+1 번째의 오일러 각을 가리킬 수 있고, 전술한 측정 각속도(Velocitymeasured)는 Vn의 각속도 이후에 발생하는 Vn+1 번째의 각속도를 가리킬 수 있다.
전술한 130 단계에 대해 구체적으로 설명하면 도 3 및 도 4와 같다.
도 3은 본 발명에 따른 130 단계의 최종 오일러 각을 계산하기 위한 알고리즘을 설명하기 위한 순서도이다.
도 3을 참조하면, 본 발명에 따른 130 단계는 드론의 제어기(30)에 의해 실현되는 131 단계 내지 136 단계를 포함할 수 있다.
먼저, 131 단계에서, 드론의 제어기(30)는 메모리(40)에 기 저장된 과거의 오일러 각 중 N번째 오일러 각(Eulern)과 N-1번째 오일러 각(Eulern-1)을 이용하여 과거 오일러 각 차이값(gn)을 계산할 수 있다.
예를 들면, 드론의 제어기(30)는 전술한 N번째 오일러 각(Eulern)과 N-1번째 오일러 각(Eulern-1)을 적용한 하기의 수학식 5를 통해 과거 오일러 각 차이값(gn)을 계산할 수 있다.
gn = Eulern- Eulern-1 (수학식 5)
132 단계에서, 드론의 제어기(30)는 전술한 과거의 오일러 각 중 N 번째 오일러 각(Eulern)과 N-1 번째 오일러 각(Eulern-1)을 이용하여 과거 오일러 각 차이값(gn)을 계산할 수 있다.
예를 들면, 드론의 제어기(30)는 가속도계(10)로부터 측정된 측정 오일러 각(Eulermeasured)과 과거 오일러 각 데이터인 N번째 오일러 각(Eulern) 및 전술한 131 단계에 의해 구해진 과거 오일러 각 차이값(gn)을 적용한 하기의 수학식 6을 통해 측정 오일러 각 차이값(gmeasured)을 계산할 수 있다.
gmeasured = Abs(Abs(Eulermeasured - Eulern) - Abs(gn)) (수학식 6)
이때, 수학식 6에서 Abs는 절대값을 가리킬 수 있다.
133 단계에서, 드론의 제어기(30)는 전술한 추정 오일러 각(Eulerestimated)과 N번째 오일러 각(Eulern) 및 과거 오일러 각 차이값(gn)을 이용하여 추정 오일러 각 차이값(gestimated)을 계산할 수 있다.
예를 들면, 드론의 제어기(30)는 전술한 120 단계에 의해 구해진 추정 오일러 각(Eulerestimated)과 과거 오일러 각 데이터인 N번째 오일러 각(Eulern) 및 전술한 131 단계에 의해 구해진 과거 오일러 각 차이값(gn)을 적용한 하기의 수학식 7를 통해 추정 오일러 각 차이값(gestimated)을 계산할 수 있다.
gestimated = Abs(Abs(Eulerestimated - Eulern) - Abs(gn)) (수학식 7)
이때, 수학식 7에서 Abs는 절대값을 가리킬 수 있다.
134 단계에서, 드론의 제어기(30)는 전술한 132 단계에 의해 구해진 측정 오일러 각 차이값(gmeasured)이 전술한 133 단계에 의해 구해진 추정 오일러 각 차이값(gestimated)보다 작은지의 여부를 판단할 수 있다.
예를 들면, 135 단계에서, 드론의 제어기(30)는 측정 오일러 각 차이값(gmeasured)이 추정 오일러 각 차이값(gestimated)보다 작으면, 하기의 수학식 8를 통해 최종 오일러 각(Eulerfinal)을 계산할 수 있다.
Eulerfinal = Eulermeasured×keuler + Eulerestimated(1-keuler) (수학식 8)
예를 들면, 136 단계에서, 드론의 제어기(30)는 측정 오일러 각 차이값(gmeasured)이 추정 오일러 각 차이값(gestimated)보다 크면, 하기의 수학식 9를 통해 최종 오일러 각(Eulerfinal)을 계산할 수 있다.
Eulerfinal = Eulerestimated×keuler + Eulermeasured(1-keuler) (수학식 9)
이때, 수학식 8 및 9에서 언급된 keuler은 (0 ≤ keuler ≤ 1)의 범위를 갖는 오일러 가중치를 가리킬 수 있다.
이와 같이, 본 실시예에서는 전술한 131 단계 내지 136 단계를 통해 최종 오일러 각(Eulerfinal)을 계산하면, 이를 통해 드론의 현재 자세(Eulerfinal)를 정확히 추정할 수 있을 것이다.
도 4는 본 발명에 따른 130 단계의 최종 각속도를 산출하기 위한 알고리즘을 설명하기 위한 순서도이다.
도 4를 참조하면, 본 발명에 따른 130 단계는 드론의 제어기(30)에 의해 실현되는 131a 단계 내지 136f 단계를 더 포함할 수 있다.
131a 단계에서, 드론의 제어기(30)는 메모리(40)에 기 저장된 과거의 각속도 중 N번째 각속도(Velocityn)와 N-1번째 각속도(Velocityn-1)를 이용하여 과거 각속도 차이값(Vn)을 계산할 수 있다.
예를 들면, 드론의 제어기(30)는 과거의 결과 데이터인 N번째 각속도(Velocityn)와 N-1번째 각속도(Velocityn-1)를 적용한 하기의 수학식 10을 통해 과거 각속도 차이값(Vn)을 계산할 수 있다.
Vn = Velocityn - Velocityn-1 (수학식 10)
132b 단계에서, 드론의 제어기(30)는 전술한 측정 각속도(Velocitymeasured)와 N번째 각속도(Velocityn) 및 과거 각속도 차이값(Vn)을 이용하여 측정 각속도 차이값(Vmeasured)을 계산할 수 있다.
예를 들면, 드론의 제어기(30)는 전술한 120 단계에 의해 구해진 측정 각속도(Velocitymeasured)와 과거 각속도 데이터인 N번째 각속도(Velocityn) 및 전술한 131a 단계에 의해 구해진 과거 각속도 차이값(Vn)을 적용한 하기의 수학식 11를 통해 측정 각속도 차이값(Vmeasured)을 계산할 수 있다.
Vmeasured = Abs(Abs(Velocitymeasured - Velocityn) - Abs(vn)) (수학식 11)
이때, 수학식 11에서 언급된 Abs는 절대값을 가리킬 수 있다.
133c 단계에서, 드론의 제어기(30)는 전술한 추정 각속도(Velocityestimated)와 N번째 각속도(Velocityn) 및 과거 각속도 차이값(Vn)을 이용하여 추정 각속도 차이값(Vestimated)을 계산할 수 있다.
예를 들면, 드론의 제어기(30)는 전술한 110 단계에 의해 구해진 추정 각속도(Velocityestimated)와 과거 각속도 데이터인 N번째 각속도(Velocityn) 및 전술한 131a 단계에 의해 구해진 과거 각속도 차이값(Vn)을 적용한 하기의 수학식 12를 통해 추정 각속도 차이값(Vestimated)을 계산할 수 있다.
Vestimated = Abs(Abs(Velocityestimated - Velocityn) - Abs(Vn)) (수학식 12)
134d 단계에서, 드론의 제어기(30)는 전술한 132b 단계에 의해 구해진 측정 각속도 차이값(Vmeasured)이 전술한 133c 단계에 의해 구해진 추정 각속도 차이값(Vestimated)보다 작은지의 여부를 판단할 수 있다.
예를 들면, 135e 단계에서, 드론의 제어기(30)는 측정 각속도 차이값(Vmeasured)이 추정 각속도 차이값(Vestimated)보다 작으면, 하기의 수학식 13을 통해 최종 각속도(Velocityfinal)를 계산할 수 있다.
Velocityfinal = Velocitymeasured × kvelocity + Velocityestimated(1-kvelocity) (수학식 13)
예를 들면, 135e 단계에서, 드론의 제어기(30)는 측정 각속도 차이값(Vmeasured)이 추정 각속도 차이값(Vestimated)보다 크면, 하기의 식 (14)를 통해 최종 각속도(Velocityfinal)를 계산할 수 있다.
Velocityfinal = Vestimated × kvelocity + Vmeasured(1-kvelocity) (수학식 14)
이때, 수학식 13과 14에서 언급된 kvelocity는 (0 ≤ kvelocity ≤ 1)의 범위를 갖는 각속도 가중치를 가리킬 수 있다.
이와 같이, 본 실시예에서는 전술한 131a 단계 내지 136f 단계를 통해 최종 각속도(Velocityfinal)를 계산하면, 이를 통해 드론의 현재 자세의 변화 방향을 정확히 추정할 수 있을 것이다.
한편, 다시 도 1로 돌아와, 나머지 단계인 140 단계를 살펴본다.
본 발명에 따른 140 단계에서, 드론의 제어기(30)는 측정 및 추정의 오차로 인한 영향을 최소화하기 위하여 앞서 설명한 과거의 오일러 각(N번째 오일러 각(Eulern), N-1번째 오일러 각(Eulern-1))과 최종 오일러 각(Eulerfinal)을 이용하여 한번 더 상호 보완함으로써, 드론의 현재 자세와 관련하여 보다 정밀한 현재의 오일러 각(EulerN)을 계산할 수 있다.
게다가, 140 단계에서, 드론의 제어기(30)는 측정 및 추정의 오차로 인한 영향을 최소화하기 위하여 앞서 설명한 과거의 각속도(예 : N번째 각속도(Velocityn), N-1번째 각속도(Velocityn-1))와 최종 각속도(Velocityfinal)를 이용하여 한번 더 상호 보완함으로써, 드론의 자세의 변화 방향과 관련하여 보다 정밀한 현재의 각속도(VelocityN)를 계산할 수 있다.
이러한 140 단계를 구체적으로 살펴보면 다음과 같다.
도 5는 본 발명에 따른 140 단계의 자세 특정화 알고리즘을 설명하기 위한 순서도이다.
도 5를 참조하면, 본 발명에 따른 140 단계는 과거의 값과 확정된 추정값을 한번 더 상호 보완하기 위하여 드론의 제어기(30)에 의해 실현되는 141 단계 내지 142 단계를 포함할 수 있다.
141 단계에서, 드론의 제어기(30)는 전술한 130 단계에 의해 구해진 최종 오일러 각(Eulerfinal)과 과거의 오일러 각 중 N번째 오일러 각(Eulern)에 N번째 오일러 가중치(keuler_n)를 적용한 하기의 수학식 15 내지 수학식 17를 통해 현재의 오일러 각(EulerN)을 계산할 수 있다.
EulerN = Eulerfinal × keuler_n + Eulern(1-keuler_n) (수학식 15)
Eulern-1 = Eulern (수학식 16)
Eulern = EulerN (수학식 17)
이때, 수학식 15에서 언급된 keuler_n은 (0 ≤ keuler_n ≤ 1)의 범위를 갖는 N번째 오일러 각 가중치를 가리킬 수 있다.
이와 같이, 본 실시예에서는 전술한 바와 같이 현재의 오일러 각(EulerN)을 특정함으로써, 전술한 130 단계에 비하여 보다 더 정밀한 드론의 현재 자세를 정확히 예측할 수 있을 것이다.
142 단계에서, 드론의 제어기(30)는 전술한 130 단계에 의해 구해진 최종 각속도(Velocityfinal)와 과거의 각속도 중 N번째 각속도(Velocityn)에 N번째 각속도 가중치(Velocity_n)를 적용한 하기의 수학식 18 내지 수학식 20을 통해 현재의 각속도(VelocityN)를 계산할 수 있다.
VelocityN = Velocityfinal × kvelocity_n + Velocityn(1-kvelocity_n) (수학식 18)
Velocityn-1 = Velocityn (수학식 19)
Velocityn = VelocityN (수학식 20)
이때, 수학식 18에서 언급된 kvelocity_n은 (0 ≤ kvelocity_n ≤ 1)의 범위를 갖는 N번째 각속도 가중치를 가리킬 수 있다.
이와 같이, 본 실시예에서는 현재의 각속도(VelocityN)를 특정함으로써, 전술한 130 단계에 비하여 보다 정밀한 드론의 현재 자세의 변화 방향을 예측할 수 있을 것이다.
이상에서 설명된 드론의 자세 제어 방법은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 매체에 기록될 수 있다.
컴퓨터 판독 가능한 매체는 프로세서에 의해 액세스 가능한 임의의 매체일 수 있다. 이러한 매체는 휘발성 및 비휘발성 매체 둘 다, 착탈식과 비착탈식 매체, 저장 매체 및 컴퓨터 저장 매체를 포함할 수 있다.
언급된 저장 매체는 RAM, 플래시 메모리, ROM, EPROM, 전기적으로 소거 가능한 판독 전용 메모리("EEPROM"), 레지스터, 하드 디스크, 착탈식 디스크, 콤팩트 디스크 판독 전용 메모리("CD-ROM"), 또는 공지된 임의의 기타 형태의 저장 매체를 포함할 수 있다.
언급된 컴퓨터 저장 매체는, 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 그 밖의 데이터와 같은 정보를 저장하기 위한 임의의 방법이나 기술로 구현되는 착탈형(removable)과 고정형(non-removable), 및 휘발성과 비휘발성 매체를 포함한다.
이러한 컴퓨터 저장 매체는 RAM, ROM, EPROM, EEPROM, 플래시 메모리, 다른 고체 메모리 기술, CDROM, 디지털 다용도 디스크(DVD), 또는 다른 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.
언급된 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
도 6은 본 발명의 자세 제어를 위한 드론의 구성을 예시적으로 나타낸 블럭 구성도이다.
도 6을 참조하면, 본 발명에 따른 드론(200)은 가속도계(210), 각속도 추정부(220), 자이로스코프(230), 오일러 각 추정부(240), 자세 변화 추정부(250), 자세 변화 특정부(260) 및 메모리(270)를 포함할 수 있다.
먼저, 가속도계(210)는 드론의 움직임(자세 변화)에 대한 가속도 및 측정 오일러 각(Eulermeasured)을 측정할 수 있다. 이러한 가속도계(210)는 통상적으로 널리 알려진 적어도 하나의 가속도 센서일 수도 있다.
각속도 추정부(220)는 가속도계(210)로부터 측정된 측정 오일러 각(Eulermeasured)을 이용하여 시간 변위(△T )에 따른 현재의 각속도를 추정하기 위한 추정 각속도(Velocityestimated)를 계산할 수 있다.
언급된 측정 오일러 각(Eulermeasured) 및 추정 각속도(Velocityestimated)의 계산은 앞서 도 1에서 충분히 설명하였기 때문에, 그 설명은 생략하지만, 본 실시예에서도 적용됨은 물론이다.
자이로스코프(230)는 드론의 움직임(자세 변화)에 대한 드론의 각속도 및 측정 각속도(Velocitymeasured)를 측정할 수 있다. 이러한 자이로스코프(230)는 통상적으로 널리 알려진 적어도 하나의 각속도 센서일 수도 있다.
오일러 각 추정부(240)는 자이로스코프(230)로부터 측정된 측정 각속도(Velocitymeasured)를 이용하여 현재의 오일러 각을 추정하기 위한 현재의 추정 오일러 각(Eulerestimated)을 계산할 수 있다. 언급된 현재의 추정 오일러 각(Eulerestimated)의 계산 과정은 앞서 도 1에서 충분히 설명하였기 때문에 그 설명은 생략하지만, 본 실시예에서도 적용됨은 물론이다.
자세 변화 추정부(250)는 전술한 현재의 추정 각속도(Velocityestimated), 추정 오일러 각(Eulerestimated)과 가속도계(210)로부터 측정된 측정 오일러 각(Eulermeasured)과, 자이로스코프(230)로부터 측정된 측정 각속도(Velocitymeasured) 및 메모리(270)에 기 저장된 과거 오일러 각과 각속도를 상호 보완하는 알고리즘을 통해 최종 오일러 각(Eulerfinal) 및 최종 각속도(Velocityfinal)를 계산(산출)할 수 있다.
언급된 최종 오일러 각(Eulerfinal) 및 최종 각속도(Velocityfinal)의 계산 과정은 앞서 도 1, 내지 도 4에서 충분히 설명하였기 때문에 그 설명은 생략하지만, 본 실시예에서도 적용된은 물론이다.
이와 같이, 본 실시예에서는 최종 오일러 각(Eulerfinal)이 계산되면, 이를 통해 드론의 현재 자세(Eulerfinal)를 정확히 추정할 수 있고, 최종 각속도(Velocityfinal)가 계산되면, 이를 통해 드론의 현재 자세의 변화 방향을 정확히 추정할 수 있을 것이다.
자세 변화 특정부(260)는 측정 및 추정의 오차로 인한 영향을 최소화하기 위하여 전술한 과거의 오일러 각(N번째 오일러 각(Eulern), N-1번째 오일러 각(Eulern-1))과 최종 오일러 각(Eulerfinal)을 이용하여 현재의 오일러 각(EulerN)을 계산하고, 전술한 과거의 각속도(예 : N번째 각속도(Velocityn), N-1번째 각속도(Velocityn-1))와 최종 각속도(Velocityfinal)를 이용하여 현재의 각속도(VelocityN)를 계산할 수 있다.
언급된 현재의 오일러 각(EulerN)과 현재의 각속도(VelocityN)의 계산 과정은 앞서 도 5에서 충분히 설명하였기 때문에 그 설명은 생략하지만, 본 실시예에서도 적용됨은 물론이다.
이와 같이, 본 실시예에서는 전술한 바와 같이 현재의 오일러 각(EulerN)을 특정함으로써, 전술한 자세 변화 추정부(250)의 결과값에 비하여 비하여 보다 더 정밀한 드론의 현재 자세를 정확히 예측할 수 있고, 전술한 바와 같이 현재의 각속도(VelocityN)를 특정함으로써, 전술한 자세 변화 추정부(250)의 결과값에 비하여 보다 정밀한 드론의 현재 자세의 변화 방향을 예측할 수 있을 것이다.
마지막으로, 메모리(270)는 전술한 가속도계(210), 각속도 추정부(220), 자이로스코프(230), 오일러 각 추정부(240), 자세 변화 추정부(250) 및 자세 변화 특정부(260)에 의해 처리된 데이터를 저장하며, 가속도계(210) 및 자이로스코프(230)로부터 측정된 과거의 가속도와 각속도 데이터 및 과거의 오일러 각과 각속도를 더 저장할 수 있다.
이러한 메모리(270)는 휘발성 메모리 또는 비휘발성 메모리 또는 이들을 조합으로 이루어질 수 있다.
이상과 같이 본 발명을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 본 발명의 기술적 사상과 필수적 특징을 유지한 채로 다른 형태로도 실시될 수 있음을 인지할 수 있을 것이다.
따라서 이상에서 기술한 실시예들은 단지 예시적인 것일 뿐이며, 본 발명의 범위를 앞의 실시예들로만 제한하고자 하는 것이 아니다. 또한, 도면에 도시된 순서도들은 본 발명을 실시함에 있어서 가장 바람직한 결과를 얻기 위해 예시적으로 도시한 순서에 불과하며, 다른 단계들이 더 추가되거나 일부 단계들이 삭제될 수 있음은 물론이다.
본 발명의 범위는 특허청구범위에 의하여 규정되어질 것이지만, 특허청구범위 기재사항으로부터 직접적으로 도출되는 구성은 물론 그와 등가인 구성으로부터 도출되는 모든 변경 또는 변형된 형태 또한 본 발명의 권리범위에 포함되는 것으로 해석되어야 한다.
10,210 : 가속도계 20,230: 자이로스코프
30 : 제어기 40,270 : 메모리
200 : 드론 220 : 각속도 추정부
240 : 오일러 각 추정부 250 : 자세 변화 추정부
260 : 자세 변화 특정부

Claims (15)

  1. 가속도계로부터 측정된 측정 오일러 각(Eulermeasured)을 이용하여 현재의 추정 각속도(Velocityestimated)를 계산하는 단계;
    자이로스코프로부터 측정된 측정 각속도(Velocitymeasured)를 이용하여 현재의 추정 오일러 각(Eulerestimated)을 계산하는 단계; 및
    상기 현재의 추정 각속도와 상기 측정 각속도 및 메모리에 기 저장된 과거 각속도를 이용하여 드론의 현재 자세를 예측하기 위한 최종 각속도(Velocityfinal)를 계산하고, 상기 추정 오일러 각과 상기 측정 오일러 각 및 상기 메모리에 기 저장된 과거 오일러 각을 이용하여 드론의 현재 자세의 변화 방향을 예측하기 위한 최종 오일러 각(Eulerfinal)을 계산하는 단계;
    를 포함하고,
    상기 최종 오일러 각을 계산하는 단계는,
    상기 과거 오일러 각 중 N 번째 오일러 각(Eulern)과 N-1 번째 오일러 각(Eulern-1)을 이용하여 과거 오일러 각 차이값(gn)을 계산하는 단계;를 포함하고,
    상기 과거 오일러 각 차이값(gn)은, 하기의 식 (5)를 통해 계산되는 것을 특징으로 하는, 드론의 자세 제어 방법.
    gn=Eulern- Eulern-1 식 (5)
  2. 제1항에 있어서,
    상기 측정 오일러 각은,
    공간 좌표 상(x,y,z)에서 하기의 식 (1) 및 식 (2)를 통해 계산된 Eulerroll 및 Eulerpith의 각을 포함하는 것을 특징으로 하는, 드론의 자세 제어 방법.
    Figure 112017108046810-pat00007
    식 (1)
    Figure 112017108046810-pat00008
    식 (2)
    상기 atan2는 tan-1이고, 상기 Accelx, Accely 및 Accelz는 x축, y축 및 z축의 가속도를 나타냄.
  3. 제2항에 있어서,
    상기 현재의 추정 각속도는, 하기의 식 (3)을 통해 산출되는 것을 특징으로 하는, 드론의 자세 제어 방법.
    Velocityroll_estimated = (Eulerroll - Eulerroll-1)/△T
    Velocitypitch_estimated = (Eulerpitch - Eulerpitch-1)/△T 식 (3)
    상기 현재의 추정 각속도는 roll과 pitch에 대해서 각각 산출된 값(Velocityroll_estimated, Velocitypitch_estimated)을 가리키고, 상기 △T는 시간 변위임.
  4. 제3항에 있어서,
    상기 현재의 추정 오일러 각은, 하기의 식 (4)를 통해 산출되는 것을 특징으로 하는, 드론의 자세 제어 방법.
    Figure 112018028887095-pat00009
    식 (4)
    상기 Eulerestimated는 상기 Velocityroll_estimated 및 Velocitypitch_estimated 를 나타내고, 상기 Fhdr은 Heuristic Drift Reduction Filter의 함수이고, 상기 Flpf은 Low Pass Filter의 함수이며, 상기 Vangle_t는 시간(t)의 특정 측정 시점에서의 가속도이고, 상기 △T는 시간 변위를 나타냄.
  5. 삭제
  6. 제1항에 있어서,
    상기 최종 오일러 각을 계산하는 단계는,
    상기 측정 오일러 각(Eulermeasured)과 상기 N번째 오일러 각(Eulern) 및 상기 과거 오일러 각 차이값(gn)을 이용하여 측정 오일러 각 차이값(gmeasured)을 계산하는 단계;를 더 포함하고,
    상기 측정 오일러 각 차이값(gmeasured)은, 하기의 식 (6)을 통해 계산되는 것을 특징으로 하는, 드론의 자세 제어 방법.
    gmeasured = Abs(Abs(Eulermeasured - Eulern) - Abs(gn)) 식 (6)
    상기 Abs는 절대값을 나타냄.
  7. 제6항에 있어서,
    상기 최종 오일러 각을 계산하는 단계는,
    상기 추정 오일러 각(Eulerestimated)과 상기 N번째 오일러 각(Eulern) 및 상기 과거 오일러 각 차이값(gn)을 이용하여 추정 오일러 각 차이값(gestimated)을 계산하는 단계;를 더 포함하고,
    상기 추정 오일러 각 차이값(gestimated)은, 하기의 식 (7)를 통해 계산되는 것을 특징으로 하는, 드론의 자세 제어 방법.
    gestimated = Abs(Abs(Eulerestimated - Eulern) - Abs(gn)) 식 (7)
    상기 Abs는 절대값을 나타냄.
  8. 제7항에 있어서,
    상기 최종 오일러 각을 계산하는 단계는,
    상기 측정 오일러 각 차이값(gmeasured)이 상기 추정 오일러 각 차이값(gestimated)보다 작으면, 하기의 식 (8)을 통해 상기 최종 오일러 각(Eulerfinal)을 계산하고,
    상기 측정 오일러 각 차이값(gmeasured)이 상기 추정 오일러 각 차이값(gestimated)보다 크면, 하기의 식 (9)를 통해 상기 최종 오일러 각(Eulerfinal)을 계산하는 단계;
    를 더 포함하는, 드론의 자세 제어 방법.
    Eulerfinal = Eulermeasured×keuler + Eulerestimated(1-keuler) 식 (8)
    Eulerfinal = Eulerestimated×keuler + Eulermeasured(1-keuler) 식 (9)
    상기 keuler은 (0 ≤ keuler ≤ 1)의 범위를 갖는 오일러 가중치를 나타냄.
  9. 제1항에 있어서,
    상기 최종 각속도를 계산하는 단계는,
    메모리에 기 저장된 상기 과거의 각속도 중 N번째 각속도(Velocityn)와 N-1번째 각속도(Velocityn-1)를 이용하여 과거 각속도 차이값(Vn)을 계산하는 단계;를 포함하고,
    상기 과거 각속도 차이값(Vn)은, 하기의 식 (10)를 통해 계산되는 것을 특징으로 하는, 드론의 자세 제어 방법.
    Vn = Velocityn - Velocityn-1 식 (10)
  10. 제9항에 있어서,
    상기 최종 각속도를 계산하는 단계는,
    상기 측정 각속도(Velocitymeasured)와 상기 N번째 각속도(Velocityn) 및 상기 과거 각속도 차이값(Vn)을 이용하여 측정 각속도 차이값(Vmeasured)을 계산하는 단계;를 더 포함하고,
    상기 측정 각속도 차이값(Vmeasured)은, 하기의 식 (11)를 통해 계산되는 것을 특징으로 하는, 드론의 자세 제어 방법.
    Vmeasured = Abs(Abs(Velocitymeasured - Velocityn) - Abs(vn)) 식 (11)
    상기 Abs는 절대값을 나타냄.
  11. 제10항에 있어서,
    상기 최종 각속도를 계산하는 단계는,
    상기 추정 각속도(Velocityestimated)와 상기 N번째 각속도(Velocityn) 및 상기 과거 각속도 차이값(Vn)을 이용하여 추정 각속도 차이값(Vestimated)을 계산하는 단계;를 더 포함하고,
    상기 추정 각속도 차이값(Vestimated)은, 하기의 식 (12)을 통해 계산되는 것을 특징으로 하는, 드론의 자세 제어 방법.
    vestimated = Abs(Abs(Velocityestimated - Velocityn) - Abs(Vn)) 식 (12)
    상기 Abs는 절대값을 나타냄.
  12. 제11항에 있어서,
    상기 최종 각속도를 계산하는 단계는,
    상기 측정 각속도 차이값(Vmeasured)이 상기 추정 각속도 차이값(Vestimated)보다 작으면, 하기의 식 (13)를 통해 상기 최종 각속도(Velocityfinal)를 계산하고, 상기 측정 각속도 차이값(Vmeasured)이 상기 추정 각속도 차이값(Vestimated)보다 크면, 하기의 식 (14)를 통해 상기 최종 각속도(Velocityfinal)를 계산하는 단계;
    를 더 포함하는, 드론의 자세 제어 방법.
    Velocityfinal = Velocitymeasured × kvelocity + Velocityestimated(1-kvelocity) (13)
    Velocityfinal = Vestimated × kvelocity + Vmeasured(1-kvelocity) 식 (14)
    상기 kvelocity는 (0 ≤ kvelocity ≤ 1)의 범위를 갖는 각속도 가중치를 나타냄.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 과거의 오일러 각과 상기 최종 오일러 각(Eulerfinal)을 이용하여 현재의 오일러 각(EulerN)을 계산하고, 상기 과거의 각속도와 상기 최종 각속도(Velocityfinal)를 이용하여 현재의 각속도(VelocityN)를 계산하는 단계;
    를 더 포함하는, 드론의 자세 제어 방법.
  14. 제13항에 있어서,
    상기 현재의 오일러 각을 계산하는 단계는,
    상기 최종 오일러 각(Eulerfinal)과 상기 과거의 오일러 각 중 N번째 오일러 각(Eulern)에 N번째 오일러 가중치(keuler_n)를 적용한 하기의 식 (15) 내지 식 (17)를 통해 상기 현재의 오일러 각(EulerN)을 특정하는 단계;
    를 포함하는, 드론의 자세 제어 방법.
    EulerN = Eulerfinal × keuler_n + Eulern(1-keuler_n) 식 (15)
    Eulern-1 = Eulern 식 (16)
    Eulern = EulerN 식 (17)
    상기 keuler_n은 (0 ≤ keuler_n ≤ 1)의 범위를 갖는 N번째 오일러 각 가중치를 나타냄.
  15. 제13항에 있어서,
    상기 현재의 각속도를 계산하는 단계는,
    상기 최종 각속도(Velocityfinal)와 상기 과거의 각속도 중 N번째 각속도(Velocityn)에 N번째 각속도 가중치(Velocity_n)를 적용한 하기의 식 (18) 내지 식 (20)을 통해 상기 현재의 각속도(VelocityN)를 특정하는 단계;
    를 더 포함하는, 드론의 자세 제어 방법.
    VelocityN = Velocityfinal × kvelocity_n + Velocityn(1-kvelocity_n) 식 (18)
    Velocityn-1 = Velocityn 식 (19)
    Velocityn = VelocityN 식 (20)
    상기 kvelocity_n은 (0 ≤ kvelocity_n ≤ 1)의 범위를 갖는 N번째 각속도 가중치를 나타냄.
KR1020170143963A 2017-10-31 2017-10-31 자세 제어 방법 및 그를 적용한 드론 KR101880940B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170143963A KR101880940B1 (ko) 2017-10-31 2017-10-31 자세 제어 방법 및 그를 적용한 드론

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170143963A KR101880940B1 (ko) 2017-10-31 2017-10-31 자세 제어 방법 및 그를 적용한 드론

Publications (1)

Publication Number Publication Date
KR101880940B1 true KR101880940B1 (ko) 2018-07-23

Family

ID=63102849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170143963A KR101880940B1 (ko) 2017-10-31 2017-10-31 자세 제어 방법 및 그를 적용한 드론

Country Status (1)

Country Link
KR (1) KR101880940B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112470091A (zh) * 2018-08-22 2021-03-09 日本电气株式会社 选择设备、选择方法和选择程序
KR20240019538A (ko) 2022-08-04 2024-02-14 세종대학교산학협력단 센서 퓨전 장치 및 이를 구비하는 멀티 센서 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060081509A (ko) * 2005-01-07 2006-07-13 (주)마이크로인피니티 입력 장치의 자세 측정 방법 및 그 장치
WO2008142757A1 (ja) * 2007-05-18 2008-11-27 Churyo Engineering Co., Ltd. 単一gpsと慣性データ(加速度,角速度)によるビークル姿勢角の計測方法
JP5610847B2 (ja) * 2010-05-26 2014-10-22 三菱電機株式会社 角速度推定装置及びコンピュータプログラム及び角速度推定方法
JP2016509211A (ja) * 2013-01-07 2016-03-24 キオニクス,インコーポレイテッド 磁力計及び加速度計を使用する角速度推定
KR20160068260A (ko) 2014-12-05 2016-06-15 부산대학교 산학협력단 실내환경에서의 쿼드로터형 무인비행체의 자세 안정화 및 고도 제어

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060081509A (ko) * 2005-01-07 2006-07-13 (주)마이크로인피니티 입력 장치의 자세 측정 방법 및 그 장치
WO2008142757A1 (ja) * 2007-05-18 2008-11-27 Churyo Engineering Co., Ltd. 単一gpsと慣性データ(加速度,角速度)によるビークル姿勢角の計測方法
JP5610847B2 (ja) * 2010-05-26 2014-10-22 三菱電機株式会社 角速度推定装置及びコンピュータプログラム及び角速度推定方法
JP2016509211A (ja) * 2013-01-07 2016-03-24 キオニクス,インコーポレイテッド 磁力計及び加速度計を使用する角速度推定
KR20160068260A (ko) 2014-12-05 2016-06-15 부산대학교 산학협력단 실내환경에서의 쿼드로터형 무인비행체의 자세 안정화 및 고도 제어

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112470091A (zh) * 2018-08-22 2021-03-09 日本电气株式会社 选择设备、选择方法和选择程序
KR20240019538A (ko) 2022-08-04 2024-02-14 세종대학교산학협력단 센서 퓨전 장치 및 이를 구비하는 멀티 센서 시스템

Similar Documents

Publication Publication Date Title
US7543392B2 (en) Motion estimation method and system for mobile body
US7860651B2 (en) Enhanced inertial system performance
EP3321631B1 (en) A inertial and terrain based navigation system
Ryu et al. Vehicle sideslip and roll parameter estimation using GPS
EP1941236B1 (en) Systems and methods for reducing vibration-induced errors in inertial sensors
CN108573271B (zh) 多传感器目标信息融合的优化方法及装置、计算机设备和记录介质
US6928382B2 (en) Method and apparatus for measuring speed of moving body using accelerometer
EP2519803B1 (en) Technique for calibrating dead reckoning positioning data
US9205742B2 (en) Apparatus and method for correcting offset of yaw rate sensor and system for controlling speed of vehicle with the said apparatus
CN113465628B (zh) 惯性测量单元数据补偿方法及***
US20050209775A1 (en) Method for determining altitude or road grade information in a motor vehicle
WO2010073300A1 (ja) 走行路推定装置、及び当該装置で用いられる走行路推定方法
CN110346824B (zh) 一种车辆导航方法、***、装置及可读存储介质
RU2762143C2 (ru) Система определения курса и углового пространственного положения, выполненная с возможностью функционирования в полярной области
EP1164356B1 (en) System and method for estimating sensor errors
KR20060048581A (ko) 네비게이션 중복성을 위한 시스템
KR101880940B1 (ko) 자세 제어 방법 및 그를 적용한 드론
JP6488860B2 (ja) 勾配推定装置及びプログラム
RU2564380C1 (ru) Способ коррекции бесплатформенной инерциальной навигационной системы
US20220289184A1 (en) Method and Device for Scheduling a Trajectory of a Vehicle
EP2538176A2 (en) Motion-based adaptive frequency estimation of a doppler velocity sensor
CN113566850B (zh) 惯性测量单元的安装角度标定方法、装置和计算机设备
KR20110108208A (ko) 주행 모드 판별법, 상기 주행 모드 판별을 이용한 항법 시스템 및 그 제공방법
KR102093743B1 (ko) 센서 융합을 이용한 차선 레벨 자동차 위치 정보 측위 시스템
KR101910515B1 (ko) 수중 운동체 항법 제어 장치 및 방법

Legal Events

Date Code Title Description
GRNT Written decision to grant