Quadrotor20152015. 8. 31. 20:19


오늘은 윙윙이를 변신시키는(다이어트?) 과정을 포스팅해보려 합니다~ 편안하게요 ㅋㅋ


음.. 갑자기 생각난건데 최근 밴드 혁오의 윙윙 이라는 노래가 음원차트 상위권에 랭크되어있던데.. 


비슷하네요 ㅋㅋ 저도 쿼드로터가 날 때 윙윙거려서 윙윙이라고 지었는데 ㅋㅋ


어쨌든! 경량화 해야지 해야지 하면서 미루다가 이제서야 하네요.. ㅜ


먼저 다이어트 전 윙윙이입니다.



프롭가드 빼니까 좀 허술해보네요 ㅋㅋㅋ 물에 빠진 강아지마냥..


이왕 하는김에 어느 파츠가 몇 그램인지 측정하기위해 완전 분해를 결심했습니다~!


(그래놓고 측정한거 써놨던 종이 잃어버림 ㅜㅜ)


완전 산산조각났을 때는 정신이 없어서 사진을 못찍었네요 ㅠㅠ 


작업중에 건진 사진은 달랑 이거 하나..




프레임이 무거울줄 알았는데 오히려 모터가 꽤 무겁더라구요..


무게를 1/3정도 줄이는걸 목표로 삼았는데 무리라는 생각이 들었습니다.ㅜㅜ



아두이노 배선이 지저분하죠? 


직접 PCB를 뜨지않는 이상 전선은 어쩔 수 없다고 생각하고.. 최대한 무게를 줄여보자는 마음에!


전선은 좀 더 얇고 가벼운 걸로 싹 교체하고! 


저 검은 소켓을 비롯해 전원소켓, USB소켓까지 필요없는건 다 없애버렸습니다.




USB소켓은 프롭가드랑 닿아서 연결이 힘들길래 아예 선으로 빼서 늘어뜨려 놨어요~!


음.. 지금보니 무식하게 선을 납땜해놨는데.. 


전자과나 고수분들이 보시면 욕할지도 모르겠네요ㅜㅜ





아크릴판으로 층을 만들어서 따로 장착했던 센서도 한 층에 몰아넣었습니다ㅋㅋ


이왕 하는거 스펀지+양면테이프로 방진 효과도 노려 보고!


프롭가드도 프롭에 닿을랑 말랑해서 불안했는데


새로 만들어서 안쪽을 칼로 도려냈습니다~! 무게도 줄일겸 ㅋㅋㅋ




짠~! 진짜 뭔가 새로워진 것 같아서 개발 의욕도 솟더라구요


무거움 -> 더 많은 추력 필요 -> 더 많은 모터 회전 필요 -> 더 많은 진동 -> 센서로 전달


이런 식일까봐 무게를 줄여봤는데 잘한 것 같네요


줄인김에 +콥터에서 x콥터로 바꾸니까 자세제어도 더 잘되고..


컴퓨터 폴더 살펴보다가 사진이 보이길래 지나가는 포스팅을 해봤습니다~


기술적인 부분은 다음 포스팅에..






Posted by 너를위한노래

댓글을 달아 주세요

  1. 쿼드제작초보

    PID값을 잡는중인데 중심을 잡긴잡는데 정확히 잡지 못하고
    평형상태에서 -10~10사이로 왔다갔다하는 현상이 일어나고있습니다.
    쓰로틀이 커질수록 그런 현상이 더심하게 나타나는데.

    혹시 이런 문제점의 해결방법을 알고 계신지요.
    방진은 방진보드를 새로 구매하였고 귀마개를 이용하여 방진을 최대로 하여 효과를 봤습니다.
    모터와 프롭의 벨런스도 잘 맞추었구요.
    실험을 할때는 지면에서1.5m이상 공간에서 실험을 하엿습니다.

    혹시 제작할때 저와같은 문제가 있으셧다면 이문제를 어떻게 해결해야할까요?

    2015.09.01 19:51 [ ADDR : EDIT/ DEL : REPLY ]
    • 왔다 갔다 빠르게 반복된다면 PID제어량, PID게인을 점검해봐야 할 것 같구요, 천천히 기울어진다면 센서 각도를 점검해봐야할 것 같네요.. 전 두가지 문제를 번갈아서 모두 겪어봤어요 ㅠ

      2015.09.03 00:06 신고 [ ADDR : EDIT/ DEL ]
  2. 와 프롭가드 멋지네요. 어디서 구매하셨나요? 자작이라기엔 완성도 짱이네요!

    2016.01.23 06:34 [ ADDR : EDIT/ DEL : REPLY ]
  3. 쿼드콥터맨

    안녕하세요~!!! 저희도 이번에 졸업작품으로 아두이노 쿼드콥터랑 제어 어플 개발하고 있는데요 ㅠ 지금 완전 막혀있는 상태입니다.
    우선 MPU6050의 DMP?를 쓰고 있는데 이걸론 무리일까요? 샘플주기가 10ms정도 나오더라구요.. 100hz라는건데 노래님 포스트 보다보니 100hz론 택도 없다고 하셔가지고.. 멘붕입니다.. 처음부터 다시 짜야될지..

    그리고 모터 출력함수는 뭘 사용하셨나요? writemicroseconds는 헤더파일에서 듀티사이클값을 400hz이상으로 설정해놔도 167hz가 한계라고 하던데.. 오실로스코프가 없어서 확인을 못해보겠네요... 혹시 어떤 함수를 사용하셨는지요...

    아 그리고 PID제어는 단순히 각에대한 제어만 하신건가요? 저는 각에 대해 먼저 P제어를 하고 난 다음에 그 값을 목표각속도로 하여 각속도에 대한 PID제어를 한번 더 하는 이중 PID제어 알고리즘을 사용중인데, 어떤 알고리즘을 쓰시는지 궁금합니다!

    또 저희가 블루투스 통신으로(HC-06모듈) 제어를 하는데 이게 가끔 값이 튀어서 갑자기 곤두박질 치는 경우가 있더라구요.. 원래 블루투스가 이런건지 궁금합니다..

    그리고 프롭가드는 기성품을 사신건가요??? 완전 멋지네요.. 우리도 저런거 있었으면 프로펠러 안뿌러뜨리고, 뿌러질 걱정없이 팍팍 띄워볼텐데!! 발표가 당장 몇일 앞이라 주문할 엄두도 안나네요.

    질문이 좀 많은데ㅠ 답변 부탁드리겠습니다!!

    2016.04.12 01:56 [ ADDR : EDIT/ DEL : REPLY ]
    • 메일 보내신 분이시죠? 해당 내용 답글로 남깁니다.
      1. DMP
      MPU6050의 DMP는 내부에서 각도를 알아서 계산해주는 걸로 알고 있는데 맞나요?? 그게 10ms로 되어있다면 사용 불가능할 것 같습니다. 저도 100hz짜리 비싼 센서 썼었는데 택도 없더라구요

      2. PWM
      어떤 아두이노를 사용하시는지 모르겠지만, 저는 아둥이노2560의 pwm출력 단자를 사용했습니다. 각 출력 단자는 타이머와 연결되어있는데요, 공식 홈피에 가시면 몇번 단자가 어떤 타이머에 연결되어있는지 나와있을 겁니다. 각 타이머마다 주파수가 같지 않으니까 타이머 주파수 조절하는 함수를 사용하셔야 합니다. (TCCR1B=0x0A; 이런식으로 조절했었습니다.)

      3. 제어
      저도 이중 PID제어를 사용했구요, 제 블로그의 영상은 각도 PI + 각속도PD제어였습니다

      4. 블루투스
      저도 블루투스 쓰다가 어느순간 값이 누락되고 지연되고 이런 문제점이 많아서 WiFi로 갈아탔는데요, 블루투스를 계속 쓰실 거라면 초당 데이터 전송 횟수를 좀 줄여보시길 바랍니다. 저 같은 경우는 빨리 제어하고 싶어서 빨리 전송하다보면 입력 버퍼(?)같은데 쌓여서 밀리는건지 잘 안되더라구요

      5. 프롭가드
      2년전에 쿼드콥터 대회 나갈때 몇개 여분으로 샀던 건데요, 얼마 전 프롭가드 말고 프레임을 사려고 쇼핑몰에 문의해보니 지금은 프레임, 프롭가드 모두 안판다고 하시네요.
      프롭가드 있다고 프로펠러가 안부러지진 않구요ㅋㅋ 프로펠러 회전반경을 눈으로 볼 수 있어서 조심할 수 있는 정도입니다

      생각 나는대로 적어서 두서가 없네요 ㅎㅎ 발표 잘 하시길 바랍니다~!

      2016.04.27 14:38 신고 [ ADDR : EDIT/ DEL ]
  4. 드론초보

    와...딱 제가 하려는 부품들로 하려는 작업이에요.....
    혹시 소프트웨어는 어떤거 쓰셨나요???
    저는 multiwii 2.4로 하고있습니다.

    2019.01.21 19:37 [ ADDR : EDIT/ DEL : REPLY ]

Quadrotor20152015. 7. 24. 23:55

포스팅이 뜸한 사이 윙윙이(쿼드로터)에 많은 변화가 있었습니다~


점프선으로 복잡하게 얽혀있던 선을 모두 자르고 컴팩트하게 납땜해서 보기좋고 가볍게 해놨고, 센서에 방진장치로 양면테이프+스펀지를 대서 방진효과를 기대할 수 있게 해놨고, 불량 모터 교체, 라즈베리파이에서 오드로이드C1로 개선, 개발환경 구축, 시리얼 통신 비용 감소, +콥터에서 x콥터로 변경, 조종 어플 개선 등등 많이도 했네요.


그리고 그 동안은 게인값 튜닝에 많은 시간 투자를 했었는데.. 홧김에 제어기를 추가하니까 확실히 성능이 개선됐습니다.


아래 영상은 수동 조종 모드로 호버링을 시도한 영상입니다.



고도는 80cm로 고정시켜 놓았고 tack-off 버튼과 landing버튼으로 이륙과 착륙을 할 수 있게 해봤습니다. yaw각도 고정입니다.


이제 시작이네요! 이걸로 뭘 하느냐가 중요한 것 같습니다.


부셔먹지 말고 조심히 잘 해야지..


------------------------------------------------- 2015.07.29 추가 -------------

위 영상의 사용된 하드웨어는 아두이노Mega2560 + 오드로이드C1 + 갤럭시s4입니다. 오드로이드 운영체제는 RTOS가 아닌 하드커널에서 제공하는 우분투를 사용했고, 갤럭시s4는 안드로이드 KitKat(4.4.2)입니다. 

무선통신은 Wifi를 사용해 UDP통신을 하는 중이고(가끔 딜레이가 생기던데 원인 파악중..), 안드로이드 쪽에서 핫스팟을 켜두면 오드로이드에서 붙는 방식을 취하고 있습니다~







Posted by 너를위한노래

댓글을 달아 주세요

  1. 라임맛케익

    가속도, 자이로 센서값을 오일러각으로 변환-1을 보고 예전 상보필터설계 부분을 봤는데요 상보필터에 사용되는 acc이나 gyro 값들은 각각 가속도를 변화하여 만든 오일러각과 자이로값을 변화하여 만든 오일러각인것 맞나요? 그리고 '가속도, 자이로 센서값을 오일러각으로 변환-2'를 보고 싶은데 혹시 올려주실수 있나요?ㅠㅠ

    2015.07.25 16:21 [ ADDR : EDIT/ DEL : REPLY ]
    • 네 각각의 오일러각이 맞습니다~ 2편은.. 상보필터에대한 내용인데요 현재 작성중입니다.ㅜ 급하시면 예전에 썼던 상보필터 내용을 참고하시면 될거같아요~ 비슷한 내용입니다.

      2015.07.26 14:49 신고 [ ADDR : EDIT/ DEL ]
  2. 쿼드콥터

    통신을 사용하신거 같은경우에 블루투스 통신을 이용해서 조종하시고 계신건가요?

    2015.07.28 14:38 [ ADDR : EDIT/ DEL : REPLY ]
  3. 비밀댓글입니다

    2015.08.13 21:30 [ ADDR : EDIT/ DEL : REPLY ]
  4. 제이기를 추가하셨다고 했는데 구체적으로 어떻게 무엇을 추가해주셨는지 설명 부탁해도 될까요?? ^^

    2015.08.26 11:22 신고 [ ADDR : EDIT/ DEL : REPLY ]
  5. 프롭가드는어떻게구매하셨아요?

    2015.09.03 22:18 [ ADDR : EDIT/ DEL : REPLY ]
  6. 비밀댓글입니다

    2016.03.30 20:51 [ ADDR : EDIT/ DEL : REPLY ]
  7. 비밀댓글입니다

    2016.08.18 13:21 [ ADDR : EDIT/ DEL : REPLY ]
    • 먼저 위 글의 영상은 optical flow를 사용하지 않은 영상인 점 알아두시구요, 이 후에 올렸던 호버링 영상을 기준으로 말씀드리겠습니다. optical flow 센서(e.g. px4flow)는 사용하지 않았고 일반 모노카메라를 사용했습니다. 모노카메라로 optical flow를 통해 속도를 추정하고 이를 가속도, 자이로, 초음파 센서의 도움을 받아 실제 m/s의 속도를 구했었습니다. 말씀하신 것처럼 단순히 optical flow만으로는 호버링이 어렵습니다. 노이즈도 심하고 기체의 회전운동과 병진운동을 구분하기도 힘드니까요..

      2016.08.18 23:07 신고 [ ADDR : EDIT/ DEL ]
    • 비밀댓글입니다

      2016.08.24 13:20 [ ADDR : EDIT/ DEL ]

Quadrotor20152015. 6. 18. 18:53

MPU6050의 데이터 시트를 보면 DLPF(Digital Low Pass Filter)정도를 조작할 수 있는 레지스터가 있습니다.


아두이노 MPU6050 라이브러리를 보니까 MPU6050_DLPF_BW_xxx로 나와있네요.


xxx자리에 256, 188, 98, 42, 20, 10, 5라고 쓰여있는데 숫자가 낮을수록 더 낮은 주파수만 통과시키는 것 같습니다.


오늘 포스팅에서는 쿼드로터에 달린 MPU6050의 자이로 센서만 가지고 DLPF 성능을 비교해볼껀데요,


실험 할 때는 쿼드로터가 뜰랑 말랑할 정도까지 모터를 작동시키되, 손으로 눌러서 바닥에 고정시켰습니다.


각속도인 가속도 센서 출력은 0이 나와야 정상인데 모터로 인한 노이즈를 측정한 셈입니다.


위에서부터 BW는 5, 42, 256입니다. 대충 3개만 집어서 테스트해봤습니다.


데이터는 스케일링 해서 [deg/s^2]로 변환했습니다~





BW를 5로 해서 진동에 둔감하게 하면 반응이 느려지는가 싶어서 센서 두 개를 같이 장착하고 BW를 다르게해서 각도 변화를 살펴본 결과,


반응이 느려지지 않았습니다.


왜 느려지지 않는지 모르겠네요 ㅠ 하드웨어적으로 LPF하는 기능이 들어가있는 건지.. 


이에 관해 아시는 분 계신다면 댓글남겨주시면 감사하겠습니다 ㅠㅠ









Posted by 너를위한노래

댓글을 달아 주세요

  1. 반응속도

    BW 5로 설정하시고 그대로 진행하셨나요?

    2015.10.13 09:35 [ ADDR : EDIT/ DEL : REPLY ]
    • 공대

      숫자가 올라갈수록 bandwitdh는 낮아지고 delay시간도 올라갑니다..

      2015.12.10 15:24 [ ADDR : EDIT/ DEL ]
  2. dd

    반응 느려집니다. 시간이 좀 지나야 점점 느려져요. 한 5분정도쯤되면 3~4초쯤 늦게 반응해요 ^^

    2016.03.15 20:22 [ ADDR : EDIT/ DEL : REPLY ]

Quadrotor20152015. 6. 15. 20:36

멀티콥터 관련 검색중에 좋은 글이 있어 퍼왔습니다. 

출처는 http://www.internetmap.kr/1479 입니다. 직접 들어가시면 더 좋은 글도 많을 것 같네요.


------------------------------------------------------------------------------------------------------

멀티콥터를 조립해볼까 싶어 여기저기 뒤적거리는 중에, 좋은 문서를 발견해서 번역해봤습니다. 이 글의 제목인 Build your own Multicopter 라는 글입니다. 멀티콥터를 구하는 방법은 단순 완제품 구입하는 것부터 프레임부터 제작하는 방법까지 아주 다양한데, 어떻게 시작하면 좋은지를 비교하고 있습니다.

며칠전 우연히 읽었던 "Build My Own Quadcopter ? 나의 쿼드콥터 제작기" 라는 글에서 저자가 주로 참고했다는 사이트입니다. 

이번엔 꽤 공을 들여 번역했습니다. 멀틱콥터 조립에 관심이 있으시다면 많이 도움이 될 것 같습니다.

멀티콥터를 제작하는 방법은 아주 다양하다.


  1. 사려깊게 천천히 나아가는 것이 두발로 한꺼번에 뛰는 것보다 낫다. 너무 빨리 하려고 시도하다보면 실망하기 쉽다.
  2. 처음에는 간단하고 작은 쿼드콥터, Ready to Fly(완제품) 또는 All Inclusive Kit(완전 조립 키트)로 부터 출발하면 좋은 경험을 쌓을 수 있다.
  3. DIY 경험이 많은 사람이라면 아래에서 언급하는 F450 FlameWheel 과 같은 Almost Ready to Fly(반 완제품) 정도도 좋다.
  4. 멀티콥터를 처음 만진다면, 처음부터 사진/비디오/ FPV(First Person View) 등은 시도하지 말고 그냥 좋은 쿼드콥터만 만들라.
  5. 자신이 원하는 걸 잘 아는 사람일지라도, 멀티콥터와 조종기를 능숙하게 다루는 데는 시간이 필요하다.
  6. 조금 맛만 보고 즐기려면, 작고 싸고, 튼튼하고, 안전한 마이크로 쿼드콥터를 시도해보라.
  7. 정말 진지하다면 FlameWheel 기반 ARF(반완제품) 조립을 해보거나, 그냥 단순히 날려보고 싶고 자금이 풍부하다면 고급형 Iris 쿼드콥터를 구입하라.
  8. Iris에는 최고급 Pixhawk 콘트롤러가 포함되어 있으며, Iris와 FlameWheel 은 모두 필요시 FPV 또는 Video 를 달 수 있다.
  9. Flip Sport 와 같이 정말 괜찮고 간단한 쿼드콥터 제작법에 관한 완벽한 문서가 없다면, Frame Up Build(프레임기반 수제작)는 하지 말라.
  10. 절대로 Build your own Frame(완전 수제작)은 피하라. 설령 경험많은 제작자들이라 할지라도 성공보다 실패확률이 높다.
  11. 처음부터 여러가지 사진/비디오 장비를 장착한 큰(위험한) 멀티콥터부터 시도하는 것은 절대로 하지 말라. 반드시 후회하게 된다.
  12. 어떤 경우에도, 작고 빠른 쿼드콥터를 날리는 것이, 크고 무겁고 느린 헥사/옥토 콥터보다 훨씬 재미있다.
  13. 최고급 전문가용 HD 비디오나 사진을 달아야 하는 경우를 제외하면, 작고 가볍고 빠른 콥터가 항상 좋다.
  14. 멀티콥터에서 가장 중요한 것은 안전이다. 살아있거나 비싼 물건과는 일정 거리를 확보하라. 안전매뉴얼을 참고할 것.


중국 직수입의 장단점


  1. 단지 싸다는 이유로 중국에서 여러가지 물건을 직수입하려는 유혹이 생기기 마련이지만, 별로 좋은 생각은 아니다.
  2. 경험이 쌓이면 어떤 수입물품이 서비스가 가능한지 알게되지만, 처음부터 시도하는 것은 실패하기 쉽다.
  3. 주요 전자기기(콘트롤러 등)은 생산자로부터 구입하는 것을 추천한다. 예를 들어 Pixhawk는 3DRobotics로 부터. 
  4. 부속 전자기기(GPS, 전자나침반, telemetry, 필요시 OSD 등) 도 3DRobotics에서 구하는 것도 좋다.
  5. FPV 가 필요할 경우, 3DRobotics의 FPV 키트나, FatShark의 Altitude 비디오 고글과 전송기를 구하라.
  6. 카메라의 경우, GoPro Hero 3(특히 Black)가 좋다. 널리 사용되고 작동도 잘된다.
  7. DJI의 FlameWheel ARF(근 완제품) 키트도 중국산이기는 하지만, 품질이 좋으므로, 어디에서 구입하든 무방하다.
  8. 초보자용 미니 쿼드콥터로 추천되는 Traxxas, Hubsan, Helimax 도 중국산이기는 하지만, 초보자에게 적당하다.
  9. 모터, 배터리, ESC, 프레임, 혹은 FRSky, Turnigy RC 전송/수신기 등은 중국에서 직접 수입하면 저렴하게 구할 수 있다.
  10. 국내에서 구할 수 있는 많은 제품들이 사실은 중국산이며, 물론, 어느나라 제품이냐에 관계없이 품질은 많은 차이가 있다.
  11. 25달러짜리 RC-Timer 모터가 동급의 100불짜리 Tiger 모터와 품질이 비슷할 가능성은 거의 없다. 그래도 25달러니까.
  12. 중국 직수입시 배송은 대부분 믿을 만 하지만, 사후 지원이나 반송 등은 문제를 일으킬 공산이 크다.
  13. 중국 직수입시 10% - 20% 정도는 깨지거나 망가졌거나, 일부가 빠졌을 거라고 생각해두면 크게 실망하지 않을 것이다.
  14. 어떠한 경우에도, 먼저 아래에 있는 두세가지 추천 제작법으로 시작하면, 성공의 기쁨을 누리고 조종법을 익힐 수 있을 것이다.


저렴한 RTF(완제품) 마이크로/소형 쿼드콥터


멀티콥터 초보자라면, 아래에 서술하는 몇가지 저렴한 마이크로 쿼드콥터로부터 시작해보길 강력하게 추천한다.

  1. 이들은 무전기, 배터리 등 모두 갖추어져 있어 조립이 필요치 않으며, 견고하고 조종법 배우기에 좋다.
  2. 또한 아주 재미있고, 실내에서도 쉽게 안전하게 날려볼 수 있다. 가격은 대략 10만원 안쪽
  3. 중요한 점으로서, 작동원리에 대해서 잘 이해할 수 있게 되며, 앞으로 무엇을 해야할 지 파악할 수 있다.
  4. Traxxas QR1 Quadcopter는 저렴한 완제품 쿼드콥터로서, 최초 경험시 좋다. 
  5. 45달러짜리 Hubsan X4는 Traxxas와 거의 동일하며, $70 짜리는 사진과 720p 비디오를 촬영할 수 있다.
  6. 200달러짜리 Hubsan은 진짜 쉬운 FPV 가 가능하며, RC 전송기와 뛰어난 LCD 디스플레이가 포함되어 있다.
  7. Hubsan 은 부품도 별도로 구매할 수 있다. Hobby Flip
  8. Helimax 1SQ 도 저렴한 손바닥 크기의 쿼드콥터.
  9. 정말로 정말로 쪼그만 40달러짜리 Estates Proto X는 원래 Hubsan H111 으로서, 정말 잘 난다.
  10.  


  11. 아래는 아주 튼튼한 드론으로, Amazon Prime에서 제작한 88달러 짜리 UDI U818A 2.4GHz Quadcopter with Camera 이다.
  12. 처음으로 멀티콥터를 구입하려는 분은 반드시 RockLandUSA의 글을 참고할 것
  13. 아래 90 달러짜리 Blade Nano QX는 추천작으로, 아주 가볍고 날리기 쉬우며 매우 튼튼하다.
  14. 지금 시작한다면, 이상과 같은 여러가지 중 하나를 선택해서 조종법부터 익히길 바란다. 엄청난 돈을 절약하는 길이다.


All Inclusive Kit(완전 조립 키트)


  1. 가장 쉬운 조립법은 박스에 모든 부품과 단계별 조립방법이 다 포함된 키트를 구입하는 것이다.
  2. RTF(완제품)을 제외하면, 괜찮은 멀티콥터를 조립할 수 있는 가장 신뢰할 수 있고 간단한 방법이다.
  3. 대부분 모든 제품이 균형이 잘 맞으므로, 전체 제품이 잘 동작할 가능성이 높다.
  4. 모두 포함된 키트의 경우, 볼트 너트, 혹은 약간의 납땜작업만으로 완료된다.
  5. 조립 절차는 딸려 오는 매뉴얼에 잘 설명이 되어 있다.
  6. 단점이라면, 품질이 좋은 키트의 경우 다른 대안보다 약간 비싸며, 업그레이드가 필요할 수 있다는 것이다.
  7. DIY에 익숙하지 않다면, All Inclusive Kit(완전 조립 키트)로 시작하는게 좋다.
  8. 3DR의 Copter는 진정한 의미의 DIY 키트로서, APM2.5 콘트롤러와와 여러가지 옵션이 있다.
  9. 최신의 혁신적인 Iris QuadCopter는 사실 완제품(Ready to Fly)로서 최고급 Pixhawk 콘트롤러가 탑재되어 있다.
    • 완전 자동 운항이 가능하며 RC 송수신기, 배터리, 텔레메트리가 모두 포함되어 있는데, 750 달러면 정말 싼거다
    • Iris는 구조적으로 튼튼하고 탄성이 있고, GoPRO 또는 FPV(First Person View)를 지원하도록 설정되어 있다.



Almost Ready to Fly(반완제품)


  1. 모든 것을 원하고, 가장 다재 다능한 멀티콥터를 원한다면, 가장 좋은 솔루션은 바로 위에 있는 Iris 이다. 
  2. 기존에 RC 송수신기가 있어 예산을 절약할 수 있으며, 고품질의 자동운항 쿼드콥터를 제작하고 싶을 수도 있다.
  3. 처음 시작하는 사람도 시도해볼 수 있는 괜찮은 선택지가 몇 개 있다.
    1. DJI F450 FlameWheel 쿼드콥터 ARF(반완제품) 키트가 현시점에서 유일하고도 가장 최선의 선택이다.
    2. 이 키트는 프레임, 전기회로가 내장된 보드, 4개의 ESC(전자변속기) 및 모터, 8개의 프로펠러로 구성된다.
    3. 여기에 Pixhawx 콘트롤러와 배터리, 전파 송수신기를 별도로 구입해야 한다.
    4. 키트에 포함된 부품은 모두 품질이 뛰어나며, 진짜 DJI FlameWheel 프레임은 아주 견고하고 튼튼하다.
    5. 가격: F450 ARF(반완제품) 키트 $180, Pixhawk with GPS/Compass $280, 배터리 $35.00 = ($495.00) 여기에PPM-Sum 송수신기 추가 필요.
  4. 대안으로 F450보다는 약간 작은 DJI F330 FlameWheel 쿼드콥터도 좋다. 좁은 장소에서 사용할 경우에는 더 좋을 수도 있다.
    1. F330을 기반으로한 조립법은 위키페이지를 참조. F450에도 동일하게 적용가능하다.
  5. 이보다 저렴한 대부분의 ARF(반완제품) 키트는 전혀 튼튼하지 않고 부품들이 자주 망가진다.
  6. F450 ARF(근 완제품) 키트는 여기에서 살 수 있다. F350 키트도 있다.
  7. 모양이 비슷한 모조품 키트는 절대 사지마라. 진짜 DJI 모터와 ESC는 품질이 아주 좋고 프레임이 튼튼 하지만 모조품은 그렇지 않다.
  8. 더 비싸고 고품질의 ARF(반완제품) 키트도 있지만, FlameWheel는 잘 작동하며 성능이 우수하다.
  9. 초기투자 비용을 가능한 한 낮추려면 간단한 콘트롤러로 시작한 후, 나중에 Pixhawk로 바꾸는 방법도 있다.
  10. F450 도 GoPro와 Gimbal 을 채택한 사진/비디오 콥터로 구축하거나, FPV 플랫폼으로 사용할 수 있다.
  11. DJI F550 ARF(반완제품) 헥사콥터는 더 고급 용도로 좋지만, 첫 멀티콥터로서는 과하다.


프레임 기반 수제작(Frame Kit)


  1. 프레임 키트를 기반으로한 멀티콥터 수제작에 발을 딛는 것은 큰 도전을 의미한다. 초보자에겐 전혀 해당되지 않는다.
  2. 특정한 모델에 대한 자세한 제작법을 따라하는 것이라면 예외이다.
  3. 나는 현재 Flip 380 Sport 쿼드콥터와 Tarot 650 Carbon Fiber 쿼드콥터 등 두가지를 제작중이다.
  4. 각각의 제작 이유와 제작방법을 기술한다.
  5. Hoverthings의 Flip 380 Sport 프레임은 현재까지 가장 튼튼한 프레임 이다.
    1. 이 프레임 키트에는 놀라울 정도로 하고 강한, CNC 절삭 1/4 인치 유리섬유 지지대와, G10 유리섬유 중심판(center plate)이 들어있다.
    2. DJI FlameWheel 에서 사용하는 모터와 ESC 를 사용할 수 있다. 10인치 프로펠러까지 사용가능.
    3. 나는 Flip Sport 키트 외에 "tab" 타입 중심부와 추가로 7/8" 기둥(spacer)을 구입하였다.
    4. 중심판(center plate)에 7/8" 기둥으로 설치한 추가 중심부에는 배터리와 비행기기를 설치한다.
    5. 나는 보유중이던 DJI FlameWheel 모터 4개에 콥터 중앙판에 설치할 수 있는 4 I n 1 ESC 를 사용했다.
    6. 4 in 1은 RF 및 DC 간섭이 훨씬 적고 4개의 ESC 및 전력배분보드에 비해 훨씬 깔끔하다.
    7. 프로펠러는 GemFan DJI hub compatible 10" 탄소충전 프로펠러 를 사용한다. 아주 튼튼하고 효율적이다.
    8. 내 목표는 DJI F450 보다 훨씬 강하고 고성능인 콥터를 저렴하게 제작하는 것이다
    9. Flip 이 작기는 하지만 강력하고 빠르며 FPV 비디오나 GoPro 카메라, 브러시리스 짐벌(gimbal) 까지 장착할 수있다.
    10. Hoverthings Flip Sport Quadcopter Wiki Build Page에는 Pixhawk 와 PX4 콘트롤러를 사용한 제작방법이 들어 있다.

  6. Tarot 650 은 탄소섬유 프레임으로 대형 쿼드콥터를 제작할 수 있으며, 17인치 프로펠러까지 장착할 수 있다
    1. 나는 360kv 짜리 저속 대구경 Pancake 모터를 사용한다. Pancake 모터는 대형프로펠러를 낮은 속도에서 효율적으로 회전시킬 수 있도록 설계되어 있다.
    2. 나는 프로펠러 직경에 따른 성능과 효율을 알아보기위해 14" ~ 17" 여러가지 프로펠러를 테스트할 예정이다.
    3. 위에서 언급한 Flip Sport는 첫 쿼드콥터로도 가능하지만, 이 Tarot 650 은 절대 아니다.
    4. 이 쿼드콥터는 무거운 짐을 오래 견디거나 대형 비디오 카메라를 탑재하는 등에 충분하지만, 
      1. payload(유효탑재량) 2kg 을 들어올려면 상당한 모터와 프로펠러가 필요하다
      2. Four Togermotor MN4010 475 kV 모터는 개당 86 달러이며. 추가로 15×5 또는 16×5 프러펠러 4개. 고품질 30A ESC 4개가 필요하다.
      3. 총중량 4kg 에 약 10분간 비행하려면 4cell Lipo 배터리 10,000 mAh(5,000 두개)가 필요하다
      4. 유효탑재량 2kg 포함 총중량 4kg을 들어 올릴수 있어야 하며 50% 예비 출력(reserve thrust) (최소) 를 남겨 두어야 한다. 총 6kg
      5. 이 정도면 16×5" 프로펠러가 필요하다
      6. 그래서 kV 가 낮으면서 큰 모터가 필요한 것이다. 반드시 고품질로 일정한 고출력을 견딜 수 있어야한다.
      7. 절대로 이를 최초의 쿼드콥터로 시도하지 말라.
  7. 여러 멀티콥터별 부품을 기준으로 성능 요구사항을 계산할수 있는 사이트 : eCalc


완전 수제작(Scratch build)


  1. 멀티콥터에 경험이 없는 사람도 종종 시도하나, 대부분 실패한다.
  2. 가장 간단한 수준이라면 막대기나 나무조각, 합판 등으로도  제작할 수 있다
  3. 그러나, 이런 것들은 잘 날기 힘들고 사용성도 떨어지며 완벽하게 착륙하는 것조차 견뎌내기 힘들다.
  4. 아울러 돈도 절약되지 않는다. RTF(완제품), 완전 조립키트, ARF(근 완제품) 등이 고품질의 잘 균형이 맞는 부품들로 구성되어 있어 가격이 저렴하다
  5. 아주 경험이 많은 모델설계자, 공학자, 기계공학자일지라도 처음부터 이 방법부터 시도하는 것은 절대 피하라. 
  6. 멀티콥터는 나름의 비행동역학에 따라 동작하며, 나름의 구조적 요구사항이 있다.
  7. 이러한 분야에 경험이 없다면, 멋진 멀티콥터를 설계하고 제작할 가능성은 거의 없다.
  8. 이 사이트에는 초보자가 bent(구부러지는) 알루미늄 판을 사용해 멋진 쿼드콥터 설계가 올라와있다.
  9. 불행히도 Bent 알루미늄은 부드러운데, 콥터는 무거우며 경착륙이 흔하여, 찌그러지는 것을 피할수 없다
  10. 경험이 많다고 해도 콥터를 여러대 만들어본 후에야, 쓸만한 설계가 가능할 것이다.
  11. 전문가만이 할수 있다는 것은 아니지만 완전 수제작을 해보겠다고 생각이라도 해보려면 적어도 서너개의 상업적 쿼드콥터를 철저히 연구해 보아야 할 것이다.
  12. 나는 현재 콥터를 10개이상 설계했지만 하나도 제작하지 않았다. 언젠가 제작하겠지만 아직까지 준비되지 않았다는 것을 알고 있다


RTF(완제품) 브랜드


완제품(RTF) 쿼드콥터중에서 유명한 브랜드로는 Parrot, DJI Phantom, Blade 350QX 등이 있다.

  1. 이들은 각기 능력의 범주내에서 잘 만들어져 있으며 가격도 적절하다.
  2. 그러나 개조나 개선이 힘들고, Pixhwk 와 같은 강력한 콘트롤러로 업그레이드하기 힘들다
  3. 따라서 이들은 적당한 기능을 가진 원스톱 솔루션이나, 다른 한편으로는 높은 비용으로 더이상 갈 곳 없는 막다른길이다.
  4. 같은 금액으로 FlameWheel ARF 키트에 최고급 Pixhawk 를 결합하면, 훨씬 뛰어난 콥터를 제작 할 수 있다.

나에게 어떤 방법이 좋을까


  1. 자신의 능력에 맞는 접근법을 잘 선택하는 것이 중요하다. 과도한 욕심을 버리면 안좋은 결험으로 끝난다.
  2. 특히 한번에 모든 걸 해보기 보다, 건실하고 보수적으로 접근하는 것이 매우 중요하다
    1. 간단한 것은 RTF(완제품)이나 All Inclusive Kit(완전 조립 키트)이다.
    2. 하지만 좋은 ARF(반완제품) 키트에 잘 선택한 부품을 추가하면 아주 뛰어난 콥터를 제작할 수 있다
    3. ARF(근 완제품) 접근법은 종종 저렴한 투자로 자신의 목적에 맞는 콥터를 제작할 수 있다
    4. 프레임 기반 수제작(Frame Kit)법은 제작자가 서로 잘 맞는 부품을 선정할수 있는 능력이 있다는 것을 가정한다.
    5. 하지만 자신의 요구나 희망에 최적화 된 콥터를 제작할 수 있다
    6. 특정한 프레임 키트에 맞는 상세한 제작법을 따라하는게 아닌 이상, 최초의 쿼드콥터를 프레임키트 방식으로 제작해서는 안된다.
    7. 완전 수제작(Scratch build)는 프레임 기반 수제작 방식보다 배 이상 어렵다. 사실 멀티콥터 프레임을 제작하는 것이 어렵지 않다.
    8. 하지만 전반적인 절차와 잘 맞는 부품을 찾는것은 정말 경험이 많은 멀티콥터 운영자나 제작자의 영역이다.
  3. 상업적 사진이나 비디오를 촬영하기 위한 정말 비싸고 고급 멀티콥터는 이 문서의 범위 밖이다
  4. 내가 현재 가지고 있고 앞으로 제작할 콥터는 3DR APM, PX4 혹은 Pixwhark 콘트롤러를 사용한다.
    1. 이들은 현재 사용가능한 콘트롤러중 성능이 좋고 최고로서, DIYdrone 커뮤니티의 지원을 받고 있다
    2. 복제품이나 유사품을 조심하라. 약간의 차이가 전체를 못쓰게 할 수 있다
    3. 마지막 경고 : "매수자 위험부담". "투자한 만큼 얻는다"


출처 : 
http://www.internetmap.kr/1479


Posted by 너를위한노래

댓글을 달아 주세요

Quadrotor20152015. 4. 18. 16:41

초음파 센서를 이용해서 고도 PID제어기를 구현해서 실험한 영상입니다. 덤으로 자세제어기도 작동되고있습니다~


제원은.. 아두이노 Mega2560, 초음파센서 SRF08를 이용했네요.




왼손으로 잡고있긴 한데.. 저건 아두이노랑 PC랑 연결선을 잡고있는거지 기체를 잡고있는게 아니예요 ㅋㅋ






Posted by 너를위한노래

댓글을 달아 주세요

  1. 비밀댓글입니다

    2015.04.19 20:00 [ ADDR : EDIT/ DEL : REPLY ]
  2. 비밀댓글입니다

    2015.05.19 03:23 [ ADDR : EDIT/ DEL : REPLY ]
  3. 이승현

    저렇게 제작할려면 금액이 대강 얼마나 들죠??

    2015.05.22 17:01 [ ADDR : EDIT/ DEL : REPLY ]
    • 이 포스팅의 영상은 파이랑 파이캠 달기 전인데.. 저 부품들 다 고려하면 50~60은 되지 않을까 싶네요 ㅋㅋ

      2015.05.24 23:16 신고 [ ADDR : EDIT/ DEL ]
  4. 비밀댓글입니다

    2015.05.28 19:49 [ ADDR : EDIT/ DEL : REPLY ]
    • 남겨주신 글에 "아날로그 신호는 문자열로 들어오기 때문에" 부분이 이해가 안가네요. 사용하시는 자이로센서는 I2C방식으로, 아마 high byte와 low byte를 조합하여 원하는 16비트 데이터를 얻는 방식일텐데.. 왜 문자열로 들어온다는건지 잘 모르겠네요 ㅠ
      소스는.. 아직 오픈할 예정이 없습니다 ㅠㅠ

      2015.05.29 23:42 신고 [ ADDR : EDIT/ DEL ]
  5. 강민수

    많이 배웠어요
    mpu6050에서 디폴트설정으로 가속도는 정수값 -16383~16383 자이로는 정수값 -32768~32768이 출력되는게 맞나요?
    그리고 -2g~+2g -8g~+8g -250~+250 -500~+500 은 뭘의미하는건가요?
    그냥 mpu6050아무것도 안건드린 디폴트설정에서
    (가속도출력값/16383)*90
    (자이로출력값/32768)*(180/3.14)
    이렇게 구한 각도는 잘못된 각도인가요?

    2015.05.31 01:16 [ ADDR : EDIT/ DEL : REPLY ]
    • 가속도 자이로 모두 -32768~32768범위로 출력되지만 가속도를 16384로 나누는 이유는 mpu6050의 디폴트 측정 가속도가 -2g~2g이기 때문입니다~
      우리가 물리시간에 배우는 중력가속도(9.8㎨)가 1g에 해당하는 가속도가 되겠구요,
      자이로는 각속도[deg/s]가 되겠습니다~ 1초에 몇도를 움직이는가~
      각도를 구하는 방법은.. 가속도와 선속도, 각속도와 각도에 대해서 먼저 공부하셔야 되겠네요~

      2015.06.02 00:05 신고 [ ADDR : EDIT/ DEL ]
  6. hyeop

    안녕하세요 도움이절실하여 글을답니다.
    아두이노로 쿼드콥터 제작중인 대학생인데 비전공분야라 많이 어렵네요
    현재 자이로센서(mpu6050) 값추출까지만 되는상태이고 그이후에 해야하는작업이 상보필터값인지 pid제어인지도
    모르겟네요 초보자의애환.. pid제어는 프로그래밍작업인건지 아니면 무슨 따로 작업하는건지두 아예모르겟습니다ㅜ
    카톡아이디를 혹시 알려주실수있다면 도움좀 받고싶네요 제 아이디는 shyeop입니다

    2015.06.03 22:33 [ ADDR : EDIT/ DEL : REPLY ]
  7. birdpani

    안녕하세요 영상 잘봤습니다
    고도제어 알고리즘은 PID 만 쓰시나요?

    2015.10.10 21:26 [ ADDR : EDIT/ DEL : REPLY ]
  8. Moon

    안녕하세요... 초음파 센서 사용하는데... 지금 도움이 절실합니다.
    연락 할 수 있을까요?
    qnfroadl@naver.com로 이메일 주시면 정말 감사하겠습니다...

    2015.10.12 22:17 [ ADDR : EDIT/ DEL : REPLY ]
  9. 안녕하세요 블로그보다가 너무 좋아서 댓글남기게 되었습니다. 당신의 유지를 본받아 닉네임도 너를위한노래방으로 만들었어요. 먼발치에서 당신만을 응원할께요

    2016.01.22 05:24 신고 [ ADDR : EDIT/ DEL : REPLY ]

Quadrotor20152014. 7. 15. 23:55

요새 초음파센서를 이용한 고도제어를 구현하고 있는데.. 이것도 테스트하는게 제일 골치아프네요 ㅠㅠ


그래서 테스트에 앞서 제가 구현한 고도 PID결과가 맞는지 검증하기 위해 이론을 바탕으로한 시뮬레이터를 만들어 봤습니다


이론이라 그런지.. 결과는 대 만족이었지만 실제 쿼드에서 돌리려니 이런저런 문제가 또 발생하네요.. 이건 이 후 포스팅에서 다루기로 하고 여기선 시뮬레이터에 대한 내용만 다루겠습니다.


먼저 구현한 시뮬레이터 구조도는 이렇습니다



시뮬레이터 전제는 이렇습니다


여기서 먼저 알아둬야할 것은 우리가 흔히 말하는 무게의 단위가 kg이 아니라는 겁니다. 무게는 F(힘)이고 F=ma에 의해 단위는 (=N)입니다. 따라서 저울로 측정한 제 쿼드의 무게는 800N이 된다는거죠. 바닥에 놓여있는 제 쿼드는 항상 지면을 800N으로 밀고있다고 할 수 있습니다. 


프롭을 돌리면 바람에 의한 추력(F=힘)이 발생될테고 점점 세게 돌린다면 어느순간 800N의 추력을 내게 됩니다. 그럼 이제 쿼드 기체는 힘의 평형 상태인거죠. 이상태에서 조금만 더 프롭을 세게 돌린다면 쿼드는 뜨기 시작합니다. 


이 때, (추력-800N)만큼의 힘을 받는 쿼드 기체는, F=ma에 의해 질량의 반비례한 가속도로 뜨기 시작합니다.


가속도는 속도를 낳고, 속도는 위치를 변화시키죠. 이 내용을 가지고 시뮬레이터를 구현해보았습니다.


그리고 제가가진 초음파센서도 심플하게 모델링해 넣고 측정값을 바탕으로 프롭의 속도를 조절하는 PID제어기를 시뮬레이션 해봤는데 결과는 다음과 같습니다.




황색이 쿼드의 높이고 파랑, 초록, 빨강 순으로 P, I, D 제어량 수치(y축과 관련x)입니다.


그래프는 아주 맘에 듭니다 뜨기 시작한 후 약 2초 안에 원하는 40cm에 수렴하니까요..


하지만 이렇게 되었다고 쿼드에 적용하고 프롭을 돌릴순 없는게 함정.. ㅠ 실제 센서의 노이즈와 여러 변수에 대한 대책도 있어야하니까요..


실제 쿼드에 적용한 이야기는 다음 포스팅에서 다루기로 하겠습니다.



-------------------------------------------------------------- 14년 7월 16일 추가 -------------------------


수렴할 때 왜 I제어량만 많느냐에 대한 설명을 빼먹었네요..


보통 모터의 속도제어같은 경우 P가 증가된 상태에서 I와 D가 0 근처에서 왔다갔다 거리는 결과가 나오는데 이건 그렇지가 않아서 고민을 많이 했습니다. 틀린거 아닌가?


처음 생각엔 가속도를 가지도 위치를 제어하려고 하니까 적분항이 이렇게 나오는구나~ 하고 넘어갔는데 지금은 다른 이유가 있는거 같아요


I가 정상 상태 오차를 커버해준다는 점을 생각해보면, p로 인한 제어량이 무게를 이기지 못하면 결국 위치는 0이니까.. 정상상태 오차가 40이 되어버리는거잖아요? 정상상태 오차가 100%니까 결국 I제어량만 남을것이다~ 라는 생각이 드네요


-------------------------------------------------------------- 14년 10월 14일 추가 -------------------------


PID제어를 모두 사용하지 않고 baseThrottle + P + D로도 가능할거 같다는 의견을 남깁니다. 여기서 baseThrottle은 기체의 무게(mg)와 같은 추력을 발생시키는 throttle값입니다.



-------------------------------------------------------------- 15년 8월 20일 추가 -------------------------

쿼드콥터 모델링 시 duty가 곧 추력이라고 해놨는데.. duty는 모터 회전 속도를 만들어 냅니다.


추력은 모터 회전 속도의 제곱에 비례한다는 사실을 덧붙여 추가합니다.









Posted by 너를위한노래

댓글을 달아 주세요

  1. 안녕하세요. 이번에 쿼드콥터를 공부중인 학생입니다. 저는 개발보드로 MSP430 F5529와 라즈베리 파이를 사용하는데요..I2C통신을 이용하여 MSP와 센서들의 값을 출력하는 것까지는 예제 코드를 통해 어찌어찌 했는데, 나온 센서 값이 맞는 값인지 모르겠고, 어떤 게 참조값인지, 설정값인지 모르겠습니다. PID제어기에 대한 이론은 여러번 봐서 이해를 하겠는데 막상 구현을 하려니 막막하네요.. PID 제어기 설계에 대한 조금 자세한 설명 부탁드리겠습니다.

    2014.07.17 21:35 [ ADDR : EDIT/ DEL : REPLY ]
  2. 박한솔

    헐!! 방학중 쿼드콥터 프로젝트를 진행하면서 여기 참고 많이하고 있었는데 이렇게 센서부분까지 넘어오시네요!! 저희는 아직 하드웨어적으로 구성이 덜끝났지만.... 앞으로 자주자주 들리겠습니다. 반갑네요:)

    2014.07.21 01:26 [ ADDR : EDIT/ DEL : REPLY ]
    • 반갑습니다! 저도 이번 방학 때 쿼드콥터 프로젝트를 진행 하려고 하는데요. 센서 값 추출하는 부분에서 일주일째 막혀서 헤메고 있습니다 ㅠㅠ 혹시 자이로 센서에서 나온 값을 어떻게 이용해야되는지 알고 계시면 설명 부탁드립니다.

      2014.07.21 20:50 [ ADDR : EDIT/ DEL ]
  3. 비밀댓글입니다

    2015.03.12 21:24 [ ADDR : EDIT/ DEL : REPLY ]

Quadrotor20132013. 12. 13. 19:15

쿼드의 핵심인 센서와 보드에 대해 다뤄보겠습니다.

 

일반적으로 RC하시는분들은 제어보드를 FC보드(Flight Control Board)라고 하더라구요. 갑자기 생각난건데 처음 쿼드만드시는 분들은 용어가 생소해서 고생하실 겁니다.. 프롭이니 리포배터리니 통돌이모터 프롭밸런서 등등 이런 단어를 알아야 검색도 하고 공부도 하는데 모르면 난감해요 ㅠ


제어보드의 종류는 많습니다. 아두이노 같이 빵판처럼 온갖 프로그램을 올릴 수 있는 보드에도 제어 소스만 올리면 제어가 가능하니까요. 쿼드콥터 제조 회사나 커뮤니티에서 만들어 지는 것 같습니다. AeroQuad, MultiWii 등 오픈되어있는 소스도 있구요, 이 오픈소스들을 그대로 보드에 올려서 사용하려면 해당 소스에 맞는 하드웨어에 올려야합니다. (센서나 하드웨어사양이 충족되어야 한단 소리입니다)


제어보드의 사양은.. 당연한 소리겠지만 빠르면 빠를수록 좋습니다. 제어 알고리즘을 돌리는데 1초가 걸린다면 전혀 쓸모없는게 되어버리니까요. 

뜨기 위한 보드의 제어 주기는 최소 5ms는 되어야 뜰까말까입니다. 10ms로 하면 시소제어는 되는데 전혀 뜨질 않고, 5ms로 하면 불안정하게 뜨고, 3ms로 하니까 나름 안정적으로 뜨는것 같습니다. 제가 직접 겪은 이야기입니다 ㅠ 이 글을 읽는 여러분은 이런 고생 겪지 않길 바랍니다.


이 제어 주기라는 것은 센서와 깊은 연관이 있습니다. 보드가 아무리 빨라봤자 센서의 최대 샘플링 간격이 1초라면 보드 제어주기는 1초로 맞춰질수밖에 없기 때문입니다. 센서 구매시 잘 선택하시길 바랍니다. 제 경우는 최대 10ms의 속도를 가지는 50만원짜리 센서를 가지고 제어를 해 왔는데.. 지금 보면 되지도 않는 하드웨어 사양을 가지고 엄청 고생한거네요. 50만원짜리 고급 센서보다 9천원짜리 MPU6050이 더 빠른데 말이죠. 



위 표는 MPU6050의 사양입니다. 밑의 Update rate를 보시면 자이로는 최대 0.125ms, 가속도는 최대 1ms 이네요. 왜 범위로 되어있냐면~ MPU6050센서 내부의 레지스터를 조작해서 LPF를 쓸 수 있게 되어있는데, 그 LPF설정에 따라 유동적이기 때문이라는 생각이 드네요.

아무튼, 센서마다 이런 사양이 있으니까 꼭 참고해서 결정하시기 바랍니다.


MicrocontrollerATmega2560
Operating Voltage5V
Input Voltage (recommended)7-12V
Input Voltage (limits)6-20V
Digital I/O Pins54 (of which 15 provide PWM output)
Analog Input Pins16
DC Current per I/O Pin40 mA
DC Current for 3.3V Pin50 mA
Flash Memory256 KB of which 8 KB used by bootloader   
SRAM8 KB
EEPROM4 KB
Clock Speed16 MHz

위 표는 제어보드인 아두이노 Mega2560의 사양입니다. 메인 클럭 주파수가 16MHz인데, 이걸 가지고 제어 루프의 주기를 계산하기에는 좀 막연하네요. 빠르면 빠를수록 좋긴 한데 쓸데없이 빠른건 굳이 필요 없을테니까 잘 고르시기 바랍니다. 


아두이노의 16MHz는 실시간 영상처리하기에는 턱없이 부족한 주파수인데요, 700MHz이상가는 라즈베리파이를 사용하면 굳이 저처럼 휴대폰을 달지 않고도 영상처리를 할 수 있을거 같다는 생각을 요새 하고 있는 중입니다. 근데 라즈베리파이는 불안정하다는 이야기가 들리기도 하네요.


센서와 보드의 통신 환경도 결정할때 고려해야할 요소 중에 하나인데요, 센서 표를 보시면 인터페이스가 I2C방식이라도 되어있습니다. 저는 운좋게 아두이노 보드에서 I2C전용 핀과 통신용 라이브러리를 제공해서 쉽게 통신할 수 있었는데요. 만약 다른방식이고 보드가 그 방식을 지원하지 않는다면 아날로그 신호를 분석해서 통신을 구현해야할 수도 있습니다. 저는 그렇게까지 하고싶진 않았는데 다행히 보드가 지원해줬네요.. 참고로 아두이노는 I2C통신과 시리얼통신을 지원합니다.


I2C방식(TWI통신이라고도 함)에 대한 자세한 내용은 제 블로그(http://hs36.tistory.com/29)를 참고하시구요 


mpu6050와 통신하는 라이브러리와 예제도 첨부하겠습니다.

MPU6050.zip

 

그밖에 각종 I2C를 사용하는 장치들과 아두이노간 통신 라이브러리는

https://github.com/jrowberg/i2cdevlib/tree/master/Arduino

참고하시면 되겠습니다~ 














Posted by 너를위한노래

댓글을 달아 주세요

  1. 안녕하세요 이번에 4학년이 되는 컴퓨터 학과 학생인데 저희팀도 이번에 졸작으로 아두이노를 이용해
    쿼드콥터를 만드는것을 선정했는데 어떤것부터 해야할지 갈피를 못잡아 문의드립니다.
    아두이노에 대해서는 평소 교수님과 연구실 자체에서도 배우는 지라 각종 엑츄에터 장비와 센서는 다뤄봤습니다.
    저희가 생각하는 것은 블루투스 통신을 이용해 아두이노를 띄우고 나아가 gps모듈을 장착해서 해당 지점을 찍고 돌아오는 것을 목표로 하고 있는데 첫시작이 너무 힘드네요.. ㅜㅜ
    대략 블로그에 관한 글을 전부 읽어보았지만 아직 부품에 대해서는 어떤 종류의 프레임을 쓸지 그에 따른 모터나 프롭등을 정하지 못하여서 도움을 청하고자 문의드렸습니다.
    읽어주셔서 감사하고 꼭 답변 해주시면 정말 고맙습니다.

    2014.03.11 19:13 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 쿼드에 뭔가 장비를 실으실게 아니라면 320mm~350mm프레임을 쓰시는게 좀더 나을것 같습니다. 저는 450mm썼는데 생각보다 크기도 크고 무게도 나가더라구요. 320mm 쓰실거면 모터는 제가 쓴거랑 비슷한 크기와 성능으로 쓰시면 될거 같고~ 프롭은 10인치 말고 좀더 작은거 쓰시면 될거 같아요 8인치인가.. 여러 사이트 돌아다니면서 정보 수집하는걸 권해드리고싶네요~!

      2014.03.14 15:18 신고 [ ADDR : EDIT/ DEL ]
  2. Alex

    안녕하세요~! 저도 졸업작품으로 아두이노를 이용해서 쿼드콥터 제작을 계획하고 있는데요.
    우선 블로그에서 좋은 정보를 많이 올려주셔서 감사드립니다. 많은 도움 되고 있습니다.^^
    그런데 아두이노와 함께 사용하는 센서 관련해서 질문이 생겨 이렇게 댓글을 답니다.
    위에서 말씀하신대로 멀티위나 aeroquad에 맞는 하드웨어를 달고 함께 제공되는 Software를 사용해 기체를 쉽게 제어 할 수 있다라고 알고 있는데요, 만약 mpu6050 같은 센서를 직접 달아서 사용하면 이에 맞는 software는 모두 다 직접 코딩해야하나요?
    예를 들어, 기체 제어나, 안정화 알고리즘, 칼만필터 이런 것들을 직적 코딩하여 아두이노 보드에 올리는 것이 맞는지..?
    이렇게 한다면 너무 어렵지 않을 까요? 혹시 해보셨다면 어떠한 방법을 추천하는지 궁금합니다.
    그리고 이에 관련된 오픈 소스나 참고할 만한 것이 있으면 알려주시면 감사하겠습니다.

    2014.03.19 00:22 [ ADDR : EDIT/ DEL : REPLY ]
  3. rktkwlak

    안녕하세요. 블로그통해 많은 도움 받고있습니다.!!
    참고해가며 쿼드 제작중인데요 진동을 잡는게 정말 어렵네요 ㅜㅜ
    혹시 방진처리는 어떻게 하셨나요??
    그리고 mpu6050레지스터로 lpf사용하는 방법을 알 수 있을까요?
    글을 전부 읽어봤는데요 혹시 LPF사용하면 반응이 많이 느린가요??

    2015.02.01 01:37 [ ADDR : EDIT/ DEL : REPLY ]
    • 방진은 방진 댐퍼를 사서 센서 보드와 프레임 사이를 연결했습니다~ 근데 별로 효과는 없어보이더라구요. LPF사용법은 MPU6059.h의 LPF관련 해서 define되어있는 상수를 찾으신 다음 MPU6050.cpp에서 해당 상수를 검색해보시면 금방 아실 수 있을거예요~ LPF 가중치 정도에 따라 많이 느려질 수 있으니까 가중치를 바꿔보시면서 테스트해보세여

      2015.02.13 15:21 신고 [ ADDR : EDIT/ DEL ]
    • rktkwlak

      넵 답변 정말 갑사합니다!!!

      2015.02.17 03:15 [ ADDR : EDIT/ DEL ]
  4. 드론

    안녕하세요 저희도 아두이노로 드론을 만들고 있는데요
    정말 큰도움이 되고 있어 감사 드립니다
    다름이아니라 같은 mpu6050을 사용하고 있는데 위의 소스를 사용하면 가속도와 자이로 값이
    수평일때
    a/g: 288 44 14224 -744 148 -412
    a/g: 392 332 14540 -448 596 -601
    a/g: 104 888 15324 -599 322 -86
    a/g: 216 -32 15276 248 -544 158
    a/g: 84 -448 14684 -149 -950 -404
    a/g: 348 328 14068 -331 -498 -754
    a/g: 88 800 14052 -237 48 -143

    이런식으로 예상하지 못한 값이 나옵니다. 이러한 값이 뜻하는 것이 뭔지 잘모르겠네요 ㅠㅠ
    죄송하지만 이 값에 관하여 설명좀 부탁 드려도 될까요?

    2015.08.07 13:49 [ ADDR : EDIT/ DEL : REPLY ]
    • 잘 나오고 있네요~!
      왼쪽부터 차례대로 가속도센서 x, y, z, 자이로센서 x, y, z 값이 출력되는 것 같습니다. 맞나요?
      먼저, 가속도센서는 이론적으로는 0, 0, 16384값이 출력되어야 합니다(구매 후 레지스터를 안건드렸을 경우). 하지만 전기적인 노이즈가 섞여있고, 수평이라고 하셨지만 땅바닥이 완전한 수평이 아니기에 약간의 치우침(바이어스)과 노이즈로 시시각각 변하는 값이 출력되게 됩니다.
      그리고 자이로센서는 움직이지 않을 경우 0, 0, 0이 출력되어야 정상이지만, 센서 공정상(?) 바이어스가 포함되어있기 때문에 0이 아닌 값이 출력되는게 일반적이고, 역시 약간의 노이즈로 인해 변화하는 값이 출력됩니다.
      두 센서 모두 -32768~32768의 값을 출력시킬 수 있으니 몇 백정도의 값은 바이어스와 노이즈로 보시면 될 거 같네요.
      출력된 값은 데이터시트에 나와있는 정보를 토대로 스케일링 하셔서 사용하시면 됩니다~!
      제 블로그(http://hs36.tistory.com/18)를 참고하시면 도움이 될 듯 하네요.

      2015.08.07 14:06 신고 [ ADDR : EDIT/ DEL ]
    • 공대

      MPU6050을 Atmega128로 처리해서 각도를 계산하는데, 제어 주기가 약 7ms 정도 되더군요.. 128에서 상보필터를 통해 PID계산을 하는데 float 연산이 많아서(부동소수점 연산) 계산 속도가 느린것 같습니다. 혹시 처리 속도가 어떻게 되시나요? 혹시 DMP기능을 이용하시는건지..?

      2015.12.01 23:07 [ ADDR : EDIT/ DEL ]
  5. K_SSUN

    안녕하세요 이번에 대학교내에서 드론으로 영상처리관련 프로젝트를 진행하게되었는데요
    프로젝트 내용이 실시간으로 드론이 촬영한 영상을 받아와야되는데 지원받은 물품은 드론 부품과 mega2560입니다
    찾아보니 쿼드콥터는 uno로 많이 하시던데 mega나 uno로는 실시간으로 영상을 받아오기가 무리일까요?

    2016.03.18 18:40 [ ADDR : EDIT/ DEL : REPLY ]
    • Mega나 Uno의 속도로는 영상처리는 무리일 것 같습니다.. 해상도에 따라 다르겠지만 680*480은 무리일 것 같네요 ㅜ

      2016.03.23 15:42 신고 [ ADDR : EDIT/ DEL ]

Quadrotor20132013. 8. 25. 01:16

아직 제가 만드는 쿼드콥터의 PID제어가 완성된건 아니지만 시간이 좀 나서 포스팅해봅니다.


PID제어의 기본에 대해서는 따로 공부가 필요한 부분입니다. 관련 정보는


위키백과 - PID제어

PID제어 관련 포스팅


요 두군데를 참고하기 바랍니다.


먼저, PID는 Feedback이 일어나기 때문에 무엇을 가지고 무엇을 제어하는가가 첫번째가 되어야 합니다.


제 경우에는 쿼드콥터를 가지고 많은 고민을 했습니다.


쿼드콥터의 경우 센서에서 받아온 자세값을 가공하여 그에 맞는 다음 자세를 출력해야하는데, 출력은 결국 각 모터의 PWM값이 될겁니다.


근데 여기서, 받아온 자세값은 분명 각 모터 자체의 위치값인데 출력은 모터의 회전수란 말이죠. 모터의 회전수는 모터의 추력과 연결되고, 이는 결국 모터 자체의 가속도 값이 되지 않습니까? 위치값을 받아서 가속도값을 출력해야하니까 받아온 위치값을 두번 미분해서 사용해야하나..? 이런 생각이 들더라구요..


그냥 일단 해보자는 식으로 위치값의 오차로 PWM출력을 줘봤는데 잘 되질 않아서 더 저런 생각이 들었던 것 같습니다.


그래서 논문도 찾아보고 여기저기 쿼드콥터 카페도 찾아보고 했는데


결론은 그냥 자세값(roll, pitch, yaw)를 가지고 PWM출력하는게 맞더라구요.. ㅠ


아예 확신을 가지고 논문 참고해서 PID제어기를 다시 만들어서 돌려보니 어느정도 되는거같습니다 ㅠ


그래도 좀 불안정해서 센서값과 P, I, D각 제어값들을 뽑아서 그래프로 그려보니까 문제가 있더라구요..


P는 그냥 센서값에 비례하니때문에 진동에 영향을 덜 받지만 I나 D는 그렇지가 않더라구요. 


그나마 I는 계속 누적되니까 화이트노이즈같은 진동은 어느정도 무시되서 비교적 잘 누적되는 성향을 보이는데


D가 문제예요.. 손으로 누르는 힘에 잘 저항하게 D게인을 높이면 진동에 의한 노이즈까지 잘 반영해서 출력값이 알아볼수도 없게 요동치더라구요.. 


그렇다고 D를 낮추면 반응이 느리고.. 적당히 중간으로 잡아놓으면 수평을 유지하긴하는데 다소 불안하게 왓다갓다하고.. 


그래서 뭔가 변화를 줘보기위해 D제어 입력에만 LPF를 씌워봤습니다. 결과는 한결 나아졌지만 역시 LPF를 통과해서그런지 다소 반응이 느린감이 있더라구요. 


센서를 쿼드 중앙에 나사 한개로만 고정시켜서 그런가~ 싶어서 고정 판도 제작했어요. 오늘 드릴질하고 난리도아니었음 ㅠ


방진 고무나 댐퍼 얘기가 카페같은데서 나오긴 하는데 소프트한걸 쓰면 자세값을 바로 반영 안할거같고 딱딱한걸 쓰면 진동따위 그대로 전달해버릴거같아서 별로 땡기질 않네요 ㅠ


누가 옆에서 이럴땐 이러면 돼~ 하고 조언을 해주면 속편하겠는데.. 그런 사람도 없고.. ㅋ


쓰다보니 푸념으로 바뀌었네요.. 다음 포스팅에서는 좋은 글로... ㅋㅋㅋ



Posted by 너를위한노래

댓글을 달아 주세요

  1. 비밀댓글입니다

    2013.09.24 11:36 [ ADDR : EDIT/ DEL : REPLY ]

Quadrotor20132013. 3. 29. 19:36

 

쿼드콥터 제어에 대해 찾다가 동역학에 대해 찾게 되고 현재 동역학에 대해 공부를 하고 있습니다.

 

학교에서 일반물리학 수업을 듣는데 열심히 들어야겠어요 ㅠ 관성좌표계니 모멘트니 하는거를 하나도 모르면 어쩔뻔 했나 싶네요.

 

지금 제가 따로 구축한 개념은 없고 지금 보고 있는 자료를 포스팅 하려고합니다.

 

구글링 하다가 양광웅님의 블로그에 들어갔는데.. 이 분은 천재신듯.. ㅋ 대단하신분 같아요

 

밑에 링크 걸어놓을테니 로봇, 제어등에 관심있으신 분은 들어가 보시길 권합니다.

 

양광웅님의 블로그에 게시되어있는 PDF파일입니다.

 

 

1. 쿼드 로터 무인항공기 동역학 모델링  -

                쿼드콥터_-_동역학_해석.pdf

 

2. 쿼드 로터 무인항공기 제어 및 시뮬레이션 -

                쿼드콥터_-_제어기_설계.pdf

 

좀 더 보다가 얻는게 있으면 또다시 포스팅 하기로 하겠습니다~

 

출처 : 양광웅님의 블로그 - Open Robotics

Posted by 너를위한노래

댓글을 달아 주세요

Quadrotor20132013. 3. 27. 13:20

쿼드콥터의 자세를 추정할 수 있다고 치고.. ㅠ

 

떠있으려면 피드백 받은 자세에 따른 새로운 자세를 만들어 내야겠죠? 각 모터 회전수의 변화로 말이죠

 

이번 글에서는 기본적인 쿼드콥터 작동 원리에 대해 적어 보겠습니다.

 

자, 쿼드콥터를 위에서 바라보면 아래 그림과 같습니다.

 

 

 

 

 

 

이웃한 로터끼리는 반대방향으로 돌아서 각 로터에서 생성되는 반토크를 상쇄시킨다

 

라고 되어있는데.. 로켓 추진체의 작용반작용처럼 직관적으로 확 와닿지는 않네요.

 

각 로터가 100%똑같은 추력을 발생시킨다고 가정하면 쿼드콥터는 지상에 평행하게 뜨게 됩니다.

 

그리고 공중에 떠서 정지해있는 상태일 때는 아래 그림에 따라 움직입니다.

 

 

 

 

 

 

화살표가 굵은 부분 얇은 부분 주의해서 보시길 바랍니다. (각 모터의 상대적 회전수를 나타냄)

 

Roll, Pitch, Yaw는 아래의 그림을 보시면 이해하실 수 있을겁니다~

 

 

(클릭하시면 확대됩니다)

 

 

내용이 추상적이라 거의 그림이네요.. ㅋ

 

이정도면 특정 자세를 만들기위해 어떻게 모터를 조작해야되는지 대충 감이 올거같네요.

 

다음에는 좀더 심도있는 내용을 다뤄보도록 하겠습니다.

 

요새 개강도하고 과제도 슬슬 나올때라 진도가 늦네요 ㅠㅜ

 

 

 

 

Posted by 너를위한노래

댓글을 달아 주세요

Quadrotor20132013. 3. 13. 18:01

 

원래 네이버 블로그에 있는 글을 모두 옮겨오려고 했지만.. 굳이 그럴 필요 없을거 같아서 이 글에 제목과 링크만 올려두겠습니다.

 

네이버 블로그 주요 포스팅:

쿼드콥터 초기 계획안 

재료, 부품 구매 현황

MPU-6050 3축 자이로 + 3축 가속도 센서 구매 

[스크랩]오일러각 

[스크랩] I2C (Inter-Integrated Circuit) 버스 

[스크랩]칼만 필터(Kalman Filter) - Part 1 : Linear Systems | Robotics 

[스크랩]칼만 필터(Kalman Filter) - Part 2 : Kalman Filter & Algorithm | Robotics 

 

 

현재는 가속도, 자이로 센서 값을 이용해서 칼만필터로 융합한 다음, Q행렬, H행렬을 조정하는 단계입니다.

 

 

노랑, 자주 : 가속도

빨강, 초록 : 가속도 + 자이로 using 칼만필터

 

여러가지 상황에 대해 테스트하고 있는데 쿼드콥터 진동이 장난이 아니더라구요.. ㅠ

 

어느 정도는 칼만필터로 보정할 수 있겠거니~ 했는데 이건 너무 심해서 기구적으로 손을 보고 있습니다.

 

그래서 스펀지로도 방진 해보고 고무줄로 진동을 줄여보고자 노력했지만 별로 효과는 없더라구요..

 

   

 

 RPM은 모두 동일

   

 스펀지 장착

 고무줄 장치 장착

 

위의 테스트에서는 RPM이 낮은데 높게하면 +90도~-90도 화이트노이즈수준으로 심하게 감지되더라구요 ㅠ

모터랑 센서가 싸구려라 그런가... ㅠ

 

아예 모터에서 발생하는 진동을 제거하는 방향으로도 해봐야겠습니다.

 

 

안드로이드 소스파일(accel gyro Kalman Filter, PWM generate):

SimpleAnalogInputActivity.java

GraphView.java

Matrix.java

SnowCube.java

SnowRenderer.java

 

 

 

 

Posted by 너를위한노래

댓글을 달아 주세요

  1. GTS

    고무줄을 이용한 방진장치.. 작은 키캠에 사용하기엔 정말 딱일것 같습니다. 고무줄을 조금 느슨하게 하면 조금이라도 진동을 흡수하지않을려나요?ㅎㅎ

    2013.04.01 22:45 [ ADDR : EDIT/ DEL : REPLY ]
    • 아 네이버 블로그에 있던 그 학생이시군요~ 현재 고무줄도 조금 느슨하게 바꿨고 중간 센서 밑에 납으로된 추도 달아 놨는데.. 자잘한 진동에는 효과있을지 몰라도 큰 진동에는 역시 변화가 없네요.. ㅠ 일단 자세제어부터 하고 다시 손 봐야겠습니다. ㅠ

      2013.04.02 13:17 신고 [ ADDR : EDIT/ DEL ]