# 자동 튜닝

자동 튜닝은 안정적이고 반응성은 높은 비행에 탁월한 컨트롤러인 PX4의 속도와 자세를 자동으로 튜닝합니다(다른 튜닝은 "선택 사항"에 가깝습니다). It is currently enabled for multicopter, fixed-wing, and hybrid VTOL fixed-wing vehicles.

Tuning only needs to be done once, and is recommended unless you're using a vehicle that has already been tuned by the manufacturer (and not modified since).

WARNING

비행 중에 자동 튜닝이 수행됩니다. The airframe must fly well enough to handle moderate disturbances, and should be closely attended:

# 사전 튜닝 테스트

The vehicle must be able to fly and adequately stabilize itself before running auto-tune. This test ensures that the vehicle can fly safely in position controlled modes.

Note

During Airframe Setup you should have selected the frame that most closely matches your vehicle. This may fly well enough to run autotuning.

To make sure the vehicle is stable enough for auto-tuning:

  1. 비행 구역이 깨끗하고 공간이 충분한 지 확인하기 위하여, 일반적인 비행 전 안전 점검을 실시합니다.
  2. 이륙 및 시험 준비
  3. RC 송신기 롤 스틱을 사용하여 기체를 몇 도만 기울여 다음 기동을 수행하십시오. 좌회전 > 오른쪽 롤 > 중심 (전체 기동은 약 3초가 소요됩니다). 기체는 2번의 진동 이내에서 안정화되어야 합니다.
  4. 각각의 시도에서 더 큰 진폭으로 기울이면서 기동을 반복합니다. 기체가 ~20도에서 2번의 진동 내에서 안정화될 수 있으면 다음 단계로 이동합니다.
  5. 피치 축에서 동일한 동작을 반복합니다. As above, start with small angles and confirm that the vehicle can stabilise itself within 2 oscillations before increasing the tilt.

If the drone can stabilize itself within 2 oscillations it is ready for the auto-tuning procedure.

If not, go to the troubleshooting section, which explains the minimal manual tuning to prepare the vehicle for auto-tuning.

# Auto-tuning Procedure

The auto-tuning sequence must be performed in a safe flight zone, with enough space. It takes about 40 seconds (between 19 and 68 seconds). For best results, we recommend running the test in calm weather conditions.

The recommended modes for autotuning are Hold mode (FW) and Altitude mode (MC), but any other flight mode can be used. During auto tuning, the RC sticks can still be used to fly the vehicle.

Note

The auto-tuning sequence can be aborted at any time by changing flight modes or using the enable/disable Autotune switch (if configured).

The test steps are:

  1. 사전 튜닝 테스트를 수행합니다.
  2. RC를 사용하여 이륙 및 테스트 준비합니다:
    • Multicopters: Takeoff using the remote controller in Altitude mode. 안전한 거리와 지상에서 4~20m에서 기체를 호버링하십시오.
    • Fixed-wing: Once flying at cruise speed, activate Hold mode. 이렇게 하면 비행기가 일정한 고도와 속도로 원을 그리며 선회 비행합니다.
  3. Enable autotune.

TIP

If an Enable/Disable Autotune Switch is configured you can just toggle the switch to the "enabled" position.

  1. QGroundControl에서 메뉴(차량 설정 > PID 조정)를 클릭합니다.

    튜닝 설정 > 자동 튜닝 활성화

  2. Select either the Rate Controller or Attitude Controller tabs.

  3. 자동 튜닝 활성화 버튼이 활성화 여부를 확인합니다(이렇게 하면 자동 튜닝 버튼이 표시되고 수동 튜닝 선택기가 제거됨).

  4. 경고 팝업을 읽고 확인을 클릭하여 튜닝을 시작합니다.

  5. 드론은 먼저 빠른 롤 동작을 수행한 후 피치 및 요 동작을 수행합니다. 진행률은 자동 조정 버튼 옆의 진행률 표시줄에 표시됩니다.

  6. 튜닝 적용:

    • Fixed-Wing: The tuning will be immediately/automatically be applied and tested in flight (by default). 그런 다음, PX4는 4초 테스트를 실행하고 문제가 감지되면 튜닝 작업의 이전 상태로 복원합니다.
    • 멀티콥터: 새로운 조정 매개변수를 적용을 위하여 수동으로 착륙하고 시동을 해제합니다. 주의하여 이륙하고 차량이 안정성을 수동으로 테스트하십시오.
  7. 강한 진동이 발생하면, 즉시 착륙하고 아래 문제 해결 섹션의 지침을 따르십시오.

Additional notes:

  • VTOL: Hybrid VTOL fixed-wing vehicles must be tuned twice, following multicopter instructions in MC mode and fixed-wing instructions in FW mode.
  • Multicopter: The instructions above tune the vehicle in Altitude mode. You can instead takeoff in Takeoff mode and tune in Position mode if the vehicle is is known to be stable in these modes.
  • Fixed-wing: Autotuning can also be run in Altitude mode or Position mode. 그러나 직선으로 비행하면서 테스트를 실행하면 더 큰 튜닝 안전 영역이 필요하며, 더 좋은 튜닝 결과를 보장하지 않습니다.
  • Whether tuning is applied in-air or after landing can be configured using parameters.

# 문제 해결

# 자동 튜닝 시작전에 테스트 기동시 드론이 진동합니다.

  • 느린 진동(초당 1회 또는 더 느린 진동): 이는 종종 대형 플랫폼에서 발생하며 자세 루프가 속도 루프에 비해 너무 빠르기 때문입니다.
  • 빠른 진동(초당 1회 이상): 이는 속도 루프의 이득이 너무 높기 때문입니다.
    • 멀티콥터: 0.02씩 MC_[ROLL|PITCH|YAW]RATE_K 감소
    • Fixed-wing: decrease FW_RR_P, FW_PR_P, FW_YR_P by steps of 0.01.

# 자동 튜닝 실패

If the drone was not moving enough during auto-tuning, the system identification algorithm might have issues to find the correct coefficients. Increase the FW_AT_SYSID_AMP, MC_AT_SYSID_AMP by steps of 1 and trigger the auto-tune again.

# 드론이 자동 튜닝 후 진동합니다.

Due to effects not included in the mathematical model such as delays, saturation, slew-rate, airframe flexibility, the loop gain can be too high. To fix this, follow the same steps described when the drone oscillates in the pre-tuning test.

# 여전히 정상 작동하지 않는 경우:

Attempt manual tuning using the appropriate guides:

# Optional Configuration

# Apply Parameters When In-Air/Landed

By default MC vehicles land before parameters are applied, while FW vehicles apply the parameters in-air and then test that the controllers work properly. This behaviour can be configured using the MC_AT_APPLY and FW_AT_APPLY parameters respectively:

  • 0: 게인이 적용되지 않습니다. 자동 튜닝의 결과를 직접적으로 사용하지 않은 체로 검사하는 경우에 사용합니다.
  • 1: 무장 해제 후 게인을 적용합니다(멀티콥터의 경우 기본값). 이후, 조종자는 주의하여 이륙하면서 튜닝 결과를 테스트할 수 있습니다.
  • 2: 즉시 적용됩니다(고정익의 경우 기본값). 새로운 튜닝이 적용되고, 교란이 컨트롤러로 전송된 후, 다음 4초 동안 안정성이 모니터링됩니다. 제어 루프가 불안정한 경우, 제어 게인을 즉시 이전 값으로 복원합니다. 테스트를 통과하면, 조종자는 새로운 튜닝 결과를 사용할 수 있습니다.

# Enable/Disable Autotune Switch (Fixed-Wing)

A remote control switch can be configured to enable/disable autotune (in any mode) using an RC AUX channel.

To map a switch:

  1. Select an RC channel on your controller to use for the autotune enable/disable switch.
  2. Set RC_MAP_AUX1 to match the RC channel for your switch (you can use any of RC_MAP_AUX1 to RC_MAP_AUX6).
  3. Set FW_AT_MAN_AUX to the selected channel (i.e. 1: Aux 1 if you mapped RC_MAP_AUX1).

The auto tuner will be disabled when the switch is below 0.5 (on the manual control setpoint range of of [-1, 1] and enabled when the switch channel is above 0.5.

If using an RC AUX switch to enable autotuning, make sure to select the tuning axes before flight.

# Select Tuning Axis (Fixed-Wing)

Fixed-wing vehicles (only) can select which axes are tuned using the FW_AT_AXES bitmask parameter:

  • 비트 0: 롤(기본값)
  • 비트 1: 피치(기본값)
  • 비트 2: 요

# 개발자 SDK

Autotuning is started using MAV_CMD_DO_AUTOTUNE_ENABLE (opens new window) MAVLink command.

At time of writing the message is resent at regular intervals to poll PX4 for progress: the COMMAND_ACK includes result that the operation is in progress, and also the progress as a percentage. The operation completes when the progress is 100% or the vehicle lands and disarms.

Note

This is not a MAVLink-compliant implementation of a command protocol long running command (opens new window). PX4 should stream progress as the protocol does not allow polling.

The feature is not yet supported by MAVSDK.

# 배경 및 세부 사항

PX4 uses PID controllers (rate, attitude, velocity, and position) to calculate the outputs required to move a vehicle from its current estimated state to match a desired setpoint. The controllers must be well tuned in order to get the best performance out of a vehicle. In particular, a poorly tuned rate controller results in less stable flight in all modes, and takes longer to recover from disturbances.

Generally if you use a frame configuration that is similar to your vehicle then the vehicle will be able to fly. However unless the configuration precisely matches your hardware you should tune the rate and attitude controllers. Tuning the velocity and position controllers is less important because they are less affected by vehicle dynamics, and the default tuning configuration for a similar airframe is often sufficient.

Autotuning provides an automatic mechanism to tune the rate and attitude controllers. It can be used to tune fixed-wing and multicopter vehicles, and VTOL vehicles when flying as a multicopter or as a fixed-wing (transition between modes must be manually tuned). In theory it should work for other vehicle types that have a rate controller, but currently only the above types are supported.

Automatic tuning works well for the multicopter and fixed-wing vehicle configurations supported by PX4, provided the frame is not too flexible (see below for more information).

The vehicle must be flying in an altitude-stabilized mode (such as Altitude mode, Hold mode, or Position mode). The flight stack will apply a small disturbance to the vehicle in each axis and then attempt to calculate the new tuning parameters. For fixed-wing vehicles the new tuning is applied in-air by default, after which the vehicle tests the new settings and reverts the tuning if the controllers are not stable. For multicopter, the vehicle lands and applies the new tuning parameters after disarming; the pilot is expected to then take off carefully and test the tuning.

The tuning process takes about 40 seconds (between 19 and 68 seconds). The default behaviour can be configured using parameters.

# 자주 묻는 질문

# 어떤 기체 유형이 지원됩니까?

Autotuning is enabled for multicopter, fixed-wing, and hybrid VTOL fixed-wing vehicles.

While it is not yet enabled for other frame types, in theory it an be used with any frame that uses a rate controller.

# 지원되는 모든 기체에 대해 자동 튜닝이 작동됩니까?

The mathematical model used by autotuning to estimate the dynamics of the drone assumes this it is a linear system with no coupling between the axes (SISO), and with a limited complexity (2 poles and 2 zeros). If the real drone is too far from those conditions, the model will not be able to represent the real dynamics of the drone.

In practise, autotuning generally works well for fixed-wing and multicopter, provided the frame is not too flexible.

# 자동 튜닝은 얼마나 걸립니까?

Tuning takes 5s-20s per axis (aborted if tuning could not be established in 20s) + 2s pause between each axis + 4s of testing if the new gains are applied in air.

A multicopter must tune all three axes, and by default does not test the new gains in-air. Tuning will therefore take between 19s (5 + 2 + 5 + 2 + 5) and 64s (20x3 + 2x2).

By default a fixed-wing vehicle tunes all three axes and then tests the new gains in-air. The range is therefore between 25s (5 + 2 + 5 + 2 + 5 + 2 + 4) and 70s (20x3 + 3x2 + 4).

Note however that the above settings are defaults. A multicopter can choose to run the tests in air, and a fixed-wing can choose not to. Further, a fixed-wing can choose to tune fewer axes.

Anecdotally, it usually takes around 40s for either vehicle.

# 참고 항목: