mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-25 00:53:35 +08:00
Move PX4 Guide source into /docs (#24490)
* Add vitepress tree * Update existing workflows so they dont trigger on changes in the docs path * Add nojekyll, package.json, LICENCE etc * Add crowdin docs upload/download scripts * Add docs flaw checker workflows * Used docs prefix for docs workflows * Crowdin obvious fixes * ci: docs move to self hosted runner runs on a beefy server for faster builds Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: don't run build action for docs or ci changes Signed-off-by: Ramon Roche <mrpollo@gmail.com> * ci: update runners Signed-off-by: Ramon Roche <mrpollo@gmail.com> * Add docs/en * Add docs assets and scripts * Fix up editlinks to point to PX4 sources * Download just the translations that are supported * Add translation sources for zh, uk, ko * Update latest tranlsation and uorb graphs * update vitepress to latest --------- Signed-off-by: Ramon Roche <mrpollo@gmail.com> Co-authored-by: Ramon Roche <mrpollo@gmail.com>
This commit is contained in:
co-authored by
Ramon Roche
parent
8e6d2ebe4a
commit
88d623bedb
@@ -0,0 +1,176 @@
|
||||
# MC Filter Tuning & Control Latency
|
||||
|
||||
Filters can be used to trade off [control latency](#control-latency), which affects flight performance, and noise filtering, which impacts both flight performance and motor health.
|
||||
|
||||
제어 지연과 PX4 필터 튜닝에 관한 개요를 제공합니다.
|
||||
|
||||
:::info
|
||||
Before filter tuning you should do a first pass at [Basic MC PID tuning](../config_mc/pid_tuning_guide_multicopter_basic.md).
|
||||
The vehicle needs to be undertuned (the **P** and **D** gains should be set too low), such that there are no oscillations from the controller that could be interpreted as noise (the default gains might be good enough).
|
||||
:::
|
||||
|
||||
## 제어 지연
|
||||
|
||||
The _control latency_ is the delay from a physical disturbance of the vehicle until the motors react to the change.
|
||||
|
||||
:::tip
|
||||
Lowering latency allows you to increase the rate **P** gains, which results in better flight performance.
|
||||
1/1000초의 지연 시간도 큰 영향을 미칠 수 있습니다.
|
||||
:::
|
||||
|
||||
다음의 요소들은 제어 지연에 영향을 끼칩니다.
|
||||
|
||||
- 부드러운 기체 또는 부드러운 진동 장착은 대기 시간을 증가시킵니다 (필터 역할을 함).
|
||||
- 소프트웨어 및 센서 칩의 저역 통과 필터는 대기 시간 증가분을 상쇄하여 노이즈 필터링을 원활하게합니다.
|
||||
- PX4 소프트웨어 내부 : 센서 신호를 드라이버에서 읽은 다음 컨트롤러를 통해 출력 드라이버로 전달하여야 합니다.
|
||||
- The maximum gyro publication rate (configured with [IMU_GYRO_RATEMAX](../advanced_config/parameter_reference.md#IMU_GYRO_RATEMAX)).
|
||||
속도가 높을수록 지연 시간이 줄어들지만 증간된 연산량으로 인하여 다른 프로세스를 방해할 수 있습니다.
|
||||
4kHz 이상은 STM32H7 프로세서 이상의 컨트롤러에서만 권장됩니다 (2kHz 값은 성능이 낮은 프로세서의 최대치입니다).
|
||||
- The IO chip (MAIN pins) adds about 5.4 ms latency compared to using the AUX pins (this does not apply to a _Pixracer_ or _Omnibus F4_, but does apply to a Pixhawk).
|
||||
To avoid the IO delay attach the motors to the AUX pins instead.
|
||||
- PWM output signal: enable [Dshot](../peripherals/dshot.md) by preference to reduce latency (or One-Shot if DShot is not supported).
|
||||
The protocol is selected for a group of outputs during [Actuator Configuration](../config/actuators.md).
|
||||
|
||||
아래에서는 저역 통과 필터의 효과에 대하여 설명합니다.
|
||||
|
||||
## 필터
|
||||
|
||||
The filtering pipeline for the controllers in PX4 is described below.
|
||||
|
||||
:::info
|
||||
Sampling and filtering is always performed at the full raw sensor rate (commonly 8kHz, depending on the IMU).
|
||||
:::
|
||||
|
||||
### On-chip DLPF for the Gyro Sensor
|
||||
|
||||
This is disabled on all chips where it can be disabled (if not, cutoff frequency is set to the highest level of the chip).
|
||||
|
||||
### Notch Filters
|
||||
|
||||
상당한 저주파 노이즈 스파이크가있는 설정 (예 : 로터 블레이드 통과 주파수의 고조파로 인한)은 노치 필터를 사용하여 신호가 저역 통과 필터로 전달되기 전에 신호를 제거하는 것이 좋습니다 (이러한 고조파는 다른 소음원으로 모터에서 비슷한 해로운 영향을 미칩니다).
|
||||
|
||||
Without the notch filter you'd have to set the low pass filter cutoff much lower (increasing the phase lag) in order to avoid passing this noise to the motors.
|
||||
|
||||
#### Static Notch Filters
|
||||
|
||||
One or two static notch filters on the gyro sensor data that are used to filter out narrow band noise, for example a bending mode of the airframe.
|
||||
|
||||
The static notch filters can be configured using:
|
||||
|
||||
- First notch filter: [IMU_GYRO_NF0_BW](../advanced_config/parameter_reference.md#IMU_GYRO_NF0_BW) and [IMU_GYRO_NF0_FRQ](../advanced_config/parameter_reference.md#IMU_GYRO_NF0_FRQ).
|
||||
- Second notch filter: [IMU_GYRO_NF1_BW](../advanced_config/parameter_reference.md#IMU_GYRO_NF1_BW) and [IMU_GYRO_NF1_FRQ](../advanced_config/parameter_reference.md#IMU_GYRO_NF1_FRQ).
|
||||
|
||||
:::info
|
||||
Only two notch filters are provided.
|
||||
Airframes with more than two frequency noise spikes typically clean the first two spikes with the notch filters, and subsequent spikes using the low pass filter.
|
||||
:::
|
||||
|
||||
#### Dynamic Notch Filters
|
||||
|
||||
Dynamic notch filters use ESC RPM feedback and/or the onboard FFT analysis.
|
||||
The ESC RPM feedback is used to track the rotor blade pass frequency and its harmonics, while the FFT analysis can be used to track a frequency of another vibration source, such as a fuel engine.
|
||||
|
||||
ESC RPM feedback requires ESCs capable of providing RPM feedback such as [DShot](../peripherals/esc_motors.md#dshot) with telemetry connected, a bidirectional DShot set up ([work in progress](https://github.com/PX4/PX4-Autopilot/pull/23863)), or [UAVCAN/DroneCAN ESCs](../dronecan/escs.md).
|
||||
Before enabling, make sure that the ESC RPM is correct.
|
||||
You might have to adjust the [pole count of the motors](../advanced_config/parameter_reference.md#MOT_POLE_COUNT).
|
||||
|
||||
The following parameters should be set to enable and configure dynamic notch filters:
|
||||
|
||||
| 매개변수 | 설명 |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <a href="IMU_GYRO_DNF_EN"></a>[IMU_GYRO_DNF_EN](../advanced_config/parameter_reference.md#IMU_GYRO_DNF_EN) | Enable IMU gyro dynamic notch filtering. `0`: ESC RPM, `1`: Onboard FFT. |
|
||||
| <a href="IMU_GYRO_FFT_EN"></a>[IMU_GYRO_FFT_EN](../advanced_config/parameter_reference.md#IMU_GYRO_FFT_EN) | Enable onboard FFT (required if `IMU_GYRO_DNF_EN` is set to `1`). |
|
||||
| <a href="IMU_GYRO_DNF_MIN"></a>[IMU_GYRO_DNF_MIN](../advanced_config/parameter_reference.md#IMU_GYRO_DNF_MIN) | Minimum dynamic notch frequency in Hz. |
|
||||
| <a href="IMU_GYRO_DNF_BW"></a>[IMU_GYRO_DNF_BW](../advanced_config/parameter_reference.md#IMU_GYRO_DNF_BW) | Bandwidth for each notch filter in Hz. |
|
||||
| <a href="IMU_GYRO_DNF_HMC"></a>[IMU_GYRO_DNF_HMC](../advanced_config/parameter_reference.md#IMU_GYRO_NF0_BW) | Number of harmonics to filter. |
|
||||
|
||||
### Low-pass Filter
|
||||
|
||||
A low pass filter on the gyro data can be configured with the [IMU_GYRO_CUTOFF](../advanced_config/parameter_reference.md#IMU_GYRO_CUTOFF) parameter.
|
||||
|
||||
제어 지연을 줄이기 위해 저역 통과 필터의 차단 주파수를 높이려고 합니다.
|
||||
The effect on latency of increasing `IMU_GYRO_CUTOFF` is approximated below.
|
||||
|
||||
| Cutoff (Hz) | 지연(대략). (ms) |
|
||||
| ------------------------------ | ------------------------------------------------------------------ |
|
||||
| 30 | 8 |
|
||||
| 60 | 3.8 |
|
||||
| 120 | 1.9 |
|
||||
|
||||
However this is a trade-off as increasing `IMU_GYRO_CUTOFF` will also increase the noise of the signal that is fed to the motors.
|
||||
모터 소음은 다음과 같은 결과를 가져옵니다.
|
||||
|
||||
- 모터와 ESC는 손상될 정도로 뜨거워 질 수 있습니다.
|
||||
- 모터가 계속 속도를 변경하므로 비행 시간이 단축됩니다.
|
||||
- 가시적인 임의의 작은 트위치.
|
||||
|
||||
### Low-pass Filter on D-term
|
||||
|
||||
D-term은 노이즈에 가장 취약하지만 대기 시간이 약간 증가해도 성능에 나쁜 영향을 주지 않습니다.
|
||||
For this reason the D-term has a separately-configurable low-pass filter, [IMU_DGYRO_CUTOFF](../advanced_config/parameter_reference.md#IMU_DGYRO_CUTOFF).
|
||||
|
||||
### Slew-rate Filter on Motor Outputs
|
||||
|
||||
An optional slew-rate filter on the motor outputs.
|
||||
This rate may be configured as part of the [Multicopter Geometry](../config/actuators.md#motor-geometry-multicopter) when configuring actuators (which in turn modifies the [CA_Rn_SLEW](../advanced_config/parameter_reference.md#CA_R0_SLEW) parameters for each motor `n`).
|
||||
|
||||
## 필터 튜닝
|
||||
|
||||
:::info
|
||||
최적의 필터 설정은 기체에 따라 달라집니다.
|
||||
기본값은 낮은 품질 설정에서도 작동하도록 보수적으로 설정됩니다.
|
||||
:::
|
||||
|
||||
First make sure to have the high-rate logging profile activated ([SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) parameter).
|
||||
[Flight Review](../getting_started/flight_reporting.md) will then show an FFT plot for the roll, pitch and yaw controls.
|
||||
|
||||
:::warning
|
||||
|
||||
- 기체의 심한 진동 문제를 필터 튜닝만으로 해결하는 것은 적절하지 않습니다.
|
||||
기체의 하드웨어 설정을 수정하는 것이 바람직합니다.
|
||||
- PID 게인, 특히 D가 진동으로 나타날 수 있으므로 너무 높게 설정되지 않았는 지 확인하십시오.
|
||||
|
||||
:::
|
||||
|
||||
필터 튜닝은 비행 로그를 검토하는 것이 제일 좋은 방법입니다.
|
||||
서로 다른 매개 변수를 사용하여 여러 차례 비행후 로그를 분석할 수 있지만, 별도의 로그 파일이 생성되도록 중간에 시동을 꺼야합니다.
|
||||
|
||||
The performed flight manoeuvre can simply be hovering in [Stabilized mode](../flight_modes_mc/manual_stabilized.md) with some rolling and pitching to all directions and some increased throttle periods.
|
||||
전체 시간은 30초를 넘지 않아도 됩니다.
|
||||
In order to better compare, the manoeuvre should be similar in all tests.
|
||||
|
||||
First tune the gyro filter [IMU_GYRO_CUTOFF](../advanced_config/parameter_reference.md#IMU_GYRO_CUTOFF) by increasing it in steps of 10 Hz while using a low D-term filter value ([IMU_DGYRO_CUTOFF](../advanced_config/parameter_reference.md#IMU_DGYRO_CUTOFF) = 30).
|
||||
Upload the logs to [Flight Review](https://logs.px4.io) and compare the _Actuator Controls FFT_ plot.
|
||||
노이즈가 눈에 띄게 증가하기 전에 차단 주파수를 설정하십시오 (60Hz 주변 및 그 이상의 주파수).
|
||||
|
||||
Then tune the D-term filter (`IMU_DGYRO_CUTOFF`) in the same way.
|
||||
Note that there can be negative impacts on performance if `IMU_GYRO_CUTOFF` and `IMU_DGYRO_CUTOFF` are set too far apart (the differences have to be significant though - e.g. D=15, gyro=80).
|
||||
|
||||
Below is an example for three different `IMU_DGYRO_CUTOFF` filter values (40Hz, 70Hz, 90Hz).
|
||||
90Hz에서는 일반적인 소음이 증가하기 시작하므로 (특히 롤의 경우) 차단 주파수 70Hz가 안전합니다.
|
||||

|
||||

|
||||

|
||||
|
||||
:::info
|
||||
The plot cannot be compared between different vehicles, as the y axis scale can be different.
|
||||
동일한 기체에서 일관적이며 비행 시간과는 무관합니다.
|
||||
:::
|
||||
|
||||
아래 다이어그램에 표시된 것과 같이 비행 플롯에 상당한 저주파 스파이크가 나타되는 경우에는 노치 필터를 사용하여 제거할 수 있습니다.
|
||||
In this case you might use the settings: [IMU_GYRO_NF0_FRQ=32](../advanced_config/parameter_reference.md#IMU_GYRO_NF0_FRQ) and [IMU_GYRO_NF0_BW=5](../advanced_config/parameter_reference.md#IMU_GYRO_NF0_BW) (note, this spike is narrower than usual).
|
||||
저역 통과 필터와 노치 필터는 독립적으로 조정할 수 있습니다 (즉, 저역 통과 필터를 조정하기 전에 노치 필터를 설정할 필요는 없습니다).
|
||||
|
||||

|
||||
|
||||
## 추가 팁
|
||||
|
||||
1. 허용 가능한 지연 시간은 기체 크기와 기대치에 따라 달라집니다.
|
||||
FPV racers typically tune for the absolute minimal latency (as a ballpark `IMU_GYRO_CUTOFF` around 120, `IMU_DGYRO_CUTOFF` of 50 to 80).
|
||||
For bigger vehicles latency is less critical and `IMU_GYRO_CUTOFF` of around 80 might be acceptable.
|
||||
|
||||
2. You can start tuning at higher `IMU_GYRO_CUTOFF` values (e.g. 100Hz), which might be desirable because the default tuning of `IMU_GYRO_CUTOFF` is set very low (30Hz).
|
||||
유일한 주의 사항은 위험을 알고 있어야한다는 것입니다.
|
||||
- 20 ~ 30 초 이상 비행하지 마십시오
|
||||
- 모터가 과열되지 않는 지 확인하십시오.
|
||||
- 위의 설명처럼 이상한 소리와 과도한 소음을 체크하십시오.
|
||||
@@ -0,0 +1,173 @@
|
||||
# 멀티콥터 설정
|
||||
|
||||
Multicopter configuration and calibration follows the same high level steps as other frames: selection of firmware, configuration of the frame including actuator/motor geometry and output mappings, sensor configuration and calibration, configuration of safety and other features, and finally tuning.
|
||||
|
||||
This topic explains how to configure a multicopter using selected topics from [Standard Configuration](../config/index.md), [Advanced Configuration](../advanced_config/index.md), and [Flight Controller Peripherals](../peripherals/index.md), along with multicopter-specific tuning topics.
|
||||
|
||||
:::info
|
||||
This topic is the recommended entry point when performing first-time configuration and calibration of a new multicopter frame.
|
||||
:::
|
||||
|
||||
## 펌웨어 설치 및 업데이트
|
||||
|
||||
The first step is to [load PX4 firmware](../config/firmware.md) onto your [flight controller](../flight_controller/index.md).
|
||||
This is most easily done using QGroundControl, which will automatically select appropriate firmware for your particular controller hardware.
|
||||
By default QGC will install the latest stable version of PX4, but you can choose beta or custom versions instead if needed.
|
||||
|
||||
Relevant topics:
|
||||
|
||||
- [Loading Firmware](../config/firmware.md)
|
||||
|
||||
## Frame Selection and Configuration
|
||||
|
||||
This section explains how to configure the vehicle type (multicopter), specific motor/flight control geometry, and motor outputs.
|
||||
|
||||
First [select a multicopter airframe](../config/airframe.md) (options are listed in [Airframe Reference > Copter](../airframes/airframe_reference.md#copter)).
|
||||
You should select the frame that matches your vehicle brand and model if one exists, and otherwise select the "Generic" frame type that most closely matches your geometry in terms of number of motors and their relative positions.
|
||||
For example, for a [Quadrotor X](../airframes/airframe_reference.md#quadrotor-x) frame you would look for the name of your frame in the list, and if it was not present select the [Generic Quadrotor X](../airframes/airframe_reference.md#copter_quadrotor_x_generic_quadcopter) frame.
|
||||
|
||||
:::info
|
||||
Any selected multicopter frame can be modified in the next step (actuator configuration) to add/remove motors and otherwise change the geometry, and to specify what flight controller outputs are connected to particular motors and the output properties.
|
||||
Selecting a frame that matches your vehicle reduces the configuration work required.
|
||||
|
||||
:::details
|
||||
How does this work (details)
|
||||
Selecting an airframe applies a [frame configuration file](../dev_airframes/adding_a_new_frame.md#adding-a-frame-configuration) that contains a predefined set of [parameters](../advanced_config/parameters.md), such as [CA_AIRFRAME=0](../advanced_config/parameter_reference.md#CA_AIRFRAME) for the vehicle type and [CA_ROTOR_COUNT](../advanced_config/parameter_reference.md#CA_ROTOR_COUNT) for the number of rotors.
|
||||
|
||||
A frame configuration can define everything about a vehicle, from it's geometry and output mappings, through to its tuning and calibration values.
|
||||
When you're bringing up a new vehicle though, the frame will usually contain a fairly minimal configuration:
|
||||
|
||||
- Frames named with "Generic" define the vehicle type, number of rotors, and "placeholder" rotor positions.
|
||||
After selecting the airframe you define the actual geometry and then configure outputs.
|
||||
- Frames named with model/brand will define the vehicle type, number of rotors, actual rotor positions, and motor directions.
|
||||
After selecting the airframe you usually still have to configure outputs.
|
||||
|
||||
:::
|
||||
|
||||
The next step is to define your vehicle [geometry](../config/actuators.md#motor-geometry-multicopter) (the number of motors and their relative positions) and [assign those motors](../config/actuators.md#actuator-outputs) to the physical outputs that they are wired to on your flight controller (both of these are covered in [Actuator Configuration and Testing](../config/actuators.md)).
|
||||
|
||||
If using PWM ESCs and OneShot ESCs (but not DShot and DroneCAN/Cyphal ESC) you should then perform [ESC Calibration](../advanced_config/esc_calibration.md) before proceeding to [Motor Configuration](../config/actuators.md#motor-configuration).
|
||||
This ensures that all ESC provide exactly the same output for a given input (ideally we'd calibrate ESCs first, but you can't calibrate your ESCs until outputs are mapped).
|
||||
|
||||
The final step is [Motor Configuration](../config/actuators.md#motor-configuration):
|
||||
|
||||
- [Reverse any motors](../config/actuators.md#reversing-motors) that don't match the spin direction configured in the Geometry.
|
||||
For DShot ESC you can do this through the Acuator Testing UI.
|
||||
- PWM, OneShot, and CAN ESC, set the motor input limits for disarmed, low and high speed (not needed for DShot ESC)
|
||||
|
||||
Relevant topics:
|
||||
|
||||
- [Vehicle (Frame) Selection](../config/airframe.md) — Select vehicle type to match your frame.
|
||||
- [Actuator Configuration and Testing](../config/actuators.md) — Vehicle geometry, output mapping, motor configuration, testing.
|
||||
- [ESC Calibration](../advanced_config/esc_calibration.md) — Do between output mapping and motor configuration (topic above) for PWM and OneShot ESC.
|
||||
|
||||
## Sensor Setup and Calibration
|
||||
|
||||
PX4 most commonly relies on a magnetometer (compass) for direction information, a barometer for altitude, a gyroscope for body rates, an accelerometer for attitude and a GPS/GNSS for global position.
|
||||
Pixhawk flight controllers (and many others) have inbuilt magnetometer, accelerometer, gyroscope, and barometer.
|
||||
The inbuilt compass usually isn't particularly reliable, and it is common to also add an external compass (usually combined with a GNSS receiver in the same device).
|
||||
|
||||
We first need to set the [Sensor Orientation](../config/flight_controller_orientation.md), informing PX4 how the autopilot (and its inbuilt sensors) and external compasses are oriented relative to the vehicle.
|
||||
Generally you'll orient towards the front of the vehicle and not have to set anything.
|
||||
Once that is done we need to calibrate the compass(es), gyroscope, and accelerometer.
|
||||
|
||||
The core sensor setup is covered in these topics:
|
||||
|
||||
- [Sensor Orientation](../config/flight_controller_orientation.md)
|
||||
- [Compass](../config/compass.md)
|
||||
- [Gyroscope](../config/gyroscope.md)
|
||||
- [Accelerometer](../config/accelerometer.md)
|
||||
|
||||
PX4 can use other peripherals, such as distance sensors, optical flow sensors, traffic avoidance alarms, cameras, and so on:
|
||||
|
||||
- [Flight Controller Peripherals](../peripherals/index.md) - Setup specific sensors, optional sensors, actuators, and so on.
|
||||
|
||||
:::info
|
||||
Sensors that you don't need to calibrate/configure include:
|
||||
|
||||
- [Level Horizon](../config/level_horizon_calibration.md) calibration isn't usually needed if you have mounted the flight controller level.
|
||||
- Sensors that are not present, or that are not used by PX4 multicopter for flight control, such as [Airspeed sensors](../config/airspeed.md).
|
||||
- Sensors that don't need calibration, including: Barometers and GNSS.
|
||||
|
||||
:::
|
||||
|
||||
## Manual Control Setup
|
||||
|
||||
Pilots can control a vehicle manually using either a Radio Control (RC) System or a Joystick/Gamepad controller connected via QGroundControl.
|
||||
|
||||
:::info
|
||||
A manual control is essential in order to bring up a new vehicle safely!
|
||||
:::
|
||||
|
||||
Radio Control:
|
||||
|
||||
- [Radio Controller (RC) Setup](../config/radio.md)
|
||||
- [Flight Mode Configuration](../config/flight_mode.md)
|
||||
|
||||
Joystick/GamePad:
|
||||
|
||||
- [Joystick Setup](../config/joystick.md) (includes button/flight mode mapping)
|
||||
|
||||
## Safety Configuration
|
||||
|
||||
PX4 can be configured to automatically handle conditions such as low battery, losing radio or data links, flying too far from the home location, and so on:
|
||||
|
||||
- [Battery Estimation Tuning](../config/battery.md) — estimate remaining power (needed for low power failsafe).
|
||||
- [Safety Configuration (Failsafes)](../config/safety.md)
|
||||
|
||||
## 튜닝
|
||||
|
||||
Tuning is the final step, carried out only after most other setup and configuration is complete.
|
||||
|
||||
- Rate and attitude controllers:
|
||||
|
||||
- [Autotune](../config/autotune_mc.md) — Automates tuning PX4 rate and attitude controllers (recommended).
|
||||
|
||||
::: info
|
||||
Automatic tuning works on frames that have reasonable authority and dynamics around all the body axes.
|
||||
It has primarily been tested on racing quads and X500, and is expected to be less effective on tricopters with a tiltable rotor.
|
||||
|
||||
Manual tuning using these guides are only needed if there is a problem with autotune:
|
||||
|
||||
- [MC PID Tuning (Manual/Basic)](../config_mc/pid_tuning_guide_multicopter_basic.md) — Manual tuning basic how to.
|
||||
- [MC PID Tuning Guide (Manual/Detailed)](../config_mc/pid_tuning_guide_multicopter.md) — Manual tuning with detailed explanation.
|
||||
|
||||
|
||||
:::
|
||||
|
||||
- [MC Filter/Control Latency Tuning](../config_mc/filter_tuning.md) — Trade off control latency and noise filtering.
|
||||
|
||||
- [MC Setpoint Tuning (Trajectory Generator)](../config_mc/mc_trajectory_tuning.md)
|
||||
- [MC Jerk-limited Type Trajectory](../config_mc/mc_jerk_limited_type_trajectory.md)
|
||||
|
||||
- [Multicopter Racer Setup](../config_mc/racer_setup.md)
|
||||
|
||||
<!--
|
||||
- Explain what you have to tune on PX4, what you can tune, and what each topic covers
|
||||
- I expect we should start with an exhaustive list of the tuning you could want to do - such as position tuning, etc. Do we have one?
|
||||
-->
|
||||
|
||||
<!-- TBD this is just text for me to mine
|
||||
|
||||
AFAIK autotune was tested on various not so custom platforms e.g. X500, racer quad, Loong standard VTOL. I honestly used it only once on a tricopter and it worked for roll and pitch but the resulting yaw tuning was not stable. Since then it was improved but that's not merged yet :eyes: https://github.com/PX4/PX4-Autopilot/pull/21857
|
||||
Autotune was never tested on a Helicopter.
|
||||
can you in theory autotune frame with any number of motors?
|
||||
In theory yes but it needs to be able to have reasonable authority around all axes so I'd expect autotune to not work well for a monocopter without swashplate and so on. Probably also the controllers wouldn't work out of the box. I saw issues before with designs that tilt the rotor e.g. tricopter, bicopter, ... again
|
||||
|
||||
|
||||
will PX4 still understand how to autotune?
|
||||
Autotune should work for any vehicle that has reasonable authority and dynamics around all the body axes. A tiltable motor e.g. tricopter has at the least dynamics which are less tested with autotune.
|
||||
My assumption is that the mixing system can cope with whatever geometry you throw at it.
|
||||
Yes but it must be physically feasible. E.g. if you make a quadrotor where all motors turn the same way it will "deal" with it but that cannot work without very specific controllers. Same for a monocopter or a tricopter without swiveling one motor.
|
||||
-->
|
||||
|
||||
## See Also
|
||||
|
||||
- [QGroundControl > Setup](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/setup_view.html)
|
||||
- [Flight Controller Peripherals](../peripherals/index.md) - Setup specific sensors, optional sensors, actuators, and so on.
|
||||
- [Advanced Configuration](../advanced_config/index.md) - Factory/OEM calibration, configuring advanced features, less-common configuration.
|
||||
- Vehicle-Centric Config/Tuning:
|
||||
- **Multicopter Config/Tuning**
|
||||
- [Helicopter Config/Tuning](../config_heli/index.md)
|
||||
- [Fixed Wing Config/Tuning](../config_fw/index.md)
|
||||
- [VTOL Config/Tuning](../config_vtol/index.md)
|
||||
@@ -0,0 +1,78 @@
|
||||
# 멀티콥터 저크 제한 유형 궤적
|
||||
|
||||
저크 제한 궤적 유형은 사용자 스틱 입력 또는 미션 변경 (예 : 촬영, 매핑,화물)에 응답하여 부드러운 동작을 제공합니다.
|
||||
저크와 가속 제한이 항상 보장되는 부드러운 대칭 S-커브를 생성합니다.
|
||||
|
||||
This trajectory type is always enabled in [Mission mode](../flight_modes_mc/mission.md).
|
||||
To enable it in [Position mode](../flight_modes_mc/position.md) set the parameter [MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE) to `Smoothed velocity`.
|
||||
|
||||
:::info
|
||||
The jerk-limited type is not used _by default_ in position mode.
|
||||
더 빠른 응답이 필요한 기체(예 : 레이서 쿼드)에는 적합하지 않을 수 있습니다.
|
||||
:::
|
||||
|
||||
## 궤적 생성기
|
||||
|
||||
아래의 그래프는 다음과 같은 제약 조건을 가진 일반적인 저크 제한 프로필을 나타냅니다.
|
||||
|
||||
- `jMax`: maximum jerk
|
||||
- `a0`: initial acceleration
|
||||
- `aMax`: maximum acceleration
|
||||
- `a3`: final acceleration (always 0)
|
||||
- `v0`: initial velocity
|
||||
- `vRef`: desired velocity
|
||||
|
||||
The constraints `jMax`, `aMax` are configurable by the user via parameters and can be different in manual position control and auto mode.
|
||||
|
||||
결과 속도 프로파일을 "S-Curve"라고 합니다.
|
||||
|
||||

|
||||
|
||||
## 수동 모드
|
||||
|
||||
In manual position mode, the sticks are mapped to velocity where a full XY-stick deflection corresponds to [MPC_VEL_MANUAL](../advanced_config/parameter_reference.md#MPC_VEL_MANUAL) and a full Z-stick deflection corresponds to [MPC_Z_VEL_MAX_UP](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_UP) (upward motion) or [MPC_Z_VEL_MAX_DN](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_DN) (downward motion).
|
||||
|
||||
### 제약 조건
|
||||
|
||||
XY 평면
|
||||
|
||||
- `jMax`: [MPC_JERK_MAX](../advanced_config/parameter_reference.md#MPC_JERK_MAX)
|
||||
- `aMax`: [MPC_ACC_HOR_MAX](../advanced_config/parameter_reference.md#MPC_ACC_HOR_MAX)
|
||||
|
||||
Z축
|
||||
|
||||
- `jMax`: [MPC_JERK_MAX](../advanced_config/parameter_reference.md#MPC_JERK_MAX)
|
||||
- `aMax` (upward motion): [MPC_ACC_UP_MAX](../advanced_config/parameter_reference.md#MPC_ACC_UP_MAX)
|
||||
- `aMax` (downward motion): [MPC_ACC_DOWN_MAX](../advanced_config/parameter_reference.md#MPC_ACC_DOWN_MAX)
|
||||
|
||||
## 자동 모드
|
||||
|
||||
In auto mode, the desired velocity is [MPC_XY_CRUISE](../advanced_config/parameter_reference.md#MPC_XY_CRUISE) but this value is automatically adjusted depending on the distance to the next waypoint, the maximum possible velocity in the waypoint and the maximum desired acceleration and jerk.
|
||||
The vertical speed is defined by [MPC_Z_V_AUTO_UP](../advanced_config/parameter_reference.md#MPC_Z_V_AUTO_UP) (upward motion) and [MPC_Z_V_AUTO_DN](../advanced_config/parameter_reference.md#MPC_Z_V_AUTO_DN) (downward motion).
|
||||
|
||||
### 제약 조건
|
||||
|
||||
XY 평면
|
||||
|
||||
- `jMax`: [MPC_JERK_AUTO](../advanced_config/parameter_reference.md#MPC_JERK_AUTO)
|
||||
- `aMax`: [MPC_ACC_HOR](../advanced_config/parameter_reference.md#MPC_ACC_HOR)
|
||||
|
||||
Z축
|
||||
|
||||
- `jMax`: [MPC_JERK_AUTO](../advanced_config/parameter_reference.md#MPC_JERK_AUTO)
|
||||
- `aMax` (upward motion): [MPC_ACC_UP_MAX](../advanced_config/parameter_reference.md#MPC_ACC_UP_MAX)
|
||||
- `aMax` (downward motion): [MPC_ACC_DOWN_MAX](../advanced_config/parameter_reference.md#MPC_ACC_DOWN_MAX)
|
||||
|
||||
웨이 포인트에 근접시 속도 증가 거리 :
|
||||
|
||||
- [MPC_XY_TRAJ_P](../advanced_config/parameter_reference.md#MPC_XY_TRAJ_P)
|
||||
|
||||
### 관련 매개변수
|
||||
|
||||
- [MPC_XY_VEL_MAX](../advanced_config/parameter_reference.md#MPC_XY_VEL_MAX)
|
||||
- [MPC_Z_VEL_MAX_UP](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_UP)
|
||||
- [MPC_Z_VEL_MAX_DN](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_DN)
|
||||
- [MPC_TKO_SPEED](../advanced_config/parameter_reference.md#MPC_TKO_SPEED)
|
||||
- [MPC_LAND_SPEED](../advanced_config/parameter_reference.md#MPC_LAND_SPEED)
|
||||
- [MPC_LAND_ALT1](../advanced_config/parameter_reference.md#MPC_LAND_ALT1)
|
||||
- [MPC_LAND_ALT2](../advanced_config/parameter_reference.md#MPC_LAND_ALT2)
|
||||
@@ -0,0 +1,76 @@
|
||||
# 멀티콥터 설정점 튜닝(궤적 생성기)
|
||||
|
||||
This document provides an overview of the multicopter tuning parameters that change the _user experience_: how fast the vehicle reacts to stick movements or direction changes in missions, the maximum allowed velocity, etc.
|
||||
|
||||
In other words, this topic explains how to tune the parameters that affect the value of a _desired setpoint_ rather than those that affect how well the vehicle _tracks_ the setpoint).
|
||||
|
||||
이러한 설정값을 생성하는 알고리즘을 "궤적 생성기"라고 합니다.
|
||||
|
||||
:::warning
|
||||
This guide is for advanced users/experts.
|
||||
:::
|
||||
|
||||
:::tip
|
||||
Follow the instructions in the [Multicopter PID Tuning Guide](../config_mc/pid_tuning_guide_multicopter.md) _before_ doing any of the tuning described here.
|
||||
이러한 튜닝 매개변수를 사용하여 잘못된 추적이나 진동을 수정하지 마십시오!
|
||||
:::
|
||||
|
||||
## 개요
|
||||
|
||||
The input to the P/PID controller is a _desired setpoint_ that the vehicle should attempt to track.
|
||||
[PID Tuning](../config_mc/pid_tuning_guide_multicopter.md) ("Lower level tuning") aims to reduce the error between the desired setpoint and the estimate of the vehicle state.
|
||||
|
||||
The _desired setpoint_ passed to the P/PID controller is itself calculated from a _demanded setpoint_ based on a stick position (in RC modes) or from a mission command.
|
||||
요구되는 설정값은 빨리 변경 될 수 있습니다 (예 : 사용자가 스틱을 "단계" 0에서 최대값으로 이동하는 경우).
|
||||
원하는 설정값이 "램프"로 변경되면 기체의 비행 특성이 더 좋아집니다.
|
||||
|
||||
_Setpoint value tuning_ ("higher level tuning") is used to specify the mapping between the _demanded_ and the _desired_ setpoints - i.e. defining the "ramp" at which the desired setpoint follows the demanded setpoint.
|
||||
|
||||
:::tip
|
||||
Poorly tuned [P/PID Gains](../config_mc/pid_tuning_guide_multicopter.md) can lead to instability.
|
||||
Poorly tuned _setpoint values_ cannot result in instability, but may result in either very jerky or very unresponsive reactions to setpoint changes.
|
||||
:::
|
||||
|
||||
<a id="modes"></a>
|
||||
|
||||
## 비행 모드 궤적 지원
|
||||
|
||||
[Mission mode](../flight_modes_mc/mission.md) used the [Jerk-limited](../config_mc/mc_jerk_limited_type_trajectory.md) trajectory all the time.
|
||||
|
||||
[Position mode](../flight_modes_mc/position.md) supports the [implementations](#position-mode-implementations) listed below.
|
||||
It uses the acceleration based mapping by default; other types can be set using [MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE).
|
||||
|
||||
[Altitude mode](../flight_modes_mc/altitude.md) similarly supports the [implementations](#altitude-mode-implementations) selected by [MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE), but _only_ for smoothing the vertical component (i.e. when controlling the altitude).
|
||||
|
||||
다른 모드는 궤도 튜닝을 지원하지 않습니다.
|
||||
|
||||
## Position Mode Implementations
|
||||
|
||||
The following list provides an _overview_ of the different implementations of how the stick input is interpreted and turned into trajectory setpoints:
|
||||
|
||||
- Acceleration based (Default)
|
||||
- Horizontal stick input mapped to acceleration setpoints.
|
||||
- Intuitive stick feel because it's like pushing the vehicle around.
|
||||
- No unexpected tilt changes upon reaching travel speed velocity.
|
||||
- Vertical stick input mapped with jerk-limited trajectory.
|
||||
- Set in position mode using `MPC_POS_MODE=Acceleration based`.
|
||||
- [Jerk-limited](../config_mc/mc_jerk_limited_type_trajectory.md)
|
||||
- Used when smooth motion is required (e.g.: filming, mapping, cargo).
|
||||
- Generates symmetric smooth S-curves where the jerk and acceleration limits are always guaranteed.
|
||||
- May not be suitable for vehicles/use-cases that require a faster response - e.g. race quads.
|
||||
- Set in position mode using `MPC_POS_MODE=Smoothed velocity`.
|
||||
- **Simple position control**
|
||||
- Sticks map directly to velocity setpoints without smoothing.
|
||||
- Useful for velocity control tuning.
|
||||
- Set in position mode using `MPC_POS_MODE=Direct velocity`.
|
||||
|
||||
## Altitude Mode Implementations
|
||||
|
||||
Analogously to [position mode implementations](#position-mode-implementations) these are the implementations for interpreting vertical stick input:
|
||||
|
||||
- [Jerk-limited](../config_mc/mc_jerk_limited_type_trajectory.md)
|
||||
- Smoothed vertical input.
|
||||
- Set in altitude mode with `MPC_POS_MODE` Smoothed velocity or Acceleration based.
|
||||
- **Simple altitude control**
|
||||
- Unsmoothed vertical input.
|
||||
- Set in altitude mode only when using `MPC_POS_MODE=Direct velocity`.
|
||||
@@ -0,0 +1,294 @@
|
||||
# Multicopter PID Tuning Guide (Manual/Advanced)
|
||||
|
||||
PX4 컨트롤러의 튜닝 방법에 대한 자세한 정보를 제공합니다.
|
||||
|
||||
:::tip
|
||||
[Autotune](../config/autotune_mc.md) is recommended for tuning the vehicles _around the hover thrust point_, as the approach described is intuitive, easy, and fast.
|
||||
이것은 대부분의 기체에 필요합니다.
|
||||
:::
|
||||
|
||||
호버 추력 지점 주변의 튜닝이 충분하지 않을 때 이 가이드를 사용하십시오 (예 : 더 높은 추력에서 비선형성 및 진동이 방생하는 기체).
|
||||
It is also useful for a deeper understanding of how the basic tuning works, and to understand how to use the [airmode](#airmode-mixer-saturation) setting.
|
||||
|
||||
## 튜닝 단계
|
||||
|
||||
:::info
|
||||
For safety reasons, the default gains are set to low values.
|
||||
적절한 제어 응답을 얻기 위해서는 게인 값을 적절하게 증가시켜야 합니다.
|
||||
:::
|
||||
|
||||
튜닝시 준수할 일반적인 사항은 아래와 같습니다.
|
||||
|
||||
- 큰 이득은 위험한 진동을 발생시킬 수 있으므로, 모든 이득은 매우 천천히 증가시켜야합니다!
|
||||
일반적으로 반복당 이득을 20~30%씩 증가시키고, 최종 미세 조정을 위해 5~10%로 줄입니다.
|
||||
- 매개변수를 변경하기 전에 착륙시키십시오.
|
||||
스로틀을 천천히 증가시키고 진동을 점검하십시오.
|
||||
- Tune the vehicle around the hovering thrust point, and use the [thrust curve parameter](#thrust-curve) to account for thrust non-linearities or high-thrust oscillations.
|
||||
- Optionally enable the high-rate logging profile with the [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) parameter so you can use the log to evaluate the rate and attitude tracking performance (the option can be disabled afterwards).
|
||||
|
||||
:::warning
|
||||
Always disable [MC_AIRMODE](../advanced_config/parameter_reference.md#MC_AIRMODE) when tuning a vehicle.
|
||||
:::
|
||||
|
||||
### 속도 컨트롤러
|
||||
|
||||
The rate controller is the inner-most loop with three independent PID controllers to control the body rates (roll, pitch, yaw).
|
||||
|
||||
:::info
|
||||
A well-tuned rate controller is very important as it affects _all_ flight modes.
|
||||
A badly tuned rate controller will be visible in [Position mode](../flight_modes_mc/position.md), for example, as "twitches" or oscillations (the vehicle will not hold perfectly still in the air).
|
||||
:::
|
||||
|
||||
#### 속도 컨트롤러 아키텍처/양식
|
||||
|
||||
PX4 supports two (mathematically equivalent) forms of the PID rate controller in a single "mixed" implementation: [Parallel](#parallel-form) and [Standard](#standard-form).
|
||||
|
||||
Users can select the form that is used by setting the proportional gain for the other form to "1" (i.e. in the diagram below set **K** to 1 for the parallel form, or **P** to 1 for the standard form - this will replace either the K or P blocks with a line).
|
||||
|
||||

|
||||
|
||||
<!-- The drawing is on draw.io: https://drive.google.com/file/d/1hXnAJVRyqNAdcreqNa5W4PQFkYnzwgOO/view?usp=sharing -->
|
||||
|
||||
- _G(s)_ represents the angular rates dynamics of a vehicle
|
||||
- _r_ is the rate setpoint
|
||||
- _y_ is the body angular rate (measured by a gyro)
|
||||
- _e_ is the error between the rate setpoint and the measured rate
|
||||
- _u_ is the output of the PID controller
|
||||
|
||||
두 가지 형식이 아래에 기술되어 있습니다.
|
||||
|
||||
:::info
|
||||
The derivative term (**D**) is on the feedback path in order to avoid an effect known as the [derivative kick](http://brettbeauregard.com/blog/2011/04/improving-the-beginner%E2%80%99s-pid-derivative-kick/).
|
||||
:::
|
||||
|
||||
:::tip
|
||||
더 자세한 정보는 다음을 참고하십시오.
|
||||
|
||||
- [Not all PID controllers are the same](https://www.controleng.com/articles/not-all-pid-controllers-are-the-same/) (www.controleng.com)
|
||||
- [PID controller > Standard versus parallel (ideal) PID form](https://en.wikipedia.org/wiki/PID_controller#Standard_versus_parallel_\(ideal\)_form) (Wikipedia)
|
||||
|
||||
:::
|
||||
|
||||
##### 병렬 형식
|
||||
|
||||
The _parallel form_ is the simplest form, and is (hence) commonly used in textbooks.
|
||||
이 경우 컨트롤러의 출력은 간단한 비례, 적분 및 미분 동작의 합입니다.
|
||||
|
||||

|
||||
|
||||
##### 표준 형식
|
||||
|
||||
이 형식은 병렬 형식과 수학적으로 동일하지만 주요 이점은 (반 직관적으로 보일지라도) 비례 이득 튜닝을 적분과 미분 이득에서 분리하는 것입니다.
|
||||
즉, 비슷한 크기와 관성을 가진 드론의 이득을 취하고 K 이득을 조정하여 적절하게 비행하는 방법으로 새로운 플랫폼을 쉽게 조정할 수 있습니다.
|
||||
|
||||

|
||||
|
||||
#### 속도 PID 튜닝
|
||||
|
||||
PID 속도 컨트롤러 튜닝 매개 변수는 다음과 같습니다.
|
||||
|
||||
- Roll rate control ([MC_ROLLRATE_P](../advanced_config/parameter_reference.md#MC_ROLLRATE_P), [MC_ROLLRATE_I](../advanced_config/parameter_reference.md#MC_ROLLRATE_I), [MC_ROLLRATE_D](../advanced_config/parameter_reference.md#MC_ROLLRATE_D), [MC_ROLLRATE_K](../advanced_config/parameter_reference.md#MC_ROLLRATE_K))
|
||||
- Pitch rate control ([MC_PITCHRATE_P](../advanced_config/parameter_reference.md#MC_PITCHRATE_P), [MC_PITCHRATE_I](../advanced_config/parameter_reference.md#MC_PITCHRATE_I), [MC_PITCHRATE_D](../advanced_config/parameter_reference.md#MC_PITCHRATE_D), [MC_PITCHRATE_K](../advanced_config/parameter_reference.md#MC_PITCHRATE_K))
|
||||
- Yaw rate control ([MC_YAWRATE_P](../advanced_config/parameter_reference.md#MC_YAWRATE_P), [MC_YAWRATE_I](../advanced_config/parameter_reference.md#MC_YAWRATE_I), [MC_YAWRATE_D](../advanced_config/parameter_reference.md#MC_YAWRATE_D), [MC_YAWRATE_K](../advanced_config/parameter_reference.md#MC_YAWRATE_K))
|
||||
|
||||
The rate controller can be tuned in [Acro mode](../flight_modes_mc/acro.md) or [Stabilized mode](../flight_modes_mc/manual_stabilized.md):
|
||||
|
||||
- _Acro mode_ is preferred because it allows for isolated rate control testing.
|
||||
However it is significantly harder to pilot.
|
||||
|
||||
::: warning
|
||||
If you choose this mode, you must [disable all stick expo and have reasonable maximum rates for all axes](../flight_modes_mc/acro.md#stick-input-mapping):
|
||||
|
||||
- `MC_ACRO_EXPO` = 0, `MC_ACRO_EXPO_Y` = 0, `MC_ACRO_SUPEXPO` = 0,
|
||||
`MC_ACRO_SUPEXPOY` = 0
|
||||
- `MC_ACRO_P_MAX` = 200, `MC_ACRO_R_MAX` = 200
|
||||
- `MC_ACRO_Y_MAX` = 100
|
||||
|
||||
For PX4 v1.15 and later the defaults are set for this purpose to a maximum rate of 100°/s linear mapping for all axes.
|
||||
|
||||
:::
|
||||
|
||||
- _Stabilized mode_ is simpler to fly, but it is also much more difficult to distinguish if attitude or rate controller causes a certain behavior.
|
||||
|
||||
기체 비행이 되지 않는 경우:
|
||||
|
||||
- If there are strong oscillations when first trying to takeoff (to the point where it does not fly), decrease all **P** and **D** gains until it takes off.
|
||||
- If the reaction to RC movement is minimal, increase the **P** gains.
|
||||
|
||||
The actual tuning is roughly the same in _Manual mode_ or _Acro mode_:
|
||||
You iteratively tune the **P** and **D** gains for roll and pitch, and then the **I** gain.
|
||||
처음에는 롤과 피치에 동일한 값을 사용할 수 있으며, 좋은 값을 얻은 후에는 롤과 피치 응답을 개별적으로 확인하여 미세 조정할 수 있습니다 (기체가 대칭인 경우 필요하지 않음).
|
||||
For yaw it is very similar, except that **D** can be left at 0.
|
||||
|
||||
##### 비례 이득 (P/K)
|
||||
|
||||
The proportional gain is used to minimize the tracking error (below we use **P** to refer to both **P** or **K**).
|
||||
빠른 응답을 담당하므로 가능한 높게 설정하여야 하지만, 진동이 발생하지 않아야 합니다.
|
||||
|
||||
- If the **P** gain is too high: you will see high-frequency oscillations.
|
||||
- If the **P** gain is too low:
|
||||
- 기체가 입력 변화에 느리게 반응합니다.
|
||||
- In _Acro mode_ the vehicle will drift, and you will constantly need to correct to keep it level.
|
||||
|
||||
##### 미분 이득 (D)
|
||||
|
||||
The **D** (derivative) gain is used for rate damping.
|
||||
오버 슈트를 제거하기 위하여 적절하게 높은 값으로 설정합니다.
|
||||
|
||||
- If the **D** gain is too high: the motors become twitchy (and maybe hot), because the **D** term amplifies noise.
|
||||
- If the **D** gain is too low: you see overshoots after a step-input.
|
||||
|
||||
일반적인 값은 다음과 같습니다.
|
||||
|
||||
- standard form (**P** = 1): between 0.01 (4" racer) and 0.04 (500 size), for any value of **K**
|
||||
- parallel form (**K** = 1): between 0.0004 and 0.005, depending on the value of **P**
|
||||
|
||||
##### 적분 이득 (I)
|
||||
|
||||
The **I** (integral) gain keeps a memory of the error. The **I** term increases when the desired rate is not reached over some time.
|
||||
It is important (especially when flying _Acro mode_), but it should not be set too high.
|
||||
|
||||
- I 게인이 너무 높으면 느린 진동이 나타납니다.
|
||||
- If the I gain is too low: this is best tested in _Acro mode_, by tilting the vehicle to one side about 45 degrees, and keeping it like that.
|
||||
같은 각도를 유지하여야 합니다.
|
||||
If it drifts back, increase the **I** gain.
|
||||
A low **I** gain is also visible in a log, when there is an offset between the desired and the actual rate over a longer time.
|
||||
|
||||
일반적인 값은 다음과 같습니다.
|
||||
|
||||
- standard form (**P** = 1): between 0.5 (VTOL plane), 1 (500 size) and 8 (4" racer), for any value of **K**
|
||||
- parallel form (**K** = 1): between 0.3 and 0.5 if **P** is around 0.15
|
||||
The pitch gain usually needs to be a bit higher than the roll gain.
|
||||
|
||||
#### 테스트 절차
|
||||
|
||||
To test the current gains, provide a fast **step-input** when hovering and observe how the vehicle reacts.
|
||||
명령을 즉시 반등하여야 하며, 진동이나 오버슛이 발생하지 않아야 합니다 ( '고정'된 느낌).
|
||||
|
||||
예를 들어 롤용 스텝 입력을 만들 수 있습니다. 롤 스틱을 한쪽으로 빠르게 밀었다가 다시 빠르게 놓아줍니다 (스프링이므로 스틱을 놓으면 스틱도 진동합니다. 잘 튜닝된 기체는 이러한 진동에 반응합니다).
|
||||
|
||||
:::info
|
||||
A well-tuned vehicle in _Acro mode_ will not tilt randomly towards one side, but keeps the attitude for tens of seconds even without any corrections.
|
||||
:::
|
||||
|
||||
#### 로그
|
||||
|
||||
로그는 추적 성능 평가에 많은 도움이 됩니다.
|
||||
다음은 롤과 요 속도 추적의 좋은 예입니다.
|
||||
|
||||

|
||||

|
||||
|
||||
다음은 극단적인 스텝 입력을 생성하는 몇 번의 플립으로 롤 속도를 추적하는 좋은 예입니다.
|
||||
You can see that the vehicle overshoots only by a very small amount:
|
||||

|
||||
|
||||
### 자세 컨트롤러
|
||||
|
||||
이것은 방향과 아래의 튜닝 매개변수를 사용하여 기체의 비율의 출력을 제어합니다.
|
||||
|
||||
- Roll control ([MC_ROLL_P](../advanced_config/parameter_reference.md#MC_ROLL_P))
|
||||
- Pitch control ([MC_PITCH_P](../advanced_config/parameter_reference.md#MC_PITCH_P))
|
||||
- Yaw control ([MC_YAW_P](../advanced_config/parameter_reference.md#MC_YAW_P))
|
||||
|
||||
자세 컨트롤러의 튜닝은 비교적 간단합니다.
|
||||
대부분 기본값을 변경할 필요가 없습니다.
|
||||
|
||||
To tune the attitude controller, fly in _Stabilized mode_ and increase the **P** gains gradually.
|
||||
진동이나 오버슈트가 나타나는 것은 게인이 너무 높은 것입니다.
|
||||
|
||||
아래의 매개변수를 조정할 수 있습니다. 세 축의 최대 회전 속도를 결정합니다.
|
||||
|
||||
- Maximum roll rate ([MC_ROLLRATE_MAX](../advanced_config/parameter_reference.md#MC_ROLLRATE_MAX))
|
||||
- Maximum pitch rate ([MC_PITCHRATE_MAX](../advanced_config/parameter_reference.md#MC_PITCHRATE_MAX))
|
||||
- Maximum yaw rate ([MC_YAWRATE_MAX](../advanced_config/parameter_reference.md#MC_YAWRATE_MAX))
|
||||
|
||||
### 추력 곡선
|
||||
|
||||
위의 튜닝은 호버 스로틀 주위의 성능을 최적화합니다.
|
||||
그러나 풀 스로틀로 갈 때 진동이 시작될 수 있습니다.
|
||||
|
||||
To counteract that, adjust the **thrust curve** with the [THR_MDL_FAC](../advanced_config/parameter_reference.md#THR_MDL_FAC) parameter.
|
||||
|
||||
:::info
|
||||
The rate controller might need to be re-tuned if you change this parameter.
|
||||
:::
|
||||
|
||||
The mapping from motor control signals (e.g. PWM) to expected thrust is linear by default — setting `THR_MDL_FAC` to 1 makes it quadratic.
|
||||
그 사이의 값은 둘의 선형 보간을 사용합니다. 일반적인 값은 0.3 ~ 0.5 입니다.
|
||||
|
||||
If you have a [thrust stand](https://www.tytorobotics.com/pages/series-1580-1585) <!-- RCbenchmark Series 1580/1585 Test Stand --> (or can otherwise _measure_ thrust and motor commands simultaneously), you can determine the relationship between the motor control signal and the motor's actual thrust, and fit a function to the data.
|
||||
The motor command in PX4 called `actuator_output` can be PWM, Dshot, UAVCAN commands for the respective ESCs in use.
|
||||
[This Notebook][THR_MDL_FAC_Calculation] shows one way for how the thrust model factor `THR_MDL_FAC` may be calculated from previously measured thrust and PWM data.
|
||||
이 플롯에 표시된 곡선은 α k, 실제 단위 (kgf 및 μs)로 추력과 PWM을 표시합니다.
|
||||
In order to simplify the curve fit problem, you can normalize the data between 0 and 1 to find `k` without having to estimate α (α = 1, when the data is normalized).
|
||||
|
||||
] <!-- removed link to THR_MDL_FAC_Calculation as causes problems for link checker -->
|
||||
|
||||
:::info
|
||||
The mapping between PWM and static thrust depends highly on the battery voltage.
|
||||
:::
|
||||
|
||||
An alternative way of performing this experiment is to make a scatter plot of the normalized motor command and thrust values, and iteratively tune the thrust curve by experimenting with the `THR_MDL_FAC` parameter.
|
||||
해당 그래프의 예는 아래와 같습니다.
|
||||
|
||||

|
||||
|
||||
원시 모터 명령 및 추력 데이터가 실험의 전체 범위에 걸쳐 수집되는 경우, 다음 방정식을 사용하여 데이터를 정규화할 수 있습니다.
|
||||
|
||||
_normalized_value = ( raw_value - min (raw_value) ) / ( max ( raw_value ) - min ( raw_value ) )_
|
||||
|
||||
정규화된 값의 산점도를 얻은 후 방정식을 플로팅하여 곡선을 일치시킬 수 있습니다.
|
||||
|
||||
_rel_thrust = ( `THR_MDL_FAC` ) _ rel_signal^2 + ( 1 - `THR_MDL_FAC` ) \* rel_signal\*
|
||||
|
||||
0과 1 사이의 정규화된 모터 명령 값의 선형 범위.
|
||||
Note that this is the equation that is used in the firmware to map thrust and motor command, as shown in the [THR_MDL_FAC](../advanced_config/parameter_reference.md#THR_MDL_FAC) parameter reference.
|
||||
Here, _rel_thrust_ is the normalized thrust value between 0 and 1, and _rel_signal_ is the normalized motor command signal value between 0 and 1.
|
||||
|
||||
In this example above, the curve seemed to fit best when `THR_MDL_FAC` was set to 0.7.
|
||||
|
||||
[THR_MDL_FAC_Calculation]: https://github.com/PX4/PX4-user_guide/blob/main/assets/config/mc/ThrustCurve.ipynb
|
||||
|
||||
스러스트 스탠드에 접근할 수 없는 경우, 경험적으로 모델링 요소를 조정할 수 있습니다.
|
||||
0.3부터 시작하여 한 번에 0.1 씩 늘립니다.
|
||||
너무 높으면, 낮은 스로틀 값에서 진동이 감지되기 시작합니다.
|
||||
너무 낮으면, 더 높은 스로틀 값에서 진동이 나타납니다.
|
||||
|
||||
<a id="airmode"></a>
|
||||
|
||||
### Airmode & Mixer Saturation
|
||||
|
||||
속도 컨트롤러는 세 축 (roll, pitch 및 yaw)에 대한 토크 명령과 스칼라 추력값을 출력하며, 이는 개별 모터 추력 명령으로 변환하여야 합니다.
|
||||
이 단계를 믹싱이라고 합니다.
|
||||
|
||||
예를 들어 낮은 추력과 큰 롤 명령의 경우 모터 명령 중 하나가 음수가 될 수 있습니다 (비슷하게 100 % 이상이 될 수 있음).
|
||||
이것은 믹서 포화입니다.
|
||||
기체가 이 명령을 실행하는 것은 물리적으로 불가능합니다 (가역 모터 제외).
|
||||
PX4에는 이 문제를 해결하기 위한 두 가지 모드가 있습니다.
|
||||
|
||||
- 롤에 대한 명령된 토크를 줄여 모터 명령이 0 미만이 되지 않도록합니다 (에어 모드 비활성화 됨).
|
||||
명령된 추력이 0 인 극단적인 경우에는 더 이상 자세 보정이 가능하지 않으므로이 모드에 항상 최소 추력이 필요합니다.
|
||||
- 또는 명령된 추력을 증가시켜 모터 명령이 음수값이 되지 않도록 합니다(에어 모드 활성화).
|
||||
이것은 낮은 스로틀이나 제로 스로틀에서도 자세/속도를 정확하게 추적할 수 있는 큰 장점이 있습니다.
|
||||
일반적으로 비행 성능을 향상시킵니다.
|
||||
|
||||
그러나, 이는 스로틀이 0으로 감소하더라도 기체가 계속 상승하도록 총추력을 증가시킵니다.
|
||||
잘 조정되고 올바르게 작동하는 기체에는 제외하고, 너무 높은 P 조정 이득으로 인하여 기체가 강하게 진동할 때 발생할 수 있습니다.
|
||||
|
||||
두 모드는 두 모터에 대한 2D 그림과 롤 <span style="color:#9673A6">r</span>에 대한 토크 명령은 아래에 표시되어 있습니다.
|
||||
왼쪽 모터에서는 <span style="color:#9673A6">r</span>이 명령된 추력에 추가되고, 오른쪽 모터에서는 차감됩니다.
|
||||
모터 추력은 <span style="color:#6A9153">녹색</span>입니다.
|
||||
Airmode를 활성화하면 명령된 추력이 <span style="color:#B85450">b</span> 만큼 증가합니다.
|
||||
비활성화되면, <span style="color:#9673A6">r</span>이 감소합니다.
|
||||
|
||||

|
||||
|
||||
<!-- The drawing is on draw.io: https://drive.google.com/file/d/1N0qjbiJX6JuEk2I1-xFvigLEPKJRIjBP/view?usp=sharing
|
||||
On the first Tab
|
||||
-->
|
||||
|
||||
혼합이 상한선으로 포화되면, 명령된 추력이 감소되어 모터가 100 % 이상의 추력을 전달하지 않도록 합니다.
|
||||
이 동작은 Airmode 로직과 유사하며 Airmode 활성화 여부에 관계없이 적용됩니다.
|
||||
|
||||
Once your vehicle flies well you can enable Airmode via the [MC_AIRMODE](../advanced_config/parameter_reference.md#MC_AIRMODE) parameter.
|
||||
@@ -0,0 +1,150 @@
|
||||
# 멀티콥터 PID 튜닝 가이드
|
||||
|
||||
This tutorial explains how to _manually_ tune the PID loops on PX4 for all [multicopter setups](../airframes/airframe_reference.md#copter) (Quads, Hexa, Octo etc).
|
||||
|
||||
:::tip
|
||||
[Autotune](../config/autotune_mc.md) is recommended for most users, as it is far faster, easier and provides good tuning for most frames.
|
||||
예를 들어, 새로운 ESC 또는 모터에는 다른 튜닝 게인이 필요합니다.
|
||||
:::
|
||||
|
||||
Generally if you're using an appropriate [supported frame configuration](../airframes/airframe_reference.md#copter), the default tuning should allow you to fly the vehicle safely.
|
||||
Tuning is recommended for all new vehicle setups to get the _very best_ performance, because relatively small hardware and assembly changes can affect the gains required tuning gains for optimal flight.
|
||||
For example, different ESCs or motors change the optimal tuning gains.
|
||||
|
||||
## 소개
|
||||
|
||||
PX4 uses **P**roportional, **I**ntegral, **D**erivative (PID) controllers (these are the most widespread control technique).
|
||||
|
||||
The _QGroundControl_ **PID Tuning** setup provides real-time plots of the vehicle setpoint and response curves.
|
||||
The goal of tuning is to set the P/I/D values such that the _Response_ curve matches the _Setpoint_ curve as closely as possible (i.e. a fast response without overshoots).
|
||||
|
||||

|
||||
|
||||
컨트롤러는 계층화되어 있어 상위 수준의 컨트롤러 결과를 하위 수준의 컨트롤러로 전달합니다.
|
||||
The lowest-level controller is the **rate controller**, followed by the **attitude controller**, and finally the **velocity & position controller**.
|
||||
PID 튜닝은 다른 모든 컨트롤러에 영향을 미치므로 속도 컨트롤러부터 시작하여 동일한 순서로 수행해야합니다.
|
||||
|
||||
The testing procedure for each controller (rate, attitude, velocity/position) and axis (yaw, roll, pitch) is always the same: create a fast setpoint change by moving the sticks very rapidly and observe the response.
|
||||
가장 낮은 수준의 컨트롤러는 <strong x-id="1">속도 컨트롤러</strong>, <strong x-id="1">태도 컨트롤러</strong>, 마지막으로 <strong x-id="1">속도 & 위치 컨트롤러</strong> 입니다.
|
||||
|
||||
:::tip
|
||||
|
||||
- 속도 컨트롤러 조정이 가장 중요하며 잘 조정된 경우 다른 컨트롤러는 종종 약간의 조정만 필요하거나 필요하지 않습니다.
|
||||
- 일반적으로 롤 및 피치에 동일한 튜닝 게인을 사용할 수 있습니다.
|
||||
- 곡예/안정화/고도 모드를 사용하여 속도 컨트롤러 조정
|
||||
- Use [Position mode](../flight_modes_mc/position.md) to tune the _Velocity Controller_ and the _Position Controller_.
|
||||
Make sure to switch to the _Simple position control_ mode so you can generate step inputs.
|
||||

|
||||
|
||||
:::
|
||||
|
||||
## 전제 조건
|
||||
|
||||
- You have selected the closest matching [default frame configuration](../config/airframe.md) for your vehicle.
|
||||
이것은 이미 비행한 기체를 제공할 것입니다.
|
||||
|
||||
- You should have done an [ESC calibration](../advanced_config/esc_calibration.md).
|
||||
|
||||
- If using PWM outputs their minimum values should be set correctly in the [Actuator Configuration](../config/actuators.md).
|
||||
These need to be set low, but such that the **motors never stop** when the vehicle is armed.
|
||||
|
||||
This can be tested in [Acro mode](../flight_modes_mc/acro.md) or in [Stabilized mode](../flight_modes_mc/manual_stabilized.md):
|
||||
|
||||
- 프로펠러 제거
|
||||
- 기체에 시동을 걸고 스로틀을 최소로 내립니다.
|
||||
- 차량을 모든 방향으로 60도 정도 기울입니다.
|
||||
- 모터가 꺼져 있는 지 확인합니다.
|
||||
|
||||
- PWM 출력을 사용하는 경우 : <a href="../advanced_config/parameter_reference.md#PWM_MIN">PWM_MIN</a>이 올바르게 설정되었습니다.
|
||||
낮게 설정해야하지만 기체 시동시에는 <strong x-id="1">모터가 절대 멈추지 않도록</strong>합니다.
|
||||
|
||||
- Disable [MC_AIRMODE](../advanced_config/parameter_reference.md#MC_AIRMODE) before tuning a vehicle (there is an options for this in the PID tuning screen).
|
||||
|
||||
:::warning
|
||||
Poorly tuned vehicles are likely to be unstable, and easy to crash.
|
||||
Make sure to have assigned a [Kill switch](../config/safety.md#emergency-switches).
|
||||
:::
|
||||
|
||||
## 튜닝 절차
|
||||
|
||||
튜닝 절차는 다음과 같습니다.
|
||||
|
||||
1. Arm the vehicle, takeoff, and hover (typically in [Position mode](../flight_modes_mc/position.md)).
|
||||
|
||||
2. Open _QGroundControl_ **Vehicle Setup > PID Tuning**
|
||||

|
||||
|
||||
3. Select the **Rate Controller** tab.
|
||||
|
||||
4. Confirm that the airmode selector is set to **Disabled**
|
||||
|
||||
5. Set the _Thrust curve_ value to: 0.3 (PWM, power-based controllers) or 1 (RPM-based ESCs)
|
||||
|
||||
::: info
|
||||
For PWM, power-based and (some) UAVCAN speed controllers, the control signal to thrust relationship may not be linear.
|
||||
그 결과 호버 추력에서 최적의 튜닝은 차량이 강한 추력으로 작동시 최적이 아닐 수 있습니다.
|
||||
|
||||
추력 곡선 값을 사용하여 비선형성을 보상할 수 있습니다.
|
||||
|
||||
- For PWM controllers, 0.3 is a good default (which may benefit from [further tuning](../config_mc/pid_tuning_guide_multicopter.md#thrust-curve)).
|
||||
- RPM 기반 컨트롤러의 경우 1을 사용합니다 (2 차 추력 곡선이 있으므로 추가 튜닝이 필요하지 않음).
|
||||
|
||||
For more information see the [detailed PID tuning guide](../config_mc/pid_tuning_guide_multicopter.md#thrust-curve).
|
||||
|
||||
:::
|
||||
|
||||
6. Set the _Select Tuning_ radio button to: **Roll**.
|
||||
|
||||
7. (Optionally) Select the **Automatic Flight Mode Switching** checkbox.
|
||||
This will _automatically_ switch from [Position mode](../flight_modes_mc/position.md) to [Stabilised mode](../flight_modes_mc/manual_stabilized.md) when you press the **Start** button
|
||||
|
||||
8. For rate controller tuning switch to _Acro mode_, _Stabilized mode_ or _Altitude mode_ (unless automatic switching is enabled).
|
||||
|
||||
9. Select the **Start** button in order to start tracking the setpoint and response curves.
|
||||
|
||||
10. Rapidly move the _roll stick_ full range and observe the step response on the plots.
|
||||
:::tip
|
||||
Stop tracking to enable easier inspection of the plots.
|
||||
확대/축소/이동시 자동으로 발생합니다.
|
||||
Use the **Start** button to restart the plots, and **Clear** to reset them.
|
||||
|
||||
:::
|
||||
|
||||
11. Modify the three PID values using the sliders (for roll rate-tuning these affect `MC_ROLLRATE_K`, `MC_ROLLRATE_I`, `MC_ROLLRATE_D`) and observe the step response again.
|
||||
슬라이더를 움직이면 값이 기체에 저장됩니다.
|
||||
::: info
|
||||
The goal is for the _Response_ curve to match the _Setpoint_ curve as closely as possible (i.e. a fast response without overshoots).
|
||||
|
||||
:::
|
||||
The PID values can be adjusted as follows:
|
||||
- P (비례) 또는 K 이득 :
|
||||
- 더 많은 응답을 위해 이것을 늘리십시오.
|
||||
- 응답이 오버 슈팅 및/또는 진동하는 경우 감소합니다 (특정 지점까지 D 게인 증가도 도움이 됨).
|
||||
- D (미분) 이득 :
|
||||
- 오버슈트 및 진동을 줄이기 위해이 값을 늘릴 수 있습니다.
|
||||
- 소음을 증폭하고 모터가 뜨거워 질 수 있으므로 필요한 만큼만 늘리십시오.
|
||||
- I (적분) 이득 :
|
||||
- 정상 상태 오류를 줄이는 데 사용
|
||||
- 너무 낮으면 응답이 설정 값에 도달하지 못할 수 있습니다 (예 : 바람)
|
||||
- 너무 높으면 느린 진동이 발생할 수 있습니다.
|
||||
|
||||
12. 피치와 요에 대해 위의 튜닝 프로세스를 반복합니다.
|
||||
- Use _Select Tuning_ radio button to select the axis to tune
|
||||
- 적절한 스틱을 이동합니다 (예 : 피치 스틱, 요 스틱).
|
||||
- 피치 튜닝의 경우 롤과 동일한 값으로 시작하십시오.
|
||||
:::tip
|
||||
Use the **Save to Clipboard** and **Reset from Clipboard** buttons to copy the roll settings for initial pitch settings.
|
||||
|
||||
:::
|
||||
|
||||
13. 모든 축에서 자세 콘트롤러에 대하여 튜닝 프로세스를 반복하십시오.
|
||||
|
||||
14. Repeat the tuning process for the velocity and positions controllers (on all the axes).
|
||||
|
||||
- Use Position mode when tuning these controllers
|
||||
- Select the **Simple position control** option in the _Position control mode ..._ selector (this allows direct control for the generation of step inputs)
|
||||
|
||||

|
||||
|
||||
완료되었습니다 !
|
||||
설정을 종료하기 전에 에어 모드를 다시 활성화하여야 합니다.
|
||||
@@ -0,0 +1,153 @@
|
||||
# Multicopter Racer Setup
|
||||
|
||||
This page describes how to setup and configure a multicopter racer for optimal performance (in particular for [Acro mode](../flight_modes_mc/acro.md)).
|
||||
|
||||
레이서들은 빠른 기동을 위해 설계된 기체입니다.
|
||||
가능하면, 유경험자에게 도움을 받는 것이 좋습니다.
|
||||
|
||||
:::tip
|
||||
Many things described here can also be applied to improve the flight performance of other types of multicopters.
|
||||
:::
|
||||
|
||||
:::info
|
||||
A racer usually omits some sensors (e.g. GPS).
|
||||
결과적으로 사용 가능한 안전 장치 옵션은 적어지는 것입니다.
|
||||
:::
|
||||
|
||||
## 빌드 옵션
|
||||
|
||||
일반적으로 레이서는 일부 센서들을 사용하지 않습니다.
|
||||
|
||||
자이로와 가속도계만을 사용하는 최소 구성을 할 수 있습니다.
|
||||
|
||||
:::info
|
||||
If the board has an internal magnetometer, it should not be used (small racers are particularly prone to strong electromagnetic interference).
|
||||
:::
|
||||
|
||||
레이서에는 일반적으로 중량 중가 문제와 충돌시 파손 문제로 인하여 GPS가 없습니다 (GPS + 외부 자력계는 자기 간섭을 피하기 위해 고전류에서 멀리 떨어진 GPS 마스트에 배치해야합니다. 이는 쉽게 파손될 수 있음을 의미합니다.)
|
||||
|
||||
그러나 GPS를 추가시에는 초보자들에게 이로운 점이 몇 가지 있습니다.
|
||||
|
||||
- 위치 유지모드에서 기체가 한 곳에 머물 수 있습니다.
|
||||
방향을 잃거나 브레이크가 필요한 경우에 매우 편리합니다.
|
||||
또한 안전하게 착륙할 수 있습니다.
|
||||
- [Return mode](../flight_modes_mc/return.md) can be used, either on a switch or as RC loss/low battery failsafe.
|
||||
- 충돌시의 마지막 위치를 파악할 수 있습니다.
|
||||
- 로그에는 비행 트랙이 포함되어 있으므로 비행을 검토할 수 있습니다 (3D).
|
||||
이것은 곡예 비행 기술을 향상에 많은 도움이 됩니다.
|
||||
|
||||
:::info
|
||||
During aggressive acrobatic maneuvers the GPS can lose its position fix for a short time.
|
||||
If you switch into [position mode](../flight_modes_mc/position.md) during that time, [altitude mode](../flight_modes_mc/altitude.md) will be used instead until the position becomes valid again.
|
||||
:::
|
||||
|
||||
## 하드웨어 설정
|
||||
|
||||
다음 단락에서는 기체 제작시 몇 가지 중요한 사항에 대하여 설명합니다.
|
||||
If you need complete build instructions, you can follow the [QAV-R 5" KISS ESC Racer](../frames_multicopter/qav_r_5_kiss_esc_racer.md) build log.
|
||||
|
||||
### 진동 설정
|
||||
|
||||
진동을 줄이기 위한 여러가지 조립 방법이 있습니다.
|
||||
For example, the flight controller can be mounted with vibration dampening foam, or using [O-rings](../frames_multicopter/qav_r_5_kiss_esc_racer.md#mounting).
|
||||
|
||||
While there is no single best method, you will typically have fewer problems with vibrations if you use high-quality components (frame, motors, props) as for example used in the [QAV-R 5" KISS ESC Racer](../frames_multicopter/qav_r_5_kiss_esc_racer.md).
|
||||
|
||||
Make sure to use **balanced props**.
|
||||
|
||||
### 무게 중심
|
||||
|
||||
무게 중심이 추력 중심에서 최대한 가까워야 합니다.
|
||||
좌우 균형은 일반적으로 문제가 되지 않지만, 전후 균형은 문제가 될 수 있습니다.
|
||||
배터리의 적당한 위치를 표시하여 항상 같은 위치에 장착하는 것이 좋습니다.
|
||||
|
||||
:::info
|
||||
The integral term can account for an imbalanced setup, and a custom mixer can do that even better.
|
||||
그러나 기체 설정으로 불균형을 수정하는 방법이 제일 좋습니다.
|
||||
:::
|
||||
|
||||
## 소프트웨어 설정
|
||||
|
||||
레이서를 조립 후에는 소프트웨어를 설정하여야 합니다.
|
||||
|
||||
Go through the [Basic Configuration Guide](../config/index.md).
|
||||
In particular, set the [Airframe](../config/airframe.md) that most closely matches your frame (typically you will choose the [Generic 250 Racer](../airframes/airframe_reference.md#copter_quadrotor_x_generic_250_racer) airframe, which sets some racer-specific parameters by default).
|
||||
|
||||
중요한 매개 변수는 다음과 같습니다.
|
||||
|
||||
- Enable One-Shot or DShot by selecting the protocol for a group of outputs during [Actuator Configuration](../config/actuators.md).
|
||||
- Set the maximum roll-, pitch- and yaw rates for Stabilized mode as desired: [MC_ROLLRATE_MAX](../advanced_config/parameter_reference.md#MC_ROLLRATE_MAX), [MC_PITCHRATE_MAX](../advanced_config/parameter_reference.md#MC_PITCHRATE_MAX) and [MC_YAWRATE_MAX](../advanced_config/parameter_reference.md#MC_YAWRATE_MAX).
|
||||
The maximum tilt angle is configured with [MPC_MAN_TILT_MAX](../advanced_config/parameter_reference.md#MPC_MAN_TILT_MAX).
|
||||
- The minimum thrust [MPC_MANTHR_MIN](../advanced_config/parameter_reference.md#MPC_MANTHR_MIN) should be set to 0.
|
||||
|
||||
### 추정기
|
||||
|
||||
GPS를 사용하는 경우에는 이 섹션을 건너 뛰고 기본 추정기를 사용할 수 있습니다.
|
||||
그렇지 않으면 자력계나 기압계를 사용하지 않는 Q 자세 추정기로 전환하여야 합니다.
|
||||
|
||||
To enable it set [ATT_EN = 1](../advanced_config/parameter_reference.md#ATT_EN), [EKF2_EN =0 ](../advanced_config/parameter_reference.md#EKF2_EN) and [LPE_EN = 0](../advanced_config/parameter_reference.md#LPE_EN) (for more information see [Switching State Estimators](../advanced/switching_state_estimators.md#how-to-enable-different-estimators)).
|
||||
|
||||
Then change the following parameters:
|
||||
|
||||
- Set [SYS_HAS_MAG](../advanced_config/parameter_reference.md#SYS_HAS_MAG) to `0` if the system does not have a magnetometer.
|
||||
- Set [SYS_HAS_BARO](../advanced_config/parameter_reference.md#SYS_HAS_BARO) to `0` if the system does not have a barometer.
|
||||
- Configure the Q estimator: set [ATT_ACC_COMP](../advanced_config/parameter_reference.md#ATT_ACC_COMP) to `0`, [ATT_W_ACC](../advanced_config/parameter_reference.md#ATT_W_ACC) to 0.4 and [ATT_W_GYRO_BIAS](../advanced_config/parameter_reference.md#ATT_W_GYRO_BIAS) to 0.
|
||||
필요한 경우에 차후에 튜닝할 수 있습니다.
|
||||
|
||||
### 안전장치
|
||||
|
||||
Configure [RC loss and low battery failsafe](../config/safety.md).
|
||||
If you do not use a GPS, set the failsafe to **Lockdown**, which turns off the motors.
|
||||
차량이 시동이 켜지면 리모컨을 꺼서 프로펠러를 제거한 다음에, 벤치에서 RC 손실을 테스트합니다.
|
||||
|
||||
Make sure to assign a [kill switch](../config/safety.md#kill-switch) or an [arming switch](../config/safety.md#arm-disarm-switch).
|
||||
테스트하고 연습을 충분히 하여야 합니다.
|
||||
|
||||
### PID 튜닝
|
||||
|
||||
:::info
|
||||
Make sure to calibrate the ESCs before doing any tuning.
|
||||
:::
|
||||
|
||||
이 시점에서 첫 번째 테스트 비행을 준비하여야 합니다.
|
||||
|
||||
Assuming the vehicle is able to fly using the default settings, we then do a first pass of [Basic MC PID tuning](../config_mc/pid_tuning_guide_multicopter_basic.md).
|
||||
The vehicle needs to be **undertuned** (the **P** and **D** gains should be set too low), such that there are no oscillations from the controller that could be interpreted as noise (the default gains might be good enough).
|
||||
This is important for the [filter tuning](#filter-tuning) (there will be a second PID tuning round later).
|
||||
|
||||
### 제어 지연
|
||||
|
||||
The _control latency_ is the delay from a physical disturbance of the vehicle until the motors react to the change.
|
||||
|
||||
:::tip
|
||||
It is _crucial_ to reduce the control latency as much as possible!
|
||||
A lower latency allows you to increase the rate **P** gains, which means better flight performance.
|
||||
지연 시간은 1/1000 초가 추가 되어도 현격한 차이를 나타냅니다.
|
||||
:::
|
||||
|
||||
지연 시간에 영향을 미치는 요인은 다음과 같습니다.
|
||||
|
||||
- 부드러운 기체 또는 부드러운 진동 장착은 대기 시간을 증가시킵니다 (필터 역할을 함).
|
||||
- [Low-pass filters](../config_mc/filter_tuning.md) in software and on the sensor chip trade off increased latency for improved noise filtering.
|
||||
- PX4 소프트웨어 내부 : 센서 신호를 드라이버에서 읽은 다음 컨트롤러를 통해 출력 드라이버로 전달하여야 합니다.
|
||||
- The IO chip (MAIN pins) adds about 5.4 ms latency compared to using the AUX pins (this does not apply to a _Pixracer_ or _Omnibus F4_, but does apply to a Pixhawk).
|
||||
To avoid the IO delay attach the motors to the AUX pins instead.
|
||||
- PWM output signal: enable [Dshot](../peripherals/dshot.md) by preference to reduce latency (or One-Shot if DShot is not supported).
|
||||
The protocol is selected for a group of outputs during [Actuator Configuration](../config/actuators.md).
|
||||
|
||||
### 필터 튜닝
|
||||
|
||||
필터는 성능에 영향을 미치는 제어 대기 시간과 노이즈 필터링을 절충합니다.
|
||||
For information see: [Filter/Control Latency Tuning](../config_mc/filter_tuning.md)
|
||||
|
||||
### PID 튜닝 (두 번째 단계)
|
||||
|
||||
이제 두 번째 PID 튜닝을 수행합니다. 이번에는 가능한 한 빡빡하게하고 추력 곡선도 튜닝합니다.
|
||||
|
||||
:::tip
|
||||
You can use the approach described in [Basic MC PID tuning](../config_mc/pid_tuning_guide_multicopter_basic.md) to tune the frame, but you will need to use the [Advanced Multicopter PID Tuning Guide (Advanced/Detailed)](../config_mc/pid_tuning_guide_multicopter.md#thrust-curve) to understand how to tune the thrust curve.
|
||||
|
||||
### 에어모드
|
||||
|
||||
After you have verified that the vehicle flies well at low and high throttle, you can enable [airmode](../config_mc/pid_tuning_guide_multicopter.md#airmode) with the [MC_AIRMODE](../advanced_config/parameter_reference.md#MC_AIRMODE) parameter.
|
||||
이 기능은 기체가 제어 가능하고 낮은 스로틀에서 속도를 추적하도록 합니다.
|
||||
Reference in New Issue
Block a user