IndexFiguresTables Table 1 Existing Message Model Specification Table 2 GlMsgStructure Example Table 3 Variable Example Table 4 Additional Properties for Periodic Message Description Table 5 Examples of Knowledge-based Command Message Table 6 Example of Drone Command Message Format Table 7 Example of Drone Status Message Format Table 8 Example of Drone Status Message Model Table 9 Result of Receiving Drone Command Message During Reconnaissance Mission Table 10 Case 1 Results of Receiving Drone Status Messages During a Reconnaissance Mission Table 11 Case 2 Results of Receiving Drone Status Messages During a Reconnaissance Mission (Data Redundancy Response Method Not Applied) Table 12 Message Throughput Comparison |
Model-Based Intelligent Framework Interface for UAV Autonomous Mission |
Description | Type | Arity | |
---|---|---|---|
Name | Name of message | String | 1 |
ID | Message ID | String | 1 |
GlMsgStructure | Structure of Knowledge message | GlMessage | 1 |
ModuleMsgStructure | Structure of external module’s message | ModuleMes sage | 1 |
Type | producer/consumer type | String | 1 |
Variable | Variable list in message | Variable[] | 1 or more |
ModuleMsgStructure는 외부 모듈(로봇 모듈, 무인기 모듈 등) 메시지의 구조로, 외부 모듈 메시지를 구성하는데 필요한 정보를 포함한다.
Type은 메시지 활용 객체 시점에서의 메시지 producer/ consumer 타입이다.
Variable은 메시지 내 포함된 데이터 변수들의 정보 목록이다. 변수명과 타입 등의 정보를 포함되며 Table 3은 그 예시를 나타낸 것이다.
Table 4는 기존 모델에 기존 메시지 모델에 주기성 메시지 서술을 위해 추가하는 프로퍼티인 ProtocolType과 Frequency이다.
ProtocolType은 주기성 메시지와 비주기성 메시지를 구분하기 위한 프로퍼티이다. Cyclic이나 Asynchronous 중 하나의 값이 사용된다.
Frequency는 주기성 메시지의 송신 주기가 서술될 프로퍼티이다. 위의 ProtocolType 프로퍼티의 값이 Cyclic인 주기성 메시지인 경우에만 사용된다.
Table 4.
Description | type | Arity | |
---|---|---|---|
ProtocolType | Cyclic or Asynchronous | String | 1 |
Frequency | Periodicity Transmission cycle of messages | Integer | 0 or 1 |
4.2 메시지 버퍼 기반 주기적 및 비동기적 데이터 교환 방법
기존 서비스 로봇-지능형 프레임워크 연동을 위한 인터페이스 구현 방식은 지능형 프레임워크와 무인기 내 통신 방식의 차이에 대한 고려가 없어 상이한 통신 방식에 대한 상호운용성이 제공되지 않았다. 지능형 프레임워크 내에선 관련성 높은 정보끼리 묶은 지식정보 단위의 메시지를 비동기적으로 교환하는 통신 방식을 사용하고 있으며, Table 5는 지능형 프레임워크 내에서 사용되는 메시지의 예시이다.
무인기 내에선 무선 통신의 효율을 이유로 여러 종류의 정보를 포함하는 비교적 큰 단위의 메시지를 주기적으로 교환하는 통신 방식을 사용하고 있다. Table 6은 무인기 통신에 필요한 데이터 목록을 나타낸 것이다.
Table 5.
Name | Expression |
---|---|
SetMode | (SetMode $mode) |
SetRotation | (SetRotation $pitch $roll $yaw) |
SetVerticalThrottle | (SetVerticalThrottle $verticalThrottle) |
Table 6.
No | Variable Name | Type | Byte Size |
---|---|---|---|
1 | id | Int | 4 |
2 | mode | Int | 4 |
3 | pitch | Float | 4 |
4 | roll | Float | 4 |
5 | yaw | Float | 4 |
6 | verticalThrottle | Foat | 4 |
무인기의 모드를 변환하기 위해서는 지능형 프레임워크 내에서는 위 표와 같이 SetMode 메시지를 통해 모드 값 하나만 전달되지만, 실제로 무인기에게 전달되는 메시지에는 모드값 뿐만 아니라 pitch, roll 등과 같이 다른 데이터가 함께 전달되어야 한다.
이러한 지능형 프레임워크 내 프로토콜과 무인기 통신 프로토콜 간의 차이점으로 인해 프레임워크에서 무인기 모듈로 명령 메시지를 전달할 때 큰 단위의 메시지를 주기적으로 생성하고 송신할 방법이 필요하고, 주기적으로 수신되는 메시지로 인해 발생하는 데이터 중복을 대처하는 방법이 필요하다.
본 논문에선 이를 위해 메시지 버퍼를 기반으로 하는 주기적 및 비동기적 데이터 간의 교환 방법을 제안한다.
먼저 무인기가 요구하는 큰 단위의 메시지를 주기적으로 생성하기 위해선 주기성 메시지의 형식과 메시지에 포함될 실제 데이터를 알아야 한다. 따라서 주기성 메시지에 포함될 실제 데이터들이 저장될 공간이 필요하고, 데이터들이 작업 관리자 등의 지능형 에이전트의 지식정보 명령으로 갱신될 수 있어야 한다.
이를 위해 메시지 생성에 필요한 데이터를 저장하는 메시지 버퍼를 활용하는 모듈형 어댑터를 인터페이스에 구성하는 방법을 제안한다. Fig. 9와 같이 모듈형 어댑터는 메시지 모델을 기반으로 메시지 버퍼를 생성하고 관리하여 주기성 메시지 프로토콜과의 연동을 제공한다.
메시지 버퍼는 메시지 모델 명세로부터 해석된 메시지 모델을 기반으로 생성되며, 메시지가 포함하는 모든 데이터가 메시지별로 저장된다. 주기성 메시지의 생성은 생성하려는 메시지의 메시지 버퍼 내의 데이터를 통해 이루어진다. 메시지 버퍼 데이터의 갱신은 지식정보 명령 메시지를 통해 이루어지며, 지식정보 명령 메시지가 포함하는 데이터 부분만이 갱신된다.
위와 같은 방식으로 관리되는 메시지 버퍼를 통해 완성된 주기성 메시지를 생성할 수 있으므로, 인터페이스에서 주기성 메시지 별로 메시지 모델의 Frequency 프로퍼티를 통해 메시지 별 주기에 맞게 주기성 메시지를 생성하고 송신하는 것이 가능해진다.
다음으로, 주기성 상태 메시지 수신 과정에서 발생하는 데이터 중복에 대처하기 위해선 수신된 메시지 내에서 지능형 에이전트가 필요로 하는 변화된 데이터만을 지식정보로 생산하는 기능이 필요하다. 소형화 및 경량화가 중요한 무인기의 특성상, 데이터 중복을 줄여 지능형 프레임워크의 메시지 처리량을 최적화할 필요가 있다.
이를 위해 위에서 소개한 메시지 버퍼를 기반으로 Fig. 10과 같이 무인기 상태 메시지 내에서 변화된 데이터를 지식정보로 생산하는 모듈형 어댑터의 구성 방안을 제안한다.
5. 실 험
5.1 실험 개요
본 논문에선 무인기-지능형 프레임워크의 연동을 위해 주기성 메시지를 서술하기 위해 확장된 메시지 모델과 이를 기반으로 작동하는 메시지 버퍼 기반 주기적 및 비동기적 데이터 교환 방법을 제안하였다.
이를 검증하기 위해 실제 무인기를 활용한 실험을 설계하였다. 무인기 정찰 임무 시나리오를 설계하고, 해당 임무를 무인기가 자율적으로 수행하는 과정을 분석하였다.
시험용 무인기로는 DJI Air 2S 기종을 사용하였으며, 제조사인 DJI에서 제공하는 무인기용 SDK[8]를 활용해 명령/상태 메시지를 구성하고 무인기와 통신하였다.
먼저 주기성 메시지 프로토콜에 대한 모델의 표현력을 검증하기 위해 정찰 임무 시나리오의 실제 무인기 명령 및 상태 메시지를 본 논문에서 제안하는 모델로 서술하였다.
다음으로 주기성 메시지 프로토콜에 대한 상호운용성을 검증하기 위해 시험용 무인기가 임무를 수행하는 과정에서의 메시지 송수신 상태를 분석하였다. 우선 명령 송신 과정에서 주기성 메시지의 생성 및 송신, 주기성 메시지 데이터의 갱신이 제대로 이루어지는지 확인하였다. 그리고 상태 수신 과정에서 메시지 버퍼를 이용해 변화된 데이터만을 지식정보로 생산하는 경우와 모든 데이터를 지식정보로 생산하는 경우의 지식정보 메시지 처리량을 비교하여 데이터 중복에 대한 대처 성능을 검증하였다.
5.2 실험 환경
지능형 프레임워크와 무인기의 연동을 검증하기 위해 실제 무인기를 활용한 실험을 구성하였다. 실험을 위해 선정한 시험용 무인기는 DJI에서 제조한 DJI Air 2S 기종이다. 제조사 DJI에선 무인기와의 통신을 위한 인터페이스를 스마트기기용 SDK를 통해 제공한다. 지능형 프레임워크에서 무인기에 제어 명령을 보내고 상태정보를 받아 보기 위해 스마트기기용 SDK를 기반으로 통신 중계용 Mobile Application을 개발하여 다음 그림과 같은 방식으로 무인기와의 통신을 구현하였으며, 그 통신 과정은 Fig. 11과 같다.
Table 7.
No | Variable Name | Type | Byte Size |
---|---|---|---|
1 | id | Int | 4 |
2 | latitude | String | 4 |
3 | longitude | String | 4 |
4 | altitude | Float | 4 |
5 | pitch | Double | 4 |
6 | roll | Double | 4 |
7 | yaw | Double | 4 |
8 | takeoffed | Int | 4 |
9 | gpsSignalLevel | String | 4 |
10 | flightTimeInSeconds | Int | 4 |
무인기 명령 및 상태 메시지는 스마트기기용 SDK의 인터페이스를 기반으로 Table 7과 같이 설계하고, 이를 본문에서 제안한 확장된 메시지 모델로 서술하였다.
무인기가 수행할 정찰 임무 시나리오는 Fig. 12와 같이 설계하였다.
정찰 임무 시나리오에서 무인기는 이륙 후 임무 지역으로 이동하여 임무 지역을 정찰한다. 마주치는 대상에 따라 회피기동 등의 적절한 행동을 자율적으로 수행하고, 기지에 도착했다고 판단하면 착륙한다.
5.3 실험 결과
먼저 본 논문에서 제시된 확장된 메시지 모델 명세를 통해 서술된 메시지 모델을 확인한다. Table 8은 DJI 스마트기기용 SDK에서 제시된 드론 메시지 프로토콜을 기반으로 작성된 메시지 모델이다.
주기성 메시지의 지식정보 메시지 구조와 무인기 메시지 구조에 더해 Frequency 및 주기/비동기 프로퍼티를 서술하여 메시지 활용에 필요한 정보를 온전하게 서술하였다. 이를 통해 주기성 메시지 프로토콜에 대한 메시지 모델의 표현력을 검증하였다.
다음으로 정찰 임무 수행 과정에서의 지능형 프레임워크와 무인기 간의 명령 및 상태 메시지 교환 결과를 확인한다. 이를 통해 지능형 프레임워크 인터페이스의 주기성 메시지 프로토콜과 지식정보 기반 데이터 교환 방식의 상호운용성 제공 여부를 검증한다.
먼저 지능형 프레임워크 인터페이스를 통한 무인기 명령 메시지 송신 결과는 다음 Table 9와 같다.
주기적으로 송신되는 하나의 무인기 상태 메시지를 통해 세가지의 지식정보(DroneStatus, DroneLocation, DroneAttitude)를 생성한 것을 확인할 수 있다. 또한, 메시지 버퍼를 활용해 주기적으로 수신되는 메시지 내에서 변화된 데이터만을 지식 정보로 생산하였다. 메시지 처리량 비교를 위해 데이터 중복성 대처 방법을 적용한 것과 하지 않은 구현체를 활용하여 같은 임무를 같은 시간 동안 수행하여 발생한 지능형 프레임워크 내 메시지 양을 비교하였다.
Table 10은 데이터 중복성 대처 방법을 적용한 경우의 로그이고, Table 11은 적용하지 않은 경우의 로그이다. 표 10에서 나타난 로그를 보면 ASSERT된 메시지의 값이 계속해서 변화하는 것을 확인할 수 있다. 하지만 Table 11에서 나타난 로그를 보면 두 번째와 세 번째로 ASSERT 된 DroneAttitude 메시지의 데이터가 동일한 것을 확인할 수 있다.
다음의 Table 12는 데이터 중복성 대처 방법이 적용된 경우와 적용되지 않은 경우의 초당 메시지 처리량을 비교한 것이다.
정찰 임무 수행 과정에서 메시지 버퍼 기반의 데이터 교환 방식 적용을 통해 지식정보 메시지 처리량이 약 39% 감소한 것을 확인할 수 있다.
위의 지능형 프레임워크와 무인기의 메시지 교환 결과를 통해 메시지 버퍼 기반 주기적 및 비동기적 데이터 교환 방법의 주기성 메시지 프로토콜과 지식정보 기반 데이터 교환 방식의 상호운용성 제공 여부를 검증할 수 있었다.
6. 결 론
기존에 개발되었던 로봇 미들웨어-지능형 프레임워크의 연동을 위한 모델 기반 인터페이스는 로봇과의 통신을 목적으로 하고 있다. 이 때문에 무인기와 같이 주기성 메시지를 요구하는 대상과의 통신에 적용하기에 메시지 모델의 표현력 부족, 서로 다른 데이터 교환 방식에 대한 상호운용성을 제공하지 못한다는 한계를 가지고 있었다.
본 논문에서는 이러한 한계를 극복하기 위하여 지능형 프레임워크와 무인기 간의 통신 지원을 위한 주기성 및 비동기적 메시지를 서술할 수 있는 메시지 모델과 이를 활용한 메시지 버퍼 기반의 주기적 및 비동기적 데이터 교환 방법을 제안하였다.
확장된 메시지 모델은 추가된 프로퍼티를 통해 메시지의 주기성 여부 및 메시지 주기 서술이 가능하게 되었으며, 메시지 버퍼 기반의 데이터 교환 방법을 통해 비동기적으로 통신하는 지능형 프레임워크와 주기적으로 통신하는 무인기 간의 메시지 교환을 지원할 수 있었다.
또한 실제 무인기를 활용한 실험을 통해 지식 기반의 메시지를 활용한 비동기적 통신을 수행하는 지능형 프레임워크와 주기성 메시지 프로토콜을 사용하는 무인기 간의 상호운용성을 확인할 수 있었다.
본 논문에서는 무인기와 같은 주기성 메시지 프로토콜을 활용하는 대상에 대한 연동을 제공하는 방법을 중점으로 연구하였다. 하지만, 주기성 메시지의 송수신이 갑작스럽게 단절되는 예외 상황 등에 대해서 인터페이스가 대처할 수 있어야 한다. 이를 위해 주기성 메시지 프로토콜을 활용하는 외부 모듈과의 연동 상황에서 발생하는 예외 상황의 처리에 관한 추가적인 연구가 필요하다.
Biography
손 건 준
https://orcid.org/0009-0008-0323-3332
e-mail : gunjoons@naver.com
2021년 서울시립대학교 전자전기컴퓨터공학부(학사)
2023년 서울시립대학교 전자전기컴퓨터공학과(석사)
관심분야 : 인공지능, 인터페이스
Biography
이 재 호
https://orcid.org/0000-0002-3332-3207
e-mail : jaeho@uos.ac.kr
1985년 서울대학교 계산통계학과(학사)
1987년 서울대학교 계산통계학과(석사)
1997년 University of Michigan(박사)
1998년 ~현 재 서울시립대학교 전자전기컴퓨터공학부 교수
관심분야 : 인공지능, 지능 로봇
References
- 1. J. C. Shin, S. W. Kim, G. H. Baek, and M. G. Seo, "A proposal for software framework of intelligent drones performing autonomous missions," Journal of Advanced Navigation Technology, Vol.26, No.4, pp.205-210, 2022.
- 2. B. G. Choi, "A specification-based service development for intelligent service robots," Ph.D. Dissertation, University of Seoul, Seoul, Korea, 2020.
- 3. C. S. Park, B. G. Choi, and J. H. Lee, "Behavior interface for robot intelligence integration framework," in Korea Computer Congress 2018, pp.935-937, 2018.
- 4. B. G. Choi, J. U. Lee, S. K. Park, and J. H. Lee, "A model -based interface to cloud services for intelligent service robots," in KIPS Transactions on Software and Data Engineering, Vol.9, No.1, pp.1-10. 2020.
- 5. M. Beetz, L. Mösenlechner, and M, Tenorth, "CRAM - A cognitive robot abstract machine for everyday manipulation in human environments," in 2010 IEEE/RSJ International Conference on Intelligent Robots and Systems, Taipei, pp.1012-1017, 2010.
- 6. Intelligence Architecture (Internet), http://www.robot-int elligence.kr/index.php/Intelligence_Architecture
- 7. Robot Operating System (Internet). http://www.ros.org.
- 8. DJI Developer Tehnologies (Internet). https://developer. dji.com/
Article information Continued
Copyright © 1976-2025 KIPS. All rights reserved.
Statistics
Cite this article
IEEE StyleACM Style
TKIPS Style