새 기체 추가

PX4는 고정된 기체 구성을 기체의 시작점으로 사용합니다. 구성은 ROMFS/px4fmu_common/init.d 폴더에 저장된 구성 파일에 정의됩니다. 구성 파일은 시스템의 물리적 구성을 설명하고 ROMFS/px4fmu_common/mixers 폴더에 저장되는 믹서 파일을 참조합니다.

구성을 추가하는 것은 간단합니다. init.d/airframes 폴더에 새 구성 파일을 만들고(파일 이름 앞에 사용하지 않은 자동 시작 ID 추가), 새 기체 구성 파일의 이름을 <1 관련 섹션에서 >CMakeLists.txt를 찾은 다음 소프트웨어를 빌드 및 업로드합니다.

자체 구성을 만들고 싶지 않은 개발자는 맞춤 시스템 시작 페이지에 설명된 대로 microSD 카드의 텍스트 파일을 사용하여 기존 구성을 맞춤 설정할 수 있습니다.

구성 파일 개요

구성 파일과 믹서 파일의 구성은 몇 가지 주요 블록으로 이루어집니다.

  • 기체 문서(기체 정의서QGroundControl에서 사용됨).

  • 튜닝 게인을 포함한 차량 매개변수 설정.

  • 시작해야 하는 컨트롤러 및 앱(예: 멀티콥터 또는 고정익 컨트롤러, 지면 탐지기 등)

  • 시스템 물리적 구성(예: 비행기, 날개 또는 멀티콥터). 이것을 믹서라고 합니다.

이러한 측면은 대부분 독립적이므로, 많은 구성이 기체의 동일한 물리적 레이아웃을 공유하고 동일한 응용 프로그램을 시작하며 튜닝 이득이 가장 차이가 납니다.

설정 파일

일반적인 구성 파일은 아래와 같습니다(원본 파일은 여기).

첫 번째 섹션은 기체 문서입니다. 이것은 기체 정의서QGroundControl에서 사용됩니다.

#!/bin/sh
#
# @name Wing Wing (aka Z-84) Flying Wing
#
# @url https://docs.px4.io/master/en/frames_plane/wing_wing_z84.html
#
# @type Flying Wing
# @class Plane
#
# @output MAIN1 left aileron
# @output MAIN2 right aileron
# @output MAIN4 throttle
#
# @output AUX1 feed-through of RC AUX1 channel
# @output AUX2 feed-through of RC AUX2 channel
# @output AUX3 feed-through of RC AUX3 channel
#
# @maintainer Lorenz Meier <lorenz@px4.io>
#
# @board px4_fmu-v2 exclude
# @board bitcraze_crazyflie exclude
#

다음 섹션은 튜닝 게인을 포함하여, 차량 매개변수를 지정합니다.

. ${R}etc/init.d/rc.fw_defaults

param set-default BAT_N_CELLS 2
param set-default FW_AIRSPD_MAX 15
param set-default FW_AIRSPD_MIN 10
param set-default FW_AIRSPD_TRIM 13
param set-default FW_R_TC 0.3
param set-default FW_P_TC 0.3
param set-default FW_L1_DAMPING 0.74
param set-default FW_L1_PERIOD 16
param set-default FW_LND_ANG 15
param set-default FW_LND_FLALT 5
param set-default FW_LND_HHDIST 15
param set-default FW_LND_HVIRT 13
param set-default FW_LND_TLALT 5
param set-default FW_THR_LND_MAX 0
param set-default FW_PR_FF 0.35
param set-default FW_RR_FF 0.6
param set-default FW_RR_P 0.04

param set-default PWM_MAIN_DISARM 1000

기체 유형 설정(MAV_TYPE):

# Configure this as plane
set MAV_TYPE 1

사용할 믹서 설정:

# Set mixer
set MIXER wingwing

PWM 출력을 구성합니다(구동/활성화할 출력 및 레벨 지정).

set PWM_OUT 4

채널을 되돌리려면, RC 송신기나 RC1_REV와 같이 사용하지 마십시오. 채널은 수동 모드에서 비행시에만 반전되며, 자동 조종 비행 모드로 전환하면 채널 출력이 여전히 잘못됩니다(RC 신호만 반전됨). 따라서, 올바른 채널 할당을 위해 PWM 신호를 PWM_MAIN_REV1(예: 채널 1의 경우)으로 변경하거나 해당 믹서에서 출력 스케일링의 부호를 변경합니다(아래 참조).

믹서 파일

일반적인 믹서 파일은 아래에 나와 있습니다(원본 파일은 여기). 믹서 파일 이름(이 경우 wingwing.main.mix)은 기체 유형(wingwing), 출력 유형(.main 또는 .aux), 그리고 믹서 파일(.mix)에 대한 중요한 정보를 제공합니다.

믹서 파일에는 여러 코드 블록이 포함되어 있으며, 각 블록은 하나의 액추에이터 또는 ESC를 나타냅니다. 예를 들어 2개의 서보와 1개의 ESC, 믹서 파일에는 3개의 코드 블록이 포함됩니다.

따라서 MAIN1은 왼쪽 에일러론, MAIN2는 오른쪽 에일러론, MAIN3은 비어 있고(Z: 제로 믹서 참고) MAIN4는 스로틀입니다(일반적인 고정익은 출력 4에서 스로틀을 유지하기 위하여).

믹서는 -1..+1에 해당하는 -10000에서 10000까지의 정규화된 단위로 인코딩됩니다.

M: 2
O:      10000  10000      0 -10000  10000
S: 0 0  -6000  -6000      0 -10000  10000
S: 0 1   6500   6500      0 -10000  10000

여기서 왼쪽에서 오른쪽으로 각 숫자는 다음을 의미합니다.

  • M: 2개의 제어 입력에 대한 2개의 스케일러를 나타냅니다. 믹서가 수신할 컨트롤 입력의 수를 나타냅니다.

  • O: 출력 스케일링(음수에서 *1, 양수에서 *1), 오프셋(여기서는 0) 및 출력 범위(여기서는 -1..+1)를 나타냅니다.

    • PWM 신호를 반전시키려면, 출력 스케일링 부호를 변경합니다.

      O:      -10000  -10000      0 -10000  10000
    • 이 줄은 기본 크기 조정을 지정하는 경우 완전히 생략할 수 있습니다(및 반드시 생략해야 함).

      O:      10000  10000   0 -10000  10000
  • S: 첫 번째 입력 스케일러를 나타냅니다. 제어 그룹 #0(Flight Control)과 첫 번째 입력(roll)에서 입력을 받습니다. 롤 제어 입력의 크기를 * 0.6으로 조정하고 부호를 되돌립니다(-0.6은 축척 단위로 -6000이 됨). 오프셋을 적용하지 않고(0) 전체 범위(-1..+1)로 출력합니다.

  • S: 두 번째 입력 스케일러를 나타냅니다. 제어 그룹 #0(비행 제어) 및 두 번째 입력(피치)에서 입력을 받습니다. 피치 제어 입력 * 0.65를 조정합니다. 오프셋을 적용하지 않고(0) 전체 범위(-1..+1)로 출력합니다.

note 나머지 기체 메타데이터는 펌웨어에 자동으로 포함되어야 합니다(**srcparser.py**가 업데이트되면). :::

게인 튜닝

구성 파일에 지정될 매개변수를 조정하는 방법을 설명합니다.

QGroundControl에 신규 기체 추가

신규 기체를 QGroundControl 기체 구성 섹션에 사용할 수 있도록 하려면:

  1. 깨끗한 빌드 만들기(예: make clean을 실행한 다음 make px4_fmu-v5_default 실행)

  2. QGC를 열고 아래와 같이 **맞춤 펌웨어 파일...**을 선택합니다.

플래시할 .px4 펌웨어 파일을 선택하라는 메시지가 표시됩니다(이 파일은 압축된 JSON 파일이며 기체 메타데이터가 포함되어 있습니다).

  1. 빌드 폴더로 이동하여 펌웨어 파일을 선택합니다(예: PX4-Autopilot/build/px4_fmu-v5_default/px4_fmu-v5_default.px4).

  2. 확인을 눌러, 펌웨어 플래시를 시작합니다.

  3. QGroundControl을 재시작합니다.

QGroundControl에서 신규 기체를 선택할 수 있습니다.

Last updated