무인항공기 이동 목표물 추적 비행 및 착륙 성능 개선을 위한 입력 신호 변형 기반의 제어 보조 시스템
Copyright © The Korean Society for Precision Engineering
This is an Open-Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
Abstract
In this study, a novel input signal transformer is introduced to remove an overshoot and steady-state error that hinder stable tracking and landing of an unmanned aerial vehicle (UAV) based on image recognition, and the performance is verified. The Input Signal Transformer (IST) is designed in the shape of a sigmoid function to attenuate or amplify the input signal to resolve the aforementioned problems. For the verification of the UAV control system based on the IST, the UAV, target, and sensors were implemented in a virtual environment using the robot operating system (ROS). And data exchange structure and control system were built by the ROS-based message communication. A simulation was performed to confirm the elimination of the overshoot and steady-state error when the UAV to which the above control system was applied tracks and lands a fixed target and a moving target. As a result of the simulation, when the IST was not used, the UAV performed an unstable because of the overshoot and could not land on the target by the steady-state error. Conversely, in the case of using IST, it was confirmed that the flight was stable and landed successfully.
Keywords:
UAV, Tracking and landing, ROS, Input signal transform, Autonomous flight키워드:
무인항공기, 추적 및 착륙, 로봇 운영 체제, 입력 신호 변형, 자율 비행1. 서론
최근 무인항공기의 수요가 증가하면서 무인항공기 운용을 위한 다양한 기술들이 연구되고 있다. 그 중 무인항공기의 자율 비행에 관한 연구 역시 활발히 진행되고 있다. 본 연구는 해상 환경, 물류 운송, 군사 작전 등과 같이 이동하는 환경에 대응하여 안정적으로 무인항공기를 운용할 수 있도록 하는 영상인식기반의 무인항공기 이동 목표물 추적 및 착륙 제어 시스템 개발을 목표로 하고 있다. 무인항공기는 기체의 자세 및 위치, 속도 등의 상태를 파악할 수 있는 다수의 센서와 추력을 생성할 수 있는 모터로 구성되어 있다. 따라서 무인항공기의 제어 플랫폼을 설계하기 위해서는 다수의 센서로부터 기체의 상태를 인지할 수 있는 계측기와 일정한 위치, 속도, 자세로 이동할 수 있도록 하는 제어기 및 역기구학을 무인항공기의 역학적 특징과 좌표계를 고려하여 설계하여야 하기 때문에 이에 따른 설계 난이도가 높다. 무인항공기 상용 제어 플랫폼인 PX4는 위와 같은 내용이 반영된 시스템이 구축되어 있기 때문에 연구 기간을 단축시킬 수 있고, QGroundControl 및 Mission Planner 등과 같은 지상통제스테이션 프로그램과 연동이 용이하기 때문에 무인항공기 기술 응용 분야 연구에 사용하기 적합하다. 따라서 무인항공기 이동 목표물 추적 및 착륙 제어 시스템에는 위와 같은 특징을 가지는 상용 제어 플랫폼인 PX4를 사용하였고, 이미지 데이터를 이용하여 무인항공기에게 이동 목표물 추적 및 착륙 명령을 내리는 방식으로 운용하였다. 그 결과, 추적 과정에서 큰 오버슈트와 정상상태 오차가 발생하는 상황이 나타났다.
무인항공기가 이동하는 목표물을 안정적으로 추적하고 착륙하기 위해서는 추적 도중에 목표물을 놓치는 경우가 없어야 하고, 착륙하기 위해 목표물과의 거리가 충분히 가까워야 한다. 하지만 무인항공기가 이미지 데이터를 기반으로 이동하는 목표물을 추적하고 착륙하는 상황에서 발생하는 오버슈트와 정상상태 오차는 비행 중 목표물을 놓치거나 목표물과의 거리를 줄이지 못하여 착륙할 수 없는 등의 추적 및 착륙 조건을 달성하지 못하는 치명적인 문제점을 야기한다. 따라서 무인항공기가 이동하는 목표물을 안정적으로 추적하고 착륙하기 위해서는 비행중 발생하는 오버슈트와 정상상태 오차를 제거해야할 필요성이 있다.
이를 해결하기 위해 다수의 PID 제어기로 구성되어있는 PX4의 제어 이득을 조절하는 것은 제어기의 어떤 이득값으로 인해 문제가 발생했는지 확인하는 것이 쉽지 않고, 제어 이득의 수가 많기 때문에 최적의 조합을 찾기까지 많은 시간이 소요되어 효율적이지 못하다. 또한 상용 제어 플랫폼의 특성상 사용자가 직접 조종하거나 고정된 지점으로 비행시키는 일반적인 경우를 고려하여 제작되었기 때문에, 이동하는 목표물을 추적하는 경우와 같은 특수한 상황에서는 제어기 본연의 성능으로는 안정적인 추적 및 착륙 제어를 수행하기 힘들다. 이러한 PX4의 한계로 인해 무인항공기 제어 및 계측 시스템을 설계하는 것은 연구 기간이 대폭 길어지는 문제점이 존재한다. 기존의 오버슈트 및 정상상태 오차 제거에 대한 연구 사례에서는 제어 구조를 변경하거나 상용 제어기의 기능을 보조하는 제어기를 설계하여 적용하였다.1-3 하지만 이 연구들은 대부분 무인항공기가 아닌 다른 어플리케이션에 적용되었기 때문에 무인항공기에 적용하였을 경우에도 기존 사례와 동일한 결과가 나올지는 불분명하다.
위와 같은 문제점을 해결하기 위해 본 연구에서는 기존의 상용 제어기의 성능을 보완할 수 있는 제어기를 설계한 연구사례를 참고하여 주 제어기로 입력되는 신호를 사전에 변형시켜 PX4와 같은 상용 제어기의 성능을 보완하는 IST (Input Signal Transformer)를 설계하여 적용하였다. 개발한 IST를 이용하여 영상인식 기반의 무인항공기 이동 목표물 추적 및 착륙 제어 시스템을 ROS (Robot Operating System) 기반으로 구성하였다. 이를 Gazebo 시뮬레이터에서 실험 환경을 구축하여, 무인항공기가 이동하는 목표물을 추적하고 착륙하는 상황에서 발생하는 오버슈트와 정상상태 오차를 제거하여 안정적으로 비행 및 착륙하는 결과를 획득하였다.
2. 이동 목표물 추적 및 착륙 시스템 구축
본 연구는 무인항공기가 이동하는 목표물을 추적하고 착륙하는 작업를 안정적으로 실시할 수 있도록 하는 것을 목표로 하였다. 이동 목표물 추적 시스템은 무인항공기의 종류 중 가장 대표적인 쿼드콥터를 대상으로 제작되었다. 2장에서는 쿼드콥터의 운용을 위해 사용한 제어 플랫폼 및 이동 목표물 인식 방법, 그리고 안정적인 비행 및 착륙을 위한 오버슈트과 정상상태 오차 제거 방법을 소개하고자 한다.
2.1 쿼드콥터 제어 플랫폼
쿼드콥터가 사용자로부터 받은 비행 혹은 착륙 명령대로 동작하게 하기 위해서는 사용자의 명령을 출력 신호로 만들어줄 제어기가 필요하다. 본 연구에서는 위와 같은 역할을 해줄 제어 플랫폼으로 PX4를 사용하였다. PX4는 다수의 PID 제어기로 구성되어 있고, 쿼드콥터의 센서 데이터를 바탕으로 기체의 자세와 위치를 인지할 수 있는 상용 제어 플랫폼이다. PX4의 쿼드콥터 제어 방식은 Fig. 1과 같다.4
쿼드콥터가 사용자로부터 명령을 받아 이를 수행하기 위해서는 자기 자신의 위치를 인지하기 위한 계측기가 필요하다. PX4는 쿼드콥터에 장착되어 있는 여러 센서로부터 데이터를 획득한 뒤 Fig. 1의 ‘Position & Attitude Estimator’에서 EKF (Extended Kalman Filter)를 이용하여 쿼드콥터의 현재 위치와 자세를 추정한다. X, X, q, Ω는 위치 및 자세 추정의 결과로, 각각 쿼드콥터의 위치, 속도, 쿼터니언 형태의 각도, 각속도를 의미한다.
PX4 사용자는 목표 위치, 목표 속도, 목표 Yaw축의 각도, 목표 Yaw축의 각속도를 의미하는 Xsp, Vsp, ψsp, 등의 파라미터를 이용하여 쿼드콥터에게 명령을 내릴 수 있다. 사용자가 Xsp 를 입력하여 위치 명령을 내리면, Xsp 와 X 의 차이는 P 제어기 형태로 구성되어 있는 위치 제어기를 통해 목표 속도를 의미하는 Vsp_cmd 가 만들어진다. Vsp_cmd 와 V 의 차이는 PID 제어기 형태의 속도 제어기를 거쳐 목표 가속도인 Asp 를 생성한다. 단, Vsp 입력이 존재할 경우 위치 제어기로부터 생성된 Vsp_cmd 을 Vsp 로 대체시킨다. 입력 받은 ψsp 와 속도 제어기로부터 형성된 Asp 는 자세 생성기를 통해 목표로 하는 쿼드콥터의 자세인 qsp 와 수직 방향 추력인 ζZsp 를 생성한다. 이후 qsp 와 q 그리고 은 P 제어기 형태인 각도 제어기의 입력으로 사용되어 목표 각속도인 Ωsp 가 출력되고, Ωsp 와 Ω의 차이를 PID 제어로 구성된 각속도 제어기를 통해 목표 추력인 δsp 를 생성시킨다. 최종적으로 자세 생성기로부터 생성된 δZsp 와 각속도 제어기로부터 만들어진 δsp 는 ‘Mixer’를 통해 쿼드콥터의 모터 구동 명령으로 변환되어 쿼드콥터에 전달된다. 상용 무인항공기 제어 플랫폼인 PX4는 위와 같이 각각 2개의 P 제어기와 PID 제어기를 통해 쿼드콥터를 동작하게 한다. 쿼드콥터가 안정적으로 비행하기 위해서는 각 제어기로부터의 적절한 출력값이 필요하며, 이를 가능하게 하기 위해서는 총 8개의 제어 이득을 조절해야 한다.
2.2 쿼드콥터의 이동 목표물 인식 방법
쿼드콥터가 움직이는 목표물을 쫓아 착륙하기 위해서는 목표물을 인식할 수 있어야 하고, 인식한 목표물로부터 높은 정밀도의 위치 정보를 획득해야 한다. 본 연구에서 목표물로부터 고정밀 위치 정보를 얻기 위해 쿼드콥터에는 카메라를, 목표물에는 기준 마커(Fiducial Marker)를 장착하여 쿼드콥터가 목표물을 인식할 수 있게 제작하였다. 기준 마커의 종류로는 ArUco Marker, Apriltag, ARTag, Stag 등이 있으며, 이들 중 Apriltag가 다양한 거리 및 각도에서 가장 인식률이 좋지만, CPU와 메모리 사용량이 가장 많았다. 무인항공기가 이동 목표물을 추적하고 착륙하는 동안에 지속적으로 Marker를 이용한 위치 추정이 이루어지기 때문에 CPU와 메모리 사용량을 무시할 수 없다. 따라서 준수한 인식률을 가지고 CPU와 메모리 사용량이 적은 ArUco Marker를 사용하였다.5
ArUco Marker는 각각 다른 ID를 가지고 있는 이진 매트릭스 Marker로, 이를 인식하기 위해서는 ArUco Marker의 회전각에 따른 바이트 리스트가 ID별로 저장되어 있는 ArUco Dictionary를 필요로 한다.6 Fig. 2는 본 연구에서 사용한 Marker의 형태이고 이것을 인식하는 과정은 Fig. 3과 같다.7 먼저 카메라의 BGR 이미지 처리에 용이하도록 회색조로 변환한 이후 이미지에서 Marker의 경계를 뚜렷하게 하기 위하여 이진화시킨다. 이진화 작업으로 경계가 선명해진 이미지에서 외곽선을 추출한 후 추출한 외곽선의 꼭지점을 바탕으로 기울어진 Marker 이미지에 투영 변환을 적용하여 이미지 왜곡을 제거한다. 왜곡이 제거된 Marker를 격자 형식으로 나누어 Marker의 흰 부분을 1로, 검정 부분을 0으로 하는 비트 매트릭스를 만든다. 그 후, 비트 형식의 매트릭스를 바이트 형태의 리스트로 변경한 뒤, ArUco Dictionary에서 해당 ID의 Marker 바이트 리스트와 비교하여 어떤 방향에서도 인식할 수 있도록 하였다. 카메라 이미지에서의 인식한 Marker의 중앙값을 픽셀 형식으로 얻어, 획득한 픽셀 데이터를 바탕으로 쿼드콥터에서 목표물까지의 거리를 측정하였다. Fig. 4는 쿼드콥터와 목표물 사이의 거리 계산에 사용한 파라미터를 시각화한 것이다. θView 는 카메라의 화각, PT 와 Pc 는 목표물 중앙의 픽셀 데이터와 이미지 중앙의 픽셀 데이터이다. Altq 와 Altt 는 각각 쿼드콥터와 목표물의 고도를 나타내고, Sp 는 이미지의 전체 픽셀 사이즈를 의미한다. 이러한 파라미터들을 이용하여 쿼드콥터와 목표물 사이의 거리 계산 및 픽셀 단위에서 미터 단위의 거리 변환을 적용하여 쿼드콥터와 목표물의 상대 거리를 계산하였다.8
본 연구에서의 무인항공기는 이동 목표물에 착륙하기 위해 10 m 상공까지 이륙한 뒤 목표물을 따라서 추적하고 영상인식 기반으로 착륙한다. 따라서 시뮬레이션 상황에서 무인항공기의 최대 고도는 10 m이다. ArUco Marker를 이용하여 거리를 측정할 때는 카메라와 Marker 사이의 거리가 측정 결과에 큰 영향을 미치고, 그 거리가 작을수록 측정 결과의 오차 또한 작아진다. 무인항공기가 Marker를 인식할 때의 최대 거리는 10 m 미만이므로, 시뮬레이션 환경에서 무인항공기와 Marker 사이의 X, Y축 거리는 일치시키고, Z축 거리를 10 m만큼 띄워 영상 처리 결과의 오차를 측정하였다. 총 X축, Y축에 대해 각각 2,000개의 데이터를 획득하여 오차를 측정하였으며, Table 1과 같이 최솟값, 최댓값, 평균값으로 나누어 확인하였다. 평균적으로 0.04-0.08 m로 오차가 측정되었으며, 최댓값은 0.2265, 최솟값은 0.001 m 이하였다. 위 수치들을 로우 패스 필터를 통해 평균치와 근사한 값으로 필터링 될 것이기 때문에 무인항공기의 착륙 지점의 크기가 1.5 m × 1.5 m이고, ArUco Marker가 항상 수평을 유지하며, 이동 목표물에 착륙할 때 무인항공기와 ArUco Marker 사이의 거리가 작아지면서 오차 또한 점점 작아질 것이라 가정하였을 때, 측정된 오차값은 실험 결과에 영향을 미치지 못할 것으로 판단한다.
2.3 입력 신호 변형 기반 쿼드콥터 제어 보조 시스템
2.2절의 영상인식 방법을 적용하여 쿼드콥터가 목표물을 인식할 수 있도록 한 후 PX4의 쿼드콥터 제어 시스템을 이용하여 무인항공기 이동 목표물 추적 및 착륙을 실시하였다. 이 경우 제어 초기에는 오버슈트로 인해 무인항공기가 목표물을 지나치는 상황이 발생하여 쿼드콥터가 안정적으로 비행하지 못하였고, 제어 후기에는 정상상태 오차를 줄이지 못해서 이동하는 목표물에 착륙하지 못하였다. 원인 분석 결과, PX4는 사용자가 직접 쿼드콥터를 조종하거나 고정된 지점을 향해 자율적으로 비행하도록 명령하는 상황에 적합하게 설계되었기 때문에 이동 목표물 추적이라는 특수한 상황에 대응할 수 없다. 이를 해결하기 위해 본 연구에서는 입력 신호의 형태를 변형시킬 수 있는 제어 보조 시스템인 IST (Input Signal Transformer)를 제작하여 오버슈트와 정상상태 오차를 제거하였다.
앞서 언급된 문제를 해결하기 위해 시간에 따라 변하는 제어 이득인 IST를 고안하였다.9 IST는 주 제어기의 기능을 보조하는 전처리기 역할을 하며, 제어 초반부의 입력 신호를 감소시켜 오버슈트를 제거하고 제어 후반부의 입력 신호를 증폭시켜 정상 상태 오차를 제거할 수 있도록 설계되었다. 이러한 기능을 효과적으로 수행하기 위해 IST는 시그모이드 함수의 형태를 도입하였으며, 아래 식(1)과 같이 제어 이득 KIST로 표현되었다.
(1) |
KIST는 시간에 따라 그 값이 변화하며, Pmin, Pmax, Pg, Pi 등의 4가지 파라미터를 설정하여 입력 신호의 감쇠 한계점 및 증폭 한계점, 증가율과 증가 시점을 결정할 수 있다. Pmin은 KIST의 최솟값을 지정해주는 파라미터로, 입력 신호를 감소시켜 제어 초반부의 쿼드콥터가 목표물을 추적할 때 발생하는 오버슈트를 줄이는 역할을 한다. Pmax는 KIST의 최댓값을 정하는 파라미터이고, 제어 후반부에 쿼드콥터와 목표물 사이의 오차를 줄여 정밀하게 착륙할 수 있도록 하는 파라미터이다. Pg는 증가 기울기 파라미터, Pi는 중심점 이동 파라미터이다. Pg를 조정하여 KIST가 Pmin부터 Pmax까지 증가하는 기울기를 조절할 수 있고, Pi를 변경하여 KIST의 중심점을 시간 축으로 이동시켜 입력 신호를 증폭시키는 시점을 결정할 수 있다. Fig. 5는 Pg와 Pi의 변화에 따른 IST의 형태를 나타낸다. 4가지 파라미터를 조절하여 만들어진 KIST는 기존의 입력 신호와 곱해져 S-Curve 형태의 변형된 입력 신호를 만들어낸다. Pmin, Pmax, Pg, Pi는 아래 사항들을 고려하여 실험적 방법으로 결정하였다.
(1) 오버슈트를 제거하는데 가장 큰 영향을 끼치는 파라미터는 Pmin이다. 따라서 Pmin을 충분히 작은 값을 주어 오버슈트를 제거하되, 상승 시간이 너무 길어지지 않게끔 정해야 한다.
(2) 정상상태 오차를 제거하는데 가장 큰 영향을 끼치는 파라미터는 Pmax이다. 따라서 Pmax는 1보다 크거나 같은 적당한 값으로 결정하여야 한다.
(3) Pi는 증폭 시점을 결정하는 파라미터로, 필요한 증폭 시점에 맞추어 결정하여야 한다.
(4) Pg는 오버슈트 제거와 상승 시간, 증폭 시작 시간, 최대 증폭까지 걸리는 시간 등에 모두 관련이 있기 때문에 Pg를 결정할 때는 위와 같은 사항들을 고려하여 결정하여야 한다.
KIST는 위 사항들을 고려하여 4가지 파라미터를 결정한 이후 이들을 적용한 시그모이드 함수의 형태를 시각적 확인하여 제어 상황을 유추할 수 있기 때문에 PID 제어기의 실험적 제어 이득 튜닝보다 직관적이라는 장점이 있다.
단위 계단 입력과 단위 경사 입력에 대한 IST의 성능을 확인하기 위해 시뮬링크를 이용하여 2차 시스템에 대한 시뮬레이션을 진행하였다. 단위 계단 입력과 단위 경사 입력 때의 PID 제어 이득은 모두 동일하며, 각 입력에 대한 IST 제어 파라미터값은 Table 2와 같이 설정하였다. 단위 계단 입력의 경우 Table 3과 같이 PID 제어기만 사용하였을 때의 상승 시간은 0.065초, 오버슈트는 27.18%, 정착 시간은 0.621초의 성능을 보이는 반면 IST와 PID 제어기를 함께 사용하였을 경우 상승 시간은 0.161초, 오버슈트는 1.04%, 정착 시간은 0.460초의 성능을 보인다. IST를 사용하였을 때가 사용하지 않았을 경우보다 오버슈트와 정착 시간이 감소되는 것을 확인할 수 있지만 상승 시간이 커진 것을 확인할 수 있다. PID 제어기를 사용한 경우, 오버슈트는 제어 초반부의 에러를 줄이기 위해 필요한 제어기 출력보다 더 큰 출력을 발생시켰을 때 생기게 된다. IST는 제어 초반부의 입력 신호를 감소시킨 상태에서 조금씩 증폭시키기 때문에 제어기의 불필요한 출력을 줄여 오버슈트를 제거하는 효과를 가지고 있다. 하지만 제어기의 입력 신호를 감소시킨 후 조금씩 증폭시키는 과정으로 인해 상승 시간이 길어지는 현상이 발생한다. 단위 경사 입력에서는 Table 3과 같이 PID 제어기만 사용한 경우 정상상태 오차가 0.0455였고, IST와 PID 제어기를 함께 사용한 경우에는 0.0227이었다. 경사 신호를 입력하는 경우에는 제어하는 도중에도 입력 신호가 지속적으로 변하기 때문에, 고정된 신호를 추종하는 계단 입력의 경우와 달리 정상상태 오차가 발생하게 된다. IST는 변화하는 입력 신호를 추종하기 위해 제어 후반부의 오차 성분을 증폭시킴으로써 주 제어기의 출력도 함께 증폭시키기 때문에 PID 제어기만 사용한 경우보다 정상상태 오차를 줄일 수 있다. 본 연구에서는 무인항공기의 안정적인 추적과 착륙을 목표로 하기 때문에 상승 시간보다 오버슈트와 정상상태 오차를 더욱 중요한 성능 지표로 판단한다. Figs. 6(a)와 6(b)는 PID 제어기와 IST를 함께 사용한 경우와 그렇지 않은 경우에서의 단위 계단 입력, 단위 경사 입력에 대한 명령 추종 성능을 나타낸다.
IST를 사용한 영상인식 기반의 쿼드콥터 이동 목표물 추적 및 착륙 제어 시스템은 Fig. 7과 같이 구성하였다. 카메라 이미지상에서 목표물의 위치를 나타내는 픽셀 정보인 PT 와 이미지 정중앙을 나타내는 픽셀 정보인 Pc 의 차이인 Pe 를 쿼드콥터와 목표물 사이의 거리 De 로 변환시킨다. 이때, 픽셀 정보의 노이즈 제거를 위해 LPF (Low Pass Filter)를 사용하였다. De 를 쿼드콥터 제어의 입력 신호로 사용할 경우, 오버슈트와 정상상태 오차가 발생하기 때문에 ‘KIST’를 사용하여 변형된 위치 명령인 Xsp 를 만든다. 만들어진 Xsp 를 이용하여 쿼드콥터 제어기를 거쳐 쿼드콥터에게 이동 명령을 내린다. 쿼드콥터의 제어와 위치 및 자세 추정은 PX4에서 수행 한다.
3. 시뮬레이션 환경 구축
본 연구에서는 2장에서 구축한 제어 시스템의 성능을 검증하기 위해 Gazebo를 활용하여 시뮬레이션 환경을 구축하고, 구축한 환경에서 무인항공기와 PC의 통신 체계 및 IST를 적용한 무인항공기의 제어 시스템을 구현하기 위한 데이터 교환 체계를 ROS 기반으로 설계하였다. 3장에서는 ROS를 사용하여 PC와 무인항공기의 통신 체계 구성 및 제어 시스템 구현에 사용한 메시지 통신 구조, 시뮬레이션 환경에서 사용하는 쿼드콥터와 목표물의 모델 및 기능들을 소개하고자 한다. 환경 구축에 사용된 OS는 Ubuntu 18.04, ROS Melodic이며, 시뮬레이터는 Gazebo 9.0 버전을 사용하였다.
3.1 ROS를 활용한 메시지 통신 구조
ROS는 오픈 소스 메타 운영체제로써 일반적인 운영체제에 설치하여 하드웨어 추상화, 저수준 제어, 프로세스 간의 메시지 전달, 패키지 관리 등의 기능을 제공한다.10 본 연구에서는 ROS를 활용하여 무인항공기 이동 목표물 추적 및 착륙 시스템을 구축하고, 통신 구조를 구성하였다. PC를 사용하여 쿼드콥터에 이동 명령을 내리기 위해서는 둘 사이의 통신을 위한 프로토콜이 필요하다. 이러한 통신 프로토콜로 MAVLink (Micro Air Vehicle Link)를 사용하여 PC와 쿼드콥터의 통신 체계를 구축하였다. MAVLink는 Marshaling 라이브러리 형태로 만들어진 통신 프로토콜로, 리소스 혹은 통신 대역의 제약을 가지는 시스템에 사용하기 적합한 통신 방법이다.11 ROS와 PX4를 연결해줄 통신 프로토콜로 MAVLink를 사용하기 위해서는 별도의 통신 노드가 필요하다. MAVROS는 ROS와 PX4 사이의 메시지 통신을 연결해줄 통신 노드 역할을 수행한다.
ROS는 시스템 간의 데이터 송수신에 메시지 통신을 이용하며, 메시지 통신 방법에는 Topic, Service, Action이 있다. Topic은 퍼블리셔가 서브스크라이버에게 지속적으로 데이터를 전송하는 단방향 비동기식 통신 방법이며, Service는 클라이언트가 서버에게 데이터 송신 요청을 할 때만 서버가 클라이언트에게 데이터를 전송하는 양방향 동기식 통신이다. Action은 클라이언트가 서버에게 작업을 요청하였을 때, 서버가 클라이언트에게 작업에 대한 피드백과 작업 결과를 보내주는 양방향 비동기식 통신이다.12
본 연구에서는 각종 센서 데이터 및 제어 명령들을 지속적으로 송신 및 수신하는 것이 가능한 Topic을 활용하여 시스템 간의 통신 체계를 구축하였다. Fig. 8은 본 연구를 위해 제작된 제어 시스템의 메시지 통신 흐름을 나타낸다. ‘Mobile Base’는 쿼드콥터가 추적하고자 하는 이동 목표물을 의미하며, ‘Mobile Base Control’ 노드의 제어 출력에 따라 동작한다. 쿼드콥터와 목표물의 거리를 계산하는데 필요한 정보는 ‘Mobile Base’와 ‘ArUco Marker Detecter’ 그리고 ‘MAVROS’ 노드로부터 얻는다. ‘Mobile Base’ 노드에서 목표물의 고도 정보를 얻고, ‘MAVROS’ 노드로부터 쿼드콥터의 고도 정보 및 상태 정보를 얻는다. ‘Camera’ 노드는 쿼드콥터에 부착된 카메라로 찍은 이미지를 ‘ArUco Marker Detecter’ 노드로 전송하고, 전송받은 이미지를 2.2절의 ArUco Marker 인식 과정을 거쳐 목표물의 픽셀 정보를 얻은 후 ‘Quadcopter Control’ 노드로 보낸다. 상대 거리 계산에 필요한 정보를 모두 얻은 ‘Quadcopter Control’ 노드는 2.4절의 제어 시스템을 거쳐 출력되는 명령을 ‘MAVROS’ 노드로 전송하고, ‘MAVROS’ 노드는 전송받은 위치 명령을 ‘PX4’로 전송하여 쿼드콥터를 움직이게 한다.
3.2 Gazebo 시뮬레이션 환경 구성
본 연구에서는 Gazebo 시뮬레이터를 사용하여 쿼드콥터의 이동 목표물 추적 및 착륙 제어 시스템의 성능 검증을 진행하였다.13 Gazebo 시뮬레이터는 물리엔진을 탑재하고 있기 때문에 실제와 유사한 환경을 구성할 수 있고, 플러그인을 활용하여 센서와 모터의 동작을 구현할 수 있다. 또한 Gazebo 시뮬레이터는 ROS와 연동하여 사용하기에 용이하다.
Fig. 9는 성능 검증 시뮬레이션에 사용한 쿼드콥터와 목표물이다. 쿼드콥터는 IRIS 모델을 사용하였으며, ArUco Marker를 인식할 수 있도록 카메라 플러그인을 적용하였다. 적용한 카메라의 화각은 80o이며, 800 × 800 화소의 이미지를 얻을 수 있다. 그 외 GPS (Global Positioning System), IMU (Inertial Measurement Unit), Barometer 센서 플러그인이 적용되어 있기 때문에 쿼드콥터의 상태를 확인할 수 있다.
목표물로는 착륙 패드가 장착된 모바일 베이스를 사용하였고,14 로봇의 물리적인 특성을 표현할 수 있게끔 URDF (Unified Robot Description Format) 형식으로 제작하였다. 본 시뮬레이션에서는 모바일 베이스의 이동 기능을 구현하기 위해 Skid-Steer 플러그인을 사용하였고, GPS 플러그인을 적용하여 수평 유지 플랫폼의 위도와 경도 그리고 고도 정보를 얻을 수 있도록 제작하였다. 또한 Fig. 10과 같이 수평 유지 플랫폼의 상부에 ArUco Marker를 부착하여 쿼드콥터가 모바일 베이스를 목표물로 인식할 수 있도록 하였다.
4. 무인항공기 이동 목표물 추적 시뮬레이션
이번 4장에서는 3장에서 구축했던 시뮬레이션 환경에서 전반적으로 운용되는 쿼드콥터의 동작 순서, 쿼드콥터의 목표물 추적 및 착륙하는 시뮬레이션의 진행 방법 및 결과를 소개한다. 시뮬레이션은 쿼드콥터가 목표물을 추적하고 착륙하는 상황에, 목표물이 고정되어 있는 경우와 이동하는 경우를 나누어 진행하였고, 이동하는 경우는 이동 목표물의 속력이 저속일 때와 고속일 때를 나누어 진행하였다. 시뮬레이션에서 영상 처리 주기는 30, 무인항공기 이동 목표물 추적 및 착륙 시스템의 하위제어기인 PX4의 위치 제어 주기는 50 Hz이다. 따라서 ROS를 사용한 상위 제어기 주기는 영상 처리 주기보다 느린 20 Hz로 설정하였다. IST의 제어 파라미터는 앞서 언급한 파라미터 튜닝 순서를 따라 결정하였다.
4.1 쿼드콥터 동작 시나리오
Fig. 11은 시뮬레이션에서의 쿼드콥터의 동작 시나리오를 정리한 것이다. 시뮬레이션은 쿼드콥터와 목표물을 10 m 떨어뜨린 상태에서 시작한다. 먼저 쿼드콥터에 시동을 건 이후 이륙 명령을 내린다. 그리고 쿼드콥터가 목표물을 인식할 때까지 GPS 정보를 기반으로 목표물을 쫓아 추적 비행을 진행한다. GPS 기반의 추적 비행 중 목표물에 부착한 ArUco Marker를 인식하였을 때, 영상인식 기반 추적 비행으로 전환한다. 그리고 목표물과 일정 거리만큼 가까워진 경우 목표물에 착륙하도록 명령을 내린다. 착륙이 완료되었다면, 쿼드콥터의 시동을 끈 후 시뮬레이션을 종료한다. 위와 같은 순서로 IST를 사용하였을 경우와 사용하지 않았을 경우를 비교하였다. PX4의 제어 이득은 IST를 사용하였을 때와 사용하지 않았을 때 모두 같은 값으로 진행하고, 목표물의 이동거리가 45 m가 넘어갈 때까지 쿼드콥터가 착륙하지 못하였을 경우 착륙에 실패했다고 판단하여 시뮬레이션을 종료하였다.
4.2 고정 목표물 추적 및 착륙 시뮬레이션
이동 목표물 추적 및 착륙 시뮬레이션을 진행하기 이전에 고정 목표물 추적 및 착륙 시뮬레이션에서 IST를 사용하였을 때 오버슈트의 제거 양상을 확인하였다. 이때, 쿼드콥터의 동작 순서는 4.1절의 시나리오를 바탕으로 진행하였다. Fig. 12는 고정 목표물 추적 및 착륙 시뮬레이션을 진행할 때에 쿼드콥터와 목표물의 시작 위치를 나타낸다. 목표물은 항상 (0, 0)의 자리에 위치하며, 쿼드콥터는 (-10, 0), (0, -10), (-10, -10) 등의 3가지 좌표에서 이륙하여 추적을 시작한다. Fig. 13은 쿼드콥터의 고정 목표물 추적 및 착륙 시뮬레이션의 결과이다. Figs. 13(a), 13(c) 그리고 13(e)는 IST를 사용하지 않았을 경우이고, 13(b), 13(d) 그리고 13(f)는 IST를 사용한 경우이다.
IST를 사용한 경우 사용하지 않은 경우 모두 ArUco Marker를 인식한 이후 목표물에 착륙을 성공하였다. 하지만 IST를 사용하지 않은 경우는 오버슈트가 발생하여 ArUco Marker를 인식한 이후부터 착륙까지 안정적이지 않게 비행하는 반면에, IST를 사용한 경우는 IST를 사용하지 않은 경우에 발생했던 오버슈트를 제거하여 안정적으로 비행했음을 확인할 수 있다.
4.3 이동 목표물 추적 및 착륙 시뮬레이션
쿼드콥터가 이동 목표물을 추적하고 착륙할 때에 IST의 오버슈트 및 정상상태 오차 제거 효과를 확인하기 위해 시뮬레이션을 진행하였다. 쿼드콥터의 동작은 4.1절의 시나리오와 동일하게 진행하였고, Fig. 14와 같이 쿼드콥터와 목표물을 배치하였다. 시뮬레이션은 쿼드콥터가 (-10, 0), (0, -10), (-10, -10)의 좌표에서 출발하여 (0, 0) 좌표로부터 +X축, +Y축, 대각선 방향으로 이동하는 목표물을 쫓아 비행하고 일정 거리까지 가까워지면 착륙하는 방식으로 실험을 진행하였다. 목표물의 이동 속력에 따라 쿼드콥터의 이동 목표물 추적 및 착륙 성능의 차이가 생길 수 있기 때문에 이동 목표물의 속력이 0.4 m/s일 때를 저속으로, 0.8 m/s일 때를 고속으로 이동하는 것이라 상정하여 두 가지 경우를 나누어 시뮬레이션을 진행하였다.
Fig. 15는 쿼드콥터가 (-10, -10)의 좌표에서 이륙하여 +X축 방향으로 저속 이동하는 목표물을 추적하고 착륙할 때에 IST를 사용하지 않았을 경우와 IST를 사용하였을 경우를 나타내는 그림이다. IST를 사용하지 않았을 경우 쿼드콥터가 ArUco Marker를 인식하여 영상인식 기반으로 목표물을 추적할 때에 오버슈트가 발생하여 불안정하게 추적하고 정상상태 오차를 줄이지 못하여 목표물이 45 m까지 이동할 때까지 착륙에 성공하지 못하는 것을 확인할 수 있다. 그에 반해 IST를 사용하였을 경우는 목표물을 추적하는 상황에서 오버슈트가 발생하지 않았고, 빠른 시간 내에 정상상태 오차를 줄여 목표물이 10 m가량 움직였을 때 착륙을 성공하였다. Figs. 16은 15의 경우를 제외한 IST를 사용한 저속 이동 목표물 추적 및 착륙 시뮬레이션 결과이다. Fig. 15(b)와 같이 8가지 상황 모두 이동하는 목표물을 추적할 때 오버슈트 없이 안정적으로 쫓고, 정상상태 오차를 줄여 착륙에 성공하는 모습을 볼 수 있다.
Fig. 17은 +X 방향으로 고속 이동하는 목표물을 (-10, -10) 좌표에 위치한 쿼드콥터가 추적하여 착륙한 결과를 나타낸다. 저속으로 이동하는 경우와 동일하게 IST를 사용하지 않은 경우에서는 오버슈트가 발생하여 기체가 안정적으로 추적할 때까지 시간이 걸리는 반면에, IST를 사용한 경우에는 오버슈트가 발생하지 않아 ArUco Marker를 인식한 이후에 안정적으로 목표물을 쫓아가는 모습을 볼 수 있다. 그리고 IST를 사용하지 않은 경우는 목표물이 45 m까지 이동할 때까지 정상상태 오차를 줄이지 못하여 착륙에 성공하지 못하는 반면에, IST를 사용한 경우는 목표물이 25 m만큼 움직였을 때까지 정상상태 오차를 충분히 줄여 착륙에 성공하였다. Figs. 18은 17(b)의 상황을 제외한 IST를 사용한 경우의 고속 이동 목표물 추적 및 착륙 시뮬레이션의 결과이다. 8가지 모든 경우 영상인식 기반으로 쿼드콥터가 이동 목표물을 추적할 때 발생했던 오버슈트가 사라진 것과 정상상태 오차를 제거하여 착륙에 상공한 결과를 확인할 수 있다.
5. 결론
본 연구에서는 무인항공기가 안정적으로 비행하여 이동하는 목표물을 추적하고 착륙하는 것을 목표로 제어 시스템을 구성하였다. 이때 무인항공기의 목표물 인식을 위해 ArUco Marker를 기반의 영상인식 시스템을 이용하였다. 또한 무인항공기가 목표물을 추적하는 상황에서 발생하는 오버슈트와 정상상태 오차를 제거하기 위해 입력 신호를 조절하는 역할을 수행할 수 있는 IST를 설계하였다. 그리고 이들을 이용한 무인항공기 제어 시스템을 ROS 기반으로 구축하여 Gazebo 시뮬레이터에서 성능을 검증하였다. 실험 결과, IST를 사용하지 않은 경우에 오버슈트가 발생하여 기체가 안정적이지 못하게 움직였고, 정상상태 오차를 줄이지 못하여 고정 목표물 추적을 제외한 모든 상황에 대해 착륙에 실패하였다. 하지만 IST를 사용하였을 때는 고정 목표물, 저속 이동 목표물, 고속 이동 목표물 등 모든 경우에 오버슈트를 제거하여 안정적인 비행을 할 수 있었고, 정상상태 오차를 충분히 줄여 착륙에 성공하였다. 시뮬레이션 환경이 물리 엔진까지 반영하고 있다는 사실을 고려하여 판단하였을 때 무인항공기 제어에 IST를 사용한다면 오버슈트와 정상상태 오차를 줄이는데 기여할 수 있고, 이로 인해 무인항공기의 추적 비행 혹은 착륙을 안정적으로 수행할 수 있을 것으로 예상한다. 또한 IST를 사용한 경우 0.8 m/s의 속도로 움직이는 이동 목표물은 무인항공기가 착륙에 성공할 때까지 30 m가량 움직이게 되고, 그때까지 37.5초가 소모된다. 따라서 IST의 최적의 형태를 찾아 무인항공기가 이동 목표물에 착륙할 때까지 걸리는 시간을 줄이는 연구를 추후에 진행하고자 한다.
Acknowledgments
This work is supported by the Korea Agency for Infrastructure Technology Advancement (KAIA) grant funded by the Ministry of Land, Infrastructure and Transport (No. 21CTAP-C152053-03).
REFERENCES
- Ablay, G., “Variable Structure Controllers for Unstable Processes,” Journal of Process Control, Vol. 32, pp. 10-15, 2015. [https://doi.org/10.1016/j.jprocont.2015.04.017]
- Sari, N. N., Jahanshahi, H., and Fakoor, M., “Adaptive Fuzzy PID Control Strategy for Spacecraft Attitude Control,” International Journal of Fuzzy Systems, Vol. 21, No. 3, pp. 769-781, 2019. [https://doi.org/10.1007/s40815-018-0576-2]
- Bonfe, M., Mainardi, E., and Fantuzzi, C., “Variable Structure PID Based Visual Servoing for Robotic Tracking and Manipulation,” Proc. of the IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 396-401, 2002.
- PX4 User Guide, “Controller Diagrams,” https://docs.px4.io/master/en/flight_stack/controller_diagrams.html, (Accessed 21 JANUARY 2022)
- Kalaitzakis, M., Carroll, S., Ambrosi, A., Whitehead, C., and Vitzilaios, N., “Experimental Comparison of Fiducial Markers for Pose Estimation,” Proc. of the International Conference on Unmanned Aircraft Systems, pp. 781-789, 2020. [https://doi.org/10.1109/ICUAS48674.2020.9213977]
- OpenCV, “Detection of ArUco Markers,” https://docs.opencv.org/4.x/d5/dae/tutorial_aruco_detection.html, (Accessed 21 JANUARY 2022)
- Marut, A., Wojtowicz, K., and Falkowski, K., “ArUco Markers Pose Estimation in UAV Landing Aid System,” Proc. of the IEEE 5th International Workshop on Metrology for AeroSpace, pp. 261-266, 2019. [https://doi.org/10.1109/MetroAeroSpace.2019.8869572]
- Sani, M. F. and Karimian, G., “Automatic Navigation and Landing of an Indoor AR. Drone Quadrotor Using ArUco Marker and Inertial Sensors,” Proc. of the International Conference on Computer and Drone Applications, pp. 102-107, 2017. [https://doi.org/10.1109/ICONDA.2017.8270408]
- Yun, S.-Y. and Lee, J., “Speed Control of Permanent Magnet Brushless DC Motor Using Variable Gain PI Controller,” The Transactions of the Korean Institute of Electrical Engineers, Vol. 62, No. 9, pp. 1234-1239, 2013.
- ROS, “Documentation,” https://wiki.ros.org/Documentation, (Accessed 21 JANUARY 2022)
- Koubâa, A., Allouch, A., Alajlan, M., Javed, Y., Belghith, A., et al., “Micro Air Vehicle Link (Mavlink) in a Nutshell: A Survey,” IEEE Access, Vol. 7, pp. 87658-87680, 2019. [https://doi.org/10.1109/ACCESS.2019.2924410]
- Quigley, M., Gerkey, B., and Smart, W. D., “Programming Robots with ROS: A Practical Introduction to the Robot Operating System,” O'Reilly Media, Inc., pp. 31-50, 2015.
- Meyer, J., Sendobry, A., Kohlbrecher, S., Klingauf, U., and Von Stryk, O., “Comprehensive Simulation of Quadrotor UAVs Using ROS and Gazebo,” Proc. of the International Conference on Simulation, Modeling, and Programming for Autonomous Robots, pp. 400-411, 2012. [https://doi.org/10.1007/978-3-642-34327-8_36]
- Lee, S., Kawk, J., and Chu, B., “Study of a Leveling Mobile Platform for Take-Off and Landing of Unmanned Aerial Vehicles,” Journal of the Korean Society of Manufacturing Process Engineers, Vol. 19, No. 4, pp. 85-92, 2020. [https://doi.org/10.14775/ksmpe.2020.19.04.085]
M.Sc. candidate in the Department of Mechanical Engineering, Kumoh National Institute of Technology. His research interest is robotics.
E-mail: bakufo100@gmail.com
M.Sc. candidate in the Department of Mechanical Engineering, Kumoh National Institute of Technology. His research interest is robotics.
E-mail: kjykwjy@naver.com
Professor in the Department of Mechanical System Engineering, Kumoh National Institute of Technology. His research interest includes robotics, mechatronics, intelligent control and reinforcement learning.
E-mail: bschu@kumoh.ac.kr