brunch

You can make anything
by writing

C.S.Lewis

by 아나드론스타팅 Mar 26. 2019

말 잘 듣는 드론의 비밀, PID 제어

PID 제어를 통해 최적의 드론을 만들어 보자

드론이 즐거운 이유는 많습니다. 하늘을 난다는 사실 만으로 설레고, 바람보다 빠른 속도가 가슴이 두근거리고, 한 번도 가보지 못한 풍경에 즐겁습니다.

  

드론이 좋은 이유는 얼마든지 있죠. 사진=https://www.dji.com

  

하지만 드론 이전에 비행기와 헬리콥터가 이미 하늘을 정복했습니다. 물론 비행기나 헬리콥터 조종은 길고 어려운 수련이 필요하지만 우리에겐 무선 조종 비행기와 무선 조종 헬리콥터가 있었습니다. 심지어 연도 있죠.

  

우리가 즐기는 드론은 RC 헬리콥터와 조종법조차 비슷합니다. 사진=http://www.mattysreviews.com

  

라디오 컨트롤(RC, Radio Control) 기술을 사용하는 모형 항공기는 이전에도 많이 있었습니다. 하늘을 즐기는 방법은 이미 있었죠. 하지만 불과 5년 전에 소개된 드론이 많은 사람의 마음을 사로잡은 이유는 무엇일까요? 부담 없이 도전해볼만큼 저렴한 가격 때문이라고요? 그것도 맞는 사실입니다. 하지만 거기에 더해

  

쉬운 조종도 드론이 많은 이들에게 사랑을 받은 이유가 아닐까요? 사진=http://dronesworld.net

  

하늘을 나는 RC 항공기는 배우기가 만만치 않았습니다. 농구공 위에 탁구공을 올려놓고 산책하는 듯한 조종 솜씨가 필요했죠. 그러나 드론 조종은 간단합니다. 드론의 4가지 움직임도 RC 헬리콥터처럼 조종기의 2개의 스틱으로 제어됩니다. 하지만 드론은 RC 헬리콥터와 다르게 조종기가 움직이는 데로 움직입니다.

  

드론은 4가지 움직임으로 자유롭게 비행합니다. 사진=https://blog.naver.com

  

바람이 불어도 자리를 유지하고 장애물을 발견하면 멈추거나 피합니다.

  

드론의 이런 비행은 다양한 센서의 도움으로 가능합니다.

  

드론이 즐거운 이유는 바로 RC 항공기에 없던 쉬운 조종법입니다. 물론 쉽다고 하지만 연습이 없이 호락호락 하지는 않지만 누구나 어느 정도 연습하면 충분히 익힐 수 있죠.

  

가격별로 다양한 입문 드론이 있으니까요.


드론이 등장한 이후로 RC 비행기와 RC 헬리콥터도 드론 센서의 영향을 받아 조종이 더 쉬워지기도 했습니다. 그리고 센서의 도움으로 간편해진 조종에는 PID 제어라는 기술이 숨어 있습니다.

  

이것이 바로 PID 제어 방법입니다. 참 쉽…지가… 사진=https://commons.wikimedia.org

  

오늘의 드론스타팅에서 함께 나눌 이야기는 레이싱 드론 파일럿이라면 반드시 한번은 들어보았을 PID 제어입니다.

  

  


  

PID 제어라고?

  

말 잘 듣는 드론이란 어떤 걸까요? 위로 올라가라고 하면 오르고 앞으로 가라고 하면 전진하는 그런 드론이죠. 말은 쉽지만 말길을 알아들을 리 없는 드론에게는 그리 간단한 문제가 아닙니다. 드론에게 1m 상승해 라고 조종기로 지시해 볼까요? 1m를 상승하려면 드론은 몇 m나 올라갔는지 알아야 합니다. 드론의 센서는 자신의 높이를 감지하겠죠? 0.8m 올라갔다면 0.2m 더 올라갈 때 까지 프로펠러를 회전해야 하고 1.2m까지 올라갔다면 1m로 떨어질 때까지 프로펠러를 정지하거나 느리게 돌려야겠죠. 센서와 조종기가 내린 명령의 0.2m의 차이, 이 차이가 빨리 사라지는 드론이 말 잘 듣는 드론입니다.

  

이 차이를 줄이는 기술이 바로 PID 제어죠. 안타깝게도 PID는 어디서 본 듯한 수학 기호가 난무합니다. 우여곡절 끝에 졸업한 고등학교 이후 숫자와 담을 쌓은 지 몇 년이 지났는지 기억조차 없는데 PID는 더하기 빼기 이상을 요구합니다. 심지어 아 맞아 그런 게 있었지 싶었던 미분(Derivative)에다가 적분(Integral)까지 동원 됩니다. PID에 P(Proportional)는 비례, I는 적분, D는 미분입니다.

  

PID는 이미 나의 영역이 아니다 라고 하시겠지만. 사진=https://ko.wikipedia.org

  

PID 제어 방법을 제안한 니콜라스 미노르스키 (Nicolas Minorsky) 선생님도 배 조종법을 고민하다가 숫자로 표현하려니 할 수 없이 사용한 것일 뿐 미분과 적분을 탓할 수는 없습니다. 우리는 이미 PID 제어를 직관적으로 느끼고 있으니까요.

  

정확하게 시속 100km로 달려야 하는 자동차를 운전해 봅시다.

  

그런 차가 어디 있나고요? 고전 영화 ‘스피드(Speed 1994)는 50마일 이하로 달리면 폭발하는 버스가 등장합니다.  사진=https://movie.naver.com

  

우리가 속도를 유지하려면 할 수 있는 건 가속 페달을 밟는것 뿐입니다. 자동차가 시속 100km 보다 느리면 가속 페달을 더 많이 밟고, 너무 빠르면 살짝 놓으면 됩니다. 한 번에 시속 100km의 속도로 맞추면 다행이고 그렇지 않다고 해도 시속 100km 속도 근처에서 좀더 신경써서 가속 페달을 밟으면 됩니다. 시속 100km보다 많이 느리면 가속 페달을 많이 밟으면 됩니다. 얼마나 밟아야 하냐고요? ‘P’ 만큼 밟으면 됩니다.

  

느리면 꾹 밟고 너무 빠르면 덜 밟으면 됩니다. 사진=https://blog.hyundai-mnsoft.com

  

이번엔 자동차에 친구 4명이 탔습니다. 이 친구들 덩치 좀 합니다. 방금 전에 시속 100km로 달리던 P만큼 가속 페달을 밟으면 충분할까요? 분명히 속도가 시속 100km보다 느릴 테죠. 얼마나 더 밟아야 좋을까요? 일단 꾹 밟아서 얼마나 속도가 붙는지 느껴 보면 얼마나 더 밟아야 시속 100km가 될지 감을 잡을 수 있습니다. 그 감이 얼마나 되냐고요? ‘I’ 만큼 입니다.

  

사람들이 많으면 평소보다 더 밟아야 겠죠. 사진=https://www.youtube.com

  

그런데 저 멀리 언덕이 보입니다. 이대로 달린다면 언덕에서 속도가 떨어질게 분명합니다. 언덕을 만나기 전에 미리 가속 페달을 밟아 언덕에서도 기분좋게 시속 100km를 즐겨보세요. 가파른 언덕을 만난다면 가속 페달을 빠르게 밟아야 하고 낮은 언덕이라면 천천히 밟아야 겠죠. 얼마나 빠르게 밟고 얼마나 부드럽게 밟아야 시속 100km를 유지할까요? ‘D’ 만큼 밟으세요.

  

PID 제어는 P와 I와 D를 더한 것입니다.

  

PID 제어는 원하는 목표에 도달하기 위해 기계가 어떻게 반응해야 좋을지 가르쳐줍니다. 드론에게 1m를 상승하라고 조종기를 조작하면 조종기 스틱의 위치와 드론의 센서가 감지하는 차이를 줄이기 위해 PID로 계산된 만큼의 양으로 모터가 회전합니다. 이 PID 제어 덕분에 드론은 말을 잘 듣게 되죠.

  

드론의 두뇌에 해당하는 플라이트 컨트롤러(FC, Flight Controller)입니다. 이 안에 PID가 들어 있습니다. 사진=https://www.banggood.com

  

PID 제어는 사람이 몇 명이건 부드럽게 움직이는 엘리베이터부터 온도 조절기와 모터 등 다양한 곳에 이용됩니다. 흔하지 않지만 시속 50마일 이하로 달리면 폭발하는 버스를 운전할 때도 꼭 필요한 기술이죠.





드론의 PID 제어

  

레저용 촬영 드론을 날리거나 완구형 드론을 즐기는 동안 한번도 PID를 고민해 본 적은 없을꺼에요. 구입 후 바로 비행이 가능한 드론(RTF, Ready to Fly)은 이미 개발 단계에서 꼭 맞는 PID가 조정되어 있으니까요. 드론을 개발할 생각이 없다면 PID를 고민할 이유가 없지만

  

직접 만드는 레이싱 드론은 PID 설정이 꼭 필요합니다. 사진=https://www.kareareadrone.com/

  

레이싱 드론의 성능은 모양, 무게, 모터의 성능에 따라 다릅니다. 세상에 하나뿐인 나만의 레이싱 드론이라면 최적의 성능을 위해 PID를 조정해야 합니다. 어디에서 PID를 조정 하냐고요?


드론을 제어하는 소프트웨어는 다양합니다.


레이싱 드론을 제어하는 대표적인 소프트웨어인 베타플라이트나 레이스플라이트도 PID를 설정하는 곳이 따로 있습니다.

  

여기서 롤, 피치 그리고 요 회전에 대한 PID를 조정합니다. 사진=https://www.youtube.com

  

드론의 PID는 앞에서 살펴본 시속 100km 자동차와 다르게 반응하지만 원리는 같습니다. P는 조종기 스틱에 얼마나 빠르게 반응하는지 결정합니다. 너무 높으면 갑자기 밟은 가속 페달처럼 목표 속도를 금방 도달하는 대신 속도를 넘겨 버릴지 모릅니다. 속도를 급히 낮추면 바로 다시 속도를 높여야 합니다. 부들부들 떠는 드론이 되어 버리죠. P가 너무 낮으면 반응이 느려 흐느적거립니다.


I는 드론이 회전을 멈출 때 원하던 회전보다 더 회전하거나 덜 회전하는 현상과 관계있습니다. 같은 드론이라도 가장 무거운 부품인 배터리를 아래 설치하느냐 위에 설치하느냐에 따라 이런 현상이 생길 수 있죠. 드론의 무게가 달라져도 문제가 생깁니다. 이때 I 값을 변경해 줍니다.


D값은 목표한 속도에 드론이 얼마나 매끄럽게 반응하는지 조절합니다. 갑자기 회전을 시작하거나 갑자기 정지해도 빠르고 단단하게 반응합니다. D는 P값에 따라 적당한 값이 달라지기 때문에 보통 P값을 먼저 정한 다음 D를 조정합니다. D는 높을수록 빠르게 반응하는 드론이 되지만 그만큼 모터가 뜨거워집니다. 모터가 불타버리기도 하기 때문에 조심해야 합니다.


물론 드론을 제어하는 데는 PID가 정확하게 동작하려면 드론의 센서도 정확해야 합니다. 하지만 작은 드론에 들어 있는 더 작은 센서는 종종 이상한 신호(Noise)를 감지하기도 하죠.

  

그래서 베타플라이트는 정확한 PID를 위해 이상 신호를 제거하는 다양한 계산식이 동원됩니다. 사진=https://blog.naver.com/smoke2000/221286903521

  

  


  

PID 제어를 넘어 AI

  

그런데 이 PID 설정은 말로 설명하기가 무척 힘듭니다. PID 설정을 설명하는 동영상도 진동 같은 이상한 동작은 볼 수 있어도 반응이 어떻게 다른지는 조종기를 잡은 사람만 알죠. 고수님께 직접 사사받으면 좋겠지만 그것도 쉽지 않습니다. 드론의 반응은 사람마다 기대가 다른데다 수정한 값이 다른 값에 영향을 주기도 합니다. D 값을 수정하고 나면 다시 P값을 수정해야 하는 경우도 많습니다. 게다가 한 번에 최적의 PID를 찾아지지 않아요. 인공지능이 일자리도 빼앗는 세상에 날리고 조정하고를 반복해야 하다니 뭔가 더 좋은 방법이 없을까 고민됩니다.

  

그래서 최근 PID 제어를 대신할 최신 방법이 등장하기도 했습니다. 사진=http://wfk.io/neuroflight/

  

보스턴 대학의 윌리엄 코치(WILLIAM KOCH)는 베타플라이트에서 PID 제어 부분을 제거한 다음 그 자리에 인공지능 개발에 사용되는 인공 신경망 이론을 넣었습니다. GymFC라는 강화학습 (reinforcement learning) 프로그램으로 시뮬레이션 데이터를 반복 학습시켰습니다. 이 새로운 드론 제어 방법은 PID가 뭔지 몰라도 어떻게 모터를 돌려야 말 잘 듣는 드론이 되는지 스스로 학습합니다.

  

파란색 선이 PID 제어, 주황색이 인공지능입니다. 인공지능 드론이 훨씬 말을 잘 듣습니다. 사진=http://wfk.io/neuroflight/

  

PID를 대체할 이 인공지능으로 뉴로플라이트(Neuroflight)라는 새로운 드론 제어 소프트웨어 탄생했습니다.

  

뉴로플라이트 입니다. 소프트웨어를 오픈소스로 공개했으니 여러분도 인공지능의 비행을 시험해 볼 수 있습니다. 사진=http://wfk.io/neuroflight/

  

강화학습은 알파고가 바둑의 신이 된 비법이기도 하니 뉴로플라이트도 기대됩니다. 어느 고수의 PID보다 뛰어난 드론이 등장하지 않을까요?

  

물론 지금은 너무 많이 가르치면 이상한 결과까지 학습해서 더 바보가 되기도 하지만요. 사진=https://www.youtube.com

  

인공지능을 이용한 드론 제어 방법이 충분히 무르익을 때까지 우선은 PID 설정에 도전해 보세요. 물론 최근 드론의 성능이 좋아지고 제어 프로그램이 발전하면서 기본 PID 설정만으로 제법 훌륭한 비행이 가능해졌습니다. 그래서 PID 제어는 피자의 마른 도우 테두리처럼 재미없는 부분이 되어 버렸습니다. 하지만 최적의 PID를 찾지 못하면 내 소중한 드론은 한계를 만날 수 없습니다. 레이싱 드론은 찰나의 순간으로 승부가 나뉩니다. 봉인을 풀어주세요. 열쇠는 PID 제어입니다.

  

  


WRITER 민연기/아나드론스타팅 필진

하늘을 나는 물건을 하나씩 공부하고 있는 엔지니어입니다.

http://blog.naver.com/smoke2000



초보자를 위한 드론 전문 웹진, 아나드론스타팅!

www.anadronestarting.com

매거진의 이전글 DJI, 팬텀 4 프로 생산 중단 결정
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari