Ⅱ. 본 론
무인 이동체인 드론에 GPS, Lidar, Radar, 카메라, 고도계 등의 다양한 센서 기기들을 부착한 드론들이 소개되고 있으며 고성능 프로세서를 탑재한 드론이 개발되어 드론에서 정찰이나 탐색과 같은 추가적인 임무를 수행하기 위한연구 개발이 진행되고있다. 무인이동체인 드론으로 재난 상황에서 인명 탐색 및 군사 분야에서 정찰 등의 목적으로 군집 형태의 드론을 경유지 및 목적지에 도달하게 하는 연구[2]와 군집 형태의 비행을 위해서 드론에 시각적 관성 거리계(Visual Inertial Odometr3]와 같은 편대 및 군집 비행에 관한 관심이 높아지고 있다. 이러한 편대 및 군집 형태의 드론들은 경유지 및 목적지와 영상 정보 전송을 위하여 지상관제 시스템과 무선통신만을 지원[4]하고 있으며 무인 이동체 간의 통신은 아직은 자세히 다루어지지 않고 있다.
무인 이동체인 드론과 지상관제 시스템 간의 무선통신은 원격제어 및 영상 정보 취득의 목적으로 WiFi, 위성통신, 셀룰러 시스템, LTE, 및 5G LTE 등 많은 기술이 소개되고 있으며 WiFi, LTE 및 위성통신이 많이 사용되고있다. 드론과 지상관제 시스템 간의 무선통신 이외에도 그림 1과 같이 무인 이동체 간의 무선통신을 지원하기 위한 이종의 애드혹 망인 FANET(Flying Ad-Hoc Network)에 대한 제안[5]이 있다. 드론과 지상관제 시스템 간의 통신은 기존 무선통신망인 WiFi, LTE 및 위성통신이 사용되며 드론 간의 통신은 블루투스로 구성된 이론적인 애드혹 망의 제안이 그 일례이며 구현 및 개발은 아직 진행되지 않고 있다.
FANET의 일례 (Example of FANET)
무인 이동체 간의 안전한 편대 및 군집 비행을 하기 위해서는 일정한 거리 유지를 위한 무인 이동체의 위치 정보 교환 또는 무인 이동체 간의 효율적인 임무 협력을 위한 임무 정보 교환을 위해서 무인 이동체 간의 통신은 필수적이다[6]. 무인 이동체인 드론은 보통 수천mAh의 배터리를 사용하며 비행을 위한 모터의 사용이 전체 전력의 80% 정도를 소모하고 나머지 전력은 임무 수행을 위한 온보드 프로세서와 통신 등에서 소모된다. 편대 및 군집 비행을 위한 무인 이동체 간의 임무 협력을 위해서 일정한 근거리 유지, 수mA~수십mA 저전력 통신의 이점 및 동적인 애드혹 망 구성이 쉬운 이점 때문에 무인 이동체인 드론 간의 통신으로 BLE 통신을 많이 적용하고 있으며[5, 6, 7], 드론과 지상관제 시스템과의 무선통신은 기존의 WiFi, LTE 및 위성통신 등의 통신 방식을 그대로 적용하고 있다.
인텔은 블루투스 비콘 신호를 이용하여 드론 간의 통신 및 드론과 다른 장치 간의 통신을 지원하고 있으며, 블루투스 비콘 신호에 드론의 비행 방향, 위치, 속도, 고도, 제조업체 및 모델 등의 정보를 제공하여 무인 항공 시스템의 추적 및 원격 식별을 위한 방안을 제안하고 있다[7]. 무선통신이 열악한 실내나 전파가 도달하지 못하는 환경에서 무인 이동체의 한정된 자원을 고려한 빠른 임무 수행을 위해서는 무인 이동체 간의 협력이 필요하고, 임무 협력을 위해서는 임무 정보 교환을 위한 무인 이동체 간의 통신이 필요하다. 또한, 통신 인프라가 파괴된 재난 상황에서 무인 이동체 간의 충돌을 방지하고 안전한 편대 및 군집 비행을 위해서는 일정한 거리 유지를 위한 무인 이동체의 위치 정보, 비행 방향 및 속도에 대한 정보 교환을 위한 무인 이동체 간의 통신이 필요하다. 무인 이동체에서 사용하는 통신 방식은 스마트 단말과 같이 기존 통신 방식인 WiFi, LTE 등의 통신 방식 이외에도 BLE 애드혹 통신과 같은 다양한 통신 방식을 추가함으로써 무인 이동체 간의 통신을 강화할 수 있다.
본 논문에서는 선도기와 추종기로 구성된 편대비행 임무 수행에 무인 이동체 간의 통신 방식으로 BLE 애드혹 망을 지원하는 BLE 통신 모듈을 사용하였다[1]. 개발한 BLE 통신 모듈을 편대비행의 선도기와 추종기에 탑재하여 편대비행 임무를 수행함으로써 무인 이동체 간의 통신으로 BLE 애드혹 망의 가능성을 확인하였다. 이러한 BLE 애드혹 망 구조는 이론적인 FANET 망을 실제 구현한 형태로 무인 이동체 간의 통신 및 IoT 장치 간의 통신에도 적용할 수 있어 통신 인프라 설치가 어려운 넓은 지역에 환경 센싱을 위한 IoT 장치의 통신 방식으로도 사용할 수 있다.
2.1 BLE 애드혹 망의 구성
통신 인프라가 설치되지 않은 지역이나 통신 인프라 사 파괴된 재난이나 전쟁 상황에서 그림 1과 같은 무인 이동체를 이용한 무선 애드혹 망을 구성하는 것이 가능하다[5,6,8]. 통신 인프라가 없는 상황에서 그림 2와 같이 편대 또는 군집 비행으로 구성된 무인 이동체들이 서로 간에 무선 애드혹 망을 구성하여 재난 또는 군사 분야에서 다양한 서비스 시나리오에 적용할 수 있다.
재난 상황에서의 BLE 애드혹 망의 구성 (BLE Ad-hoc network in disaster)
2.1.1 BLE 통신 모듈
BLE 애드혹 망을 지원하기 위한 BLE 통신 모듈은 그림 3과 같이 Central과 Slave 기능을 수행하는 2개의 노르딕 프로세서로 구성되며 ID 기반 라우팅 테이블 및 BLE 연결 관리 등은 구현 방식에 따라서 Central 또는 Slave에서 수행할 수 있으며 본 논문에서는 Central 프로세서 수행한다. 프로세서 간의 데이터 공유는 이중의 SPI 인터페이스로 연결되어 2개의 프로세서 간의 동기화, ID 통합 관리, 라우팅 테이블, BLE 연결 관리 정보 및 데이터 처리 등을 실시간으로 수행한다[1].
BLE 통신 모듈 (BLE Communication Module)
BLE 애드혹 망의 기능을 위해서 BLE 통신 모듈은 그림 4와 같은 기능을 구현하였다.
BLE 통신 모듈의 애드혹 망을 위한 기능 (Functions for ad-hoc network of BLE communication module)
✓ Multi-link: Central 2개와 Slave 2개로 구성된 총 4개의 무선 연결을 지원하며 Peer 간에 단일 연결만 유지(연결 중복 제거)
✓ Mesh Ad-hoc: 인접한 모듈 간의 연결로 무선 애드혹 망 구성이 쉽고 망의 확장성이 가능
✓ ID Discovery: 애드혹 망에서 BLE 통신 모듈의 ID 검색 기능 지원하며, ID 검색 메시지는 애드혹 망으로 브로드캐스트되며 중복 메시지는 모듈에서 폐기
✓ Data Relay: 모듈에 할당된 고유 ID 기반의 데이터 릴레이 기능
✓ IoT Device Link: BLE를 지원하는 IoT 장치와 연결하여 데이터 전송이 가능
✓ ROS Interface: 온보드 프로세서와 통신을 위하여 ROS Proxy 간의 메시지 인터페이스 기능을 제공
무인 이동체인 드론의 온보드 프로세서(NVIDIA Jetson TX2)와 BLE 통신 모듈은 UART 인터페이스를 사용하며 USB Type-C로 연결된다. BLE 통신 모듈을 450급 드론에 탑재한 모습은 그림 5와 같다. BLE 통신 모듈이 2개의 프로세서로 구성되어서 각각의 프로세서에 안테나가 필요하여 2개의 안테나를 사용한다. BLE 통신 모듈은 무인 이동체의 앞쪽 메인 프레임에 부착하였으며 2개의 BLE 안테나는 분리하여 기체 하단에 부착하였다. BLE 통신 모듈과 BLE 안테나는 커넥터 형식으로 연결되어 사용하였지만, 비행 중에 모터의 바람으로 커넥터의 접촉 불량이 간헐적으로 발생하여 납땜으로 BLE 안테나를 연결하여 사용하였다.
드론에 장착된 BLE 통신 모듈 (BLE Communication Module mounted on Drone)
그림 6은 무인 이동체 간의 통신 구조를 보여주고 있으며, Pixhawk 제어를 위한 MAVROS와 편대비행을 위한 유도 알고리즘이 동작하는 ROS 노드 및 BLE 통신 모듈의 데이터 처리를 위한 ROS Proxy로 크게 분류되며 편대비행의 데이터는 BLE 통신 모듈을 통하여 BLE 애드혹 망으로 전송된다. 편대비행을 위한 BLE 데이터 (표1, 36바이트)는 선도기의 센서에서 측정된 위도, 경도, 고도, 속도 및 요(yaw) 값을 20Hz 주기로 BLE 애드혹 망을 통하여 추종기들에게 전송하며 추종기들은 수신된 데이터(표 1)를 기반으로 편대비행을 위한 자체 생성된 유도 명령에 따라서 편대비행을 수행한다[9]. 표 1 데이터 이외에도 무인 이동체 간의 동기화, 임무 변경 및 편대비행 형태 변경을 위한 데이터가 별도로 정의되어 있으며 해당 메시지는 이벤트가 존재하는 경우에만 발생하여 선도기와 추종기 전체로 데이터가 공유한다.
무인 이동체간의 통신 구조 (Communication structure between unmannedvehicles)
편대비행을 위한 데이터 정보 (Data information used in formation flight)
2.1.2 BLE 통신 모듈의 데이터 포맷
BLE 통신 모듈이 애드혹 망에서 사용되는 데이터 형식은 그림 7과 같이 헤더, 목적지 ID, 소스 ID(3 바이트)와 데이터(252 바이트)로 구성된다. 헤더는 데이터와 제어 데이터를 구분하기 위한 목적으로 사용되며, 목적지 ID는 데이터가 수신되어야 하는 무인 이동체의 BLE 통신 모듈 ID이고 소스 ID는 데이터를 전송한 무인 이동체의 BLE 통신 모듈 ID이다. 헤더 값에 따라서 아래와 같이 페이로드를 구분한다.
✓ 0x8X: 통신 모듈 내에서 사용되는 제어 메시지
✓ 0x92:: 브로드캐스트 메시지
✓ 0x00 : 일반적인 데이터
무인 이동체의 온보드 프로세서(Jetson TX2)와 BLE 통신 모듈의 UART 인터페이스를 통한 ROS Proxy 간의 데이터 포맷은 그림 8과 같이 구분 4비트(0xF)와 길이를 포함한 2바이트 헤더가 추가되어 처리된다. 길이(Length)는 자신의 바이트를 포함하여 최대 257바이트까지 데이터를 전송하며 ROS Proxy와 BLE 통신 모듈은 길이 바이트를 점검한 이후에 제거하고 나머지 페이로드만을 ROS로 전송하거나 BLE 애드혹 망으로 전송한다.
ROS proxy를 위한 데이터 포맷 (Data Format for ROS Proxy)
2.1.3 BLE 통신 모듈의 전송률 및 전력 소모
노르딕 프로세서의 BLE 2Mbps 성능 실험 결과를 보면 실내에서는 51m, 79.3kbps 정도의 성능을 보이며, 실외에서는 355m, 182kbps 정도의 성능을 보여주고 있다[10]. 본 논문에서는 BLE 통신 모듈은 Central과 Slave 2개의 프로세서로 구성되며 각 프로세서당 2개의 링크로 구성되어 BLE 통신 모듈은 4개의 링크를 지원한다. 선도기는 표 1 데이터(36바이트)를 20Hz 주기로 추종기들에게 브로드캐스트하고, 추종기는 BLE 연결 상태, 비행 상태, 비행 모드 등의 추종기 상태 정보 메시지(6바이트)를 1Hz 주기로 선도기로 전송한다. 3바이트의 헤더를 포함하여 링크당 6.164kbos 정도의 데이터 전송률을 가지며 프로세서당 2개의 링크를 지원함으로 프로세서당 12.328kbos 정도의 데이터 전송률을 사용한다. 이러한 성능은 노르딕 프로세서의 BLE 실외 성능인 182kbps[10]보다 낮은 대역폭을 사용하기 때문에 추가적인 데이터 전송이 가능하다. 편대비행에서 선도기와 가정 거리가 먼 추종기 4, 5기 간의 최대 거리가 10m 정도로 비행하고 있어서 노르딕 프로세서의 BLE 실외 성능인 355m[10]보다 가까운 거리여서 BLE 데이터 손실이 거의 발생하지 않으며, BLE 안정된 성능과 거리로 인해서 데이터 전송률은 안정적이었으며 20Hz 주기의 데이터 전송률로 인해서 데이터 손실률이 낮은 경우에는 편대비행에는 영향이 거의 없었다. 초기 편대비행 시험에서 BLE 통신 모듈과 안테나 간의 연결이 커넥터로 연결되어 있어서 비행 시에 모터 바람으로 커넥터 접촉 불량으로 인한 BLE 통신이 비정상적으로 동작하는 경우가 있었다. 이처럼 선도기와 추종기 간의 BLE 연결이 끊어지거나 데이터 손실이 높은 경우에는 BLE 통신이 다시 연결될 때 까지 추종기는 해당 위치에서 호버링하도록 하였으며, 안테나 연결 방식을 납땜으로 변경한 이후부터는 BLE 통신에는 문제가 발생하지 않았다.
BLE 통신 모듈의 소모 전력을 확인하기 위해서 F250급 기체에 온보드 프로세서인 Xavier NX, 4400mAh 배터리 및 BLE 통신 모듈로 구성된 기체를 사용하였다. BLE 통신 모듈은 BLE 연결이 없을 때 스캔과 어드버타이징 메시지로 5V, 24~26mA 정도의 가장 많은 전류를 소모하며 데이터 송수신 시에는 평균 19~24mA의 전류를 소모하여 최대 0.13W 정도의 전력을 소모한다. F250급 기체가 호버링에 사용되는 전력량은 312W 정도이며, 온보드 프로세서인 Xavier NX의 최대 전력 소모량이 20W인 점을 고려해서 무인 이동체인 드론이 BLE 애드혹 망을 구성하고 무선 통신하는데 사용되는 BLE 통신 모듈의 전력 소모는 무인 이동체의 전체 전력 소모량에 0.039% 정도로 미비하여 한정된 자원을 가진 무인 이동체의 전력 부담이 적은 통신 방식이다.
2.2 편대비행을 위한 기체 및 시연 환경
편대비행을 위한 선도기와 추종기에 사용된 450급 기체는 그림 9와 같이 구성되며, 기체 구성은 표 2와 같다.
드론 기체 구성 (drone airframe configuration)
450 기체 구성 (450 Airframe Configuration)
편대비행을 위한 ROS 기반의 편대비행 시스템 구성은 그림 10과 같으며 Pixhawk 제어를 위한 MAVLink와 ROS 사이를 연결해주는 브릿지 기능을 수행하는 mavros_node, mavros_node에서 발행하는 일부 토픽들을 읽고 편대비행에 필요한 필수적인 정보를 새로운 메시지로 조합하는 ble_node, 편대비행을 위한 유도 알고리즘이 동작하는 guidance_repackaging_node, BLE 통신 모듈로부터 수신한 메시지를 ROS 네트워크에 발행해주고, 설정된 일부 토픽들을 읽어서 다른 BLE 통신 모듈로 전송하는 ble_proxy로 구성된다. 선도기의 ble_node와 ble_proxy는 선도기의 표 1 정보를 생성 및 추종기에게 전송하는 기능을 수행하며, 추종기의 ble_proxy와 guidance_repacking_node는 수신된 선도기의 표 1 정보를 기반으로 편대비행을 위해서 사전에 정의된 자신의 이동 위치를 계산하여 mavros_node를 통하여 비행 제어하는 기능을 수행한다.
ROS 기반의 편대비행 시스템 구성 (Configuration of ROS-based formation flight system)
BLE 애드혹 망 기반의 편대비행 시험을 위해서 그림 11과 같이 무인 이동체인 드론 5대(선도기 1대, 추종기 4대)로 구성되며, 무인 이동체의 위치 정보 및 상태 모니터링을 위한 WiFi 통신을 제외하고 편대비행을 위한 통신은 BLE 애드혹 망 구성을 위한 BLE 통신 모듈만을 사용하여 편대비행을 진행하였다.
편대비행을 위한 BLE 애드혹 망 (BLE ad-hoc network for formation flight)
선도기와 추종기로 구성된 5대 편대비행 시험을 위해서 그림 12와 같이 60m*40m 정도의 축구장 환경에서 편대비행 시험을 진행하였으며, 경로점 비행을 위해서 QGround Control을 통하여 경유지와 목적지를 선도기에만 입력된 상태이고(1번 출발지 ~ 11번 목적지), 추종기에는 아무런 정보가 입력되어 있지 않는 상태이다. 11번 목적지에 도달한 이후에는 선도기의 조정기만으로 선도기를 임의 수동 조정(12번 좌표 ~ 15번 좌표)하여 편대비행 시험을 추가 진행하였다.
편대비행 시험 경로 환경 (Formation flight test route environment)
선도기는 BLE 통신 모듈을 통하여 선도기의 상태 정보(표 1 데이터)를 4대의 추종기에 실시간으로 전송하고 추종기는 BLE 통신 모듈의 BLE 애드혹 망으로 수신된 선도기의 상태 정보를 기반으로 편대비행을 위한 자체 생성된 유도 명령에 따라서 편대비행을 수행한다.
선도기 1과 추종기 2~3 간의 거리는 5m로 설정하였고, 선도기 1과 추종기 4~5 간의 거리는 10m로 설정하였으며 2m/s 속도로 7m 높이에서 편대비행을 진행하였다. BLE 애드혹 망을 통하여 선도기와 추종기 간의 상태 정보 송수신 여부와 선도기와 추종기 간의 상대 거리 정보를 확인함으로써 편대비행의 정상 비행 여부를 확인하였다.