KR20180071615A - 비행 시뮬레이터를 이용한 gcs 검증 시스템 및 그 방법 - Google Patents

비행 시뮬레이터를 이용한 gcs 검증 시스템 및 그 방법 Download PDF

Info

Publication number
KR20180071615A
KR20180071615A KR1020160174440A KR20160174440A KR20180071615A KR 20180071615 A KR20180071615 A KR 20180071615A KR 1020160174440 A KR1020160174440 A KR 1020160174440A KR 20160174440 A KR20160174440 A KR 20160174440A KR 20180071615 A KR20180071615 A KR 20180071615A
Authority
KR
South Korea
Prior art keywords
uav
simulator
gcs
flight
unit
Prior art date
Application number
KR1020160174440A
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 KR1020160174440A priority Critical patent/KR20180071615A/ko
Publication of KR20180071615A publication Critical patent/KR20180071615A/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes
    • G09B9/02Simulators for teaching or training purposes for teaching control of vehicles or other craft
    • G09B9/08Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
    • 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/06Rate of change of altitude or depth
    • G05D1/0607Rate of change of altitude or depth 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/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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes
    • G09B9/02Simulators for teaching or training purposes for teaching control of vehicles or other craft
    • G09B9/08Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
    • G09B9/085Special purpose teaching, e.g. alighting on water, aerial photography
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B9/00Simulators for teaching or training purposes
    • G09B9/02Simulators for teaching or training purposes for teaching control of vehicles or other craft
    • G09B9/08Simulators for teaching or training purposes for teaching control of vehicles or other craft for teaching control of aircraft, e.g. Link trainer
    • G09B9/16Ambient or aircraft conditions simulated or indicated by instrument or alarm
    • G09B9/20Simulation or indication of aircraft attitude

Landscapes

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

Abstract

본 발명은 비행 시뮬레이터를 이용한 GCS 검증 시스템 및 그 방법에 관한 것으로, 본 발명의 일실시예에 따른 비행 시뮬레이터를 이용한 GCS 검증 시스템은, 무인기 모델이 구현되어 제어되며, 무인기로부터 확인되는 무인기 정보를 제공하는 비행 시뮬레이터; 상기 무인기 정보를 이용하여, GCS(Ground Control System)로부터 전달된 자세제어 명령 또는 임무설계 명령을 상기 무인기에 대한 제어명령으로 생성하여 전달하는 가상 비행 제어부; 및 상기 비행 시뮬레이터와 상기 가상 비행 제어부 사이의 이질적인 통신환경을 연계(bridge)하여 상호 연동시키기 위한 시뮬레이터 연동부;를 포함한다.

Description

비행 시뮬레이터를 이용한 GCS 검증 시스템 및 그 방법{SYSTEM AND METHOD FOR VERIFYING GROUND CONTROL SYSTEM USNING FLIGHT SIMULATOR}
본 발명은 비행 시뮬레이터를 이용한 GCS 검증 시스템 및 그 방법에 관한 것으로, 구체적으로는 비행 시뮬레이터 내에 있는 무인기의 자세제어 및 임무설계 수행이 GCS(Ground Control System)에 의해 안전하게 운용되는지를 확인함으로써, 비행 시뮬레이터를 이용한 GCS 검증 시스템을 구축하여 GCS 모듈 개발, 모듈 검증 및 그 방법에 관한 것이다.
무인기(Unmanned Air Vehicle: UAV)는 동떨어져 있는 원격 조종원에 의해서 원격으로 조정되어 정찰, 폭격, 공중전 등 모든 공중 활동을 하는데 사용될 수 있다.
이러한 무인기를 지휘 및 통제하는 시스템으로서, 지상제어시스템(Ground Control System: GCS)은, 통신, 지도 전시, 비행체 정보 전시, 임무계획 수립 및 수행, 영상정보 전시 등으로 구성할 수 있다.
종래에는 단순히 지상제어시스템을 개발하면 충분한 검증 절차 없이 직접 무인기와 연동 및 비행 시험을 수행하였다. 이와 같은 경우에는 무인기가 자율비행을 수행할 때 지상제어시스템으로부터 비정상적인 명령을 수신하면 무인기가 불시착할 수 있다. 즉, 무인기는 자율비행을 수행하는 시스템이다. 무인기가 완벽한 시스템이라도 지상제어시스템과 연동이 불안하면 많은 문제점이 발생할 수 있다. 이처럼 무인기가 자율비행을 수행할 때 지상제어시스템과 통신두절, 기타 비상사항이 발생하면, 무인기는 불시착할 수 있다.
지상제어시스템을 개발하는 경우에는 실제 무인기와 연동하여 시스템을 개발 및 검증하기가 곤란하다. 특히, 여러 업체별로 개발 항목이 구분되는 경우에는 더욱 그러하다.
따라서, 종래에는 지상제어시스템을 개발할 때, 실제 무인기와 연동하지 않더라도 지상제어시스템의 소프트웨어 모듈 검증, 비상사항을 대비한 가상 모의시험을 통해 지상제어시스템의 안전성을 확보하는 방안이 제안될 필요성이 있다.
본 발명의 목적은 비행 시뮬레이터 내에 있는 무인기의 자세제어 및 임무설계 수행이 GCS(Ground Control System)에 의해 안전하게 운용되는지를 확인함으로써, 비행 시뮬레이터를 이용한 GCS 검증 시스템을 구축하여 GCS 모듈 개발, 모듈 검증 및 그 방법을 제공하는데 있다.
또한, 본 발명의 목적은 무인기 운용에 있어서 최적의 운용개념을 도출 및 비상사항 발생시 빠른 대응에 의해 무인기를 안전하게 회수하는 GCS 검증 시스템 및 그 방법을 제공하는데 있다.
본 발명의 일실시예에 따른 비행 시뮬레이터를 이용한 GCS 검증 시스템은, 무인기 모델이 구현되어 제어되며, 무인기로부터 확인되는 무인기 정보를 제공하는 비행 시뮬레이터; 상기 무인기 정보를 이용하여, GCS(Ground Control System)로부터 전달된 자세제어 명령 또는 임무설계 명령을 상기 무인기에 대한 제어명령으로 생성하여 전달하는 가상 비행 제어부; 및 상기 비행 시뮬레이터와 상기 가상 비행 제어부 사이의 이질적인 통신환경을 연계(bridge)하여 상호 연동시키기 위한 시뮬레이터 연동부;를 포함한다.
상기 시뮬레이터 연동부는, 상기 가상 비행 제어부와 연계 가능한 인터페이스 환경을 제공하는 가상 비행 인터페이스부; 상기 비행 시뮬레이터와 연계 가능한 인터페이스 환경을 제공하는 데이터 관리부; 및 상기 가상 비행 제어부와 상기 비행 시뮬레이터 사이에서 상호 주고받는 데이터 형식(data format)을 변환하는 메시지 핸들러;를 포함한다.
상기 메시지 핸들러는, 상기 데이터 관리부를 통해 상기 비행 시뮬레이터로부터 전달된 상기 무인기 정보를 상기 가상 비행 제어부가 해석 가능한 데이터 형식으로 변환한 후, 상기 가상 비행 인터페이스부로 전달하는 것을 특징으로 한다.
상기 메시지 핸들러는, 상기 가상 비행 인터페이스부를 통해 상기 가상 비행 제어부로부터 전달된 무인기에 대한 제어명령을 상기 비행 시뮬레이터가 해석 가능한 데이터 형식으로 변환한 후, 상기 데이터 관리부로 전달하는 것을 특징으로 한다.
상기 비행 시뮬레이터는, 상기 무인기 모델을 제어 및 연동하기 위한 플러그인 모듈(plugin module)을 제공하는 것을 특징으로 한다.
상기 시뮬레이터 연동부는, 상기 플러그인 모듈의 연동 함수를 관리하고, 상기 가상 비행 인터페이스부, 상기 데이터 관리부 및 상기 메시지 핸들러의 초기화를 관리하는 연동함수 관리부;를 더 포함한다.
상기 가상 비행 제어부는, 상기 제어명령을 상기 시뮬레이터 연동부로 전송하고, 상기 시뮬레이터 연동부로부터 상기 무인기 정보를 수신하는 시뮬레이터 연결부; 상기 GCS로부터 전달된 임무설계 명령을 저장 및 관리하는 미션 플랜부; 상기 무인기 정보를 상기 시뮬레이터 연결부로부터 전달받아, 상기 자세제어 명령 또는 상기 임무설계 명령을 상기 무인기에 대한 제어명령으로 생성하는 무인기 제어부; 및 상기 GCS로부터 전달된 상기 자세제어 명령을 상기 무인기 제어부로 전달하고, 상기 GCS로부터 전달된 상기 임무설계 명령을 상기 미션 플랜부로 전달하며, 상기 시뮬레이터 연결부로부터 전달된 상기 무인기 정보를 상기 GCS로 전달하는 GCS 연결부;를 포함한다.
상기 무인기 제어부는, 상기 무인기 정보를 이용하여 상기 무인기의 현재상태 정보를 도출하고, 상기 현재상태 정보에 상기 자세제어 명령 또는 상기 임무설계 명령을 반영하여 상기 무인기에 대한 제어명령을 생성하는 것을 특징으로 한다.
상기 무인기 제어부는, 상기 무인기 정보를 이용하여 방향 코사인 행렬(Direction Cosine Matrix: DCM)과 오일러 각도(euler angle)를 계산하여 상기 현재상태 정보를 도출하는 것을 특징으로 한다.
상기 무인기 정보는, 가속도(acceleration), 자기 센서값(magnetic), GPS 정보, 지상속도(ground velocity), 공중속도(air velocity)가 포함된다.
상기 현재상태 정보는, 롤(roll), 피치(pitch), 요(yaw), 스로틀(throttle)에 대한 오일러 각도, 진행방향, 자세가 포함되는 것을 특징으로 한다.
상기 임무설계 명령은, 위도, 경도, 고도, 지상점 넘버(waypoint number), 전체 지상점(total waypoint), 로이터(loiter) 임무설계 명령이 포함되며, 상기 로이터 임무설계 명령은 중심점(위도, 경도, 고도)과 반경에 대한 정보가 포함되는 것을 특징으로 한다.
상기 비행 시뮬레이터는, 라미나르 리서치社의 '엑스-플레인(X-Plane)', 마이크로소프트社의 '플라이트 시뮬레이터(Flight simulator)', 마이크로프로스社의 '팔콘 4.0(Falcon 4.0)', 매독스게임스社의 'IL-2 슈트로모빅(IL-2 Sturmovik)' 중 어느 하나인 것을 특징으로 한다.
상기 가상 비행 제어부와 상기 시뮬레이터 연동부는, 임베디드 시스템(embeded system)으로 구현되는 것을 특징으로 한다.
또한, 본 발명의 일실시예에 따른 비행 시뮬레이터를 이용한 GCS 검증 방법은, GCS(Ground Control System)로부터 자세제어 명령 또는 임무설계 명령이 전달되는 단계; 비행 시뮬레이터 내에 있는 무인기로부터 확인되는 무인기 정보를 이용하여 상기 자세제어 명령 또는 상기 임무설계 명령을 상기 무인기에 대한 제어명령으로 생성하는 단계; 및 상기 제어명령의 데이터 형식을 변환하여 상기 비행 시뮬레이터로 전달하여 상기 무인기를 제어하는 단계;를 포함한다.
상기 생성 단계는, 상기 무인기 정보를 이용하여 상기 무인기의 현재상태 정보를 도출하는 단계; 및 상기 현재상태 정보에 상기 자세제어 명령 또는 상기 임무설계 명령을 반영하여 상기 무인기에 대한 제어명령을 생성하는 단계;를 포함한다.
상기 전달 단계 이후에, 상기 임무설계 명령이 저장되어 관리되는 단계를 더 포함한다.
상기 도출 단계는, 상기 무인기 정보를 이용하여 방향 코사인 행렬(Direction Cosine Matrix: DCM)과 오일러 각도(euler angle)를 계산하여 상기 현재상태 정보를 도출하는 것을 특징으로 한다.
상기 제어 단계 이후에, 상기 무인기의 자세제어 또는 임무설계 수행 결과를 확인하여 전시하는 단계;를 더 포함한다.
본 발명은 비행 시뮬레이터 내에 있는 무인기의 자세제어 및 임무설계 수행이 GCS(Ground Control System)에 의해 안전하게 운용되는지를 확인함으로써, 개발중인 GCS의 소프트웨어 모듈 검증 환경을 제공할 수 있다.
또한, 본 발명은 무인기(UAV) 연동 시험 및 체계통합시험에 앞서 GCS의 소프트웨어 모듈 검증, 비상사항을 대비한 가상 모의시험을 통해 GCS의 안전성을 확보할 수 있다.
또한, 본 발명은 GCS의 자체 검증, 신뢰성 확보, 부 체계 업체 간의 업무 효율성을 높일 수 있으며, 무인기 운용에 있어서 최적의 운용개념을 도출 및 비상사항 발생시 빠른 대응에 의해 무인기를 안전하게 회수할 수 있다.
도 1은 본 발명의 일실시예에 따른 비행 시뮬레이터를 이용한 GCS 검증 장치에 대한 도면,
도 2는 GCS 검증 시스템의 데이터 흐름을 나타낸 도면,
도 3은 시뮬레이터 연동부에 대한 상세 구성을 나타낸 도면,
도 4는 가상 비행 제어부에 대한 상세 구성을 나타낸 도면,
도 5는 가상 비행 제어부와 비행 시뮬레이터 간의 데이터 흐름을 나타낸 도면,
도 6은 상기 도 5의 데이터 패킷 구성을 나타낸 도면,
도 7은 GCS의 제어명령에 따른 비행 시뮬레이터 내에 있는 무인기의 제어 상태를 나타낸 그래프,
도 8은 GCS의 임무설계에 따른 가상 비행 제어부의 동작을 나타낸 도면,
도 9는 상기 도 8에서 GCS의 임무설계 결과를 나타낸 도면,
도 10은 영상처리장치에 나타난 ICD 처리상태를 나타낸 도면,
도 11a 내지 도 11b는 영상처리장치에 나타난 무인기 상태를 나타낸 도면이다.
본 발명을 충분히 이해하기 위해서 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 설명한다. 본 발명의 실시예는 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상세히 설명하는 실시예로 한정되는 것으로 해석되어서는 안 된다. 본 실시예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되어지는 것이다. 따라서 도면에서의 요소의 형상 등은 보다 명확한 설명을 강조하기 위해서 과장되어 표현될 수 있다. 각 도면에서 동일한 부재는 동일한 참조부호로 도시한 경우가 있음을 유의하여야 한다. 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 공지 기능 및 구성에 대한 상세한 기술은 생략된다.
도 1은 본 발명의 일실시예에 따른 비행 시뮬레이터를 이용한 GCS 검증 장치에 대한 도면이다.
도 1에 도시된 바와 같이, 본 발명의 일실시예에 따른 비행 시뮬레이터를 이용한 GCS 검증 시스템(이하 "GCS 검증 시스템"이라 함, 100)은, 무인기 지상 제어 시스템(Ground Control System: GCS, 이하 "GCS"라 함)(200)을 개발할 때 실제 무인기(Unmanned Air Vehicle: UAV)를 이용하여 검증하기에 앞서, GCS(200)의 소프트웨어 모듈 검증(자세제어, 임무설계 수행 검증 등) 환경을 제공할 수 있다. 즉, GCS 검증 시스템(100)은 개발중인 GCS의 무인기 운용 적합성을 검증하는 것으로서, 비행 시뮬레이터 내에 있는 무인기의 자세제어 및 임무설계 수행이 GCS(200)에 의해 안전하게 운용되는지를 확인한다.
GCS 검증 시스템(100)은 비행 시뮬레이터(X-Plane, 110), 시뮬레이터 연동부(X-Plane Bridge, 120), 가상 비행 제어부(Virtual Flight Control Computer: VFCC, 130)를 포함할 수 있다. GCS 검증 시스템(100)은 비행 시뮬레이터(110) 내에 있는 무인기의 시험환경을 구축한 후, 해당 무인기의 자세제어 및 임무설계에 대한 시험을 수행한다.
여기서, 비행 시뮬레이터(110)는 라미나르 리서치社의 '엑스-플레인(X-Plane)', 마이크로소프트社의 '플라이트 시뮬레이터(Flight simulator)', 마이크로프로스社의 '팔콘 4.0(Falcon 4.0)', 매독스게임스社의 'IL-2 슈트로모빅(IL-2 Sturmovik)' 등이 사용될 수 있으나, 여기서는 라미나르 리서치社의 '엑스-플레인(X-Plane)'을 사용하는 경우에 대해 설명하기로 한다.
한편, 무인기의 자세제어 시험은 비행 시뮬레이터(110) 내에 있는 무인기의 쓰로틀(throttle), 롤(roll)/피치(pitch)/요(yaw)에 대한 오일러 각도(euler angle)를 GCS(200)가 제어함에 따라 무인기가 안전하게 동작하는지를 검증하는 것이며, 무인기의 임무설계 시험은 GCS(200)에 의해 기 설계된 임무(즉, 이륙/경로/착륙, 자유비행 등)에 따라 비행 시뮬레이터(110) 내에 있는 무인기가 안전하게 임무 비행을 수행하는지를 검증하는 것이다.
전술한 바와 같이, GCS(200)는 자세제어 및 임무설계 명령을 생성하여 가상 비행 제어부(130)로 전달한다. 가상 비행 제어부(130)는 GCS(200)로부터 전달된 자세제어 명령 또는 임무설계 명령을 비행 제어 알고리즘을 수행하여 무인기의 제어명령을 생성한다. 이 경우, 가상 비행 제어부(130)는 시뮬레이터 연동부(120)를 통해 무인기의 제어명령을 비행시뮬레이터(110)로 전달함에 따라, 비행 시뮬레이터(110) 내에 있는 무인기를 제어한다.
또한, GCS 검증 시스템(100)은 RS-232 프로토콜을 이더넷(Ethernet) 프로토콜로 변환하고 카메라 영상을 획득하는 영상처리장치(Video Image Processor Unit: VIPU)(미도시), 지휘 통제 차량, 지상로봇 및 무인기 각각의 정보를 통신 중계하는 통신중계기(미도시), 외부 운용자(Ground External Portable Unit: GEPU)와 연결하는 모뎀부(미도시), 미래 무인전투체계 운용환경을 제공하는 다중로봇 통합 제어 시스템(Multi-robot Control System: MCS)(미도시) 등을 포함할 수 있다.
GCS 검증 시스템(100)은 무인기 지휘/통제 차량 또는 지상 운용 통제 센터 내에 설치되어 있는 GCS(200)를 검증하는 가상의 시뮬레이션 환경을 제공한다. 여기서는 GCS(200) 대신에 외부 운용자(201)일 수도 있으며, 설명의 편의상 GCS(200)에 대해서만 설명한다. GCS(200)는 가상 비행 제어부(130)와 이더넷(ethernet) 방식으로 연결되며, 외부 운용자(201)는 가상 비행 제어부(130)와 모뎀(modem) 방식으로 연결된다.
한편, 가상 비행 제어부(130)와 GCS(200)는 시스템 인터페이스를 정의 및 제어하고, 이를 통해 애플리케이션 요구사항들을 명확하게 규정하기 위해 인터페이스 제어 문서(Interface Control Document: ICD)를 서로 주고받는다.
가상 비행 제어부(130)는 ICD에 정의된 범위 내외에 있는 데이터를 이용하여 GCS(200)의 상태를 확인한다.
먼저, 가상 비행 제어부(130)는 각종 비행체의 센서정보를 GCS(200)로 전송하여 GCS(200)의 상태를 관찰한다. 이하, [표 1]은 가상 비행 제어부(130)가 GCS(200)로 전송하는 ICD의 예를 나타낸다.
순번 항목
1 Packet Header -
2 Mode 0 = No Report, 1 = Manual,
2 = Stick Auto, 3 = Knob Auto,
4 = Point Navigation, 5 = Preprogram,
6 = Auto Recovery, 7 = Auto TakeOff,
8 = Auto Land, 9 = Ground,
10-15 = Reserved
3 AHRS Roll Rate ±300 deg/sec
4 AHRS Pitch Rate ±300 deg/sec
5 AHRSYaw Rate ±300 deg/sec
6 Mag Heading 0~360deg
7 GPS Easting km/h
8 GPS Altitude m
9 GPS Speed m/s
10 GPS Northing m
11 - 이하 생략
다음으로, GCS(200)는 자세제어 또는 임무설계 명령을 가상 비행 제어부(130)로 전송한다. 이후, 가상 비행 제어부(130)는 무인기의 자세제어 상태 및 임무수행 여부를 확인한다. 이하, [표 2]는 GCS(200)가 가상 비행 제어부(130)로 전송하는 ICD의 주기데이터의 예를 나타내며, [표 3]은 ICD의 비주기 데이터의 예를 나타낸다.
순번 항목
주기 데이터
1 Packet Header -
2 Mode 0 = No Report, 1 = Manual, 2 = Stick Auto,
3 = Knob Auto, 4 = Point Navigation,
5 = Preprogram, 6 = Auto Recovery,
7 = Auto TakeOff, 8 = Auto Land,
9 = Ground, 10-15 = Reserved
3 ThrottleCmd 0% ~100%
4 RudderCmd ±30deg
5 RollCmd ±30deg
6 PitchCmd ±30deg
7 HeadingCmd 0 ~ 360°
8 AltitudeCmd 0~10000m
9 - 이하 생략
10 CRC 32 bit CRC
순번 항목
비주기 데이터
1 Packet Header -
2 Mode 0 = Init, 1 = Point Navigation, 2 = Preprogram,
3 = Auto Recovery, 4 = Auto Takeoff, 5 = Auto Land,
7 = Reserved, 8 = User Parameter, 9-15 = Reserved
3 WayPoint No WayPoint No
4 ZonL Latitudinal Zone Letter (WGS84 UTM)
5 Zone Longitudinal Zone Number (WGS84 UTM)
6 Northing NorthingCmd (WGS84 UTM)
7 Easting EastingCmd (WGS84 UTM)°
8 Altitude AltitudeCmd (WGS84 Mean Sea Level)
9 Speed SpeedCmd
10 Heading HeadingCmd
11 - 이하 생략
12 CRC bit CRC
가상 비행 제어부(130)는 10㎐ 간격으로 ICD를 GCS(200)로 전송하고, GCS(200)는 가상 비행 제어부(130)로부터 전달된 ICD의 수신율을 확인한다. 또한, GCS(200)는 임무(경로, 이륙, 착륙 모드)를 수행할 때 10㎐ 간격으로, 스틱오토(Stick Auto)(반자동)를 수행할 때 50㎐ 간격으로 가상 비행 제어부(130)로 ICD를 전송하고, 가상 비행 제어부(130)는 GCS(100)로부터 전달된 ICD의 전시값과 수신율을 확인한다. 그리고, 가상 비행 제어부(130)와 시뮬레이터 연동부(120)간의 데이터 전송은 100㎐ 주기마다 수행된다.
전술한 바와 같이, GCS 검증 시스템(100)은 가상 비행 제어부(130)와 GCS(200) 간에 주고받는 ICD가 통신환경에서 손실되는지를 확인할 수 있다. ICD의 손실은 GCS 검증 시스템(100)에 영상처리장치(후술할 도 10 참조)를 통해 확인될 수 있다. 즉, ICD의 손실을 확인하는 과정은 업링크(uplink)에서 ICD의 범위 및 비범위까지 입력하여 패키징(packaging)한 후, 다운링크(downlink)에서 디패키징(depackaging)을 통한 출력이 정상인지를 확인하는 과정이다. 이러한 과정은 역으로도 수행된다. 여기서, 업링크는 GCS(200)로부터 가상 비행 제어부(130)로 ICD가 전송되는 경우를 나타내고, 다운링크는 그 반대되는 경우를 나타낸다.
한편, 비행 시뮬레이터(110)에서 제공하는 많은 변수 중 본 검증 환경에서 사용하는 인터페이스 항목은 다음과 같다.
먼저, 비행 시뮬레이터(110)와 시뮬레이터 연동부(120) 간의 데이터 인터페이스 항목의 정의는 아래 [표 4]과 같고, 연동모듈의 초기화는 [표 5]와 같다.
static map<DREF, XPLMDataRef> drefs;
static map<DREF, XPLMDataRef> mdrefs[PLANE_COUNT];
drefs.insert(make_pair(DREF_TrueAirspeed,XPLMFindDataRef("sim/flightmodel/position/true_airspeed")));
drefs.insert(make_pair(DREF_GroundSpeed,XPLMFindDataRef("sim/flightmodel/position/groundspeed")));
아래 [표 6]는 비행 시뮬레이터(110) 내에 있는 무인기의 자세제어 명령 중 하나인 'Throttle 제어'를 나타낸 예시이다. 시뮬레이터 연동부(120)에서 비행 시뮬레이터(110)로 전달되는 데이터를 나타낸다.
void DataManager::Set(DREF dref, float values[], int size, char aircraft)
{
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
int drefSize = XPLMGetDatavf(xdref, NULL, 0, 0);
drefSize = min(drefSize, size);
XPLMSetDatavf(xdref, values, 0, drefSize);
}

void DataManager::Set(DREF dref, float value, char aircraft)
{
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
XPLMSetDataf(xdref, value);
}

double DataManager::GetDouble(DREF dref, char aircraft)
{
const XPLMDataRef& xdref = aircraft == 0 ? drefs[dref] : mdrefs[aircraft][dref];
double value = XPLMGetDatad(xdref);
return value;
}
여기서, 'char aircraft'는 제어하려는 연동모듈의 선택을 나타내며, 'int size'는 values buffer의 크기를 나타내고, 'float values[]'는 Throttle 크기를 나타내고, 'DREF dref'는 사용된 연동모듈의 선택핸들을 나타낸다. 또한, 'XPLMSetDatavf()'는 데이터를 설정하는 함수를 나타내고, 'XPLMGetDatavf()'는 데이터 정보를 가지고 오는 함수를 나타낸다.
아울러, 아래 [표 7]과 같은 인터페이스 항목을 적용할 수 있다.
sim/flightmodel/position/Qrad
sim/flightmodel/position/Prad
sim/flightmodel/position/Rrad
sim/flightmodel/position/Q
sim/flightmodel/position/P
sim/flightmodel/position/R
sim/flightmodel/position/theta
sim/flightmodel/position/phi
sim/flightmodel/position/psi
sim/flightmodel/position/magpsi
sim/flightmodel/position/q
sim/flightmodel2/engines/throttle_used_ratio
Sim/flightmodel/position/local ax
Sim/flightmodel/position/local az
sim/flightmodel/position/latitude
sim/flightmodel/position/longitude
sim/flightmodel/position/y_agl
sim/flightmodel/position/elevation
sim/flightmodel/position/local_x
sim/flightmodel/position/local_y
sim/flightmodel/position/local_z
sim/flightmodel/position/local_vx
sim/flightmodel/position/local_vy
sim/flightmodel/position/local_vz
sim/flightmodel/engine/ENGN_thro
sim/flightmodel/position/magnetic_variation
Sim/flightmodel/position/local ay
상기 [표 7]에서 몇개의 인터페이스 항목에 대해 살펴보면,
'sim/flightmodel/position/Qrad'는 X축 방향 회전 각속도와 관련된 인터페이스 항목, 'sim/flightmodel/position/Prad'는 Y축 방향 회전 각속도와 관련된 인터페이스 항목, 'sim/flightmodel/position/Rrad'는 Z축 방향 회전 각속도와 관련된 인터페이스 항목, 'sim/flightmodel/position/Q'는 X축 방향 각속도와 관련된 인터페이스 항목, 'sim/flightmodel/position/P'는 Y축 방향 각속도와 관련된 인터페이스 항목, 'sim/flightmodel/position/R'는 Z축 방향 각속도와 관련된 인터페이스 항목, 'sim/flightmodel/position/magpsi'는 Mag 방향과 관련된 인터페이스 항목, 'sim/flightmodel/engine/ENGN_thro'는 엔진 Throttle과 관련된 인터페이스 항목이다.
전술한 인터페이스 항목은 비행 비뮬레이터(110) 내에 있는 무인기의 자세제어와 임무설계를 위한 인터페이스 항목을 나타낸다.
비행 시뮬레이터(110)는 실제 무인기에 대한 모델이 구현되어 제어되며, 무인기로부터 확인되는 무인기 정보를 제공한다. 이러한 비행 시뮬레이터(110)는 각종 비행체 모델을 제어 및 연동하기 위한 플러그인 모듈(plugin module)을 제공한다. 도 2는 GCS 검증 시스템의 데이터 흐름을 나타낸 도면이다.
비행 시뮬레이터(110)의 기본적인 연동 모듈은 'XPluginStart()'(3), 'XPluginStop()'(18), 'XPLMRegisterFlightLoopCallback()'(6)로 구성할 수 있다.
즉, 'XPluginStart()'(3)는 비행 시뮬레이터(110)와 연결을 초기화시키는 함수이고, 'XPluginStop()'(18)은 비행 시뮬레이터(110)와 연결을 종료시키는 함수이다. 그리고, 'XPLMRegisterFlightLoopCallback()'(6)은 비행 시뮬레이터(110)의 무인기 정보를 시뮬레이터 연동부(120)와 가상 비행 제어부(130)를 통해 GCS(200)로 전송하거나, GCS(200)의 자세제어 명령 또는 임무설계 명령을 가상 비행 제어부(120)와 시뮬레이터 연동부(120)를 통해 비행 시뮬레이터(110)로 전송할 때 사용하는 함수이다.
구체적으로, GCS(200)가 자세제어 명령 또는 임무설계 명령인 'Plane Mode()'(7)을 가상 비행 제어부(130)로 전송하면, 가상 비행 제어부(130)는 'Plane Mode()'(7)를 처리하여 시뮬레이터 연동부(120)로 제어명령인 'Send_command()'(9)를 전달하고, 시뮬레이터 연동부(120)는 비행 시뮬레이터(110)로 'XPLMSetDatavf()'(10)를 전달하여 자세제어 또는 임무설계 수행을 설정하도록 한다. 'XPLMSetDatavf()'(10)는 무인기에서 자세제어 또는 임무설계 수행을 설정하는 함수이다.
비행 시뮬레이터(110)는 시뮬레이터 연동부(120)로 'XPLMGetDatavf()'(12)를 전달하여 무인기 정보를 전달한다. 'XPLMGetDatavf()'(12)는 무인기에서 무인기 정보를 가지고 오는 함수이다. 시뮬레이터 연동부(120)는 무인기 정보를 처리하여 가상 비행 제어부(130)로 'Read_response()'(13)를 전달하고, 가상 비행 제어부(130)는 GCS(200)로 'Send Plane Info()'(15)를 전달하여 무인기 정보를 전달한다.
가상 비행 제어부(120)는 시뮬레이터 연동부(120)를 통해 비행 시뮬레이터(110) 내에 있는 무인기를 제어하거나, 비행 시뮬레이터(110)로부터 무인기 정보를 획득할 수 있다. 이 경우, 시뮬레이터 연동부(120)는 비행 시뮬레이터(110)와 가상 비행 제어부(120) 사이의 이질적인 통신환경을 연계(bridge)하여 상호 연동시킨다. 여기서, 비행 시뮬레이터(110)와 가상 비행 제어부(120) 사이의 이질적인 통신환경은, 가상 비행 제어부(120) 및 시뮬레이터 연동부(120)가 임베디드 시스템(embedded system)으로 구현되고, 비행 시뮬레이터(110)가 상용 시뮬레이터로 구현되기 때문에 만들어진다.
도 3은 시뮬레이터 연동부에 대한 상세 구성을 나타낸 도면이다.
도 3을 참조하면, 시뮬레이터 연동부(120)는 연동함수 관리부(121), 가상 비행 인터페이스부(122), 데이터 관리부(123), 메시지 핸들러(124)를 포함한다.
연동함수 관리부(121)는 비행 시뮬레이터(110)의 플러그인 모듈에 대한 연동함수[XPluginStart(), XPluginStop(), XPLMRegisterFlightLoopCallback() 등]를 관리한다. 또한, 연동함수 관리부(121)는 가상 비행 인터페이스부(122), 데이터 관리부(123), 메시지 핸들러(124)의 초기화를 관리한다.
가상 비행 인터페이스부(122)는 가상 비행 제어부(130)와 연계 가능한 인터페이스 환경을 제공한다. 가상 비행 인터페이스부(122)는 가상 비행 제어부(130)와 UDP(User Datagram Protocol) 통신을 통해 데이터를 주고받는다. 즉, 가상 비행 인터페이스부(122)는 가상 비행 제어부(130)로부터 전달된 무인기의 제어명령을 메시지 핸들러(124)로 전달하고, 메시지 핸들러(123)로부터 전달된 무인기 정보를 가상 비행 제어부(130)로 전달한다.
데이터 관리부(123)는 비행 시뮬레이터(110)와 연계 가능한 인터페이스 환경을 제공한다. 즉, 데이터 관리부(123)는 비행 시뮬레이터(110) 내에 있는 무인기 정보를 메시지 핸들러(124)로 전달하고, 메시지 핸들러(124)로부터 전달된 무인기 제어명령을 비행 시뮬레이터(110)로 전달한다.
메시지 핸들러(124)는 가상 비행 제어부(130)와 비행 시뮬레이터(110) 사이에서 상호 주고받는 데이터 형식(data format)을 변환한다. 이는 가상 비행 제어부(130)와 비행 시뮬레이터(110) 각기 사용되는 데이터 형식이 다르기 때문에, 어느 일측으로 데이터가 전달될 때 해당 데이터를 해석 가능한 상태의 데이터 형식으로 변환하는 과정이 필요하기 때문이다.
즉, 메시지 핸들러(124)는 데이터 관리부(123)를 통해 비행 시뮬레이터(110)로부터 전달된 무인기 정보를 가상 비행 제어부(120)가 해석 가능한 데이터 형식으로 변환한 후, 가상 비행 인터페이스부(122)로 전달한다. 가상 비행 인터페이스부(122)는 데이터 형식이 변환된 무인기 정보를 가상 비행 제어부(130)로 전달한다. 또한, 메시지 핸들러(124)는 가상 비행 인터페이스부(122)를 통해 가상 비행 제어부(130)로부터 전달된 무인기의 제어명령을 비행 시뮬레이터(110)가 해석 가능한 데이터 형식으로 변환한 후, 데이터 관리부(123)로 전달한다. 데이터 관리부(123)는 데이터 형식이 변환된 무인기의 제어명령을 비행 시뮬레이터(110)로 전달한다.
이하, 비행 시뮬레이터(110)와 시뮬레이터 연동부(120) 간에 주고받는 데이터(메시지)의 인덱스를 하기 [표 8]과 같이 정의하는 경우를 예로 나타낸다. 하기 [표 8]의 메시지 핸들러 인덱스는 가상 비행 제어부(130)와 비행 시뮬레이터(110) 사이의 데이터 패킷의 헤더로 활용되며, 시뮬레이터 연동부(120)는 데이터 패킷의 헤더 형태에 따라 데이터 처리 방식이 다르게 적용한다. 이에 대해서는 후술할 도 5 및 도 6을 참조하기로 한다.
해당 데이터에 포함되는 비행 시뮬레이터(110)의 식별정보(ID)는 하기 [표 9]와 같이 정의하는 경우를 예로 나타낸다.
메시지
핸들러
인덱스

커맨드
시뮬레이터
연동부
인덱스

의미
CONN



CONF
- 가상 비행 제어부와 시뮬레이터 연동부의 소켓(socket) 연결 요청
- 연결 응답
CTRL
- 실시간 무인기 자세제어 항목 전송
(throttle, yaw, roll, pitch)
- 실시간 무인기 자세제어 명령 수행
DATA



DATA
- 무인기 비행전 초기값 설정(Optional)
(전술한 표 2 및 3 참조)
- 상태 응답
GEGP

GEGP
- 위도/경도/고도 위치값 요청
- 위도/경도/고도 위치값 응답
GESP



GESP
- 속도(velocity)값 요청
(airspeed, groundspeed)
- 속도값 응답
GEMA



GEMA
- 자기장(magnetic field)값 요청
(heading magnetic, magnetic variation)
- 자기장(magnetic field)값 응답
GEAC



GEAC
- 로컬 가속도(acceleration in local)값 요청
(local ax, local ay, local az)
- 로컬 가속도(acceleration in local)값 응답
비행시뮬레이터 ID 의미
3 - Velocity
* theta : pitch angle
* alpha : angle of attack
* hpath : altitude
* v : input value
- 현 위치의 X 속도
v + cos((theta - alpha)*deg2rad) * sin(hpath * deg2rad))
- 현 위치의 Y 속도
v*sin((theta - alpha)*deg2rad)
- 현 위치의 Z 속도
v*cos((theta - alpha)*deg2rad)*cos(hpath*deg2rad)
17 Orientation
20 Position
25 Throttle
가상 비행 제어부(130)는 시뮬레이터 연결부(131), 미션 플랜부(132), 무인기 제어부(133), GCS 연결부(134)를 포함한다. 도 4는 가상 비행 제어부에 대한 상세 구성을 나타낸 도면이다.
시뮬레이터 연결부(131)는 시뮬레이터 연동부(120)와 UDP 통신을 수행한다. 시뮬레이터 연결부(131)는 비행 시뮬레이터(110) 내에 있는 무인기의 제어명령을 시뮬레이터 연동부(120)로 전송하고, 시뮬레이터 연동부(120)로부터 무인기 정보를 수신한다.
미션 플랜부(132)는 GCS(200)에서 설정된 임무설계 명령을 저장한다. 여기서, 임무설계 명령에는 무인기의 경로별 임무에 대한 내용으로서, 위도, 경도, 고도, 지상점 넘버(waypoint number), 전체 지상점(total waypoint), 로이터(loiter) 임무설계 명령 등을 포함한다. 로이터(loiter) 임무설계 명령은 중심점(위도, 경도, 고도)과 반경에 대한 정보가 포함된다.
미션 플랜부(132)는 무인기의 경로별 임무를 수행하는 경우에, 임무설계 명령을 무인기 제어부(133)로 제공한다. 이때, 미션 플랜부(132)는 무인기 제어부(133)의 비행 제어 알고리즘에 따라 임무설계 명령을 제공하는 방식을 달리할 수 있다. 즉, 미션 플랜부(132)는 전체 경로의 임무설계 명령을 한번에 제공하거나, 지상점과 지상점 사이의 임무 구간별로 임무설계 명령을 제공하거나, 소정의 경로의 임무설계 명령을 일정 시간 간격으로 제공할 수도 있다.
무인기 제어부(133)는 비행 제어 알고리즘을 통해 비행 시뮬레이터(110) 내에 있는 무인기를 제어하기 위한 제어명령을 생성한다.
구체적으로, 무인기 제어부(133)는 우선 시뮬레이터 연동부(120)로부터 전달된 무인기 정보를 이용하여 무인기 현재상태 정보를 도출한다. 여기서, 무인기 정보는 가속도(acceleration), 자기 센서값(magnetic), GPS 정보, 지상속도(ground velocity), 공중속도(air velocity)가 포함되고, 무인기 현재상태 정보는 오일러 각도(euler angle), 진행방향, 자세가 포함된다. 또한, 오일러 각도는 롤(roll), 피치(pitch), 요(yaw), 스로틀(throttle)이다.
다음으로, 무인기 제어부(133)는 무인기 현재상태 정보에 무인기의 자세제어 명령 또는 임무설계 명령을 반영하여 무인기를 제어하기 위한 제어명령을 생성한다. 이때, 무인기의 자세제어 명령은 GCS 연결부(134)를 통해 직접 전달되며, 무인기의 임무설계 명령은 미션 플랜부(132)를 통해 전달된다.
이와 같이 무인기의 자세제어 명령 또는 임무설계 명령으로부터 무인기의 제어명령을 생성 및 전달하여 비행 시뮬레이터(110) 내에 있는 무인기를 제어하는 일련의 과정을 '비행 제어 알고리즘'으로 통칭하기로 한다.
이하, 무인기 제어부(133)가 무인기의 현재상태 정보를 도출하기 위해, 방향 코사인 행렬(Direction Cosine Matrix: DCM)과 오일러 각도(euler angle)를 계산하는 과정에 대해 설명하기로 한다.
먼저, 무인기 제어부(133)는 시뮬레이터 연동부(120)로부터 전달된 무인기 정보를 이용하여 방향 코사인 행렬(또는 회전 행렬)를 계산한다. 그리고, 무인기 제어부(133)는 방향 코사인 행렬을 이용하여 자세, 진행방향(heading), 오일러 각도를 계산한다.
오일러 각도는 아래 수학식 1 내지 3과 같이 구할 수 있다. 즉, 수학식 1은 '롤(roll)'을 구하는 식이고, 수학식 2는 '피치(pitch)'를 구하는 식이며, 수학식 3은 '요(yaw)'를 구하는 각도이다.
Figure pat00001
Figure pat00002
Figure pat00003
여기서, 각도 단위는 라디안(radian) 단위이며,
Figure pat00004
를 만족한다.
Figure pat00005
는 지면과 관련된 프레임에서 측정한 벡터 Q이고,
Figure pat00006
는 무인기와 관련된 프레임에서 측정한 벡터 Q이다. 벡터 Q는 방향, 속도 및 가속도 성분인 벡터로서,
Figure pat00007
와 같이 나타낼 수 있다. R은 방향 코사인 행렬(DCM)(또는 회전 행렬)이다.
Figure pat00008
와 같이 나타낼 수 있다.
한편, 롤, 피치, 요의 비례-적분-미분(Proportional Integral Derivative) 수식은 하기 수학식 4와 같다.
Figure pat00009
여기서,
Figure pat00010
는 비례항 이득(gain)이고,
Figure pat00011
는 적분항 이득이고,
Figure pat00012
는 미분항 이득이다. 비례항은 현재상태에서의 오차값의 크기에 비례한 제어작용을 의미하고, 적분항은 정상상태(steady-state)에서의 오차를 없애는 작용을 의미하며, 미분항은 출력값의 급격한 변화에 제동을 걸어 오버슛(overshoot)을 줄이고 안정성(stability)을 향상하는 작용을 의미한다.
GCS 연결부(134)는 GCS(200)로부터 전달된 자세제어 명령을 무인기 제어부(133)로 전달하고, GCS(200)로부터 전달된 임무설계 명령을 미션 플랜부(132)로 전달한다. 또한, GCS 연결부(134)는 시뮬레이터 연결부(131)로부터 전달된 무인기 정보를 GCS(200)로 전달한다. 이때, GCS 연결부(134)는 GCS(200)와 UDP 통신을 수행한다.
도 5는 가상 비행 제어부와 비행 시뮬레이터 간의 데이터 흐름을 나타낸 도면이고, 도 6은 상기 도 5의 데이터 패킷 구성을 나타낸 도면이다.
시뮬레이터 연동부(120)는 데이터 패킷(10)의 헤더(header)(11)의 형태에 따라 데이터 처리 방식이 다르다. 데이터 패킷(10)의 헤더 형태는 전술한 [표 8]을 참조하기로 한다. 여기서, 데이터 패킷(10)은 헤더(11), 페이로드(payload)(12), 데이터(13)로 구성된다. 헤더(11)에는 'CTRL', 'CONN', 'DATA', 'POSI' 등과 같이 데이터 처리 방식을 나타내는 값이 포함된다. 'CTRL'은 'COMMAND' 메시지로만 사용된다. 'CONN', 'DATA', 'POSI' 등은 'ACK' 메시지, 'ACK' 메시지의 응답메시지인 'RESPONSE' 메시지에 사용된다. 이에 따라, 페이로드(12)에는 'ACK', 'RESPONSE', 'COMMAND' 메시지 성격에 따라 데이터 크기가 다르다. 여기서, 'ACK' 메시지는 'CONN(7byte)', 'AMAG(5byte)', 'POSI(7byte)', 'DATA(134byte)'이다. 'RESPONSE' 메시지는 'CONN(32byte)', 'AMAG(25byte)', 'POSI(34byte)', 'DATA(134byte)'이다. 'COMMAND' 메시지는 'CTRL(20byte)'이고, 롤/피치/요/스로틀 관련 정보가 포함된다.
도 5를 참조하면, 비행 시뮬레이터(110) 내에 있는 무인기에 실시간으로 제어명령을 전달하는 경우는, 데이터 패킷(10)의 헤더(11)에 'CTRL'이 사용된다. 시뮬레이터 연동부(120)는 가상 비행 제어부(130)로부터 전달된 제어명령을 비행 시뮬레이터(110)로 전달한다. 여기서는 'COMMAND' 메시지인 'Roll, Pitch, YAW, Throttle()'(1,2)이 비행 시뮬레이터(110)로 전달된다.
다음으로, 가상 비행 제어부(130)가 비행 시뮬레이터(110)로부터 무인기 정보를 가져오는 경우는, 데이터 패킷(10)의 헤더(11)에 'CONN', 'DATA', 'POSI' 등이 사용될 수 있다.
도 5를 참조하면, 가상 비행 제어부(130)는 'ACK' 메시지를 구성하여 시뮬레이터 연동부(120)로 전달한다. 시뮬레이터 연동부(120)는 'ACK' 메시지를 비행 시뮬레이터(110)로 요청한 후, 비행 시뮬레이터(110)로부터 'RESPONSE' 메시지를 응답받아 가상 비행 제어부(130)로 전달한다. 여기서는 'ACK' 메시지가 'Ack: GPS, Magnetic, Accelation, Speed()'(3), 'Ack()'(4)이고, 'RESPONSE' 메시지가 'Response()'(5), 'Response: GPS, Magnetic, Accelation, Speed()'(6)이다.
도 7은 GCS의 제어명령에 따른 비행 시뮬레이터 내에 있는 무인기의 제어 상태를 나타낸 그래프이다.
도 7은 GCS(200)가 2가지 경우의 제어명령을 통해 비행 시뮬레이터(110) 내에 있는 무인기를 제어하는 경우를 나타낸다. 이와 같이, GCS 검증 시스템(100)의 비행 시뮬레이터(110) 또는 가상 비행 제어부(130)를 통해 무인기 제어 상태를 확인할 수 있다. 이때, GCS(200)는 쓰로틀, 롤, 피치, 요에 변화를 준다. 먼저, 쓰로틀, 요를 고정하고, 롤, 피치를 동시에 변경하는 경우(A 경우)에는, 일정 시간 이후에 롤, 피치가 일정하게 수렴되는 것을 알 수 있다. 다음으로, 쓰로틀, 피치를 고정하고, 요, 롤을 동시에 변경하는 경우(B 경우)에는, 일정 시간 이후에 요, 롤이 일정하게 수렴되는 것을 알 수 있다.
도 8은 GCS의 임무설계에 따른 가상 비행 제어부의 동작을 나타낸 도면이고, 도 9는 상기 도 8에서 GCS의 임무설계 결과를 나타낸 도면이다.
가상 비행 제어부(130)는 GCS(200)를 통해 운용자에 의해 설정된 임무설계 명령을 저장한다. 가상 비행 제어부(130)의 미션 플랜부(132)는 임무설계 명령을 저장한다. 임무설계 명령에는 지상점 1(WP1), 지상점 2(WP2) 등의 비행경로의 지상점 순서로 저장된다. 지상점은 무인기의 임무비행할 때 무인기의 진행방향을 결정하는 요인이다. 가상 비행 제어부(130)의 무인기 제어부(133)는 무인기의 진행 방향을 결정하고, 무인기의 진행 방향에 따른 제어명령(Roll, Yaw, Throttle, Pitch)를 생성하여, 시뮬레이터 연동부(120)를 통해 비행 시뮬레이터(110)로 전달한다.
비행 시뮬레이터(110)는 시뮬레이터 연동부(120)를 통해 가상 비행 제어부(130)로 무인기 정보를 전달하는 피드백을 수행한다.
가상 비행 제어부(130)는 비행 시뮬레이터(110)의 피드백값, n번째 지상점(WPn)의 거리 및 방향을 계산하면서 목표지점에 도착한다.
가상 비행 제어부(130)는 현재 무인기의 위치와 지상점(WPn)의 위치간 거리 오차를 20m 이내로 접근하는지를 확인하여 목표지점에 도착하는지를 판단한다. 가상 비행 제어부(130)는 무인기와 지상점 사이의 거리가 20m 이상이면, 20m 이내가 될 때까지 거리 및 방향을 반복하여 계산한다.
가상 비행 제어부(130)는 무인기가 목표지점에 도착하는 것으로 판단되면, 다음 목표지점의 각도와 거리를 계산하여 임무비행을 계속 수행한다. 운용자는 비행 시뮬레이터(110)의 영상을 통해 지도상에 무인기가 임무비행을 정확히 수행하는지를 관찰할 수 있다. 착륙과 이륙은 지상점이 하나라는 것 이외에는 다른 지상점의 도달방법과 동일하다.
도 9를 참조하면, 비행 시뮬레이터(110) 내에 있는 무인기는 이륙 이후에, 지상점 1(WP1)부터 지상점 5(WP5)까지의 임무비행을 수행한다.
전술한 바와 같이, GCS(200)에서 임무설계 이후에, 이륙 실행 명령이 수행되면, 무인기는 이륙점에서 이륙을 수행하고, 무인기가 지정된 고도까지 상승하면, 경로 비행 명령을 수행한다.
한편, 사용자는 GCS(200)으로부터 자세제어 명령을 수령하는 경우에, 무인기의 자세동작 여부를 비행 시뮬레이터(110)를 통하여 검증할 수 있다. 또한, 사용자는 ICD가 10Hz 또는 50Hz 단위로 주고받는지를 영상처리장치 화면을 통해 관찰할 수 있다. 도 10은 영상처리장치에 나타난 ICD 처리상태를 나타낸 도면이다.
또한, 사용자는 무인기가 오차 없이 지도 위에 전시되는지를 관찰할 수 있다. 도 11a 내지 도 11b는 영상처리장치에 나타난 무인기 상태를 나타낸 도면이다. 즉, 사용자는 비행 시뮬레이터(110) 내에 있는 무인기가 지상에 있는 경우와 비행중인 경우를 구분하여, GCS(200)에서 오토스틱 모드를 선택한 후, 조이스틱(joystick)을 이용하여 비행 시뮬레이터(110) 내에 있는 무인기의 제어상태를 관찰할 수 있다.
이상에서 설명된 본 발명의 실시예는 예시적인 것에 불과하며, 본 발명이 속한 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 잘 알 수 있을 것이다. 그럼으로 본 발명은 상기의 상세한 설명에서 언급되는 형태로만 한정되는 것은 아님을 잘 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. 또한, 본 발명은 첨부된 청구범위에 의해 정의되는 본 발명의 정신과 그 범위 내에 있는 모든 변형물과 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.
110 : 비행 시뮬레이터 120 : 시뮬레이터 연동부
121 : 연동함수 관리부 122 : 가상 비행 인터페이스부
123 : 데이터 관리부 124 : 메시지 핸들러
130 : 가상 비행 제어부 131 : 시뮬레이터 연결부
132 : 미션 플랜부 133 : 무인기 제어부
134 : GCS 연결부 200 : GCS(Ground Control System)

Claims (22)

  1. 무인기 모델이 구현되어 제어되며, 무인기로부터 확인되는 무인기 정보를 제공하는 비행 시뮬레이터;
    상기 무인기 정보를 이용하여, GCS(Ground Control System)로부터 전달된 자세제어 명령 또는 임무설계 명령을 상기 무인기에 대한 제어명령으로 생성하여 전달하는 가상 비행 제어부; 및
    상기 비행 시뮬레이터와 상기 가상 비행 제어부 사이의 이질적인 통신환경을 연계(bridge)하여 상호 연동시키기 위한 시뮬레이터 연동부;
    를 포함하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  2. 제 1 항에 있어서,
    상기 시뮬레이터 연동부는,
    상기 가상 비행 제어부와 연계 가능한 인터페이스 환경을 제공하는 가상 비행 인터페이스부;
    상기 비행 시뮬레이터와 연계 가능한 인터페이스 환경을 제공하는 데이터 관리부; 및
    상기 가상 비행 제어부와 상기 비행 시뮬레이터 사이에서 상호 주고받는 데이터 형식(data format)을 변환하는 메시지 핸들러;
    를 포함하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  3. 제 2 항에 있어서,
    상기 메시지 핸들러는,
    상기 데이터 관리부를 통해 상기 비행 시뮬레이터로부터 전달된 상기 무인기 정보를 상기 가상 비행 제어부가 해석 가능한 데이터 형식으로 변환한 후, 상기 가상 비행 인터페이스부로 전달하는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  4. 제 2 항에 있어서,
    상기 메시지 핸들러는,
    상기 가상 비행 인터페이스부를 통해 상기 가상 비행 제어부로부터 전달된 무인기에 대한 제어명령을 상기 비행 시뮬레이터가 해석 가능한 데이터 형식으로 변환한 후, 상기 데이터 관리부로 전달하는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  5. 제 2 항에 있어서,
    상기 비행 시뮬레이터는,
    상기 무인기 모델을 제어 및 연동하기 위한 플러그인 모듈(plugin module)을 제공하는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  6. 제 5 항에 있어서,
    상기 시뮬레이터 연동부는,
    상기 플러그인 모듈의 연동 함수를 관리하고, 상기 가상 비행 인터페이스부, 상기 데이터 관리부 및 상기 메시지 핸들러의 초기화를 관리하는 연동함수 관리부;를 더 포함하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  7. 제 1 항에 있어서,
    상기 가상 비행 제어부는,
    상기 제어명령을 상기 시뮬레이터 연동부로 전송하고, 상기 시뮬레이터 연동부로부터 상기 무인기 정보를 수신하는 시뮬레이터 연결부;
    상기 GCS로부터 전달된 임무설계 명령을 저장 및 관리하는 미션 플랜부;
    상기 무인기 정보를 상기 시뮬레이터 연결부로부터 전달받아, 상기 자세제어 명령 또는 상기 임무설계 명령을 상기 무인기에 대한 제어명령으로 생성하는 무인기 제어부; 및
    상기 GCS로부터 전달된 상기 자세제어 명령을 상기 무인기 제어부로 전달하고, 상기 GCS로부터 전달된 상기 임무설계 명령을 상기 미션 플랜부로 전달하며, 상기 시뮬레이터 연결부로부터 전달된 상기 무인기 정보를 상기 GCS로 전달하는 GCS 연결부;
    를 포함하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  8. 제 7 항에 있어서,
    상기 무인기 제어부는,
    상기 무인기 정보를 이용하여 상기 무인기의 현재상태 정보를 도출하고, 상기 현재상태 정보에 상기 자세제어 명령 또는 상기 임무설계 명령을 반영하여 상기 무인기에 대한 제어명령을 생성하는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  9. 제 8 항에 있어서,
    상기 무인기 제어부는, 상기 무인기 정보를 이용하여 방향 코사인 행렬(Direction Cosine Matrix: DCM)과 오일러 각도(euler angle)를 계산하여 상기 현재상태 정보를 도출하는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  10. 제 9 항에 있어서,
    상기 무인기 정보는, 가속도(acceleration), 자기 센서값(magnetic), GPS 정보, 지상속도(ground velocity), 공중속도(air velocity)가 포함되는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  11. 제 9 항에 있어서,
    상기 현재상태 정보는, 롤(roll), 피치(pitch), 요(yaw), 스로틀(throttle)에 대한 오일러 각도, 진행방향, 자세가 포함되는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  12. 제 7 항에 있어서,
    상기 임무설계 명령은, 위도, 경도, 고도, 지상점 넘버(waypoint number), 전체 지상점(total waypoint), 로이터(loiter) 임무설계 명령이 포함되며, 상기 로이터 임무설계 명령은 중심점(위도, 경도, 고도)과 반경에 대한 정보가 포함되는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  13. 제 2 항에 있어서,
    상기 비행 시뮬레이터는, 라미나르 리서치社의 '엑스-플레인(X-Plane)', 마이크로소프트社의 '플라이트 시뮬레이터(Flight simulator)', 마이크로프로스社의 '팔콘 4.0(Falcon 4.0)', 매독스게임스社의 'IL-2 슈트로모빅(IL-2 Sturmovik)' 중 어느 하나인 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  14. 제 1 항에 있어서,
    상기 가상 비행 제어부와 상기 시뮬레이터 연동부는, 임베디드 시스템(embeded system)으로 구현되는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 시스템.
  15. GCS(Ground Control System)로부터 자세제어 명령 또는 임무설계 명령이 전달되는 단계;
    비행 시뮬레이터 내에 있는 무인기로부터 확인되는 무인기 정보를 이용하여 상기 자세제어 명령 또는 상기 임무설계 명령을 상기 무인기에 대한 제어명령으로 생성하는 단계; 및
    상기 제어명령의 데이터 형식을 변환하여 상기 비행 시뮬레이터로 전달하여 상기 무인기를 제어하는 단계;
    를 포함하는 비행 시뮬레이터를 이용한 GCS 검증 방법.
  16. 제 15 항에 있어서,
    상기 생성 단계는,
    상기 무인기 정보를 이용하여 상기 무인기의 현재상태 정보를 도출하는 단계; 및
    상기 현재상태 정보에 상기 자세제어 명령 또는 상기 임무설계 명령을 반영하여 상기 무인기에 대한 제어명령을 생성하는 단계;
    를 포함하는 비행 시뮬레이터를 이용한 GCS 검증 방법.
  17. 제 15 항에 있어서,
    상기 전달 단계 이후에, 상기 임무설계 명령이 저장되어 관리되는 단계를 더 포함하는 비행 시뮬레이터를 이용한 GCS 검증 방법.
  18. 제 16 항에 있어서,
    상기 도출 단계는,
    상기 무인기 정보를 이용하여 방향 코사인 행렬(Direction Cosine Matrix: DCM)과 오일러 각도(euler angle)를 계산하여 상기 현재상태 정보를 도출하는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 방법.
  19. 제 15 항에 있어서,
    상기 제어 단계 이후에,
    상기 무인기의 자세제어 또는 임무설계 수행 결과를 확인하여 전시하는 단계;
    를 더 포함하는 비행 시뮬레이터를 이용한 GCS 검증 방법.
  20. 제 15 항에 있어서,
    상기 무인기 정보는, 가속도(acceleration), 자기 센서값(magnetic), GPS 정보, 지상속도(ground velocity), 공중속도(air velocity)가 포함되는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 방법.
  21. 제 16 항에 있어서,
    상기 현재상태 정보는, 롤(roll), 피치(pitch), 요(yaw), 스로틀(throttle)에 대한 오일러 각도, 진행방향, 자세가 포함되는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 방법.
  22. 제 16 항에 있어서,
    상기 임무설계 명령은, 위도, 경도, 고도, 지상점 넘버(waypoint number), 전체 지상점(total waypoint), 로이터(loiter) 임무설계 명령이 포함되며, 상기 로이터 임무설계 명령은 중심점(위도, 경도, 고도)과 반경에 대한 정보가 포함되는 것을 특징으로 하는 비행 시뮬레이터를 이용한 GCS 검증 방법.
KR1020160174440A 2016-12-20 2016-12-20 비행 시뮬레이터를 이용한 gcs 검증 시스템 및 그 방법 KR20180071615A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160174440A KR20180071615A (ko) 2016-12-20 2016-12-20 비행 시뮬레이터를 이용한 gcs 검증 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160174440A KR20180071615A (ko) 2016-12-20 2016-12-20 비행 시뮬레이터를 이용한 gcs 검증 시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR20180071615A true KR20180071615A (ko) 2018-06-28

Family

ID=62780497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160174440A KR20180071615A (ko) 2016-12-20 2016-12-20 비행 시뮬레이터를 이용한 gcs 검증 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR20180071615A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113112885A (zh) * 2021-02-23 2021-07-13 昆明理工大学 一种高速水流虚拟仿真教学实验平台及其实现方法
KR20210126865A (ko) * 2020-04-13 2021-10-21 한국항공우주산업 주식회사 무인항공기용 영상감지기 모의구동 시스템 및 방법
US11312506B2 (en) 2019-03-21 2022-04-26 Performance Drone Works Llc Autonomous quadcopter piloting controller and debugger
US11409291B2 (en) * 2019-03-21 2022-08-09 Performance Drone Works Llc Modular autonomous drone
US11455336B2 (en) 2019-03-21 2022-09-27 Performance Drone Works Llc Quadcopter hardware characterization and simulation
US11721235B2 (en) 2019-03-21 2023-08-08 Performance Drone Works Llc Quadcopter sensor noise and camera noise recording and simulation

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11312506B2 (en) 2019-03-21 2022-04-26 Performance Drone Works Llc Autonomous quadcopter piloting controller and debugger
US11409291B2 (en) * 2019-03-21 2022-08-09 Performance Drone Works Llc Modular autonomous drone
US11455336B2 (en) 2019-03-21 2022-09-27 Performance Drone Works Llc Quadcopter hardware characterization and simulation
US11721235B2 (en) 2019-03-21 2023-08-08 Performance Drone Works Llc Quadcopter sensor noise and camera noise recording and simulation
KR20210126865A (ko) * 2020-04-13 2021-10-21 한국항공우주산업 주식회사 무인항공기용 영상감지기 모의구동 시스템 및 방법
CN113112885A (zh) * 2021-02-23 2021-07-13 昆明理工大学 一种高速水流虚拟仿真教学实验平台及其实现方法

Similar Documents

Publication Publication Date Title
KR20180071615A (ko) 비행 시뮬레이터를 이용한 gcs 검증 시스템 및 그 방법
AU2018204057B2 (en) Aircrew automation system and method with integrated imaging and force sensing modalities
Brunner et al. The urban last mile problem: Autonomous drone delivery to your balcony
Mebarki et al. Nonlinear visual control of unmanned aerial vehicles in GPS-denied environments
EP2452238B1 (en) Systems and methods for remotely collaborative vehicles
Campbell et al. Cooperative tracking using vision measurements on seascan UAVs
US9443436B2 (en) System for testing of autonomy in complex environments
Sanders et al. Hierarchical control of small autonomous helicopters
Loianno et al. Smartphones power flying robots
CN114063474A (zh) 一种无人机集群的半物理仿真系统
Moffatt et al. Obstacle detection and avoidance system for small UAVs using a LiDAR
US20170146995A1 (en) System and method of controlling autonomous vehicles
CN110955261A (zh) 一种基于ros的固定翼无人机自动驾驶仪的仿真方法
US10565783B2 (en) Federated system mission management
KR20190104940A (ko) 무인 비행 로봇의 컨트롤러
CN109891347A (zh) 用于模拟可移动物体状态的方法和系统
Elfes et al. Air-ground robotic ensembles for cooperative applications: Concepts and preliminary results
Bingler et al. Dual radio autopilot system for lightweight, swarming micro/miniature aerial vehicles
Ladosz et al. A generic ros based system for rapid development and testing of algorithms for autonomous ground and aerial vehicles
JP2010049051A (ja) シミュレーションシステム
Chowdhary et al. Integrated guidance navigation and control for a fully autonomous indoor uas
Milionis A framework for collaborative quadrotor-ground robot missions
Wynn Visual servoing for precision shipboard landing of an autonomous multirotor aircraft system
AbdElHamid et al. Development of UAV teleoperation virtual environment based-on GSM networks and real weather effects
Holmes Vision-Based Relative Deck State Estimation Used with Tau Based Landings

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application