docs: auto-sync metadata [skip ci]

Co-Authored-By: PX4 BuildBot <bot@px4.io>
This commit is contained in:
PX4BuildBot
2026-02-11 22:43:01 +00:00
parent 01b348c86b
commit 36b5e1e1bb
374 changed files with 12147 additions and 1765 deletions

View File

@@ -31,6 +31,7 @@ For more information see the topics for each data type:
- [Parameters & Configurations > Creating/Defining Parameters](../advanced/parameters_and_configurations.md#creating-defining-parameters)
- [Events Interface](../concept/events_interface.md)
- [Actuator Metadata](#actuator-metadata) (below)
## Metadata Toolchain
The process for handling metadata is the same for all metadata types.
@@ -69,6 +70,7 @@ The parameter XML file of the main branch is copied into the QGC source tree via
The following diagram shows how actuator metadata is assembled from the source code and used by QGroundControl:
![Actuators Metadata](../../assets/diagrams/actuator_metadata_processing.svg)
<!-- Source: https://docs.google.com/drawings/d/1hMQmIijdFjr21rREcXj50qz0C1b47JW0OEa6p5P231k/edit -->
- **Left**: the metadata is defined in `module.yml` files in different modules.

View File

@@ -34,4 +34,3 @@ You can locate the parameters in QGroundControl as shown below:
Positive angles increase in CCW direction, negative angles increase in CW direction.
- [SENS_BOARD_Z_OFF](../advanced_config/parameter_reference.md#SENS_BOARD_Z_OFF): Rotation, in degrees, around PX4FMU's Z axis Yaw axis.
Positive angles increase in CCW direction, negative angles increase in CW direction.

View File

@@ -63,7 +63,6 @@ The tool is available for Windows, Linux and macOS.
![Flash bootloader through Secure provisioning - Step 6](../../assets/advanced_config/bootloader_6xrt/bootloader_update_v6xrt_step6.png)
To get the Pixhawk V6X-RT into "ISP bootloader mode" there are 2 options:
1. Launch QGC connect the Pixhawk select **Analayze Tools** and then **MAVLINK Console**.
On the console type `reboot -i`.
This will put the Pixhawk V6X-RT into "ISP bootloader mode"

View File

@@ -89,7 +89,6 @@ To calibrate the ESCs:
:::
Verify the following values:
- The minimum value for a motor (default: `1100us`) should make the motor spin slowly but reliably, and also spin up reliably after it was stopped.
You can confirm that a motor spins at minimum (still without propellers) in [Actuator Testing](../config/actuators.md#actuator-testing), by enabling the sliders, and then moving the test output slider for the motor to the first snap position from the bottom.

File diff suppressed because it is too large Load Diff

View File

@@ -12,19 +12,16 @@ The [ARK Jetson Pixhawk Autopilot Bus (PAB) Carrier](https://arkelectron.gitbook
## Specifications
- **Power Requirements**
- 5V
- 4A minimum (dependent on usage and peripherals)
- **Additional Features**
- Pixhawk Autopilot Bus (PAB) Form Factor ([PAB Standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-010%20Pixhawk%20Autopilot%20Bus%20Standard.pdf))
- MicroSD Slot
- USA-built, NDAA compliant
- Integrated 1W heater for sensor stability in extreme conditions
- **Physical Details**
- Weight:
- Without Jetson and Flight Controller 80g
- With Jetson, no heatsink or Flight Controller 108g

View File

@@ -18,7 +18,6 @@ The board follows the [Pixhawk Connector Standard](https://github.com/pixhawk/Pi
- [Holybro Pixhawk RPi CM4 Baseboard](https://holybro.com/products/pixhawk-rpi-cm4-baseboard) (www.holybro.com)
The baseboard can be purchased with or without an RPi CM4 and/or flight controller:
- The Raspberry Pi CM4 (CM4008032) supplied by Holybro has the following specification:
- RAM: 8GB
- eMMC: 32GB
@@ -167,7 +166,6 @@ To enable this MAVLink instance on the FC:
![Image of baseboard showing FC USB-C connector](../../assets/companion_computer/holybro_pixhawk_rpi_cm4_baseboard/baseboard_fc_usb_c.jpg)
1. [Set the parameters](../advanced_config/parameters.md):
- `MAV_1_CONFIG` = `102`
- `MAV_1_MODE = 2`
- `SER_TEL2_BAUD` = `921600`
@@ -180,7 +178,6 @@ On the RPi side:
1. Connect to the RPi (using WiFi, a router, or a WiFi Dongle).
1. Enable the RPi serial port by running `RPi-config`
- Go to `3 Interface Options`, then `I6 Serial Port`.
Then choose:
- `login shell accessible over serial → No`

View File

@@ -91,7 +91,7 @@ During PX4 setup and configuration the USB connection with your ground station l
These instructions work on PX4 v1.14 and later.
If you need to update the firmware then connect the Pixhawk to your laptop/desktop via the `USB` port and use QGroundControl to update the firmware as described [Firmware > Install Stable PX4](../config/firmware.md#install-stable-px4).
If you need to update the firmware then connect the Pixhawk to your laptop/desktop via the `USB` port and use QGroundControl to update the firmware as described [Firmware > Install Stable PX4](../config/firmware.md#install-stable-px4).
If you want the latest developer version then update the firmware to the "main" as described in [Firmware > Installing PX4 Master, Beta or Custom Firmware](../config/firmware.md#installing-px4-main-beta-or-custom-firmware).
::: info
@@ -143,7 +143,6 @@ Enter the following commands (in sequence) a terminal to configure Ubuntu for RP
```
1. Go to the **Interface Option** and then click **Serial Port**.
- Select **No** to disable serial login shell.
- Select **Yes** to enable the serial interface.
- Click **Finish** and restart the RPi.
@@ -162,7 +161,6 @@ Enter the following commands (in sequence) a terminal to configure Ubuntu for RP
```
1. Then save the file and restart the RPi.
- In `nano` you can save the file using the following sequence of keyboard shortcuts: **ctrl+x**, **ctrl+y**, **Enter**.
1. Check that the serial port is available.

View File

@@ -60,7 +60,7 @@ Configure collision prevention by [setting the following parameters](../advanced
| <a id="CP_DELAY"></a>[CP_DELAY](../advanced_config/parameter_reference.md#CP_DELAY) | Set the sensor and velocity setpoint tracking delay. See [Delay Tuning](#delay_tuning) below. |
| <a id="CP_GUIDE_ANG"></a>[CP_GUIDE_ANG](../advanced_config/parameter_reference.md#CP_GUIDE_ANG) | Set the angle (to both sides of the commanded direction) within which the vehicle may deviate if it finds fewer obstacles in that direction. See [Guidance Tuning](#angle_change_tuning) below. |
| <a id="CP_GO_NO_DATA"></a>[CP_GO_NO_DATA](../advanced_config/parameter_reference.md#CP_GO_NO_DATA) | Set to 1 to allow the vehicle to move in directions where there is no sensor coverage (default is 0/`False`). |
| <a id="MPC_POS_MODE"></a>[MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE) | Must be set to `Acceleration based`. |
| <a id="MPC_POS_MODE"></a>[MPC_POS_MODE](../advanced_config/parameter_reference.md#MPC_POS_MODE) | Must be set to `Acceleration based`. |
## Algorithm Description
@@ -213,7 +213,6 @@ The steps are:
3. Open PlotJuggler and navigate to the **Tools > Reactive Script Editor** section.
In the **Script Editor** tab, add following scripts in the appropriate sections:
- **Global code, executed once:**
```lua

View File

@@ -32,7 +32,6 @@ The instructions below might be used to create a task named _MyTask_:
- FlightTaskMyTask.hpp
- FlightTaskMyTask.cpp
3. Update **CMakeLists.txt** for the new task
- Copy the contents of the **CMakeLists.txt** for another task - e.g. [Orbit/CMakeLists.txt](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/flight_mode_manager/tasks/Orbit/CMakeLists.txt)
- Update the copyright to the current year
@@ -135,7 +134,6 @@ The instructions below might be used to create a task named _MyTask_:
Usually a parameter is used to select when a particular flight task should be used.
For example, to enable our new `MyTask` in multicopter Position mode:
- Update `MPC_POS_MODE` ([multicopter_position_mode_params.c](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mc_pos_control/multicopter_position_mode_params.c)) to add an option for selecting "MyTask" if the parameter has a previously unused value like 5:
```c

View File

@@ -14,7 +14,7 @@ The directory structure/layout is shown below.
| `/etc/` | Extra config. See [System Startup > Replacing the System Startup][replace system start]. |
| `/log/` | Full [flight logs](../dev_log/logging.md) |
| `/mission_log/` | Reduced flight logs |
| `/fw/` | [DroneCAN](../dronecan/index.md) firmware |
| `/fw/` | [DroneCAN](../dronecan/index.md) firmware |
| `/uavcan.db/` | DroneCAN DNA server DB + logs |
| `/params` | Parameters (if not in FRAM/FLASH) |
| `/dataman` | Mission storage file |

View File

@@ -82,7 +82,6 @@ The test steps are:
If an [Enable/Disable Autotune Switch](#enable-disable-autotune-switch) is configured you can just toggle the switch to the "enabled" position.
</div></div>
1. In QGroundControl, open the menu **Vehicle setup > PID Tuning**:
![Tuning Setup > Autotune Enabled](../../assets/qgc/setup/autotune/autotune.png)
@@ -197,11 +196,8 @@ By default, the autotune maneuvers ensure that a sufficient angular rate is reac
If the signal-to-noise ratio of the vehicle is low, the system identification algorithm might have issues finding the correct coefficients. Ensure that there is no excessive noise and/or platform vibration.
</div>
### The drone oscillates after auto-tuning
Due to effects not included in the mathematical model such as delays, saturation, slew-rate, airframe flexibility, the loop gain can be too high.

View File

@@ -4,15 +4,15 @@ This topic explains how to map [flight modes](../getting_started/px4_basic_conce
:::tip
In order to set up flight modes you must already have:
- [Configured your radio](../config/radio.md)
- [Setup your transmitter](#rc-transmitter-setup) to encode the physical positions of your mode switch(es) into a single channel.
We provide examples for the popular *Taranis* transmitter [below](#taranis-setup-3-way-switch-configuration-for-single-channel-mode) (check your documentation if you use a different transmitter).
:::
We provide examples for the popular _Taranis_ transmitter [below](#taranis-setup-3-way-switch-configuration-for-single-channel-mode) (check your documentation if you use a different transmitter).
:::
## What Flight Modes and Switches Should I Set?
Flight Modes provide different types of *autopilot-assisted flight*, and *fully autonomous flight*.
Flight Modes provide different types of _autopilot-assisted flight_, and _fully autonomous flight_.
You can set any (or none) of the flight modes [available to your vehicle](../flight_modes/index.md#flight-modes).
Most users should set the following modes and functions, as these make the vehicle easier and safer to fly:
@@ -33,26 +33,25 @@ You can also separately specify channels for mapping a kill switch, return to la
To configure single-channel flight mode selection:
1. Start *QGroundControl* and connect the vehicle.
1. Start _QGroundControl_ and connect the vehicle.
1. Turn on your RC transmitter.
1. Select **"Q" icon > Vehicle Setup > Flight Modes** (sidebar) to open _Flight Modes Setup_.
![Flight modes single-channel](../../assets/qgc/setup/flight_modes/flight_modes_single_channel.jpg)
1. Specify *Flight Mode Settings*:
* Select the **Mode channel** (above this shown as Channel 5, but this will depend on your transmitter configuration).
* Move the transmitter switch (or switches) that you have set up for mode selection through the available positions.
The mode slot matching your current switch position will be highlighted (above this is *Flight Mode 1*).
1. Specify _Flight Mode Settings_:
- Select the **Mode channel** (above this shown as Channel 5, but this will depend on your transmitter configuration).
- Move the transmitter switch (or switches) that you have set up for mode selection through the available positions.
The mode slot matching your current switch position will be highlighted (above this is _Flight Mode 1_).
::: info
While you can set flight modes in any of the 6 slots, only the channels that are mapped to switch positions will be highlighted/used.
:::
* Select the flight mode that you want triggered for each switch position.
1. Specify *Switch Settings*:
* Select the channels that you want to map to specific actions - e.g.: *Return* mode, *Kill switch*, *offboard* mode, etc. (if you have spare switches and channels on your transmitter).
- Select the flight mode that you want triggered for each switch position.
1. Specify _Switch Settings_:
- Select the channels that you want to map to specific actions - e.g.: _Return_ mode, _Kill switch_, _offboard_ mode, etc. (if you have spare switches and channels on your transmitter).
1. Test that the modes are mapped to the right transmitter switches:
* Check the *Channel Monitor* to confirm that the expected channel is changed by each switch.
* Select each mode switch on your transmitter in turn, and check that the desired flight mode is activated (the text turns yellow on *QGroundControl* for the active mode).
- Check the _Channel Monitor_ to confirm that the expected channel is changed by each switch.
- Select each mode switch on your transmitter in turn, and check that the desired flight mode is activated (the text turns yellow on _QGroundControl_ for the active mode).
All values are automatically saved as they are changed.
@@ -61,7 +60,6 @@ All values are automatically saved as they are changed.
This section contains a small number of possible setup configurations for taranis.
QGroundControl _may_ have [setup information for other transmitters here](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/flight_modes.html#transmitter-setup).
<a id="taranis_setup"></a>
### Taranis Setup: 3-way Switch Configuration for Single-Channel Mode
@@ -70,7 +68,7 @@ If you only need to support selecting between two or three modes then you can ma
Below we show how to map the Taranis 3-way "SD" switch to channel 5.
::: info
This example shows how to set up the popular *FrSky Taranis* transmitter.
This example shows how to set up the popular _FrSky Taranis_ transmitter.
Transmitter setup will be different on other transmitters.
:::
@@ -78,15 +76,14 @@ Open the Taranis UI **MIXER** page and scroll down to **CH5**, as shown below:
![Taranis - Map channel to switch](../../assets/qgc/setup/flight_modes/single_channel_mode_selection_1.png)
Press **ENT(ER)** to edit the **CH5** configuration then change the **Source** to be the *SD* button.
Press **ENT(ER)** to edit the **CH5** configuration then change the **Source** to be the _SD_ button.
![Taranis - Configure channel](../../assets/qgc/setup/flight_modes/single_channel_mode_selection_2.png)
That's it!
Channel 5 will now output 3 different PWM values for the three different **SD** switch positions.
The *QGroundControl* configuration is then as described in the previous section.
The _QGroundControl_ configuration is then as described in the previous section.
### Taranis Setup: Multi-Switch Configuration for Single-Channel Mode
@@ -96,19 +93,18 @@ Commonly this is done by encoding the positions of a 2- and a 3-position switch
On the FrSky Taranis this process involves assigning a "logical switch" to each combination of positions of the two real switches.
Each logical switch is then assigned to a different PWM value on the same channel.
The video below shows how this is done with the *FrSky Taranis* transmitter.
The video below shows how this is done with the _FrSky Taranis_ transmitter.
<!-- [youtube](https://youtu.be/scqO7vbH2jo) Video has gone private and is no longer available -->
<!-- @[youtube](https://youtu.be/BNzeVGD8IZI?t=427) - video showing how to set the QGC side - at about 7mins and 3 secs -->
<lite-youtube videoid="TFEjEQZqdVA" title="Taranis Mode Switches"/>
The *QGroundControl* configuration is then [as described above](#flight-mode-selection).
The _QGroundControl_ configuration is then [as described above](#flight-mode-selection).
## Further Information
* [Flight Modes Overview](../flight_modes/index.md)
* [QGroundControl > Flight Modes](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/flight_modes.html#px4-pro-flight-mode-setup)
* [PX4 Setup Video - @6m53s](https://youtu.be/91VGmdSlbo4?t=6m53s) (Youtube)
* [Radio switch parameters](../advanced_config/parameter_reference.md#radio-switches) - Can be used to set mappings via parameters
- [Flight Modes Overview](../flight_modes/index.md)
- [QGroundControl > Flight Modes](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/flight_modes.html#px4-pro-flight-mode-setup)
- [PX4 Setup Video - @6m53s](https://youtu.be/91VGmdSlbo4?t=6m53s) (Youtube)
- [Radio switch parameters](../advanced_config/parameter_reference.md#radio-switches) - Can be used to set mappings via parameters

View File

@@ -18,7 +18,6 @@ To level the horizon:
You should already have set the [Autopilot Orientation](../config/flight_controller_orientation.md). If not, you can also set it here.
:::
1. Place the vehicle in its level flight orientation on a level surface:
- For planes this is the position during level flight (planes tend to have their wings slightly pitched up!)
- For copters this is the hover position.

View File

@@ -128,10 +128,10 @@ Additional (and underlying) parameter settings are shown below.
| Parameter | Setting | Description |
| ----------------------------------------------------------------------------------------------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="COM_RC_LOSS_T"></a>[COM_RC_LOSS_T](../advanced_config/parameter_reference.md#COM_RC_LOSS_T) | Manual Control Loss Timeout | Time after last setpoint received from the selected manual control source after which manual control is considered lost. This must be kept short because the vehicle will continue to fly using the last known stick position until the timeout triggers. |
| <a id="COM_RC_LOSS_T"></a>[COM_RC_LOSS_T](../advanced_config/parameter_reference.md#COM_RC_LOSS_T) | Manual Control Loss Timeout | Time after last setpoint received from the selected manual control source after which manual control is considered lost. This must be kept short because the vehicle will continue to fly using the last known stick position until the timeout triggers. |
| <a id="COM_FAIL_ACT_T"></a>[COM_FAIL_ACT_T](../advanced_config/parameter_reference.md#COM_FAIL_ACT_T) | Failsafe Reaction Delay | Delay in seconds between failsafe condition being triggered (`COM_RC_LOSS_T`) and failsafe action (RTL, Land, Hold). In this state the vehicle waits in hold mode for the manual control source to reconnect. This might be set longer for long-range flights so that intermittent connection loss doesn't immediately invoke the failsafe. It can be to zero so that the failsafe triggers immediately. |
| <a id="NAV_RCL_ACT"></a>[NAV_RCL_ACT](../advanced_config/parameter_reference.md#NAV_RCL_ACT) | Failsafe Action | Disabled, Loiter, Return, Land, Disarm, Terminate. |
| <a id="COM_RCL_EXCEPT"></a>[COM_RCL_EXCEPT](../advanced_config/parameter_reference.md#COM_RCL_EXCEPT) | RC Loss Exceptions | Set modes in which manual control loss is ignored. |
| <a id="COM_RCL_EXCEPT"></a>[COM_RCL_EXCEPT](../advanced_config/parameter_reference.md#COM_RCL_EXCEPT) | RC Loss Exceptions | Set modes in which manual control loss is ignored. |
## Data Link Loss Failsafe
@@ -142,11 +142,11 @@ Users that want to disable this failsafe in specific modes can do so using the p
The settings and underlying parameters are shown below.
| Setting | Parameter | Description |
| ---------------------- | ------------------------------------------------------------------------ | --------------------------------------------------------------------------------- |
| Data Link Loss Timeout | [COM_DL_LOSS_T](../advanced_config/parameter_reference.md#COM_DL_LOSS_T) | Amount of time after losing the data connection before the failsafe will trigger. |
| Failsafe Action | [NAV_DLL_ACT](../advanced_config/parameter_reference.md#NAV_DLL_ACT) | Disabled, Hold mode, Return mode, Land mode, Disarm, Terminate. |
| <a id="COM_DLL_EXCEPT"></a>Mode exceptions for DLL failsafe | [COM_DLL_EXCEPT](../advanced_config/parameter_reference.md#COM_DLL_EXCEPT) | Set modes in which data link loss is ignored. |
| Setting | Parameter | Description |
| ----------------------------------------------------------- | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| Data Link Loss Timeout | [COM_DL_LOSS_T](../advanced_config/parameter_reference.md#COM_DL_LOSS_T) | Amount of time after losing the data connection before the failsafe will trigger. |
| Failsafe Action | [NAV_DLL_ACT](../advanced_config/parameter_reference.md#NAV_DLL_ACT) | Disabled, Hold mode, Return mode, Land mode, Disarm, Terminate. |
| <a id="COM_DLL_EXCEPT"></a>Mode exceptions for DLL failsafe | [COM_DLL_EXCEPT](../advanced_config/parameter_reference.md#COM_DLL_EXCEPT) | Set modes in which data link loss is ignored. |
## Geofence Failsafe

View File

@@ -13,7 +13,7 @@ These are covered in the following topics:
- [Safe Points (Rally)](../flying/plan_safety_points.md)
- [Prearm/Arm/Disarm Configuration](../advanced_config/prearm_arm_disarm.md)
- [Flight Termination Configuration](../advanced_config/flight_termination.md)
- [First Flight Guidelines](../flying/first_flight_guidelines.md)
- [First Flight Guidelines](../flying/first_flight_guidelines.md)
::: tip
Note that the [First Flight Guidelines](../flying/first_flight_guidelines.md) are listed _last_.

View File

@@ -42,14 +42,12 @@ To setup and configure a helicopter:
![Geometry: helicopter](../../assets/config/actuators/qgc_geometry_helicopter.png)
The motors have no configurable geometry:
- `Rotor (Motor 1)`: The main rotor
- `Yaw tail motor (Motor 2)`: The tail rotor
Swash plate servos: `3` | `4` <!-- 4 provides additional stability -->
For each servo set:
- `Angle`: Clockwise angle in degree on the swash plate circle at which the servo arm is attached starting from `0` pointing forwards.
Example for a typical setup where three servos are controlling the swash plate equally distributed over the circle (360° / 3 =) 120° apart each which results in the angles:
@@ -65,7 +63,6 @@ To setup and configure a helicopter:
- `Trim`: Offset individual servo positions. This is only needed in rare case when the swash plate is not level even though all servos are centered.
Additional settings:
- `Yaw compensation scale based on collective pitch`: How much yaw is feed forward compensated based on the current collective pitch.
- `Main rotor turns counter-clockwise`: `Disabled` (clockwise rotation) | `Enabled`
- `Throttle spoolup time`: Set value (in seconds) greater than the achievable minimum motor spool up time.
@@ -73,12 +70,10 @@ To setup and configure a helicopter:
1. Remove the rotor blades and propellers
1. Assign motors and servos to outputs and test (also in [Actuator configuration](../config/actuators.md)):
1. Assign the [motors and servos to the outputs](../config/actuators.md#actuator-outputs).
1. Power the vehicle with a battery and use the [actuator testing sliders](../config/actuators.md#actuator-testing) to validate correct servo and motor assignment and direction.
1. Using an RC in [Acro mode](../flight_modes_mc/acro.md), verify the correct movement of the swash-plate. With most airframes you need to see the following:
- Moving the roll stick to the right should tilt the swash-plate to the right.
- Moving the pitch stick forward should tilt the swash-plate forward.
@@ -144,7 +139,6 @@ The rate controller should be tuned in [Acro mode](../flight_modes_mc/acro.md),
3. Then enable the PID gains.
Start off with following values:
- [MC_ROLLRATE_P](../advanced_config/parameter_reference.md#MC_ROLLRATE_P), [MC_PITCHRATE_P](../advanced_config/parameter_reference.md#MC_PITCHRATE_P) a quarter of the value you found to work well as the corresponding feed forward value in the previous step. `P = FF / 4`
```sh

View File

@@ -123,14 +123,12 @@ Tuning is the final step, carried out only after most other setup and configurat
::: 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)

View File

@@ -46,7 +46,6 @@ Then adjust the sliders (as discussed below) to improve the tracking of the resp
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):
- Remove propellers
- Arm the vehicle and lower the throttle to the minimum
- Tilt the vehicle to all directions, about 60 degrees
@@ -77,7 +76,6 @@ The tuning procedure is:
As a result, the optimal tuning at hover thrust may not be ideal when the vehicle is operating at higher thrust.
The thrust curve value can be used to compensate for this non-linearity:
- For PWM controllers, 0.3 is a good default (which may benefit from [further tuning](../config_mc/pid_tuning_guide_multicopter.md#thrust-curve)).
- For RPM-based controllers, use 1 (no further tuning is required as these have a quadratic thrust curve).
@@ -120,7 +118,6 @@ The tuning procedure is:
:::
1. Repeat the tuning process for the attitude controller on all the axes.
1. 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)

View File

@@ -15,13 +15,11 @@ Configure the following [parameters](../advanced_config/parameters.md) in QGroun
Small rovers especially can be prone to rolling over when steering aggressively at high speeds.
If this is the case:
1. In [Acro mode](../flight_modes_rover/manual.md#acro-mode), set [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM) to a small value, drive the rover at full throttle and steer all the way to the left or right.
2. Increase [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM) until the wheels of the rover start to lift up.
3. Set [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM) to the highest value that does not cause the rover to lift up.
If you see no need to limit the yaw rate, set this parameter to the maximum yaw rate the rover can achieve:
1. In [Manual mode](../flight_modes_rover/manual.md#manual-mode) drive the rover at full throttle and with the maximum steering angle.
2. Plot the `measured_yaw_rate` from [RoverRateStatus](../msg_docs/RoverRateStatus.md) and enter the highest observed value for [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM).
@@ -51,7 +49,6 @@ Configure the following [parameters](../advanced_config/parameters.md) in QGroun
:::tip
To tune this parameter:
1. Put the rover in [Acro mode](../flight_modes_rover/manual.md#acro-mode) and hold the throttle stick and the right stick at a few different levels for a couple of seconds each.
1. Disarm the rover and from the flight log plot the `adjusted_yaw_rate_setpoint` and the `measured_yaw_rate` from [RoverRateStatus](../msg_docs/RoverRateStatus.md) over each other.
1. Increase [RO_YAW_RATE_P](#RO_YAW_RATE_P) if the measured value does not track the setpoint fast enough or decrease it if the measurement overshoots the setpoint by too much.

View File

@@ -14,7 +14,8 @@ seconds. In each cycle, the rotors are spun for two seconds at a motor output of
:::warning
When enabling the feature on a new airframe, there is the risk of producing
torques that disturb the fixed-wing rate controller. To mitigate this risk:
- Set your `PWM_MIN` values correctly, so that the motor output 0.01 actually
produces 1% thrust
- Be prepared to take control and switch back to multicopter
:::
- Set your `PWM_MIN` values correctly, so that the motor output 0.01 actually
produces 1% thrust
- Be prepared to take control and switch back to multicopter
:::

View File

@@ -66,7 +66,7 @@ Set the minimum front transition time ([VT_TRANS_MIN_TM](../advanced_config/para
Because the risk of stalling is real, it is recommended to set the 'fixed-wing minimum altitude' (a.k.a. 'quad-chute') threshold ([VT_FW_MIN_ALT](../advanced_config/parameter_reference.md#VT_FW_MIN_ALT)).
This will cause the VTOL to transition back to multicopter mode and initiate the [Return mode](../flight_modes_vtol/return.md) below a certain altitude.
This will cause the VTOL to transition back to multicopter mode and initiate the [Return mode](../flight_modes_vtol/return.md) below a certain altitude.
You could set this to 15 or 20 meters to give the multicopter time to recover from a stall.
The position estimator tested for this mode is EKF2, which is enabled by default (for more information see [Switching State Estimators](../advanced/switching_state_estimators.md#how-to-enable-different-estimators) and [EKF2_EN ](../advanced_config/parameter_reference.md#EKF2_EN)).

View File

@@ -306,7 +306,6 @@ If the airframe is for a **new group** you additionally need to:
```
1. Update _QGroundControl_:
- Add the svg image for the group into: [src/AutopilotPlugins/Common/images](https://github.com/mavlink/qgroundcontrol/tree/master/src/AutoPilotPlugins/Common/Images)
- Add reference to the svg image into [qgcimages.qrc](https://github.com/mavlink/qgroundcontrol/blob/master/qgcimages.qrc), following the pattern below:

View File

@@ -33,12 +33,12 @@ The logging system is configured by default to collect sensible logs for [flight
Logging may further be configured using the [SD Logging](../advanced_config/parameter_reference.md#sd-logging) parameters.
The parameters you are most likely to change are listed below.
| Parameter | Description |
| ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Parameter | Description |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [SDLOG_MODE](../advanced_config/parameter_reference.md#SDLOG_MODE) | Logging Mode. Defines when logging starts and stops.<br />- `0`: Log when armed until disarm (default).<br />- `1`: Log from boot until disarm.<br />- `2`: Log from boot until shutdown.<br />- `3`: Log based on the [AUX1 RC channel](../advanced_config/parameter_reference.md#RC_MAP_AUX1).<br />- `4`: Log from first armed until shutdown. |
| [SDLOG_BACKEND](../advanced_config/parameter_reference.md#SDLOG_BACKEND) | Logging Backend (bitmask). Setting a bit enables the corresponding backend. If no backend is selected, the logger is disabled.<br />- bit `0`: SD card logging.</br >- bit `1`: Mavlink logging.
| [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) | Logging profile. Use this to enable less common logging/analysis (e.g. for EKF2 replay, high rate logging for PID & filter tuning, thermal temperature calibration). |
| [SDLOG_MISSION](../advanced_config/parameter_reference.md#SDLOG_MISSION) | Create very small additional "Mission Log".<br>This log can _not_ be used with [Flight Review](../log/flight_log_analysis.md#flight-review-online-tool), but is useful when you need a small log for geotagging or regulatory compliance. |
| [SDLOG_BACKEND](../advanced_config/parameter_reference.md#SDLOG_BACKEND) | Logging Backend (bitmask). Setting a bit enables the corresponding backend. If no backend is selected, the logger is disabled.<br />- bit `0`: SD card logging.</br >- bit `1`: Mavlink logging. |
| [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) | Logging profile. Use this to enable less common logging/analysis (e.g. for EKF2 replay, high rate logging for PID & filter tuning, thermal temperature calibration). |
| [SDLOG_MISSION](../advanced_config/parameter_reference.md#SDLOG_MISSION) | Create very small additional "Mission Log".<br>This log can _not_ be used with [Flight Review](../log/flight_log_analysis.md#flight-review-online-tool), but is useful when you need a small log for geotagging or regulatory compliance. |
Useful settings for specific cases:

View File

@@ -39,8 +39,8 @@ Navigate into the **PX4-Autopilot** directory and start [Gazebo SITL](../sim_gaz
make px4_sitl gz_x500
```
::: details If you installed Gazebo Classic
Start [Gazebo Classic SITL](../sim_gazebo_classic/index.md) using the following command:
::: details If you installed Gazebo Classic
Start [Gazebo Classic SITL](../sim_gazebo_classic/index.md) using the following command:
```sh
make px4_sitl gazebo-classic

View File

@@ -18,7 +18,6 @@ The equipment below is highly recommended:
::: info
The listed computers have acceptable performance, but a more recent and powerful computer is recommended.
:::
- Lenovo Thinkpad with i5-core running Windows 11
- MacBook Pro (early 2015 and later) with macOS 10.15 or later
- Lenovo Thinkpad i5 with Ubuntu Linux 20.04 or later

View File

@@ -11,13 +11,13 @@ The _supported platforms_ for PX4 development are:
The table below shows what PX4 targets you can build on each OS.
| Target | Linux (Ubuntu) | macOS | Windows |
| -------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :-: | :-----: |
| **NuttX based hardware:** [Pixhawk Series](../flight_controller/pixhawk_series.md), [Crazyflie](../complete_vehicles_mc/crazyflie2.md) | ✓ | | ✓ |
| **Linux-based hardware:** [Raspberry Pi 2/3](../flight_controller/raspberry_pi_navio2.md) | ✓ | | |
| **Simulation:** [Gazebo SITL](../sim_gazebo_gz/index.md) | ✓ | | ✓ |
| **Simulation:** [Gazebo Classic SITL](../sim_gazebo_classic/index.md) | ✓ | | ✓ |
| **Simulation:** [ROS with Gazebo Classic](../simulation/ros_interface.md) | ✓ | | ✓ |
| **Simulation:** ROS 2 with Gazebo | ✓ | | ✓ |
| -------------------------------------------------------------------------------------------------------------------------------------- | :------------: | :---: | :-----: |
| **NuttX based hardware:** [Pixhawk Series](../flight_controller/pixhawk_series.md), [Crazyflie](../complete_vehicles_mc/crazyflie2.md) | ✓ | | ✓ |
| **Linux-based hardware:** [Raspberry Pi 2/3](../flight_controller/raspberry_pi_navio2.md) | ✓ | | |
| **Simulation:** [Gazebo SITL](../sim_gazebo_gz/index.md) | ✓ | | ✓ |
| **Simulation:** [Gazebo Classic SITL](../sim_gazebo_classic/index.md) | ✓ | | ✓ |
| **Simulation:** [ROS with Gazebo Classic](../simulation/ros_interface.md) | ✓ | | ✓ |
| **Simulation:** ROS 2 with Gazebo | ✓ | | ✓ |
Experienced Docker users can also build with the containers used by our continuous integration system: [Docker Containers](../test_and_ci/docker.md)

View File

@@ -107,7 +107,6 @@ To setup the environment for [Gazebo Classic](../sim_gazebo_classic/index.md) si
sh macos.sh
```
## Next Steps
Once you have finished setting up the command-line toolchain:

View File

@@ -23,7 +23,6 @@ You must already have installed the command line [PX4 developer environment](../
1. [Download and install VSCode](https://code.visualstudio.com/) (you will be offered the correct version for your OS).
1. Open VSCode and add the PX4 source code:
- Select _Open folder ..._ option on the welcome page (or using the menu: **File > Open Folder**):
![Open Folder](../../assets/toolchain/vscode/welcome_open_folder.jpg)
@@ -45,7 +44,6 @@ You must already have installed the command line [PX4 developer environment](../
:::tip
If the prompts disappear, click the little "alarm" icon on the right of the bottom blue bar.
:::
- If prompted to install a new version of _cmake_:
- Say **No** (the right version is installed with the [PX4 developer environment](../dev_setup/dev_env.md)).
- If prompted to sign into _github.com_ and add your credentials:
@@ -59,7 +57,6 @@ You must already have installed the command line [PX4 developer environment](../
To build:
1. Select your build target ("cmake build config"):
- The current _cmake build target_ is shown on the blue _config_ bar at the bottom (if this is already your desired target, skip to next step).
![Select Cmake build target](../../assets/toolchain/vscode/cmake_build_config.jpg)

View File

@@ -83,10 +83,10 @@ This is done using the the parameters named like `UAVCAN_SUB_*` in the parameter
On the ARK CANnode, you may need to configure the following parameters:
| Parameter | Description |
| ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
| Parameter | Description |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
## LED Meanings

View File

@@ -72,7 +72,6 @@ The Ark Flow will not boot if there is no SD card in the flight controller when
### Enable DroneCAN
The steps are:
- In _QGroundControl_ set the parameter [UAVCAN_ENABLE](../advanced_config/parameter_reference.md#UAVCAN_ENABLE) to `2` for dynamic node allocation (or `3` if using [DroneCAN ESCs](../dronecan/escs.md)) and reboot (see [Finding/Updating Parameters](../advanced_config/parameters.md)).
@@ -111,10 +110,10 @@ When optical flow is the only source of horizontal position/velocity, then lower
On the ARK Flow, you may need to configure the following parameters:
| Parameter | Description |
| ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
| Parameter | Description |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
## LED Meanings

View File

@@ -1,6 +1,6 @@
# ARK Flow MR
ARK Flow MR ("Mid Range") is an open source [DroneCAN](index.md) [optical flow](../sensor/optical_flow.md), [distance sensor](../sensor/rangefinders.md), and IMU module.
ARK Flow MR ("Mid Range") is an open source [DroneCAN](index.md) [optical flow](../sensor/optical_flow.md), [distance sensor](../sensor/rangefinders.md), and IMU module.
It is the next generation of the [Ark Flow](ark_flow.md), designed for mid-range applications.
![ARK Flow MR](../../assets/hardware/sensors/optical_flow/ark_flow_mr.jpg)
@@ -28,7 +28,7 @@ Order this module from:
- Invensense IIM-42653 6-Axis IMU
- Two Pixhawk Standard CAN Connectors (4 Pin JST GH)
- Pixhawk Standard Debug Connector (6 Pin JST SH)
- Software controlled built-in CAN termination resistor via node parameter (CANNODE_TERM)
- Software controlled built-in CAN termination resistor via node parameter (CANNODE_TERM)
- Small Form Factor
- 3cm x 3cm x 1.4cm
- LED Indicators
@@ -70,7 +70,6 @@ The Ark Flow MR will not boot if there is no SD card in the flight controller wh
### Enable DroneCAN
The steps are:
- In _QGroundControl_ set the parameter [UAVCAN_ENABLE](../advanced_config/parameter_reference.md#UAVCAN_ENABLE) to `2` for dynamic node allocation (or `3` if using [DroneCAN ESCs](../dronecan/escs.md)) and reboot (see [Finding/Updating Parameters](../advanced_config/parameters.md)).
@@ -106,17 +105,16 @@ Set the following parameters in _QGroundControl_:
You may need to [configure the following parameters](../dronecan/index.md#qgc-cannode-parameter-configuration) on the ARK Flow MR itself:
| Parameter | Description |
| ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
| Parameter | Description |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. |
## LED Meanings
- Blinking green is normal operation
- Rapid blinking blue and red is firmware update
If you see a solid red LED there is an error and you should check the following:
- Make sure the flight controller has an SD card installed.

View File

@@ -97,10 +97,10 @@ If the sensor is not centred within the vehicle you will also need to define sen
You may need to [configure the following parameters](../dronecan/index.md#qgc-cannode-parameter-configuration) on the ARK GPS itself:
| Parameter | Description |
| ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. Set to `1` if this is the last node on the CAN bus. |
| Parameter | Description |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. Set to `1` if this is the last node on the CAN bus. |
## LED Meanings

View File

@@ -91,10 +91,10 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
You may need to [configure the following parameters](../dronecan/index.md#qgc-cannode-parameter-configuration) on the ARK RTK GPS itself:
| Parameter | Description |
| ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. Set to `1` if this is the last node on the CAN bus. |
| Parameter | Description |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="CANNODE_NODE_ID"></a>[CANNODE_NODE_ID](../advanced_config/parameter_reference.md#CANNODE_NODE_ID) | CAN node ID (0 for dynamic allocation). If set to 0 (default), dynamic node allocation is used. Set to 1-127 to use a static node ID. |
| <a id="CANNODE_TERM"></a>[CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) | CAN built-in bus termination. Set to `1` if this is the last node on the CAN bus. |
### Setting Up Rover and Fixed Base

View File

@@ -100,7 +100,6 @@ In order to use dual ZED-F9P GPS heading in PX4, follow these steps:
1. Components should be visible on the left panel.
Click on the first `_Component_<ID#>` that maps to the ZED-F9P DroneCAN node (below shown as _Component 124_).
1. Click on the _GPS_ subsection and configure the parameters listed below:
- `GPS_TYPE`: Either set to `17` for moving baseline _base_, or set to `18` to be the moving baseline _rover_.
One F9P MUST be _rover_, and the other MUST be _base_.
- `GPS_AUTO_CONFIG`: set to 1 for both the rover and base

View File

@@ -32,12 +32,10 @@ Order this module from:
- 10 Pin JST-SH Debug
- Motor & Battery Connectors (with-connector version)
- MR30 Connector Limit Per Motor: 30A Continuous, 40A Burst
- Four MR30 Motor Connectors
- Dimensions (with connectors)
- Size: 77.00mm x 42.00mm x 9.43mm
- Mounting Pattern: 30.5mm
- Weight: 24g

View File

@@ -26,7 +26,6 @@ AIRLink has two computers and integrated LTE Module:
## Specifications
- **Sensors**
- 3x Accelerometers, 3x Gyroscopes, 3x Magnetometers, 3x Pressure sensorss
- GNSS, Rangefinders, Lidars, Optical Flow, Cameras
- 3x-redundant IMU
@@ -34,7 +33,6 @@ AIRLink has two computers and integrated LTE Module:
- Temperature stabilization
- **Flight Controller**
- STM32F7, ARM Cortex M7 with FPU, 216 MHz, 2MB Flash, 512 kB RAM
- STM32F1, I/O co-processor
- Ethernet, 10/100 Mbps
@@ -51,7 +49,6 @@ AIRLink has two computers and integrated LTE Module:
- Safety switch / LED option
- **AI Mission Computer**
- 6-Core CPU: Dual-Core Cortex-A72 + Quad-Core Cortex-A53
- GPU Mali-T864, OpenGL ES1.1/2.0/3.0/3.1
- VPU with 4K VP8/9, 4K 10bits H265/H264 60fps Decoding
@@ -65,7 +62,6 @@ AIRLink has two computers and integrated LTE Module:
- 2x Video: 4-Lane MIPI CSI (FPV Camera) and 4-Lane MIPI CSI with HMDI Input (Payload Camera)
- **LTE/5G Connectivity Module**
- Up to 600 Mbps bandwidth
- 5G sub-6 and mmWave, SA and NSA operations
- 4G Cat 20, up to 7xCA, 256-QAM DL/UL, 2xCA UL
@@ -142,7 +138,6 @@ SmartAP AIRLink's Core edition is intended for medium to high volume production
![Left side](../../assets/flight_controller/airlink/airlink-interfaces-left.jpg)
- **Left side interfaces:**
- Power input with voltage & current monitoring
- AI Mission Computer micro SD card
- Flight Controller micro SD card
@@ -169,12 +164,12 @@ SmartAP AIRLink's Core edition is intended for medium to high volume production
- **RC Connector - JST GH SM06B-GHS-TB**
| Pin number | Pin name | Direction | Voltage | Function |
| ---------- | -------- | --------- | ------- | ----------- |
| ---------- | -------- | --------- | ------- | ----------- | --- | --- | ------ |
| 1 | 5V | OUT | +5V | 5V output |
| 2 | PPM_IN | IN | +3.3V | PPM input |
| 3 | RSSI_IN | IN | +3.3V | RSSI input |
| 4 | FAN_OUT | OUT | +5V | Fan output |
| 5 | SBUS_OUT | OUT | +3.3V | SBUS output | 6 | GND | Ground |
| 5 | SBUS_OUT | OUT | +3.3V | SBUS output | 6 | GND | Ground |
* **FMU SD card - microSD**
@@ -183,7 +178,6 @@ SmartAP AIRLink's Core edition is intended for medium to high volume production
![Right side](../../assets/flight_controller/airlink/airlink-interfaces-right.jpg)
- **Right side interfaces:**
- Ethernet port with power output
- Telemetry port
- Second GPS port
@@ -247,7 +241,6 @@ SmartAP AIRLink's Core edition is intended for medium to high volume production
![Front side](../../assets/flight_controller/airlink/airlink-interfaces-front.jpg)
- **Front side interfaces:**
- Main GNSS and compass port
- Main telemetry port
- CSI camera input
@@ -305,7 +298,6 @@ SmartAP AIRLink's Core edition is intended for medium to high volume production
![Back side](../../assets/flight_controller/airlink/airlink-interfaces-back.jpg)
- **Rear side interfaces:**
- SBUS input
- 16 PWM output channels
- 2x LTE antenna sockets (MIMO)

View File

@@ -83,7 +83,7 @@ These flight controllers are [manufacturer supported](../flight_controller/autop
### Mechanical Data
- Not provided.
- Not provided.
## Purchase Channels
@@ -91,11 +91,11 @@ Order from [CUAV](https://store.cuav.net/).
## Assembly/Setup
- Not provided.
- Not provided.
## Pin Definitions
- Not provided.
- Not provided.
## Serial Port Mapping
@@ -112,11 +112,13 @@ Order from [CUAV](https://store.cuav.net/).
## Voltage Ratings
The _X25-EVO_ achieves triple redundancy on power supplies if three power sources are provided. The three power rails are POWERC1, POWERC2, and USB.
- **POWER C1** and **POWER C2** are DroneCAN/UAVCAN battery interfaces.
**Normal Operation Maximum Ratings**
Under these conditions, all power sources will be used to power the system in the following order:
1. **POWER C1** and **POWER C2** Inputs (10V to 18V)
2. USB Input (4.75V to 5.25V)
@@ -143,14 +145,14 @@ make cuav_x25-evo_default
The [PX4 System Console](../debug/system_console.md) and [SWD Interface](../debug/swd_debug.md) operate on the **FMU Debug** port.
| Pin | Signal | Volt |
| -------- | ---------------- | ----- |
| 1 (red) | 5V+ | +5V |
| 2 (blk) | DEBUG TX (OUT) | +3.3V |
| 3 (blk) | DEBUG RX (IN) | +3.3V |
| 4 (blk) | FMU_SWDIO | +3.3V |
| 5 (blk) | FMU_SWCLK | +3.3V |
| 6 (blk) | GND | GND |
| Pin | Signal | Volt |
| ------- | -------------- | ----- |
| 1 (red) | 5V+ | +5V |
| 2 (blk) | DEBUG TX (OUT) | +3.3V |
| 3 (blk) | DEBUG RX (IN) | +3.3V |
| 4 (blk) | FMU_SWDIO | +3.3V |
| 5 (blk) | FMU_SWCLK | +3.3V |
| 6 (blk) | GND | GND |
## Supported Platforms / Airframes

View File

@@ -39,20 +39,20 @@ The pin order is different from the Pixhawk standard (compatible to the Betaflig
Current UART configuration:
| UART | Device | Function |
| ------ | ---------- | ---------------------------- |
| USART1 | /dev/ttyS0 | Console/Debug |
| USART2 | /dev/ttyS1 | RC Input |
| USART3 | /dev/ttyS2 | TEL4 (DJI/MSP) |
| UART4 | /dev/ttyS3 | TEL1 |
| UART5 | /dev/ttyS4 | TEL2 |
| UART7 | /dev/ttyS5 | TEL3 (ESC Telemetry) |
| UART8 | /dev/ttyS6 | GPS1 |
| UART | Device | Function |
| ------ | ---------- | -------------------- |
| USART1 | /dev/ttyS0 | Console/Debug |
| USART2 | /dev/ttyS1 | RC Input |
| USART3 | /dev/ttyS2 | TEL4 (DJI/MSP) |
| UART4 | /dev/ttyS3 | TEL1 |
| UART5 | /dev/ttyS4 | TEL2 |
| UART7 | /dev/ttyS5 | TEL3 (ESC Telemetry) |
| UART8 | /dev/ttyS6 | GPS1 |
### Motor/Servo Outputs
| Connector | Pin | Function |
| ----------| ------------------ |
| --------- | --- | ------------ |
| ESC | M1 | Motor 1 |
| ESC | M2 | Motor 2 |
| ESC | M3 | Motor 3 |

View File

@@ -1,4 +1,4 @@
# Holybro Kakute H743-Wing
# Holybro Kakute H743-Wing
<Badge type="tip" text="PX4 v1.16" />
@@ -9,7 +9,6 @@ Contact the [manufacturer](https://holybro.com/) for hardware support or complia
The [Holybro Kakute H743 Wing](https://holybro.com/products/kakute-h743-wing) is a fully featured flight controller specifically aimed at fixed-wing and VTOL applications. It has the STM32 H743 Processor running at 480 MHz and CAN Bus support, along with dual camera support & switch, ON/OFF Pit Switch, 5V, 6V/8V, 9V/12 BEC, and plug-and-play GPS, CAN, I2C ports.
::: info
This flight controller is [manufacturer supported](../flight_controller/autopilot_manufacturer_supported.md).
:::
@@ -20,7 +19,6 @@ The board can be bought from one of the following shops (for example):
- [Holybro](https://holybro.com/products/kakute-h743-wing)
## Connectors and Pins
| Pin | Function | PX4 default |
@@ -69,15 +67,15 @@ Firmware can be manually installed in any of the normal ways:
## Serial Port Mapping
| UART | Device | Port | Default function |
| ------ | ---------- | --------------------- | ---------------- |
| USART1 | /dev/ttyS0 | GPS 1 | GPS1 |
| USART2 | /dev/ttyS1 | R2, T2 | GPS2 |
| USART3 | /dev/ttyS2 | R3, T3 | TELEM1 |
| UART5 | /dev/ttyS3 | R5, T5 | TELEM2 |
| USART6 | /dev/ttyS4 | R6, (T6) | RC input |
| UART7 | /dev/ttyS5 | R7, T7, RTS, CTS | TELEM3 |
| UART8 | /dev/ttyS6 | R8, T8 | Console |
| UART | Device | Port | Default function |
| ------ | ---------- | ---------------- | ---------------- |
| USART1 | /dev/ttyS0 | GPS 1 | GPS1 |
| USART2 | /dev/ttyS1 | R2, T2 | GPS2 |
| USART3 | /dev/ttyS2 | R3, T3 | TELEM1 |
| UART5 | /dev/ttyS3 | R5, T5 | TELEM2 |
| USART6 | /dev/ttyS4 | R6, (T6) | RC input |
| UART7 | /dev/ttyS5 | R7, T7, RTS, CTS | TELEM3 |
| UART8 | /dev/ttyS6 | R8, T8 | Console |
## Debug Port

View File

@@ -102,21 +102,21 @@ At very high level, the main differences are:
### FMUv6 Comparison
| Feature | **FMUv6X-RT** | **FMUv6X** | **FMUv6C** |
| ------------------ | --------------------- | ----------------- | ------------------ |
| **FMU MCU** | NXP i.MX RT1176 | STM32H753 | STM32H743V |
| **RAM** | 2 MB | 1 MB | 1 MB |
| **Flash** | 64 MB Octal SPI | 2 MB internal | 2 MB internal |
| **IO MCU** | STM32F103 | STM32F103 | STM32F103 |
| **Secure Element** | NXP SE051 | NXP SE051 | Not supported |
| **PAB Standard** | Supported | Supported | Not supported |
| **Ethernet** | Supported | Supported | Not supported |
| **IMUs** | 3× | 3× | 2× |
| **Barometers** | 2× | 2× | 1× |
| **Magnetometer** | 1× | 1× | 1× |
| **FMU PWM** | 12× | 8× | 8× |
| **IO PWM** | 8× | 8× | 8× |
| **CAN Bus** | 3× | 2× | 2× |
| Feature | **FMUv6X-RT** | **FMUv6X** | **FMUv6C** |
| ------------------ | --------------- | ------------- | ------------- |
| **FMU MCU** | NXP i.MX RT1176 | STM32H753 | STM32H743V |
| **RAM** | 2 MB | 1 MB | 1 MB |
| **Flash** | 64 MB Octal SPI | 2 MB internal | 2 MB internal |
| **IO MCU** | STM32F103 | STM32F103 | STM32F103 |
| **Secure Element** | NXP SE051 | NXP SE051 | Not supported |
| **PAB Standard** | Supported | Supported | Not supported |
| **Ethernet** | Supported | Supported | Not supported |
| **IMUs** | 3× | 3× | 2× |
| **Barometers** | 2× | 2× | 1× |
| **Magnetometer** | 1× | 1× | 1× |
| **FMU PWM** | 12× | 8× | 8× |
| **IO PWM** | 8× | 8× | 8× |
| **CAN Bus** | 3× | 2× | 2× |
### Licensing and Trademarks

View File

@@ -63,6 +63,7 @@ These flight controllers are [manufacturer supported](../flight_controller/autop
Order from [S-Vehicle](https://svehicle.cn/).
## Radio Control
A Radio Control (RC) system is required if you want to manually control your vehicle (PX4 does not require a radio system for autonomous flight modes).
You will need to select a compatible transmitter/receiver and then bind them so that they communicate (read the instructions that come with your specific transmitter/receiver).

View File

@@ -18,7 +18,7 @@ Manual-Easy:
- [Altitude](../flight_modes_fw/altitude.md) — Easiest and safest _non-GPS_ manual mode.
The only difference compared to _Position mode_ is that the pilot always directly controls the roll angle of the plane and there is no automatic course holding.
- Altitude Cruise mode — It behaves exactly like _Altitude mode_, with the only difference being that the manual control failsafe can be disabled. This is done by setting the corresponding flag in [COM_RCL_EXCEPT](../advanced_config/parameter_reference.md#COM_RCL_EXCEPT). In that case the current altitude, airspeed and heading (by leveling out the roll angle) are kept until the manual control link is regained or the mode is exited.
It is highly recommended to only disable the manual control loss failsafe for this mode if there is a stable data link connection to the vehicle at all times, or to enable the data link loss failsafe through [NAV_DLL_ACT](../advanced_config/parameter_reference.md#NAV_DLL_ACT).
It is highly recommended to only disable the manual control loss failsafe for this mode if there is a stable data link connection to the vehicle at all times, or to enable the data link loss failsafe through [NAV_DLL_ACT](../advanced_config/parameter_reference.md#NAV_DLL_ACT).
- [Stabilized mode](../flight_modes_fw/stabilized.md) — The pilot directly commands the roll and pitch angle and the vehicle keeps the setpoint until the sticks are moved again.
Thrust is directly set by the pilot.
Turn coordination is still handled by the controller.
@@ -35,6 +35,7 @@ Manual-Acrobatic
Autonomous:
All autonomous flight modes require a valid position estimate (GPS).
Airspeed is actively controlled if an airspeed sensor is installed in any autonomous flight mode.
- [Hold](../flight_modes_fw/hold.md) — Vehicle circles around the GPS hold position at the current altitude.
The mode can be used to pause a mission or to help regain control of a vehicle in an emergency.
It can be activated with a pre-programmed RC switch or the QGroundControl Pause button.

View File

@@ -24,6 +24,7 @@ Where possible, instead use [Return mode](../flight_modes_fw/return.md) with a p
- The mode can be triggered using the [MAV_CMD_NAV_LAND](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_LAND) MAVLink command, or by explicitly switching to Land mode.
<!-- https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/commander/ModeUtil/mode_requirements.cpp -->
:::
## Technical Summary
@@ -40,12 +41,12 @@ The vehicle will flare if configured to do so (see [Flaring](../flight_modes_fw/
Land mode behaviour can be configured using the parameters below.
| Parameter | Description |
| ----------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| <a id="NAV_LOITER_RAD"></a>[NAV_LOITER_RAD](../advanced_config/parameter_reference.md#NAV_LOITER_RAD) | The loiter radius that the controller tracks for the whole landing sequence. |
| <a id="FW_LND_ANG"></a>[FW_LND_ANG](../advanced_config/parameter_reference.md#FW_LND_ANG) | The flight path angle setpoint. |
| <a id="FW_LND_AIRSPD"></a>[FW_LND_AIRSPD](../advanced_config/parameter_reference.md#FW_LND_AIRSPD) | The airspeed setpoint. |
| <a id="FW_AIRSPD_FLP_SC"></a>[FW_AIRSPD_FLP_SC](../advanced_config/parameter_reference.md#FW_AIRSPD_FLP_SC) | Factor applied to the minimum airspeed when flaps are fully deployed. Necessary if FW_LND_AIRSPD is below FW_AIRSPD_MIN.
| Parameter | Description |
| ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| <a id="NAV_LOITER_RAD"></a>[NAV_LOITER_RAD](../advanced_config/parameter_reference.md#NAV_LOITER_RAD) | The loiter radius that the controller tracks for the whole landing sequence. |
| <a id="FW_LND_ANG"></a>[FW_LND_ANG](../advanced_config/parameter_reference.md#FW_LND_ANG) | The flight path angle setpoint. |
| <a id="FW_LND_AIRSPD"></a>[FW_LND_AIRSPD](../advanced_config/parameter_reference.md#FW_LND_AIRSPD) | The airspeed setpoint. |
| <a id="FW_AIRSPD_FLP_SC"></a>[FW_AIRSPD_FLP_SC](../advanced_config/parameter_reference.md#FW_AIRSPD_FLP_SC) | Factor applied to the minimum airspeed when flaps are fully deployed. Necessary if FW_LND_AIRSPD is below FW_AIRSPD_MIN. |
## See Also

View File

@@ -28,7 +28,6 @@ Missions are uploaded onto a SD card that needs to be inserted **before** bootin
At high level all vehicle types behave in the same way when MISSION mode is engaged:
1. If no mission is stored, or if PX4 has finished executing all mission commands, or if the [mission is not feasible](#mission-feasibility-checks):
- If flying the vehicle will loiter.
- If landed the vehicle will "wait".
@@ -163,9 +162,9 @@ Mission Items:
- [MAV_CMD_DO_SET_CAMERA_ZOOM](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAMERA_ZOOM)
- [MAV_CMD_DO_SET_CAMERA_FOCUS](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAMERA_FOCUS)
- [MAV_CMD_DO_AUTOTUNE_ENABLE](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_AUTOTUNE_ENABLE)
- Disabling autotune by setting `param1` to zero is currently not supported. To abort autotune during a mission, switch to another flight mode.
- Axis selection specified in the MAVLink message is ignored (`param2` must be set to 0).
Instead, the axis bitmask defined by [`FW_AT_AXES`](../advanced_config/parameter_reference.md#FW_AT_AXES) is used.
- Disabling autotune by setting `param1` to zero is currently not supported. To abort autotune during a mission, switch to another flight mode.
- Axis selection specified in the MAVLink message is ignored (`param2` must be set to 0).
Instead, the axis bitmask defined by [`FW_AT_AXES`](../advanced_config/parameter_reference.md#FW_AT_AXES) is used.
GeoFence Definitions

View File

@@ -43,8 +43,8 @@ The horizontal position of the vehicle can move due to wind (or pre-existing mom
The mode is affected by the following parameters:
| Parameter | Description |
| ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="MPC_Z_VEL_MAX_UP"></a>[MPC_Z_VEL_MAX_UP](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_UP) | Maximum vertical ascent velocity. Default: 3 m/s. |
| <a id="MPC_Z_VEL_MAX_DN"></a>[MPC_Z_VEL_MAX_DN](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_DN) | Maximum vertical descent velocity. Default: 1 m/s. |
| <a id="MPC_xxx"></a>`MPC_XXXX` | Most of the MPC_xxx parameters affect flight behaviour in this mode (at least to some extent). For example, [MPC_THR_HOVER](../advanced_config/parameter_reference.md#MPC_THR_HOVER) defines the thrust at which a vehicle will hover. |
| Parameter | Description |
| ----------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="MPC_Z_VEL_MAX_UP"></a>[MPC_Z_VEL_MAX_UP](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_UP) | Maximum vertical ascent velocity. Default: 3 m/s. |
| <a id="MPC_Z_VEL_MAX_DN"></a>[MPC_Z_VEL_MAX_DN](../advanced_config/parameter_reference.md#MPC_Z_VEL_MAX_DN) | Maximum vertical descent velocity. Default: 1 m/s. |
| <a id="MPC_xxx"></a>`MPC_XXXX` | Most of the MPC_xxx parameters affect flight behaviour in this mode (at least to some extent). For example, [MPC_THR_HOVER](../advanced_config/parameter_reference.md#MPC_THR_HOVER) defines the thrust at which a vehicle will hover. |

View File

@@ -115,7 +115,6 @@ The altitude control mode determine whether the vehicle altitude is relative to
The relative distance to the drone to the target will change as you ascend and descend (use with care in hilly terrain).
- `2D + Terrain` makes the drone follow at a fixed height relative to the terrain underneath it, using information from a distance sensor.
- If the vehicle does not have a distance sensor following will be identical to `2D tracking`.
- Distance sensors aren't always accurate and vehicles may be "jumpy" when flying in this mode.
- Note that that height is relative to the ground underneath the vehicle, not the follow target.
@@ -163,7 +162,6 @@ The follow-me behavior can be configured using the following parameters:
<lite-youtube videoid="o3DhvCL_M1E" title="YUN0012 almostCinematic"/>
This video demonstrates a Google-Earth view perspective, by adjusting the height to around 50 meters (high), distance to 1 meter (close). Which allows a perspective as shot from a satellite.
## Known Issues

View File

@@ -30,7 +30,6 @@ Missions are uploaded onto a SD card that needs to be inserted **before** bootin
At high level all vehicle types behave in the same way when MISSION mode is engaged:
1. If no mission is stored, or if PX4 has finished executing all mission commands, or if the [mission is not feasible](#mission-feasibility-checks):
- If flying the vehicle will hold.
- If landed the vehicle will "wait".
@@ -167,8 +166,8 @@ Mission Items:
- `MAV_CMD_NAV_VTOL_TAKEOFF.param2` (transition heading) is ignored.
Instead the heading to the next waypoint is used for the transition heading. <!-- at LEAST until PX4 v1.13: https://github.com/PX4/PX4-Autopilot/issues/12660 -->
- [MAV_CMD_DO_AUTOTUNE_ENABLE](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_AUTOTUNE_ENABLE)
- Disabling autotune by setting `param1` to zero is currently not supported. To abort autotune during a mission, switch to another flight mode.
- Axis selection specified in the MAVLink message is ignored (`param2` must be set to 0) .
- Disabling autotune by setting `param1` to zero is currently not supported. To abort autotune during a mission, switch to another flight mode.
- Axis selection specified in the MAVLink message is ignored (`param2` must be set to 0) .
GeoFence Definitions

View File

@@ -47,7 +47,6 @@ If returning as a fixed-wing, the vehicle:
A mission landing pattern for a VTOL vehicle consists of a [MAV_CMD_DO_LAND_START](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_LAND_START), one or more position waypoints, and a [MAV_CMD_NAV_VTOL_LAND](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_VTOL_LAND).
- If the destination is a rally point or home it will:
- Loiter/spiral down to [RTL_DESCEND_ALT](#RTL_DESCEND_ALT).
- Circle for a short time, as defined by [RTL_LAND_DELAY](#RTL_LAND_DELAY).
- Yaw towards the destination (centre of loiter).

View File

@@ -13,24 +13,24 @@ The diagrams use the standard [PX4 notation](../contribute/notation.md) (and eac
![MC Controller Diagram](../../assets/diagrams/mc_control_arch.jpg)
* This is a standard cascaded control architecture.
* The controllers are a mix of P and PID controllers.
* Estimates come from [EKF2](../advanced_config/tuning_the_ecl_ekf.md).
* Depending on the mode, the outer (position) loop is bypassed (shown as a multiplexer after the outer loop).
- This is a standard cascaded control architecture.
- The controllers are a mix of P and PID controllers.
- Estimates come from [EKF2](../advanced_config/tuning_the_ecl_ekf.md).
- Depending on the mode, the outer (position) loop is bypassed (shown as a multiplexer after the outer loop).
The position loop is only used when holding position or when the requested velocity in an axis is null.
### Multicopter Angular Rate Controller
![MC Rate Control Diagram](../../assets/diagrams/mc_angular_rate_diagram.jpg)
* K-PID controller. See [Rate Controller](../config_mc/pid_tuning_guide_multicopter.md#rate-controller) for more information.
* The integral authority is limited to prevent wind up.
* The outputs are limited (in the control allocation module), usually at -1 and 1.
* A Low Pass Filter (LPF) is used on the derivative path to reduce noise (the gyro driver provides a filtered derivative to the controller).
- K-PID controller. See [Rate Controller](../config_mc/pid_tuning_guide_multicopter.md#rate-controller) for more information.
- The integral authority is limited to prevent wind up.
- The outputs are limited (in the control allocation module), usually at -1 and 1.
- A Low Pass Filter (LPF) is used on the derivative path to reduce noise (the gyro driver provides a filtered derivative to the controller).
::: info
The IMU pipeline is:
gyro data > apply calibration parameters > remove estimated bias > notch filter (`IMU_GYRO_NF0_BW` and `IMU_GYRO_NF0_FRQ`) > low-pass filter (`IMU_GYRO_CUTOFF`) > vehicle_angular_velocity (*filtered angular rate used by the P and I controllers*) > derivative -> low-pass filter (`IMU_DGYRO_CUTOFF`) > vehicle_angular_acceleration (*filtered angular acceleration used by the D controller*)
gyro data > apply calibration parameters > remove estimated bias > notch filter (`IMU_GYRO_NF0_BW` and `IMU_GYRO_NF0_FRQ`) > low-pass filter (`IMU_GYRO_CUTOFF`) > vehicle_angular_velocity (_filtered angular rate used by the P and I controllers_) > derivative -> low-pass filter (`IMU_DGYRO_CUTOFF`) > vehicle_angular_acceleration (_filtered angular acceleration used by the D controller_)
![IMU pipeline](../../assets/diagrams/px4_imu_pipeline.png)
:::
@@ -41,51 +41,51 @@ The diagrams use the standard [PX4 notation](../contribute/notation.md) (and eac
![MC Angle Control Diagram](../../assets/diagrams/mc_angle_diagram.jpg)
* The attitude controller makes use of [quaternions](https://en.wikipedia.org/wiki/Quaternion).
* The controller is implemented from this [article](https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/154099/eth-7387-01.pdf).
* When tuning this controller, the only parameter of concern is the P gain.
* The rate command is saturated.
- The attitude controller makes use of [quaternions](https://en.wikipedia.org/wiki/Quaternion).
- The controller is implemented from this [article](https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/154099/eth-7387-01.pdf).
- When tuning this controller, the only parameter of concern is the P gain.
- The rate command is saturated.
### Multicopter Acceleration to Thrust and Attitude Setpoint Conversion
* The acceleration setpoints generated by the velocity controller will be converted to thrust and attitude setpoints.
* Converted acceleration setpoints will be saturated and prioritized in vertical and horizontal thrust.
* Thrust saturation is done after computing the corresponding thrust:
1. Compute required vertical thrust (`thrust_z`)
1. Saturate `thrust_z` with `MPC_THR_MAX`
1. Saturate `thrust_xy` with `(MPC_THR_MAX^2 - thrust_z^2)^0.5`
Implementation details can be found in `PositionControl.cpp` and `ControlMath.cpp`.
- The acceleration setpoints generated by the velocity controller will be converted to thrust and attitude setpoints.
- Converted acceleration setpoints will be saturated and prioritized in vertical and horizontal thrust.
- Thrust saturation is done after computing the corresponding thrust:
1. Compute required vertical thrust (`thrust_z`)
1. Saturate `thrust_z` with `MPC_THR_MAX`
1. Saturate `thrust_xy` with `(MPC_THR_MAX^2 - thrust_z^2)^0.5`
Implementation details can be found in `PositionControl.cpp` and `ControlMath.cpp`.
### Multicopter Velocity Controller
![MC Velocity Control Diagram](../../assets/diagrams/mc_velocity_diagram.png)
* PID controller to stabilise velocity. Commands an acceleration.
* The integrator includes an anti-reset windup (ARW) using a clamping method.
* The commanded acceleration is NOT saturated - a saturation will be applied to the converted thrust setpoints in combination with the maximum tilt angle.
* Horizontal gains set via parameter `MPC_XY_VEL_P_ACC`, `MPC_XY_VEL_I_ACC` and `MPC_XY_VEL_D_ACC`.
* Vertical gains set via parameter `MPC_Z_VEL_P_ACC`, `MPC_Z_VEL_I_ACC` and `MPC_Z_VEL_D_ACC`.
- PID controller to stabilise velocity. Commands an acceleration.
- The integrator includes an anti-reset windup (ARW) using a clamping method.
- The commanded acceleration is NOT saturated - a saturation will be applied to the converted thrust setpoints in combination with the maximum tilt angle.
- Horizontal gains set via parameter `MPC_XY_VEL_P_ACC`, `MPC_XY_VEL_I_ACC` and `MPC_XY_VEL_D_ACC`.
- Vertical gains set via parameter `MPC_Z_VEL_P_ACC`, `MPC_Z_VEL_I_ACC` and `MPC_Z_VEL_D_ACC`.
### Multicopter Position Controller
![MC Position Control Diagram](../../assets/diagrams/mc_position_diagram.png)
* Simple P controller that commands a velocity.
* The commanded velocity is saturated to keep the velocity in certain limits. See parameter `MPC_XY_VEL_MAX`. This parameter sets the maximum possible horizontal velocity. This differs from the maximum **desired** speed `MPC_XY_CRUISE` (autonomous modes) and `MPC_VEL_MANUAL` (manual position control mode).
* Horizontal P gain set via parameter `MPC_XY_P`.
* Vertical P gain set via parameter `MPC_Z_P`.
- Simple P controller that commands a velocity.
- The commanded velocity is saturated to keep the velocity in certain limits. See parameter `MPC_XY_VEL_MAX`. This parameter sets the maximum possible horizontal velocity. This differs from the maximum **desired** speed `MPC_XY_CRUISE` (autonomous modes) and `MPC_VEL_MANUAL` (manual position control mode).
- Horizontal P gain set via parameter `MPC_XY_P`.
- Vertical P gain set via parameter `MPC_Z_P`.
#### Combined Position and Velocity Controller Diagram
![MC Position Controller Diagram](../../assets/diagrams/px4_mc_position_controller_diagram.png)
* Mode dependent feedforwards (ff) - e.g. Mission mode trajectory generator (jerk-limited trajectory) computes position, velocity and acceleration setpoints.
* Acceleration setpoints (inertial frame) will be transformed (with yaw setpoint) into attitude setpoints (quaternion) and collective thrust setpoint.
- Mode dependent feedforwards (ff) - e.g. Mission mode trajectory generator (jerk-limited trajectory) computes position, velocity and acceleration setpoints.
- Acceleration setpoints (inertial frame) will be transformed (with yaw setpoint) into attitude setpoints (quaternion) and collective thrust setpoint.
<!-- The drawing is on draw.io: https://drive.google.com/open?id=13Mzjks1KqBiZZQs15nDN0r0Y9gM_EjtX
Request access from dev team. -->
## Fixed-Wing Position Controller
### Total Energy Control System (TECS)
@@ -117,7 +117,6 @@ An increase in pitch angle transfers kinetic to potential energy and a negative
The control problem was therefore decoupled by transforming the initial setpoints into energy quantities which can be controlled independently.
We use thrust to regulate the specific total energy of the vehicle and pitch maintain a specific balance between potential (height) and kinetic (speed) energy.
#### Total energy control loop
![Energy loop](../../assets/diagrams/TECS_throttle.png)
@@ -130,7 +129,6 @@ We use thrust to regulate the specific total energy of the vehicle and pitch mai
<!-- The drawing is on draw.io: https://drive.google.com/file/d/1bZtFULYmys-_EQNhC9MNcKLFauc7OYJZ/view -->
The total energy of an aircraft is the sum of kinetic and potential energy:
$$E_T = \frac{1}{2} m V_T^2 + m g h$$
@@ -178,7 +176,7 @@ The angular position of the control effectors (ailerons, elevators, rudders, ...
Furthermore, since the control surfaces are more effective at high speed and less effective at low speed, the controller - tuned for cruise speed - is scaled using the airspeed measurements (if such a sensor is used).
::: info
If no airspeed sensor is used then gain scheduling for the FW attitude controller is disabled (it's open loop); no correction is/can be made in TECS using airspeed feedback.
If no airspeed sensor is used then gain scheduling for the FW attitude controller is disabled (it's open loop); no correction is/can be made in TECS using airspeed feedback.
:::
The feedforward gain is used to compensate for aerodynamic damping.
@@ -188,14 +186,12 @@ In order to keep a constant rate, this damping can be compensated using feedforw
### Turn coordination
The roll and pitch controllers have the same structure and the longitudinal and lateral dynamics are assumed to be uncoupled enough to work independently.
The yaw controller, however, generates its yaw rate setpoint using the turn coordination constraint in order to minimize lateral acceleration, generated when the aircraft is slipping. The turn coordination algorithm is based solely on coordinated turn geometry calculation.
The yaw controller, however, generates its yaw rate setpoint using the turn coordination constraint in order to minimize lateral acceleration, generated when the aircraft is slipping. The turn coordination algorithm is based solely on coordinated turn geometry calculation.
$$\dot{\Psi}_{sp} = \frac{g}{V_T} \tan{\phi_{sp}} \cos{\theta_{sp}}$$
The yaw rate controller also helps to counteract [adverse yaw effects](https://youtu.be/sNV_SDDxuWk) and to damp the [Dutch roll mode](https://en.wikipedia.org/wiki/Dutch_roll) by providing extra directional damping.
## VTOL Flight Controller
![VTOL Attitude Controller Diagram](../../assets/diagrams/VTOL_controller_diagram.png)
@@ -212,12 +208,11 @@ The inputs into this block are called "virtual" as, depending on the current VTO
For a standard and tilt-rotor VTOL, during transition the fixed-wing attitude controller produces the rate setpoints, which are then fed into the separate rate controllers, resulting in torque commands for the multicopter and fixed-wing actuators.
For tailsitters, during transition the multicopter attitude controller is running.
The outputs of the VTOL attitude block are separate torque and force commands for the multicopter and fixed-wing actuators (two instances for `vehicle_torque_setpoint` and `vehicle_thrust_setpoint`).
The outputs of the VTOL attitude block are separate torque and force commands for the multicopter and fixed-wing actuators (two instances for `vehicle_torque_setpoint` and `vehicle_thrust_setpoint`).
These are handled in an airframe-specific control allocation class.
For more information on the tuning of the transition logic inside the VTOL block, see [VTOL Configuration](../config_vtol/index.md).
### Airspeed Scaling
The objective of this section is to explain with the help of equations why and how the output of the rate PI and feedforward (FF) controllers can be scaled with airspeed to improve the control performance.

Some files were not shown because too many files have changed in this diff Show More