2.1 전력선 추적을 위한 드론 시스템
본 연구에서는, 우리는 전력선 추적을 위한 드론 시스템을 개발하였다. 연구에 사용 된 드론 시스템은 그림 1에 나타나 있으며, 쿼드로터 형태의 드론을 이용하였다. 드론은 $x, y$ 그리고 $z$ 축을 따라서 비행할 수 있기 때문에, 드론의 움직임을 표현하기
위해서 $x, y$ 그리고 $z$ 축을 기준으로 회전하는 각도인 롤(roll), 피치(pitch) 그리고 요(yaw)가 존재한다. 롤은 드론의 좌우
움직임과 연관이 있으며, 피치는 드론의 앞뒤 움직임을 담당한다. 마지막으로, 요는 드론의 헤딩 각도를 의미한다. 이러한 용어들은 이해가 쉽도록 그림 2에 표현되어 있다. 드론이 전력선을 추종하며 비행하기 위해서는 전력선 검출을 통해 위치 정보를 추정해야할 뿐 아니라, 그 정보를 활용하여 추적 제어를
수행해야만 한다. 전력선 검출 과정에서는 전력선을 영상 내에서 검출하여 영상 좌표계에서의 전력선 중심 좌표를 추정하고, 드론과 전력선 사이의 기울어진
각도를 추정한다. 이를 위해서 관심 영역 설정, 캐니 가장자리 검출, 허프 변환 그리고 칼만 필터가 이용된다. 알고리즘의 자세한 설명은 2.2절에
나타나있다. 전력선 검출 과정을 통해서 얻은 전력선의 중심 위치($x$)와 전력선과 드론간의 기울어진 각도($\psi$)는 자세 제어기와 위치 제어기로
이루어진 추적 제어기를 위해 사용된다. 자세 제어기는 드론의 롤, 피치 그리고 요 값을 제어하며, 위치 제어기는 드론이 전력선 위에 위치하도록 제어한다.
위치 제어기는 목표 롤($\phi _ { d }$)을 계산하여 자세 제어기로 전송 한다, 목표 피치($\theta _ { d }$) 와 목표 요($\psi
_ { d }$)는 사용자에 의해 미리 설정되며, 이들도 자세 제어기로 전송 된다. 또한, 자세 제어기는 IMU(inertial measurement
unit)와 전력선 검출 과정을 통해 얻은 현재 드론의 각도 정보들을 제공받으며, 드론이 전력선을 추종하며 비행하도록 알맞은 명령 입력을 계산한다.
제안한 시스템의 순서도가 그림 3에 나타나 있다.
그림. 1. 본 논문에서 사용 된 드론 시스템
Fig. 1. Drone system used in this paper
그림. 2. 사용 된 드론의 구조 모델
Fig. 2. Structure model of used drone
그림. 3. 제안한 시스템의 순서도
Fig. 3. Flowchart of the proposed system
2.2 전력선 검출 방법
본 논문에서는 전력선을 실시간으로 검출하기 위해서 완전 탐색(exhaustive search) 대신에 관심 영역 기반의 탐색 방법을 사용한다. 이
때, 드론이 성공적으로 전력선을 추적한다면 전력선은 영상의 중심부에서 긴 세로선의 형태로 나타난다. 이 사실에 기반 하여 관심 영역은 영상의 중앙
부분으로 설정되며 식 (1)과 같이 정의된다.
여기서 $x _ { c,s }$, $y _ { c,s }$, $x _ { c,l }$, $y _ { c,l }$는 원본 영상에서 관심 영역 영상 추출을
위한 픽셀의 위치들이다. 일반적으로, 영상 내 배경은 다양한 색상들로 이루어져 있는 반면에 전력선은 단색으로 구성되어 있다. 우리는 배경으로부터 전력선을
쉽게 구별하기 위하여 영상 내 픽셀들을 $K$개의 그룹으로 분할하는 방법인 $K$-평균 군집화 방법[17]을 활용한다. 특히, 우리는 관심 영역 영상 내 픽셀들의 색상 정보를 기반으로 $K$개의 그룹으로 분할하며, 분할 된 그룹들은 그림 4(c)와 같이 각각 다른 색상으로 표현된다. $K$-평균 군집화 결과로 만들어진 영상에서는 전력선과 배경이 서로 다른 색상으로 분류됨에 따라 명확하게 구분
가능해지며, 해당 영상에 캐니 가장자리 검출 방법을 적용하여 서로 다른 그룹끼리의 경계선을 추출한다. 하지만 $K$-평균 군집화 결과는 몇몇 잡음에
해당하는 픽셀도 포함하고 있으며, 이로 인해 생성되는 가장자리를 제거해야 한다. 이러한 목적을 달성하기 위하여, 침식(erosion)과 팽창(dilation)의
형태학적 영상 처리(morphological image processing)를 캐니 가장자리 검출 결과 영상에 적용한다. 이를 통해 그림 4의 (e)와 같은 결과를 얻을 수 있다. 마지막으로, 해당 결과에 허프 변환을 적용하여 전력선을 검출할 수 있으며, 중심 좌표를 추정할 수 있다.
허프 변환[18]은 점과 선의 이중성을 이용하여 영상 내에서 동일 선상에 해당하는 픽셀들을 식별하여, 해당 픽셀들을 식 (2)를 이용하여 극 좌표계의 점으로 변환한다.
여기서 $x$와 $y$는 영상에서의 픽셀 좌표이며, $\rho$는 영상의 원점에서 해당 직선까지의 거리를 나타낸다. $\theta$는 $x$축과 해당
직선의 법선과의 방향각을 의미한다.
그림. 4. 전력선 검출 각 과정의 결과들: (a) 원본 영상, (b) 관심 영역 영상, (c) $K$-평균 군집화, (d) 캐니 가장자리 검출,
(e) 형태학적 영상 처리, (f) 허프 변환 (빨간 선은 검출 된 전력선을 의미하며, 파란 점은 중심 좌표를 의미한다.)
Fig. 4. Results of each step in power-line detection: (a) original image, (b) region
of interest image, (c) $K$-means clustering, (d) Canny edge detection, (e) Morphological
image processing, (f) Hough transform (red line and blue circle indicate detected
power-line and center point, respectively.)
우리는 허프 변환을 적용하여 최종적으로 영상 내에서 전력선을 검출할 수 있으며, 오검출을 방지하기 위하여 전력선의 몇 가지 특징들을 기반으로 조건을
설정하였다. 드론이 전력선을 성공적으로 추적하여 비행한다면, 전력선은 그림 4의 (b)에서 보이는 것과 같이 영상 내에서 세로로 길게 나타나며, 가로로는 얇다는 특징이 존재한다. 이를 검출된 전력선이 참인지 아닌지 검증하기
위한 제약 조건으로 채택하였으며, 식 (3)과 같이 정의하였다.
여기서 $1$과 $0$은 참과 거짓을 의미하며, $L _ { y }$와 $L _ { x }$는 각각 픽셀 좌표계에서의 검출 된 전력선의 세로와 가로의
길이를 나타낸다. $\alpha$와 $\beta$는 각각 임계값들이며, 여러 번의 실험을 통하여 결정되었다. 만약에 식 (3)에서 참으로 판단되면, 검출 된 직선은 전력선으로 간주되며, 해당 직선의 중심 좌표와 기울어진 각도를 얻어낸다. 그림 4는 전력선 검출의 각 과정의 결과들을 보여준다. 그러나 드론의 비행 중 진동으로 인하여 매 프레임 획득하는 전력선의 중심 좌표와 기울어진 각도는 급격하게
변화하며, 이는 드론이 전력선을 추적 제어하기 어렵게 만든다. 이 문제를 해결하기 위하여 측정 된 중심 좌표와 기울어진 각도는 칼만 필터를 이용하여
부드럽게 만들어지며, 이는 드론의 안정적인 제어를 가능하게 한다. 칼만 필터는 사후 확률이 가우시안 분포라는 가정 하에 베이지안(Bayesian)
접근 방법을 이용하여 최적 해를 추정하는 방법이다[19]. 우리의 시스템에서는, 칼만 필터는 전력선의 중심 좌표와 기울어진 각도를 부드럽게 추정해주는데 도움을 주며, 칼만 필터를 위한 상태 방정식은 식 (4)와 같이 정의된다.
여기서 $x _ { k } = \left [ x(k) \psi (k) v _ { x } (k) w _ { \psi } (k) \right ] ^ {
T }$, $F= \begin{bmatrix} I _ { 2 \times 2 } & \Delta T _ { i } \times I _ { 2 \times
2 } \\ 0 _ { 2 \times 2 } & I _ { 2 \times 2 } \end{bmatrix}$, $I$는 단위 행렬, 그리고 $0$은
영 행렬을 의미한다. $x(k)$와 $\psi (k)$는 번 째 프레임에서의 전력선의 중심 좌표와 기울어진 각도이다. $v _{x} (k)$와 $w
_{\psi } (k)$는 $k$번 째 프레임에서의 $x$축으로의 속도와 기울어진 각도의 각속도를 의미한다. $\Delta T _{i}$는 영상 촬영의
시간 간격이며 $w _{k}$는 평균이 0이고 오차 공분산이 $Q _{k}$인 가우시안 잡음이다. 칼만 필터를 위한 측정 방정식은 식 (5)와 같이 정의된다.
여기서 $H= \left [ I _ { 2 \times 2 } 0 _ { 2 \times 2 } \right ]$ 이고 $v _ { k }$는 평균이
0이고 오차 공분산이 $R _ { k }$인 가우시안 잡음이다. 칼만 필터는 두 구조를 반복적으로 수행하며 동작한다. 첫 번째는 시간 갱신이며, 이것은
상태 방정식을 이용하여 다음 프레임에서의 상태를 예측하는 과정이다. 이는 식 (6)-(8)로 표현되어진다.
여기서 하단에 적힌 문자 $k|k-1$과 $k|k$는 사전(a priori)과 사후(a posteriori)를 나타낸다. 두 번째 구조인 측정치 갱신은
측정값을 이용하여 상태를 올바르게 수정하는 과정이며, 식 (9)-(11)로 나타낼 수 있다.
여기서 $z _ { k }$는 $k$ 번째 프레임에서의 측정값이며, 이는 전력선 검출 과정을 통해 얻어진다. 여기서, $x$와 $y$좌표 중 $x$좌표만
추정하는 이유는 $y$축으로의 움직임과 관련 있는 드론의 피치 값을 제어할 필요가 없기 때문이다. 이는 2.3절에서 자세하게 설명할 예정이다. 이렇게
부드럽게 추정 된 전력선의 중심 $x$좌표와 기울어진 각도는 드론이 전력선을 따라 비행하도록 하는 추적 제어기에서 입력으로 사용 된다.
2.3 드론의 추적 제어
본 연구에서는 쿼드로터 형태의 드론을 사용하였다. 사용한 드론의 도식적인 구조와 프로펠러들의 회전 방향은 그림 2에 나타나있으며, 운동방정식은 다음과 같이 표현된다[20].
여기서 $m$은 드론의 질량, $l$은 드론의 중심과 모터와의 거리, $g$는 중력 가속도, 그리고 $I _{x} ,I _{y} ,I _{z}$는
각 축에서의 관성 모멘트이다. $U _{1} , U _{2} , U _{3}$ 그리고 $U _{4}$는 각각 롤, 피치, 요, 그리고 $z$축 방향으로의
속도를 위한 입력 값이며, 식 (13)과 같이 정의된다.
여기서 $k _ { p }$는 추력 계수(thrust constant), $k _ { d }$는 항력 계수(drag factor), 그리고 $F _
{ i }$는 $i$ 번째 모터의 추력을 의미한다. 우리의 시스템에서 드론의 추적 제어는 위치 제어기와 자세 제어기로 구성되어 있다. 위치 제어기는
검출 된 전력선의 중심 $x$좌표를 이용하여 목표 롤 값을 계산한다. 전력선의 중심 $x$좌표가 영상의 중심으로부터 멀수록 큰 목표 롤 값이 계산되어진다.
피치의 경우에는 사용자에 의하여 목표 피치 값이 상수 값으로 설정되며, 이는 드론이 일정한 속도를 가지고 앞으로 이동하게 만든다. 시스템을 이런 식으로
설계한 이유는 드론이 전력선을 추종하며 비행할 때, 드론의 롤 값만 안정적으로 제어가 된다면, 앞으로 일정한 속도를 가지고 이동하여도 전력선을 성공적으로
추종하며 비행할 수 있기 때문이다. 또한, 위치 제어기는 드론의 고도 제어를 위한 제어 입력을 계산하며, 이는 드론이 일정한 높이에 위치할 수 있도록
만들어준다. 이 때, 드론의 높이를 제어하기 위하여, 사용자가 설정한 목표 고도 값과, 기압계를 통해 측정되는 드론의 현재 고도 값이 사용된다. 자세
제어기는 드론의 롤, 피치, 요를 제어하기 위한 명령 입력을 계산한다. 이 때, 현재 롤, 피치 값은 드론에 장착 된 IMU로부터 얻을 수 있으며,
현재 요 값은 전력선 검출 과정에서 얻은 기울어진 각도가 사용된다. 추가적으로, 목표 롤 값은 위치 제어기로부터 계산되며, 목표 피치와 목표 요 값은
사용자에 의해 미리 정해진다. 위치 제어기와 자세 제어기 모두 목표 값과 현재 값 사이의 오차를 최소화하도록 만드는 PD 제어 기법에 기반 하여 설계되었다.
PD 제어 기법은 실용적인 시스템에 널리 사용되고 있으며, 쉽게 구현이 가능하고, 복잡한 모델링 과정이 필요하지 않다. 이러한 장점들로 인하여, 제안하는
방법에서는 PD 제어 기법을 활용하였다. 선형 제어기인 PD 제어 방법을 비선형 모델을 가지는 드론에 적용하기 위해서, 드론의 비선형 모델은 선형화
되어야만 한다. 이 때, 미소각 근사(small angle approximation) 방법을 활용하여, 드론의 모델을 선형화 할 수 있으며, 이는
[21]에 자세하게 설명되어 있다. 목표 롤 값과 추력 제어 입력은 위치 제어기에 의해 계산 되며, 식 (14)로 표현된다.
여기서 $\phi _ { d } (k)$는 $k$ 시간에서의 목표 롤, $\Delta T _ { p }$는 위치 제어기의 샘플링 시간, $x(k)$는
$k$ 시간에서의 전력선 검출 과정을 통해 얻은 전력선의 중심 $x$좌표, $z(k)$는 $k$ 시간에서의 기압계를 통해 얻은 드론의 고도이다. 또한,
$x _ { d }$는 상수 값을 가지는 목표 $x$좌표를 의미하며, 전력선이 영상의 중심에 위치하도록 하기 위하여 관심 영역 영상 너비의 절반으로
설정하였다. $z _ { d }$는 목표 높이 값이며, 이는 사용자에 의하여 미리 설정된다. $K _ { x,p } , K _ { a,p } ,
K _ { x,d }$ 그리고 $K _ { a,d }$는 각각 위치 제어기들의 비례 이득(gain)과 미분 이득이다. 위치 제어기를 수행한 이후에,
자세 제어기를 이용하여 드론의 움직임을 위한 명령 입력을 계산하며, 이는 식 (15)와 같이 정의된다.
여기서 $U _ { 1 } (k), U _ { 2 } (k)$ 그리고 $U _ { 3 } (k)$는 각각 $k$ 시간에서의 롤, 피치, 요에 대한
명령 입력이다. $\Delta T _ { a }$는 자세 제어기의 샘플링 시간이며, $\phi _ { d } (k)$는 위치 제어기로부터 얻어지는
목표 롤 값이다. $\theta _ { d }$는 목표 피치 값으로, 사용자에 의해 정해지는 상수 값이며, 이를 통해 드론이 일정한 속도로 앞으로
움직인다. $\psi _ { d }$는 목표 요 값이며, 드론의 헤딩 각도가 전력선의 방향과 평행해야만 추종 제어를 할 수 있으므로 $0 ^\circ$로
설정하였다. $\phi (k)$와 $\theta (k)$는 드론에 탑재 된 IMU로부터 측정되는 값이며, $\psi (k)$는 전력선 검출 과정에서
얻어지는 기울어진 각도 값이다. $K _ { \phi ,p } , K _ { \theta ,p } , K _ { \psi ,p } , K _ {
\phi ,d } , K _ { \theta ,d }$ 그리고 $K _ { \psi ,d }$는 각각 롤, 피치, 요 제어기에 대한 비례 이득과 미분
이득이다.
모든 제어 이득 값들은 여러 번의 실험을 통해 각각 결정 되었으며, 자세 제어기에 대한 제어 이득 값들부터 결정한 후, 그리고 위치 제어기의 이득
값들을 결정하였다. 이 때, 드론의 발산 여부 및 수렴 속도 등을 고려하여 제일 적합한 이득 값들을 선정하였다.