Ⅰ. 서론
현재 무인기는 주로 운용자의 임무 부하를 줄이기 위해, 주어진 항로점을 자동으로 비행하는 수준으로 운용되고 있다. 그러나, 미래의 모자이크 전 환경에서는 다수의 이종 무인기가 동적 상황에 따라 임무를 재할당하고, 비행경로를 재계획하는 무인기 임무 자율화 기술이 필수적이다.
이러한 임무 자율화 기술을 위해 미 공군 연구소에서는임무 자율화에 필요한 다양한 모듈 형태의 서비스들로 구성되어 있는 확장 가능한 소프트웨어 프레임워크인 UxAS (Unmanned x-systems Autonomy Service)[1]를 개발하였다. UxAS는 그림 1과 같이 ZeroMQ[2] 시스템을 채용하여, 별도의 쓰레드를 가진 서비스 간에 메시지를 주고 받으며 동작하며, 서비스 간 교환하는 메시지는 LMCP (Lightweight Message Construction Protocol)[3]를 이용하여 메시지를 정의하고 편집할 수 있다. UxAS는 임무 자율화를 위하여, 다양한 서비스와 태스크가 탑재되어 있는데, 서비스는 임무 자율화 기능을 담당하고, 태스크는 무인기에 부여된 임무의 정보를 관리하고 및 임무를 수행하는 기능을 담당하게 된다. UxAS에는 기본적으로 점/선/영역에 대한 정찰 임무와 ISR (Intelligence, Surveillance, Reconnaissance) 등 다양한 임무가 정의되어 있으며, 사용자가 새로운 태스크를 직접 생성할 수도 있다. 또한, 서비스를 추가함으로써 자율화 기능을 수정 및 확장할 수 있다.
그림 1. UxAS 구조
Fig. 1. Structure of UxAS
본 논문에서는 UxAS의 임무 자율화 절차를 분석하고, 운용자의 명령없이도 자율적으로 임무 자율화를 수행할 수 있도록 상황인식 서비스를 추가한 UxAS 구조를 제안한다. 본 논문의 구성은 다음과 같다. 2장에서는 UxAS의 임무 자율화 절차를 분석하고, 3장에서는 상황인식 기능을 적용한 개선된 UxAS 구조를 제시한다. 4장에서는 시뮬레이션을 통해 제안된 구조를 검증하였다.
Ⅱ. UxAS 임무 자율화 절차 분석
UxAS의 임무 자율화 수행 절차는 표1과 같이 4단계에 걸쳐 수행된다. Initialization단계에서는 비행체 제원, 수행해야할 태스크 등 임무 자율화 수행에 필요한 정보들을 초기화 한다. Assignment 단계에서는 외부로부터 수신한 자율화 수행 요청 내용에 따라, 비행경로 계산 및 태스크 재할당을 수행하는 단계이다. Implementation 단계는 태스크 재할당 결과를 바탕으로 무인기 별 최종 비행경로 계획을 생성하는 단계이다. Execution 단계는 생성된 비행경로 계획에 따라 비행을 하고, 장비를 제어하며 태스크를 수행하는 단계이다. 단계별 상세 동작 절차는 다음과 같다.
표 1. 임무 자율화 절차
Table 1. Process of Mission Autonomy
2-1 Initialization 단계
Initialization 단계는 UxAS를 초기화하는 단계이며, 그림 2와 같은 절차를 수행한다. 먼저, UxAS에 포함되어 있는 서비스들 중 임무 자율화와 관련된 서비스들을 선택하여 활성화한다. 그리고, 무인기 제원, 무인기 초기 상태, 공역(Keep In Zone)/제한구역(Keep Out Zone) 정보, 임무 영역(Operation Region) 정보, 수행해야 할 태스크 목록 등 임무 자율화와 관련된 정보들을 설정한다. 이러한 초기 정보들은 UxAS가 불러올 수 있도록, 탑재컴퓨터에 xml 파일로 저장되어 있어야 한다. 활성화된 서비스들은 초기 정보를 기반으로 초기화를 수행하게 된다. 특히, Task Manager 서비스는 태스크 목록에 있는 태스크 별로 해당하는 Task 서비스를 생성한다.
그림 2. UxAS Initialization 절차
Fig. 2. Process of Initialization in UxAS
2-2 Assignment 단계
Assignment 단계는 그림3과 같이 요청에 따라, 임무 자율화를 수행하는 단계이다. 외부로부터 자율화 수행 요청 메시지를 수신하게 되면, Automation Request Validator 서비스는 해당 자율화 수행 요청 메시지의 내용이 유효한지를 확인한다. 자율화 수행 요청 메시지 내용은 표2과 같다. Entity List는 임무에 참여 중인 무인기 목록을 의미하며, Task List 는 수행해야 할 태스크 목록을 의미한다. Task Relationships는 태스크 간 선후 관계나 배타적 관계 등을 포함한다. Operation Region은 공역과 위협/제한구역으로 구성된 임무 영역 정보를 의미한다. Automation Request Validator 서비스는 이와 같은 자율화 수행 요청 메시지 내용을 기존에 비행체가 보유한 내용과 비교하여 유효성을 검증하고, 검증 결과 이상이 없으면 검증된 자율화 요청 메시지를 발행하여 자율화 절차가 시작되도록 한다. 각 Task는 검증된 임무 자율화 수행 요청을 수신하게 되면, 태스크 종류, 위치 및 환경 정보에 따라 수행 가능한 옵션을 설정하여 그 정보를 Route Aggregator로 송신한다. Route Aggregator 서비스는 모든 태스크 옵션 정보를 수신하면, 경로 비용 행렬을 생성한다. 경로 비용 행렬의 크기는 N × N으로 N은 다음과 같이 계산된다.
그림 3. UxAS Assignment 절차
Fig. 3. Process of Assignment in UxAS
표 2. 자율화 수행 요청 메시지 구조
Table 2. Structure of Automation Request Message
\(\begin{aligned}N=v+\sum_{i=1}^{m} O p t_{i}\end{aligned}\) (1)
ν는 무인기 대수를 의미하고, m은 수행해야할 태스크의 수, Opti는 i번째 태스크의 옵션 수를 의미한다. UxAS 는 정찰 태스크에서의 진입/진출 방향 등 태스크마다 다양한 옵션을 정의할 수 있고 이에 따라 태스크의 시작/종료 지점이 달라질 수 있기 때문에, 경로 비용 또한 태스크와 태스크 간이 아닌 태스크의 옵션 간의 경로 비용의 계산이 필요하다. 빈 경로 비용 행렬이 생성되면, 행렬의 값을 채우기 위하여 각 경로 별 비행 경로 및 비용을 Route Planner 서비스에 요청하게 된다.
Route Planner 서비스는 요청받은 경로에 대해 정해진 알고리즘으로 최단 경로를 계산하고, 그 비용을 Route Aggregator 서비스로 송신한다. UxAS에서는 Visibility Graph [4]기반의 경로 계획 기법으로 2D 공간에서의 최단경로를 계산한다. 해당 기법은 장애물이 많지 않고 무인기의 고도를 일정하게 유지할 경우 적절한 방식이지만, 장애물이 많거나 3D 경로계획이 필요한 경우에는 별도의 경로계획 서비스를 개발할 필요가 있다.
Route Aggregator 서비스는 경로 비용 행렬의 값이 모두 계산되면, Task Assignment 서비스로 임무 재할당 수행을 요청하게 되고, Task Assignment 서비스는 경로 비용 행렬을 활용하여 정해진 알고리즘으로 무인기 별 임무 할당 및 수행 순서를 결정하게 된다. UxAS에서는 Branch and Bound 트리 탐색 기법[5]으로 임무 할당을 수행하게 된다. 기본적인 트리 탐색 기법은 모든 경우의 수를 탐색해서 최소 경로 비용을 가지는 해를 찾아야하기 때문에 비효율적인 반면, 해당 트리 탐색 기법은 자식노드의 최소경로비용이 현재까지 찾은 최소경로비용보다 높은 경우 해당 자식노드를 가지치기를 하여 연산시간을 줄이게 된다. 또한, 노드 탐색 횟수를 제한하여 주어진 시간 내에 부최적 해를 도출할 수 있다는 장점도 있다. UxAS의 Task Assignment 서비스에도 노드 탐색 횟수 제한을 적용한 Branch and Bound 트리 탐색 기법이 적용되어 있다.
2-3 Implementation/Execution 단계
Implementation 단계에서는 그림4와 같이 Assignment 단계에서 도출된 태스크 할당결과에 따라 자 비행체의 최종 비행경로 계획을 생성하는 단계이다. Plan Builder 서비스는 태스크 할당 결과 중, 자 비행체에 할당된 태스크를 수행 순서대로 Task 서비스에 경로계획 요청을 송신한다. 각 Task 서비스는 이전 태스크 종료지점으로부터 다음 태스크 시작지점까지의 이동경로와 태스크 수행을 위한 경로 계산을 Route Aggregator 서비스에 요청한다. 모든 태스크에 대한 경로 계산이 끝나면, Plan Builder 서비스는 경로 계산 결과를 취합하여, 자 비행체의 최종 임무 계획을 생성한다. 즉, UxAS는 Assignment 단계는 중앙 집중형으로 수행하고, Implementation 단계는 분산형으로 동작하도록 설계되어 있다. UxAS에서는 임무 자율화 수행 전에 타 무인기와 정보를 동기화한 후, 동일한 알고리즘으로 경로 계산 및 임무 할당을 수행하여 동일한 결과가 나오는 것을 보장하는 것이 특징이다.
그림 4. UxAS Implementation 절차
Fig. 4. Process of Implementation in UxAS
Execution 단계에서는 생성된 비행경로계획에 따라 실제 비행을 하도록 비행조종컴퓨터의 항로점을 갱신하고, 태스크 시작 지점에 도착하면 임무 장비를 제어하여 태스크를 수행한다.
Ⅲ. 상황인식 기능 적용을 통한 UxAS 개선 방안
3-1 UxAS의 상황인식 기능 부재
최근 무인기에 탑재된 영상 센서와 딥러닝 기술을 활용하여 온보드로 개체를 인식하고, 이를 활용하여 무인기의 자율화 수준을 높이는 연구[6]가 활발히 진행되고 있기 때문에, 임무 자율화 시스템에 자율 상황 인식 기능은 필수적이라 할 수 있다. 그러나, UxAS에서는 임무 자율화 수행 요청 메시지를 자율적으로 생성할 수 없으며, 반드시 지상체나 유인기 등 외부 운용자로부터 수신하도록 설계되어 있다. 즉, 온보드에서 개체인식 기능을 탑재하더라도 UxAS는 이를 활용하여 임무 자율화를 수행할 수 없는 구조이다. 또한, 이러한 구조에서는 운용자가 항상 무인기를 관리 감독하여야 하므로, 운용자의 임무 부하 가중을 야기하며 운용자와의 통신이 끊길 경우 기지로 귀환할 수 밖에 없어 무인기의 운용 범위가 좁아지게 된다. 본 논문에서는 이를 해결하기 위해, 상황인식 서비스를 적용한 UxAS 개선 방안을 제시한다.
3-2 동적 상황 정의
상황인식 서비스를 설계하기 위해서는 먼저, 무인기가 임무 수행 중에 인식해야할 동적 상황에 대한 정의가 필요하다. 본 논문에서는 표3와 같이 동적 상황을 정의하고, 인식 방법을 분석하였다. ‘동적 위협 발생’은 사전에 존재하지 않았던 위협이 인식된 상황을 의미하며, 위협을 회피하도록 임무를 재계획해야 하므로 동적 상황에 해당된다. 또한, 탑재 센서를 통해서 무인기가 스스로 위협을 인식할 수 있기 때문에 자율 상황 인식 대상으로 분류한다. ‘동적 태스크 완료’는 동적 태스크가 종료된 상황을 의미하는데, ‘동적 태스크’는 표적을 발견할 때까지 태스크를 계속 수행하는 표적 탐색 태스크와 같이 사전에 종료 시간을 알 수 없는 태스크를 의미한다. 임무 할당 시에 동적 태스크는 최대 수행 시간을 기준으로 계산하게 되는데, 실제로 동적 태스크가 이보다 빨리 종료될 경우, 기 계획 결과와 달라지기 때문에 임무자율화 절차를 재수행해야 할 필요가 있다. ‘태스크 변경’은 기존 태스크를 삭제하거나 새로운 태스크를 추가하는 등 수행해야 할 태스크의 정보가 변경되는 상황을 의미한다. 기존 태스크 내용은 운용자가 사전에 검증 및 요청한 것이기 때문에, ‘태스크 변경’권한은 운용자가 가지도록 해야 하므로, 자율 상황 인식 대상에서 제외한다. 마지막으로, ‘조건 미충족’ 은 태스크 수행에 전제되는 조건들이 미충족되는 상황을 의미한다. 태스크 수행에 필요한 임무 장비가 고장나거나, 바람의 영향으로 잔여 연료량이 예상보다 부족한 상황들이 ‘조건 미충족’ 상황의 예이다. 임무장비 상태나 잔여 연료량 등은 무인기가 자체 판단할 수 있기 때문에, ‘조건 미충족’은 자율 상황 인식의 대상으로 분류하였다.
표 3. 동적 상황 분류
Table 3. Categories of Dynamic Situation
3-3 제안하는 UxAS 개선 방안
본 논문에서는 그림 5와 같이 상황 인식 기능을 적용한 개선된 UxAS의 임무 자율화 수행 절차를 제안한다. Object Detector 서비스는 센서 데이터를 활용하여 위협이나 표적 등의 개체를 인식하는 기능을 수행한다. Situation Awareness 서비스는 무인기의 상태정보, 개체 인식 결과, 태스크 수행 상태 등을 종합하여 표3에서 자율 상황 인식 대상으로 분류된 ‘동적 위협 발생’, ‘동적 태스크 완료’, ‘조건 미충족’ 상황을 인식한다. Situation Awareness 서비스는 이러한 동적 상황이 발생하면 임무 자율화 수행 요청 메시지를 생성하여, 임무 자율화 절차가 진행될 수 있도록 한다. 그 이후의 절차는 기존의 UxAS를 그대로 활용하여, 운용자가 임무 자율화 수행 명령을 송신한 경우에도 동일하게 임무 자율화 수행 절차를 수행할 수 있도록 설계하였다. 다음 장절부터 무인기가 자율적으로 인식하는 동적 상황 별로 인식 및 대응 절차를 제시하도록 하겠다.
그림 5. 개선된 UxAS 임무 자율화 수행 절차
Fig. 5. Improved Process of Mission Autonomy in UxAS
3-4 동적 상황 인식 및 대응
‘동적 위협 발생’은 영상이나 RWR (Radar Warning Receiver) 등의 탑재 센서 기반의 개체 인식 기술[6,7]을 활용하여 인식 가능하다. 제안하는 UxAS 구조에서는 Object Detector가 이 기능을 담당하는데, 개체 인식 기술은 본 논문의 연구 대상이 아니므로, 본 논문에서는 Object Detector 서비스의 개체 인식 결과를 정의하고, 이를 상황 인식 서비스에서 처리하는기능을 제시한다. UxAS는 위협을 표현하기 위한 LMCP 메시지인 Keep Out Zone 메시지를 포함하고 있기 때문에, Object Detector가 위협을 인식한 경우, Keep Out Zone 메시지를 생성한다. Situation Awareness 서비스는 Object Detector 서비스로 부터 Keep Out Zone 메시지를 수신하면, 기존의 임무 영역 정보에 해당 Keep Out Zone을 추가한 Operation Region 메시지를 생성한다. 마지막으로 기존의 자율화 요청 메시지의 Operation Region 항목을 갱신하여 자율화 요청 메시지를 재발행한다.
‘동적 태스크 종료’는 태스크 수행 상태 점검을 통해 인식 가능하다. UxAS의 각 Task 서비스는 태스크가 종료될 경우에 LMCP 메시지인 Task Complete 메시지를 송신하도록 되어 있다. 따라서, Situation Awareness 서비스는 Task Complete 메시지 수신 시, 해당 Task의 종류를 확인하는 것으로 ‘동적 태스크 종료’를 인식한다. 동적 태스크가 종료된 경우, 기존의 자율화 요청 메시지의 Task List 항목에서 종료된 태스크를 제외한 후, 자율화 요청 메시지를 재발행한다.
마지막으로, ‘조건 미충족’ 상황은 무인기의 상태 정보를 모니터링하여 인식한다. UxAS는 Air Vehicle State 라는 LMCP 메시지를 포함하고 있는데, 해당 메시지에는 비행체의 현재 위치, 속도, 자세 뿐만 아니라 잔여 연료량 및 연비, 임무 장비 상태 등의 정보가 포함되어 있다. 따라서, Situation Awareness 서비스는 Air Vehicle State 메시지를 모니터링하여, 임무 장비가 고장나거나, 연료량이 부족한 경우를 인식할 수 있다. ‘조건 미충족’ 상황은 기존의 임무 자율화 수행 요청 메시지 내용을 갱신없이 재발행하면 된다.
Ⅳ. 시험 결과
4-1 시험 환경
개선된 UxAS 구조를 검증하기 위해, 미 공군연구소에서 개발한 AMASE 시뮬레이션 도구를 사용하였다. AMASE는 UxAS와 TCP/IP 통신으로 LMCP 메시지를 주고 받도록 구현되어 있다. 또한, AMASE는 임무 장비 모의와 항로점을 추종하는 Auto-pilot 모의 기능을 수행한다. 시험은 표4의 성능을 가진 Dell 사의 워크스테이션에 AMASE와 UxAS를 실행하여 제안한 구조를 검증하였다.
표 4. Dell 워크스테이션 (Dell Precision 3650) 제품 사양
Table 4. Performance specifications of the Workstation
4-2 시험 시나리오
시험 시나리오는 그림 6과 같다. 자율화에 참여할 무인기는 2대(쐐기 모양), 수행할 태스크는 12개의 포인트 정찰 태스크(녹색 사각형)로 구성하였으며, 동적 태스크 종료 상황 모의를 위해 1개의 태스크(태스크 ID 123)를 동적 태스크로 설정하였다. 임무 영역은 55x50 Km의 크기에 제한구역 2개(적색 다각형)로 설정하였다. 그리고 동적 위협 발생 모의를 위해 Object Detector 서비스가 시뮬레이션 시작 50초 뒤에 Keep Out Zone 메시지를 생성하도록 구현하였다. 장비 고장이나 연료량 모의 기능을 AMASE에서는 제공하지 않기 때문에, 시험 대상에서 제외하였다.
그림 6. AMASE를 이용한 UxAS 시뮬레이션 시나리오
Fig. 6. Scenario of UxAS simulation on AMASE의미한다.
4-3 시험 결과
그림 7은 시뮬레이션 시작 후, 운용자의 요청에 의해 임무 자율화를 수행한 결과이다. UAV #1에 좌측 영역의 6개 태스크, UAV #2에 우측 영역의 6개 태스크가 할당되었으며, 비행경로는 제한구역을 회피하도록 생성되었다.
그림 7. 초기 임무 자율화 결과
Fig. 7. Initial result of mssion autonomy
시뮬레이션 시작 50초 뒤에 좌측 상단에 동적 위협이 발생되었으며, 그림 8과 같이 무인기가 동적 위협을 회피하도록 비행경로가 수정되었다. 이는 Object Detector 서비스가 Keep Out Zone 메시지를 송신하였을 때, Situation Awareness 서비스가 이를 인식하여 임무 자율화 절차가 정상적으로 수행되었음을 시뮬레이션 시작 680초 뒤에 동적 태스크가 종료되었고, 임무 자율화가 수행되는지를 검증하였다. 자율화 수행 결과가 이전 계획과 동일하여, AMASE에 기록된 이벤트 로그를 확인하였고, 그림 9와 같이 동적 태스크가 종료되자 현재 시점에 남아 있는 태스크로 임무 자율화를 수행한 것을 확인하였다.
그림 8. 동적 위협 발생에 대한 임무 자율화 결과
Fig. 8. Result of mssion autonomy for dynamic threat
그림 9. 동적 태스크 종료에 대한 임무 자율화 요청
Fig. 9. Autonomy request for dynamic task complete
Ⅴ. 결론
본 논문에서는 다수 무인기 간 태스크를 할당하고, 비행경로를 계획하는 임무 자율화 시스템인 UxAS의 구조와 임무 자율화 수행 절차를 분석하였다. UxAS 는 Initialization, Assignment, Implementation, Execution의 4단계로 임무 자율화를 수행하며, Assignment 단계에서는 중앙집중형으로 모든 비행체에 대한 태스크 할당을 수행하며, Implementation 단계에서는 자 비행체의 비행경로 계획만을 생성하는 것이 특징이다. 또한, UxAS는 운용자의 명령이 없이는 임무 자율화를 수행하지 못하는 한계를 가지고 있는데, 본 논문에서는 이를 해결하기 위한 개선 방안을 제시하였다. 무인기가 인식해야 할 동적 상황을 정의하고, 이를 인식하기 위한 서비스를 추가하였으며, 시뮬레이션을 통해 제안한 개선 방안을 검증하였다.
미래 모자이크 전을 위해서는 이종의 무인기가 편대를 이루어 임무를 수행해야 한다. 그러나, UxAS는 Assignment 단계에서 모든 무인기가 동일한 알고리즘을 수행하기 때문에, 성능에 따라 계산 시간이 달라 동기화 문제가 발생할 수 있다. 추후 연구에서는 이러한 문제를 해결하기 위해, 분산형의 비행경로 계획 알고리즘과 태스크 할당 알고리즘을 UxAS에 적용하는 연구를 진행할 예정이다.
Acknowledgments
이 논문은 2023년 정부(방위사업청)의 재원으로 국방과학연구소의 지원을 받아 수행된 연구임(311885-912823001)
References
- Power and Control Division, Aerospace System Directorate, Air Force Research Laboratory, OpenUxAS[Internet]. Available; http://github.com/afrl-rq/OpenUxAS
- P. Hintjens, ZeroMQ: messaging for many applications, O'Reilly Media Inc., pp. 1-493, 2013.
- M. Duquette, "The common mission automation services interface," in Proceeding of AIAA Infotech@Aerospace Conference, St. Louis, pp. 1542, Mar. 2011.
- H. Kaluder, M. Brezak and I. Petrovic, "A visibility graph based method for path planning in dynamic environments," in proceeding of the 34th international Convention MIPRO, Adriatic Coast, pp. 23-27, May 2011.
- S.J. Rasmussen and T. Shima, "Tree search algorithm for assigning cooperating UAVs to multiple tasks," International Journal of Robust and Nonlinear Control, Vol. 18, No. 2, pp. 135-153, 2008. https://doi.org/10.1002/rnc.1257
- P. Mittal, A. Sharma and R. Singh, "Deep learning-based object detection in low-altitude UAV datasets: A survey," Image and Vision Computing, Vol. 104, No. 104046, pp. 1-13, December, 2020.
- Y.G. Kim, W. Chang, and T. Oh, "Development of an situation awareness software for autonomous unmanned aerial vehicles," Journal of Aerospace System Engineering, Vol. 15, No. 2, pp. 36-44, April, 2021.