[아두이노 쿼드콥터] mpu6050의 배치방향 변경

Posted by Doony
2015. 11. 18. 10:04 아두이노 드론 프로젝트

안녕하세요 Y.NGneers입니다

오랜만에 포스팅을 하네요. 어느 정도 성과를 내고 포스팅을 하려고 했는데... 실험 도중 컴퓨터가 뻑이 나서 실험을 제대로 못했습니다.... 참 허탈하더군요.. (아두이노가 제대로 안돌아갈 정도로 뻑이 나다니... 예전에 앤시스도 돌리고 너무 혹사시켰나봅니다;;) 완성한 뒤 포스팅하려고 했으나 얼른 좋은 정보(?)를 공유하고 싶어서 이렇게 포스팅하게 되었습니다ㅎㅎ


무모한 객기(?)



이 영상은 저번 포스팅을 할 즈음에 찍은 영상인데요. PID 게인값을 어느 정도 맞췄다고 생각하니 실제로 드론을 날려보고 싶은 충동이 생기더라구요. 보시면 아시겠지만 전원을 끄기 전까지 잘 떠오르긴 하나 저희가 기대한 대로 제자리에서 수직으로 잘 떠오르지 않네요 아직 많이 부족합니다ㅎㅎㅎ 우선 가장 큰 문제는 아래에 부착된 배터리로 인해 수평이 맞춰지지 않기에 기울어진 상태로 상승하게 되는데요. 중심을 잡는데 시간이 부족한 듯 합니다. 조금 더 넓은 공간이었으면 결국 중심을 잡을 수 있었을까요?? 아쉽지만 어쨌든 좀 더 빠르고 안정적으로 반응하도록 바꿔봐야겠네요 ㅎㅎ 


mpu6050의 배치 변경


좀 더 안정적인 제어를 위해 어떻게 하면 될까 고민하던중 다른 능력자 분이 mpu6050 센서의 다른 방향으로 배치하신걸 봤어요. 그리고 왜 이렇게 진행하시는지 고민을 해봤습니다. mpu6050은 드론 위 아무데나 흔들리지 않게 잘 고정시켜 붙이면 되지 않나? 하고 생각하시는 분들도 계실텐데요. 저희가 내린 결론은 다음과 같습니다. 


아래 그림은 기존에 방식으로 저희가 mpu6050을 부착한 방식인데요. 



각 축의 중심을 잡기 위해서는 하나의 모터가 구동되게 됩니다. 예를 들어, y축에 애해 오른쪽으로 기울어지게 되면 오른쪽 모터에 좀 더 강한 출력이 들어가게 되죠. 




반면 mpu6050 센서를 살짝 틀어주게 되면 한 축에 대해 중심을 받을 때 더 많은 수의 모터가 관여하게 되기에 좀 더 유기적인 제어가 가능하지 않을까 싶습니다. 이러한 식으로 mpu6050의 배치 방향을 바꿔주게 되면 이를 제어하는 코드 또한 바뀌어야 하는데요. 





Roll을 x 방향에 대해 균형을 잡기 위한 모터의 출력값, Pitch를 y 방향에 대해 균형을 잡기 위한 모터의 출력값이라 한다면 각각의 모터의 출력은 위 그림의 수식처럼 나타낼 수 있어요! 축을 경계로 같은 쪽에 있는 모터는 같은 부호의 (그 방향에 대한) 출력을 갖게 된다는 점을 생각하면 쉽게 이해하실 수 있을거에요ㅎㅎ





저희도 mpu6050의 배치 방향도 바꾸고 또 드론 아래에 부착되어 있던 배터리의 위치를 옮겨 실험을 시작했는데요.. 예기치 못한 노트북의 전사(?)로 진행이 늦어지고 있지만 얼른 PID 게인 값을 맞추고 띄워보이겠습니다 (불끈!) 


좋은 하루 되세요~ㅎㅎ