드론 쿼드콥터

3DR DIY Quad Kit 캘리브레이션

하늘이푸른오늘 2015. 10. 13. 23:21

이 문서는 3DR에서 생산 판매하고 있는 All Inclusive Kit(완전 조립키트)인 3DR DIY Quad Kit을 조립한 후, 소프트웨어로 여러가지 설정 및 조정하는 방법을 간략하게 정리한 문서입니다. 좀 더 정확하게 말하면 DIY Quad Kit의 비행콘트롤러인 Pixhawk에 대한 캘리브레이션 방법을 정리한 것입니다.


문서의 원본은 http://3drobotics.com/kb/calibration/ 입니다. 참고로 이 문서와 함께 APM:Copter에 있는 필수 하드웨어 설정(Mandatory Hardware Configuration) 문서도 함께 보는 것이 좋습니다.


소프트웨어 다운로드


설치마법사(Wizard) 실행

  • Mission Planner를 실행하고 Pixhawk를 USB 케이블로 연결
  • 쿼드콥터의 배터리 연결. (단 프로펠러는 반드시 빼둘것)
  • Initial Setup -> Wizard  선택.


1. 펌웨어 설치

  • 콘트롤러 연결 
    • Mission Planner 설치. Usb로 연결. 드라이버가 설치됨 
  • Mission Planner에 연결 
    • Mission Planner 실행. 
    • COM port를 Auto 또는 PX4FMU로 선택 
    • Baud rate를 115200으로 
    • *** CONNECT는 하지말 것 
  • FIrmware 설치
    • Setup->Install Firmware 
    • ArduCopter Quad를 선택 

    • Mission Planner가 보드를 확인함. 
    • 보드를 뺏다가 다시 꼽고 OK를 누름. 
    • 상태표시줄에 erase-program 등이 나타남. 
    • 마지막으로 Upload Done 이 나오면 완료 
  • 설치 완료후 음악 소리가 들려야 함. 아니면 아래와 같은 절차를 수행해야 함.
  • 시험 
    • Mission Planner에서 “Flight Data” 화면으로 전환
    • Connect 를 눌러서 연결 
    • 이 상태에서 보드를 기울이면 HUD가 기울어져야 함.
  • 그런데, Firmware 업로딩 중 USB를 뺏다가 다시 끼우는 과정에서 아래 사진처럼 아래쪽에는 "Error no response received from board"라는 메시지가 표시되고, Error uploading Firmware 메시지가 떴음.


그래서 한참 구글링을 해봤더니, 여러가지 방법이 제시되어 있네요. 여기를 확인해 보세요.

  • Pixhawk에 Micro SD카드가 잘 꽂혀져 있는지 확인하고 다시 실행.
  • LiPo off USB off --- click OK --- USB on, LiPo on
  • USB를 빼는 대신 FMU의 reset button(Pixhawk의 USB 포트 바로 옆에 있는 리셋버튼)을 눌러라.
  • GPS를 빼두고 시도하라.
  • USB 케이블을 다른 걸로 바꿔보라.
그중에서 저는 세번째 방법을 사용해서 성공했습니다. Pixhawk가 오픈하드웨어이다보니, 아무래도 사용자 지원쪽은 조금 허술한 면이 있는 것 같습니다.


====

그 다음부터는 Wizard를 실행하면서 지시하는대로 수행만 해주면 됩니다. 그런데, 한번에 잘 되지 않아서 여러번 수행했었습니다. 필요에 따라서는 그냥 Initial Setup -> Mandatory Hardware에 들어가서 각 부분을 따로따로 수행해도 무방합니다.


그리고... 그냥 Wizard를 따라가려면 USB 케이블을 꽂아서 수행해야 하는데, 그러면 선이 걸리적거려서 몹시 불편합니다. 따라서 먼저 텔레메트리(3DR Radio)를 연결한 뒤, 다른 설정 과정을 계속하는 것이 편합니다. 3DR Radio를 설정하는 방법은 여기를 참고하시면 됩니다. 간단히 요약하면 다음과 같습니다.

  • 3DR Radio 리시버중 아무거나 Pixhawk의 Telem1 에 연결
  • 다른 하나를 Windows PC에 USB 케이블로 연결. 드라이버가 설치되고, 새로운 USB Serial Port가 생김. (장치관리자의 포트에서 확인가능)
  • 적절한 COM 포트를 선택한 후, Baud rate를 57600으로 설정(USB의 경우 115200)
  • 마지막으로 CONNECT 버튼을 눌러줌.
  • CONNECT 버튼이 초록색으로 바뀌고 DISCONNECT로 바뀜
  • 이 상태에서 기체를 기울이면 Flight Data 스크린에서 기울어지는 게 보이면 정상임.


  • 문제해결
    • 연결이 안될 경우, 먼저 baud rate 확인 
    • Window Device Manager 리스트에서 해당 COM 포트가 존재하는지 확인 
    • USB 포트를 사용하고 있다면, 다른 포트로 바꾸어볼 것.
    • LEDSound 도 확인할 것

Pixhawk를 사용하실 예정이라면 반드시 3DR Radio는 구입하는 것이 좋습니다. 가격에 비해 너무 좋은 기능이 많기 때문입니다. 제 생각엔 아얘 픽스호크 패키지에 묶어서 파는 게 낫지 않을까... 싶더군요. ㅎ


3. 가속도계 조정(Calibrate accelerometer)

  • http://copter.ardupilot.com/wiki/common-accelerometer-calibration/
  • 화면에 나오는 지시에 따라서 쿼드콥터의 자세를 잡아줌
  • 기본적으로 아래처럼 6가지 위치에 순차적으로 맞춰줘야 함. 이때 각각의 위치에서 몇초 정도 멈췄다가 다음 위치로 이동함. 절대로 움직이면 안됨.


  • 도중에 "Click When Done" 버튼을 누를 필요 없음. 계속하면 Successful이 뜸.

4. 전자나침반 조정(Calibrate Compass)

  • 60초 이내에 모든 축방향으로 회전시켜야 한다는 메시지가 뜸. -> OK 를 누름
  • 60초 내에 천천히, 6개의 면(전/후/좌/우/상/하)를 각각 몇초 정도씩 땅바닥을 가르키도록 해줌. 비디오에서는 자북방향을 가르키도록 나옴(inclination 도 고려) 


  • 다 끝나면 새로 계산된 offset이 나타남.
  • 이 값이 -150 이하이거나 150 이상일 경우 문제 있음. OK를 누름.

참고 : 콥터 3.2.1 이후 버전에서 허용되는 범위

총 거리(offset_x^2+offset_y^2+offset_Z^2)가 600 이하일 때. 3.2.1 이전에는 각각의 offset의 절대값이 150 이하일 것을 추천하였다.



compass 캘리브레이션이 상당히 까다롭습니다. 제가 했을 때는 정확히 기억나지는 않지만, 하얀점이 6개 나오고... 멀티콥터를 회전시키면서 이 점들을 모두 지나도록 하면 캘리브레이션이 완료되는 걸로... 하지만, 그걸 맞추기가 쉽지 않았던 걸로 기억합니다.

추가 : Pixhawk 화살표 방향을 북쪽으로 맞춘 후 Pitch 방향(좌우방향)으로 360도를 돌려준다. 좌향좌 혹은 우향우. 그 상태에서 Roll 방향으로(앞뒤방향) 360도 돌려주면 됨. 그래도 안되면 다시 위에 있는 그림처렴 6개의 방향을 맞춰줌.

5. 배터리 모니터

  • 3DR Power Model을 선택.
  • 파워모듈을 사용하여 배터리를 모니터링 할 수 있는 옵션 2개를 활성화.
  • 배터리 Voltage 캘리브레이션
    • 먼저 테스터를 사용하여 배터리의 전압 측정 
    • 콥터와 배터리를 연결
    • Initial Setup -> Optional Hardware -> Battery Monitor로 들어감
    • 현재 배터리값을 확인해봄. 다르다면 Sensor 를 0:Other로 바꾼 뒤, Measured battery voltage field에 측정했던 값으로 입력함. 
    • mission planner가 "Voltage divider"를 계산하여 저장하게 됨.
    • Flght Monitor 스크린의 HUD에 그 전압값이 나타남. 또한 Status tab의 "battery_voltage"에도 저장됨
  • 배터리 전류 캘리브레이션
    • 적절한 장비가 없어서 생략함. 
    • 배터리 ->(Turnigy 180A Power analyzer) -> 기체로 연결
    • Mission Planner -> Status Tab -> current를 확인 
    • 3A 이하에선 정확하지 않으므로, 10A 정도까지 올라가도록 Throttle을 올려줌.
    • 단, 이전에 프롭을 모두 뒤집어서 Throttle을 올리면 눌리도록 함.
    • 10A 까지 올려주고, Mission Planner를 보면 일치하지 않음
    • Amperes per volt 값을 적절히 조절해주면서  trial and error로 값이 일치해도록 해줌.
  • 자세한 내용은 battery monitoring setup 유튜브를 확인 

6. Sonar 설정

  • Sonar 가 없으므로 통과

7. 송수신기(Futaba 14SG) 조정

  • *** 참고 : pixhawk용 RC Transmitter : copter.ardupilot.com/wiki/ 참조. FRSKY Taranis를 제일 추천
  • 먼저 송신기와 수신기를 binding 해야함. Binding이란 송신기(조종기)와 수신기를 연결하는 것. 즉, 송신기에서 보내는 신호를 수신기가 받도록 인식하는 것
    • 구매를 했을 때에는 바인딩이 되어 있음. 새로운 Model을 생성시 새로 바인딩 필요
      • 수신기가 50cm 이내에 있는 상태에서 송신기 전원을 넣는다.
      • LNK를 두번 클릭하여 Linkage 메뉴로 들어감. System을 선택하고 RTN을 클릭함
      • LINK로 옮겨간후 RTN을 클릭함. LINK 모드로 들어가면서 삐리릭 소리가 들림.
      • 즉시 수신기의 전원을 넣음.
      • 잠시 기다리면 수신기 LED가 빨간색 깜빡임 상태에서 녹색으로 전환됨. 바인딩이 완료된 것임. 다시 System에 들어가보면 아래와 같이 id 가 표시됨.

  • CH Mode를 필요에 따라 지정. 나는 모드 B로 사용중. 
    • 한글 매뉴얼 27쪽 참조. 

====
  • http://copter.ardupilot.com/wiki/radio-control-calibration/
  • 송신기 전원을 켬. 먼저 Airplane 모드로 두고, 모든 trim 은 center로 조정
  • 송신기에 있는 3 position switch 에 채널 5를 할당하고 여기에 비행모드를 설정해야 함
  • 옵션 : 송신기에 있는 tuning knob에 채널 6를 할당하고 inflight tuning 을...
  • 채널 7과 채널 8에는 보조기능을 설정 할 수 있음
  • Futaba 14SG의 채널 
    • 이중에서 1-6번 채널은 Pixhawk에서 사용. 7-8 채널에 대해서는 별도의 기능을 부여할 수 있음
    • 9-14번 채널에 대해서는 Pixhawk의 Aux Out 채널에 Servo를 부착하여 작동시킬 수 있을 것 같음.

채널 

 Futaba 내부

멀티콥터 기능(스위치) 

 1

 AiL

 Roll 

 2

 Ele 

 Pitch 

 3

 THR

 Thruttle 

 4

 RUD

 YAW 

 5

 MOD

 SE (비행모드 선택)

 6

 TILT 

 Right Slider 

 7

 PAN

 Left Slider 

 8

 REL

 SH 

 9-

 AUX1 - AUX4

 


====
  • Mission Planner 송수신기 캘리브레이션 화면에서 오른쪽 아래에 있는 "Calibrate Radio"를 누름
  • 송신기 on/배터리 off/프로펠러 off 해야 한다는 다이얼로그 -> OK를 누름

  • 송신기의 모든 스틱과 스위치를 맨 아래에서 맨 위까지 움직여줌. 최대 최소 위치에 빨간선이 표시됨.
  • 채널 1에는 roll, 채널 2에는 pitch, 채널 3에는 throttle, 채널 4에는 yaw가 할당되었는지 확인. 이때, 왼쪽 및 아래쪽이 낮은 값이 되어야 함. (주의 : PITCH의 경우엔 반대임. 즉 작은 값이 Forward, 큰 값이 Backward임)
    • 만약 반대로 움직일 경우, 수신기에서 REVERSE 세팅

  • 모두 값이 설정되면 Click when done을 눌러줌. 요약 창이 나타남. 값은 1100 ~1900 정도가 되면 됨. 

 

8. 비행 모드 선택

  • 설정순서 
    • RC 전원 On,  Mission Planner와 Pixhawk 연결 
    • Mandatory H/W -> Flight Mode 드롭다운으로 설정 
      • 반드시 하나는 Stabilize로 두어야 함.
    • 완료후 “Save Mode” 를 눌러줌
  • Flight mode채널 설정 
    • 항상 채널5 이어야 함 
  • 송신기 설정 
    • 송신기에서 적절한 범위의 PWM 신호를 보내야 함. 
      • 3개의 모드만 설정시에는 
        • 1165, 1425, 1815로 설정 
      • 6개 모드 사용시에는 
        • 1165, 1295, 1425, 1555, 1685, 1815 로 설정
        • 2 position + 3 position 스위치 두개를 결합하여 설정해야 함. 
        • 6 모드 설정 방법 : (SE 스위치와 SF 스위치를 사용)
          • SF(PAN) 채널을 SE 채널과 연동 시킴
            • MDL -> PROG. MIX -> 1로 들어감
            • x와 y 를 각각 +25로 올려줌
            • 다음 페이지에서 아래와 같이 설정
              • SF 는 직접나오지 않고 H/W 를 선택한 후 SF를 선택해야 함
    • 각 모드별로 비행모드를 설정하는 것은 아래 그림에서 드롭다운으로 선택만 해주면 됨. 
      • 반드시 하나는 Stabilize로 설정할 것.
      • Simple Mode(Course Lock)와 Super Simple Mode(Home Lock)를 사용하면 조종하기 편함

      • 채널을 아래와 같이 설정
        • 1 : Loiter, 2: RTL, 3: ALT_Hold, 4: AUTO, 5: STABILIZE, 6: SIMPLE
        • SF를 UP으로 두면  SE UP Stabilize, SE Mid Alt Hold, SE DN : Loiter 가 됨.
        • SF를 DN으로 두었을 때 SE: UP Simple, Mid Auto, DN RTL
        • 아래와 같이 GCS에서 확인 가능함

9. FailSafe 설정


Radio Failsafe(Throttle Failsafe) : 수신기와 연결이 끊어졌을 때. 


  • 발동 시점
    • 조종자가 RC 송신기를 껐을 때
    • 기체가 RC 범위를 넘어 갔을 때(약 500-700m)
    • 수신기 동력 차단(가능성 극히 낮음)
    • 수신기와 FC간의 전선이 끊어졌을 때(가능성 극히 낮음). 참고로 APM2의 경우에는 채널3만이 Failsafe를 일으킴
  • 발동 후 동작
    • 이미 시동해제(disarm)상태일 경우 : 아무 동작도 안함
    • 기체가 착륙해있거나 stabilize/acro/모드 이면서 throttle이 제로인 경우 : 모터가 즉각 시동해제
    • 기체 GPS가 고정된 상태고 출발지점에서 2미터 이상 떨어진 경우 : RTL(Return to Launch)
    • 즉시 착륙하는 경우
      • GPS가 고정되지 않은 경우
      • 출발지점에서 2미터 이내인 경우
      • FS_THR_ENABLE을 "Enabled Always Land"로 설정해둔 경우
    • Failsafe 상황이 해제되어도 현재의 비행모드가 그대로 유지됨. 즉, 이전의 모드로 돌아가지 않음. 예를 들어 원래 Loiter 모드였는데 Failsafe가 발생하여 RTL로 바뀌었을 경우, Failsafe 상황이 해제되어도 계속 RTL이 진행됨. 다시 Loiter 모드로 바꾸고 싶다면, 먼저 다른 비행모드로 바꿨다가 Loiter 모드로 설정해야 함
  • 송신기 및 비행콘트롤러 설정
    • 새로 구입한 수신기는 기본적으로 송수신기간 연결이 끊어지면 최종적으로 알고 있는 지점에서 모든 채널을 계속 보유하도록 설정되어 있음. 이 경우에는 비행콘트롤러는 신호가 끊어졌는지 알 수 없다. 따라서 수신기를 비행콘트롤러로 하여금 연결이 끊어졌음을 알릴 수 있도록 설정해야 한다. 두 가지 방법이 있다. 
      • "Low-Throttle" 방법 : 수신기가 throttle 채널(대부분 3번채널)의 값을 일반적인 범위아래로 (대부분 975 이하) 끌어내린다. 이는 Futaba 및 오래된 시스템에서 사용되고 있다.
      • "No Signal" 방법 : 수신기에서 비행콘트롤러로 가는 신호를 차단한다. 이 방법이 더 나은 방법으로, 대부분의 최신 FrSky 는 이 방식을 채택하고 있다.
    • 송수신기 종류에 따라 약간씩 다르므로, 어떤 방법이 있는지, 어떻게 설정할지는 매뉴얼을 참고할 것
  • Low-Throttle 설정방법
    • LiPo 배터리는 연결하지 않은 상태에서 FC를 Mission Planner에 연결. 
    • Initial Setup -> Mandatory Hardware -> FailSafe 선택
    • Radio Failsafe 옵션은 다음과 같이 4가지
      • Disabled : 사용하지 않음
      • Enabled alwayws RTL : 현재 어떤 모드이던지 즉시 RTL
      • Enabled Continue with Mission in AUTO : 현재 AUTO 모드인 경우에는 RC 범위를 넘어가더라도 계속 임무를 수행하도록 하고, 다른 모드인 경우에는 즉시 RTL
      • Enabled always LAND : 즉시 착륙
    • FS Pwm 값 값의 설정
      • throttle stick 최하단이고 수신기가 off일때의 채널3 PWM 값보다 적어도 10 이상으로.
      • throttle stick 최하단이고 수신기가 on일때의 채널3의 PWM 값보다 적어도 10 이하로. 
      • 단 910 이상
      • Futaba의 경우엔 원래 두번째 기준으로 되어 있는 것 같고... 그런데도 Failsafe는 작동하는 것으로 보임. (수신기를 차단하면 삐뽀하는 소리가 들림) 그래서 그림에는 1094+10으로 설정했으나, 실재로는 1094-10으로 설정해두었음. <- 나중에 체크할 예정
  • "No-Signal"은 생략
    • FrSky 만 적용?
  • 시험방법
    • 이하도 생략


Battery FailSafe : 배터리 전압/전류가 낮을 때


  • 배터리 전압이나, 추정 전력이 설정된 값보다 낮을 때 자동적으로 RTL 혹은 Land 가 실행되도록 설정
  • 발동 시점
    • 전압이 10.5볼트(조정가능) 이하로 떨어질 때
    • 추정된 잔여 전력이 Reserved MAH 값보다 떨어질 때
  • 발동 후 동작
    • 이미 시동해제(disarm)상태일 경우 : 아무 동작도 안함
    • 기체가 착륙해있거나 stabilize/acro/모드 이면서 throttle이 제로인 경우 : 모터가 즉각 시동해제
    • RTL(Return to Launch)
      • FS_BATT_ENABLE = 2(RTL) 이거나, AUTO 모드이면서 GPS가 고정되었고 출발지점보다 2미터 이상 떨어져 있는 경우
    • 즉시 착륙하는 경우 : 기타 모든 경우
  • 설정방법
    • 여기에 들어가서 Power  모듈 설정부터 완료할 것
    • Initial Setup -> Mandatory Hardware -> Failsafe
      • "Low Battery" 한계값을 지정(예 : 10.5V) 아마도 3S 기준으로 셀당 3.5볼트임. 이 기준에 따르면 4S은 14 볼트로 설정
      • Reserved MAH를 0으로 하면 전력에 대해서는 설정하지 않음. 설정할 경우에는 600 정도면 충분한 정도
      • RTL 또는 Land 로 설정

GCS FailSafe : 지상국 (Ground Control Station)과 연결이 끊어졌을 때


  • 세팅값 및 기체의 위치에 따라 다르지만, RTL/Land 할 수도 있고 기존 임무를 계속 수행하도록 할 수도 있다.
  • GCS로 콥터를 조종하다가(joystick을 사용하는 등) GCS와 5초 이상연결이 끊어지면
    • stabilize/acro 모드이고 throttle이 0 라면 즉시 시동해제
    • 기체 GPS가 고정된 상태고 출발지점에서 2미터 이상 떨어진 경우 : RTL(Return to Launch)
    • GPS가 고정되지 않은 상태이거나 2미터 이내인 경우 : LAND
    • Auto 모드이고 GCS Failsafe 옵션을 2(Enabled_continue_in_auto_mode)로 설정되어있을 경우 임무 계속
  • Failsafe 상황이 해제되어도 현재의 비행모드가 그대로 유지됨. 즉, 이전의 모드로 돌아가지 않음. 예를 들어 원래 Stabilize 모드였는데 Failsafe가 발생하여 RTL로 바뀌었을 경우, Failsafe 상황이 해제되어도 계속 RTL이 진행됨. 다시 Stabilze 모드로 바꾸고 싶다면, 먼저 다른 비행모드로 바꿨다가 Loiter 모드로 설정해야 함
  • FS_GCS_FAILSAFE
    • 0 : Disable
    • 1 : 활성화. 연결이 끊기면 항상 RTL
    • 2 : AUTO 모드일 경우에는 임무 계속. 기타 모드에서는 RTL

10. Geofence 설정


ESC 캘리브레이션



  • 사전준비 : Pixhawk를 PC와 연결하지 말것. Battery 분리, 프로펠러 분리
  • 송신기 전원 on - throttle 맨위로 (비디오는 mode 1 인듯)
  • 배터리 연결 - Pixhawk에 있는 LED가 blue/yellow/red 로 계속 돌아감
    • 삐삐 소리가 남 - 다음번 전원이 들어오면 ESC를 조정하겠다는 뜻임
  • battery 전원을 뺐다가 잠시후 다시 연결.  (throttle 은 그대로 둔 상태로)
  • 빨간색으로 고정될 때까지 safety button을 눌러줌. 
  • 삐삐삐 (3S 배터리가 연결되어 있음을 감지했음.) 그 다음 삐삐 (throttle이 최대라는 걸 감지했음) 그러면 바로 throttle을 최소로 내릴 것.
    • 약간 긴 삐 소리가 남. (calibration 이 완료되었음)
    • throttle을 살짝 올리면 모터가 돌아감.
  • throttle이 완전히 내리고 배터리를 빼면 완료. 
  • 10초이상 기다린 후 다시 연결하면 일반 비행모드가 됨.


모터 방향 테스트


  • 직접 테스트 방법
    • 프로펠러는 뽑아둘 것 
    • 수신기 on (Stabilize mode) 
    • 배터리 연결 
    • Arming(throttle down, rudder 오른쪽) 
    • Arming 실패시 Prearm safety check 에서 확인할 것.
    • Throttle을 조금 올리고 방향 확인.
  • Mission Planner에서 테스트 방법
    • Mission Planner - Connect -> Initial Setup -> Optional Hardware -> Motor Test 
    • 누를 때마다 해당 모터가 5초씩 회전 
    • 만약 안돌아가면 5%-> 10% -> 15% 로 올려가면서 테스트.
  • 모터 방향을 바꿔야 할 경우, 모터와 ESC 결합하는 부분까지 해체하고, ESC에 연결된 3개의 선중에서 임의의 2개를 바꾸면 됨. 

====

이 정도를 세팅하면 일단 비행에는 문제가 없습니다. 그러나 콥터 페이지에 들어가보시면 더 상세한 설정 방법이 많이 있습니다. 한마디로 아주 복잡합니다. 제가 처음에 조립했던 DJI F450 ARF 키트에 비하면 난이도가 3배는 되는 것 같습니다.


그 이유는... DJI 경우, 자기네 하드웨어만을 대상으로 하기 때문에 미리 세팅된 부분은 생략하고 간단하게 설정을 할 수 있는 게 아닌가 싶고요, Pixhawk의 경우 기능이 많고... 다양한 하드웨어를 지원해야 하는 것 때문에 복잡하다고 보면 될 것 같습니다.


민, 푸른하늘