상세 컨텐츠

본문 제목

how to, 아두이노 드론 #16 : 문제는 PID야, 바보야! It's the PID control, stupid!

how to, 아두이노 드론/software

by 퍼블리셔환 2020. 9. 8. 12:25

본문

1. 방황하는 모터들

 

이제 출력은 충분하다.

 

새롭게 알게된 사실인데, 드론이 평형을 유지하지 못하고 급격히 흔들리면 전원이 꺼진다. 나름대로 본체를 보호하기 위한 방법인 듯 하다. 안타까운 점은 우리가 이를 직접 실험해서 몇 번이고 떨어트린 뒤에야 알게 됐다는 사실이다. 어찌됐건, 드론이 중심을 잡지 못해서 금방 전원이 꺼지기는 하지만 그래도 몸체를 충분히 들어올릴 만큼의 출력이 나온다. 드론이 중심을 잡지 못하는 이유로는 다음과 같은 가설을 생각해 보았다. 

 

. 드론 자체의 무게중심이 맞질 않는다. 

 

드론 무게중심 테스트

 

그래서 무게중심을 잡아보고자 펜 위에 올려서 테스트 해 봤는데, 잘 맞는다. 이정도 무게중심이면 나머지는 자체적인 pid가 맞춰줄 수 있을 것이라고 생각했다. 

 

. 프로펠러 연결부의 불균형

 

프로펠러 연결부

 

프로펠러와 모터를 연결해주는 기어의 이 개수가 균일하지 않다. 위 그림에서 볼 수 있듯이, 프로펠러 기어는 크기와 이 개수가 동일한데, 모터에 달려있는 피니언(pinion)기어의 이 개수가 각각 다르다. 모터 기어의 제조사가 공차설계를 엉망으로 한 것 같다. 유정훈 교수님께 혼나야된다. 어찌됏건, 그나마 잘 맞물리는 피니언 기어를 찾다보니 위 사진과 같이 11개짜리와 9개짜리 기어를 같이 사용해야되는 상황이 벌어졌다. 

 

. pid 값이 잘 맞지 않는다. 

 

결론부터 얘기하자면 이게 맞는 가설이었다.

 

이전 영상은 다음과 같다. 

 

드론이 방황한다.

 

영상에서 확인할 수 있듯이, 너무 크게 흔들려서 전혀 컨트롤이 되고 있다고 볼 수 없다. 그래서 다시 인터넷을 뒤지던 중에, 찾았다. 

 

2. 문제는 pid야, 이 바보야!

 

pid 값을 조정해봐야겠다는 생각이 들었다. 초보자가 컨트롤하기에는 pid값들을 모두 낮추는게 좋다는 조언을 확인했고, 우리랑은 전혀 다르지만 드론을 직접 만드는 사람들이 설정한 pid값들을 여러 개 모아서 trial & error 방식으로 하나씩 해보기로 했다. 내가 만약 기계및시스템제어 수업을 조금 더 들었다면 계산을 직접 할 수 있었을까? 어려웠을 것 같다. 그래서 우리가 입력한 pid값들은 다음과 같다. 

 

멀티위 pid세팅값

 

 

사실 이 멀티위 화면을 보고도 어떻게 각 pid값들을 입력하는지 감이 안왔다. 인터넷에도 조절하는 법이 안나오길래 이것저것 시도해보던 중에, 2.8 숫자에 마우스를 클릭하고 좌우로 드래그했더니 그제서야 값이 움직였다. 왜이렇게 불편한 ui를 적용했는지 의문이다. 어쨌든,

 

이대로 넣었더니, 날았다.

 

이 감격스러운 순간을 여러분과 함께하고자 한다.

 

성공!

 

대장정이 끝났다.

 

 

publisher, 환

관련글 더보기

댓글 영역