![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_1.jpg)
드론의 모양과 크기는 다양하지만, 최근에는 드론이라고 하면 프로펠러 4개가 달린 모양의 ‘쿼드콥터’를 떠올리기 쉽습니다. 드론 중에서도 쿼드콥터가 유독 인기를 끄는 이유는 프로펠러 4개만 조절해 제자리 돌기, 한쪽으로 기울이기, 뒤집기 등 자유자재로 움직일 수 있기 때문이죠. 모두 수많은 알고리즘으로 이뤄진 수학 모형 덕분입니다.
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_2.jpg)
비행의 기본은 평형감각입니다. 드론의 몸이 한쪽으로 기울거나 요동치면 순식간에 추락해버릴 수 있기 때문이죠. 긴 막대를 손바닥 위에 올려 놓고 쓰러뜨리지 않도록 한다고 해봅시다. 막대가 쓰러지려하는 순간마다 그 방향으로 손바닥을 움직여야겠죠. 드론도 균형만 잘 유지한다면 긴 막대나 액체가 든 와인잔을 쓰러뜨리지 않으면서 비행할 수 있습니다.
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_3.jpg)
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_4.jpg)
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_11.jpg)
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_12.jpg)
‘제어 이론’을 활용하면 수학 모형을 분석하고 드론을 조종하는 알고리즘을 만들 수 있습니다. 제어 이론은 움직이는 시스템이 있을 때 입력값을 조절해 원하는 출력값을 얻도록 만드는 데 쓰이는 수학 분야입니다. x값에 따라 f(x)값이 달라지는 함수의 원리와 같습니다. 정확한 물리 법칙과 수식을 통해 드론을 제어하기 때문에 시행착오가 적고, 적용 가능한 알고리즘만 개발할 수 있으면 자유자재로 드론을 조종할 수 있어 유용하죠. 알고리즘은 드론에 생명을 불어넣는 마법인 셈입니다.
실내에서는 모션 캡처 카메라를 이용해 훨씬 더 정확하게 드론의 위치와 움직임을 제어할 수 있습니다. 모션 캡처는 사물이나 사람의 움직임을 센서로 인식해 디지털 정보로 옮겨 주는 기술이죠. 천장에 달린 여러 대의 적외선 카메라와 중앙 컴퓨터가 드론에 장착된 반사체의 위치를 1초에 20번씩 파악해 드론에 전송하고, 동시에 드론도 제어 알고리즘으로 자신의 위치를 계산해 두 값을 비교합니다. 이때 1초당 계산 횟수가 늘어날수록 위치 파악은 더 정확해집니다.
야외에서는 어떨까요? 위성에서 보내는 신호를 받아 위치를 계산하는 위성항법장치(GPS) 정보를 활용할 수 있습니다. GPS로 경도와 위도는 쉽게 알 수 있지만, 높이는 오차가 큰 편입니다. 그래서 레이저나 전파, 영상처럼 자신의 위치를 계산할 수 있는 장비를 조합해서 사용합니다. 두 가지 이상의 센서로 계산한 위치를 서로 비교해 가장 오차가 적은 값을 자신의 위치로 선택합니다. 그러면 궁극적으로 드론은 완전 자율 비행을 할 수 있게 됩니다.
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_5.jpg)
스텝➋ 날아오는 공 받기
드론이 자신의 위치와 다른 물체의 위치를 파악할 수 있으면 할 수 있는 일이 많습니다. 라파엘로 단드레아 스위스취리히 연방공과대 교수팀은 사람과 드론, 심지어는 드론끼리 테니스를 할 수 있는 알고리즘을 개발했습니다. 이 알고리즘은 드론 여러 대가 그물망을 이용해 던진 공을 받거나 다시 그물망을 튕겨 공을 던지는 명령을 수행할 수 있도록 합니다.
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_7.jpg)
공이 그리는 포물선을 계산한다
드론과 공을 주고 받는다고 해봅시다. 대각선 위로 던진 공은 중력의 영향으로 포물선을 그리면서 떨어집니다. 시간에 따른 공의 위치를 나타내는 이 포물선은 이차함수 y=ax2+bx+c로 나타낼 수 있습니다. 드론은 이 이차함수에 관한 미분방정식을 풀어 날아오는 공의 바로 다음 순간 위치를 계산해 반응합니다. 시간에 따른 공의 위치에 관한 식을 미분하면 공의 순간 속도를 알 수 있죠. 이것으로 드론은 자신이 어느 순간, 어느 속도로 어느 위치에 가야 공을 받아칠 수 있을지 계산합니다.
드론이 움직이는 물체를 따라다닐 수도 있습니다. 이를 ‘트래킹’이라고 합니다. 테니스를 칠 때와 달리, 물체와 부딪치지 않아야겠죠. 드론도 움직이고 물체도 움직이는데, 이들은 어떻게 서로 충돌하지 않을 수 있을까요? 드론이 충돌을 피하면서 트래킹을 하도록 만드는 알고리즘에는 여러 종류가 있는데, 그 중 가장 간단한 방법은 물체와 드론 사이의 거리를 일정하게 유지하는 방법입니다.
드론과 표적 물체의 거리를 10m로 정했다고 합시다. 드론은 표적 물체와 자신 사이의 거리가 12m 일 때는 물체 방향으로 가속해 거리를 좁힐 겁니다. 그러다 9m 정도로 가까워지면, 10m 거리가 될 때 까지 다시 속도를 줄이겠죠. 이 방법은 드론이 충돌하지 않으면서 물체를 따라갈 수 있도록 해 줍니다. 우리 눈에는 마치 드론과 물체가 서로 밀었다 당기는 동작을 반복하는 것처럼 보입니다.
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_8.jpg)
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_13.jpg)
날면서 배우는 드론
자전거를 타고 트랙을 따라 빠르게 달리는 사이클 경기에서는 속력뿐만 아니라 자세도 중요합니다. 경기장의 트랙이 안쪽으로 비탈지게 돼 있어 빠른 속력으로 달리다 자칫 몸이 흐트러지면 균형을 잃고 쓰러져 크게 다칠 수 있기 때문이죠. 그래서 운동선수들은 트랙을 계속 달리면서 연습하고, 또 연습합니다. 드론도 마찬가지입니다. 곡선을 그리면서 날 때는 자세 제어를 잘 해야 빠르고 안정적으로 코너를 돌 수 있습니다. 드론도 운동선수처럼 학습을 통해 더 정확한 자세를 익히도록 만들 수 있는데, 이럴 때 쓰는 알고리즘을 ‘인터랙티브 학습 알고리즘’이라고 합니다.
이 알고리즘의 기본 원리는 피드백입니다. 한 바퀴를 돌 때마다 내가 입력한 비행경로와 실제 드론이 날아간 경로의 차이가 클수록 (-) 점수를, 그 차이가 작을수록 (+) 점수를 주는 방식이죠. 이 피드백 점수의 총합이 항상 최대가 되도록 규칙을 정해놓으면, 드론은 여러 바퀴를 돌면서 입력한 비행경로와의 차이를 점점 줄여나갑니다. 생쥐가 미로를 빠져나왔을 때 보상으로 치즈를 주는 것과 비슷한강화 학습이죠.
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_9.jpg)
시동이 꺼지면 자동차는 그냥 멈추지만 드론은 추락합니다. 실제로 드론의 사용이 늘어나면서 드론의 추락 사고도 계속 늘고 있죠. 올 여름에는 해운대 해수욕장을 순찰하던 드론이 시범 운행 중 추락하는 사고도 일어났습니다. 벽돌처럼 무거운 드론이 머리 위로 떨어진다고 생각해 보세요. 끔찍한 사고로
자칫 크게 다칠 수도 있습니다.
충돌을 피하기 위해 기본적으로 드론은 음파나 전파를 보내 장애물에 반사돼 돌아오는 시간으로 거리를 계산하고 안정 거리를 유지합니다. 그러나 충돌을 피하게 하는 알고리즘이 작동하더라도, 갑작스럽게 통신이 끊기거나 프로펠러가 갑자기 부러지는 등의 비상사태에는 또 다른 대비책이 준비돼 있어야 합니다.
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_10.jpg)
프로펠러 부러져도 날 수 있다
쿼드콥터는 프로펠러 4개의 속력을 조절하면서 방
향과 자세를 잡고 비행합니다. 출렁이는 배 위에서 노를 저어 나아가거나 균형을 잡는 원리와 같습니다.오른쪽 프로펠러 2개를 왼쪽 프로펠러보다 빠르게 돌리면 왼쪽으로 기울며 날아가고, 반대로 왼쪽을 빠르게 돌리면 오른쪽으로 갑니다. 모든 프로펠러를 같은 속도로 돌린다면 공중에 떠 있을 것이고, 중력을 이길 정도로 더 빠르게 돌리면 위로 올라가겠죠.
만약 프로펠러 4개 중 하나가 부러지거나 고장이 난다면 드론은 어떻게 될까요? 프로펠러 3개만 돌아가면, 드론은 한쪽으로 기울다가 그대로 추락할 것입니다. 이때 필요한 것이 ‘자동안전장치 알고리즘’입니다. 이 알고리즘은 드론이 계속해서 회전 상태를 유지할 수 있도록 만들어 추락을 방지합니다.
예를 들면, 남아 있는 3개 중 망가진 프로펠러와 마주보고 있는 프로펠러를 멈추고 남아 있는 2개의 프로펠러만 돌리는 겁니다. 그렇게 되면 2개의 프로펠러만으로도 가장 단순한 회전 상태를 충분히 만들수 있어 드론의 움직임을 조정할 수 있습니다. 이 경우 복잡한 회전은 포기해야 하지만, 최소한 추락은 막을 수 있습니다.
비상 모드가 있어도 이미 추락하는 도중이라면, 때는 이미 늦을 겁니다. 갑작스럽게 날아오는 물체를 재빠르게 피하거나 충돌 즉시 비상 모드를 발동하려면, 반응속도를 높이는 노력도 필요합니다. 공현철 한국항공우주연구원 미래항공우주기술팀장은 “현재는 1초에 20번, 즉 20Hz 수준으로 드론이 정보를 주고받지만 앞으로 드론에 탑재되는 소형 컴퓨터의 성능이 더 향상되면 1초에 최대 200번 수준까지 더 정밀한 계산이 가능해질 것”이라고 말했습니다.
쿼드콥터는 프로펠러 4개의 속력을 조절하면서 방
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_14.jpg)
만약 프로펠러 4개 중 하나가 부러지거나 고장이 난다면 드론은 어떻게 될까요? 프로펠러 3개만 돌아가면, 드론은 한쪽으로 기울다가 그대로 추락할 것입니다. 이때 필요한 것이 ‘자동안전장치 알고리즘’입니다. 이 알고리즘은 드론이 계속해서 회전 상태를 유지할 수 있도록 만들어 추락을 방지합니다.
예를 들면, 남아 있는 3개 중 망가진 프로펠러와 마주보고 있는 프로펠러를 멈추고 남아 있는 2개의 프로펠러만 돌리는 겁니다. 그렇게 되면 2개의 프로펠러만으로도 가장 단순한 회전 상태를 충분히 만들수 있어 드론의 움직임을 조정할 수 있습니다. 이 경우 복잡한 회전은 포기해야 하지만, 최소한 추락은 막을 수 있습니다.
비상 모드가 있어도 이미 추락하는 도중이라면, 때는 이미 늦을 겁니다. 갑작스럽게 날아오는 물체를 재빠르게 피하거나 충돌 즉시 비상 모드를 발동하려면, 반응속도를 높이는 노력도 필요합니다. 공현철 한국항공우주연구원 미래항공우주기술팀장은 “현재는 1초에 20번, 즉 20Hz 수준으로 드론이 정보를 주고받지만 앞으로 드론에 탑재되는 소형 컴퓨터의 성능이 더 향상되면 1초에 최대 200번 수준까지 더 정밀한 계산이 가능해질 것”이라고 말했습니다.
![](https://images.dongascience.com/uploads/article/Contents/201604/M201510N006_15.jpg)