김동균
(Dong-gyun Kim)
1iD
이병진
(Byoung-jin Lee)
1iD
성상경
(Sang-Kyoung Sung)
†iD
-
(Dept. of Mechanical and Aerospace Engineering, Konkuk University, Korea.)
Copyright © The Korean Institute of Electrical Engineers(KIEE)
Key words
Process-In-the-Loop (PIL), autonomous exploration, path planning, simulator
1. 서 론
과거에는 군사용, 농업 또는 측량 등으로 야외의 넓은 지역을 탐사하는 목적으로 무인기가 개발 및 사용되었다. 그러나 최근에는 무인기가 소형화되면서
동굴이나 창고, 터널 등의 실내를 탐사 및 점검하는 목적으로 많은 연구가 이루어지고 있다(1-3).
전장 또는 재난 상황에서는 건물내부 또는 지하시설과 같은 곳을 탐사해야 하는 경우가 발생한다. 이때 사람을 바로 투입되면 위험할 수 있기에 무인기를
우선 투입하여 환경이나 상태를 파악하는 것이 좋다. 실내의 경우 GPS 및 통신 불가능한 환경이 대부분이므로 조종 및 모니터링이 불가하다. 따라서
무인기가 자율적으로 임무를 수행할 필요성이 있다. 대표적으로는 DARPA의 FLA 프로그램이 있으며 다른 연구들도 활발히 진행되고 있다(4).
이러한 필요성에 따라 최근 복잡한 실내 공간에 대한 실시간 3차원 지도 작성과 위치를 인식하는 SLAM 기술(5)과 획득한 지도를 기반으로 장애물 회피 및 경로 계획 기술이(6,7) 많이 연구되고 있다. 그러나 실내에서 알고리즘을 검증하는 것에 있어서 무인기의 파손과 인적·물적 사고 등의 위험성과 비용적 측면의 문제가 있다.
따라서 알고리즘의 안정성과 성능을 사전에 확인하고 검증하기 위해서 시뮬레이터가 필요하다. 시뮬레이터는 가상의 공간에서 실제 무인기의 움직임을 모방하여
이동하기 때문에 비용적, 시간적 측면에서 빠른 개발을 할 수 있다.
시뮬레이터는 알고리즘 등의 검증을 위해 하나 또는 이상의 컴퓨터에서 알고리즘을 실행하고 검증하는 SILS(Software In the Loop Simulator),
가상 환경에서 모델이 동작하고 실제 모델에 탑재되는 컨트롤러가 제어하는 PILS(Process In the Loop Simulator), 마지막으로
모델의 구동부를 측정장치에 장착하여 제어기가 구동부를 제어하는 HILS(Hardware In the Loop Simulator) 등이 있다. 본 논문에서는
PILS 시뮬레이터를 설계하여 다양한 자율비행 관련 알고리즘의 구현 및 탑재 성능을 검증하였다(8). 마지막으로 본 연구는 국방과학연구소의 ‘전장상황에서의 자율비행 경진대회’의 활용을 목적으로 개발을 진행하였다. 따라서 대회 목적에 맞는 자율비행
및 장애물 회피, SLAM, 표적인식 알고리즘의 개발과 대회 규정에 부합하는 임의 실내 지형을 가상적으로 생성하여 통합 알고리즘에 대한 검증을 수행하였다.
2. 자율비행 임무 알고리즘
2.1 알고리즘 구성
그림 1은 PILS 시뮬레이터로 구성되는 전체 알고리즘 구성도를 도시한다. 먼저 Lidar, Camera, Pixhawk로 표시된 오른쪽 블록들은 독립적
모듈로 구동되는 비행시뮬레이터에서 생성된 가상의 센서 데이터이며, 왼쪽의 Mini PC는 탑재되는 임무 컴퓨터를 표현한다. 센서 모듈과 임무 컴퓨터
간의 통신은 이종 하드웨어를 가정하여 ROS를 사용하였다. ROS는 로봇 응용프로그램 개발을 위한 로봇 플랫폼으로 패키지와 메세지 생성 및 관리 등
다양한 툴을 제공한다. 모든 알고리즘은 ROS의 패키지 통해서 실행되고 메세지를 생성하고 수신받아 전송된 데이터를 기반으로 연산이 수행된다. 비행체
탑재를 가정한 미니 컴퓨터에서는 탐색임무 비행을 위한 경로 계획과 장애물 회피, SLAM과 실시간 맵핑, 그리고 표적 영상인식 알고리즘이 통합되어
실시간 연산이 수행된다. 본 연구의 목표인 통합된 알고리즘은 멀티콥터가 미지의 실내환경에서 탐사를 통해 실내 모든 영역의 지도 생성과 물체의 인식을
수행하는 것을 목표로 한다. 따라서, 예측이 불가능한 환경에서 경로를 생성해야하며 무인기의 특성상 비행시간이 한정되어 있기 때문에 빠른 속도의 경로계획이
요구되는 특징이 있다. 각 요소 알고리즘은 세부 절에서 설명하도록 한다.
그림. 1. 전체 자율비행 알고리즘 블록도
Fig. 1. Overall Block Diagram of the Proposed Drone Autonomous Exploration
2.2 SLAM
SLAM(Simultaneous localization and mapping)이란 카메라나 Lidar(Light Detection And Ranging)
등의 센서를 통해 주변환경을 인식하고 자신의 위치와 자세를 추정하며 지도를 생성하는 기술이다(9). 본 논문에서 사용된 SLAM은 LIO (LIDAR Inertial Odometry)로 3차원 LIDAR에서 얻은 데이터로 3차원 NDT 기반 스캔
매칭으로 위치와 자세를 추정한다. 포인트 클라우드 정보를 그대로 사용하여 매칭하는 ICP 방법과 비교하면 처리속도와 매칭 성능이 매우 좋다. 추정된
위치와 자세로 지역 지도를 생성하고 이것을 누적시켜 전역 지도를 생성한다. 그리고 다시 생성된 전역 지도와 3차원 LIDAR 데이터를 매칭하여 LIDAR
Odometry를 수행한다.
이렇게 추정된 위치, 자세 결과값과 IMU에서 획득한 가속도와 각속도 값으로 강결합 기반의 LIO를 수행한다. LIO는 IMU와 LIDAR 측정치의
잔차를 최소화하기 위해 아래 식(1)과 같이 수치 최적화 문제를 풂므로써 포즈 상태변수를 추정하게 된다.
식(1)에서 $r_{P}(X)$는 이전 상태값이고, $r_{I}(z_{I b_{k+1}}^{b_{k}},\: X)$와 $r_{L}(z_{L b_{k+1}}^{b_{k}},\:
X)$는 각각 IMU와 LIDAR의 측정치 잔차를 구하는 비용함수다. 상태변수를 추정하기 위해 Ceres Solver를 사용해 측정치의 잔차를 최소화하였다.
$P_{k}$, $V_{k}$, 그리고 $Q_{k}$는 각각 위치, 속도, 자세(쿼터니온)을 의미 하며 3x1, 3x1, 4x1 행렬이다. 또한 $b_{a}$와
$b_{w}$는 가속도와 자세의 바이어스를 의미한다. 이렇게 구한 최종적인 위치와 자세 추정값을 지도와 함께 자율비행, 표적 탐지 등 다른 알고리즘에
전달한다.
그림. 2. SLAM LIO 알고리즘
Fig. 2. SLAM LIO Algorithm
2.3 표적 인식
카메라를 사용하여 RGB 이미지로 군인을 실시간으로 표적 인식하고 위치와 사진을 저장한다. 본 논문의 플렛폼은 무인기로써 Payload와 전원 출력에
제한이 있어 계산 성능이 제한된다. 이 문제를 해결하기 위해 YOLO 알고리즘을 사용하였다. 이것은 처리과정을 단순화하여 기존의 다른 실시간 알고리즘에
비해 빠르고 높은 정확도를 가지고 있다. YOLO는 다양한 버전의 알고리즘이 있는데 이 중 정확도는 조금 낮더라도 속도가 빠른 Tiny YOLOv3을
사용하였다(10).
그림. 3. 표적 인식 알고리즘
Fig. 3. Target Detecting Algorithm
그림. 4. 자율비행 알고리즘
Fig. 4. The caption for a figure must follow the figure
3. 실내환경 경로 탐색 알고리즘
자율비행은 총 3개의 알고리즘에 의해 수행된다. 첫번째는 장애물 회피 알고리즘으로 비행 중 장애물을 인식하여 회피하는 기능을 수행한다. 특히 장애물
회피는 멀티콥터의 충돌 및 파손을 방지하기 위해 가장 높은 우선 순위를 갖도록 설계하였다. 두번째는 복귀 알고리즘으로 멀티콥터의 원활한 회수를 위해
출발점 좌표로 돌아오는 기능을 수행한다. 탐사를 마치거나, 배터리의 잔량이 일정 수준 이하로 떨어지면 탐사를 중단하고 복귀 알고리즘을 통해 출발점으로
돌아오는 절차를 취하도록 하였다. 마지막으로 탐사 알고리즘이 수행되는데, 미지의 환경을 탐사하기 위해서는 새로운 비행 지역으로 접근하여 주변 환경에
대한 스캔을 수행한다. 만약 복수의 미지의 지역이 있을 경우 어떤 지역으로 가느냐에 따라 탐사 시간이 달라지므로 선택적 경로 판단이 탐사 효율을 결정하게
된다. 본 논문에서는 한정된 연산 성능과 비행시간의 제한을 고려하여 탐사 및 복귀 경로 결정에 좌수법 및 최적화 기법을 결합한 복합형 탐사 로직을
적용하였다.
그림. 5. 장애물 회피 알고리즘
Fig. 5. The caption for a figure must follow the figure
3.1 장애물 회피 알고리즘
운용하는 비행체는 미지의 환경에서 탐사하므로 장애물과 벽 등의 사전 맵 정보를 활용할 수가 없다. 따라서 탑재 점군센서를 통한 장애물과 벽의 탐지와
비행체와의 상대적 기하 관계에 따른 회피기동이 최우선의 운용조건을 제공한다. 본 기체에 탑재되는 3차원 LIDAR는 10Hz 주기로 측정값을 내보내는데,
충돌 방지 알고리즘은 장애물을 빠르게 탐지하기 위해 이륙 후 측정값을 가공하지 않고 사용하여 센서 주기에 맞추어 동작한다. 비행 중 이동체 혹은 새로운
맵에서 갑작스럽게 발견된 장애물이 일정 영역 안에서 감지되면 멀티콥터는 작동 중인 경로계획 알고리즘을 멈추고 충돌 회피 알고리즘을 수행하게 된다.
이를 통해 장애물 위치벡터와 기체 위치를 반영한 갱신된 충돌 회피점으로 경로를 수정하여 비행하고, 장애물이 센서 검출 범위내에 없으면 다시 탐사 모드를
수행토록 하였다. 또한 감지된 장애물은 갱신된 맵에 포함되어 이후 경로계획 알고리즘에 의해 장애물을 피해가는 경로가 새롭게 생성되도록 하였다.
비행 중 센서 검출범위를 고려한 임의의 영역 $r_{\min}$ 안에서 장애물이 감지되면, LIDAR 측정치를 통해 장애물의 위치 $\vec{P}_{o}^{b}$를
연산하게 된다. 멀티콥터는 영역 밖의 위치 $\vec{P}_{r}^{b}$를 구하게 되는데, 이는 임의의 영역보다 $r_{b}$만큼 더 이동한 위치이다.
한편, $\vec{P}_{o}^{b}$와 $\vec{P}_{r}^{b}$는 LIDAR의 측정치로 계산된 위치이기 때문에 몸체 좌표계 값이며, 이를
이용하여 새로운 경로점 $\vec{P}_{w}^{n}$을 계산하기 위해
식(2)를 수행하게 된다. 즉, $C_{b}^{n}$를 통해 $\vec{P}_{o}^{b}$와 $\vec{P}_{r}^{b}$는 몸체 좌표계에서 기준 항법좌표계로
변환되며, 기체의 현재위치 $\vec{P}_{m}^{n}$에 더하여 새로운 경로점 $\vec{P}_{w}^{n}$을 출력하여 비행제어컴퓨터로 전달된다.
3.2 경로계획 알고리즘
미지의 공간을 나아가는 탐사 알고리즘은 최종 목적지가 없이 반복적으로 목적지를 수정하고 다시 계산한다. 알고리즘이 연속적으로 돌아가는 방법은 여러
가지가 있는데 크게 2가지이다. 특정 주기마다 계산하는 방법과 이전 웨이포인트와 현재 무인기의 위치가 일정 거리 이상 떨어졌을 경우이다. 본 논문에서는
후자의 방법을 사용토록 한다. 경로계획 알고리즘은 A*, D*, 포텐셜필터, RRT* 등 다양한 알고리즘이 있지만, 대표적으로 RRT* 알고리즘이
탐사 알고리즘에서 많이 사용된다. 그러나 RRT*는 Node가 많아질수록 연산에 걸리는 시간의 기하급수적 증가와 메모리를 많이 사용하는 단점이 있다.
따라서 반복적으로 알고리즘을 수행하는 데 있어서 많은 컴퓨팅 성능이 요구되는 단점을 내포한다.
표 1. 경로계획 연산 시간
Table 1. Runtime of Path-Planning
단위 [s]
|
평균
|
최대
|
최소
|
Cost
|
RRT*[1500]
|
2.5499
|
2.6994
|
2.4179
|
17.9941
|
RRT*[2000]
|
4.2912
|
4.5007
|
3.8175
|
15.9222
|
RRT*[3000]
|
11.9832
|
18.7048
|
8.4028
|
15.5080
|
Left-Hand
|
0.00034
|
0.00069
|
0.00091
|
x
|
표 1은 RRT*[노드 개수]와 Left-Hand의 연산 시간을 측정한 표이다. 1500개 이하의 노드 개수로는 경로의 완성이 잘되지 않아 제외했다. RRT*의
노드 개수가 늘어남에 따라 Cost는 작아지지만, 연산 시간이 기하급수적으로 늘어나는 것을 확인했다. 그러나 노드 개수 1500개에서도 연산 시간이
약 2.5초 이상 소요되는 것을 확인하였으며 이는 실시간 탐사에 사용하기 힘들다.
그림. 6. Left-Hand Rule 알고리즘
Fig. 6. Left-Hand Rule Algorithm
본 논문에서 도입한 복합형 탐사 로직을 적용하기 위하여, 우선 비행 전반부 미지환경 탐사시에는 일반적으로 미로 등을 빠져나가는 데 많이 사용되는 Left-Hand
Rule을 활용하여 벽면을 트래킹하는 비행 기동을 수행토록 하였다. 이때, SLAM에서 획득한 실시간 지도를 기반으로 알고리즘이 연속적으로 수행되며
왼쪽에 벽이 없을 경우 벽을 찾을 때까지 전진하고, 3면이 막혀 있을 경우 U턴 등을 한다.
위 알고리즘만 사용하면 박스 형태의 지형만 탐사 가능하므로 다음 수식을 적용하여 다양한 형태의 공간에 대해서도 비행할 수 있도록 하였다.
그림. 7. RRT* 알고리즘
Fig. 7. RRT* Algorithm
식(6)의 fit는 least-square 함수를 의미하며, 입력의 $L_{x}$, $L_{y}$는 무인기의 왼쪽 벽면의 Point Cloud data,
출력인 방정식의 상수이다. 방정식의 상수에서 $f_{2}$를 사용하여 1차 함수 형태로 스캔되는 벽면의 양쪽 끝점의 각도를 구해 무인기의 Yaw $\psi$를
보정한다.
다음으로 일정부분 미지환경에 대한 매핑이 확보된 이후 탐사 및 복귀 알고리즘은 최적화 기반 경로계획법을 이용하도록 하였다. 한편, 멀티콥터는 배터리의
용량, 무게, 기동 방법 등에 따라 제한적인 비행 시간을 가지고 있다. 만약 통신이 제한된 실내 탐사 중 배터리가 방전될 경우 멀티콥터의 위치를 알
수 없어 회수 등에 어려움을 갖는다. 따라서 배터리가 일정 수준 이하로 전압이 떨어질 경우 출발 지점으로 돌아오기 위해 RRT* 기법을 이용한 경로계획
알고리즘을 고안하였다. 탐사 알고리즘과는 다르게 출발점과 목표점이 정해져 있기 때문에 단 한번의 연산으로 최적의 경로를 찾을 수 있는 특징이 있다.
본 논문에서는 멀티콥터의 동역학적 특성을 고려한 경로 계획으로 최대한 적은 에너지 소모로 복귀하는 알고리즘(11)을 도입하였다. 그림 7은 RRT* 알고리즘의 흐름도이며, 임의로 생성된 위치 $P$와 $P$를 통해 생성된 node $x$를 통해 경로를 계획해 간다. node $x$는
위치뿐만 아니라 Yaw의 정보도 같이 가지고 있어 기체가 나아가야 할 방향을 알려줄 수 있다.
일반적으로 알려진 RRT* 알고리즘에서는 비용(cost) 계산을 수행하기 위하여 거리만을 이용하나, 제안된 알고리즘에서는 탐사 영역에서 복귀 생존성을
높이기 위한 방안으로 멀티콥터가 소모하는 에너지까지 포함하도록 설계하였다. 구체적으로 거리$d$에 대한 가중치$W_{d}$와 에너지$E$에 대한 가중치$W_{e}$를
이용하여 복귀 조건에 따라 가변적 할당이 가능하도록 하였다. 비용함수에 포함되는 에너지는
식(9)과 같이 공기저항계수$C_{d}=\left[C_{d, x} C_{d, y} C_{d, z}\right]$와 멀티콥터의 속도 $\vec{V}=\left[\begin{array}{ll}V_{x}
& V_{y} & V_{z}\end{array}\right]^{T}$로 힘을 구하고 거기에 거리를 곱하는 방법으로 구할 수 있다. 결론적으로 에너지
가중치를 적용하여 동일한 목표점에 대해 에너지 소모가 상대적으로 낮은 경로 계획이 가능하도록 함으로써, 생존 복귀확률을 높일 수 있는 장점이 있다.
4. 시뮬레이터 구현 및 성능 분석
4.1 하드웨어 구성
PILS 시스템의 하드웨어는 총 3개로 나누어진다. 첫번째는 드론의 동역학적 시뮬레이션과 각 센서 데이터 생성을 위한 시뮬레이션 컴퓨터이다. 두번째는
시뮬레이션용 컴퓨터에서 생성된 센서 데이터로 SLAM과 자율비행 등의 연산을 수행하는 mini 컴퓨터, 마지막으로 기체의 위치 및 자세를 제어하기
위한 Pixhawk이다. Pixhawk의 펌웨어는 PX4를 사용하였다. 그림 8은 PILS 시뮬레이터를 위한 하드웨어 구성도를 나타내며, 각 요소별 연동 데이터와 통신부를 제시하고 있다.
시뮬레이션 컴퓨터의 시뮬레이터는 Gazebo를 사용하였다. Gazebo는 각 물체간의 힘과 토크에 대한 상호 작용을 실시간으로 시뮬레이션 하는 오픈소스
기반의 3차원 시뮬레이터이다. Gazebo에서는 물체들의 상호 작용 뿐만 아니라 IMU, Camera, Lidar 등 여러 센서를 부착하여 데이터를
획득할 수 있다. 이러한 물체에 대한 3차원 렌더링과 가상환경에서의 센서 데이터를 획득하기 위해서 컴퓨터의 성능이 좋아야 한다.
miniPC는 센서 DAQ, SLAM, 영상 표적 인식, 경로 계획 등의 무인기에서 임베디드가 연산할 수 없는 고성능이 필요한 알고리즘을 연산하기
위한 컴퓨터이다. 실제로 기체에 탑재되는 것과 동일한 컴퓨터를 사용하여 알고리즘 연산의 한계를 확인하고 현실과 동일한 시뮬레이션이 가능하다.
그림. 8. PILS 구성도
Fig. 8. The caption for a figure must follow the figure
표 2. 시뮬레이션 컴퓨터 사양
Table 2. The caption must be followed by the table
CPU
|
Intel i7-3770 (3.40 GHz)
|
RAM
|
32 GB
|
GPU
|
Nvidia Geforce GTX 1070 ti
|
OS
|
Ubuntu 16.04
|
본 논문에서 사용한 miniPC는 Intel사의 NUC로 무게가 가볍고 크기가 작지만 일반적인 컴퓨터와 거의 같은 성능을 가지고 있다. 그러나 GPU가
CPU안에 내장되어 있는 것을 사용하기 때문에 기계학습이나 딥러닝과 같이 GPU의 성능을 중요시 하는 알고리즘은 수행하기가 힘들다. 이를 해결하기
위해 연산보조 장치인 Intel사의 Neural Compute Stick 2 (NCS2)를 사용하였다.
표 3. 미니컴퓨터 사양
Table 3. The caption must be followed by the table
CPU
|
Intel i7-8559U (2.70 GHz)
|
RAM
|
32 GB
|
GPU
|
없음
|
OS
|
Ubuntu 16.04
|
멀티콥터의 위치 및 자세 제어를 위해 비행제어기는 Pixahwk를 사용하였다. Pixhawk는 오픈소스 기반의 저비용, 고성능 제어기로써 멀티콥터
뿐만 아니라 고정익기, 보트, 자동차등 다양한 플렛폼을 제어한다. 최근에는 취미용 뿐만 아니라 산업계와 연구용으로도 많이 사용되고 있다. 본 논문에서는
Pixhawk4 mini를 사용하였으며 펌웨어는 PX4를 사용하였다.
4.2 통합 시뮬레이터 성능 분석
시뮬레이터와 알고리즘의 성능을 검증을 위해 2가지의 실내 비행 환경을 구성하였다. 비행 환경은 Gazebo 상에서 가상의 공간을 만들었으며, 멀티콥터는
만들어진 가상의 공간에서 비행을 비행하게 된다.
그림. 9. 1번 코스 배치도
Fig. 9. Course 1 Layout
그림 9은 첫번째 코스이다. 입구와 출구가 존재하는 공간에 장애물들을 배치하여 SLAM, 탐사 성능, 장애물 회피 성능 등을 확인한다. 다양한 높이 벽과
상자들을 배치하여 장애물 회피 성능을 검증하였으며 입구에서 이륙해서 출구로 나오는 시간을 측정하여 탐사 속도를 확인하였다.
그림. 10. 코스 1 시뮬레이션 결과
Fig. 10. Simulation Result from Course NO.1
그림 10에서 점은 SLAM에서 형성된 점군으로 이루어진 지도이고 연두색 선은 멀티콥터가 지나간 경로이다. 이 결과를 통해 SLAM의 실시간 맵핑 성능을 검증할
수 있었으며 실시간 맵을 이용한 자율비행 및 장애물 회피 성능을 검증할 수 있었다.
그림 11의 왼쪽 그림은 벽을 따라 탐사 중에 장애물을 만나 회피하는 비행 결과의 일부 경로를 확대한 그림이다. 그림에서 GT, SLAM, PX4는 각각 비행시뮬레이터에서
수치적으로 구한 참궤적(Ground truth), 라이다 점군 데이터를 이용한 SLAM 위치해, Pixhawk 관성센서와 결합한 항법해를 의미한다.
일부 구간에서 Waypoint에 접근하지 못하여 특정 구간을 반복해서 회전하지만, SLAM이 지도를 잘 생성한 것을 확인할 수 있었다. 또한 시뮬에이터에서
계산된 위치값과 SLAM의 위치 추정값이 오차가 거의 없는 것을 확인할 수 있다.
그림. 11. 코스 1 시뮬레이션 결과
Fig. 11. Simulation Result from Course NO.1
그림 11의 오른쪽은 탐사 중에 U턴하여 특정 지점까지 되돌아와 탐사를 다시 시작하는 비행 경로이다. SLAM 결과를 보면 동일 벽에 대해 간격을 두고 중복하여
지도를 생성한 것을 확인할 수 있다. 그러나 발산하지는 않았으며 오차가 크지 않기 때문에 탐사에는 문제가 없는 것을 확인할 수 있다.
그림. 12. 코스 2 & 시뮬레이션 결과
Fig. 12. Course 2 & Simulation Result
두번째 코스의 임무는 탐사 후 다시 출발 지점으로 돌아오는 것이다. 무인기의 경우 배터리 등의 이유로 비행 시간이 한정되어 있기 때문에 정해진 시간
내에 최대한 많은 공간을 비행한 후 출발 지점으로 복귀해야 한다. 시뮬레이터의 경우 무한정 비행이 가능하지만 실제 비행시간 등을 반영하여 이륙 후
5분이 지나면 복귀 알고리즘이 실행되도록 하였다. 또한 표적인식을 위해 중간 중간에 사람 형태의 마네킹을 배치하였다.
그림. 13. 코스 2 - 시뮬레이션 결과
Fig. 13. Result of Simulation from Course 2
그림 12에서 왼쪽 그림의 짙은 연두색 선은 탐사 알고리즘의 경로이고 빨간색 선은 복귀 알고리즘의 경로이다. 이 결과로 탐사 알고리즘이 멀티콥터의 크기로 인해
작은 문에서 충돌하는 것을 확인하였고 튜닝을 통해 작은 문은 지나치는 것을 확인 가능하다. 또한 이륙 후 5분이 지났을때, 복귀 알고리즘이 작동하여
기체가 다시 출발 지점으로 돌아오는 것을 확인하였다.
표 4. 위치 RMSE
Table 4. RMSE of Position
단위 [m]
|
X
|
Y
|
Z
|
3D
|
SLAM #1
|
0.0878
|
0.1059
|
0.0429
|
0.0832
|
PX4 #1
|
0.0998
|
0.1182
|
0.0406
|
0.0924
|
SLAM #2
|
0.0804
|
0.1307
|
0.0377
|
0.0912
|
PX4 #2
|
0.0963
|
0.1405
|
0.0398
|
0.1010
|
SLAM #3
|
0.1396
|
0.1118
|
0.0387
|
0.1056
|
PX4 #3
|
0.1537
|
0.1158
|
0.0381
|
0.1133
|
표 5. 자세 RMSE
Table 5. RMSE of Attitude
단위 [deg]
|
Roll
|
Pitch
|
Yaw
|
SLAM #1
|
3.7407
|
3.5702
|
4.1247
|
PX4 #1
|
1.6496
|
0.6246
|
5.0450
|
SLAM #2
|
3.6726
|
3.5637
|
4.2032
|
PX4 #2
|
1.1966
|
0.5180
|
2.5923
|
SLAM #3
|
4.2697
|
3.4582
|
3.6685
|
PX4 #3
|
1.4309
|
0.4642
|
4.5677
|
그림 13은 일부 비행 구간의 확대한 그래프이며 그림 상의 번호 순서로 비행하였다. Gazebo에서 출력되는 Ground True와 SLAM에서 계산한 위치
그리고 PX4에서 출력되는 위치를 표시한 그래프이다. 결과를 보면 비행 초기에는 SLAM이 위치를 잘 추정하는 것으로 보이나 비행 시간이 증가함에
따라 오차가 커지는 것으로 확인할 수 있었다. 이는 Odometry 특성상 오차가 누적되어 발생하는 문제로 보인다. 이것은 Loop-Closing
등을 사용하여 문제를 해결할 수는 있으나 Loop-Closing은 맵이 커짐에 따라 연산량도 증가하여 제한된 컴퓨팅 성능에서는 사용하기 힘들다. 따라서
비행시간 등에 제한을 주거나 특정 시점에 멈추어 Loop-Closing을 수행하여 오차를 보정하고 다시 비행하는 등의 방법을 사용해야 할 것으로
보인다.
표 4 및 표 5는 코스 3에서 3번의 비행 시뮬레이션을 수행한 결과이며, SLAM과 PX4의 위치와 자세 오차(RMSE: Root Mean Square Error)를
각각 도시한다. 각 오차는 Gazebo 시뮬레이터에서 계산된 기준 위치값을 Ground True로 설정하고, 동일 시간에 출력된 SLAM 결과와 PX4
출력의 차를 전체 비행시간에 걸쳐 누적하여 계산하였다. PX4의 항법해는 SLAM에서 계산된 위치와 자세각을 입력으로 사용하여 칼만필터 측정치 갱신
추정값으로 계산된다. 즉, PX4는 SLAM에서 계산된 값으로 위치와 자세를 보정하므로, 비행 시간 경과에 따라 맵 오차 누적시 항법 정확도가 저하되는
특성이 관찰된다. 종합적인 추정 성능을 분석할 때, 위치 오차의 경우 SLAM에서의 포즈 추정 정확도가 서브 미터 수준으로 양호하므로 관성 결합의
효과가 크게 부각되지 않는 수준으로 관찰된다. 반면, 자세 오차의 경우 짧은 갱신주기 동안 각속도 적분을 통한 복합항법의 자세 추정 정확도가 SLAM
포즈 추정결과에 비해 우수함을 확인할 수 있다. 특히 pitch축 자세 오차는 멀티콥터 전진비행 기동시 수직축 가관측성이 높아지므로, 관성결합의 오차가
1도 이내로 추정되는 성능을 보였다. 한편 수직축 자세오차인 헤딩각은 상대적으로 큰 오차를 보이는데 이는 긴 평행 복도와 같이 단순한 비행환경에서
크게 누적된 오차 성분에 기인한다. 표 5에서 복도 모서리나 방 내부와 같이 회전 기동이 있는 시나리오의 경우(#2) 헤딩 오차가 2.5도 수준임을 관찰할 수 있다. 결론적으로 앞서 결과는
항법 오차가 반영된 최종적인 비행제어 정확도를 제시하므로 경진대회에서 제시하는 실내비행 환경을 고려할 때 요구성능을 만족할 수 있을 것으로 판단된다.
통합 알고리즘의 마지막 구성요소는 그림 12와 같이 탐사 영역에서 임의로 배치된 표적물에 대한 학습기반 인식 기능이다. 탑재된 표적인식 알고리즘은 표적물을 모사한 마네킹을 학습시켜 학습된 데이터를
Mini PC에 올린 후 NCS2를 통해 연산토록 한다. 최종적으로 비행 중에 실시간으로 카메라를 통해 표적을 인식하여 표적의 위치 및 사진을 저장하는
기능을 수행한다.
그림. 14. 코스 2 - 표적 인식
Fig. 14. Result of Simulation from Course NO.2
탐사 비행 중 카메라는 실시간 탐색루프를 구동하여 임의의 장소에 배치된 목표물이 카메라에 포착될 경우, 기체와 목표물의 상대적 기하관계에 상관없이
인식 및 결과 처리를 하도록 하였다.
그림 14는 앞서 실내환경에 임의로 배치된 3개의 마네킹에 대하여 각각의 표적 인식 결과를 도시한다.불연속적인 이미지 프레임상에서 목표물의 크기 및 회전각
여부에 상관없이 목표물 추적 바운딩 박스와 픽셀기반 위치 결정이 됨을 확인할 수 있으며, 유효 프레임 시간비율로 계산한 인체 목표물의 인식률은 약
86\% 수준으로 측정된다.
5. Conclusion
실내 탐사를 위한 비행 알고리즘의 개발과 성능 검증을 위해 PIL 시뮬레이터를 설계하였다. 특히 드론의 생존 및 임무 수행을 위하여 필요한 다양한
알고리즘을 통합하고 이를 실시간 운용할 수 있는 단일 탑재 플랫폼을 구현하였다. 탑재 플랫폼과 연동된 PIL 시뮬레이터를 활용하여 멀티콥터의 파손이나
사고 없이 SLAM과 자율비행 및 장애물 회피 알고리즘을 효과적으로 검증하였다. 또한 멀티콥터에 사용될 센서의 선정에 있어 시중에 판매 중인 센서의
성능표를 기반으로 시뮬레이션하여 어떤 센서가 가장 해당 알고리즘에 적합한지 확인 가능하였다. 향후 목표로는 실제 비행을 통해 얻는 데이터의 다양한
결함요소를 반영하여 시뮬레이터에서 검증이 끝난 알고리즘이 바로 필드에서 사용될 수 있도록 개선할 계획이다.
Acknowledgements
This research is supported by National Research Foundation of Korea (NRF) (2019 R1A2B5B01069412,
2020M3C1C1A01-086408) and Korea Agency for Infrastructure Technology Advancement (KAIA)
Supported by research funding for the development of unmanned vehicles and software
platforms linked to public innovation procurement (Development of automated inspection
system for vulnerable railroad facilities based on unmanned vehicles)
References
G. Zhang, B. Shang, Y. Chen, H. Moyes, 2017, Smart Cave Drone: 3D cave mapping using
UAVs as robotic co-archaeologists, 2017 International Conference on Unmanned Aircraft
Systems (ICUAS), pp. 1052-1057
J. Tiemann, C. Wietfeld, 2017, Scalable and precise multi-UAV indoor navigation using
TDOA-based UWB locali- zation, 2017 International Conference on Indoor Positioning
and Indoor Navigation (IPIN), pp. 1-7
S. Jung, S. Hwang, H. Shin, D. H. Shim, 2018, Perception, Guidance, and Navigation
for Indoor Autonomous Drone Racing Using Deep Learning, in IEEE Robotics and Automation
Letters, Vol. 3, No. 3, pp. 2539-2544
FLA Program, Defense advanced research projects agency, Retrieved April 12, 2017,
from https://wwwdarpamil/program/fast-lightweight-autonomy
K. Kim, T. Jung, Y. Choi, G. Jee, 2019, LVIO-based Map Generation and Pose Estimation
of an Unmanned Drone using a Monocular Camera for an Indoor Flight, Journal of Institute
of Control, Robotics and Systems, Vol. 25, pp. 498-505
A. Bircher, M. Kamel, K. Alexis, H. Oleynikova, R. Siegwart, 2016, Receding Horizon
‘Next-Best-View’ Planner for 3D Exploration, 2016 IEEE International Conference on
Robotics and Automation (ICRA), pp. 1462-1468
M. Selin, M. Tiger, D. Duberg, F. Heintz, P. Jensfelt, 2019, Efficient Autonomous
Exploration Planning of Large Scale 3D-Environments, IEEE Robotics and Automation
Letters, Vol. 4, No. 2, pp. 1699-1706
S. Ozana, T. Docekal, 2019, Numerical methods for discretization of continuous nonlinear
systems used in SIL/PIL/HIL simulations, 2019 22nd International Conference on Process
Control (PC19), pp. 191-196
K. Kim, T. Jung, S. Seo, G. Jee, 2020, Development of tightly coupled based lidar-visual-inertial
odometry, Journal of Institute of Control, Robotics and Systems, Vol. 26, No. 8, pp.
597-603
W. Tun, J. Kim, Y. Jeon, S. Kim, J. Lee, 2020, Safety Helmet and Vest Wearing Detection
Approach by Integrating YOLO and SVM for UAV, KSAS 2020 Spring Conference, pp. 383-385
J. Bae, Y. Lee, S. Sung, 2020, Path planning study considering multicopter dynamics
and weighted cost function, Transactions of the Korean Institute of Electrical Engineers,
Vol. 69, No. 2, pp. 362-368
저자소개
He got the B.S. and M.S. degree in aerospace engineering from Konkuk University, Seoul,
Rep. of Korea, in 2014, 2016.
Currently, he has been studying for a Ph.D degree in aerospace engineering at Konkuk
University since 2016.
Areas of interest include navigation and control system for unmanned vehicles.
He got the B.S. and the Ph.D. degree in aero- space engineering from Konkuk University,
Seoul, Rep. of Korea, in 2010, 2017.
He continues his study as a research professor at Konkuk University.
His research interests include the development of navigation and control system for
unmanned vehicles.
And he is expending his area with navigation sensors.
He graduated from the electrical engineering department of Seoul National University
in 1996.
In 2003, he received his Ph.D. in the School of Engineering.
Currently, he is professor of Aerospace Information Systems Engi- neering, Konkuk
University, since March 2007.
Areas of interest include composite navigation systems, unmanned mobile navigation
and control systems, nonlinear filters and sensor fusion, and inertial navigation
applications.