DOI QR코드

DOI QR Code

Autonomous Flight of a Drone that Adapts to Altitude Changes

고도 변화에 적응하는 드론의 자율 비행

  • Jang-Won Kim (Department of Electronic Engineering, Gachon University)
  • Received : 2023.11.30
  • Accepted : 2023.12.08
  • Published : 2023.12.29

Abstract

As the production of small quadcopter drones has diversified and multi-sensors have been installed in FC due to the spread of MCU capable of high-speed processing, small drones that can perform special-purpose operations rather than simple operations have been realized. Hovering, attitude control, and position movement control were possible through the IMU in the FC mounted on the drone, but control is not easy when GPS connection and video communication are not possible in a closed building with a complex structure. In this study, when encountering an obstacle with a change in altitude in such a space, we proposed a method to overcome the obstacle and perform autonomous flight using optical flow and IR sensors using the Lucas-Kanade method. Through experiments, the drone's altitude flight on stairs that replace the complex structure of a closed space with stable hovering motion has a success rate of 98% within the tolerance of 10 [cm] due to external influences, and reliable autonomous flight up and down is achieved.

소형 쿼드콥터 드론의 제작이 다양화되고, 고속 처리가 가능한 MCU의 보급으로 인해 FC에 멀티 센서가 장착되면서, 단순 동작이 아닌 특수 목적의 동작을 수행할 수 있는 소형 드론이 구현되었다. 드론에 장착된 FC 안의 IMU를 통하여 호버링과 자세제어 그리고 위치 이동 제어를 할 수 있었으나, 복잡구조를 갖는 폐쇄된 건물 안에서 GPS 연결과 영상통신이 불가능한 경우는 제어가 쉽지 않다. 본 연구에서는 이러한 공간에서 고저 변화가 있는 장애물을 만났을 경우, Lucas-Kanade 방법을 이용한 optical flow와 IR 센서를 이용하여 스스로 장애물을 넘어서 자율 비행을 수행하는 방법을 제안하였다. 실험을 통하여 안정적인 호버링 동작과 폐쇄 공간의 복잡구조를 대신하는 계단에서, 드론의 고저 비행은 주변의 외적 영향에 의한 허용 오차 10[cm] 이내로 98%의 성공률을 보이며 오르고 내리는 신뢰성 있는 자율 비행이 이루어지는 것을 확인하였다.

Keywords

1. 서론

4차 산업 혁명에 있어서 드론으로 할 수 있는 일들[1]은 무궁무진하다. 특히 접근하기 어려운 환경에서 드론을 이용한 데이터 획득, 구조물 파악[2]과 같은 일을 무인으로 할 수 있다는 점에서 소형 드론의 매력은 더한층 올라갈 수밖에 없다. 또한 건물 내부의 상태를 직접 확인하지 못하고 들어갔을 때 발생하는 피해를 미리 방지할 수 있는 차원에서 드론의 역할이 매우 크다. 그리고 내부 구조를 잘 알지 못하는 공간의 진입으로 특수목적의 임무[3][4]를 수행하도록 하는 드론에게는 외부에서 적절한 제어가 가능하지 않고, 저속 자율비행으로 내부를 이동할 수밖에 없다. 이러한 경우, 드론은 평면 이동만하는 것이 아니라 고저 이동도 해야 한다. 개방된 공간에서는 IMU(Inertial Measurement Unit)[5]를 이용한 드론의 제어나 GPS(Global Positioning System)[6] 신호를 이용하여 신뢰도 높은 위치 제어와 이동 제어가 가능하지만 폐쇄된 공간에서는 외부에 GPS 연결이 되지 않고 복잡 구조를 갖는 구조물 안에서는 통신이 원활하게 이루어지지 않기 때문에 특수목적의 임무를 수행하기 위해서는 저속의 자율 비행으로 구조물 안에서 위치 이동과 고저 이동을 해야 한다. IMU와 GPS를 이용한 드론의 제어는 넓은 공간에서 통신으로 적절한 이동제어를 목적으로 한다. 이러한 제어 구조를 갖는 소형 쿼드콥터 드론[7]은 원하는 목적을 달성할 수가 없다. 따라서 본 연구에서는 제어가 원활하게 되지 않는 복잡구조를 갖는 폐쇄된 공간에서 저속으로 자율비행하는 드론 스스로가 장애물을 만났을 때, 옵티컬 플로우 센서[8]와 IR(Infrared Ray) 센서를 이용하여 드론의 3차원 위치와 움직임 방향을 얻고, 일정 경사도를 갖는 장애물에 대하여 고저 움직임으로 넘어가는 드론의 동작을 구현하고자 한다.

2. Optical Flow

2.1 Movement of Optical Flow

옵티컬 플로우는 그림 1과 같이 카메라로 들어오는 이미지 내에서 밝기 패턴의 움직임을 통해 상대 속도를 얻는 동작이다.

JBJTBH_2023_v16n6_448_f0001.png 이미지

그림 1. 옵티컬 플로우

Fig. 1. Optical flow

옵티컬 플로우를 계산하는 가장 많이 사용되는 알고리즘은 카메라가 움직일 때, 임의의 물체의 밝기가 다음 프레임에서도 동일한 밝기를 갖는다는 밝기 항상성을 기본 가정으로 한다. 이미지 위의 한점 p(x,y,t)에서 시간 t일 때 밝기를 I(x,y,t)라고 하면, 밝기 항상성을 가정하였으므로 시간 t의 진행에 따른 밝기의 변화 I는 0이므로 다음 수식 (1)로 쓸 수 있다.

\(\begin{align}\frac{d I}{d t}=0\end{align}\)       (1)

이 식에 그림 1과 같이 카메라 이동에 따른 체인룰을 적용하면 다음 식 (2)를 얻을 수 있다.

\(\begin{align}\frac{\partial I}{\partial x} \frac{\partial x}{d t}+\frac{\partial I}{\partial y} \frac{\partial y}{d t}+\frac{\partial I}{\partial t}=0\end{align}\)       (2)

여기서 u = dx/dt, v = dy/dt는 각각 x축과 y축 방향 속도 벡터라고 하고, 위치 P(x,y,t)의 밝기 I(x,y,t)를 x,y,t로 미분하여 다음 식 (3)으로 얻을 수 있다.

Ixu + Iyv + It = 0

Ixu + Iyv = -It       (3)

식 (3)의 해를 얻기 위한 방법은 임의로 설정한 미지수 u, v의 존재로 인해 한 개 이상의 조건식을 추가해야만 얻을 수 있다. 본 연구에서는 크게 이미지 내의 모든 픽셀에 대해 계산을 수행하는 밀집 옵티컬 플로우(dense optical flow)와 지역적으로 계산을 수행하는 희소 옵티컬 플로우(sparse optical flow)[8]로 나누고, 이웃한 지역의 옵티컬 플로우가 같다고 가정하는 루카스-카나데 방법을 적용하여 식 (3)의 해를 얻고자 한다.

2.2 Lucas-Kanade Method

루카스-카나데 방법[8][9]은 Bruce D. Lucas와 Takeo Kanade에 의해 고안된 알고리즘으로, 옵티컬 플로우 조건식을 풀기 위해 이웃 지역의 픽셀은 같은 옵티컬 플로우를 갖는다고 가정한다. 픽셀 (x,y)를 중심으로 하는 윈도우 영역의 옵티컬 플로우가 일정하다고 가정하고, 윈도우 내의 모든 픽셀에 대해 옵티컬 플로우 조건식을 최소제곱 기법으로 풀어 속도 u,v를 계산한다. 윈도우 영역에 속하는 픽셀의 개수를 n이라 하고 윈도우 영역을 N이라 하면, 다음 식 (4)가 성립한다.

Ix(xi,yi)u + Iy(xi,yi)v = -Ii(xi,yi)       (4)

여기서 (xi,yi)∈N이다. 식 (4)에서 미지수 벡터 u,v는 두 개이지만 식은 n개가 되므로 미지수를 구하기에 충분하다. 일반적으로 중심 픽셀 (x,y)에 가까울수록 더 큰 가중치를 주어 더 좋은 품질의 속도 벡터를 구할 수 있고 다음 식 (5)로 나타낼 수 있다.

\(\begin{align}\begin{aligned} {\left[\begin{array}{l}u \\ v\end{array}\right]=} & {\left[\begin{array}{cc}\sum_{i=1}^{n} w_{i} I_{x}\left(x_{i}, y_{i}\right)^{2} & \sum_{i=1}^{n} w_{i} I_{x}\left(x_{i}, y_{i}\right) I_{y}\left(x_{i}, y_{i}\right) \\ \sum_{i=1}^{n} w_{i} I_{x}\left(x_{i}, y_{i}\right) I_{y}\left(x_{i}, y_{i}\right) & \sum_{i=1}^{n} w_{i} I_{y}\left(x_{i}, y_{i}\right)\end{array}\right] } \\ & \cdot\left[\begin{array}{l}-\sum_{i=1}^{n} w_{i} I_{x}\left(x_{i}, y_{i}\right) I_{t}\left(x_{i}, y_{i}\right) \\ -\sum_{i=1}^{n} w_{i} I_{y}\left(x_{i}, y_{i}\right) I_{i}\left(x_{i}, y_{i}\right)\end{array}\right]\end{aligned}\end{align}\)       (5)

루카스-카나데 방법은 인근 픽셀의 정보를 결합하기 때문에 이미지 노이즈에 민감하지 않고, 이웃한 영역을 지정하는 윈도우의 크기가 매우 중요한 지역적인 알고리즘이다. 작은 윈도우의 사용은 넓은 영역이 균일할 경우 내부의 유동정보를 알 수 없고, 큰 윈도우의 사용은 큰 움직임을 알아낼 수 있지만, 넓은 영역을 스무딩하는 효과로 인해 모션 벡터의 정확도가 떨어진다. 이를 해결하기 위해 이미지 피라미드를 사용하는 피라미드 루카스-카나데 방법이 고안되었다. 이미지의 피라미드를 구한 후, 해상도가 가장 낮은 이미지에서 옵티컬 플로우를 구하고 이를 윗 층 영상으로 파급시키는 방법을 사용하여 정확도를 떨어뜨리지 않고 큰 움직임을 구하는 방법이다.

2.3 Hovering using Optical Flow

호버링[8]은 드론이 현재 위치를 인식하고 정지 동작을 할 수 있다는 의미이다. 옵티컬 플로우 센서가 영상으로 입력되는 텍스쳐의 흐름을 인식하여 정지 동작을 수행하고, 텍스쳐의 패턴 흐름을 감지하여 이동할 수 있다. 따라서 드론의 움직임은 호버링부터 시작된다고 할 수 있다.

그림 2와 같이 드론 하방에 IMU와 카메라, 깊이 측정(IR) 센서를 설치하였다. 드론 좌표계는 드론 중심을 원점으로 하여 진행 방향을 X축, 위쪽 방향을 Z축으로 정의한다. 드론 좌표계는 IMU의 좌표계와 일치한다. 카메라와 IR 좌표계는 이미지 센서 중심을 원점으로 하여 광학축 방향을 Z축, 카메라로 촬영된 이미지의 좌표계는 이미지의 좌측 상단을 원점으로 한다. 이미지 평면에서 측정된 픽셀 단위의 옵티컬 플로우 v를 드론 프레임에서 물체의 병진 운동 속도 T와 회전 운동 속도 ω로 다음 식 (6)과 같이 나타낼 수 있다. 여기서 4번째 항은 초점거리 f로 나눈 값이며 무시할 정도로 매우 작다.

JBJTBH_2023_v16n6_448_f0002.png 이미지

그림 2. 옵티컬 플로우가 결합된 드론의 좌표계

Fig. 2. Coordinate system of a drone combined with a optical flow

\(\begin{align}v_{x}=\frac{T_{Z}-T_{x} f}{Z}-w_{y} f+w_{z} y+\frac{w_{x} x y-w_{y} x^{2}}{f}\end{align}\)       (6)

드론이 일정 고도를 유지 할 때, 회전 중심과 카메라 사이 거리가 l이고, 카메라와 지면의 거리가 Z일 때, 드론이 ωy의 속도로 회전한다면 드론의 이동 속도 Tx는 다음 식 (7)로 구할 수 있다.

\(\begin{align}T_{x}=-Z\left(\frac{v_{x}}{f}+w_{y}\right)-l \sin \left(w_{y}\right)\end{align}\)       (7)

따라서 IR 센서에 의해 드론의 고도 Z을 얻고, 드론의 이동 방향에 대한 속도를 Tx를 옵티컬 플로우를 이용하여 얻었으므로 이를 이용하여 드론의 위치 이동을 측정할 수가 있다.

3. 결과 및 고찰

3.1 Optical Flow System

실험에 사용된 드론의 H/W 블록다이어그램은 그림 3과 같으며 카메라와 IMU, IR 센서로 구성된다.

JBJTBH_2023_v16n6_448_f0003.png 이미지

그림 3. 옵티컬 플로우 블록 다이어그램

Fig. 3. Block diagram of optical flow

IMU의 가속도 센서와 자이로 센서로부터 각속도와 가속도 데이터를 받고, 카메라로부터 텍스쳐 이미지를 받고, IR 센서로부터 깊이 데이터를 받는다. 메인프로세서는 이 데이터를 이용해 드론의 이동 방향과 거리를 계산하고, 장애물이 있을 경우 고도를 높여 넘어갈 수 있게 된다. 또한 깊이 정보에 의해 진행 방향으로 갑작스럽게 깊이가 크게 변동될 때, 일정 높이 호버링 유지를 위해 하강한다. 이를 이용하여 장애물을 넘어갈 수 있게 된다. 그림 4의 블록 다이어그램은 드론이 센서를 이용해 옵티컬 플로우를 계산하는 알고리즘을 나타내었다. 드론 호버링을 이루기 위해 옵티컬 플로우 값을 구하기 위한 코딩은 OpenCV 4.5.4를 이용하여 VS2023으로 작성하였다.

JBJTBH_2023_v16n6_448_f0008.png 이미지

그림 4. 옵티컬 플로우 알고리즘의 블록 다이어그램

Fig. 4. Block diagram of optical flow algorithm

3.2 Autonomous Flight of Drones

그림 4에서 계산된 각속도와 PWM(Pulse Width Modulation) 신호를 이용하여 드론의 Roll, Pitch, Yaw 값으로 고저가 있는 장애물을 넘어가는 기본 동작을 그림 5에 나타내었다. [position A] 위치에서 초기 호버링 값으로 Dα 높이를 유지하다가 자율 비행을 하기 위한 상대 높이 Dj + Dα만큼 더 상승하고, [position B]로 이동한다. 이 패턴을 반복하여 고저가 있는 장애물을 만나면 자동으로 상승하게 된다, 하강도 동일한 방법으로 [position B]에서 자동으로 [position A] 방향으로 이동하고, 진행 방향으로 갑작스럽게 깊이 정보가 커질 때, Dj + Dα 높이만큼 자동으로 하강하게 된다.

JBJTBH_2023_v16n6_448_f0004.png 이미지

그림 5. 장애물을 넘어가는 드론의 기본 동작

Fig. 5. Basic operation of a drone that goes over obstacles

그림 6은 임의의 지점 [position A]에서 [position B]로 이동하는 절차를 나타내었다. 그림 5에 나타낸 방법으로 고도 변화에 따른 적응성을 보이며 높이가 있는 장애물을 넘어가는 과정을 나타내었다. 그림 6에서의 드론의 위치는 그림 5와 달리 임의의 지점에서 [position A]로 이동해 오고 있는 과정을 나타낸 것이다.

JBJTBH_2023_v16n6_448_f0005.png 이미지

그림 6. 드론의 자율 비행 이동 절차

Fig. 6. Drone autonomous flight movement procedures

3.3 Drone Autonomous Flight Experiment

그림 5에서 최저 호버링 상태와 최고 호버링 상태로 동작하는 드론의 상태를 실험으로 그림 7에 나타내었다. 계단형식의 장애물을 통과하기 위해서 기준점으로부터 최저 호버링은 25[cm]로 하였고, 최대 호버링 상태는 75[cm]로 하였으며 움직임이 거의 없는 안정적인 정지 동작을 보였다. 이는 실험을 위한 제한조건이며, 폐쇄된 공간의 상태에 따라 조건을 충분히 달리하여 실험을 수행할 수 있다. 본 연구에서 실행한 호버링 실험은 좁은 복도 공간에서 수행되었으며 안정적으로 조건값에 근접한 결과를 얻었다. 그림 8은 그림 6에 대응하는 자율 비행 실험을 스텝별로 나타낸 것이며 이론적인 계산에 맞게 움직임이 일어날 것으로 가정을 하였으나, 실제 동작은 주변의 외적 영향에 의해 오차가 존재하였다. 그러나 출발점 [position A]에서 도착지점 [position B]로 이동하는 전체적인 자율비행은 다양한 시간차를 두고 30번의 반복 실험 결과, 허용 오차 10[cm] 이내로 98%의 성공률을 보이며 비행하는 것을 확인할 수 있었다.

JBJTBH_2023_v16n6_448_f0006.png 이미지

그림 7. 드론의 최저/최대 호버링

Fig. 7. Minimum/maximum hovering of the drone

JBJTBH_2023_v16n6_448_f0007.png 이미지

그림 8. 드론의 자율 비행 실험 결과

Fig. 8. Drone autonomous flight experiment results

4. 결론

드론을 활용한 다양한 동작에 있어서 GPS 신호를 활용한 드론의 자율비행과 IMU를 이용한 드론의 자세제어 비행은 일반적이나, 복잡 구조를 갖는 건물 안이나 통신이 불가능하여 제어가 되지 않는 폐쇄된 공간 내에서는 드론이 장애물을 만났을 때 자율비행을 통하여 회피 비행을 해야 한다. 장애물은 좌우로 회피 비행하여 통과 할 수도 있지만 고저로 변화하는 장애물일 경우는 드론도 이에 적응하여 고저 회피 비행을 하여야 한다. 본 연구에서는 이러한 드론의 고저 자율비행을 위해 Lucas-Kanade 알고리즘을 사용한 옵티컬 플로우와 깊이 센서로 좁은 공간 내에서 드론 스스로가 호버링을 하게 하고 3차원 위치와 움직임 방향을 얻고, 장애물을 넘어가도록 하였다. 드론의 기본 동작인 호버링은 제한요소인 기본 높이 25[cm]와 최고 높이 75[cm]에서 거의 움직임 없이 안정적인 동작을 보였다. 폐쇄 공간의 복잡구조를 대신하는 계단에서의 드론의 고저비행은 주변의 외적 영향에 의해 허용 오차 10[cm] 이내로 98%의 성공률을 보이며 오르고 내리는 자율 비행을 하였으며, 이 실험을 통하여 신뢰성 있는 자율 비행을 수행하는 것을 확인하였다.

References

  1. S. W. Lee, "Use of Drone", pp. 57-60, Auto Journal, May 2022.
  2. S. S. Yeo, J. Y. Kim, H. Y. Jeon, C. H. Bae, S. M. Park, D. R. Han, "Drone for Building Condition Inspection", Proceedings of the Korean Society of Computer Information Conference, Vol. 29, No. 1, pp. 185-186, Jan, 2021.
  3. D. W. Hong, "UWB Sensor based navigation design for drone indoor flight", Graduate School of Konkuk University, 2018.
  4. J. W. Jo, M. H. Lee, K. W. Nam, C. W. Lee, "Autonomous Drone Navigation in the hallway using Convolution Neural Network", Journal of the Korea Institute of Information and Communication Engineering, Vol. 23, No.8, pp. 936~942, Aug. 2019.
  5. E. M. Kim, I. H. Choi, "Simulation for System Calibration According to Accuracy of GNSS/IMU Mounted on a Drone", Journal of Korean Society for Geospatial Information Science, Vol. 30, No. 2, pp. 57-65, June 2022. https://doi.org/10.7319/kogsis.2022.30.2.057
  6. J. H. Kim, J. H. Yoon, S. J. Hwang, H. K. Shin, S. H. Lee, "GPS-Based Drone and Damaged Object Distance Calculation Method", Korean Journal of Computational Design and Engineering, Vol. 27, No. 4, pp. 382-391. Dec. 2022. https://doi.org/10.7315/CDE.2022.382
  7. J. W. Kim, "A Study on Movement Control of Drone using Reference Posture Mapping", Journal of Korea Institute of Information, Electronics and Communication Technology, Vol. 14, No. 6, pp. 461-466, Dec. 2021. https://doi.org/10.17661/JKIIECT.2021.14.6.461
  8. Y. S, Son, "Research on Optical Flow Based Positioning System for Quad-rotor Hovering Control", Graduate School of Konkuk University, 2017.
  9. G. Y. Mun, "Performance Improvement of LK Tracking Algorithm using Depth Information", Graduate School of Information and Communication Hanbat National University, 2016.