1. 서 론
4차 산업혁명의 본격적인 도래와 함께 인공지능(AI), 사 물인터넷(IoT), 로봇공학 등의 기술이 빠르게 발전하고 있 으며, 특히 드론 기술은 다양한 산업 분야에서 실질적인 활용 사례가 급증하고 있다. 초기에는 군사 및 정찰 목적에 국한되었던 드론은 현재 농업, 물류 배송, 시설 점검, 재난 구조, 스포츠 중계, 엔터테인먼트 등 매우 폭넓은 영역에서 활용되고 있으며, 그에 따른 기술 수요도 지속적으로 증가 하고 있다[2, 5, 6]. 특히 코로나19 팬데믹 이후 비대면 서비 스가 확대되면서, 드론을 이용한 비접촉 물류 및 스마트 인프라 관리에 대한 관심이 더욱 커지고 있다[1, 7].
현재 가장 널리 사용되고 있는 드론 플랫폼은 멀티콥터 형태로, 수직 이착륙이 가능하고 구조가 비교적 단순하여 조작과 운용이 용이하다는 장점이 있다. 하지만 멀티콥터 는 모든 추진력을 배터리에 의존하여 양력을 발생시키기 때문에, 비행시간이 짧고 운용 거리가 제한되는 구조적 한 계를 가지고 있다. 특히 장거리 임무나 넓은 지역을 커버 해야 하는 산업 응용에서는 이러한 제약이 매우 크게 작용 한다.
이러한 한계를 극복하기 위한 대안으로 최근 주목받고 있는 플랫폼이 바로 VTOL(Vertical Take-Off and Landing) 형태의 드론이다. VTOL 무인기는 고정익의 장거리 순항 기능과 멀티콥터의 수직 이착륙 기능을 동시에 수행할 수 있는 하이브리드 형태로, 이착륙이 어려운 환경에서도 넓 은 범위를 효율적으로 커버할 수 있다는 장점이 있다. 이 에 따라 VTOL 드론은 산림 감시, 해양 물류, 군수 물자 운송, 산악 구조 등 다양한 특수 목적에 적합한 플랫폼으 로 각광받고 있다[4].
그러나 VTOL 드론은 고정익 모드와 멀티콥터 모드 간 의 전환이 필수적으로 요구되며, 이 과정에서 제어가 매우 복잡해진다. 이에 따라 대부분의 산업용 VTOL 드론은 안 정성과 확장성을 갖춘 상용 오픈소스 비행 제어 시스템인 ArduPilot을 채택하고 있다. ArduPilot은 다양한 드론 형태 를 지원하는 범용 플랫폼으로, 자동 비행, 미션 수행, 센서 통합 등 다양한 기능을 제공한다. 하지만 ArduPilot의 VTOL 관련 제어 흐름은 고정익 기반으로 설계되어 있어, 영상 기반 자율 착륙과 같이 정밀 위치 제어가 필요한 시 나리오에서는 기능적인 제약이 존재한다[3].
특히 멀티콥터 모드에서 위치 기반 제어를 수행하려면 GUIDED 모드를 활용해야 하는데, 현재의 ArduPilot VTOL 구조에서는 고정익 중심의 제어 흐름을 따르기 때 문에, 멀티콥터 모드에서 GUIDED 명령이 제한적으로 작 동하거나 무시되는 문제가 발생한다. 이는 영상 인식 기반 의 착륙 제어를 수행할 수 없도록 만드는 구조적 제약이 며, 이를 해결하기 위해서는 내부 제어 흐름의 분석과 코 드 수정이 필수적이다.
본 연구에서는 상용 비행 컨트롤러와 ArduPilot 기반 VTOL 드론 플랫폼을 활용하여, 영상 기반 자율 착륙을 구현할 수 있도록 GUIDED 제어 흐름을 수정하고, 영상 인식 및 위치 추정 알고리즘을 통합하였다. 이를 통해 VTOL 드론의 멀티콥터 모드에서도 정밀한 위치 제어가 가능하도록 개선하였으며, 시뮬레이터(GAZEBO) 기반의 테스트와 실제 하드웨어 실험을 통해 제안된 시스템의 유 효성을 검증하였다. 본 연구는 영상 기반 정밀 착륙 기술 을 VTOL 플랫폼에 적용한 사례로서, 향후 산업 현장에서 의 자율 드론 운용 기술 확장에 기여할 수 있을 것으로 기대된다.
2. 시스템 구성
2.1 VTOL 하드웨어 구성
본 연구에서 사용한 VTOL 무인기는 QuadPlane 타입의 수직이착륙기로 수직 상승 및 정지 비행은 multicopter 모 드로 비행하고 전진 순항은 고정익 모드로 수행할 수 있도 록 설계된 하이브리드 형태의 무인기이다. 이 구조는 기존 의 멀티콥터 드론이 가진 기동성과 고정익 드론의 항속성 을 동시에 갖추고 있어 넓은 영역을 커버하면서도 정밀한 착륙이 요구되는 임무에 적합한 타입이다.
내부에 탑재된 시스템으로는 먼저 동체 앞쪽에 하방으 로 착륙 마커를 탐지할 수 있는 카메라가 탑재되어 있고 바로 앞에 지면까지의 거리를 측정할 수 있는 1D LiDAR 가 설치되어 있다. 그리고 캐노피 내부에 자율 착륙 알고 리즘이 실행되는 임베디드 보드가 설치되어 있고 VTOL 을 제어하기 위한 상용 FC로는 CUAV를 사용하고 있으며 Ardupilot 버전은 4.4.3을 사용하고 있다. VTOL의 전체적 인 형상 및 내부 구성품들은 <Figure 1>에서 볼 수 있다.
VTOL 기체의 Wing Span은 4.0m이고 프로펠러를 포함하 여 전체 크기는 약 2.4m×4.0m이고 높이는 약 1.2m 정도 된다. 임무장비로 구성된 Payload를 포함한 MTOW(Maximum Take-off Weight)는 약 50kg이고 최대 비행 속도는 110km/h 까지 낼 수 있다. 다른 상세한 제원은 <Table 1>과 같다.
2.2 소프트웨어 구성
소프트웨어 구조는 다음과 같은 계층적 아키텍처로 구성 된다. Plane 클래스는 전체 비행기의 상태를 초기화하고 주 루프를 실행하며, 다양한 비행 모드 전환 및 센서 데이터 를 통합하여 QuadPlane 객체를 포함한 핵심 모듈들을 제어 한다. QuadPlane 클래스는 VTOL 기능의 중심이 되는 모듈 로, 모드 전환 로직, 수직이착륙 제어 루틴, 모터 출력 계산 등을 담당한다. 본 클래스는 비행 중 고정익과 쿼드 모드 간의 전환 조건을 실시간으로 감지하고, 적절한 제어 전략 을 선택하여 AP_MotorsQuadPlane 및 AC_AttitudeControl 과 연계하여 안정적인 자세 및 위치 제어를 수행한다.
특히, AP_MotorsQuadPlane 모듈은 수직 추진 모터와 수평 추진 프로펠러를 구분하여 각각의 모터에 적절한 스 로틀 값을 분배하며, 비행 모드에 따라 동적으로 출력 믹 싱 전략을 변경한다. 쿼드 모드에서의 자세 제어는 AC_AttitudeControl 라이브러리를 통해 이루어지며, Roll/Pitch/Yaw에 대한 PID 제어기를 기반으로 EKF 기반 자세 추정 결과를 반영한 고정밀 제어를 수행한다.
비행 모드는 고정익 타입에서 동작하는 모드와 멀티콥 터 타입에서 동작하는 모드로 나눠져 있고 구분하기 위해 멀티콥터 비행 모드는 모드 명 앞에 Q를 붙여 구분한다. 각 모드에서는 QuadPlane의 control_run() 함수를 호출하 여 해당 모드에 맞는 제어 루틴을 실행한다.
3. 알고리즘
이번 장에서는 상용 FC기반의 VTOL을 이용해서 영상기 반 자율 착륙을 수행하기 위해 개발된 알고리즘에 대해서 알아보도록 한다. 알고리즘은 크게 상용 FC로 활용하고 있는 ArduPilot 소프트웨어에서 수정한 부분과 착륙을 수행 하기 위해 착륙 마커의 LLH(Latitude-Longitude-Height) 위 치를 추정하는 알고리즘 순서로 알아보도록 한다.
3.1 상용 FC 커스텀 소프트웨어
앞절에서 설명한 것과 같이 본 연구에서 VTOL을 제어 하기 위해서 ArduPilot이라는 상용 FC를 사용하고 있다. ArduPilot은 오픈 소스 기반의 무인항공기(UAV) 제어용 소프트웨어 스택으로 멀티콥터, 고정익, VTOL, 로버, 보 트 등 다양한 플랫폼을 지원한다. 특히 VTOL 플랫폼에서 ArduPilot은 고정익의 고효율성과 멀티콥터의 정밀 제어 능력을 통합하여 모드 전환 기반 하이브리드 제어를 구현 할 수 있게 설계되어 있다.
VTOL 제어를 위한 ArduPilot 소프트웨어는 기본적으로 고정익 제어를 위한 ArduPlane 코드가 base가 되어 여기에 멀티콥터 제어를 위한 ArduCopter의 코드 조각들이 결합된 형태라고 보면 된다. 그렇기 때문에 소프트웨어의 부가적인 기능들이 대부분 고정익의 형태를 따라가는 경우가 많은데 영상기반 정밀 착륙을 수행하기 위한 GUIDED 비행 모드 또한 고정익 모드에서 사용되는 제어 방식을 따른다.
GUIDED 모드가 인가되었을 때 내부에서 동작하는 소 프트웨어 프로세스는 <Figure 2>와 같이 나타낼 수 있다. 내부 스케쥴러에 따라서 메인 클래스인 Plane 클래스에서 update_control_mode 함수를 일정 주기로 callback 하게 된 다. 여기서 비행 모드에 따라 update 함수가 달라지게 되는 데 GUIDED 모드로 변경하게 되면 ModeGuide 클래스가 호출되게 되고 여기 내부에 있는 guided_update라는 함수 가 주기적으로 실행된다. 여기 내부에는 현재 VTOL의 상 태가 Loiter인지 아닌지에 따라 동작하는 함수가 달라지게 되는데 VTOL 버전의 코드에서는 GUIDED에 위치 명령 이 들어올 때 실행되는 set_guided_WP 함수 내부에 default 로 이 변수가 false로 되어 있다. 즉 GUIDED 모드에서 위 치 명령을 실행하는 것은 항상 고정익 모드에서만 실행하 라는 뜻인데 이것을 false로 변경하여 VTOL 일때도 위치 명령을 사용할 수 있도록 수정하였다.
3.2 마커 위치 추정
앞 절에서 설명한 것과 같이 VTOL 기반 소프트웨어 에서 GUIDED 모드는 고정익 제어를 수행하도록 만들 어져 있다고 설명했다. 기존의 멀티콥터를 이용한 정밀 착륙의 경우 velocity setpoint를 만들어 마커에 정밀 착륙 할 수 있게 하였는데 VTOL의 경우엔 setpoint velocity를 지원하지 않는다. 따라서 고정익 GUIDED에서 지원하는 명령 체계를 만들어야 하는데 그 중에 하나가 바로 MAV_CMD_DO_REPOSITION이라는 mavlink 명령이 있 다. 하지만 이 명령을 사용하기 위해서는 타겟의 위치를 LLH의 형태로 만들어야 하기 때문에 본 절에서는 영상에 서 인식된 마커의 위치를 LLH로 변환하는 과정에 대해서 알아볼 것이다.
본 연구는 도심에서 운용할 수 있는 UAM(Urban Air Mobility)을 대상으로 진행되는 연구이므로 착륙 마커는 Vertiport의 약어인 UAM에서 많이 사용하는 V자 마커를 대상으로 하였다. 사용된 마커의 크기는 6.0m×6.0m이고 가운데 V부분은 3.0m의 원으로 구성되어 있다.
영상기반 정밀 착륙을 수행하기 위해서 착륙 마커 인식 은 MobileNet-SSD라는 알고리즘을 활용하였고 실험을 통 해 커스텀 학습 데이터를 구축하였다. 마커 탐지를 구동하 는 임베디드 컴퓨터는 앞에서 언급한 것과 같이 NVIDIA 에서 제공하는 Orin AGX를 사용하였는데 2048개의 GPU core와 48개의 tensor core가 탑재되어 있어 본 연구의 탐 지와 더불어 다른 AI 알고리즘까지 구동하면서 실시간으 로 운용하였다.
이미지 내에서 마커를 탐지하게 되면 이미지 평면위의 픽셀 위치로 나타난다. 이 위치를 ENU(East-North-Up) 좌 표로 변환하는 것은 해당 연구를 참고하여 아래와 같이 나타낼 수 있다[5].
속도 기반 제어 명령을 생성한다면 위의 결과만 가지고 만들 수 있지만 우리는 ENU 좌표계에서 정의된 위치를 LLH 위치로 변경해야 VTOL에 명령을 넣을 수 있다. LLH 로 변경하기 위해서는 ECEF(Earth-Centered, Earth-Fixed) 로 변경해야 되는데 이때 기준좌표가 필요하다. 여기서 기 준좌표는 VTOL의 현재 LLH 위치를 기준좌표로 설정하 고 아래 식과 같이 계산할 수 있다.
위 식에서 a는 WGS-84 기준 타원체의 장반경을 나타내 고 e는 이심률, 은 위도에 따른 수직 반경인 곡률 반경을 나타낸다. VTOL의 LLH 위치인 (ϕu, λu, hu)는 GPS에서 바로 얻은 값을 사용한다.
VTOL의 현재 위치를 ECEF로 변환한 위치를 위와 같 이 구했고 VTOL에 장착된 카메라에서 마커까지 상대거 리를 구했으므로 마커의 ECEF 위치는 아래 식과 같이 나 타낼 수 있다.
여기서 RENU→ECEF은 현재 위도, 경도 위치에서 ENU 좌 표계에서 ECEF 좌표계로 변환하는 회전 행렬이고 아래 식과 같이 나타낼 수 있다.
위 식대로 계산하게 되면 마커의 ECEF 위치를 계산할 수 있고 마지막으로 이 위치를 LLH로 변환해야 하는데 이때는 Bowring’s method를 활용하여 빠르게 변환하도록 하였다. 변환 식은 아래와 같다.
여기서 a와 b는 타원체 WGS-84 기준 타원체의 장반경, 단반경을 각각 나타내고 p는 현재 ECEF의 수평거리를 나 타낸다. e′2은 e2/(1 - e2)으로 보조 이심률의 제곱을 나타 내고 θ는 Bowring 근사를 위한 보조각으로 아래식과 같이 계산된다.
위와 같이 마커의 LLH의 위도와 경도를 구할 수 있고 입력 고도의 경우 지면 기준 고도를 설정할 수 있기 때문 에 굳이 변환 좌표를 사용하지 않아도 된다.
4. 실험 결과
4.1 시뮬레이션 환경
본 연구에서 개발된 시스템을 검증하기 위해서 시뮬레 이션을 수행하였다. 시뮬레이션은 GAZEBO 환경에서 구 축된 ETRI 가상환경에서 진행하였다. VTOL 영상 기반 착 륙 알고리즘은 ROS Noetic 버전에서 개발되었다.
마커의 위치는 시뮬레이션 원점 기준으로 (63, -63) m에 놓여있고 VTOL의 위치는 지면고도 30m, 수평거리는 마 커로부터 50m 이상 떨어진 랜덤 위치에서 시작하여 마커 착륙 시나리오를 수행하였다.
4.2 시뮬레이션 결과
시뮬레이션 과정은 앞에서 설정한 초기위치에서 QLoiter 모드로 정지비행으로 시작한다. 마커 근처 위치를 VTOL의 원점으로 설정하여 QRTL 모드로 전환했을 때 VTOL 기체가 마커 근처로 날아가는데 초기위치가 50m 이상 떨어져 있으므로 FC에서 고정익 전진 비행 모드로 전환되어 마커 근처까지 비행한다. 마커 근처에 도착하면 다시 멀티콥터 모드로 전환하기 위해서 천이하게 되는데 이때 아래에 마커가 탐지가 되면 GUIDED 모드로 변경되 어 영상 기반 착륙을 수행하게 된다.
이와 같은 과정으로 랜덤한 시작 위치에서 착륙 시나리 오를 10회 수행하였고 이때 비행 궤적을 나타낸 그림이 <Figure 5>이다.
비행 궤적 그래프를 보면 시작 위치에서 곡률이 있는 비행 경로가 생성된 것을 볼 수 있는데 시작 위치마다 VTOL이 바라보는 초기 헤딩각이 달라서 고정익 전진비 행으로 전환되면서 원점으로 회귀 순항 비행을 진행하기 때문에 각 위치마다 다른 궤적을 가지는 것을 볼 수 있다. 그리고 마커 상공에 도달했을 때는 떨어진 거리에 비례하 여 도착하는 고도가 다 다르게 나오는 것을 <Figure 5B>에 서 볼 수 있고 도착하고 나서는 마커 위로 정밀 착륙을 수행하는 것을 확인할 수 있다.
<Table 2>는 10회의 시나리오를 진행하면서 마지막 도 착한 착륙 위치를 나타낸 표이다. VTOL의 멀티콥터 모드 로 제어를 한다고 해도 기존의 멀티콥터 보다는 착륙 위치 에러가 크게 나타나는 것을 볼 수 있다. 본 실험에서 10회 비행의 평균 위치 오차는 약 0.29m으로 측정되었다.
4.3 실 비행 테스트
2절에서 설명한 VTOL 기체를 이용해서 실 비행 테스트 를 수행하였다. 안전한 VTOL 플랫폼 비행 실험을 위해서 안전줄을 고정한 상태에서 비행 실험을 수행하였다. 그리 고 장소가 협소한 관계로 고정익 비행 상태에서 바로 시작 하지 않고 QLoiter 모드로 정지 비행을 수행하고 있는 상 태에서 실험을 진행하였다.
VTOL 기체를 이용해 착륙을 진행하는 과정을 <Figure 6> 과 같이 스냅샷으로 나타냈다. 그림 상단에는 착륙 과정을 측면에서 촬영한 영상을 구간 별로 나타냈고 아래에는 Jetson Orin AGX 온보드에서 마커를 탐지한 영상을 해당 구간 별로 나타냈다. 초기 비행 위치는 마커 중심에서 떨 어진 지점에 약 4m 상공에서 시작하였고 시작과 동시에 마커의 위치를 추정하여 마커 중심으로 착륙을 진행하는 것을 확인할 수 있었다. 착륙 위치는 마커 중심으로부터 약 0.3m 정도 떨어져서 착륙하였다.
5. 결 론
본 연구에서는 상용 FC를 사용하는 VTOL형태의 무인 기를 활용하여, 영상 기반 자율 착륙을 구현하기 위한 시 스템을 설계하고 실제 실험을 통해 그 성능을 검증하였다.
VTOL 무인기는 고정익과 멀티콥터의 장점을 동시에 활용할 수 있어 다양한 산업 현장에서 높은 활용 가능성을 가지고 있지만, 기존 상용 제어 시스템에서는 영상 기반 착륙과 같은 정밀 위치 제어 기능을 충분히 제공하지 못하 는 한계가 있었다. 이를 극복하기 위해 본 연구에서는 ArduPilot 기반 VTOL 드론의 GUIDED 제어 흐름을 수정 하여, 멀티콥터 모드에서 위치 기반 제어가 가능하도록 개 선하였다. 그리고 딥러닝을 이용하여 마커를 탐지하고 탐 지된 마커의 위치를 Local 좌표계가 아닌 LLH 좌표계로 변환하여 상용 FC 소프트웨어에서 지원이 되는 Position Command를 생성하여 이를 기반으로 VTOL이 자율적으 로 정밀 착륙할 수 있도록 전체 시스템을 구성하였다.
GAZEBO 시뮬레이션과 실제 하드웨어 실험을 통해 제 안한 시스템의 신뢰성과 정밀도를 확인하였으며, 시뮬레 이션과 실제 환경 모두에서 평균 0.3m 이내의 착륙 정밀 도를 가지는 것을 확인할 수 있었다.