mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-09 22:08:56 +08:00
docs(i18n): PX4 guide translations (Crowdin) - uk (#26850)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
This commit is contained in:
@@ -165,6 +165,7 @@
|
||||
- [ARK Electronics ARKV6X](flight_controller/ark_v6x.md)
|
||||
- [ARK FPV Flight Controller](flight_controller/ark_fpv.md)
|
||||
- [ARK Pi6X Flow Flight Controller](flight_controller/ark_pi6x.md)
|
||||
- [CORVON 743v1](flight_controller/corvon_743v1.md)
|
||||
- [CUAV Nora](flight_controller/cuav_nora.md)
|
||||
- [CUAV V5+ (FMUv5)](flight_controller/cuav_v5_plus.md)
|
||||
- [Wiring Quickstart](assembly/quick_start_cuav_v5_plus.md)
|
||||
@@ -497,6 +498,7 @@
|
||||
- [Flight Controller Porting Guide](hardware/porting_guide.md)
|
||||
- [PX4 Конфігурація плати (kconfig)](hardware/porting_guide_config.md)
|
||||
- [Посібник з портування NuttX](hardware/porting_guide_nuttx.md)
|
||||
- [Board Firmware Packaging (.deb)](hardware/board_packaging.md)
|
||||
- [Serial Port Mapping](hardware/serial_port_mapping.md)
|
||||
- [Airframes](dev_airframes/index.md)
|
||||
- [Adding a New Airframe](dev_airframes/adding_a_new_frame.md)
|
||||
@@ -777,6 +779,7 @@
|
||||
- [MAVLink Messaging](mavlink/index.md)
|
||||
- [Adding Messages](mavlink/adding_messages.md)
|
||||
- [Streaming Messages](mavlink/streaming_messages.md)
|
||||
- [MAVLink Profiles](mavlink/mavlink_profiles.md)
|
||||
- [Receiving Messages](mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](mavlink/custom_messages.md)
|
||||
- [Message Signing](mavlink/message_signing.md)
|
||||
|
||||
@@ -57,6 +57,17 @@ param set PWM_MAIN_FUNC10 2064
|
||||
param set PPS_CAP_ENABLE 1
|
||||
```
|
||||
|
||||
#### Multi-GPS Setups
|
||||
|
||||
If you have multiple GPS receivers, set `PPS_CAP_GPS_ID` to the device ID of the GPS receiver that emits the PPS signal.
|
||||
When set to `0` (default), the driver uses the first available GPS instance.
|
||||
|
||||
You can find the device ID by running:
|
||||
|
||||
```sh
|
||||
listener sensor_gps
|
||||
```
|
||||
|
||||
### Підключення
|
||||
|
||||
The wiring configuration depends on your specific flight controller.
|
||||
@@ -131,5 +142,5 @@ See also:
|
||||
The PPS signal provides much higher temporal precision than the transmitted time data, which has latency and jitter from serial communication.
|
||||
|
||||
:::warning
|
||||
If the PPS driver does not sending any data for 5 seconds (despite having `PPS_CAP_ENABLE` set to 1), the `EKF2_GPS_DELAY` will be used instead for estimating the latency.
|
||||
If the PPS driver does not send any data for 5 seconds (despite having `PPS_CAP_ENABLE` set to 1), the corresponding `SENS_GPS*_DELAY` parameter will be used instead for estimating the latency.
|
||||
:::
|
||||
|
||||
@@ -402,6 +402,16 @@ With Valid GNSS Data:
|
||||
- **Alternative Sources**: Dead-reckoning mode provides enhanced protection by requiring absence of alternative navigation sources before allowing resets.
|
||||
- **Boot Vulnerability**: Initial faulty GNSS data cannot be detected automatically; requires operator intervention and manual position correction.
|
||||
|
||||
#### Ground Position Lock
|
||||
|
||||
When a vehicle equipped with dead-reckoning sensors (e.g. airspeed for fixed-wing, or optical flow) is sitting on the ground before takeoff, those sensors provide little to no aiding — airspeed and optical flow measurements are unreliable at rest. In this case, the EKF relies on _constant position fusion_ (fusing a synthetic position measurement at the last known position) to prevent the estimate from drifting. However, this is only active when the vehicle is detected as stationary, so handling the vehicle or starting the engine can interrupt it.
|
||||
|
||||
To counter this, [EKF2_POS_LOCK](../advanced_config/parameter_reference.md#EKF2_POS_LOCK) can be enabled to force constant position fusion to run while landed and the global horizontal position has already been initialized.
|
||||
|
||||
:::note
|
||||
`EKF2_POS_LOCK` has no effect in flight.
|
||||
:::
|
||||
|
||||
### Далекомір
|
||||
|
||||
[Range finder](../sensor/rangefinders.md) distance to ground is used by a single state filter to estimate the vertical position of the terrain relative to the height datum.
|
||||
|
||||
@@ -20,7 +20,7 @@ For more information see [Setting the Compass Orientation](../config/flight_cont
|
||||
|
||||
## Положення
|
||||
|
||||
In order to compensate for the relative motion between the receiver and the CoG, you should [configure](../advanced_config/parameters.md) the following parameters to set the offsets: [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z).
|
||||
In order to compensate for the relative motion between the receiver and the CoG, you should [configure](../advanced_config/parameters.md) the following parameters to set the offsets: [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ).
|
||||
|
||||
Це важливо, оскільки кадр тіла, що оцінюється EKF, буде збігатися з місцезнаходженням модуля GNSS та вважатиме його розміщеним на CoG(ЦМ). Якщо модуль GNSS значно відокремлений від CoG(ЦМ), то обертання навколо CoG(ЦМ) буде інтерпретовано як зміна висоти, що у деяких режимах польоту (наприклад, режим позиції) може призвести до непотрібних корекцій.
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ RPi CM4 та контролер польоту повинні бути живл
|
||||
|
||||
Цей розділ пояснює, як встановити вашу улюблену дистрибутив Linux, таку як "Raspberry Pi OS 64bit", на RPi EMCC.
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- Якщо ви використовуєте PX4, вам потрібно використовувати версію PX4 1.13.1 або новішу, щоб PX4 впізнав цю базову плату.
|
||||
- Вентилятор не показує, чи живиться/працює RPi CM4.
|
||||
|
||||
@@ -31,7 +31,7 @@ PX4 відокремлює цю логіку перекладу, що назив
|
||||
|
||||

|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- Регулятор швидкості видає задані значення моменту та тяги
|
||||
- модуль `control_allocator`:
|
||||
|
||||
@@ -675,7 +675,6 @@ First set the _frame rate_ for the servos used in each group of outputs.
|
||||
- Якщо використовується кнопка безпеки, її потрібно натиснути перед тим, як буде дозволено проводити випробування приводу.
|
||||
- Вимикач вимкнення все ще може бути використаний для негайного зупинення двигунів.
|
||||
- Сервоприводи фактично не рухаються, поки не буде змінено відповідний слайдер.
|
||||
- The parameter [COM_MOT_TEST_EN](../advanced_config/parameter_reference.md#COM_MOT_TEST_EN) can be used to completely disable actuator testing.
|
||||
- On the shell, [actuator_test](../modules/modules_command.md#actuator-test) can be used as well for actuator testing.
|
||||
- VTOLs will automatically turn off motors pointing upwards during **fixed-wing flight**:
|
||||
- Стандартний VTOL: Двигуни, визначені як багатокоптерні двигуни, будуть вимкнені
|
||||
|
||||
@@ -86,7 +86,7 @@ Once you've calibrated the vehicle in all the positions _QGroundControl_ will di
|
||||
2-3 коливань на кут близько 30 градусів у кожному напрямку зазвичай достатньо.
|
||||
2. Зачекайте, поки оцінка заголовку стабілізується, і перевірте, що компас вказує в правильному напрямку (це може зайняти кілька секунд).
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- Немає можливості початку/зупинки для цього типу калібрування (алгоритм працює безперервно, коли транспортний засіб роззброєний).
|
||||
- Калібрування негайно застосовується до даних (перезавантаження не потрібно), але зберігається в параметрах калібрування лише після відброшення транспортного засобу (калібрування втрачається, якщо між калібруванням і вимкненням не виконана послідовність увімкнення/вимкнення).
|
||||
@@ -109,7 +109,7 @@ This calibration process leverages external knowledge of vehicle's orientation a
|
||||
commander calibrate mag quick
|
||||
```
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- This method is specifically designed for vehicles where full rotation is impractical or impossible.
|
||||
If full rotation is possible, use the [complete calibration](#complete-calibration) instead.
|
||||
|
||||
@@ -45,7 +45,7 @@ If you have multiple control sources, such as an RC system and/or one or more Jo
|
||||
|
||||
The [MAVLink instance](../peripherals/mavlink_peripherals.md#mavlink-instances) refers to an instance assigned to a serial port, such as [MAV_0_CONFIG](../advanced_config/parameter_reference.md#MAV_0_CONFIG).
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- RC checks are run for any option that uses RC (so not for `MAVLink only` or `Disable manual control`).
|
||||
- When using priority sources, sources are evaluated as soon as they become valid and may trigger an immediate switch (if higher priority than the currently active source).
|
||||
|
||||
@@ -72,7 +72,7 @@ The ESC RPM feedback is used to track the rotor blade pass frequency and its har
|
||||
|
||||
ESC RPM feedback requires ESCs capable of providing RPM feedback such as [DShot](../peripherals/dshot.md) with telemetry connected, a bidirectional DShot set up ([work in progress](https://github.com/PX4/PX4-Autopilot/pull/23863)), or [UAVCAN/DroneCAN ESCs](../dronecan/escs.md).
|
||||
Before enabling, make sure that the ESC RPM is correct.
|
||||
You might have to adjust the [pole count of the motors](../advanced_config/parameter_reference.md#MOT_POLE_COUNT).
|
||||
You might have to adjust the per-motor pole count (`DSHOT_MOT_POL1`–`DSHOT_MOT_POL12`).
|
||||
|
||||
The following parameters should be set to enable and configure dynamic notch filters:
|
||||
|
||||
|
||||
@@ -342,7 +342,7 @@ PX4-Autopilot/
|
||||
│ │ ├── public_key.pub # Public key in hex format
|
||||
```
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- The script will not overwrite any existing keys in the folders.
|
||||
It will generate a new public key if the folder only includes a private key.
|
||||
|
||||
@@ -97,7 +97,7 @@ There is also CAN built-in bus termination via [CANNODE_TERM](../advanced_config
|
||||
You need to set necessary [DroneCAN](index.md) parameters and define offsets if the sensor is not centred within the vehicle:
|
||||
|
||||
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
||||
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK G5 RTK GPS from the vehicle's centre of gravity.
|
||||
- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK G5 RTK GPS from the vehicle's centre of gravity.
|
||||
|
||||
## Значення LED індикаторів
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
|
||||
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
|
||||
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
|
||||
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
||||
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK G5 RTK HEADING GPS from the vehicle's centre of gravity.
|
||||
- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK G5 RTK HEADING GPS from the vehicle's centre of gravity.
|
||||
|
||||
### Parameter references
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ DroneCAN configuration in PX4 is explained in more detail in [DroneCAN > Enablin
|
||||
|
||||
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
|
||||
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
||||
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK GPS from the vehicles centre of gravity.
|
||||
- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK GPS from the vehicles centre of gravity.
|
||||
|
||||
### ARK GPS Configuration
|
||||
|
||||
|
||||
@@ -84,8 +84,9 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
|
||||
|
||||
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
|
||||
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
|
||||
- If using [Moving Baseline & GPS Heading](#setting-up-moving-baseline--gps-heading), set [SENS_GPS_PRIME](../advanced_config/parameter_reference.md#SENS_GPS_PRIME) to the CAN node ID of the _Moving Base_ module. The moving base is preferred because the rover receiver in a moving baseline configuration can experience degraded navigation rate and increased data latency when corrections are intermittent.
|
||||
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
||||
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK RTK GPS from the vehicles centre of gravity.
|
||||
- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK RTK GPS from the vehicles centre of gravity.
|
||||
|
||||
### ARK RTK GPS Configuration
|
||||
|
||||
@@ -137,6 +138,7 @@ For more information see [Rover and Fixed Base](../dronecan/index.md#rover-and-f
|
||||
- On the _Moving Base_, set the following:
|
||||
- [GPS_UBX_MODE](../advanced_config/parameter_reference.md#GPS_UBX_MODE) to `4`.
|
||||
- [CANNODE_PUB_MBD](../advanced_config/parameter_reference.md#CANNODE_PUB_MBD) to `1`.
|
||||
- On the _Flight Controller_, set [SENS_GPS_PRIME](../advanced_config/parameter_reference.md#SENS_GPS_PRIME) to the CAN node ID of the _Moving Base_ (see [PX4 Configuration](#px4-configuration)).
|
||||
|
||||
Налаштування через UART:
|
||||
|
||||
@@ -155,6 +157,7 @@ For more information see [Rover and Fixed Base](../dronecan/index.md#rover-and-f
|
||||
- [GPS_YAW_OFFSET](../advanced_config/parameter_reference.md#GPS_YAW_OFFSET) to `0` if your _Rover_ is in front of your _Moving Base_, `90` if _Rover_ is right of _Moving Base_, `180` if _Rover_ is behind _Moving Base_, or `270` if _Rover_ is left of _Moving Base_.
|
||||
- On the _Moving Base_, set the following:
|
||||
- [GPS_UBX_MODE](../advanced_config/parameter_reference.md#GPS_UBX_MODE) to `2`.
|
||||
- On the _Flight Controller_, set [SENS_GPS_PRIME](../advanced_config/parameter_reference.md#SENS_GPS_PRIME) to the CAN node ID of the _Moving Base_ (see [PX4 Configuration](#px4-configuration)).
|
||||
|
||||
For more information see [Rover and Moving Base](../dronecan/index.md#rover-and-moving-base) in the DroneCAN guide.
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
|
||||
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
|
||||
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
|
||||
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
||||
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK RTK GPS L1 L5 from the vehicles centre of gravity.
|
||||
- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK RTK GPS L1 L5 from the vehicles centre of gravity.
|
||||
|
||||
### ARK RTK GPS L1 L5 Configuration
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ You need to set necessary [DroneCAN](index.md) parameters and define offsets if
|
||||
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
|
||||
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
|
||||
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
||||
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK X20 RTK GPS from the vehicles centre of gravity.
|
||||
- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK X20 RTK GPS from the vehicles centre of gravity.
|
||||
|
||||
### ARK X20 RTK GPS Configuration
|
||||
|
||||
|
||||
@@ -94,4 +94,4 @@ DroneCAN configuration in PX4 is explained in more detail in [DroneCAN > Enablin
|
||||
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
|
||||
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
||||
- Set [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM) to `1` if this is that last node on the CAN bus.
|
||||
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK GPS from the vehicles centre of gravity.
|
||||
- The parameters [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ) can be set to account for the offset of the ARK GPS from the vehicles centre of gravity.
|
||||
|
||||
@@ -194,7 +194,7 @@ GPS CANNODE parameter ([set using QGC](#qgc-cannode-parameter-configuration)):
|
||||
|
||||
Інші параметри PX4:
|
||||
|
||||
- If the GPS is not positioned at the vehicle centre of gravity you can account for the offset using [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z).
|
||||
- If the GPS is not positioned at the vehicle centre of gravity you can account for the offset using [SENS_GPS0_OFFX](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS0_OFFY](../advanced_config/parameter_reference.md#SENS_GPS0_OFFY) and [SENS_GPS0_OFFZ](../advanced_config/parameter_reference.md#SENS_GPS0_OFFZ).
|
||||
- If the GPS module provides yaw information, you can enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
|
||||
|
||||
#### RTK-GPS
|
||||
|
||||
@@ -42,7 +42,7 @@ Each function is represented by a value that defines two behaviours: one when th
|
||||
| 6 | Status/Green | System status colour | Зелений |
|
||||
| 7 | Status/Off | System status colour | Off |
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- The [system status colours](../getting_started/led_meanings.md#ui-led) is the same LED pattern used by the flight controller's onboard status LED (e.g. red when disarmed, green when armed and ready).
|
||||
- A fixed colour, commonly used to indicate aircraft orientation. For example it is a common convention to have a red light on the port side, green on starboard, or white to the rear.
|
||||
|
||||
@@ -58,6 +58,18 @@ The ESC comes in variants without connectors that you can solder in place, and a
|
||||
- Open source AM32 firmware
|
||||
- [DIU Blue Framework Listed](https://www.diu.mil/blue-uas/framework)
|
||||
|
||||
## Конфігурація PX4
|
||||
|
||||
The ARK 4IN1 ESC supports DShot 300/600, Bidirectional DShot, and PWM input protocols.
|
||||
|
||||
- **Bidirectional DShot**: Select BDShot300 or BDShot600 in the [Actuator Configuration](../config/actuators.md) to enable eRPM telemetry.
|
||||
- **[Extended DShot Telemetry (EDT)](https://github.com/bird-sanctuary/extended-dshot-telemetry)**: AM32 firmware supports EDT, which provides temperature, voltage, and current through the BDShot signal. Enable with `DSHOT_BIDIR_EDT=1`.
|
||||
- **AM32 EEPROM Settings**: Set `DSHOT_ESC_TYPE=1` to enable reading and writing ESC firmware settings via a ground station.
|
||||
|
||||
See [DShot ESCs](../peripherals/dshot.md) for full setup details.
|
||||
|
||||
## Дивіться також
|
||||
|
||||
- [ARK 4IN1 ESC CONS](https://docs.arkelectron.com/electronic-speed-controller/ark-4in1-esc) (ARK Docs)
|
||||
- [DShot and Bidirectional DShot](https://brushlesswhoop.com/dshot-and-bidirectional-dshot/) (brushlesswhoop.com - General DShot reference)
|
||||
- [Extended DShot Telemetry (EDT) Specification](https://github.com/bird-sanctuary/extended-dshot-telemetry) (bird-sanctuary)
|
||||
|
||||
@@ -18,6 +18,7 @@ This category includes boards that are not fully compliant with the pixhawk stan
|
||||
- [ARK Electronics ARKV6X](../flight_controller/ark_v6x.md) (and [ARK Electronics Pixhawk Autopilot Bus Carrier](../flight_controller/ark_pab.md))
|
||||
- [ARK FPV Flight Controller](../flight_controller/ark_fpv.md)
|
||||
- [ARK Pi6X Flow Flight Controller](../flight_controller/ark_pi6x.md)
|
||||
- [CORVON 743v1](../flight_controller/corvon_743v1.md)
|
||||
- [CUAV Nora](../flight_controller/cuav_nora.md) (CUAV X7 variant)
|
||||
- [CUAV V5+](../flight_controller/cuav_v5_plus.md) (FMUv5)
|
||||
- [CUAV V5 nano](../flight_controller/cuav_v5_nano.md) (FMUv5)
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
# CORVON 743v1
|
||||
|
||||
<Badge type="tip" text="PX4 v1.18" />
|
||||
|
||||
:::warning
|
||||
PX4 не розробляє цей (або будь-який інший) автопілот. Contact the manufacturer for hardware support or compliance issues.
|
||||
:::
|
||||
|
||||
The _CORVON 743v1_ is a flight controller designed by Feikong Technology Co., Ltd under the CORVON brand.
|
||||
It features a powerful STM32H743 processor, dual high-performance IMUs (BMI088/BMI270), and an extensive array of interfaces.
|
||||
|
||||
With its highly integrated 36x36mm footprint and 9g weight, and specialized interfaces like a direct plug-and-play DJI O3 Air Unit connector, this flight controller is optimized for space-constrained FPV builds and agile multirotors that require top-tier processing power and sensor redundancy.
|
||||
|
||||
The board uses [Pixhawk Autopilot Standard Connections](https://docs.px4.io/main/en/flight_controller/autopilot_pixhawk_standard.html).
|
||||
|
||||
<img src="../../assets/flight_controller/corvon_743v1/corvon_743v1_top.jpg" width="400px" title="CORVON 743v1 Top Baseboard" /> <img src="../../assets/flight_controller/corvon_743v1/corvon_743v1_bottom.jpg" width="400px" title="CORVON 743v1 Bottom Interfaces" />
|
||||
|
||||
:::info
|
||||
This flight controller is [manufacturer supported](../flight_controller/autopilot_manufacturer_supported.md).
|
||||
:::
|
||||
|
||||
## Основні характеристики
|
||||
|
||||
- **MCU:** STM32H743VIT6 MCU (32 Bit Arm® Cortex®-M7, 480MHz, 2MB Flash, 1MB RAM)
|
||||
- **IMU:** Bosch BMI088, BMI270 (Dual IMU redundancy)
|
||||
- **Barometer:** DPS310
|
||||
- **Magnetometer:** IST8310
|
||||
- **OSD:** Onboard AT7456E
|
||||
- **Interfaces:**
|
||||
- 7x UARTs
|
||||
- 1x CAN (UAVCAN)
|
||||
- 1x I2C
|
||||
- Dedicated RC Input (UART6)
|
||||
- 10x PWM outputs (DShot & Bi-Directional DShot supported)
|
||||
- Dedicated DJI O3 Air Unit connector
|
||||
- **Power:**
|
||||
- 9V 3A BEC
|
||||
- 5V 3A BEC
|
||||
- ADC for battery voltage (up to 6S) and current monitoring
|
||||
|
||||
## Де купити
|
||||
|
||||
Order from [CORVON](https://corvon.tech).
|
||||
|
||||
## Physical / Mechanical
|
||||
|
||||
- **Mounting:** 30.5 x 30.5mm, Φ4mm
|
||||
- **Dimensions:** 36 x 36 x 8 mm
|
||||
- **Weight:** 9g
|
||||
|
||||
## Характеристики
|
||||
|
||||
### Processors & Sensors
|
||||
|
||||
- **FMU Processor:** STM32H743
|
||||
- 32 Bit Arm® Cortex®-M7, 480MHz
|
||||
- 2MB Flash, 1MB RAM
|
||||
- **On-board Sensors:**
|
||||
- Accel/Gyro: Bosch BMI088, BMI270
|
||||
- Barometer: DPS310
|
||||
- Compass: IST8310
|
||||
|
||||
### Power Configuration
|
||||
|
||||
The board has an internal voltage sensor and connections on the ESC connector for an external current sensor.
|
||||
|
||||
- The voltage sensor handles up to 6S LiPo batteries.
|
||||
- Two onboard BECs provide robust peripheral power (9V 3A and 5V 3A).
|
||||
|
||||
## Connectors & Pinouts
|
||||
|
||||
The following image shows the port connection details, including RC, UARTs, CAN, I2C, SWD Debug, and VTX connections.
|
||||
|
||||
<img src="../../assets/flight_controller/corvon_743v1/CORVON743V1_PortsConnection.png" width="800px" title="CORVON 743v1 Ports" />
|
||||
|
||||
### Standard Serial Port Mapping
|
||||
|
||||
| UART | PX4 Target Config | Default Usage |
|
||||
| ------ | ----------------- | ------------- |
|
||||
| USART1 | TELEM1 | MAVLink |
|
||||
| UART4 | TELEM2 | MAVLink |
|
||||
| USART2 | GPS1 | GPS |
|
||||
| USART3 | TELEM3 | |
|
||||
| UART8 | URT6 | |
|
||||
| USART6 | RC | RC-вхід |
|
||||
| UART7 | TELEM4 | ESC Telemetry |
|
||||
|
||||
### Відладочний порт
|
||||
|
||||
The board features a **4-pin SWD Debug** interface located on the right side of the board. This includes `SWCLK`, `SWDIO`, `3V3`, and `GND` for full hardware debugging. While a dedicated UART isn't strictly reserved for the NSH console by default, the full-speed USB connection provides MAVLink Console access out of the box.
|
||||
|
||||
### RC-вхід
|
||||
|
||||
RC Input is mapped to **UART6** via the explicit `SBUS/CRSF` connector block.
|
||||
|
||||
- It fully supports PX4's standard `RC_INPUT` module protocols.
|
||||
- The connector exposes both `RX6` and `TX6`, which makes it fully capable of bidirectional receiver protocols such as TBS Crossfire (CRSF), ELRS, and FPort, as well as traditional single-wire standards like SBUS (which operates inverted on RX6).
|
||||
|
||||
## Building/Loading Firmware
|
||||
|
||||
:::tip
|
||||
Most users will not need to build this firmware (from PX4 v1.18).
|
||||
It is pre-built and automatically installed by _QGroundControl_ when appropriate hardware is connected.
|
||||
:::
|
||||
|
||||
To [build PX4](../dev_setup/building_px4.md) for this target from source:
|
||||
|
||||
```sh
|
||||
make corvon_743v1_default
|
||||
```
|
||||
|
||||
Initial firmware flashing can be done over USB via QGroundControl. The bootloader status aligns with standard generic PX4 LED indications (Red = Bootloader/Error, Blue = Active/Activity, Green = Powered).
|
||||
@@ -116,7 +116,7 @@ The [Pixhawk V6X Wiring Quick Start](../assembly/quick_start_cuav_pixhawk_v6x.md
|
||||
|
||||

|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ _MR-VMU-RT1176_ connectors (following [Pixhawk Connector Standard](https://githu
|
||||
|
||||
[NXP MR-VMU-RT1176 Baseboard Pinout](https://nxp.gitbook.io/vmu-rt1176/pin-out) (nxp.gitbook.io)
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@ The [Pixhawk 6X Wiring Quick Start](../assembly/quick_start_pixhawk6x.md) provid
|
||||
- [Holybro Pixhawk Baseboard Pinout](https://docs.holybro.com/autopilot/pixhawk-6x/pixhawk-baseboard-pinout)
|
||||
- [Holybro Pixhawk Mini-Baseboard Pinout](https://docs.holybro.com/autopilot/pixhawk-6x/pixhawk-mini-baseboard-pinout)
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
|
||||
|
||||
|
||||
@@ -180,7 +180,7 @@ Sample Wiring Diagram
|
||||
- [Holybro Pixhawk Jetson Baseboard](https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-jetson-baseboard)
|
||||
- [Holybro Pixhawk RPi CM4 Baseboard](https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-rpi-cm4-baseboard)
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
|
||||
|
||||
|
||||
@@ -140,7 +140,7 @@ The [Pixhawk 6X Wiring Quick Start](../assembly/quick_start_pixhawk6x.md) provid
|
||||
- [Holybro Pixhawk Jetson Baseboard](https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-jetson-baseboard)
|
||||
- [Holybro Pixhawk RPi CM4 Baseboard](https://docs.holybro.com/autopilot/pixhawk-baseboards/pixhawk-rpi-cm4-baseboard)
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- The [camera capture pin](../camera/fc_connected_camera.md#camera-capture-configuration) (`PI0`) is pin 2 on the AD&IO port, marked above as `FMU_CAP1`.
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ When throw launch is enabled, the vehicle is initially armed in a "lockdown" sta
|
||||
Транспортний засіб виявляє, що його викинули на підставі досягнення певної швидкості (5 м/с), а потім запускає двигуни на вершині кидка (як тільки він визначає, що почав падати).
|
||||
Вам потрібно кинути транспортний засіб настільки високо, щоб він міг стабілізувати свою висоту добре до того, як впаде десь близько до людей або перешкод.
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- Режим за замовчуванням вимкнено, і його необхідно активувати, використовуючи [параметр](#parameters), перш ніж озброювати.
|
||||
- Коли ввімкнено, ви не можете злітати з землі, використовуючи звичайні режими.
|
||||
|
||||
@@ -164,6 +164,42 @@ $$\dot{B} = \gamma - \frac{\dot{V_T}}{g}$$
|
||||
|
||||
## Контролер положення фіксованого крила
|
||||
|
||||
### Setpoint modificaiton
|
||||
|
||||
Most fixed-wing aircraft cannot generate a sustained yaw rate using the rudder alone. As a result, the yaw component of the quaternion attitude error should be removed before computing the control action.
|
||||
|
||||
This is achieved by premultiplying the setpoint quaternion with a rotation about the global down axis. The additional rotation cancels the yaw component of the attitude error while preserving the roll and pitch components.
|
||||
|
||||
The yaw offset is
|
||||
|
||||
$$
|
||||
\psi =-2\frac{\hat{q}_0 q_3 - \hat{q}_1 q_2 + \hat{q}_2 q_1 -\hat{q}_3 q_0}
|
||||
{\hat{q}_0 q_0 - \hat{q}_1 q_1 - \hat{q}_2 q_2 + \hat{q}_3 q_3}
|
||||
$$
|
||||
|
||||
The quaternion representing the yaw offset is
|
||||
|
||||
$$
|
||||
ℚ_{\text{yaw}} =
|
||||
\operatorname{normalize}
|
||||
\left(
|
||||
\begin{bmatrix}
|
||||
1 \
|
||||
0 \
|
||||
0 \
|
||||
\frac{\psi}{2}
|
||||
\end{bmatrix}
|
||||
\right)
|
||||
$$
|
||||
|
||||
The corrected setpoint quaternion is then obtained by applying the rotation
|
||||
|
||||
$$
|
||||
ℚ_{\text{sp, corrected}} = ℚ_{\text{yaw}} \otimes ℚ_{sp}
|
||||
$$
|
||||
|
||||
### Quaternion based attitude controller
|
||||
|
||||

|
||||
|
||||
<!-- The drawing is on draw.io: https://drive.google.com/file/d/1ibxekmtc6Ljq60DvNMplgnnU-JOvKYLQ/view?usp=sharing
|
||||
@@ -186,12 +222,16 @@ The feedforward gain is used to compensate for aerodynamic damping.
|
||||
|
||||
### Поворотна координація
|
||||
|
||||
Контролери крену та тангажу мають однакову структуру, і довжинна та поперечна динаміка вважаються достатньо роз'єднаними, щоб працювати незалежно один від одного.
|
||||
Контролер курсу, однак, генерує встановлення швидкості курсу, використовуючи обмеження координації повороту для мінімізації бокового прискорення, що виникає, коли літак слідкує. Алгоритм узгодження повороту базується виключно на узгодженому розрахунку геометрії повороту.
|
||||
The yaw rate setpoint is generated using the turn coordination constraint in order to minimize lateral acceleration, generated when the aircraft is slipping.
|
||||
|
||||
$$\dot{\Psi}_{sp} = \frac{g}{V_T} \tan{\phi_{sp}} \cos{\theta_{sp}}$$
|
||||
$$r_{sp} = \frac{2g}{V_T}\left(q_0 q_1 + q_2 q_3\right)$$
|
||||
|
||||
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.
|
||||
This 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.
|
||||
|
||||
To compensate for the non-zero pitch rate that naturally occurs during coordinated turns, a geometry-based feedforward term is added to the pitch-rate command.
|
||||
This feedforward term accounts for the aircraft's current attitude and airspeed so that the controller does not need to generate this motion purely through feedback.
|
||||
|
||||
$$q_{sp}^{ff} = \frac{4g(q_0 q_1 + q_2 q_3)^2}{V(1 - 2q_1^2 - 2q_2^2)}$$
|
||||
|
||||
## Диспетчер польотів VTOL
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ QuadPlane VTOL Fun Cub є стандартним повітряним судно
|
||||
Motor and servo wiring is nearly entirely up to you, but should match the [Generic Standard VTOL](../airframes/airframe_reference.md#vtol_standard_vtol_generic_standard_vtol) configuration, as shown in the airframe reference.
|
||||
The geometry and output assignment can be configured in the [Actuators Configuration](../config/actuators.md#actuator-outputs)
|
||||
|
||||
Наприклад, ви можете з’єднати його так, як у цьому прикладі (орієнтація як у "сидячи в літаку"):
|
||||
For example, you might wire it up like this example (orientation as if "sitting in the plane"):
|
||||
|
||||
| Порт | Підключення |
|
||||
| ------ | ---------------------------------------------- |
|
||||
@@ -51,10 +51,10 @@ The geometry and output assignment can be configured in the [Actuators Configura
|
||||
| MAIN 3 | Передній лівий мотор (CW) |
|
||||
| MAIN 4 | Правий задній мотор (CW) |
|
||||
| AUX 1 | Лівий елерон TODO |
|
||||
| AUX 2 | Правий елерон |
|
||||
| AUX 2 | Right aileron |
|
||||
| AUX 3 | Elevator |
|
||||
| AUX 4 | Rudder |
|
||||
| AUX 5 | Тяга |
|
||||
| AUX 5 | Throttle |
|
||||
|
||||
For further instructions on wiring and configurations please see:
|
||||
[Standard VTOL Wiring and Configuration](../config_vtol/vtol_quad_configuration.md). <!-- replace with Pixhawk Wiring Quickstart -->
|
||||
@@ -67,9 +67,9 @@ For further instructions on wiring and configurations please see:
|
||||
|
||||
2. Configure the outputs and geometry following the instructions in [Actuators Configuration](../config/actuators.md)
|
||||
|
||||
3. За замовчуванням параметри часто достатні для стабільного польоту. For more detailed tuning information see [Standard VTOL Wiring and Configuration](../config_vtol/vtol_quad_configuration.md).
|
||||
3. The default parameters are often sufficient for stable flight. For more detailed tuning information see [Standard VTOL Wiring and Configuration](../config_vtol/vtol_quad_configuration.md).
|
||||
|
||||
Після завершення калібрування, VTOL готовий до польоту.
|
||||
After you finish calibration the VTOL is ready to fly.
|
||||
|
||||
## Відео
|
||||
|
||||
|
||||
@@ -90,17 +90,17 @@ Please note that the conversion in this build log is performed on a wing that sh
|
||||
Виходи Pixhawk повинні бути підключені таким чином (орієнтація, як бачиться
|
||||
як "сидячи в літаку").
|
||||
|
||||
| Порт | Підключення |
|
||||
| ------ | -------------------------- |
|
||||
| MAIN 1 | Передній правий мотор, CCW |
|
||||
| MAIN 2 | Задній лівий мотор, CCW |
|
||||
| MAIN 3 | Передній лівий мотор, CW |
|
||||
| MAIN 4 | Задній правий мотор, CW |
|
||||
| AUX 1 | Лівий елерон |
|
||||
| AUX 2 | Правий елерон |
|
||||
| AUX 3 | Elevator |
|
||||
| AUX 4 | Rudder |
|
||||
| AUX 5 | Тяга |
|
||||
| Порт | Підключення |
|
||||
| ------ | ---------------------- |
|
||||
| MAIN 1 | Front right motor, CCW |
|
||||
| MAIN 2 | Back left motor, CCW |
|
||||
| MAIN 3 | Front left motor, CW |
|
||||
| MAIN 4 | Back right motor, CW |
|
||||
| AUX 1 | Left aileron |
|
||||
| AUX 2 | Right aileron |
|
||||
| AUX 3 | Elevator |
|
||||
| AUX 4 | Rudder |
|
||||
| AUX 5 | Throttle |
|
||||
|
||||
:::info
|
||||
The servo direction can be reversed using the PWM_REV parameters in the PWM_OUTPUT group of QGroundControl (cogwheel tab, last item in the left menu)
|
||||
|
||||
@@ -64,7 +64,7 @@ PX4 повинен працювати з будь-яким пристроєм,
|
||||
[Hb Micro M8N]: https://holybro.com/products/micro-m8n-gps
|
||||
[CubePilot Here2]: ../gps_compass/gps_hex_here2.md
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- ✓ or a specific part number indicate that a features is supported, while ✘ or empty show that the feature is not supported.
|
||||
"?" означає "невідомо".
|
||||
|
||||
@@ -74,7 +74,7 @@ PX4 supports the [u-blox M8P](https://www.u-blox.com/en/product/neo-m8p-series),
|
||||
[mosaic-G5 P3H]: https://www.septentrio.com/en/products/gnss-receivers/gnss-receiver-modules/mosaic-G5-P3H
|
||||
[D10P]: https://docs.datagnss.com/gnss/gnss_module/D10P_RTK
|
||||
|
||||
Примітки:
|
||||
Notes:
|
||||
|
||||
- ✓ or a specific part number indicate that a features is supported, while ✘ or empty show that the feature is not supported.
|
||||
"?" означає "невідомо".
|
||||
|
||||
@@ -0,0 +1,298 @@
|
||||
# Board Firmware Packaging
|
||||
|
||||
PX4 supports building distributable firmware packages for Linux-based (POSIX) boards.
|
||||
While NuttX boards produce `.px4` firmware files that are flashed via QGroundControl, POSIX boards can produce `.deb` (Debian) packages that are installed using standard Linux package management tools (`dpkg`, `apt`).
|
||||
|
||||
This page covers how manufacturers can add `.deb` packaging to their boards, with examples for both single-processor and multi-processor architectures.
|
||||
|
||||
## Загальний огляд
|
||||
|
||||
The packaging framework uses [CMake CPack](https://cmake.org/cmake/help/latest/module/CPack.html) with the DEB generator.
|
||||
It is built on two extension points in the PX4 build system:
|
||||
|
||||
- **`boards/<vendor>/<board>/cmake/package.cmake`**: CPack variable overrides (package name, version, dependencies, architecture, maintainer info). Loaded during CMake configure.
|
||||
- **`boards/<vendor>/<board>/cmake/install.cmake`**: `install()` rules that define what goes into the package (binaries, scripts, config files, service files). Loaded from `platforms/posix/CMakeLists.txt` where build targets are available.
|
||||
|
||||
When a board provides these files, CI automatically discovers and builds the `_deb` target alongside the normal firmware build.
|
||||
|
||||
## Build Command
|
||||
|
||||
For any board with packaging support:
|
||||
|
||||
```sh
|
||||
make <vendor>_<board>_deb
|
||||
```
|
||||
|
||||
Наприклад:
|
||||
|
||||
```sh
|
||||
make modalai_voxl2_deb
|
||||
```
|
||||
|
||||
This builds the `_default` configuration (and any companion builds for multi-processor boards), then runs `cpack -G DEB` in the build directory.
|
||||
The resulting `.deb` file is placed in `build/<vendor>_<board>_default/`.
|
||||
|
||||
## Adding Packaging to a Board
|
||||
|
||||
### File Structure
|
||||
|
||||
```
|
||||
boards/<vendor>/<board>/
|
||||
cmake/
|
||||
package.cmake # CPack configuration (required)
|
||||
install.cmake # Install rules (required)
|
||||
debian/
|
||||
postinst # Post-install script (optional)
|
||||
prerm # Pre-remove script (optional)
|
||||
<name>.service # Systemd unit file (optional)
|
||||
```
|
||||
|
||||
### Step 1: CPack Configuration (package.cmake)
|
||||
|
||||
This file sets CPack variables that control the `.deb` metadata.
|
||||
It is included from `cmake/package.cmake` after the base CPack defaults are configured.
|
||||
|
||||
```cmake
|
||||
# boards/<vendor>/<board>/cmake/package.cmake
|
||||
|
||||
# Derive Debian-compatible version from git tag
|
||||
# v1.17.0-alpha1-42-gabcdef -> 1.17.0~alpha1.42.gabcdef
|
||||
# v1.17.0 -> 1.17.0
|
||||
string(REGEX REPLACE "^v" "" _deb_ver "${PX4_GIT_TAG}")
|
||||
string(REGEX REPLACE "-" "~" _deb_ver "${_deb_ver}")
|
||||
string(REGEX REPLACE "~([0-9]+)~" ".\\1." _deb_ver "${_deb_ver}")
|
||||
|
||||
# Target architecture (use the target arch, not the build host)
|
||||
set(CPACK_DEBIAN_ARCHITECTURE "arm64")
|
||||
|
||||
# Package identity
|
||||
set(CPACK_DEBIAN_PACKAGE_NAME "my-px4-board")
|
||||
set(CPACK_DEBIAN_FILE_NAME "my-px4-board_${_deb_ver}_arm64.deb")
|
||||
|
||||
# Install prefix
|
||||
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
|
||||
set(CPACK_INSTALL_PREFIX "/usr")
|
||||
set(CPACK_SET_DESTDIR true)
|
||||
|
||||
# Package metadata
|
||||
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "PX4 Autopilot for My Board")
|
||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Vendor <support@vendor.com>")
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "some-dependency (>= 1.0)")
|
||||
set(CPACK_DEBIAN_PACKAGE_CONFLICTS "")
|
||||
set(CPACK_DEBIAN_PACKAGE_REPLACES "")
|
||||
|
||||
# Disable shlibdeps for cross-compiled boards
|
||||
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF)
|
||||
|
||||
# Include post-install and pre-remove scripts (optional)
|
||||
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||
"${PX4_BOARD_DIR}/debian/postinst;${PX4_BOARD_DIR}/debian/prerm")
|
||||
```
|
||||
|
||||
**Key variables:**
|
||||
|
||||
| Змінні | Ціль |
|
||||
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `CPACK_DEBIAN_ARCHITECTURE` | Target architecture. Set explicitly for cross-compiled boards since `dpkg --print-architecture` reports the build host, not the target. |
|
||||
| `CPACK_DEBIAN_PACKAGE_NAME` | Package name as it appears in `dpkg -l`. |
|
||||
| `CPACK_DEBIAN_FILE_NAME` | Output `.deb` filename. |
|
||||
| `CPACK_DEBIAN_PACKAGE_DEPENDS` | Runtime dependencies (comma-separated, Debian format). |
|
||||
| `CPACK_DEBIAN_PACKAGE_SHLIBDEPS` | Set to `OFF` for cross-compiled boards where `dpkg-shlibdeps` cannot inspect target binaries. |
|
||||
|
||||
### Step 2: Install Rules (install.cmake)
|
||||
|
||||
This file defines what files are packaged in the `.deb`.
|
||||
It is included from `platforms/posix/CMakeLists.txt` where the `px4` build target is available.
|
||||
|
||||
All paths are relative to `CPACK_PACKAGING_INSTALL_PREFIX` (typically `/usr`). Use `../` to install outside the prefix (e.g., `../etc/` installs to `/etc/`).
|
||||
|
||||
**Minimal example (single-processor board):**
|
||||
|
||||
```cmake
|
||||
# boards/<vendor>/<board>/cmake/install.cmake
|
||||
|
||||
# PX4 binary
|
||||
install(TARGETS px4 RUNTIME DESTINATION bin)
|
||||
|
||||
# Module alias script (generated during build)
|
||||
install(PROGRAMS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/px4-alias.sh DESTINATION bin)
|
||||
|
||||
# Startup scripts
|
||||
install(PROGRAMS
|
||||
${PX4_BOARD_DIR}/target/my-px4-start
|
||||
DESTINATION bin
|
||||
)
|
||||
|
||||
# Configuration files
|
||||
install(FILES
|
||||
${PX4_BOARD_DIR}/target/my-config.conf
|
||||
DESTINATION ../etc/my-board
|
||||
)
|
||||
|
||||
# Systemd service
|
||||
install(FILES ${PX4_BOARD_DIR}/debian/my-px4.service
|
||||
DESTINATION ../etc/systemd/system
|
||||
)
|
||||
|
||||
# Component metadata
|
||||
install(FILES
|
||||
${PX4_BINARY_DIR}/actuators.json.xz
|
||||
${PX4_BINARY_DIR}/parameters.json.xz
|
||||
DESTINATION ../data/px4/etc/extras
|
||||
OPTIONAL
|
||||
)
|
||||
install(FILES ${PX4_BINARY_DIR}/events/all_events.json.xz
|
||||
DESTINATION ../data/px4/etc/extras
|
||||
OPTIONAL
|
||||
)
|
||||
```
|
||||
|
||||
### Step 3: Debian Scripts (optional)
|
||||
|
||||
#### postinst
|
||||
|
||||
Runs after the package is installed. Common tasks:
|
||||
|
||||
- Create `px4-*` module symlinks from `px4-alias.sh`
|
||||
- Set up required directories with correct ownership
|
||||
- Run `systemctl daemon-reload` to pick up the service file
|
||||
- Board-specific setup (e.g., DSP signature generation)
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Create px4-* symlinks
|
||||
if [ -f /usr/bin/px4-alias.sh ]; then
|
||||
grep "^alias " /usr/bin/px4-alias.sh | \
|
||||
sed "s/alias \(px4-[a-zA-Z0-9_]*\)=.*/\1/" | while read cmd; do
|
||||
ln -sf px4 "/usr/bin/${cmd}"
|
||||
done
|
||||
fi
|
||||
|
||||
# Create data directories
|
||||
mkdir -p /data/px4/param
|
||||
mkdir -p /data/px4/etc/extras
|
||||
|
||||
# Reload systemd
|
||||
if command -v systemctl > /dev/null 2>&1; then
|
||||
systemctl daemon-reload
|
||||
fi
|
||||
```
|
||||
|
||||
#### prerm
|
||||
|
||||
Runs before the package is removed:
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Stop the service
|
||||
if command -v systemctl > /dev/null 2>&1; then
|
||||
systemctl stop my-px4 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Remove px4-* symlinks
|
||||
for f in /usr/bin/px4-*; do
|
||||
if [ -L "$f" ] && [ "$(readlink "$f")" = "px4" ]; then
|
||||
rm -f "$f"
|
||||
fi
|
||||
done
|
||||
```
|
||||
|
||||
Both scripts must be executable (`chmod +x`).
|
||||
|
||||
## Multi-Processor Boards
|
||||
|
||||
Some boards run PX4 across multiple processors, for example the ModalAI VOXL2 which has a POSIX apps processor (ARM) and a Hexagon DSP (SLPI).
|
||||
These produce two separate CMake builds, but the `.deb` must contain artifacts from both.
|
||||
|
||||
### How It Works
|
||||
|
||||
1. The `_default` build (POSIX/apps processor) owns the `.deb`.
|
||||
2. The Makefile `%_deb` target builds `_default`, which chains any companion builds as CMake prerequisites.
|
||||
3. The `install.cmake` pulls companion build artifacts via absolute path to the sibling build directory.
|
||||
4. CPack runs in the `_default` build tree and produces a single `.deb`.
|
||||
|
||||
### Companion Build Artifacts
|
||||
|
||||
In `install.cmake`, reference the companion build output by absolute path:
|
||||
|
||||
```cmake
|
||||
# DSP firmware blob from companion SLPI build
|
||||
set(SLPI_BUILD_DIR "${PX4_SOURCE_DIR}/build/<vendor>_<board>-slpi_default")
|
||||
|
||||
install(FILES ${SLPI_BUILD_DIR}/platforms/qurt/libpx4.so
|
||||
DESTINATION lib/rfsa/adsp
|
||||
OPTIONAL
|
||||
)
|
||||
```
|
||||
|
||||
The `OPTIONAL` keyword allows the `.deb` to build even when the companion build hasn't run (useful for development/testing of just the apps-processor side).
|
||||
|
||||
### VOXL2 Reference
|
||||
|
||||
The VOXL2 board is a complete working example of multi-processor packaging:
|
||||
|
||||
```
|
||||
boards/modalai/voxl2/
|
||||
cmake/
|
||||
package.cmake # CPack config: voxl-px4, arm64, deps, shlibdeps off
|
||||
install.cmake # px4 binary, SLPI libpx4.so, scripts, configs, metadata
|
||||
debian/
|
||||
postinst # Symlinks, DSP signature, directory setup
|
||||
prerm # Stop service, remove symlinks
|
||||
voxl-px4.service # Systemd unit (after sscrpcd, restart on-failure)
|
||||
target/
|
||||
voxl-px4 # Main startup wrapper
|
||||
voxl-px4-start # PX4 module startup script
|
||||
```
|
||||
|
||||
The resulting `.deb` installs:
|
||||
|
||||
| Path | Contents |
|
||||
| -------------------------------------- | ------------------------------------------------- |
|
||||
| `/usr/bin/px4` | Apps processor PX4 binary |
|
||||
| `/usr/bin/px4-alias.sh` | Module alias script |
|
||||
| `/usr/bin/voxl-px4` | Startup wrapper |
|
||||
| `/usr/bin/voxl-px4-start` | Module startup script |
|
||||
| `/usr/lib/rfsa/adsp/libpx4.so` | DSP firmware (from SLPI build) |
|
||||
| `/etc/modalai/*.config` | Board configuration files |
|
||||
| `/etc/systemd/system/voxl-px4.service` | Systemd service |
|
||||
| `/data/px4/etc/extras/*.json.xz` | Component metadata |
|
||||
|
||||
## CI Integration
|
||||
|
||||
### Automatic Discovery
|
||||
|
||||
The CI system (`Tools/ci/generate_board_targets_json.py`) automatically discovers boards with `cmake/package.cmake` and adds a `<vendor>_<board>_deb` target to the board's existing CI group.
|
||||
No manual CI configuration is needed.
|
||||
|
||||
### Artifact Collection
|
||||
|
||||
The `Tools/ci/package_build_artifacts.sh` script collects `.deb` files alongside `.px4` and `.elf` artifacts.
|
||||
On tagged releases, `.deb` files are uploaded to both S3 and GitHub Releases.
|
||||
|
||||
## Version Format
|
||||
|
||||
The `.deb` version is derived from `PX4_GIT_TAG` using Debian-compatible formatting:
|
||||
|
||||
| Git Tag | Debian Version | Примітки |
|
||||
| --------------------------- | -------------------------- | --------------------------------------------------------- |
|
||||
| `v1.17.0` | `1.17.0` | Stable release |
|
||||
| `v1.17.0-beta1` | `1.17.0~beta1` | Pre-release (`~` sorts before release) |
|
||||
| `v1.17.0-alpha1-42-gabcdef` | `1.17.0~alpha1.42.gabcdef` | Development build |
|
||||
|
||||
The `~` prefix in Debian versioning ensures pre-releases sort lower than the final release: `1.17.0~beta1 < 1.17.0`.
|
||||
|
||||
## Checklist for New Boards
|
||||
|
||||
1. Create `boards/<vendor>/<board>/cmake/package.cmake` with CPack variables
|
||||
2. Create `boards/<vendor>/<board>/cmake/install.cmake` with install rules
|
||||
3. (Optional) Create `boards/<vendor>/<board>/debian/postinst` and `prerm`
|
||||
4. (Optional) Create `boards/<vendor>/<board>/debian/<name>.service`
|
||||
5. Test locally: `make <vendor>_<board>_deb`
|
||||
6. Verify: `dpkg-deb --info build/<vendor>_<board>_default/<name>_*.deb`
|
||||
7. Verify: `dpkg-deb --contents build/<vendor>_<board>_default/<name>_*.deb`
|
||||
8. CI picks it up automatically on the next push
|
||||
@@ -9,6 +9,7 @@ It also links instructions for how you can add PX4 support for:
|
||||
|
||||
- [Adding Standard Messages](../mavlink/adding_messages.md)
|
||||
- [Streaming MAVLink messages](../mavlink/streaming_messages.md)
|
||||
- [Configuring/Using MAVLink Profiles](../mavlink/mavlink_profiles.md)
|
||||
- [Handling incoming MAVLink messages (and writing to a uORB topic)](../mavlink/receiving_messages.md)
|
||||
- [Custom MAVLink Messages](../mavlink/custom_messages.md)
|
||||
- [Message Signing](../mavlink/message_signing.md)
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
# MAVLink Profiles
|
||||
|
||||
A MAVLink _profile_ (also called a _mode_) defines a set of messages that can be streamed by default on a MAVLink channel and their rates.
|
||||
|
||||
This section lists the profiles, and explains how they can be used and extended.
|
||||
|
||||
## Available Profiles
|
||||
|
||||
The available profiles (in source-code declaration order) are:
|
||||
|
||||
- _Normal_ (`MAVLINK_MODE_NORMAL`): Set of messages for a GCS.
|
||||
- _Onboard_ (`MAVLINK_MODE_ONBOARD`): Set of messages for a companion computer on a fast link (such as Ethernet).
|
||||
- _Gimbal_ (`MAVLINK_MODE_GIMBAL`): Messages for a gimbal. Note this also enables message forwarding.
|
||||
- _External Vision_ (`MAVLINK_MODE_EXTVISION`): Messages for offboard vision systems.
|
||||
- _External Vision Minimal_ (`MAVLINK_MODE_EXTVISIONMIN`): Messages for offboard vision systems on slower links.
|
||||
- _OSD_ (`MAVLINK_MODE_OSD`): Set of messages for an OSD system.
|
||||
- _Magic_ (`MAVLINK_MODE_MAGIC`): No messages streamed by default. Used when configuring streaming dynamically via MAVLink.
|
||||
- _Custom_ (`MAVLINK_MODE_CUSTOM`): Same as `MAVLINK_MODE_MAGIC`.
|
||||
- _Config_ (`MAVLINK_MODE_CONFIG`): Set of messages for configuration interface, sent at higher rates. This is used, for example, to send the `MAVLINK_MODE_NORMAL` message set via USB to a GCS.
|
||||
- _Iridium_ (`MAVLINK_MODE_IRIDIUM`): Streams `HIGH_LATENCY2` message to an iridium satellite phone.
|
||||
- _Minimal_ (`MAVLINK_MODE_MINIMAL`): Minimal set of messages for use with a GCS on a poor telemetry link.
|
||||
- _Onboard Low Bandwidth_ (`MAVLINK_MODE_ONBOARD_LOW_BANDWIDTH`): Set of messages to be streamed to a companion computer for re-routing to a reduced-traffic link, such as a GCS.
|
||||
- _Low Bandwidth_ (`MAVLINK_MODE_LOW_BANDWIDTH`): Reduced message set for low bandwidth links.
|
||||
- _uAvionix_ (`MAVLINK_MODE_UAVIONIX`): Messages for a uAvionix ADS-B beacon.
|
||||
- _Distance Sensor_ (`MAVLINK_MODE_DISTANCE_SENSOR`): Streams distance sensor data at unlimited rate.
|
||||
|
||||
:::tip
|
||||
The profile defines the _default_ messages and rates.
|
||||
A connected MAVLink system can still request the streams/rates it wants using [MAV_CMD_SET_MESSAGE_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL).
|
||||
:::
|
||||
|
||||
To find the exact messages in each profile, search for ` configure_streams_to_default` (or the above profile names) in [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp).
|
||||
|
||||
## Assigning Profiles to Ports
|
||||
|
||||
[MAVLink Peripherals](../peripherals/mavlink_peripherals.md) explains how to set up a port for communicating over MAVLink.
|
||||
This uses the concept of an abstract [MAVLink instance](../peripherals/mavlink_peripherals.md#mavlink-instances) which is then assigned to a serial port.
|
||||
|
||||
The profile associated with a particular MAVLink instance is set using the associated `MAV_X_MODE` parameter:
|
||||
|
||||
- [MAV_0_MODE](../advanced_config/parameter_reference.md#MAV_0_MODE)
|
||||
- [MAV_1_MODE](../advanced_config/parameter_reference.md#MAV_1_MODE)
|
||||
- [MAV_2_MODE](../advanced_config/parameter_reference.md#MAV_2_MODE)
|
||||
|
||||
There are also dedicated profile parameters for ports that are not configured via MAVLink instances:
|
||||
|
||||
- [USB_MAV_MODE](../advanced_config/parameter_reference.md#USB_MAV_MODE): Profile for the USB port (used when MAVLink is set or detected on USB).
|
||||
- [MAV_S_MODE](../advanced_config/parameter_reference.md#MAV_S_MODE): Profile for the internal SOM (System on Module) to FMU communication channel, used on boards where the FMU and companion computer are co-located on the same module.
|
||||
|
||||
Note that not all profiles can necessarily be set on these ports.
|
||||
|
||||
## Adding Messages to a Profile
|
||||
|
||||
You can add messages to a profile in appropriate `case` switch in the [Mavlink::configure_streams_to_default(const char \*configure_single_stream)](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp#L1430) method (see [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp)).
|
||||
|
||||
If you're testing with a GCS over USB you might add the message to the `MAVLINK_MODE_CONFIG` case using the `configure_stream_local()` method.
|
||||
For example, to stream `BATTERY_STATUS_DEMO` at 5 Hz:
|
||||
|
||||
```cpp
|
||||
case MAVLINK_MODE_CONFIG: // USB
|
||||
// Note: streams requiring low latency come first
|
||||
...
|
||||
configure_stream_local("BATTERY_STATUS_DEMO", 5.0f);
|
||||
...
|
||||
```
|
||||
|
||||
See [Streaming MAVLink Messages](streaming_messages.md) for a more detailed example.
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## Загальний огляд
|
||||
|
||||
[MAVLink messages](../middleware/mavlink.md) are streamed using a streaming class, derived from `MavlinkStream`, that has been added to the PX4 stream list.
|
||||
[MAVLink messages](../middleware/mavlink.md) are streamed using a streaming class, derived from `MavlinkStream`, that has been added to the [PX4 stream list](#add-the-new-class-to-the-streaming-list).
|
||||
Клас має фреймворкові методи, які ви реалізуєте, щоб PX4 міг отримати потрібну йому інформацію зі згенерованого визначення повідомлення MAVLink.
|
||||
It also has a `send()` method that is called each time the message needs to be sent — you override this to copy information from a uORB subscription to the MAVLink message object that is to be sent.
|
||||
|
||||
@@ -190,15 +190,17 @@ Most streaming classes are very similar (see examples in [/src/modules/mavlink/s
|
||||
|
||||
:::
|
||||
|
||||
Next we include our new class in [mavlink_messages.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_messages.cpp#L2193).
|
||||
Додайте рядок нижче до частини файлу, де включені всі інші потоки:
|
||||
### Add the new class to the streaming list
|
||||
|
||||
Next we add our new class to the streaming list.
|
||||
|
||||
First open [mavlink_messages.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_messages.cpp#L2193) and add the line below to the part of the file where all the other streams are included:
|
||||
|
||||
```cpp
|
||||
#include "streams/BATTERY_STATUS_DEMO.hpp"
|
||||
```
|
||||
|
||||
Finally append the stream class to the `streams_list` at the bottom of
|
||||
[mavlink_messages.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_messages.cpp)
|
||||
Then append the stream class to the `streams_list` at the bottom of [mavlink_messages.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_messages.cpp)
|
||||
|
||||
```C
|
||||
StreamListItem *streams_list[] = {
|
||||
@@ -215,25 +217,12 @@ StreamListItem *streams_list[] = {
|
||||
|
||||
## Трансляція за замовчуванням
|
||||
|
||||
The easiest way to stream your messages by default (as part of a build) is to add them to [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp) in the appropriate message group.
|
||||
The easiest way to stream your messages by default (as part of a build) is to add them to appropriate [MAVLink Profile](../mavlink/mavlink_profiles.md), such as `MAVLINK_MODE_NORMAL` if you're streaming to a GCS over WiFI, or `MAVLINK_MODE_OSD` for an OSD device.
|
||||
|
||||
Якщо ви виконаєте пошук у файлі, то знайдете групи повідомлень, визначені в інструкції switch:
|
||||
This is covered in [Adding Messages to a Profile](..//mavlink/mavlink_profiles.md#adding-messages-to-a-profile), but in summary you first open [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp), search for the method `Mavlink::configure_streams_to_default`, and then find the profile that you wish to update.
|
||||
|
||||
- `MAVLINK_MODE_NORMAL`: Streamed to a GCS.
|
||||
- `MAVLINK_MODE_ONBOARD`: Streamed to a companion computer on a fast link, such as Ethernet
|
||||
- `MAVLINK_MODE_ONBOARD_LOW_BANDWIDTH`: Streamed to a companion computer for re-routing to a reduced-traffic link, such as a GCS.
|
||||
- `MAVLINK_MODE_GIMBAL`: Streamed to a gimbal
|
||||
- `MAVLINK_MODE_EXTVISION`: Streamed to an external vision system
|
||||
- `MAVLINK_MODE_EXTVISIONMIN`: Streamed to an external vision system on a slower link
|
||||
- `MAVLINK_MODE_OSD`: Streamed to an OSD, such as an FPV headset.
|
||||
- `MAVLINK_MODE_CUSTOM`: Stream nothing by default. Використовується при налаштуванні потокового передавання за допомогою MAVLink.
|
||||
- `MAVLINK_MODE_MAGIC`: Same as `MAVLINK_MODE_CUSTOM`
|
||||
- `MAVLINK_MODE_CONFIG`: Streaming over USB with higher rates than `MAVLINK_MODE_NORMAL`.
|
||||
- `MAVLINK_MODE_MINIMAL`: Stream a minimal set of messages. Зазвичай використовується для поганого зв'язку телеметрії.
|
||||
- `MAVLINK_MODE_IRIDIUM`: Streamed to an iridium satellite phone
|
||||
|
||||
Normally you'll be testing on a GCS, so you could just add the message to the `MAVLINK_MODE_NORMAL` case using the `configure_stream_local()` method.
|
||||
Наприклад, для трансляції CA_TRAJECTORY з частотою 5 Гц:
|
||||
If you're just testing on a GCS, you could add the message to the `MAVLINK_MODE_NORMAL` case using the `configure_stream_local()` method.
|
||||
For example, to stream `BATTERY_STATUS_DEMO` at 5 Hz:
|
||||
|
||||
```cpp
|
||||
case MAVLINK_MODE_CONFIG: // USB
|
||||
|
||||
+192
-190
@@ -96,203 +96,205 @@ They are not build into the module, and hence are neither published or subscribe
|
||||
:::details
|
||||
See messages
|
||||
|
||||
- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
|
||||
- [AdcReport](../msg_docs/AdcReport.md)
|
||||
- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
|
||||
- [MountOrientation](../msg_docs/MountOrientation.md)
|
||||
- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
|
||||
- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
|
||||
- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
|
||||
- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md)
|
||||
- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
|
||||
- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
|
||||
- [GpsDump](../msg_docs/GpsDump.md)
|
||||
- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
|
||||
- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
|
||||
- [EstimatorStates](../msg_docs/EstimatorStates.md)
|
||||
- [EscStatus](../msg_docs/EscStatus.md)
|
||||
- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
|
||||
- [SensorTemp](../msg_docs/SensorTemp.md)
|
||||
- [VehicleImu](../msg_docs/VehicleImu.md)
|
||||
- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
|
||||
- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
|
||||
- [OrbitStatus](../msg_docs/OrbitStatus.md)
|
||||
- [GainCompression](../msg_docs/GainCompression.md)
|
||||
- [VehicleRoi](../msg_docs/VehicleRoi.md)
|
||||
- [Vtx](../msg_docs/Vtx.md)
|
||||
- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
|
||||
- [EscEepromRead](../msg_docs/EscEepromRead.md)
|
||||
- [DebugArray](../msg_docs/DebugArray.md)
|
||||
- [FollowTarget](../msg_docs/FollowTarget.md)
|
||||
- [ButtonEvent](../msg_docs/ButtonEvent.md)
|
||||
- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
|
||||
- [GpsInjectData](../msg_docs/GpsInjectData.md)
|
||||
- [SensorTemp](../msg_docs/SensorTemp.md)
|
||||
- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
|
||||
- [SensorUwb](../msg_docs/SensorUwb.md)
|
||||
- [GpioRequest](../msg_docs/GpioRequest.md)
|
||||
- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
|
||||
- [VehicleRoi](../msg_docs/VehicleRoi.md)
|
||||
- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
|
||||
- [OrbTest](../msg_docs/OrbTest.md)
|
||||
- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
|
||||
- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
|
||||
- [WheelEncoders](../msg_docs/WheelEncoders.md)
|
||||
- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
|
||||
- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
|
||||
- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
|
||||
- [ActuatorTest](../msg_docs/ActuatorTest.md)
|
||||
- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
|
||||
- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
|
||||
- [Mission](../msg_docs/Mission.md)
|
||||
- [EventV0](../msg_docs/EventV0.md)
|
||||
- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
|
||||
- [PwmInput](../msg_docs/PwmInput.md)
|
||||
- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
|
||||
- [TuneControl](../msg_docs/TuneControl.md)
|
||||
- [CameraStatus](../msg_docs/CameraStatus.md)
|
||||
- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
|
||||
- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
|
||||
- [SystemPower](../msg_docs/SystemPower.md)
|
||||
- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
|
||||
- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
|
||||
- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
|
||||
- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
|
||||
- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
|
||||
- [HealthReport](../msg_docs/HealthReport.md)
|
||||
- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
|
||||
- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
|
||||
- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
|
||||
- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
|
||||
- [FollowTarget](../msg_docs/FollowTarget.md)
|
||||
- [DebugVect](../msg_docs/DebugVect.md)
|
||||
- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
|
||||
- [DatamanRequest](../msg_docs/DatamanRequest.md)
|
||||
- [Vtx](../msg_docs/Vtx.md)
|
||||
- [RcParameterMap](../msg_docs/RcParameterMap.md)
|
||||
- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
|
||||
- [QshellReq](../msg_docs/QshellReq.md)
|
||||
- [CameraTrigger](../msg_docs/CameraTrigger.md)
|
||||
- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
|
||||
- [DatamanResponse](../msg_docs/DatamanResponse.md)
|
||||
- [HeaterStatus](../msg_docs/HeaterStatus.md)
|
||||
- [AdcReport](../msg_docs/AdcReport.md)
|
||||
- [GeofenceResult](../msg_docs/GeofenceResult.md)
|
||||
- [GimbalControls](../msg_docs/GimbalControls.md)
|
||||
- [SensorBaro](../msg_docs/SensorBaro.md)
|
||||
- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
|
||||
- [RaptorStatus](../msg_docs/RaptorStatus.md)
|
||||
- [LedControl](../msg_docs/LedControl.md)
|
||||
- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
|
||||
- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
|
||||
- [IrlockReport](../msg_docs/IrlockReport.md)
|
||||
- [RadioStatus](../msg_docs/RadioStatus.md)
|
||||
- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
|
||||
- [Airspeed](../msg_docs/Airspeed.md)
|
||||
- [DeviceInformation](../msg_docs/DeviceInformation.md)
|
||||
- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
|
||||
- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
|
||||
- [MagWorkerData](../msg_docs/MagWorkerData.md)
|
||||
- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
|
||||
- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
|
||||
- [PowerMonitor](../msg_docs/PowerMonitor.md)
|
||||
- [RcChannels](../msg_docs/RcChannels.md)
|
||||
- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
|
||||
- [Rpm](../msg_docs/Rpm.md)
|
||||
- [VehicleImu](../msg_docs/VehicleImu.md)
|
||||
- [Gripper](../msg_docs/Gripper.md)
|
||||
- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
|
||||
- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
|
||||
- [PowerButtonState](../msg_docs/PowerButtonState.md)
|
||||
- [Ping](../msg_docs/Ping.md)
|
||||
- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
|
||||
- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
|
||||
- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
|
||||
- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
|
||||
- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
|
||||
- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
|
||||
- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
|
||||
- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
|
||||
- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
|
||||
- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
|
||||
- [DebugArray](../msg_docs/DebugArray.md)
|
||||
- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
|
||||
- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
|
||||
- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
|
||||
- [RaptorInput](../msg_docs/RaptorInput.md)
|
||||
- [NeuralControl](../msg_docs/NeuralControl.md)
|
||||
- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
|
||||
- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
|
||||
- [VehicleAirData](../msg_docs/VehicleAirData.md)
|
||||
- [SensorGyro](../msg_docs/SensorGyro.md)
|
||||
- [GainCompression](../msg_docs/GainCompression.md)
|
||||
- [EscStatus](../msg_docs/EscStatus.md)
|
||||
- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
|
||||
- [LogMessage](../msg_docs/LogMessage.md)
|
||||
- [RtlStatus](../msg_docs/RtlStatus.md)
|
||||
- [SensorAirflow](../msg_docs/SensorAirflow.md)
|
||||
- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
|
||||
- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
|
||||
- [GpsDump](../msg_docs/GpsDump.md)
|
||||
- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
|
||||
- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
|
||||
- [SensorMag](../msg_docs/SensorMag.md)
|
||||
- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
|
||||
- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
|
||||
- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
|
||||
- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
|
||||
- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
|
||||
- [AirspeedWind](../msg_docs/AirspeedWind.md)
|
||||
- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
|
||||
- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
|
||||
- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
|
||||
- [MountOrientation](../msg_docs/MountOrientation.md)
|
||||
- [ActionRequest](../msg_docs/ActionRequest.md)
|
||||
- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
|
||||
- [TecsStatus](../msg_docs/TecsStatus.md)
|
||||
- [UlogStream](../msg_docs/UlogStream.md)
|
||||
- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
|
||||
- [EscReport](../msg_docs/EscReport.md)
|
||||
- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
|
||||
- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
|
||||
- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
|
||||
- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
|
||||
- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
|
||||
- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
|
||||
- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
|
||||
- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
|
||||
- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
|
||||
- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
|
||||
- [HomePositionV0](../msg_docs/HomePositionV0.md)
|
||||
- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
|
||||
- [Cpuload](../msg_docs/Cpuload.md)
|
||||
- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
|
||||
- [InputRc](../msg_docs/InputRc.md)
|
||||
- [GpioConfig](../msg_docs/GpioConfig.md)
|
||||
- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
|
||||
- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
|
||||
- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
|
||||
- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
|
||||
- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
|
||||
- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
|
||||
- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
|
||||
- [CameraCapture](../msg_docs/CameraCapture.md)
|
||||
- [MavlinkLog](../msg_docs/MavlinkLog.md)
|
||||
- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
|
||||
- [SensorsStatus](../msg_docs/SensorsStatus.md)
|
||||
- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
|
||||
- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
|
||||
- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
|
||||
- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
|
||||
- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
|
||||
- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
|
||||
- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
|
||||
- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
|
||||
- [SensorCorrection](../msg_docs/SensorCorrection.md)
|
||||
- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
|
||||
- [OrbitStatus](../msg_docs/OrbitStatus.md)
|
||||
- [GpioOut](../msg_docs/GpioOut.md)
|
||||
- [GpioIn](../msg_docs/GpioIn.md)
|
||||
- [DebugValue](../msg_docs/DebugValue.md)
|
||||
- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
|
||||
- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
|
||||
- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
|
||||
- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
|
||||
- [SensorSelection](../msg_docs/SensorSelection.md)
|
||||
- [LoggerStatus](../msg_docs/LoggerStatus.md)
|
||||
- [EstimatorBias](../msg_docs/EstimatorBias.md)
|
||||
- [BatteryInfo](../msg_docs/BatteryInfo.md)
|
||||
- [EstimatorStates](../msg_docs/EstimatorStates.md)
|
||||
- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md)
|
||||
- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
|
||||
- [CellularStatus](../msg_docs/CellularStatus.md)
|
||||
- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
|
||||
- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
|
||||
- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
|
||||
- [MavlinkLog](../msg_docs/MavlinkLog.md)
|
||||
- [PowerMonitor](../msg_docs/PowerMonitor.md)
|
||||
- [TecsStatus](../msg_docs/TecsStatus.md)
|
||||
- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
|
||||
- [SensorAccel](../msg_docs/SensorAccel.md)
|
||||
- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
|
||||
- [PpsCapture](../msg_docs/PpsCapture.md)
|
||||
- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
|
||||
- [VelocityLimits](../msg_docs/VelocityLimits.md)
|
||||
- [Event](../msg_docs/Event.md)
|
||||
- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
|
||||
- [QshellRetval](../msg_docs/QshellRetval.md)
|
||||
- [RaptorStatus](../msg_docs/RaptorStatus.md)
|
||||
- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
|
||||
- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
|
||||
- [CameraStatus](../msg_docs/CameraStatus.md)
|
||||
- [RcParameterMap](../msg_docs/RcParameterMap.md)
|
||||
- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
|
||||
- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
|
||||
- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
|
||||
- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
|
||||
- [CameraTrigger](../msg_docs/CameraTrigger.md)
|
||||
- [HomePositionV0](../msg_docs/HomePositionV0.md)
|
||||
- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
|
||||
- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
|
||||
- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
|
||||
- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
|
||||
- [PwmInput](../msg_docs/PwmInput.md)
|
||||
- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
|
||||
- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
|
||||
- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
|
||||
- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
|
||||
- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
|
||||
- [GpsInjectData](../msg_docs/GpsInjectData.md)
|
||||
- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
|
||||
- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
|
||||
- [MissionResult](../msg_docs/MissionResult.md)
|
||||
- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
|
||||
- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
|
||||
- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
|
||||
- [InputRc](../msg_docs/InputRc.md)
|
||||
- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
|
||||
- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
|
||||
- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
|
||||
- [LoggerStatus](../msg_docs/LoggerStatus.md)
|
||||
- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
|
||||
- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
|
||||
- [RaptorInput](../msg_docs/RaptorInput.md)
|
||||
- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
|
||||
- [ActuatorTest](../msg_docs/ActuatorTest.md)
|
||||
- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
|
||||
- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
|
||||
- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
|
||||
- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
|
||||
- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
|
||||
- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
|
||||
- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
|
||||
- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
|
||||
- [SystemPower](../msg_docs/SystemPower.md)
|
||||
- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
|
||||
- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
|
||||
- [RadioStatus](../msg_docs/RadioStatus.md)
|
||||
- [QshellRetval](../msg_docs/QshellRetval.md)
|
||||
- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
|
||||
- [Gripper](../msg_docs/Gripper.md)
|
||||
- [EscReport](../msg_docs/EscReport.md)
|
||||
- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
|
||||
- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
|
||||
- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
|
||||
- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
|
||||
- [BatteryInfo](../msg_docs/BatteryInfo.md)
|
||||
- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
|
||||
- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
|
||||
- [GeofenceResult](../msg_docs/GeofenceResult.md)
|
||||
- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
|
||||
- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
|
||||
- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
|
||||
- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
|
||||
- [QshellReq](../msg_docs/QshellReq.md)
|
||||
- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
|
||||
- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
|
||||
- [DatamanRequest](../msg_docs/DatamanRequest.md)
|
||||
- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
|
||||
- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
|
||||
- [DebugValue](../msg_docs/DebugValue.md)
|
||||
- [WheelEncoders](../msg_docs/WheelEncoders.md)
|
||||
- [EstimatorBias](../msg_docs/EstimatorBias.md)
|
||||
- [VelocityLimits](../msg_docs/VelocityLimits.md)
|
||||
- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
|
||||
- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
|
||||
- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
|
||||
- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
|
||||
- [AirspeedWind](../msg_docs/AirspeedWind.md)
|
||||
- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
|
||||
- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
|
||||
- [SensorCorrection](../msg_docs/SensorCorrection.md)
|
||||
- [SensorsStatus](../msg_docs/SensorsStatus.md)
|
||||
- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
|
||||
- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
|
||||
- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
|
||||
- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
|
||||
- [GpioRequest](../msg_docs/GpioRequest.md)
|
||||
- [SensorSelection](../msg_docs/SensorSelection.md)
|
||||
- [SensorUwb](../msg_docs/SensorUwb.md)
|
||||
- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
|
||||
- [HealthReport](../msg_docs/HealthReport.md)
|
||||
- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
|
||||
- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
|
||||
- [LedControl](../msg_docs/LedControl.md)
|
||||
- [Event](../msg_docs/Event.md)
|
||||
- [SensorMag](../msg_docs/SensorMag.md)
|
||||
- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
|
||||
- [Rpm](../msg_docs/Rpm.md)
|
||||
- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
|
||||
- [EscEepromWrite](../msg_docs/EscEepromWrite.md)
|
||||
- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
|
||||
- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
|
||||
- [ActionRequest](../msg_docs/ActionRequest.md)
|
||||
- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
|
||||
- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
|
||||
- [PowerButtonState](../msg_docs/PowerButtonState.md)
|
||||
- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
|
||||
- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
|
||||
- [RtlStatus](../msg_docs/RtlStatus.md)
|
||||
- [Airspeed](../msg_docs/Airspeed.md)
|
||||
- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
|
||||
- [GimbalControls](../msg_docs/GimbalControls.md)
|
||||
- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
|
||||
- [PpsCapture](../msg_docs/PpsCapture.md)
|
||||
- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
|
||||
- [SensorBaro](../msg_docs/SensorBaro.md)
|
||||
- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
|
||||
- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
|
||||
- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
|
||||
- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
|
||||
- [SensorAirflow](../msg_docs/SensorAirflow.md)
|
||||
- [GpioConfig](../msg_docs/GpioConfig.md)
|
||||
- [UlogStream](../msg_docs/UlogStream.md)
|
||||
- [GpioIn](../msg_docs/GpioIn.md)
|
||||
- [TuneControl](../msg_docs/TuneControl.md)
|
||||
- [MagWorkerData](../msg_docs/MagWorkerData.md)
|
||||
- [EventV0](../msg_docs/EventV0.md)
|
||||
- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
|
||||
- [SensorGyro](../msg_docs/SensorGyro.md)
|
||||
- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
|
||||
- [HeaterStatus](../msg_docs/HeaterStatus.md)
|
||||
- [Mission](../msg_docs/Mission.md)
|
||||
- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
|
||||
- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
|
||||
- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
|
||||
- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
|
||||
- [DeviceInformation](../msg_docs/DeviceInformation.md)
|
||||
- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
|
||||
- [DatamanResponse](../msg_docs/DatamanResponse.md)
|
||||
- [DebugVect](../msg_docs/DebugVect.md)
|
||||
- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
|
||||
- [VehicleAirData](../msg_docs/VehicleAirData.md)
|
||||
- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
|
||||
- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
|
||||
- [NeuralControl](../msg_docs/NeuralControl.md)
|
||||
- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
|
||||
- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
|
||||
- [GpioOut](../msg_docs/GpioOut.md)
|
||||
- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
|
||||
- [LogMessage](../msg_docs/LogMessage.md)
|
||||
- [Cpuload](../msg_docs/Cpuload.md)
|
||||
- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
|
||||
- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
|
||||
- [CameraCapture](../msg_docs/CameraCapture.md)
|
||||
- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
|
||||
- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
|
||||
- [OrbTest](../msg_docs/OrbTest.md)
|
||||
- [Ping](../msg_docs/Ping.md)
|
||||
- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
|
||||
- [IrlockReport](../msg_docs/IrlockReport.md)
|
||||
- [RcChannels](../msg_docs/RcChannels.md)
|
||||
- [CellularStatus](../msg_docs/CellularStatus.md)
|
||||
|
||||
:::
|
||||
|
||||
@@ -191,28 +191,13 @@ Source: [drivers/dshot](https://github.com/PX4/PX4-Autopilot/tree/main/src/drive
|
||||
|
||||
### Опис
|
||||
|
||||
This is the DShot output driver. It is similar to the fmu driver, and can be used as drop-in replacement
|
||||
This is the DShot output driver. It can be used as drop-in replacement
|
||||
to use DShot as ESC communication protocol instead of PWM.
|
||||
|
||||
On startup, the module tries to occupy all available pins for DShot output.
|
||||
It skips all pins already in use (e.g. by a camera trigger module).
|
||||
|
||||
It supports:
|
||||
|
||||
- DShot150, DShot300, DShot600
|
||||
- telemetry via separate UART and publishing as esc_status message
|
||||
- sending DShot commands via CLI
|
||||
|
||||
### Приклади
|
||||
|
||||
Permanently reverse motor 1:
|
||||
|
||||
```
|
||||
dshot reverse -m 1
|
||||
dshot save -m 1
|
||||
```
|
||||
|
||||
After saving, the reversed direction will be regarded as the normal one. So to reverse again repeat the same commands.
|
||||
|
||||
### Usage {#dshot_usage}
|
||||
|
||||
@@ -226,36 +211,6 @@ dshot <command> [arguments...]
|
||||
values: <device>
|
||||
[-x] Swap RX/TX pins
|
||||
|
||||
reverse Reverse motor direction
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
normal Normal motor direction
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
save Save current settings
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
3d_on Enable 3D mode
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
3d_off Disable 3D mode
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
beep1 Send Beep pattern 1
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
beep2 Send Beep pattern 2
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
beep3 Send Beep pattern 3
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
beep4 Send Beep pattern 4
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
beep5 Send Beep pattern 5
|
||||
[-m <val>] Motor index (1-based, default=all)
|
||||
|
||||
stop
|
||||
|
||||
status print status info
|
||||
@@ -1109,7 +1064,7 @@ px4io <command> [arguments...]
|
||||
|
||||
## rgbled
|
||||
|
||||
Source: [drivers/lights/rgbled_ncp5623c](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled_ncp5623c)
|
||||
Source: [drivers/lights/rgbled](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled)
|
||||
|
||||
### Usage {#rgbled_usage}
|
||||
|
||||
@@ -1124,9 +1079,7 @@ rgbled <command> [arguments...]
|
||||
[-f <val>] bus frequency in kHz
|
||||
[-q] quiet startup (no message if no device found)
|
||||
[-a <val>] I2C address
|
||||
default: 57
|
||||
[-o <val>] RGB PWM Assignment
|
||||
default: 123
|
||||
default: 85
|
||||
|
||||
stop
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
pageClass: is-wide-page
|
||||
---
|
||||
|
||||
# EscEepromRead (UORB message)
|
||||
|
||||
**TOPICS:** esc_eeprom_read
|
||||
|
||||
## Fields
|
||||
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| --------- | ----------- | ---------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | us | | Time since system start |
|
||||
| firmware | `uint8` | | | ESC firmware type (see ESC_FIRMWARE enum in MAVLink) |
|
||||
| index | `uint8` | | | Index of the ESC (0 = ESC1, 1 = ESC2, etc.) |
|
||||
| length | `uint16` | | | Length of valid data |
|
||||
| data | `uint8[48]` | | | Raw ESC EEPROM data |
|
||||
|
||||
## Constants
|
||||
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| ----------------------------------------------------------------------------------------- | ------- | -------- | -------------------------------- |
|
||||
| <a id="#ORB_QUEUE_LENGTH"></a> ORB_QUEUE_LENGTH | `uint8` | 8 | To support 8 queued up responses |
|
||||
|
||||
## Source Message
|
||||
|
||||
[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EscEepromRead.msg)
|
||||
|
||||
:::details
|
||||
Click here to see original file
|
||||
|
||||
```c
|
||||
uint64 timestamp # [us] Time since system start
|
||||
uint8 firmware # [-] ESC firmware type (see ESC_FIRMWARE enum in MAVLink)
|
||||
uint8 index # [-] Index of the ESC (0 = ESC1, 1 = ESC2, etc.)
|
||||
uint16 length # [-] Length of valid data
|
||||
uint8[48] data # [-] Raw ESC EEPROM data
|
||||
|
||||
uint8 ORB_QUEUE_LENGTH = 8 # To support 8 queued up responses
|
||||
```
|
||||
|
||||
:::
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
pageClass: is-wide-page
|
||||
---
|
||||
|
||||
# EscEepromWrite (UORB message)
|
||||
|
||||
**TOPICS:** esc_eeprom_write
|
||||
|
||||
## Fields
|
||||
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| ------------------------------- | ----------- | ---------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | us | | Time since system start |
|
||||
| firmware | `uint8` | | | ESC firmware type (see ESC_FIRMWARE enum in MAVLink) |
|
||||
| index | `uint8` | | | Index of the ESC (0 = ESC1, 1 = ESC2, etc, 255 = All) |
|
||||
| length | `uint16` | | | Length of valid data |
|
||||
| data | `uint8[48]` | | | Raw ESC EEPROM data |
|
||||
| write_mask | `uint32[2]` | | | Bitmask indicating which bytes in the data array should be written (max 48 values) |
|
||||
|
||||
## Constants
|
||||
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| ----------------------------------------------------------------------------------------- | ------- | -------- | ------------------------------- |
|
||||
| <a id="#ORB_QUEUE_LENGTH"></a> ORB_QUEUE_LENGTH | `uint8` | 8 | To support 8 queued up requests |
|
||||
|
||||
## Source Message
|
||||
|
||||
[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EscEepromWrite.msg)
|
||||
|
||||
:::details
|
||||
Click here to see original file
|
||||
|
||||
```c
|
||||
uint64 timestamp # [us] Time since system start
|
||||
uint8 firmware # [-] ESC firmware type (see ESC_FIRMWARE enum in MAVLink)
|
||||
uint8 index # [-] Index of the ESC (0 = ESC1, 1 = ESC2, etc, 255 = All)
|
||||
uint16 length # [-] Length of valid data
|
||||
uint8[48] data # [-] Raw ESC EEPROM data
|
||||
uint32[2] write_mask # [-] Bitmask indicating which bytes in the data array should be written (max 48 values)
|
||||
|
||||
uint8 ORB_QUEUE_LENGTH = 8 # To support 8 queued up requests
|
||||
```
|
||||
|
||||
:::
|
||||
@@ -8,28 +8,26 @@ pageClass: is-wide-page
|
||||
|
||||
## Fields
|
||||
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| -------------------------------------- | --------- | ---------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | | | time since system start (microseconds) |
|
||||
| esc_errorcount | `uint32` | | | Number of reported errors by ESC - if supported |
|
||||
| esc_rpm | `int32` | | | Motor RPM, negative for reverse rotation [RPM] - if supported |
|
||||
| esc_voltage | `float32` | | | Voltage measured from current ESC [V] - if supported |
|
||||
| esc_current | `float32` | | | Current measured from current ESC [A] - if supported |
|
||||
| esc_temperature | `float32` | | | Temperature measured from current ESC [degC] - if supported |
|
||||
| motor_temperature | `int16` | | | Temperature measured from current motor [degC] - if supported |
|
||||
| esc_address | `uint8` | | | Address of current ESC (in most cases 1-8 / must be set by driver) |
|
||||
| esc_cmdcount | `uint8` | | | Counter of number of commands |
|
||||
| esc_state | `uint8` | | | State of ESC - depend on Vendor |
|
||||
| actuator_function | `uint8` | | | actuator output function (one of Motor1...MotorN) |
|
||||
| failures | `uint16` | | | Bitmask to indicate the internal ESC faults |
|
||||
| esc_power | `int8` | | | Applied power 0-100 in % (negative values reserved) |
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| -------------------------------------- | --------- | ---------------------------------------------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | us | | Time since system start |
|
||||
| esc_errorcount | `uint32` | | | Number of reported errors by ESC - if supported |
|
||||
| esc_rpm | `int32` | rpm | | Motor RPM, negative for reverse rotation - if supported |
|
||||
| esc_voltage | `float32` | V | | Voltage measured from current ESC - if supported |
|
||||
| esc_current | `float32` | A | | Current measured from current ESC - if supported |
|
||||
| esc_temperature | `float32` | degC | | Temperature measured from current ESC - if supported |
|
||||
| motor_temperature | `int16` | degC | | Temperature measured from current motor - if supported |
|
||||
| esc_state | `uint8` | | | State of ESC - depend on Vendor |
|
||||
| actuator_function | `uint8` | | | Actuator output function (one of Motor1...MotorN) |
|
||||
| failures | `uint16` | | [FAILURE](#FAILURE) | Bitmask to indicate the internal ESC faults |
|
||||
| esc_power | `int8` | % | [0 : 100] | Applied power (negative values reserved) |
|
||||
|
||||
## Constants
|
||||
## Enums
|
||||
|
||||
### FAILURE {#FAILURE}
|
||||
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------------ | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| <a id="#ACTUATOR_FUNCTION_MOTOR1"></a> ACTUATOR_FUNCTION_MOTOR1 | `uint8` | 101 | |
|
||||
| <a id="#ACTUATOR_FUNCTION_MOTOR_MAX"></a> ACTUATOR_FUNCTION_MOTOR_MAX | `uint8` | 112 | output_functions.yaml Motor.start + Motor.count - 1 |
|
||||
| <a id="#FAILURE_OVER_CURRENT"></a> FAILURE_OVER_CURRENT | `uint8` | 0 | (1 << 0) |
|
||||
| <a id="#FAILURE_OVER_VOLTAGE"></a> FAILURE_OVER_VOLTAGE | `uint8` | 1 | (1 << 1) |
|
||||
| <a id="#FAILURE_MOTOR_OVER_TEMPERATURE"></a> FAILURE_MOTOR_OVER_TEMPERATURE | `uint8` | 2 | (1 << 2) |
|
||||
@@ -40,7 +38,14 @@ pageClass: is-wide-page
|
||||
| <a id="#FAILURE_MOTOR_WARN_TEMPERATURE"></a> FAILURE_MOTOR_WARN_TEMPERATURE | `uint8` | 7 | (1 << 7) |
|
||||
| <a id="#FAILURE_WARN_ESC_TEMPERATURE"></a> FAILURE_WARN_ESC_TEMPERATURE | `uint8` | 8 | (1 << 8) |
|
||||
| <a id="#FAILURE_OVER_ESC_TEMPERATURE"></a> FAILURE_OVER_ESC_TEMPERATURE | `uint8` | 9 | (1 << 9) |
|
||||
| <a id="#ESC_FAILURE_COUNT"></a> ESC_FAILURE_COUNT | `uint8` | 10 | Counter - keep it as last element! |
|
||||
|
||||
## Constants
|
||||
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------ | ------- | -------- | ------------------------------------------------------------------------------------------------------------------------ |
|
||||
| <a id="#ACTUATOR_FUNCTION_MOTOR1"></a> ACTUATOR_FUNCTION_MOTOR1 | `uint8` | 101 | |
|
||||
| <a id="#ACTUATOR_FUNCTION_MOTOR_MAX"></a> ACTUATOR_FUNCTION_MOTOR_MAX | `uint8` | 112 | output_functions.yaml Motor.start + Motor.count - 1 |
|
||||
| <a id="#ESC_FAILURE_COUNT"></a> ESC_FAILURE_COUNT | `uint8` | 10 | Counter - keep it as last element! |
|
||||
|
||||
## Source Message
|
||||
|
||||
@@ -50,36 +55,36 @@ pageClass: is-wide-page
|
||||
Click here to see original file
|
||||
|
||||
```c
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
uint32 esc_errorcount # Number of reported errors by ESC - if supported
|
||||
int32 esc_rpm # Motor RPM, negative for reverse rotation [RPM] - if supported
|
||||
float32 esc_voltage # Voltage measured from current ESC [V] - if supported
|
||||
float32 esc_current # Current measured from current ESC [A] - if supported
|
||||
float32 esc_temperature # Temperature measured from current ESC [degC] - if supported
|
||||
int16 motor_temperature # Temperature measured from current motor [degC] - if supported
|
||||
uint8 esc_address # Address of current ESC (in most cases 1-8 / must be set by driver)
|
||||
uint8 esc_cmdcount # Counter of number of commands
|
||||
uint64 timestamp # [us] Time since system start
|
||||
|
||||
uint8 esc_state # State of ESC - depend on Vendor
|
||||
uint32 esc_errorcount # [-] Number of reported errors by ESC - if supported
|
||||
int32 esc_rpm # [rpm] Motor RPM, negative for reverse rotation - if supported
|
||||
float32 esc_voltage # [V] Voltage measured from current ESC - if supported
|
||||
float32 esc_current # [A] Current measured from current ESC - if supported
|
||||
float32 esc_temperature # [degC] Temperature measured from current ESC - if supported
|
||||
int16 motor_temperature # [degC] Temperature measured from current motor - if supported
|
||||
|
||||
uint8 esc_state # [-] State of ESC - depend on Vendor
|
||||
|
||||
uint8 actuator_function # [-] Actuator output function (one of Motor1...MotorN)
|
||||
|
||||
uint8 actuator_function # actuator output function (one of Motor1...MotorN)
|
||||
uint8 ACTUATOR_FUNCTION_MOTOR1 = 101
|
||||
uint8 ACTUATOR_FUNCTION_MOTOR_MAX = 112 # output_functions.yaml Motor.start + Motor.count - 1
|
||||
|
||||
uint16 failures # Bitmask to indicate the internal ESC faults
|
||||
int8 esc_power # Applied power 0-100 in % (negative values reserved)
|
||||
uint16 failures # [@enum FAILURE] Bitmask to indicate the internal ESC faults
|
||||
int8 esc_power # [%] [@range 0,100] Applied power (negative values reserved)
|
||||
|
||||
uint8 FAILURE_OVER_CURRENT = 0 # (1 << 0)
|
||||
uint8 FAILURE_OVER_VOLTAGE = 1 # (1 << 1)
|
||||
uint8 FAILURE_MOTOR_OVER_TEMPERATURE = 2 # (1 << 2)
|
||||
uint8 FAILURE_OVER_RPM = 3 # (1 << 3)
|
||||
uint8 FAILURE_INCONSISTENT_CMD = 4 # (1 << 4) Set if ESC received an inconsistent command (i.e out of boundaries)
|
||||
uint8 FAILURE_MOTOR_STUCK = 5 # (1 << 5)
|
||||
uint8 FAILURE_GENERIC = 6 # (1 << 6)
|
||||
uint8 FAILURE_MOTOR_WARN_TEMPERATURE = 7 # (1 << 7)
|
||||
uint8 FAILURE_WARN_ESC_TEMPERATURE = 8 # (1 << 8)
|
||||
uint8 FAILURE_OVER_ESC_TEMPERATURE = 9 # (1 << 9)
|
||||
uint8 ESC_FAILURE_COUNT = 10 # Counter - keep it as last element!
|
||||
uint8 FAILURE_OVER_CURRENT = 0 # (1 << 0)
|
||||
uint8 FAILURE_OVER_VOLTAGE = 1 # (1 << 1)
|
||||
uint8 FAILURE_MOTOR_OVER_TEMPERATURE = 2 # (1 << 2)
|
||||
uint8 FAILURE_OVER_RPM = 3 # (1 << 3)
|
||||
uint8 FAILURE_INCONSISTENT_CMD = 4 # (1 << 4) Set if ESC received an inconsistent command (i.e out of boundaries)
|
||||
uint8 FAILURE_MOTOR_STUCK = 5 # (1 << 5)
|
||||
uint8 FAILURE_GENERIC = 6 # (1 << 6)
|
||||
uint8 FAILURE_MOTOR_WARN_TEMPERATURE = 7 # (1 << 7)
|
||||
uint8 FAILURE_WARN_ESC_TEMPERATURE = 8 # (1 << 8)
|
||||
uint8 FAILURE_OVER_ESC_TEMPERATURE = 9 # (1 << 9)
|
||||
uint8 ESC_FAILURE_COUNT = 10 # Counter - keep it as last element!
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
@@ -8,27 +8,34 @@ pageClass: is-wide-page
|
||||
|
||||
## Fields
|
||||
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| ---------------------------------------------------------- | -------------- | ---------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | | | time since system start (microseconds) |
|
||||
| counter | `uint16` | | | incremented by the writing thread everytime new data is stored |
|
||||
| esc_count | `uint8` | | | number of connected ESCs |
|
||||
| esc_connectiontype | `uint8` | | | how ESCs connected to the system |
|
||||
| esc_online_flags | `uint8` | | | Bitmask indicating which ESC is online/offline |
|
||||
| esc_armed_flags | `uint8` | | | Bitmask indicating which ESC is armed. For ESC's where the arming state is not known (returned by the ESC), the arming bits should always be set. |
|
||||
| esc | `EscReport[8]` | | | |
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| ---------------------------------------------------------- | --------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | us | | Time since system start |
|
||||
| counter | `uint16` | | | Incremented by the writing thread everytime new data is stored |
|
||||
| esc_count | `uint8` | | | Number of connected ESCs |
|
||||
| esc_connectiontype | `uint8` | | [ESC_CONNECTION_TYPE](#ESC_CONNECTION_TYPE) | How ESCs connected to the system |
|
||||
| esc_online_flags | `uint16` | | | Bitmask indicating which ESC is online/offline (in motor order) |
|
||||
| esc_armed_flags | `uint16` | | | Bitmask indicating which ESC is armed (in motor order) |
|
||||
| esc | `EscReport[12]` | | | |
|
||||
|
||||
## Enums
|
||||
|
||||
### ESC_CONNECTION_TYPE {#ESC_CONNECTION_TYPE}
|
||||
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------ | ------- | -------- | ------------------------ |
|
||||
| <a id="#ESC_CONNECTION_TYPE_PPM"></a> ESC_CONNECTION_TYPE_PPM | `uint8` | 0 | Traditional PPM ESC |
|
||||
| <a id="#ESC_CONNECTION_TYPE_SERIAL"></a> ESC_CONNECTION_TYPE_SERIAL | `uint8` | 1 | Serial Bus connected ESC |
|
||||
| <a id="#ESC_CONNECTION_TYPE_ONESHOT"></a> ESC_CONNECTION_TYPE_ONESHOT | `uint8` | 2 | One Shot PPM |
|
||||
| <a id="#ESC_CONNECTION_TYPE_I2C"></a> ESC_CONNECTION_TYPE_I2C | `uint8` | 3 | I2C |
|
||||
| <a id="#ESC_CONNECTION_TYPE_CAN"></a> ESC_CONNECTION_TYPE_CAN | `uint8` | 4 | CAN-Bus |
|
||||
| <a id="#ESC_CONNECTION_TYPE_DSHOT"></a> ESC_CONNECTION_TYPE_DSHOT | `uint8` | 5 | DShot |
|
||||
|
||||
## Constants
|
||||
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------------ | ------- | -------- | ---------------------------------------------------------------------------------------------------- |
|
||||
| <a id="#CONNECTED_ESC_MAX"></a> CONNECTED_ESC_MAX | `uint8` | 8 | The number of ESCs supported. Current (Q2/2013) we support 8 ESCs |
|
||||
| <a id="#ESC_CONNECTION_TYPE_PPM"></a> ESC_CONNECTION_TYPE_PPM | `uint8` | 0 | Traditional PPM ESC |
|
||||
| <a id="#ESC_CONNECTION_TYPE_SERIAL"></a> ESC_CONNECTION_TYPE_SERIAL | `uint8` | 1 | Serial Bus connected ESC |
|
||||
| <a id="#ESC_CONNECTION_TYPE_ONESHOT"></a> ESC_CONNECTION_TYPE_ONESHOT | `uint8` | 2 | One Shot PPM |
|
||||
| <a id="#ESC_CONNECTION_TYPE_I2C"></a> ESC_CONNECTION_TYPE_I2C | `uint8` | 3 | I2C |
|
||||
| <a id="#ESC_CONNECTION_TYPE_CAN"></a> ESC_CONNECTION_TYPE_CAN | `uint8` | 4 | CAN-Bus |
|
||||
| <a id="#ESC_CONNECTION_TYPE_DSHOT"></a> ESC_CONNECTION_TYPE_DSHOT | `uint8` | 5 | DShot |
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| ------------------------------------------------------------------------------------------- | ------- | -------- | ---------------------------------------------------------------- |
|
||||
| <a id="#CONNECTED_ESC_MAX"></a> CONNECTED_ESC_MAX | `uint8` | 12 | The number of ESCs supported (Motor1-Motor12) |
|
||||
|
||||
## Source Message
|
||||
|
||||
@@ -38,34 +45,38 @@ pageClass: is-wide-page
|
||||
Click here to see original file
|
||||
|
||||
```c
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
uint8 CONNECTED_ESC_MAX = 8 # The number of ESCs supported. Current (Q2/2013) we support 8 ESCs
|
||||
uint64 timestamp # [us] Time since system start
|
||||
uint8 CONNECTED_ESC_MAX = 12 # The number of ESCs supported (Motor1-Motor12)
|
||||
|
||||
uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC
|
||||
uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC
|
||||
uint8 ESC_CONNECTION_TYPE_ONESHOT = 2 # One Shot PPM
|
||||
uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C
|
||||
uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus
|
||||
uint8 ESC_CONNECTION_TYPE_DSHOT = 5 # DShot
|
||||
uint8 ESC_CONNECTION_TYPE_PPM = 0 # Traditional PPM ESC
|
||||
uint8 ESC_CONNECTION_TYPE_SERIAL = 1 # Serial Bus connected ESC
|
||||
uint8 ESC_CONNECTION_TYPE_ONESHOT = 2 # One Shot PPM
|
||||
uint8 ESC_CONNECTION_TYPE_I2C = 3 # I2C
|
||||
uint8 ESC_CONNECTION_TYPE_CAN = 4 # CAN-Bus
|
||||
uint8 ESC_CONNECTION_TYPE_DSHOT = 5 # DShot
|
||||
|
||||
uint16 counter # incremented by the writing thread everytime new data is stored
|
||||
uint16 counter # [-] Incremented by the writing thread everytime new data is stored
|
||||
|
||||
uint8 esc_count # number of connected ESCs
|
||||
uint8 esc_connectiontype # how ESCs connected to the system
|
||||
uint8 esc_count # [-] Number of connected ESCs
|
||||
uint8 esc_connectiontype # [@enum ESC_CONNECTION_TYPE] How ESCs connected to the system
|
||||
|
||||
uint8 esc_online_flags # Bitmask indicating which ESC is online/offline
|
||||
# esc_online_flags bit 0 : Set to 1 if ESC0 is online
|
||||
# esc_online_flags bit 1 : Set to 1 if ESC1 is online
|
||||
# esc_online_flags bit 2 : Set to 1 if ESC2 is online
|
||||
# esc_online_flags bit 3 : Set to 1 if ESC3 is online
|
||||
# esc_online_flags bit 4 : Set to 1 if ESC4 is online
|
||||
# esc_online_flags bit 5 : Set to 1 if ESC5 is online
|
||||
# esc_online_flags bit 6 : Set to 1 if ESC6 is online
|
||||
# esc_online_flags bit 7 : Set to 1 if ESC7 is online
|
||||
uint16 esc_online_flags # Bitmask indicating which ESC is online/offline (in motor order)
|
||||
# esc_online_flags bit 0 : Set to 1 if Motor1 is online
|
||||
# esc_online_flags bit 1 : Set to 1 if Motor2 is online
|
||||
# esc_online_flags bit 2 : Set to 1 if Motor3 is online
|
||||
# esc_online_flags bit 3 : Set to 1 if Motor4 is online
|
||||
# esc_online_flags bit 4 : Set to 1 if Motor5 is online
|
||||
# esc_online_flags bit 5 : Set to 1 if Motor6 is online
|
||||
# esc_online_flags bit 6 : Set to 1 if Motor7 is online
|
||||
# esc_online_flags bit 7 : Set to 1 if Motor8 is online
|
||||
# esc_online_flags bit 8 : Set to 1 if Motor9 is online
|
||||
# esc_online_flags bit 9 : Set to 1 if Motor10 is online
|
||||
# esc_online_flags bit 10: Set to 1 if Motor11 is online
|
||||
# esc_online_flags bit 11: Set to 1 if Motor12 is online
|
||||
|
||||
uint8 esc_armed_flags # Bitmask indicating which ESC is armed. For ESC's where the arming state is not known (returned by the ESC), the arming bits should always be set.
|
||||
uint16 esc_armed_flags # [-] Bitmask indicating which ESC is armed (in motor order)
|
||||
|
||||
EscReport[8] esc
|
||||
EscReport[12] esc
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
@@ -10,45 +10,48 @@ pageClass: is-wide-page
|
||||
|
||||
## Fields
|
||||
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| ----------------------------------------------------------------------------- | --------- | ---------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | | | time since system start (microseconds) |
|
||||
| timestamp_sample | `uint64` | | | |
|
||||
| device_id | `uint32` | | | unique device ID for the sensor that does not change between power cycles |
|
||||
| latitude_deg | `float64` | | | Latitude in degrees, allows centimeter level RTK precision |
|
||||
| longitude_deg | `float64` | | | Longitude in degrees, allows centimeter level RTK precision |
|
||||
| altitude_msl_m | `float64` | | | Altitude above MSL, meters |
|
||||
| altitude_ellipsoid_m | `float64` | | | Altitude above Ellipsoid, meters |
|
||||
| s_variance_m_s | `float32` | | | GPS speed accuracy estimate, (metres/sec) |
|
||||
| c_variance_rad | `float32` | | | GPS course accuracy estimate, (radians) |
|
||||
| fix_type | `uint8` | | | Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. |
|
||||
| eph | `float32` | | | GPS horizontal position accuracy (metres) |
|
||||
| epv | `float32` | | | GPS vertical position accuracy (metres) |
|
||||
| hdop | `float32` | | | Horizontal dilution of precision |
|
||||
| vdop | `float32` | | | Vertical dilution of precision |
|
||||
| noise_per_ms | `int32` | | | GPS noise per millisecond |
|
||||
| automatic_gain_control | `uint16` | | | Automatic gain control monitor |
|
||||
| jamming_state | `uint8` | | | indicates whether jamming has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected |
|
||||
| jamming_indicator | `int32` | | | indicates jamming is occurring |
|
||||
| spoofing_state | `uint8` | | | indicates whether spoofing has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected |
|
||||
| authentication_state | `uint8` | | | GPS signal authentication state |
|
||||
| vel_m_s | `float32` | | | GPS ground speed, (metres/sec) |
|
||||
| vel_n_m_s | `float32` | | | GPS North velocity, (metres/sec) |
|
||||
| vel_e_m_s | `float32` | | | GPS East velocity, (metres/sec) |
|
||||
| vel_d_m_s | `float32` | | | GPS Down velocity, (metres/sec) |
|
||||
| cog_rad | `float32` | | | Course over ground (NOT heading, but direction of movement), -PI..PI, (radians) |
|
||||
| vel_ned_valid | `bool` | | | True if NED velocity is valid |
|
||||
| timestamp_time_relative | `int32` | | | timestamp + timestamp_time_relative = Time of the UTC timestamp since system start, (microseconds) |
|
||||
| time_utc_usec | `uint64` | | | Timestamp (microseconds, UTC), this is the timestamp which comes from the gps module. It might be unavailable right after cold start, indicated by a value of 0 |
|
||||
| satellites_used | `uint8` | | | Number of satellites used |
|
||||
| system_error | `uint32` | | | General errors with the connected GPS receiver |
|
||||
| heading | `float32` | | | heading angle of XYZ body frame rel to NED. Set to NaN if not available and updated (used for dual antenna GPS), (rad, [-PI, PI]) |
|
||||
| heading_offset | `float32` | | | heading offset of dual antenna array in body frame. Set to NaN if not applicable. (rad, [-PI, PI]) |
|
||||
| heading_accuracy | `float32` | | | heading accuracy (rad, [0, 2PI]) |
|
||||
| rtcm_injection_rate | `float32` | | | RTCM message injection rate Hz |
|
||||
| selected_rtcm_instance | `uint8` | | | uorb instance that is being used for RTCM corrections |
|
||||
| rtcm_crc_failed | `bool` | | | RTCM message CRC failure detected |
|
||||
| rtcm_msg_used | `uint8` | | | Indicates if the RTCM message was used successfully by the receiver |
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| ----------------------------------------------------------------------------- | --------- | ---------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | | | time since system start (microseconds) |
|
||||
| timestamp_sample | `uint64` | | | |
|
||||
| device_id | `uint32` | | | unique device ID for the sensor that does not change between power cycles |
|
||||
| latitude_deg | `float64` | | | Latitude in degrees, allows centimeter level RTK precision |
|
||||
| longitude_deg | `float64` | | | Longitude in degrees, allows centimeter level RTK precision |
|
||||
| altitude_msl_m | `float64` | | | Altitude above MSL, meters |
|
||||
| altitude_ellipsoid_m | `float64` | | | Altitude above Ellipsoid, meters |
|
||||
| s_variance_m_s | `float32` | | | GPS speed accuracy estimate, (metres/sec) |
|
||||
| c_variance_rad | `float32` | | | GPS course accuracy estimate, (radians) |
|
||||
| fix_type | `uint8` | | | Some applications will not use the value of this field unless it is at least two, so always correctly fill in the fix. |
|
||||
| eph | `float32` | | | GPS horizontal position accuracy (metres) |
|
||||
| epv | `float32` | | | GPS vertical position accuracy (metres) |
|
||||
| hdop | `float32` | | | Horizontal dilution of precision |
|
||||
| vdop | `float32` | | | Vertical dilution of precision |
|
||||
| noise_per_ms | `int32` | | | GPS noise per millisecond |
|
||||
| automatic_gain_control | `uint16` | | | Automatic gain control monitor |
|
||||
| jamming_state | `uint8` | | | indicates whether jamming has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected |
|
||||
| jamming_indicator | `int32` | | | indicates jamming is occurring |
|
||||
| spoofing_state | `uint8` | | | indicates whether spoofing has been detected or suspected by the receivers. O: Unknown, 1: OK, 2: Mitigated, 3: Detected |
|
||||
| authentication_state | `uint8` | | | GPS signal authentication state |
|
||||
| vel_m_s | `float32` | | | GPS ground speed, (metres/sec) |
|
||||
| vel_n_m_s | `float32` | | | GPS North velocity, (metres/sec) |
|
||||
| vel_e_m_s | `float32` | | | GPS East velocity, (metres/sec) |
|
||||
| vel_d_m_s | `float32` | | | GPS Down velocity, (metres/sec) |
|
||||
| cog_rad | `float32` | | | Course over ground (NOT heading, but direction of movement), -PI..PI, (radians) |
|
||||
| vel_ned_valid | `bool` | | | True if NED velocity is valid |
|
||||
| timestamp_time_relative | `int32` | | | timestamp + timestamp_time_relative = Time of the UTC timestamp since system start, (microseconds) |
|
||||
| time_utc_usec | `uint64` | | | Timestamp (microseconds, UTC), this is the timestamp which comes from the gps module. It might be unavailable right after cold start, indicated by a value of 0 |
|
||||
| satellites_used | `uint8` | | | Number of satellites used |
|
||||
| system_error | `uint32` | | | General errors with the connected GPS receiver |
|
||||
| heading | `float32` | | | heading angle of XYZ body frame rel to NED. Set to NaN if not available and updated (used for dual antenna GPS), (rad, [-PI, PI]) |
|
||||
| heading_offset | `float32` | | | heading offset of dual antenna array in body frame. Set to NaN if not applicable. (rad, [-PI, PI]) |
|
||||
| heading_accuracy | `float32` | | | heading accuracy (rad, [0, 2PI]) |
|
||||
| rtcm_injection_rate | `float32` | | | RTCM message injection rate Hz |
|
||||
| selected_rtcm_instance | `uint8` | | | uorb instance that is being used for RTCM corrections |
|
||||
| rtcm_crc_failed | `bool` | | | RTCM message CRC failure detected |
|
||||
| rtcm_msg_used | `uint8` | | | Indicates if the RTCM message was used successfully by the receiver |
|
||||
| antenna_offset_x | `float32` | m [body frame FRD] | | X Position of GNSS antenna |
|
||||
| antenna_offset_y | `float32` | m [body frame FRD] | | Y Position of GNSS antenna |
|
||||
| antenna_offset_z | `float32` | m [body frame FRD] | | Z Position of GNSS antenna |
|
||||
|
||||
## Constants
|
||||
|
||||
@@ -183,6 +186,10 @@ uint8 RTCM_MSG_USED_NOT_USED = 1
|
||||
uint8 RTCM_MSG_USED_USED = 2
|
||||
uint8 rtcm_msg_used # Indicates if the RTCM message was used successfully by the receiver
|
||||
|
||||
float32 antenna_offset_x # [m] [@frame body frame FRD] X Position of GNSS antenna
|
||||
float32 antenna_offset_y # [m] [@frame body frame FRD] Y Position of GNSS antenna
|
||||
float32 antenna_offset_z # [m] [@frame body frame FRD] Z Position of GNSS antenna
|
||||
|
||||
# TOPICS sensor_gps vehicle_gps_position
|
||||
```
|
||||
|
||||
|
||||
@@ -1052,6 +1052,20 @@ Actuator configuration command.
|
||||
| 6 | | | ? |
|
||||
| 7 | | | ? |
|
||||
|
||||
### VEHICLE_CMD_ESC_REQUEST_EEPROM (312)
|
||||
|
||||
Request EEPROM data from an ESC.
|
||||
|
||||
| Param | Units | Range/Enum | Опис |
|
||||
| ----- | ----- | ---------- | ------------- |
|
||||
| 1 | | | ESC Index |
|
||||
| 2 | | | Firmware Type |
|
||||
| 3 | | | Unused |
|
||||
| 4 | | | Unused |
|
||||
| 5 | | | Unused |
|
||||
| 6 | | | ? |
|
||||
| 7 | | | ? |
|
||||
|
||||
### VEHICLE_CMD_COMPONENT_ARM_DISARM (400)
|
||||
|
||||
Arms / Disarms a component.
|
||||
@@ -1536,6 +1550,12 @@ Change mode by specifying nav_state directly.
|
||||
| <a id="#VEHICLE_MOUNT_MODE_RC_TARGETING"></a> VEHICLE_MOUNT_MODE_RC_TARGETING | `uint8` | 3 | Load neutral position and start RC Roll,Pitch,Yaw control with stabilization. |
|
||||
| <a id="#VEHICLE_MOUNT_MODE_GPS_POINT"></a> VEHICLE_MOUNT_MODE_GPS_POINT | `uint8` | 4 | Load neutral position and start to point to Lat,Lon,Alt. |
|
||||
| <a id="#VEHICLE_MOUNT_MODE_ENUM_END"></a> VEHICLE_MOUNT_MODE_ENUM_END | `uint8` | 5 | |
|
||||
| <a id="#ACTUATOR_CONFIGURATION_NONE"></a> ACTUATOR_CONFIGURATION_NONE | `uint8` | 0 | Do nothing. |
|
||||
| <a id="#ACTUATOR_CONFIGURATION_BEEP"></a> ACTUATOR_CONFIGURATION_BEEP | `uint8` | 1 | Command the actuator to beep now. |
|
||||
| <a id="#ACTUATOR_CONFIGURATION_3D_MODE_ON"></a> ACTUATOR_CONFIGURATION_3D_MODE_ON | `uint8` | 2 | Permanently set the actuator (ESC) to 3D mode (reversible thrust). |
|
||||
| <a id="#ACTUATOR_CONFIGURATION_3D_MODE_OFF"></a> ACTUATOR_CONFIGURATION_3D_MODE_OFF | `uint8` | 3 | Permanently set the actuator (ESC) to non 3D mode (non-reversible thrust). |
|
||||
| <a id="#ACTUATOR_CONFIGURATION_SPIN_DIRECTION1"></a> ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 | `uint8` | 4 | Permanently set the actuator (ESC) to spin direction 1 (which can be clockwise or counter-clockwise). |
|
||||
| <a id="#ACTUATOR_CONFIGURATION_SPIN_DIRECTION2"></a> ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 | `uint8` | 5 | Permanently set the actuator (ESC) to spin direction 2 (opposite of direction 1). |
|
||||
| <a id="#PARACHUTE_ACTION_DISABLE"></a> PARACHUTE_ACTION_DISABLE | `uint8` | 0 | |
|
||||
| <a id="#PARACHUTE_ACTION_ENABLE"></a> PARACHUTE_ACTION_ENABLE | `uint8` | 1 | |
|
||||
| <a id="#PARACHUTE_ACTION_RELEASE"></a> PARACHUTE_ACTION_RELEASE | `uint8` | 2 | |
|
||||
@@ -1661,6 +1681,7 @@ uint16 VEHICLE_CMD_GIMBAL_DEVICE_INFORMATION = 283 # Command to ask information
|
||||
uint16 VEHICLE_CMD_MISSION_START = 300 # Start running a mission. |first_item: the first mission item to run|last_item: the last mission item to run (after this item is run, the mission ends)|
|
||||
uint16 VEHICLE_CMD_ACTUATOR_TEST = 310 # Actuator testing command. |[@range -1,1] value|[s] timeout|Unused|Unused|output function|
|
||||
uint16 VEHICLE_CMD_CONFIGURE_ACTUATOR = 311 # Actuator configuration command. |configuration|Unused|Unused|Unused|output function|
|
||||
uint16 VEHICLE_CMD_ESC_REQUEST_EEPROM = 312 # Request EEPROM data from an ESC. |ESC Index|Firmware Type|Unused|Unused|Unused|
|
||||
uint16 VEHICLE_CMD_COMPONENT_ARM_DISARM = 400 # Arms / Disarms a component. |1 to arm, 0 to disarm.
|
||||
uint16 VEHICLE_CMD_RUN_PREARM_CHECKS = 401 # Instructs a target system to run pre-arm checks.
|
||||
uint16 VEHICLE_CMD_INJECT_FAILURE = 420 # Inject artificial failure for testing purposes.
|
||||
@@ -1710,6 +1731,13 @@ uint8 VEHICLE_ROI_LOCATION = 3 # Point toward fixed location.
|
||||
uint8 VEHICLE_ROI_TARGET = 4 # Point toward target.
|
||||
uint8 VEHICLE_ROI_ENUM_END = 5
|
||||
|
||||
uint8 ACTUATOR_CONFIGURATION_NONE = 0 # Do nothing.
|
||||
uint8 ACTUATOR_CONFIGURATION_BEEP = 1 # Command the actuator to beep now.
|
||||
uint8 ACTUATOR_CONFIGURATION_3D_MODE_ON = 2 # Permanently set the actuator (ESC) to 3D mode (reversible thrust).
|
||||
uint8 ACTUATOR_CONFIGURATION_3D_MODE_OFF = 3 # Permanently set the actuator (ESC) to non 3D mode (non-reversible thrust).
|
||||
uint8 ACTUATOR_CONFIGURATION_SPIN_DIRECTION1 = 4 # Permanently set the actuator (ESC) to spin direction 1 (which can be clockwise or counter-clockwise).
|
||||
uint8 ACTUATOR_CONFIGURATION_SPIN_DIRECTION2 = 5 # Permanently set the actuator (ESC) to spin direction 2 (opposite of direction 1).
|
||||
|
||||
uint8 PARACHUTE_ACTION_DISABLE = 0
|
||||
uint8 PARACHUTE_ACTION_ENABLE = 1
|
||||
uint8 PARACHUTE_ACTION_RELEASE = 2
|
||||
|
||||
@@ -85,6 +85,8 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
|
||||
- [DistanceSensorModeChangeRequest](DistanceSensorModeChangeRequest.md)
|
||||
- [DronecanNodeStatus](DronecanNodeStatus.md)
|
||||
- [Ekf2Timestamps](Ekf2Timestamps.md) — this message contains the (relative) timestamps of the sensor inputs used by EKF2. Це може бути використано для відтворення.
|
||||
- [EscEepromRead](EscEepromRead.md)
|
||||
- [EscEepromWrite](EscEepromWrite.md)
|
||||
- [EscReport](EscReport.md)
|
||||
- [EscStatus](EscStatus.md)
|
||||
- [EstimatorAidSource1d](EstimatorAidSource1d.md)
|
||||
|
||||
+55
-102
@@ -47,74 +47,12 @@ DShot comes with different speed options: _DShot150_, _DShot300_, and _DShot600_
|
||||
РЕГБ повинні ініціалізуватися, а мотори повинні обертатися в правильних напрямках.
|
||||
|
||||
- If the motors do not spin in the correct direction (for the [selected airframe](../airframes/airframe_reference.md)) you can reverse them in the UI using the **Set Spin Direction** option (this option appears after you select DShot and assign motors).
|
||||
You can also reverse motors by sending an [ESC Command](#commands).
|
||||
|
||||
## ESC Commands {#commands}
|
||||
|
||||
Commands can be sent to the ESC via the [MAVLink shell](../debug/mavlink_shell.md).
|
||||
See [here](../modules/modules_driver.md#dshot) for a full reference of the supported commands.
|
||||
|
||||
Найважливіші з них:
|
||||
|
||||
- Make a motor connected to FMU output pin 1 beep (helps with identifying motors)
|
||||
|
||||
```sh
|
||||
dshot beep1 -m 1
|
||||
```
|
||||
|
||||
- Retrieve ESC information (requires telemetry, see below):
|
||||
|
||||
```sh
|
||||
nsh> dshot esc_info -m 2
|
||||
INFO [dshot] ESC Type: #TEKKO32_4in1#
|
||||
INFO [dshot] MCU Serial Number: xxxxxx-xxxxxx-xxxxxx-xxxxxx
|
||||
INFO [dshot] Firmware version: 32.60
|
||||
INFO [dshot] Rotation Direction: normal
|
||||
INFO [dshot] 3D Mode: off
|
||||
INFO [dshot] Low voltage Limit: off
|
||||
INFO [dshot] Current Limit: off
|
||||
INFO [dshot] LED 0: unsupported
|
||||
INFO [dshot] LED 1: unsupported
|
||||
INFO [dshot] LED 2: unsupported
|
||||
INFO [dshot] LED 3: unsupported
|
||||
```
|
||||
|
||||
- Permanently set the spin direction of a motor connected to FMU output pin 1 (while motors are _not_ spinning):
|
||||
|
||||
- Set spin direction to `reversed`:
|
||||
|
||||
```sh
|
||||
dshot reverse -m 1
|
||||
dshot save -m 1
|
||||
```
|
||||
|
||||
Retrieving ESC information will then show:
|
||||
|
||||
```sh
|
||||
Rotation Direction: reversed
|
||||
```
|
||||
|
||||
- Set spin direction to `normal`:
|
||||
|
||||
```sh
|
||||
dshot normal -m 1
|
||||
dshot save -m 1
|
||||
```
|
||||
|
||||
Retrieving ESC information will then show:
|
||||
|
||||
```sh
|
||||
Rotation Direction: normal
|
||||
```
|
||||
|
||||
:::info
|
||||
|
||||
- The commands will have no effect if the motors are spinning, or if the ESC is already set to the corresponding direction.
|
||||
- The ESC will revert to its last saved direction (normal or reversed) on reboot if `save` is not called after changing the direction.
|
||||
|
||||
|
||||
:::
|
||||
|
||||
## ESC Telemetry
|
||||
|
||||
Some ESCs are capable of sending telemetry back to the flight controller through a UART RX port.
|
||||
@@ -133,61 +71,76 @@ The provided telemetry includes:
|
||||
1. Об'єднайте всі дроти телеметрії з усіх ESC разом, а потім підключіть їх до одного з контактів RX на не використаному порту послідовного зв'язку контролера польоту.
|
||||
2. Enable telemetry on that serial port using [DSHOT_TEL_CFG](../advanced_config/parameter_reference.md#DSHOT_TEL_CFG).
|
||||
|
||||
Після перезавантаження ви можете перевірити, чи працює телеметрія (переконайтеся, що акумулятор підключений), використовуючи:
|
||||
|
||||
```sh
|
||||
dshot esc_info -m 1
|
||||
```
|
||||
|
||||
:::tip
|
||||
You may have to configure [MOT_POLE_COUNT](../advanced_config/parameter_reference.md#MOT_POLE_COUNT) to get the correct RPM values.
|
||||
You may have to configure the per-motor pole count parameters ([`DSHOT_MOT_POL1`–`DSHOT_MOT_POL12`](../advanced_config/parameter_reference.md#DSHOT_MOT_POL1)) to get correct RPM values.
|
||||
The default value for these is 14 poles, which is typical for 5-inch prop motors.
|
||||
:::
|
||||
|
||||
:::tip
|
||||
Not all DSHOT-capable ESCs support `[esc_info]`(e.g. APD 80F3x), even when telemetry is supported and enabled.
|
||||
Отримана помилка:
|
||||
|
||||
```sh
|
||||
ERROR [dshot] No data received. If telemetry is setup correctly, try again.
|
||||
```
|
||||
|
||||
Перевірте документацію виробника для підтвердження/подробиць.
|
||||
[Extended DShot Telemetry (EDT)](#extended-dshot-telemetry-edt) can provide temperature, voltage, and current through the BDShot signal — no serial telemetry wire needed.
|
||||
:::
|
||||
|
||||
## Bidirectional DShot (Telemetry)
|
||||
|
||||
<Badge type="tip" text="PX4 v1.16" />
|
||||
|
||||
Bidirectional DShot is a protocol that can provide telemetry including: high rate ESC RPM data, voltage, current, and temperature with a single wire.
|
||||
Bidirectional DShot (BDShot) enables the ESC to send eRPM telemetry back to the flight controller on the same signal wire used for throttle commands — no additional telemetry wire is needed for RPM data.
|
||||
High-rate eRPM data significantly improves the performance of [Dynamic Notch Filters](../config_mc/filter_tuning.md#dynamic-notch-filters) and enables more precise vehicle tuning.
|
||||
|
||||
The PX4 implementation currently enables only ESC RPM (eRPM) data collection from each ESC at high frequencies.
|
||||
This telemetry significantly improves the performance of [Dynamic Notch Filters](../config_mc/filter_tuning.md#dynamic-notch-filters) and enables more precise vehicle tuning.
|
||||
With [Extended DShot Telemetry (EDT)](#extended-dshot-telemetry-edt) enabled, BDShot can also provide temperature, voltage, and current data.
|
||||
|
||||
### Підтримка обладнання
|
||||
|
||||
BDShot requires a flight controller with DMA-capable timers.
|
||||
Any FMU output on a supported timer can be used for BDShot — multiple timers are supported through sequential burst/capture.
|
||||
|
||||
Supported processors:
|
||||
|
||||
- **STM32H7**: All FMU outputs on DMA-capable timers
|
||||
- **i.MXRT** (V6X-RT & Tropic): All FMU outputs
|
||||
|
||||
:::info
|
||||
The [ESC Telemetry](#esc-telemetry) described above is currently still necessary if you want voltage, current, or temperature information.
|
||||
It's setup and use is independent of bidirectional DShot.
|
||||
:::
|
||||
|
||||
### Налаштування програмного забезпечення
|
||||
|
||||
The ESC must be connected to FMU outputs only.
|
||||
These will be labeled `MAIN` on flight controllers that only have one PWM bus, and `AUX` on controllers that have both `MAIN` and `AUX` ports (i.e. FCs that have an IO board).
|
||||
|
||||
:::warning
|
||||
**Limited hardware support**
|
||||
This feature is only supported on flight controllers with the following processors:
|
||||
|
||||
- STM32H7: First four FMU outputs
|
||||
- Must be connected to the first 4 FMU outputs, and these outputs must also be mapped to the same timer.
|
||||
- [KakuteH7](../flight_controller/kakuteh7v2.md) is not supported because the outputs are not mapped to the same timer.
|
||||
- [i.MXRT](../flight_controller/nxp_mr_vmu_rt1176.md) (V6X-RT & Tropic): 8 FMU outputs.
|
||||
|
||||
No other boards are supported.
|
||||
These are labeled `MAIN` on controllers with a single PWM bus, and `AUX` on controllers with both `MAIN` and `AUX` ports (i.e. those with an IO board).
|
||||
:::
|
||||
|
||||
### Configuration {#bidirectional-dshot-configuration}
|
||||
### PX4 Configuration {#bidirectional-dshot-configuration}
|
||||
|
||||
To enable bidirectional DShot, set the [DSHOT_BIDIR_EN](../advanced_config/parameter_reference.md#DSHOT_BIDIR_EN) parameter.
|
||||
BDShot is enabled **per-timer** in the [Actuator Configuration](../config/actuators.md) UI.
|
||||
Select **BDShot150**, **BDShot300**, or **BDShot600** as the output protocol instead of the corresponding DShot speed.
|
||||
There is no separate enable parameter — choosing a BDShot protocol activates bidirectional telemetry on that timer's outputs.
|
||||
|
||||
The system calculates actual motor RPM from the received eRPM data using the [MOT_POLE_COUNT](../advanced_config/parameter_reference.md#MOT_POLE_COUNT) parameter.
|
||||
This parameter must be set correctly for accurate RPM reporting.
|
||||
The system calculates actual motor RPM from eRPM data using per-motor pole count parameters: `DSHOT_MOT_POL1` through `DSHOT_MOT_POL12` (one per motor output).
|
||||
The default is 14 poles, which is typical for 5-inch prop motors.
|
||||
If you are using AM32 ESCs, the motor pole count must also be set in the AM32 firmware configuration (e.g. via the AM32 configurator tool) to match.
|
||||
|
||||
### Extended DShot Telemetry (EDT)
|
||||
|
||||
EDT extends BDShot by interleaving temperature, voltage, and current data into the eRPM telemetry frames.
|
||||
This allows ESC health monitoring through the same signal wire, without requiring a separate serial telemetry connection.
|
||||
|
||||
To enable EDT:
|
||||
|
||||
1. Configure BDShot on the desired outputs (see above).
|
||||
2. Set `DSHOT_BIDIR_EDT` to `1` and reboot.
|
||||
|
||||
The ESC firmware must support EDT (e.g. [AM32](https://github.com/am32-firmware/AM32)).
|
||||
|
||||
When both serial telemetry and BDShot/EDT are enabled, the driver merges data from both sources.
|
||||
|
||||
## AM32 ESC Settings (EEPROM)
|
||||
|
||||
PX4 can read and write AM32 ESC firmware settings (EEPROM) via a ground station, enabling remote ESC configuration without connecting directly to each ESC.
|
||||
|
||||
### Вимоги
|
||||
|
||||
- ESCs running [AM32 firmware](https://github.com/am32-firmware/AM32) with serial telemetry connected ([DSHOT_TEL_CFG](../advanced_config/parameter_reference.md#DSHOT_TEL_CFG))
|
||||
- `DSHOT_ESC_TYPE` set to `1` (AM32)
|
||||
- Ground station with ESC EEPROM support (QGroundControl feature in development)
|
||||
- MAVLink development dialect enabled on the flight controller
|
||||
|
||||
### How It Works
|
||||
|
||||
PX4 automatically reads the full EEPROM from each ESC on boot.
|
||||
The ground station can then display individual settings and allow the user to modify them.
|
||||
Changes are written back to the ESC one byte at a time using the DShot programming protocol.
|
||||
|
||||
@@ -26,38 +26,12 @@ MAVLink instances are an abstract concept for a particular MAVLink configuration
|
||||
- <a id="MAV_X_CONFIG"></a>[MAV_X_CONFIG](../advanced_config/parameter_reference.md#MAV_0_CONFIG) - Set the serial port (UART) for this instance "X", where X is 0, 1, 2.
|
||||
It can be any unused port, e.g.: `TELEM2`, `TELEM3`, `GPS2` etc.
|
||||
For more information see [Serial Port Configuration](../peripherals/serial_configuration.md).
|
||||
|
||||
- <a id="MAV_X_MODE"></a>[MAV_X_MODE](../advanced_config/parameter_reference.md#MAV_0_MODE) - Specify the telemetry mode/target (the set of messages to stream for the current instance and their rate).
|
||||
Значення за замовчуванням:
|
||||
|
||||
- _Normal_: Standard set of messages for a GCS.
|
||||
- _Custom_ or _Magic_: Nothing (in the default PX4 implementation).
|
||||
Режими можуть бути використані для тестування при розробці нового режиму.
|
||||
- _Onboard_: Standard set of messages for a companion computer.
|
||||
- _OSD_: Standard set of messages for an OSD system.
|
||||
- _Config_: Standard set of messages and rate configuration for a fast link (e.g. USB).
|
||||
- _Minimal_: Minimal set of messages for use with a GCS connected on a high latency link.
|
||||
- _External Vision_: Messages for offboard vision systems.
|
||||
- _Gimbal_: Messages for a gimbal. Note this also enables [message forwarding](#MAV_X_FORWARD)
|
||||
- _Onboard Low Bandwidth_: Standard set of messages for a companion computer connected on a lower speed link.
|
||||
- _uAvionix_: Messages for a uAvionix ADS-B beacon.
|
||||
|
||||
::: info
|
||||
If you need to find the specific set of message for each mode search for `MAVLINK_MODE_` in [/src/modules/mavlink/mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp).
|
||||
|
||||
:::
|
||||
|
||||
:::tip
|
||||
The mode defines the _default_ messages and rates.
|
||||
A connected MAVLink system can still request the streams/rates that it wants using [MAV_CMD_SET_MESSAGE_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL).
|
||||
|
||||
:::
|
||||
|
||||
- <a id="MAV_X_MODE"></a>[MAV_X_MODE](../advanced_config/parameter_reference.md#MAV_0_MODE) - Specify the [MAVLink profile](../mavlink/mavlink_profiles.md) for the instance, such as _Normal_ or _OSD_.
|
||||
Profiles define a particular set of streamed messages and their rates — you should choose a profile that is appropriate for your channel and the peripheral.
|
||||
- <a id="MAV_X_RATE"></a>[MAV_X_RATE](../advanced_config/parameter_reference.md#MAV_0_MODE) - Set the maximum _data rate_ for this instance (bytes/second).
|
||||
- Це комбінована ставка для всіх потоків окремого повідомлення (ставки для окремих повідомлень зменшуються, якщо загальна ставка перевищує це значення).
|
||||
- За замовчуванням налаштування, як правило, буде прийнятним, але може бути зменшено, якщо телеметричний зв'язок стає насиченим і занадто багато повідомлень втрачається.
|
||||
- Значення 0 встановлює швидкість передачі даних вдвічі менше теоретичного значення.
|
||||
|
||||
- <a id="MAV_X_FORWARD"></a>[MAV_X_FORWARD](../advanced_config/parameter_reference.md#MAV_0_FORWARD) - Enable forwarding of MAVLink packets received by the current instance onto other interfaces.
|
||||
Це може бути використано, наприклад, для передачі повідомлень між GCS та супутнім комп'ютером, щоб GCS міг спілкуватися з камерою, підключеною до супутнього комп'ютера, яка підтримує MAVLink.
|
||||
|
||||
@@ -121,6 +95,7 @@ Links to setup instructions for specific MAVLink components:
|
||||
|
||||
## Дивіться також
|
||||
|
||||
- [MAVLink Profiles](../mavlink/mavlink_profiles.md)
|
||||
- [Serial Port Configuration](../peripherals/serial_configuration.md)
|
||||
- [PX4 Ethernet Setup > PX4 MAVLink Serial Port Configuration](../advanced_config/ethernet_setup.md#px4-mavlink-serial-port-configuration)
|
||||
- [Serial Port Mapping](../hardware/serial_port_mapping.md)
|
||||
|
||||
@@ -50,7 +50,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
|
||||
|
||||
### Оцінки
|
||||
|
||||
- Уточнюється
|
||||
- Added [EKF2_POS_LOCK](../advanced_config/parameter_reference.md#EKF2_POS_LOCK) to force constant position fusion while landed, useful for vehicles relying on dead-reckoning sensors (airspeed, optical flow) that provide no aiding on the ground.
|
||||
|
||||
### Датчики
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user