mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-03 12:48:53 +08:00
docs: auto-sync metadata [skip ci]
Co-Authored-By: PX4 BuildBot <bot@px4.io>
This commit is contained in:
@@ -36,6 +36,7 @@ For the rate controller in particular, it is useful to enable the high-rate logg
|
||||
|
||||
Vibration is one of the most common problems for multirotor vehicles.
|
||||
High vibration levels can lead to:
|
||||
|
||||
- less efficient flight and reduced flight time
|
||||
- the motors can heat up
|
||||
- increased material wearout
|
||||
@@ -45,7 +46,7 @@ High vibration levels can lead to:
|
||||
|
||||
It is therefore important to keep an eye on the vibration levels and improve the setup if needed.
|
||||
|
||||
There is a point where vibration levels are clearly too high, and generally lower vibration levels are better.
|
||||
There is a point where vibration levels are clearly too high, and generally lower vibration levels are better.
|
||||
However there is a broad range between 'everything is ok' and 'the levels are too high'.
|
||||
This range depends on a number of factors, including vehicle size - as larger vehicles have higher inertia, allowing for more software filtering (at the same time the vibrations on larger vehicles are of lower frequency).
|
||||
|
||||
@@ -61,7 +62,7 @@ It is worth looking at multiple charts when analyzing vibration (different chart
|
||||
You need to enable the high-rate logging profile ([SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE)) to see this plot.
|
||||
:::
|
||||
|
||||
This graph shows a frequency plot for the roll, pitch and yaw axis based on the actuator controls signal (the PID output from the rate controller).
|
||||
This graph shows a frequency plot for the roll, pitch and yaw axis based on the actuator controls signal (the PID output from the rate controller).
|
||||
It helps to identify frequency peaks and configuring the software filters.
|
||||
There should only be a single peak at the lowest end (below around 20 Hz), the rest should be low and flat.
|
||||
|
||||
@@ -96,7 +97,6 @@ This example shows a peak in frequency close to 50 Hz (in this case due to "loos
|
||||
|
||||

|
||||
|
||||
|
||||
### Acceleration Power Spectral Density
|
||||
|
||||
This is a 2D frequency plot showing the frequency response of the raw accelerometer data over time (it displays the sum for the x, y and z axis).
|
||||
@@ -104,12 +104,12 @@ The more yellow an area is, the higher the frequency response at that time and f
|
||||
|
||||
Ideally only the lowest part up to a few Hz is yellow, and the rest is mostly green or blue.
|
||||
|
||||
|
||||
#### Examples: Good Vibration
|
||||
|
||||
[QAV-R 5" Racer](../frames_multicopter/qav_r_5_kiss_esc_racer.md) frame (excellent vibration).
|
||||
|
||||

|
||||
|
||||
<!-- https://logs.px4.io/plot_app?log=cd88b091-ec89-457c-85f6-e63e4fa0f51d -->
|
||||
|
||||
DJI F450 frame (good vibration).
|
||||
@@ -122,7 +122,6 @@ Above you can see the blade passing frequency of the propellers at around 100 Hz
|
||||
S500 frame:
|
||||

|
||||
|
||||
|
||||
#### Examples: Bad Vibration
|
||||
|
||||
The strong yellow lines at around 100Hz indicate a potential issue that requires further investigation (starting with a review of the other charts).
|
||||
@@ -138,7 +137,6 @@ With the default filter settings of 80 Hz vibrations at 50 Hz will not be filter
|
||||
|
||||

|
||||
|
||||
|
||||
Extremely high (unsafe) vibration! Note that the graph is almost completely yellow.
|
||||
|
||||
:::warning
|
||||
@@ -147,13 +145,12 @@ You should not fly with such high vibration levels.
|
||||
|
||||

|
||||
|
||||
|
||||
### Raw Acceleration
|
||||
|
||||
This graph shows the raw accelerometer measurements for the x, y and z axis.
|
||||
This graph shows the raw accelerometer measurements for the x, y and z axis.
|
||||
Ideally each line is thin and clearly shows the vehicle's accelerations.
|
||||
|
||||
As a rule of thumb if the z-axis graph is touching the x/y-axis graph during hover or slow flight, the vibration levels are too high.
|
||||
As a rule of thumb if the z-axis graph is touching the x/y-axis graph during hover or slow flight, the vibration levels are too high.
|
||||
|
||||
:::tip
|
||||
The best way to use this graph is to zoom in a bit to a part where the vehicle is hovering.
|
||||
@@ -170,7 +167,6 @@ DJI F450 frame (good vibration).
|
||||
|
||||
<!-- https://logs.px4.io/plot_app?log=cd88b091-ec89-457c-85f6-e63e4fa0f51d -->
|
||||
|
||||
|
||||
#### Examples: Bad Vibration
|
||||
|
||||
<a id="raw_acc_s500"></a>
|
||||
@@ -179,18 +175,15 @@ This is at the limit where it starts to negatively affect flight performance.
|
||||
|
||||

|
||||
|
||||
|
||||
Vibration too high. Note how the graph of the z-axis overlaps with the x/y-axis graph:
|
||||
|
||||

|
||||
|
||||
|
||||
Vibration levels are too high. Note how the graph of the z-axis overlaps with the x/y-axis graph:
|
||||
|
||||

|
||||
|
||||
|
||||
Very high (unsafe) vibration levels.
|
||||
Very high (unsafe) vibration levels.
|
||||
|
||||
:::warning
|
||||
You should not fly with such high vibration levels.
|
||||
@@ -198,7 +191,6 @@ You should not fly with such high vibration levels.
|
||||
|
||||

|
||||
|
||||
|
||||
<a id="fifo_logging"></a>
|
||||
|
||||
### Raw High-rate IMU Data Plots
|
||||
@@ -207,16 +199,17 @@ For an in-depth analysis there is an option to log the raw IMU data at full rate
|
||||
This allows inspection of much higher frequencies than with normal logging, which can help when selecting vibration mounts or configuring low-pass and notch filters appropriately.
|
||||
|
||||
To use it, some parameters need to be changed:
|
||||
|
||||
- Set [IMU_GYRO_RATEMAX](../advanced_config/parameter_reference.md#IMU_GYRO_RATEMAX) to 400.
|
||||
This ensures that the raw sensor data is more efficiently packed when sent from the sensor to the rest of the system, and reduces the log size (without reducing useful data).
|
||||
This ensures that the raw sensor data is more efficiently packed when sent from the sensor to the rest of the system, and reduces the log size (without reducing useful data).
|
||||
<!-- Explanation in https://github.com/PX4/PX4-user_guide/pull/751/files#r440509688
|
||||
Data is sent in a fixed size array that will largely empty if sent at higher rate. The "empty data" is also logged.-->
|
||||
- Use a good SD card, as the IMU data requires a high logging bandwidth (Flight Review will show dropouts if the logging rate gets too high).
|
||||
|
||||
|
||||
:::tip
|
||||
See [Logging > SD Cards](../dev_log/logging.md#sd-cards) for a comparison of popular SD card.
|
||||
:::
|
||||
|
||||
|
||||
- Enable either the gyro or accel high-rate FIFO profile in [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) and disable the rest of the entries.
|
||||
If you are using a really good SD card (seeing few/no dropouts), you can:
|
||||
- either enable both accel and gyro profiles
|
||||
@@ -244,17 +237,16 @@ Often a source of vibration (or combination of multiple sources) cannot be ident
|
||||
In this case the vehicle should be inspected.
|
||||
[Vibration Isolation](../assembly/vibration_isolation.md) explains some basic things you can check (and do) to reduce vibration levels.
|
||||
|
||||
|
||||
|
||||
## Actuator Outputs
|
||||
|
||||
The *Actuator Outputs* graph shows the signals that are sent to the individual actuators (motors/servos).
|
||||
The _Actuator Outputs_ graph shows the signals that are sent to the individual actuators (motors/servos).
|
||||
Generally it is in the range between the minimum and maximum configured PWM values (e.g. from 1000 to 2000).
|
||||
|
||||
This is an example for a quadrotor where everything is OK (all of the signals are within the range, approximately overlap each other, and are not too noisy):
|
||||

|
||||
|
||||
The plot can help to identify different problems:
|
||||
|
||||
- If one or more of the signals is at the maximum over a longer time, it means the controller runs into **saturation**.
|
||||
It is not necessarily a problem, for example when flying at full throttle this is expected.
|
||||
But if it happens for example during a mission, it's an indication that the vehicle is overweight for the amount of thrust that it can provide.
|
||||
@@ -270,20 +262,20 @@ The plot can help to identify different problems:
|
||||
This is an example from a hexarotor: motors 1, 3 and 6 run at higher thrust:
|
||||

|
||||
<!-- https://logs.px4.io/plot_app?log=9eca6934-b657-4976-a32f-b2e56535f05f -->
|
||||
|
||||
- If the signals look very **noisy** (with high amplitudes), it can have two causes: sensor noise or vibrations passing through the controller (this shows up in other plots as well, see previous section) or too high PID gains.
|
||||
This is an extreme example:
|
||||

|
||||
|
||||
|
||||
## GPS Uncertainty
|
||||
|
||||
The *GPS Uncertainty* plot shows information from the GPS device:
|
||||
The _GPS Uncertainty_ plot shows information from the GPS device:
|
||||
|
||||
- Number of used satellites (should be around 12 or higher)
|
||||
- Horizontal position accuracy (should be below 1 meter)
|
||||
- Vertical position accuracy (should be below 2 meters)
|
||||
- GPS fix: this is 3 for a 3D GPS fix, 4 for GPS + Dead Reckoning, 5 for RTK float and 6 for RTK fixed type
|
||||
|
||||
|
||||
## GPS Noise & Jamming
|
||||
|
||||
The GPS Noise & Jamming plot is useful to check for GPS signal interferences and jamming.
|
||||
@@ -301,21 +293,21 @@ This is an example without any interference:
|
||||
|
||||

|
||||
|
||||
|
||||
## Thrust and Magnetic Field
|
||||
|
||||
The *Thrust and Magnetic Field* plot shows the thrust and the norm of the magnetic sensor measurement vector.
|
||||
The _Thrust and Magnetic Field_ plot shows the thrust and the norm of the magnetic sensor measurement vector.
|
||||
|
||||
The norm should be constant over the whole flight and uncorrelated with the thrust.
|
||||
This is a good example where the norm is very close to constant:
|
||||

|
||||
|
||||
*If it is correlated*, it means that the current drawn by the motors (or other consumers) is influencing the magnetic field.
|
||||
_If it is correlated_, it means that the current drawn by the motors (or other consumers) is influencing the magnetic field.
|
||||
This must be avoided as it leads to incorrect yaw estimation.
|
||||
The following plot shows a strong correlation between the thrust and the norm of the magnetometer:
|
||||

|
||||
|
||||
Solutions to this are:
|
||||
|
||||
- Use an external magnetometer (avoid using the internal magnetometer)
|
||||
- If using an external magnetometer, move it further away from strong currents (i.e. by using a (longer) GPS mast).
|
||||
|
||||
@@ -325,10 +317,9 @@ However it could also be due to external disturbances (for example when flying c
|
||||
This example shows that the norm is non-constant, but it does not correlate with the thrust:
|
||||

|
||||
|
||||
|
||||
## Estimator Watchdog
|
||||
|
||||
The *Estimator Watchdog* plot shows the health report of the estimator.
|
||||
The _Estimator Watchdog_ plot shows the health report of the estimator.
|
||||
It should be constant zero.
|
||||
|
||||
This is what it should look like if there are no problems:
|
||||
@@ -337,12 +328,12 @@ This is what it should look like if there are no problems:
|
||||
If one of the flags is non-zero, the estimator detected a problem that needs to be further investigated.
|
||||
Most of the time it is an issue with a sensor, for example magnetometer interferences.
|
||||
It usually helps to look at the plots of the corresponding sensor.
|
||||
|
||||
<!-- TODO: separate page for estimator issues? -->
|
||||
|
||||
Here is an example with magnetometer problems:
|
||||

|
||||
|
||||
|
||||
## Sampling Regularity of Sensor Data
|
||||
|
||||
The sampling regularity plot provides insights into problems with the logging system and scheduling.
|
||||
@@ -373,14 +364,13 @@ The following example contains too many dropouts, the quality of the used SD car
|
||||
|
||||
## Logged Messages
|
||||
|
||||
This is a table with system error and warning messages.
|
||||
This is a table with system error and warning messages.
|
||||
For example they show when a task becomes low on stack size.
|
||||
|
||||
The messages need to be examined individually, and not all of them indicate a problem.
|
||||
For example the following shows a kill-switch test:
|
||||

|
||||
|
||||
|
||||
## Flight/Frame Log Review Examples
|
||||
|
||||
It is often worth looking at multiple charts for a particular flight when analyzing vehicle condition (different charts can better highlight some issues).
|
||||
@@ -391,9 +381,11 @@ The section below groups a few (previously presented) charts by flight/vehicle.
|
||||
### QAV-R 5" Racer
|
||||
|
||||
These charts are all from the same flight of a [QAV-R 5" Racer](../frames_multicopter/qav_r_5_kiss_esc_racer.md).
|
||||
|
||||
<!-- https://logs.px4.io/plot_app?log=cd88b091-ec89-457c-85f6-e63e4fa0f51d -->
|
||||
|
||||
They show a vehicle that has very low vibration:
|
||||
|
||||
- Actuator Controls FFT shows only a single peak at the lowest end, with the rest low and flat.
|
||||
- Spectral density is mostly green, with only a little yellow at the low frequencies.
|
||||
- Raw Acceleration has z-axis trace well separated from the x/y-axis traces.
|
||||
@@ -404,14 +396,15 @@ They show a vehicle that has very low vibration:
|
||||
|
||||

|
||||
|
||||
|
||||
### DJI F450
|
||||
|
||||
These charts are all from the same flight of a *DJI F450*.
|
||||
These charts are all from the same flight of a _DJI F450_.
|
||||
|
||||
<!-- https://logs.px4.io/plot_app?log=cd88b091-ec89-457c-85f6-e63e4fa0f51d -->
|
||||
|
||||
They show a vehicle that has low vibration (but not as low as the QAV-R above!):
|
||||
- Actuator Controls FFT shows a peak at the lowest end.
|
||||
|
||||
- Actuator Controls FFT shows a peak at the lowest end.
|
||||
Most of the rest is flat, except for a bump at around 100Hz (this is the blade passing frequency of the propellers).
|
||||
- Spectral density is mostly green. The blade passing frequency is again visible.
|
||||
- Raw Acceleration has z-axis trace well separated from the x/y-axis traces.
|
||||
@@ -422,16 +415,16 @@ They show a vehicle that has low vibration (but not as low as the QAV-R above!):
|
||||
|
||||

|
||||
|
||||
|
||||
### S500
|
||||
|
||||
These charts are all from the same flight of an S500.
|
||||
|
||||
They show a vehicle that has borderline-acceptable vibration:
|
||||
- Actuator Controls FFT shows a peak at the lowest end.
|
||||
|
||||
- Actuator Controls FFT shows a peak at the lowest end.
|
||||
Most of the rest is flat, except for a bump at around 100Hz.
|
||||
- Spectral density is mostly green, but more yellow than for the DJI F450 at 100Hz.
|
||||
- Raw Acceleration has z-axis trace fairly close to the x/y-axis traces.
|
||||
- Raw Acceleration has z-axis trace fairly close to the x/y-axis traces.
|
||||
This is at the limit where it starts to negatively affect flight performance.
|
||||
|
||||

|
||||
|
||||
@@ -66,17 +66,17 @@ This shows the position / velocity relationship described above in detail.
|
||||
|
||||
::: info
|
||||
Try out the boat testing log analysis yourself by downloading the ULog and Layout file used above!
|
||||
|
||||
- [Boat testing ULog](https://github.com/PX4/PX4-Autopilot/raw/main/docs/assets/flight_log_analysis/plot_juggler/sample_log_boat_testing_2022-7-28-13-31-16.ulg)
|
||||
- [Boat testing Analysis Layout](https://raw.githubusercontent.com/PX4/PX4-user_guide/main/assets/flight_log_analysis/plot_juggler/sample_log_boat_testing_layout.xml)
|
||||
:::
|
||||
:::
|
||||
|
||||
### Layout Templates
|
||||
|
||||
There are a number of PlotJuggler layout files shared by PX4 Developers.
|
||||
Each can be used for a specific purpose (Multicopter tuning, VTOL tuning, Boat debugging, etc.):
|
||||
|
||||
* [Sample View layout](https://github.com/PX4/PX4-user_guide/blob/main/assets/flight_log_analysis/plot_juggler/plotjuggler_sample_view.xml) : Template used in the [Multi-panel example](#splitting-horizontally-vertically-multi-panel) above.
|
||||
|
||||
- [Sample View layout](https://github.com/PX4/PX4-user_guide/blob/main/assets/flight_log_analysis/plot_juggler/plotjuggler_sample_view.xml) : Template used in the [Multi-panel example](#splitting-horizontally-vertically-multi-panel) above.
|
||||
|
||||
## Advanced Usage
|
||||
|
||||
@@ -105,6 +105,7 @@ Here the custom series `Roll` is displayed along with other timeseries, includin
|
||||

|
||||
|
||||
The `quat_to_roll` function looks like this:
|
||||
|
||||
```lua
|
||||
w = value
|
||||
x = v1
|
||||
|
||||
Reference in New Issue
Block a user