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 (#26899)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
This commit is contained in:
+8
-2
@@ -487,6 +487,7 @@
|
||||
- [Plugins](sim_gazebo_gz/plugins.md)
|
||||
- [Gazebo Models Repository](sim_gazebo_gz/gazebo_models.md)
|
||||
- [Багатотранспортний Sim](sim_gazebo_gz/multi_vehicle_simulation.md)
|
||||
- [SIH Simulation](sim_sih/index.md)
|
||||
- [Симуляція Gazebo Classic](sim_gazebo_classic/index.md)
|
||||
- [Vehicles](sim_gazebo_classic/vehicles.md)
|
||||
- [Worlds](sim_gazebo_classic/worlds.md)
|
||||
@@ -586,6 +587,8 @@
|
||||
- [DistanceSensorModeChangeRequest](msg_docs/DistanceSensorModeChangeRequest.md)
|
||||
- [DronecanNodeStatus](msg_docs/DronecanNodeStatus.md)
|
||||
- [Ekf2Timestamps](msg_docs/Ekf2Timestamps.md)
|
||||
- [EscEepromRead](msg_docs/EscEepromRead.md)
|
||||
- [EscEepromWrite](msg_docs/EscEepromWrite.md)
|
||||
- [EscReport](msg_docs/EscReport.md)
|
||||
- [EscStatus](msg_docs/EscStatus.md)
|
||||
- [EstimatorAidSource1d](msg_docs/EstimatorAidSource1d.md)
|
||||
@@ -776,6 +779,7 @@
|
||||
- [VehicleLocalPositionV0](msg_docs/VehicleLocalPositionV0.md)
|
||||
- [VehicleStatusV0](msg_docs/VehicleStatusV0.md)
|
||||
- [VehicleStatusV1](msg_docs/VehicleStatusV1.md)
|
||||
- [VehicleStatusV2](msg_docs/VehicleStatusV2.md)
|
||||
- [MAVLink Messaging](mavlink/index.md)
|
||||
- [Adding Messages](mavlink/adding_messages.md)
|
||||
- [Streaming Messages](mavlink/streaming_messages.md)
|
||||
@@ -870,8 +874,9 @@
|
||||
- [Multi-Vehicle Sim with JMAVSim](sim_jmavsim/multi_vehicle.md)
|
||||
- [JSBSim Simulation](sim_jsbsim/index.md)
|
||||
- [AirSim Simulation](sim_airsim/index.md)
|
||||
- [HITL Simulation](simulation/hitl.md)
|
||||
- [Simulation-In-Hardware](sim_sih/index.md)
|
||||
- [Hardware Simulation](simulation/hardware.md)
|
||||
- [HITL Simulation](simulation/hitl.md)
|
||||
- [SIH on Hardware](sim_sih/hardware.md)
|
||||
- [Multi-vehicle simulation](simulation/multi-vehicle-simulation.md)
|
||||
- [Тестування платформи та CI](test_and_ci/index.md)
|
||||
- [Польотні тести](test_and_ci/test_flights.md)
|
||||
@@ -927,6 +932,7 @@
|
||||
- [Translation](contribute/translation.md)
|
||||
- [Термінологія/Нотація](contribute/notation.md)
|
||||
- [Ліцензії](contribute/licenses.md)
|
||||
- [SBOM](contribute/sbom.md)
|
||||
|
||||
- [Релізи](releases/index.md)
|
||||
- [Release Process](releases/release_process.md)
|
||||
|
||||
@@ -91,7 +91,7 @@ For FMUv6S, you need to route the PPS signal separately:
|
||||
|
||||
For ARK FMUv6X on the Jetson carrier board:
|
||||
|
||||
1. Connect your GNSS module using either the 10-pin or 6-pin GPS connector: [ARK PAB GPS1 Interface](../flight_controller/ark_pab#gps1)
|
||||
1. Connect your GNSS module using either the 10-pin or 6-pin GPS connector: [ARK PAB GPS1 Interface](../flight_controller/ark_pab.md#gps1)
|
||||
2. Connect the PPS signal to the **FMU_CAP** pin: [ARK PAB ADIO Interface](../flight_controller/ark_pab.md#adio)
|
||||
|
||||
## Перевірка
|
||||
|
||||
@@ -169,7 +169,7 @@ PX4 boards up to FMUv5X (before STM32H7) used the [PX4 bootloader](https://githu
|
||||
## Оновлення завантажувача FMUv2
|
||||
|
||||
Якщо _QGroundControl_ встановлює ціль FMUv2 (див. консоль під час встановлення), і у вас є новіша плата, вам може знадобитися оновити завантажувальник, щоб мати доступ до всієї пам'яті на вашому контролері польоту.
|
||||
This example explains how you can use [QGC Bootloader Update](qgc-bootloader-update-sys-bl-update) to update the bootloader.
|
||||
This example explains how you can use [QGC Bootloader Update](#qgc-bootloader-update-sys-bl-update) to update the bootloader.
|
||||
|
||||
:::info
|
||||
Ранні контролери польоту FMUv2 [Pixhawk-series](../flight_controller/pixhawk_series.md#fmu_versions) мали [апаратну проблему](../flight_controller/silicon_errata.md#fmuv2-pixhawk-silicon-errata), яка обмежувала їх використання 1 Мб флеш-пам’яті.
|
||||
|
||||
@@ -93,6 +93,28 @@ The button should be held down for one second to arm (when disarmed) or disarm (
|
||||
| <a id="COM_DISARM_LAND"></a>[COM_DISARM_LAND](../advanced_config/parameter_reference.md#COM_DISARM_LAND) | Час очікування для автоматичного відбрасування після приземлення. За замовчуванням: 2с (значення -1, щоб вимкнути). |
|
||||
| <a id="COM_DISARM_PRFLT"></a>[COM_DISARM_PRFLT](../advanced_config/parameter_reference.md#COM_DISARM_PRFLT) | Час очікування для автоматичного відбрасування, якщо занадто повільно підйом. За замовчуванням: 10с (<=0, щоб вимкнути). |
|
||||
|
||||
## Auto-Arming on Boot
|
||||
|
||||
The vehicle can be configured to arm automatically on boot once all preflight checks pass,
|
||||
using the `COM_ARM_ON_BOOT` parameter. For safety, PX4 enforces a minimum 5-second delay after boot before attempting to arm.
|
||||
|
||||
Once armed this way, the vehicle will not re-arm automatically after a manual disarm.
|
||||
|
||||
:::info
|
||||
The parameter value is read once at boot.
|
||||
Changing it while the system is running has no effect until the next reboot.
|
||||
:::
|
||||
|
||||
:::warning
|
||||
Use with caution.
|
||||
A vehicle that arms automatically can spin up motors and actuators without any operator gesture.
|
||||
Ensure the vehicle is in a safe state before powering on.
|
||||
:::
|
||||
|
||||
| Параметр | Опис |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <a id="COM_ARM_ON_BOOT"></a>[COM_ARM_ON_BOOT](../advanced_config/parameter_reference.md#COM_ARM_ON_BOOT) | Arm automatically once preflight checks pass after boot. Default: `0` (Disabled). |
|
||||
|
||||
## Pre-Arm Checks
|
||||
|
||||
To reduce accidents, vehicles are only allowed to arm certain conditions are met (some of which are configurable).
|
||||
|
||||
@@ -38,7 +38,7 @@ Devices within a network are connected in a _daisy-chain_ in any order (this dif
|
||||
|
||||
:::warning
|
||||
Don't connect each CAN peripheral to a separate CAN port!
|
||||
Unlike UARTs, CAN peripherals are designed to be daisy chained, with additional ports such as `CAN2` used for [redundancy](redundancy).
|
||||
Unlike UARTs, CAN peripherals are designed to be daisy chained, with additional ports such as `CAN2` used for [redundancy](#redundancy).
|
||||
:::
|
||||
|
||||
На обох кінцях ланцюга між двома лініями передачі даних слід під’єднати термінальний резистор 120 Ом.
|
||||
@@ -84,7 +84,7 @@ You only _need_ one CAN port to support an arbitrary number of CAN devices using
|
||||
Don't connect each CAN peripheral to a separate CAN port!
|
||||
:::
|
||||
|
||||
Generally you'll daisy all CAN peripherals off a single port, and if there is more than one CAN port, use the second one for [redundancy](redundancy).
|
||||
Generally you'll daisy all CAN peripherals off a single port, and if there is more than one CAN port, use the second one for [redundancy](#redundancy).
|
||||
If three are three ports, you might use the remaining network for devices that support another CAN protocol.
|
||||
|
||||
The documentation for your flight controller should indicate which ports are supported/enabled.
|
||||
|
||||
@@ -76,13 +76,13 @@ You might have to adjust the per-motor pole count (`DSHOT_MOT_POL1`–`DSHOT_MOT
|
||||
|
||||
The following parameters should be set to enable and configure dynamic notch filters:
|
||||
|
||||
| Параметр | Опис |
|
||||
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <a href="IMU_GYRO_DNF_EN"></a>[IMU_GYRO_DNF_EN](../advanced_config/parameter_reference.md#IMU_GYRO_DNF_EN) | Enable IMU gyro dynamic notch filtering. `0`: ESC RPM, `1`: Onboard FFT. |
|
||||
| <a href="IMU_GYRO_FFT_EN"></a>[IMU_GYRO_FFT_EN](../advanced_config/parameter_reference.md#IMU_GYRO_FFT_EN) | Enable onboard FFT (required if `IMU_GYRO_DNF_EN` is set to `1`). |
|
||||
| <a href="IMU_GYRO_DNF_MIN"></a>[IMU_GYRO_DNF_MIN](../advanced_config/parameter_reference.md#IMU_GYRO_DNF_MIN) | Minimum dynamic notch frequency in Hz. |
|
||||
| <a href="IMU_GYRO_DNF_BW"></a>[IMU_GYRO_DNF_BW](../advanced_config/parameter_reference.md#IMU_GYRO_DNF_BW) | Bandwidth for each notch filter in Hz. |
|
||||
| <a href="IMU_GYRO_DNF_HMC"></a>[IMU_GYRO_DNF_HMC](../advanced_config/parameter_reference.md#IMU_GYRO_NF0_BW) | Number of harmonics to filter. |
|
||||
| Параметр | Опис |
|
||||
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <a id="IMU_GYRO_DNF_EN"></a>[IMU_GYRO_DNF_EN](../advanced_config/parameter_reference.md#IMU_GYRO_DNF_EN) | Enable IMU gyro dynamic notch filtering. `0`: ESC RPM, `1`: Onboard FFT. |
|
||||
| <a id="IMU_GYRO_FFT_EN"></a>[IMU_GYRO_FFT_EN](../advanced_config/parameter_reference.md#IMU_GYRO_FFT_EN) | Enable onboard FFT (required if `IMU_GYRO_DNF_EN` is set to `1`). |
|
||||
| <a id="IMU_GYRO_DNF_MIN"></a>[IMU_GYRO_DNF_MIN](../advanced_config/parameter_reference.md#IMU_GYRO_DNF_MIN) | Minimum dynamic notch frequency in Hz. |
|
||||
| <a id="IMU_GYRO_DNF_BW"></a>[IMU_GYRO_DNF_BW](../advanced_config/parameter_reference.md#IMU_GYRO_DNF_BW) | Bandwidth for each notch filter in Hz. |
|
||||
| <a id="IMU_GYRO_DNF_HMC"></a>[IMU_GYRO_DNF_HMC](../advanced_config/parameter_reference.md#IMU_GYRO_NF0_BW) | Number of harmonics to filter. |
|
||||
|
||||
### Low-pass Filter
|
||||
|
||||
|
||||
@@ -0,0 +1,226 @@
|
||||
# Software Bill of Materials (SBOM)
|
||||
|
||||
PX4 generates a [Software Bill of Materials](https://ntia.gov/SBOM) for every firmware build in [SPDX 2.3](https://spdx.github.io/spdx-spec/v2.3/) JSON format.
|
||||
|
||||
## Why SBOM?
|
||||
|
||||
- **Regulatory compliance**: The EU Cyber Resilience Act (CRA) requires SBOMs for products with digital elements (reporting obligations begin in September 2026).
|
||||
- **Supply chain transparency**: SBOMs enumerate every component compiled into firmware, enabling users and integrators to audit dependencies.
|
||||
- **NTIA minimum elements**: Each SBOM satisfies all seven [NTIA required fields](https://www.ntia.gov/report/2021/minimum-elements-software-bill-materials-sbom): supplier, component name, version, unique identifier, dependency relationship, author, and timestamp.
|
||||
|
||||
## Format
|
||||
|
||||
PX4 uses SPDX 2.3 JSON.
|
||||
SPDX is the Linux Foundation's own standard (ISO/IEC 5962), aligning with PX4's position as a Dronecode/LF project.
|
||||
Zephyr RTOS also uses SPDX.
|
||||
|
||||
Each SBOM contains:
|
||||
|
||||
- **Primary package**: The PX4 firmware for a specific board target, marked with `primaryPackagePurpose: FIRMWARE`.
|
||||
- **Git submodules**: All third-party libraries included via git submodules (~33 packages), with SPDX license identifiers and commit hashes.
|
||||
- **Python build dependencies**: Packages from `Tools/setup/requirements.txt` marked as `BUILD_DEPENDENCY_OF` the firmware.
|
||||
- **Board-specific modules**: Internal PX4 modules compiled for the target board.
|
||||
- **Compiler**: The C compiler used for the build.
|
||||
|
||||
Typical SBOM size: 70-100 packages, ~500 lines, ~20 KB JSON.
|
||||
|
||||
## Generation
|
||||
|
||||
SBOMs are generated automatically as part of every CMake build.
|
||||
The output file is:
|
||||
|
||||
```txt
|
||||
build/<target>/<target>.sbom.spdx.json
|
||||
```
|
||||
|
||||
Наприклад:
|
||||
|
||||
```txt
|
||||
build/px4_fmu-v6x_default/px4_fmu-v6x_default.sbom.spdx.json
|
||||
```
|
||||
|
||||
The generator script is `Tools/ci/generate_sbom.py`.
|
||||
It requires PyYAML (`pyyaml`) for loading license overrides.
|
||||
|
||||
### CMake Integration
|
||||
|
||||
The `sbom` CMake target is included in the default `ALL` target.
|
||||
The relevant CMake module is `cmake/sbom.cmake`.
|
||||
|
||||
### Disabling SBOM Generation
|
||||
|
||||
Set the environment variable before building.
|
||||
This is checked at CMake configure time, so a clean build or reconfigure is required:
|
||||
|
||||
```sh
|
||||
PX4_SBOM_DISABLE=1 make px4_fmu-v6x_default
|
||||
```
|
||||
|
||||
If the build directory already exists, force a reconfigure:
|
||||
|
||||
```sh
|
||||
PX4_SBOM_DISABLE=1 cmake -B build/px4_fmu-v6x_default .
|
||||
```
|
||||
|
||||
### Manual Generation
|
||||
|
||||
You can also run the generator directly:
|
||||
|
||||
```sh
|
||||
python3 Tools/ci/generate_sbom.py \
|
||||
--source-dir . \
|
||||
--board px4_fmu-v6x_default \
|
||||
--modules-file build/px4_fmu-v6x_default/config_module_list.txt \
|
||||
--compiler arm-none-eabi-gcc \
|
||||
--output build/px4_fmu-v6x_default/px4_fmu-v6x_default.sbom.spdx.json
|
||||
```
|
||||
|
||||
## Artifacts
|
||||
|
||||
SBOMs are available in:
|
||||
|
||||
| Location | Path |
|
||||
| --------------- | ---------------------------------------- |
|
||||
| Build directory | `build/<target>/<target>.sbom.spdx.json` |
|
||||
| GitHub Releases | Alongside `.px4` firmware files |
|
||||
| S3 | Same directory as firmware artifacts |
|
||||
|
||||
## Validation
|
||||
|
||||
Validate an SBOM against the SPDX JSON schema:
|
||||
|
||||
```sh
|
||||
python3 -c "
|
||||
import json
|
||||
doc = json.load(open('build/px4_sitl_default/px4_sitl_default.sbom.spdx.json'))
|
||||
assert doc['spdxVersion'] == 'SPDX-2.3'
|
||||
assert doc['dataLicense'] == 'CC0-1.0'
|
||||
assert len(doc['packages']) > 0
|
||||
print(f'Valid: {len(doc[\"packages\"])} packages')
|
||||
"
|
||||
```
|
||||
|
||||
For full schema validation, use the [SPDX online validator](https://tools.spdx.org/app/validate/) or the `spdx-tools` CLI.
|
||||
|
||||
## License Detection
|
||||
|
||||
Submodule licenses are identified through a combination of auto-detection and manual overrides.
|
||||
|
||||
### Auto-Detection
|
||||
|
||||
The generator reads the first 100 lines of each submodule's LICENSE or COPYING file
|
||||
and matches keywords against known patterns.
|
||||
Copyleft licenses (GPL, LGPL, AGPL) are checked before permissive ones
|
||||
to prevent false positives.
|
||||
|
||||
Supported patterns include:
|
||||
|
||||
| SPDX Identifier | Matched Keywords |
|
||||
| ----------------------------- | ------------------------------------------------------------------ |
|
||||
| GPL-3.0-only | "GNU GENERAL PUBLIC LICENSE", "Version 3" |
|
||||
| GPL-2.0-only | "GNU GENERAL PUBLIC LICENSE", "Version 2" |
|
||||
| LGPL-3.0-only | "GNU LESSER GENERAL PUBLIC LICENSE", "Version 3" |
|
||||
| LGPL-2.1-only | "GNU Lesser General Public License", "Version 2.1" |
|
||||
| AGPL-3.0-only | "GNU AFFERO GENERAL PUBLIC LICENSE", "Version 3" |
|
||||
| Apache-2.0 | "Apache License", "Version 2.0" |
|
||||
| MIT | "Permission is hereby granted" |
|
||||
| BSD-3-Clause | "Redistribution and use", "Neither the name" |
|
||||
| BSD-2-Clause | "Redistribution and use", "THIS SOFTWARE IS PROVIDED" |
|
||||
| ISC | "Permission to use, copy, modify, and/or distribute" |
|
||||
| EPL-2.0 | "Eclipse Public License", "2.0" |
|
||||
| Unlicense | "The Unlicense", "unlicense.org" |
|
||||
|
||||
If no pattern matches, the license is set to `NOASSERTION`.
|
||||
|
||||
### Override File
|
||||
|
||||
When auto-detection fails or returns the wrong result,
|
||||
add an entry to `Tools/ci/license-overrides.yaml`:
|
||||
|
||||
```yaml
|
||||
overrides:
|
||||
src/lib/crypto/libtomcrypt:
|
||||
license: "Unlicense"
|
||||
comment: "Public domain dedication. Functionally equivalent to Unlicense."
|
||||
```
|
||||
|
||||
Each entry maps a submodule path to its correct SPDX license identifier.
|
||||
The optional `comment` field is emitted as `licenseComments` in the SBOM,
|
||||
providing context for auditors reviewing complex licensing situations
|
||||
(dual licenses, composite LICENSE files, public domain dedications).
|
||||
|
||||
### Copyleft Guardrail
|
||||
|
||||
The `--verify-licenses` command flags submodules with copyleft licenses
|
||||
(GPL, LGPL, AGPL) in a dedicated warning section.
|
||||
This is informational only and does not cause a failure.
|
||||
It helps maintainers track copyleft obligations when adding new submodules.
|
||||
|
||||
### Platform Filtering
|
||||
|
||||
Submodules under `platforms/nuttx/` are excluded from POSIX and QURT SBOMs.
|
||||
The `--platform` argument (set automatically by CMake via `${PX4_PLATFORM}`)
|
||||
controls which platform-specific submodules are included.
|
||||
This ensures SITL builds do not list NuttX RTOS packages.
|
||||
|
||||
### Перевірка
|
||||
|
||||
Run the verify command to check detection for all submodules:
|
||||
|
||||
```sh
|
||||
python3 Tools/ci/generate_sbom.py --verify-licenses --source-dir .
|
||||
```
|
||||
|
||||
This prints each submodule with its detected license, any override, and the final value.
|
||||
It exits non-zero if any checked-out submodule resolves to `NOASSERTION` without an override.
|
||||
Copyleft warnings are printed after the main table.
|
||||
|
||||
### Adding a New Submodule
|
||||
|
||||
1. Add the submodule normally.
|
||||
2. Run `--verify-licenses` to confirm the license is detected.
|
||||
3. If detection fails, add an override to `Tools/ci/license-overrides.yaml`.
|
||||
4. If the license is not in the SPDX list, use `LicenseRef-<name>`.
|
||||
|
||||
### EU CRA Compliance
|
||||
|
||||
The EU Cyber Resilience Act requires SBOMs for products with digital elements.
|
||||
The goal is zero `NOASSERTION` licenses in shipped firmware SBOMs.
|
||||
Every submodule should have either a detected or overridden license.
|
||||
The `--verify-licenses` check enforces this in CI.
|
||||
|
||||
## What's in an SBOM
|
||||
|
||||
This section is for integrators, compliance teams, and anyone reviewing SBOM artifacts.
|
||||
|
||||
### Where to Find SBOMs
|
||||
|
||||
| Location | Path |
|
||||
| --------------- | ---------------------------------------- |
|
||||
| Build directory | `build/<target>/<target>.sbom.spdx.json` |
|
||||
| GitHub Releases | Alongside `.px4` firmware files |
|
||||
| S3 | Same directory as firmware artifacts |
|
||||
|
||||
### Reading the JSON
|
||||
|
||||
Each SBOM is a single JSON document following SPDX 2.3.
|
||||
Key fields:
|
||||
|
||||
- **`packages`**: Array of all components. Each has `name`, `versionInfo`, `licenseConcluded`, and `SPDXID`.
|
||||
- **`relationships`**: How packages relate. `CONTAINS` means a submodule is compiled into firmware. `BUILD_DEPENDENCY_OF` means a tool used only during build.
|
||||
- **`licenseConcluded`**: The SPDX license identifier determined for that package.
|
||||
- **`licenseComments`**: Free-text explanation for complex cases (dual licenses, composite files, public domain).
|
||||
- **`externalRefs`**: Package URLs (purls) linking to GitHub repos or PyPI.
|
||||
|
||||
### Understanding NOASSERTION
|
||||
|
||||
`NOASSERTION` means no license could be determined.
|
||||
For submodules, this happens when:
|
||||
|
||||
- The submodule is not checked out (common in CI shallow clones).
|
||||
- No LICENSE/COPYING file exists.
|
||||
- The LICENSE file does not match any known pattern and no override is configured.
|
||||
|
||||
For shipped firmware, `NOASSERTION` should be resolved by adding an override.
|
||||
For build-only dependencies (Python packages), `NOASSERTION` is acceptable
|
||||
since these are not compiled into the firmware binary.
|
||||
@@ -25,7 +25,7 @@ Developer <=> GDB <=> GDB Server <=> Debug Probe <=> SWD <=> PX4 Autopilot.
|
||||
|
||||
- [SEGGER J-Link](probe_jlink.md): commercial probe, no built-in serial console, requires adapter.
|
||||
- [Black Magic Probe](probe_bmp.md): integrated GDB server and serial console, requires adapter.
|
||||
- [STLink](probe_stlink): best value, integrated serial console, adapter must be soldered.
|
||||
- [STLink](probe_stlink.md): best value, integrated serial console, adapter must be soldered.
|
||||
|
||||
Рекомендуємо використовувати J-Link з адаптером налагодження Pixhawk або STLinkv3-MINIE зі спеціально спаяним кабелем.
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ PX4 runs on ARM Cortex-M microcontrollers, which contain dedicated hardware for
|
||||
Інтерфейс відладки SWD дозволяє прямий, низькорівневий, апаратний доступ до процесора мікроконтролера та периферійних пристроїв, тому він не залежить від будь-якого програмного забезпечення на пристрої.
|
||||
Отже, його можна використовувати для налагодження завантажувальних програм та операційних систем, таких як NuttX.
|
||||
|
||||
## Налагодження сигналів
|
||||
## Debug Signals {#debug-signals}
|
||||
|
||||
Чотири сигнали необхідні для відлагодження (в жирному шрифті), а решту лише рекомендується.
|
||||
|
||||
@@ -29,7 +29,7 @@ SWO-пін може випромінювати дані профілювання
|
||||
|
||||
## Autopilot Debug Ports {#debug-ports}
|
||||
|
||||
Flight controllers commonly provide a single debug port that exposes both the [SWD Interface](#debug-signals) and [System Console](system_console).
|
||||
Flight controllers commonly provide a single debug port that exposes both the [SWD Interface](#debug-signals) and [System Console](system_console.md).
|
||||
|
||||
The [Pixhawk Connector Standards](#pixhawk-standard-debug-ports) formalize the port that must be used in each FMU version.
|
||||
However there are still many boards that use different pinouts or connectors, so we recommend you check the [documentation for your autopilot](../flight_controller/index.md) to confirm port location and pinout.
|
||||
@@ -91,7 +91,7 @@ There FMU and Pixhawk versions are (only) consistent after FMUv5X.
|
||||
|
||||
### Pixhawk Debug Mini
|
||||
|
||||
The [Pixhawk Connector Standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-009%20Pixhawk%20Connector%20Standard.pdf) defines the _Pixhawk Debug Mini_, a _6-Pin SH Debug Port_ that provides access to both SWD pins and the [System Console](system_console).
|
||||
The [Pixhawk Connector Standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-009%20Pixhawk%20Connector%20Standard.pdf) defines the _Pixhawk Debug Mini_, a _6-Pin SH Debug Port_ that provides access to both SWD pins and the [System Console](system_console.md).
|
||||
|
||||
Це використовується в FMUv4 та FMUv5.
|
||||
|
||||
@@ -122,7 +122,7 @@ You can connect to the debug port using a [cable like this one](https://www.digi
|
||||
|
||||
### Порти відладки Pixhawk Full
|
||||
|
||||
The [Pixhawk Connector Standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-009%20Pixhawk%20Connector%20Standard.pdf) defines _Pixhawk Debug Full_, a _10-Pin SH Debug Port_ that provides access to both SWD pins and the [System Console](system_console).
|
||||
The [Pixhawk Connector Standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-009%20Pixhawk%20Connector%20Standard.pdf) defines _Pixhawk Debug Full_, a _10-Pin SH Debug Port_ that provides access to both SWD pins and the [System Console](system_console.md).
|
||||
This essentially moves the solder pads from beside the [Pixhawk Debug Mini](#pixhawk-debug-mini) into the connector, and also adds an SWO pin.
|
||||
|
||||
Цей порт вказаний для використання в FMUv5x, FMUv6, FMUv6x.
|
||||
@@ -154,14 +154,14 @@ You can connect to the debug port using a [cable like this one](https://www.digi
|
||||
|
||||
## Debug Probes for PX4 Hardware {#debug-probes}
|
||||
|
||||
Flight controllers commonly provide a [single debug port](#autopilot-debug-ports) that exposes both the [SWD Interface](#debug-signals) and [System Console](system_console).
|
||||
Flight controllers commonly provide a [single debug port](#autopilot-debug-ports) that exposes both the [SWD Interface](#debug-signals) and [System Console](system_console.md).
|
||||
|
||||
Є кілька зондів відлагодження, які були перевірені та підтримуються для підключення до одного або обох цих інтерфейсів:
|
||||
|
||||
- [SEGGER J-Link](../debug/probe_jlink.md): commercial probe, no built-in serial console, requires adapter.
|
||||
- [Black Magic Probe](../debug/probe_bmp.md): integrated GDB server and serial console, requires adapter.
|
||||
- [STLink](../debug/probe_stlink): best value, integrated serial console, adapter must be soldered.
|
||||
- [MCU-Link](../debug/probe_mculink): best value, integrated serial console, requires adapter.
|
||||
- [STLink](../debug/probe_stlink.md): best value, integrated serial console, adapter must be soldered.
|
||||
- [MCU-Link](../debug/probe_mculink.md): best value, integrated serial console, requires adapter.
|
||||
|
||||
Адаптер для підключення до роз'єму відладки може поставлятися разом із вашим контролером польоту або відлагоджувальним зондом.
|
||||
Інші варіанти наведено нижче.
|
||||
@@ -199,7 +199,7 @@ Some SWD [debug probes](#debug-probes) come with adapters/cables for connecting
|
||||
|
||||
### Адаптери, специфічні для плати
|
||||
|
||||
Some manufacturers provide cables to make it easy to connect the SWD interface and [System Console](../debug/system_console).
|
||||
Some manufacturers provide cables to make it easy to connect the SWD interface and [System Console](../debug/system_console.md).
|
||||
|
||||
- [CUAV V5nano](../flight_controller/cuav_v5_nano.md#debug_port) and [CUAV V5+](../flight_controller/cuav_v5_plus.md#debug-port) include this debug cable:
|
||||
|
||||
@@ -213,7 +213,7 @@ Some manufacturers provide cables to make it easy to connect the SWD interface a
|
||||
- Підключіть контакт VREF, якщо його підтримує засіб відлагодження.
|
||||
- Підключіть залишкові контакти, якщо вони є.
|
||||
|
||||
See the [STLinkv3-MINIE](probe_stlink) for a guide on how to solder a custom cable.
|
||||
See the [STLinkv3-MINIE](probe_stlink.md) for a guide on how to solder a custom cable.
|
||||
|
||||
:::tip
|
||||
Where possible, we highly recommend that you create or obtain an adapter board rather than custom cables for connecting to SWD/JTAG debuggers and computers.
|
||||
|
||||
@@ -282,7 +282,7 @@ make [VENDOR_][MODEL][_VARIANT] [VIEWER_MODEL_DEBUGGER_WORLD]
|
||||
- **VENDOR:** The manufacturer of the board: `px4`, `aerotenna`, `airmind`, `atlflight`, `auav`, `beaglebone`, `intel`, `nxp`, etc.
|
||||
The vendor name for Pixhawk series boards is `px4`.
|
||||
- **MODEL:** The _board model_ "model": `sitl`, `fmu-v2`, `fmu-v3`, `fmu-v4`, `fmu-v5`, `navio2`, etc.
|
||||
- **VARIANT:** Indicates particular configurations: e.g. `bootloader`, `cyphal`, which contain components that are not present in the `default` configuration.
|
||||
- **VARIANT:** Indicates particular configurations: e.g. `bootloader`, `cyphal`, `sih`, which add or remove components to/from the `default` configuration.
|
||||
Most commonly this is `default`, and may be omitted.
|
||||
|
||||
:::tip
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Середовище розробки Arch Linux
|
||||
|
||||
:::warning
|
||||
This development environment is [community supported and maintained](../advanced/community_supported_dev_env).
|
||||
This development environment is [community supported and maintained](../advanced/community_supported_dev_env.md).
|
||||
Це може працювати або не працювати з поточними версіями PX4.
|
||||
|
||||
Дивіться [Встановлення інструментарію](../dev_setup/dev_env.md) для інформації про середовища та інструменти, що підтримуються основною командою розробників.
|
||||
|
||||
@@ -84,7 +84,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).
|
||||
- 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.
|
||||
- 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 [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.
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ PX4 supports DroneCAN compliant ESCs.
|
||||
## Supported ESC
|
||||
|
||||
:::info
|
||||
[Supported ESCs](../peripherals/esc_motors#supported-esc) in _ESCs & Motors_ may include additional devices that are not listed below.
|
||||
[Supported ESCs](../peripherals/esc_motors.md#supported-esc) in _ESCs & Motors_ may include additional devices that are not listed below.
|
||||
:::
|
||||
|
||||
The following articles have specific hardware/firmware information:
|
||||
|
||||
@@ -5,7 +5,7 @@ PX4 не розробляє цей (або будь-який інший) авт
|
||||
Contact the [manufacturer](https://arkelectron.com/contact-us/) for hardware support or compliance issues.
|
||||
:::
|
||||
|
||||
The USA-built [ARKV6X](\(https://arkelectron.gitbook.io/ark-documentation/flight-controllers/arkv6x\)) flight controller is based on the [FMUV6X and Pixhawk Autopilot Bus open source standards](https://github.com/pixhawk/Pixhawk-Standards).
|
||||
The USA-built [ARKV6X](https://arkelectron.gitbook.io/ark-documentation/flight-controllers/arkv6x) flight controller is based on the [FMUV6X and Pixhawk Autopilot Bus open source standards](https://github.com/pixhawk/Pixhawk-Standards).
|
||||
|
||||
Завдяки потрійній синхронізації IMU можливе узагальнення даних, голосування та фільтрація.
|
||||
The Pixhawk Autopilot Bus (PAB) form factor enables the ARKV6X to be used on any [PAB-compatible carrier board](../flight_controller/pixhawk_autopilot_bus.md), such as the [ARK Pixhawk Autopilot Bus Carrier](../flight_controller/ark_pab.md).
|
||||
|
||||
@@ -103,7 +103,7 @@ The _launch detector_ is affected by the following parameters:
|
||||
| Параметр | Опис |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
||||
| <a id="FW_LAUN_DETCN_ON"></a>[FW_LAUN_DETCN_ON](../advanced_config/parameter_reference.md#FW_LAUN_DETCN_ON) | Увімкнути автоматичне визначення запуску. Якщо вимкнені двигуни обертаються при підготовці до польоту |
|
||||
| <a id="FW_LAUN_AC_THLD"></a>[FW_LAUN_AC_THLD](../advanced_config/parameter_reference.md#FW_LAUN_AC_THLD) | Поріг прискорення (прискорення в напрямку руху тіла повинно бути вище цієї величини) |
|
||||
| <a id="FW_LAUN_AC_THLD"></a>[FW_LAUN_AC_THLD](../advanced_config/parameter_reference.md#FW_LAUN_AC_THLD) | Acceleration threshold (norm of acceleration must be above this value) |
|
||||
| <a id="FW_LAUN_AC_T"></a>[FW_LAUN_AC_T](../advanced_config/parameter_reference.md#FW_LAUN_AC_T) | Час спрацьовування (прискорення повинно бути вище порогу на цю кількість секунд) |
|
||||
| <a id="FW_LAUN_MOT_DEL"></a>[FW_LAUN_MOT_DEL](../advanced_config/parameter_reference.md#FW_LAUN_MOT_DEL) | Затримка від виявлення запуску до відкручування мотору |
|
||||
| <a id="FW_LAUN_CS_LK_DY"></a>[FW_LAUN_CS_LK_DY](../advanced_config/parameter_reference.md#FW_LAUN_CS_LK_DY) | Delay from launch detection to unlocking the control surfaces |
|
||||
|
||||
@@ -13,14 +13,14 @@ The mission is typically created and uploaded with a Ground Control Station (GCS
|
||||
|
||||
The following commands can be used in missions at time of writing (PX4 v1.16):
|
||||
|
||||
| QGC mission item | Команда | Опис |
|
||||
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- |
|
||||
| Mission start | [MAV_CMD_MISSION_START](MAV_CMD_MISSION_START) | Starts the mission. |
|
||||
| Waypoint | [MAV_CMD_NAV_WAYPOINT](MAV_CMD_NAV_WAYPOINT) | Navigate to waypoint. |
|
||||
| Return to launch | [MAV\_CMD\_NAV\_RETURN\_TO\_LAUNCH][MAV_CMD_NAV_RETURN_TO_LAUNCH] | Return to the launch location. |
|
||||
| Change speed | [MAV\_CMD\_DO\_CHANGE\_SPEED][MAV_CMD_DO_CHANGE_SPEED] | Change the speed setpoint |
|
||||
| Set launch location | [MAV_CMD_DO_SET_HOME](MAV_CMD_DO_SET_HOME) | Changes launch location to specified coordinates. |
|
||||
| Jump to item (all) | [MAV\_CMD\_DO\_JUMP][MAV_CMD_DO_JUMP] (and other jump commands) | Jump to specified mission item. |
|
||||
| QGC mission item | Команда | Опис |
|
||||
| ------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- |
|
||||
| Mission start | [MAV\_CMD\_MISSION\_START][MAV_CMD_MISSION_START] | Starts the mission. |
|
||||
| Waypoint | [MAV\_CMD\_NAV\_WAYPOINT][MAV_CMD_NAV_WAYPOINT] | Navigate to waypoint. |
|
||||
| Return to launch | [MAV\_CMD\_NAV\_RETURN\_TO\_LAUNCH][MAV_CMD_NAV_RETURN_TO_LAUNCH] | Return to the launch location. |
|
||||
| Change speed | [MAV\_CMD\_DO\_CHANGE\_SPEED][MAV_CMD_DO_CHANGE_SPEED] | Change the speed setpoint |
|
||||
| Set launch location | [MAV\_CMD\_DO\_SET\_HOME][MAV_CMD_DO_SET_HOME] | Changes launch location to specified coordinates. |
|
||||
| Jump to item (all) | [MAV\_CMD\_DO\_JUMP][MAV_CMD_DO_JUMP] (and other jump commands) | Jump to specified mission item. |
|
||||
|
||||
[MAV_CMD_MISSION_START]: https://mavlink.io/en/messages/common.html#MAV_CMD_MISSION_START
|
||||
[MAV_CMD_NAV_WAYPOINT]: https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_WAYPOINT
|
||||
|
||||
@@ -33,14 +33,67 @@ the [Airframe Reference](../airframes/airframe_reference.md#vectored-6-dof-uuv):
|
||||
- **MAIN7:** motor 7 CCW, stern starboard vertical, propeller CW
|
||||
- **MAIN8:** motor 8 CCW, stern port vertical, propeller CCW
|
||||
|
||||
## Basic Control Axes
|
||||
|
||||
For underwater vehicles, motion is defined in terms of body axes:
|
||||
|
||||
- **Surge:** forward/back motion - translation along the body X axis.
|
||||
- **Sway:** left/right motion - translation along the body Y axis.
|
||||
- **Heave:** up/down motion - translation along the body Z axis.
|
||||
- **Yaw:** rotation about the (vertical) body Z axis.
|
||||
|
||||
### Stick Mapping (Mode 2)
|
||||
|
||||
The mapping below illustrates the default joystick behavior:
|
||||
|
||||
- **Pitch stick (forward/back):** surge
|
||||
- **Roll stick (left/right):** sway
|
||||
- **Throttle stick (up/down):** heave
|
||||
- **Yaw stick (left/right):** yaw
|
||||
|
||||

|
||||
|
||||
## Manual Modes
|
||||
|
||||
| Режим | Опис |
|
||||
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Manual | Direct manual control of yaw and thrust. |
|
||||
| Acro | Manual control of yaw/thrust, but keeps roll/pitch zero |
|
||||
| Altitude | Manual control of x/y thrust and yaw. Control of height with PID, manually controlled by user. Keeps roll/pitch zero |
|
||||
| Положення | Controls x/y/z and yaw. Manually controlled by user. Keeps roll/pitch zero |
|
||||
The following manual and assisted modes are currently supported on BlueROV2 Heavy:
|
||||
|
||||
| Режим | Опис |
|
||||
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Manual | Direct manual control of thrust and yaw. |
|
||||
| Stabilized | Manual control of thurst and yaw with roll/pitch stabilization. |
|
||||
| Acro | Manual control of yaw-rate and direct thrust commands with roll/pitch stabilization. |
|
||||
| Altitude | Manual control of x/y thrust and yaw. Control of height with PID, manually controlled by user. Keeps roll/pitch stabilized. |
|
||||
| Положення | Controls x, y, z and yaw with position hold when sticks are released. Keeps roll/pitch stabilized. |
|
||||
|
||||
## Joystick Stick Mode
|
||||
|
||||
BlueROV2 supports two joystick mappings for manual control, selected using the
|
||||
[UUV_STICK_MODE](../advanced_config/parameter_reference.md#UUV_STICK_MODE) parameter.
|
||||
|
||||
By default, `UUV_STICK_MODE` is set to `0`, which enables the UUV stick mapping intended for vectored underwater vehicles.
|
||||
|
||||
### UUV_STICK_MODE = 0 (default)
|
||||
|
||||
This mode is intended for normal BlueROV2 operation.
|
||||
In `Manual`, `Stabilized`, and `Acro` modes, the sticks command:
|
||||
|
||||
- **Pitch stick:** surge - moving stick up -> moving forward, +X translation in body frame.
|
||||
- **Roll stick:** sway - moving stick right -> moving sideways right, +Y translation in body frame.
|
||||
- **Throttle stick:** heave - moving stick up -> moving upwards, -Z translation in body frame (note the Z axis points Down of the vehicle in PX4).
|
||||
- **Yaw stick:** yaw - moving stick right -> yawing to the right, +Z rotation in body frame.
|
||||
|
||||
In this mode, roll and pitch are kept level rather than commanded directly.
|
||||
|
||||
### UUV_STICK_MODE = 1
|
||||
|
||||
This mode enables the legacy multicopter-style stick mapping for `Manual`, `Stabilized`, and `Acro` modes:
|
||||
|
||||
- **Throttle stick:** surge - moving stick up -> moving forward, +X translation in body frame.
|
||||
- **Roll stick:** roll - moving stick right -> rolling to the right side, +X rotation in body frame.
|
||||
- **Pitch stick:** pitch - moving stick up -> pitching down, -X translation in body frame (note signs are switched to follow PX4 standard).
|
||||
- **Yaw stick:** yaw - moving stick right -> yawing to the right, +Z rotation in body frame.
|
||||
|
||||
This mode is mainly provided for compatibility with older setups and user preference.
|
||||
|
||||
## Конфігурація планера
|
||||
|
||||
|
||||
@@ -6,15 +6,15 @@
|
||||
Support for UUVs is [experimental](../airframes/index.md#experimental-vehicles).
|
||||
Maintainer volunteers, [contribution](../contribute/index.md) of new features, new frame configurations, or other improvements would all be very welcome!
|
||||
|
||||
На момент написання він був протестований лише з використанням ROS у автономному режимі.
|
||||
At time of writing manual and assisted manual modes are available for supported UUV frames, as well as ROS in offboard mode.
|
||||
Наступні функції не були реалізовані:
|
||||
|
||||
- Такі режими, як місії, утримання глибини, стабілізоване ручне керування тощо.
|
||||
- Autonomous mission-style underwater workflows are still limited compared to aerial vehicles.
|
||||
- Підтримка BlueRobotics.
|
||||
|
||||
:::
|
||||
|
||||
PX4 має базову підтримку UUV.
|
||||
PX4 has basic support for UUVs. For BlueROV2 Heavy, PX4 currently supports Manual, Stabilized, Acro, Altitude and Position modes.
|
||||
|
||||
## Підтримувані конструкції
|
||||
|
||||
|
||||
@@ -14,51 +14,52 @@ PX4 використовує термін VTOL для посилання на т
|
||||
|
||||
## Типи VTOL
|
||||
|
||||
PX4 підтримує три найважливіші/основні типи VTOL.
|
||||
PX4 supports the three most important/main VTOL types: [Standard VTOL](standardvtol.md), [Tiltrotor](tiltrotor.md), and [Tailsitter](tailsitter.md).
|
||||
|
||||
<div class="grid_wrapper three_column">
|
||||
<div class="grid_item">
|
||||
<div class="grid_item_heading"><a href="tailsitter.html" title="Tailsitter"><big>Tailsitter</big></a></div>
|
||||
<div class="grid_text">
|
||||
Ротори постійно в фіксованому положенні крила.
|
||||
Злітає та сідає на хвіст. Уся транспортна засіб нахиляється вперед, щоб увійти в режим польоту вперед.
|
||||
<img src="../../assets/airframes/vtol/wingtraone/hero.jpg" title="wingtraone" />
|
||||
<ul>
|
||||
<li>Простий та надійний</li>
|
||||
<li>Мінімальний набір приводів</li>
|
||||
<li>Може бути важко контролювати, особливо на вітер</li>
|
||||
<li>Компроміс між ефективністю у режимі гвинтокрилу та прямолітання, оскільки використовуються одні й ті ж приводи</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_item">
|
||||
<div class="grid_item_heading"><a href="tiltrotor.html" title="Tiltrotor"><big>Tiltrotor</big></a></div>
|
||||
|
||||
Ротори обертаються на 90 градусів для переходу від багатокоптерного до орієнтації польоту вперед.
|
||||
Злітає та сідає на живіт.
|
||||
<div class="grid_text">
|
||||
<img src="../../assets/airframes/vtol/eflite_convergence_pixfalcon/hero.jpg" title="Eflight Confvergence" />
|
||||
<ul>
|
||||
<li>Додаткові приводи для нахилу двигуна</li>
|
||||
<li>Механічно складний механізм нахилу</li>
|
||||
<li>Легше контролювати у режимі гвинтокрилу, ніж у режимі вертикального зльоту через більшу владу над керуванням</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_item">
|
||||
<div class="grid_item_heading"><a href="standardvtol.html" title="Standard VTOL"><big>Standard VTOL</big></a></div>
|
||||
<div class="grid_text">
|
||||
Окремі ротори/керування польотом для багтороторника та прямого польоту. Злітає та сідає на живіт.
|
||||
<img src="../../assets/airframes/vtol/vertical_technologies_deltaquad/hero_small.png" title="Vertical Technologies: Deltaquad" />
|
||||
<ul>
|
||||
<li>Додаткова вага від окремих систем пропульсії для гвинтового/впередового польоту</li>
|
||||
<li>Найлегше керувати завдяки присвяченим активаторам підйому/переміщення вперед</li>
|
||||
<li>Може зависити</li>
|
||||
<li>Паливні двигуни для просування вперед можуть бути використані</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
:::: tabs
|
||||
|
||||
:::tab Standard VTOL
|
||||
|
||||
Окремі ротори/керування польотом для багтороторника та прямого польоту.
|
||||
Злітає та сідає на живіт.
|
||||
|
||||

|
||||
|
||||
- Додаткова вага від окремих систем пропульсії для гвинтового/впередового польоту
|
||||
- Найлегше керувати завдяки присвяченим активаторам підйому/переміщення вперед
|
||||
- Може зависити
|
||||
- Fuel engines can be used for forward flight propulsion
|
||||
|
||||
:::
|
||||
|
||||
:::tab Tailsitter
|
||||
|
||||
Ротори постійно в фіксованому положенні крила.
|
||||
Злітає та сідає на хвіст. Уся транспортна засіб нахиляється вперед, щоб увійти в режим польоту вперед.
|
||||
|
||||

|
||||
|
||||
- Простий та надійний
|
||||
- Мінімальний набір приводів
|
||||
- Може бути важко контролювати, особливо на вітер
|
||||
- Компроміс між ефективністю у режимі гвинтокрилу та прямолітання, оскільки використовуються одні й ті ж приводи
|
||||
|
||||
:::
|
||||
|
||||
:::tab Tiltrotor
|
||||
|
||||
Ротори обертаються на 90 градусів для переходу від багатокоптерного до орієнтації польоту вперед.
|
||||
Злітає та сідає на живіт.
|
||||
|
||||

|
||||
|
||||
- Додаткові приводи для нахилу двигуна
|
||||
- Механічно складний механізм нахилу
|
||||
- Легше контролювати у режимі гвинтокрилу, ніж у режимі вертикального зльоту через більшу владу над керуванням
|
||||
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
Загалом, зі збільшенням механічної складності літаки стають легшими у керуванні, але збільшується вартість та вага.
|
||||
Кожен тип має переваги й недоліки, і є успішні комерційні проекти, що ґрунтуються на них.
|
||||
@@ -126,7 +127,7 @@ VTOL Control & Airspeed Fault Detection (PX4 Developer Summit 2019)
|
||||
|
||||
<!-- 20190704 -->
|
||||
|
||||
### Tailsitter
|
||||
### Tailsitter {#tailsitter_video}
|
||||
|
||||
[UAV Works VALAQ Patrol Tailsitter](https://www.valaqpatrol.com/valaq_patrol_technical_data/)
|
||||
|
||||
@@ -136,7 +137,7 @@ VTOL Control & Airspeed Fault Detection (PX4 Developer Summit 2019)
|
||||
|
||||
<lite-youtube videoid="acG0aTuf3f8" title="PX4 VTOL - Call for Testpilots"/>
|
||||
|
||||
### Tiltrotor
|
||||
### Tiltrotor {#tiltrotor_video}
|
||||
|
||||
[Convergence Tiltrotor](../frames_vtol/vtol_tiltrotor_eflite_convergence_pixfalcon.md)
|
||||
|
||||
|
||||
@@ -89,35 +89,36 @@ This section contains videos that are specific to Tailsitter VTOL (videos that a
|
||||
|
||||
## Галерея
|
||||
|
||||
<div class="grid_wrapper three_column">
|
||||
<div class="grid_item">
|
||||
<div class="grid_item_heading"><big><a href="https://wingtra.com/mapping-drone-fast-accurate-surveying/">WingtraOne</a></big></div>
|
||||
<div class="grid_text">
|
||||
<img src="../../assets/airframes/vtol/wingtraone/hero.jpg" title="Wingtra: WingtraOne VTOL Duo Tailsitter" alt="wingtraone" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_item">
|
||||
<div class="grid_item_heading"><big><a href="https://www.skypull.technology/">Skypull</a></big></div>
|
||||
<div class="grid_text">
|
||||
<img title="Skypull SP-1 VTOL QuadTailsitter" src="../../assets/airframes/vtol/skypull/skypull_sp1.jpg" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_item">
|
||||
<div class="grid_item_heading"><big><a href="../frames_vtol/vtol_tailsitter_caipiroshka_pixracer.html">TBS Caipiroshka</a></big></div>
|
||||
<div class="grid_text">
|
||||
<img title="TBS Caipiroshka" src="../../assets/airframes/vtol/caipiroshka/caipiroshka.jpg" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_item">
|
||||
<div class="grid_item_heading"><big><a href="http://uav-cas.ac.cn/WOSHARK/">Woshark</a></big></div>
|
||||
<div class="grid_text">
|
||||
<img title="Woshark" src="../../assets/airframes/vtol/xdwgood_ax1800/hero.jpg" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="grid_item">
|
||||
<div class="grid_item_heading"><big><a href="https://www.valaqpatrol.com/valaq_patrol_technical_data/">UAV Works VALAQ Patrol Tailsitter</a></big></div>
|
||||
<div class="grid_text">
|
||||
<img title="UAV Works VALAQ Patrol Tailsitter" src="../../assets/airframes/vtol/uav_works_valaq_patrol/hero.jpg" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
:::: tabs
|
||||
|
||||
:::tab WingtraOne
|
||||
[WingtraOne](https://wingtra.com/mapping-drone-fast-accurate-surveying/)
|
||||
|
||||

|
||||
:::
|
||||
|
||||
:::tab Skypull
|
||||
[Skypull](https://www.skypull.technology/)
|
||||
|
||||

|
||||
:::
|
||||
|
||||
:::tab TBS Caipiroshka
|
||||
[TBS Caipiroshka](../frames_vtol/vtol_tailsitter_caipiroshka_pixracer.md)
|
||||
|
||||

|
||||
:::
|
||||
|
||||
:::tab Woshark
|
||||
[Woshark](http://uav-cas.ac.cn/WOSHARK/)
|
||||
|
||||

|
||||
:::
|
||||
|
||||
:::tab VALAQ Patrol Tailsitter
|
||||
[UAV Works VALAQ Patrol Tailsitter](https://www.valaqpatrol.com/valaq_patrol_technical_data/)
|
||||
|
||||

|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
+191
-190
@@ -96,205 +96,206 @@ They are not build into the module, and hence are neither published or subscribe
|
||||
:::details
|
||||
See messages
|
||||
|
||||
- [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)
|
||||
- [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)
|
||||
- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.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)
|
||||
- [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)
|
||||
- [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)
|
||||
- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
|
||||
- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
|
||||
- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
|
||||
- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
|
||||
- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
|
||||
- [RcParameterMap](../msg_docs/RcParameterMap.md)
|
||||
- [Rpm](../msg_docs/Rpm.md)
|
||||
- [EscStatus](../msg_docs/EscStatus.md)
|
||||
- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
|
||||
- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
|
||||
- [RadioStatus](../msg_docs/RadioStatus.md)
|
||||
- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
|
||||
- [SensorAirflow](../msg_docs/SensorAirflow.md)
|
||||
- [LedControl](../msg_docs/LedControl.md)
|
||||
- [HealthReport](../msg_docs/HealthReport.md)
|
||||
- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
|
||||
- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
|
||||
- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
|
||||
- [GpsInjectData](../msg_docs/GpsInjectData.md)
|
||||
- [NeuralControl](../msg_docs/NeuralControl.md)
|
||||
- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
|
||||
- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
|
||||
- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
|
||||
- [RtlStatus](../msg_docs/RtlStatus.md)
|
||||
- [DebugValue](../msg_docs/DebugValue.md)
|
||||
- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
|
||||
- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
|
||||
- [PpsCapture](../msg_docs/PpsCapture.md)
|
||||
- [RcChannels](../msg_docs/RcChannels.md)
|
||||
- [SensorMag](../msg_docs/SensorMag.md)
|
||||
- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
|
||||
- [DeviceInformation](../msg_docs/DeviceInformation.md)
|
||||
- [FollowTarget](../msg_docs/FollowTarget.md)
|
||||
- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
|
||||
- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
|
||||
- [Mission](../msg_docs/Mission.md)
|
||||
- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
|
||||
- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
|
||||
- [VehicleRoi](../msg_docs/VehicleRoi.md)
|
||||
- [InputRc](../msg_docs/InputRc.md)
|
||||
- [GimbalControls](../msg_docs/GimbalControls.md)
|
||||
- [SystemPower](../msg_docs/SystemPower.md)
|
||||
- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
|
||||
- [ActuatorTest](../msg_docs/ActuatorTest.md)
|
||||
- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
|
||||
- [VehicleImu](../msg_docs/VehicleImu.md)
|
||||
- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
|
||||
- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
|
||||
- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
|
||||
- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
|
||||
- [Cpuload](../msg_docs/Cpuload.md)
|
||||
- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
|
||||
- [TuneControl](../msg_docs/TuneControl.md)
|
||||
- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
|
||||
- [DebugVect](../msg_docs/DebugVect.md)
|
||||
- [TecsStatus](../msg_docs/TecsStatus.md)
|
||||
- [ButtonEvent](../msg_docs/ButtonEvent.md)
|
||||
- [DebugArray](../msg_docs/DebugArray.md)
|
||||
- [VelocityLimits](../msg_docs/VelocityLimits.md)
|
||||
- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
|
||||
- [SensorUwb](../msg_docs/SensorUwb.md)
|
||||
- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
|
||||
- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
|
||||
- [MavlinkLog](../msg_docs/MavlinkLog.md)
|
||||
- [SensorsStatus](../msg_docs/SensorsStatus.md)
|
||||
- [HomePositionV0](../msg_docs/HomePositionV0.md)
|
||||
- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
|
||||
- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
|
||||
- [EventV0](../msg_docs/EventV0.md)
|
||||
- [EstimatorStates](../msg_docs/EstimatorStates.md)
|
||||
- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
|
||||
- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
|
||||
- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
|
||||
- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
|
||||
- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
|
||||
- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
|
||||
- [VehicleAirData](../msg_docs/VehicleAirData.md)
|
||||
- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
|
||||
- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
|
||||
- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
|
||||
- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
|
||||
- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
|
||||
- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
|
||||
- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
|
||||
- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
|
||||
- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
|
||||
- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
|
||||
- [MagWorkerData](../msg_docs/MagWorkerData.md)
|
||||
- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
|
||||
- [Vtx](../msg_docs/Vtx.md)
|
||||
- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
|
||||
- [Gripper](../msg_docs/Gripper.md)
|
||||
- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
|
||||
- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
|
||||
- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
|
||||
- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
|
||||
- [GeofenceResult](../msg_docs/GeofenceResult.md)
|
||||
- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
|
||||
- [BatteryInfo](../msg_docs/BatteryInfo.md)
|
||||
- [ActionRequest](../msg_docs/ActionRequest.md)
|
||||
- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
|
||||
- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
|
||||
- [EstimatorBias](../msg_docs/EstimatorBias.md)
|
||||
- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
|
||||
- [Ping](../msg_docs/Ping.md)
|
||||
- [GainCompression](../msg_docs/GainCompression.md)
|
||||
- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
|
||||
- [VehicleStatusV2](../msg_docs/VehicleStatusV2.md)
|
||||
- [RaptorInput](../msg_docs/RaptorInput.md)
|
||||
- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
|
||||
- [Event](../msg_docs/Event.md)
|
||||
- [GpioConfig](../msg_docs/GpioConfig.md)
|
||||
- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
|
||||
- [RaptorStatus](../msg_docs/RaptorStatus.md)
|
||||
- [GpioOut](../msg_docs/GpioOut.md)
|
||||
- [SensorAccel](../msg_docs/SensorAccel.md)
|
||||
- [SensorTemp](../msg_docs/SensorTemp.md)
|
||||
- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
|
||||
- [PowerButtonState](../msg_docs/PowerButtonState.md)
|
||||
- [OrbTest](../msg_docs/OrbTest.md)
|
||||
- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
|
||||
- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
|
||||
- [DatamanRequest](../msg_docs/DatamanRequest.md)
|
||||
- [EscEepromRead](../msg_docs/EscEepromRead.md)
|
||||
- [OrbitStatus](../msg_docs/OrbitStatus.md)
|
||||
- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
|
||||
- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
|
||||
- [CameraTrigger](../msg_docs/CameraTrigger.md)
|
||||
- [QshellRetval](../msg_docs/QshellRetval.md)
|
||||
- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
|
||||
- [CameraCapture](../msg_docs/CameraCapture.md)
|
||||
- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
|
||||
- [DatamanResponse](../msg_docs/DatamanResponse.md)
|
||||
- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
|
||||
- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
|
||||
- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
|
||||
- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
|
||||
- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
|
||||
- [AirspeedWind](../msg_docs/AirspeedWind.md)
|
||||
- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
|
||||
- [PwmInput](../msg_docs/PwmInput.md)
|
||||
- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
|
||||
- [IrlockReport](../msg_docs/IrlockReport.md)
|
||||
- [QshellReq](../msg_docs/QshellReq.md)
|
||||
- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
|
||||
- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
|
||||
- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
|
||||
- [SensorCorrection](../msg_docs/SensorCorrection.md)
|
||||
- [CellularStatus](../msg_docs/CellularStatus.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)
|
||||
- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
|
||||
- [WheelEncoders](../msg_docs/WheelEncoders.md)
|
||||
- [EscReport](../msg_docs/EscReport.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)
|
||||
- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md)
|
||||
- [MissionResult](../msg_docs/MissionResult.md)
|
||||
- [LogMessage](../msg_docs/LogMessage.md)
|
||||
- [Cpuload](../msg_docs/Cpuload.md)
|
||||
- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
|
||||
- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
|
||||
- [PowerMonitor](../msg_docs/PowerMonitor.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)
|
||||
- [HeaterStatus](../msg_docs/HeaterStatus.md)
|
||||
- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
|
||||
- [GpioRequest](../msg_docs/GpioRequest.md)
|
||||
- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
|
||||
- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
|
||||
- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
|
||||
- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
|
||||
- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
|
||||
- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
|
||||
- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
|
||||
- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
|
||||
- [SensorBaro](../msg_docs/SensorBaro.md)
|
||||
- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
|
||||
- [GpsDump](../msg_docs/GpsDump.md)
|
||||
- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
|
||||
- [Airspeed](../msg_docs/Airspeed.md)
|
||||
- [LoggerStatus](../msg_docs/LoggerStatus.md)
|
||||
- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
|
||||
- [SensorGyro](../msg_docs/SensorGyro.md)
|
||||
- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
|
||||
- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
|
||||
- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
|
||||
- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
|
||||
- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
|
||||
- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
|
||||
- [MountOrientation](../msg_docs/MountOrientation.md)
|
||||
- [EscEepromWrite](../msg_docs/EscEepromWrite.md)
|
||||
- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
|
||||
- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
|
||||
- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
|
||||
- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
|
||||
- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
|
||||
- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
|
||||
- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
|
||||
- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
|
||||
- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
|
||||
- [SensorSelection](../msg_docs/SensorSelection.md)
|
||||
- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
|
||||
- [AdcReport](../msg_docs/AdcReport.md)
|
||||
- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
|
||||
- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
|
||||
|
||||
:::
|
||||
|
||||
@@ -8,14 +8,14 @@ pageClass: is-wide-page
|
||||
|
||||
## Fields
|
||||
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| --------------------------------------------------------------- | -------- | ---------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | | | time since system start (microseconds) |
|
||||
| safe_points_id | `uint32` | | | unique ID of active set of safe_point_items |
|
||||
| is_evaluation_pending | `bool` | | | flag if the RTL point needs reevaluation (e.g. new safe points available, but need loading). |
|
||||
| has_vtol_approach | `bool` | | | flag if approaches are defined for current RTL_TYPE parameter setting |
|
||||
| rtl_type | `uint8` | | | Type of RTL chosen |
|
||||
| safe_point_index | `uint8` | | | index of the chosen safe point, if in RTL_STATUS_TYPE_DIRECT_SAFE_POINT mode |
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| --------------------------------------------------------------- | -------- | ---------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | | | time since system start (microseconds) |
|
||||
| safe_points_id | `uint32` | | | unique ID of active set of safe_point_items |
|
||||
| is_evaluation_pending | `bool` | | | flag if the RTL point needs reevaluation (e.g. new safe points available, but need loading). |
|
||||
| has_vtol_approach | `bool` | | | flag if approaches are defined for current RTL_TYPE parameter setting |
|
||||
| rtl_type | `uint8` | | | Type of RTL chosen |
|
||||
| safe_point_index | `uint8` | | | index of the chosen safe point, UINT8_MAX if no rally point was chosen |
|
||||
|
||||
## Constants
|
||||
|
||||
@@ -43,7 +43,7 @@ bool is_evaluation_pending # flag if the RTL point needs reevaluation (e.
|
||||
bool has_vtol_approach # flag if approaches are defined for current RTL_TYPE parameter setting
|
||||
|
||||
uint8 rtl_type # Type of RTL chosen
|
||||
uint8 safe_point_index # index of the chosen safe point, if in RTL_STATUS_TYPE_DIRECT_SAFE_POINT mode
|
||||
uint8 safe_point_index # index of the chosen safe point, UINT8_MAX if no rally point was chosen
|
||||
|
||||
uint8 RTL_STATUS_TYPE_NONE=0 # pending if evaluation can't pe performed currently e.g. when it is still loading the safe points
|
||||
uint8 RTL_STATUS_TYPE_DIRECT_SAFE_POINT=1 # chosen to directly go to a safe point or home position
|
||||
|
||||
@@ -25,7 +25,6 @@ Encodes the system state of the vehicle published by commander.
|
||||
| nav_state_display | `uint8` | | | User-visible nav state sent via MAVLink (executor state if active, otherwise nav_state) |
|
||||
| valid_nav_states_mask | `uint32` | | | Bitmask for all valid nav_state values |
|
||||
| can_set_nav_states_mask | `uint32` | | | Bitmask for all modes that a user can select |
|
||||
| failure_detector_status | `uint16` | | | |
|
||||
| hil_state | `uint8` | | | |
|
||||
| vehicle_type | `uint8` | | | |
|
||||
| failsafe | `bool` | | | true if system is in failsafe state (e.g.:RTL, Hover, Terminate, ...) |
|
||||
@@ -56,71 +55,62 @@ Encodes the system state of the vehicle published by commander.
|
||||
|
||||
## Constants
|
||||
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------- | ----------------------------------------------------------------------------- |
|
||||
| <a id="#MESSAGE_VERSION"></a> MESSAGE_VERSION | `uint32` | 2 | |
|
||||
| <a id="#ARMING_STATE_DISARMED"></a> ARMING_STATE_DISARMED | `uint8` | 1 | |
|
||||
| <a id="#ARMING_STATE_ARMED"></a> ARMING_STATE_ARMED | `uint8` | 2 | |
|
||||
| <a id="#ARM_DISARM_REASON_STICK_GESTURE"></a> ARM_DISARM_REASON_STICK_GESTURE | `uint8` | 1 | |
|
||||
| <a id="#ARM_DISARM_REASON_RC_SWITCH"></a> ARM_DISARM_REASON_RC_SWITCH | `uint8` | 2 | |
|
||||
| <a id="#ARM_DISARM_REASON_COMMAND_INTERNAL"></a> ARM_DISARM_REASON_COMMAND_INTERNAL | `uint8` | 3 | |
|
||||
| <a id="#ARM_DISARM_REASON_COMMAND_EXTERNAL"></a> ARM_DISARM_REASON_COMMAND_EXTERNAL | `uint8` | 4 | |
|
||||
| <a id="#ARM_DISARM_REASON_MISSION_START"></a> ARM_DISARM_REASON_MISSION_START | `uint8` | 5 | |
|
||||
| <a id="#ARM_DISARM_REASON_LANDING"></a> ARM_DISARM_REASON_LANDING | `uint8` | 6 | |
|
||||
| <a id="#ARM_DISARM_REASON_PREFLIGHT_INACTION"></a> ARM_DISARM_REASON_PREFLIGHT_INACTION | `uint8` | 7 | |
|
||||
| <a id="#ARM_DISARM_REASON_KILL_SWITCH"></a> ARM_DISARM_REASON_KILL_SWITCH | `uint8` | 8 | |
|
||||
| <a id="#ARM_DISARM_REASON_RC_BUTTON"></a> ARM_DISARM_REASON_RC_BUTTON | `uint8` | 13 | |
|
||||
| <a id="#ARM_DISARM_REASON_FAILSAFE"></a> ARM_DISARM_REASON_FAILSAFE | `uint8` | 14 | |
|
||||
| <a id="#NAVIGATION_STATE_MANUAL"></a> NAVIGATION_STATE_MANUAL | `uint8` | 0 | Manual mode |
|
||||
| <a id="#NAVIGATION_STATE_ALTCTL"></a> NAVIGATION_STATE_ALTCTL | `uint8` | 1 | Altitude control mode |
|
||||
| <a id="#NAVIGATION_STATE_POSCTL"></a> NAVIGATION_STATE_POSCTL | `uint8` | 2 | Position control mode |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_MISSION"></a> NAVIGATION_STATE_AUTO_MISSION | `uint8` | 3 | Auto mission mode |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_LOITER"></a> NAVIGATION_STATE_AUTO_LOITER | `uint8` | 4 | Auto loiter mode |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_RTL"></a> NAVIGATION_STATE_AUTO_RTL | `uint8` | 5 | Auto return to launch mode |
|
||||
| <a id="#NAVIGATION_STATE_POSITION_SLOW"></a> NAVIGATION_STATE_POSITION_SLOW | `uint8` | 6 | |
|
||||
| <a id="#NAVIGATION_STATE_FREE5"></a> NAVIGATION_STATE_FREE5 | `uint8` | 7 | |
|
||||
| <a id="#NAVIGATION_STATE_ALTITUDE_CRUISE"></a> NAVIGATION_STATE_ALTITUDE_CRUISE | `uint8` | 8 | Altitude with Cruise mode |
|
||||
| <a id="#NAVIGATION_STATE_FREE3"></a> NAVIGATION_STATE_FREE3 | `uint8` | 9 | |
|
||||
| <a id="#NAVIGATION_STATE_ACRO"></a> NAVIGATION_STATE_ACRO | `uint8` | 10 | Acro mode |
|
||||
| <a id="#NAVIGATION_STATE_FREE2"></a> NAVIGATION_STATE_FREE2 | `uint8` | 11 | |
|
||||
| <a id="#NAVIGATION_STATE_DESCEND"></a> NAVIGATION_STATE_DESCEND | `uint8` | 12 | Descend mode (no position control) |
|
||||
| <a id="#NAVIGATION_STATE_TERMINATION"></a> NAVIGATION_STATE_TERMINATION | `uint8` | 13 | Termination mode |
|
||||
| <a id="#NAVIGATION_STATE_OFFBOARD"></a> NAVIGATION_STATE_OFFBOARD | `uint8` | 14 | |
|
||||
| <a id="#NAVIGATION_STATE_STAB"></a> NAVIGATION_STATE_STAB | `uint8` | 15 | Stabilized mode |
|
||||
| <a id="#NAVIGATION_STATE_FREE1"></a> NAVIGATION_STATE_FREE1 | `uint8` | 16 | |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_TAKEOFF"></a> NAVIGATION_STATE_AUTO_TAKEOFF | `uint8` | 17 | Takeoff |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_LAND"></a> NAVIGATION_STATE_AUTO_LAND | `uint8` | 18 | Land |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_FOLLOW_TARGET"></a> NAVIGATION_STATE_AUTO_FOLLOW_TARGET | `uint8` | 19 | Auto Follow |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_PRECLAND"></a> NAVIGATION_STATE_AUTO_PRECLAND | `uint8` | 20 | Precision land with landing target |
|
||||
| <a id="#NAVIGATION_STATE_ORBIT"></a> NAVIGATION_STATE_ORBIT | `uint8` | 21 | Orbit in a circle |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_VTOL_TAKEOFF"></a> NAVIGATION_STATE_AUTO_VTOL_TAKEOFF | `uint8` | 22 | Takeoff, transition, establish loiter |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL1"></a> NAVIGATION_STATE_EXTERNAL1 | `uint8` | 23 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL2"></a> NAVIGATION_STATE_EXTERNAL2 | `uint8` | 24 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL3"></a> NAVIGATION_STATE_EXTERNAL3 | `uint8` | 25 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL4"></a> NAVIGATION_STATE_EXTERNAL4 | `uint8` | 26 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL5"></a> NAVIGATION_STATE_EXTERNAL5 | `uint8` | 27 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL6"></a> NAVIGATION_STATE_EXTERNAL6 | `uint8` | 28 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL7"></a> NAVIGATION_STATE_EXTERNAL7 | `uint8` | 29 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL8"></a> NAVIGATION_STATE_EXTERNAL8 | `uint8` | 30 | |
|
||||
| <a id="#NAVIGATION_STATE_MAX"></a> NAVIGATION_STATE_MAX | `uint8` | 31 | |
|
||||
| <a id="#FAILURE_NONE"></a> FAILURE_NONE | `uint16` | 0 | |
|
||||
| <a id="#FAILURE_ROLL"></a> FAILURE_ROLL | `uint16` | 1 | (1 << 0) |
|
||||
| <a id="#FAILURE_PITCH"></a> FAILURE_PITCH | `uint16` | 2 | (1 << 1) |
|
||||
| <a id="#FAILURE_ALT"></a> FAILURE_ALT | `uint16` | 4 | (1 << 2) |
|
||||
| <a id="#FAILURE_EXT"></a> FAILURE_EXT | `uint16` | 8 | (1 << 3) |
|
||||
| <a id="#FAILURE_ARM_ESC"></a> FAILURE_ARM_ESC | `uint16` | 16 | (1 << 4) |
|
||||
| <a id="#FAILURE_BATTERY"></a> FAILURE_BATTERY | `uint16` | 32 | (1 << 5) |
|
||||
| <a id="#FAILURE_IMBALANCED_PROP"></a> FAILURE_IMBALANCED_PROP | `uint16` | 64 | (1 << 6) |
|
||||
| <a id="#FAILURE_MOTOR"></a> FAILURE_MOTOR | `uint16` | 128 | (1 << 7) |
|
||||
| <a id="#HIL_STATE_OFF"></a> HIL_STATE_OFF | `uint8` | 0 | |
|
||||
| <a id="#HIL_STATE_ON"></a> HIL_STATE_ON | `uint8` | 1 | |
|
||||
| <a id="#VEHICLE_TYPE_UNSPECIFIED"></a> VEHICLE_TYPE_UNSPECIFIED | `uint8` | 0 | |
|
||||
| <a id="#VEHICLE_TYPE_ROTARY_WING"></a> VEHICLE_TYPE_ROTARY_WING | `uint8` | 1 | |
|
||||
| <a id="#VEHICLE_TYPE_FIXED_WING"></a> VEHICLE_TYPE_FIXED_WING | `uint8` | 2 | |
|
||||
| <a id="#VEHICLE_TYPE_ROVER"></a> VEHICLE_TYPE_ROVER | `uint8` | 3 | |
|
||||
| <a id="#FAILSAFE_DEFER_STATE_DISABLED"></a> FAILSAFE_DEFER_STATE_DISABLED | `uint8` | 0 | |
|
||||
| <a id="#FAILSAFE_DEFER_STATE_ENABLED"></a> FAILSAFE_DEFER_STATE_ENABLED | `uint8` | 1 | |
|
||||
| <a id="#FAILSAFE_DEFER_STATE_WOULD_FAILSAFE"></a> FAILSAFE_DEFER_STATE_WOULD_FAILSAFE | `uint8` | 2 | Failsafes deferred, but would trigger a failsafe |
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------- | ----------------------------------------------------- |
|
||||
| <a id="#MESSAGE_VERSION"></a> MESSAGE_VERSION | `uint32` | 3 | |
|
||||
| <a id="#ARMING_STATE_DISARMED"></a> ARMING_STATE_DISARMED | `uint8` | 1 | |
|
||||
| <a id="#ARMING_STATE_ARMED"></a> ARMING_STATE_ARMED | `uint8` | 2 | |
|
||||
| <a id="#ARM_DISARM_REASON_STICK_GESTURE"></a> ARM_DISARM_REASON_STICK_GESTURE | `uint8` | 1 | |
|
||||
| <a id="#ARM_DISARM_REASON_RC_SWITCH"></a> ARM_DISARM_REASON_RC_SWITCH | `uint8` | 2 | |
|
||||
| <a id="#ARM_DISARM_REASON_COMMAND_INTERNAL"></a> ARM_DISARM_REASON_COMMAND_INTERNAL | `uint8` | 3 | |
|
||||
| <a id="#ARM_DISARM_REASON_COMMAND_EXTERNAL"></a> ARM_DISARM_REASON_COMMAND_EXTERNAL | `uint8` | 4 | |
|
||||
| <a id="#ARM_DISARM_REASON_MISSION_START"></a> ARM_DISARM_REASON_MISSION_START | `uint8` | 5 | |
|
||||
| <a id="#ARM_DISARM_REASON_LANDING"></a> ARM_DISARM_REASON_LANDING | `uint8` | 6 | |
|
||||
| <a id="#ARM_DISARM_REASON_PREFLIGHT_INACTION"></a> ARM_DISARM_REASON_PREFLIGHT_INACTION | `uint8` | 7 | |
|
||||
| <a id="#ARM_DISARM_REASON_KILL_SWITCH"></a> ARM_DISARM_REASON_KILL_SWITCH | `uint8` | 8 | |
|
||||
| <a id="#ARM_DISARM_REASON_RC_BUTTON"></a> ARM_DISARM_REASON_RC_BUTTON | `uint8` | 13 | |
|
||||
| <a id="#ARM_DISARM_REASON_FAILSAFE"></a> ARM_DISARM_REASON_FAILSAFE | `uint8` | 14 | |
|
||||
| <a id="#NAVIGATION_STATE_MANUAL"></a> NAVIGATION_STATE_MANUAL | `uint8` | 0 | Manual mode |
|
||||
| <a id="#NAVIGATION_STATE_ALTCTL"></a> NAVIGATION_STATE_ALTCTL | `uint8` | 1 | Altitude control mode |
|
||||
| <a id="#NAVIGATION_STATE_POSCTL"></a> NAVIGATION_STATE_POSCTL | `uint8` | 2 | Position control mode |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_MISSION"></a> NAVIGATION_STATE_AUTO_MISSION | `uint8` | 3 | Auto mission mode |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_LOITER"></a> NAVIGATION_STATE_AUTO_LOITER | `uint8` | 4 | Auto loiter mode |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_RTL"></a> NAVIGATION_STATE_AUTO_RTL | `uint8` | 5 | Auto return to launch mode |
|
||||
| <a id="#NAVIGATION_STATE_POSITION_SLOW"></a> NAVIGATION_STATE_POSITION_SLOW | `uint8` | 6 | |
|
||||
| <a id="#NAVIGATION_STATE_FREE5"></a> NAVIGATION_STATE_FREE5 | `uint8` | 7 | |
|
||||
| <a id="#NAVIGATION_STATE_ALTITUDE_CRUISE"></a> NAVIGATION_STATE_ALTITUDE_CRUISE | `uint8` | 8 | Altitude with Cruise mode |
|
||||
| <a id="#NAVIGATION_STATE_FREE3"></a> NAVIGATION_STATE_FREE3 | `uint8` | 9 | |
|
||||
| <a id="#NAVIGATION_STATE_ACRO"></a> NAVIGATION_STATE_ACRO | `uint8` | 10 | Acro mode |
|
||||
| <a id="#NAVIGATION_STATE_FREE2"></a> NAVIGATION_STATE_FREE2 | `uint8` | 11 | |
|
||||
| <a id="#NAVIGATION_STATE_DESCEND"></a> NAVIGATION_STATE_DESCEND | `uint8` | 12 | Descend mode (no position control) |
|
||||
| <a id="#NAVIGATION_STATE_TERMINATION"></a> NAVIGATION_STATE_TERMINATION | `uint8` | 13 | Termination mode |
|
||||
| <a id="#NAVIGATION_STATE_OFFBOARD"></a> NAVIGATION_STATE_OFFBOARD | `uint8` | 14 | |
|
||||
| <a id="#NAVIGATION_STATE_STAB"></a> NAVIGATION_STATE_STAB | `uint8` | 15 | Stabilized mode |
|
||||
| <a id="#NAVIGATION_STATE_FREE1"></a> NAVIGATION_STATE_FREE1 | `uint8` | 16 | |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_TAKEOFF"></a> NAVIGATION_STATE_AUTO_TAKEOFF | `uint8` | 17 | Takeoff |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_LAND"></a> NAVIGATION_STATE_AUTO_LAND | `uint8` | 18 | Land |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_FOLLOW_TARGET"></a> NAVIGATION_STATE_AUTO_FOLLOW_TARGET | `uint8` | 19 | Auto Follow |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_PRECLAND"></a> NAVIGATION_STATE_AUTO_PRECLAND | `uint8` | 20 | Precision land with landing target |
|
||||
| <a id="#NAVIGATION_STATE_ORBIT"></a> NAVIGATION_STATE_ORBIT | `uint8` | 21 | Orbit in a circle |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_VTOL_TAKEOFF"></a> NAVIGATION_STATE_AUTO_VTOL_TAKEOFF | `uint8` | 22 | Takeoff, transition, establish loiter |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL1"></a> NAVIGATION_STATE_EXTERNAL1 | `uint8` | 23 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL2"></a> NAVIGATION_STATE_EXTERNAL2 | `uint8` | 24 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL3"></a> NAVIGATION_STATE_EXTERNAL3 | `uint8` | 25 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL4"></a> NAVIGATION_STATE_EXTERNAL4 | `uint8` | 26 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL5"></a> NAVIGATION_STATE_EXTERNAL5 | `uint8` | 27 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL6"></a> NAVIGATION_STATE_EXTERNAL6 | `uint8` | 28 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL7"></a> NAVIGATION_STATE_EXTERNAL7 | `uint8` | 29 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL8"></a> NAVIGATION_STATE_EXTERNAL8 | `uint8` | 30 | |
|
||||
| <a id="#NAVIGATION_STATE_MAX"></a> NAVIGATION_STATE_MAX | `uint8` | 31 | |
|
||||
| <a id="#HIL_STATE_OFF"></a> HIL_STATE_OFF | `uint8` | 0 | |
|
||||
| <a id="#HIL_STATE_ON"></a> HIL_STATE_ON | `uint8` | 1 | |
|
||||
| <a id="#VEHICLE_TYPE_UNSPECIFIED"></a> VEHICLE_TYPE_UNSPECIFIED | `uint8` | 0 | |
|
||||
| <a id="#VEHICLE_TYPE_ROTARY_WING"></a> VEHICLE_TYPE_ROTARY_WING | `uint8` | 1 | |
|
||||
| <a id="#VEHICLE_TYPE_FIXED_WING"></a> VEHICLE_TYPE_FIXED_WING | `uint8` | 2 | |
|
||||
| <a id="#VEHICLE_TYPE_ROVER"></a> VEHICLE_TYPE_ROVER | `uint8` | 3 | |
|
||||
| <a id="#FAILSAFE_DEFER_STATE_DISABLED"></a> FAILSAFE_DEFER_STATE_DISABLED | `uint8` | 0 | |
|
||||
| <a id="#FAILSAFE_DEFER_STATE_ENABLED"></a> FAILSAFE_DEFER_STATE_ENABLED | `uint8` | 1 | |
|
||||
| <a id="#FAILSAFE_DEFER_STATE_WOULD_FAILSAFE"></a> FAILSAFE_DEFER_STATE_WOULD_FAILSAFE | `uint8` | 2 | Failsafes deferred, but would trigger a failsafe |
|
||||
|
||||
## Source Message
|
||||
|
||||
@@ -132,7 +122,7 @@ Click here to see original file
|
||||
```c
|
||||
# Encodes the system state of the vehicle published by commander
|
||||
|
||||
uint32 MESSAGE_VERSION = 2
|
||||
uint32 MESSAGE_VERSION = 3
|
||||
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
|
||||
@@ -200,18 +190,6 @@ uint8 nav_state_display # User-visible nav state sent vi
|
||||
uint32 valid_nav_states_mask # Bitmask for all valid nav_state values
|
||||
uint32 can_set_nav_states_mask # Bitmask for all modes that a user can select
|
||||
|
||||
# Bitmask of detected failures
|
||||
uint16 failure_detector_status
|
||||
uint16 FAILURE_NONE = 0
|
||||
uint16 FAILURE_ROLL = 1 # (1 << 0)
|
||||
uint16 FAILURE_PITCH = 2 # (1 << 1)
|
||||
uint16 FAILURE_ALT = 4 # (1 << 2)
|
||||
uint16 FAILURE_EXT = 8 # (1 << 3)
|
||||
uint16 FAILURE_ARM_ESC = 16 # (1 << 4)
|
||||
uint16 FAILURE_BATTERY = 32 # (1 << 5)
|
||||
uint16 FAILURE_IMBALANCED_PROP = 64 # (1 << 6)
|
||||
uint16 FAILURE_MOTOR = 128 # (1 << 7)
|
||||
|
||||
uint8 hil_state
|
||||
uint8 HIL_STATE_OFF = 0
|
||||
uint8 HIL_STATE_ON = 1
|
||||
|
||||
@@ -0,0 +1,270 @@
|
||||
---
|
||||
pageClass: is-wide-page
|
||||
---
|
||||
|
||||
# VehicleStatusV2 (UORB message)
|
||||
|
||||
Encodes the system state of the vehicle published by commander.
|
||||
|
||||
**TOPICS:** vehicle_status_v2
|
||||
|
||||
## Fields
|
||||
|
||||
| Назва | Тип | Unit [Frame] | Range/Enum | Опис |
|
||||
| ---------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| timestamp | `uint64` | | | time since system start (microseconds) |
|
||||
| armed_time | `uint64` | | | Arming timestamp (microseconds) |
|
||||
| takeoff_time | `uint64` | | | Takeoff timestamp (microseconds) |
|
||||
| arming_state | `uint8` | | | |
|
||||
| latest_arming_reason | `uint8` | | | |
|
||||
| latest_disarming_reason | `uint8` | | | |
|
||||
| nav_state_timestamp | `uint64` | | | time when current nav_state activated |
|
||||
| nav_state_user_intention | `uint8` | | | Mode that the user selected (might be different from nav_state in a failsafe situation) |
|
||||
| nav_state | `uint8` | | | Currently active mode |
|
||||
| executor_in_charge | `uint8` | | | Current mode executor in charge (0=Autopilot) |
|
||||
| nav_state_display | `uint8` | | | User-visible nav state sent via MAVLink (executor state if active, otherwise nav_state) |
|
||||
| valid_nav_states_mask | `uint32` | | | Bitmask for all valid nav_state values |
|
||||
| can_set_nav_states_mask | `uint32` | | | Bitmask for all modes that a user can select |
|
||||
| failure_detector_status | `uint16` | | | |
|
||||
| hil_state | `uint8` | | | |
|
||||
| vehicle_type | `uint8` | | | |
|
||||
| failsafe | `bool` | | | true if system is in failsafe state (e.g.:RTL, Hover, Terminate, ...) |
|
||||
| failsafe_and_user_took_over | `bool` | | | true if system is in failsafe state but the user took over control |
|
||||
| failsafe_defer_state | `uint8` | | | one of FAILSAFE_DEFER_STATE_\* |
|
||||
| gcs_connection_lost | `bool` | | | datalink to GCS lost |
|
||||
| gcs_connection_lost_counter | `uint8` | | | counts unique GCS connection lost events |
|
||||
| high_latency_data_link_lost | `bool` | | | Set to true if the high latency data link (eg. RockBlock Iridium 9603 telemetry module) is lost |
|
||||
| is_vtol | `bool` | | | True if the system is VTOL capable |
|
||||
| is_vtol_tailsitter | `bool` | | | True if the system performs a 90° pitch down rotation during transition from MC to FW |
|
||||
| in_transition_mode | `bool` | | | True if VTOL is doing a transition |
|
||||
| in_transition_to_fw | `bool` | | | True if VTOL is doing a transition from MC to FW |
|
||||
| system_type | `uint8` | | | system type, contains mavlink MAV_TYPE |
|
||||
| system_id | `uint8` | | | system id, contains MAVLink's system ID field |
|
||||
| component_id | `uint8` | | | subsystem / component id, contains MAVLink's component ID field |
|
||||
| safety_button_available | `bool` | | | Set to true if a safety button is connected |
|
||||
| safety_off | `bool` | | | Set to true if safety is off |
|
||||
| power_input_valid | `bool` | | | set if input power is valid |
|
||||
| usb_connected | `bool` | | | set to true (never cleared) once telemetry received from usb link |
|
||||
| open_drone_id_system_present | `bool` | | | |
|
||||
| open_drone_id_system_healthy | `bool` | | | |
|
||||
| parachute_system_present | `bool` | | | |
|
||||
| parachute_system_healthy | `bool` | | | |
|
||||
| traffic_avoidance_system_present | `bool` | | | |
|
||||
| rc_calibration_in_progress | `bool` | | | |
|
||||
| calibration_enabled | `bool` | | | |
|
||||
| pre_flight_checks_pass | `bool` | | | true if all checks necessary to arm pass |
|
||||
|
||||
## Constants
|
||||
|
||||
| Назва | Тип | Значення | Опис |
|
||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | -------- | ----------------------------------------------------------------------------- |
|
||||
| <a id="#MESSAGE_VERSION"></a> MESSAGE_VERSION | `uint32` | 2 | |
|
||||
| <a id="#ARMING_STATE_DISARMED"></a> ARMING_STATE_DISARMED | `uint8` | 1 | |
|
||||
| <a id="#ARMING_STATE_ARMED"></a> ARMING_STATE_ARMED | `uint8` | 2 | |
|
||||
| <a id="#ARM_DISARM_REASON_STICK_GESTURE"></a> ARM_DISARM_REASON_STICK_GESTURE | `uint8` | 1 | |
|
||||
| <a id="#ARM_DISARM_REASON_RC_SWITCH"></a> ARM_DISARM_REASON_RC_SWITCH | `uint8` | 2 | |
|
||||
| <a id="#ARM_DISARM_REASON_COMMAND_INTERNAL"></a> ARM_DISARM_REASON_COMMAND_INTERNAL | `uint8` | 3 | |
|
||||
| <a id="#ARM_DISARM_REASON_COMMAND_EXTERNAL"></a> ARM_DISARM_REASON_COMMAND_EXTERNAL | `uint8` | 4 | |
|
||||
| <a id="#ARM_DISARM_REASON_MISSION_START"></a> ARM_DISARM_REASON_MISSION_START | `uint8` | 5 | |
|
||||
| <a id="#ARM_DISARM_REASON_LANDING"></a> ARM_DISARM_REASON_LANDING | `uint8` | 6 | |
|
||||
| <a id="#ARM_DISARM_REASON_PREFLIGHT_INACTION"></a> ARM_DISARM_REASON_PREFLIGHT_INACTION | `uint8` | 7 | |
|
||||
| <a id="#ARM_DISARM_REASON_KILL_SWITCH"></a> ARM_DISARM_REASON_KILL_SWITCH | `uint8` | 8 | |
|
||||
| <a id="#ARM_DISARM_REASON_RC_BUTTON"></a> ARM_DISARM_REASON_RC_BUTTON | `uint8` | 13 | |
|
||||
| <a id="#ARM_DISARM_REASON_FAILSAFE"></a> ARM_DISARM_REASON_FAILSAFE | `uint8` | 14 | |
|
||||
| <a id="#NAVIGATION_STATE_MANUAL"></a> NAVIGATION_STATE_MANUAL | `uint8` | 0 | Manual mode |
|
||||
| <a id="#NAVIGATION_STATE_ALTCTL"></a> NAVIGATION_STATE_ALTCTL | `uint8` | 1 | Altitude control mode |
|
||||
| <a id="#NAVIGATION_STATE_POSCTL"></a> NAVIGATION_STATE_POSCTL | `uint8` | 2 | Position control mode |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_MISSION"></a> NAVIGATION_STATE_AUTO_MISSION | `uint8` | 3 | Auto mission mode |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_LOITER"></a> NAVIGATION_STATE_AUTO_LOITER | `uint8` | 4 | Auto loiter mode |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_RTL"></a> NAVIGATION_STATE_AUTO_RTL | `uint8` | 5 | Auto return to launch mode |
|
||||
| <a id="#NAVIGATION_STATE_POSITION_SLOW"></a> NAVIGATION_STATE_POSITION_SLOW | `uint8` | 6 | |
|
||||
| <a id="#NAVIGATION_STATE_FREE5"></a> NAVIGATION_STATE_FREE5 | `uint8` | 7 | |
|
||||
| <a id="#NAVIGATION_STATE_ALTITUDE_CRUISE"></a> NAVIGATION_STATE_ALTITUDE_CRUISE | `uint8` | 8 | Altitude with Cruise mode |
|
||||
| <a id="#NAVIGATION_STATE_FREE3"></a> NAVIGATION_STATE_FREE3 | `uint8` | 9 | |
|
||||
| <a id="#NAVIGATION_STATE_ACRO"></a> NAVIGATION_STATE_ACRO | `uint8` | 10 | Acro mode |
|
||||
| <a id="#NAVIGATION_STATE_FREE2"></a> NAVIGATION_STATE_FREE2 | `uint8` | 11 | |
|
||||
| <a id="#NAVIGATION_STATE_DESCEND"></a> NAVIGATION_STATE_DESCEND | `uint8` | 12 | Descend mode (no position control) |
|
||||
| <a id="#NAVIGATION_STATE_TERMINATION"></a> NAVIGATION_STATE_TERMINATION | `uint8` | 13 | Termination mode |
|
||||
| <a id="#NAVIGATION_STATE_OFFBOARD"></a> NAVIGATION_STATE_OFFBOARD | `uint8` | 14 | |
|
||||
| <a id="#NAVIGATION_STATE_STAB"></a> NAVIGATION_STATE_STAB | `uint8` | 15 | Stabilized mode |
|
||||
| <a id="#NAVIGATION_STATE_FREE1"></a> NAVIGATION_STATE_FREE1 | `uint8` | 16 | |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_TAKEOFF"></a> NAVIGATION_STATE_AUTO_TAKEOFF | `uint8` | 17 | Takeoff |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_LAND"></a> NAVIGATION_STATE_AUTO_LAND | `uint8` | 18 | Land |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_FOLLOW_TARGET"></a> NAVIGATION_STATE_AUTO_FOLLOW_TARGET | `uint8` | 19 | Auto Follow |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_PRECLAND"></a> NAVIGATION_STATE_AUTO_PRECLAND | `uint8` | 20 | Precision land with landing target |
|
||||
| <a id="#NAVIGATION_STATE_ORBIT"></a> NAVIGATION_STATE_ORBIT | `uint8` | 21 | Orbit in a circle |
|
||||
| <a id="#NAVIGATION_STATE_AUTO_VTOL_TAKEOFF"></a> NAVIGATION_STATE_AUTO_VTOL_TAKEOFF | `uint8` | 22 | Takeoff, transition, establish loiter |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL1"></a> NAVIGATION_STATE_EXTERNAL1 | `uint8` | 23 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL2"></a> NAVIGATION_STATE_EXTERNAL2 | `uint8` | 24 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL3"></a> NAVIGATION_STATE_EXTERNAL3 | `uint8` | 25 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL4"></a> NAVIGATION_STATE_EXTERNAL4 | `uint8` | 26 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL5"></a> NAVIGATION_STATE_EXTERNAL5 | `uint8` | 27 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL6"></a> NAVIGATION_STATE_EXTERNAL6 | `uint8` | 28 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL7"></a> NAVIGATION_STATE_EXTERNAL7 | `uint8` | 29 | |
|
||||
| <a id="#NAVIGATION_STATE_EXTERNAL8"></a> NAVIGATION_STATE_EXTERNAL8 | `uint8` | 30 | |
|
||||
| <a id="#NAVIGATION_STATE_MAX"></a> NAVIGATION_STATE_MAX | `uint8` | 31 | |
|
||||
| <a id="#FAILURE_NONE"></a> FAILURE_NONE | `uint16` | 0 | |
|
||||
| <a id="#FAILURE_ROLL"></a> FAILURE_ROLL | `uint16` | 1 | (1 << 0) |
|
||||
| <a id="#FAILURE_PITCH"></a> FAILURE_PITCH | `uint16` | 2 | (1 << 1) |
|
||||
| <a id="#FAILURE_ALT"></a> FAILURE_ALT | `uint16` | 4 | (1 << 2) |
|
||||
| <a id="#FAILURE_EXT"></a> FAILURE_EXT | `uint16` | 8 | (1 << 3) |
|
||||
| <a id="#FAILURE_ARM_ESC"></a> FAILURE_ARM_ESC | `uint16` | 16 | (1 << 4) |
|
||||
| <a id="#FAILURE_BATTERY"></a> FAILURE_BATTERY | `uint16` | 32 | (1 << 5) |
|
||||
| <a id="#FAILURE_IMBALANCED_PROP"></a> FAILURE_IMBALANCED_PROP | `uint16` | 64 | (1 << 6) |
|
||||
| <a id="#FAILURE_MOTOR"></a> FAILURE_MOTOR | `uint16` | 128 | (1 << 7) |
|
||||
| <a id="#HIL_STATE_OFF"></a> HIL_STATE_OFF | `uint8` | 0 | |
|
||||
| <a id="#HIL_STATE_ON"></a> HIL_STATE_ON | `uint8` | 1 | |
|
||||
| <a id="#VEHICLE_TYPE_UNSPECIFIED"></a> VEHICLE_TYPE_UNSPECIFIED | `uint8` | 0 | |
|
||||
| <a id="#VEHICLE_TYPE_ROTARY_WING"></a> VEHICLE_TYPE_ROTARY_WING | `uint8` | 1 | |
|
||||
| <a id="#VEHICLE_TYPE_FIXED_WING"></a> VEHICLE_TYPE_FIXED_WING | `uint8` | 2 | |
|
||||
| <a id="#VEHICLE_TYPE_ROVER"></a> VEHICLE_TYPE_ROVER | `uint8` | 3 | |
|
||||
| <a id="#FAILSAFE_DEFER_STATE_DISABLED"></a> FAILSAFE_DEFER_STATE_DISABLED | `uint8` | 0 | |
|
||||
| <a id="#FAILSAFE_DEFER_STATE_ENABLED"></a> FAILSAFE_DEFER_STATE_ENABLED | `uint8` | 1 | |
|
||||
| <a id="#FAILSAFE_DEFER_STATE_WOULD_FAILSAFE"></a> FAILSAFE_DEFER_STATE_WOULD_FAILSAFE | `uint8` | 2 | Failsafes deferred, but would trigger a failsafe |
|
||||
|
||||
## Source Message
|
||||
|
||||
[Source file (GitHub)](https://github.com/PX4/PX4-Autopilot/blob/main/msg/px4_msgs_old/msg/VehicleStatusV2.msg)
|
||||
|
||||
:::details
|
||||
Click here to see original file
|
||||
|
||||
```c
|
||||
# Encodes the system state of the vehicle published by commander
|
||||
|
||||
uint32 MESSAGE_VERSION = 2
|
||||
|
||||
uint64 timestamp # time since system start (microseconds)
|
||||
|
||||
uint64 armed_time # Arming timestamp (microseconds)
|
||||
uint64 takeoff_time # Takeoff timestamp (microseconds)
|
||||
|
||||
uint8 arming_state
|
||||
uint8 ARMING_STATE_DISARMED = 1
|
||||
uint8 ARMING_STATE_ARMED = 2
|
||||
|
||||
uint8 latest_arming_reason
|
||||
uint8 latest_disarming_reason
|
||||
uint8 ARM_DISARM_REASON_STICK_GESTURE = 1
|
||||
uint8 ARM_DISARM_REASON_RC_SWITCH = 2
|
||||
uint8 ARM_DISARM_REASON_COMMAND_INTERNAL = 3
|
||||
uint8 ARM_DISARM_REASON_COMMAND_EXTERNAL = 4
|
||||
uint8 ARM_DISARM_REASON_MISSION_START = 5
|
||||
uint8 ARM_DISARM_REASON_LANDING = 6
|
||||
uint8 ARM_DISARM_REASON_PREFLIGHT_INACTION = 7
|
||||
uint8 ARM_DISARM_REASON_KILL_SWITCH = 8
|
||||
uint8 ARM_DISARM_REASON_RC_BUTTON = 13
|
||||
uint8 ARM_DISARM_REASON_FAILSAFE = 14
|
||||
|
||||
uint64 nav_state_timestamp # time when current nav_state activated
|
||||
|
||||
uint8 nav_state_user_intention # Mode that the user selected (might be different from nav_state in a failsafe situation)
|
||||
|
||||
uint8 nav_state # Currently active mode
|
||||
uint8 NAVIGATION_STATE_MANUAL = 0 # Manual mode
|
||||
uint8 NAVIGATION_STATE_ALTCTL = 1 # Altitude control mode
|
||||
uint8 NAVIGATION_STATE_POSCTL = 2 # Position control mode
|
||||
uint8 NAVIGATION_STATE_AUTO_MISSION = 3 # Auto mission mode
|
||||
uint8 NAVIGATION_STATE_AUTO_LOITER = 4 # Auto loiter mode
|
||||
uint8 NAVIGATION_STATE_AUTO_RTL = 5 # Auto return to launch mode
|
||||
uint8 NAVIGATION_STATE_POSITION_SLOW = 6
|
||||
uint8 NAVIGATION_STATE_FREE5 = 7
|
||||
uint8 NAVIGATION_STATE_ALTITUDE_CRUISE = 8 # Altitude with Cruise mode
|
||||
uint8 NAVIGATION_STATE_FREE3 = 9
|
||||
uint8 NAVIGATION_STATE_ACRO = 10 # Acro mode
|
||||
uint8 NAVIGATION_STATE_FREE2 = 11
|
||||
uint8 NAVIGATION_STATE_DESCEND = 12 # Descend mode (no position control)
|
||||
uint8 NAVIGATION_STATE_TERMINATION = 13 # Termination mode
|
||||
uint8 NAVIGATION_STATE_OFFBOARD = 14
|
||||
uint8 NAVIGATION_STATE_STAB = 15 # Stabilized mode
|
||||
uint8 NAVIGATION_STATE_FREE1 = 16
|
||||
uint8 NAVIGATION_STATE_AUTO_TAKEOFF = 17 # Takeoff
|
||||
uint8 NAVIGATION_STATE_AUTO_LAND = 18 # Land
|
||||
uint8 NAVIGATION_STATE_AUTO_FOLLOW_TARGET = 19 # Auto Follow
|
||||
uint8 NAVIGATION_STATE_AUTO_PRECLAND = 20 # Precision land with landing target
|
||||
uint8 NAVIGATION_STATE_ORBIT = 21 # Orbit in a circle
|
||||
uint8 NAVIGATION_STATE_AUTO_VTOL_TAKEOFF = 22 # Takeoff, transition, establish loiter
|
||||
uint8 NAVIGATION_STATE_EXTERNAL1 = 23
|
||||
uint8 NAVIGATION_STATE_EXTERNAL2 = 24
|
||||
uint8 NAVIGATION_STATE_EXTERNAL3 = 25
|
||||
uint8 NAVIGATION_STATE_EXTERNAL4 = 26
|
||||
uint8 NAVIGATION_STATE_EXTERNAL5 = 27
|
||||
uint8 NAVIGATION_STATE_EXTERNAL6 = 28
|
||||
uint8 NAVIGATION_STATE_EXTERNAL7 = 29
|
||||
uint8 NAVIGATION_STATE_EXTERNAL8 = 30
|
||||
uint8 NAVIGATION_STATE_MAX = 31
|
||||
|
||||
uint8 executor_in_charge # Current mode executor in charge (0=Autopilot)
|
||||
uint8 nav_state_display # User-visible nav state sent via MAVLink (executor state if active, otherwise nav_state)
|
||||
|
||||
uint32 valid_nav_states_mask # Bitmask for all valid nav_state values
|
||||
uint32 can_set_nav_states_mask # Bitmask for all modes that a user can select
|
||||
|
||||
# Bitmask of detected failures
|
||||
uint16 failure_detector_status
|
||||
uint16 FAILURE_NONE = 0
|
||||
uint16 FAILURE_ROLL = 1 # (1 << 0)
|
||||
uint16 FAILURE_PITCH = 2 # (1 << 1)
|
||||
uint16 FAILURE_ALT = 4 # (1 << 2)
|
||||
uint16 FAILURE_EXT = 8 # (1 << 3)
|
||||
uint16 FAILURE_ARM_ESC = 16 # (1 << 4)
|
||||
uint16 FAILURE_BATTERY = 32 # (1 << 5)
|
||||
uint16 FAILURE_IMBALANCED_PROP = 64 # (1 << 6)
|
||||
uint16 FAILURE_MOTOR = 128 # (1 << 7)
|
||||
|
||||
uint8 hil_state
|
||||
uint8 HIL_STATE_OFF = 0
|
||||
uint8 HIL_STATE_ON = 1
|
||||
|
||||
# Current vehicle locomotion method. A vehicle can have different methods (e.g. VTOL transitions from RW to FW method)
|
||||
uint8 vehicle_type
|
||||
uint8 VEHICLE_TYPE_UNSPECIFIED = 0
|
||||
uint8 VEHICLE_TYPE_ROTARY_WING = 1
|
||||
uint8 VEHICLE_TYPE_FIXED_WING = 2
|
||||
uint8 VEHICLE_TYPE_ROVER = 3
|
||||
|
||||
uint8 FAILSAFE_DEFER_STATE_DISABLED = 0
|
||||
uint8 FAILSAFE_DEFER_STATE_ENABLED = 1
|
||||
uint8 FAILSAFE_DEFER_STATE_WOULD_FAILSAFE = 2 # Failsafes deferred, but would trigger a failsafe
|
||||
|
||||
bool failsafe # true if system is in failsafe state (e.g.:RTL, Hover, Terminate, ...)
|
||||
bool failsafe_and_user_took_over # true if system is in failsafe state but the user took over control
|
||||
uint8 failsafe_defer_state # one of FAILSAFE_DEFER_STATE_*
|
||||
|
||||
# Link loss
|
||||
bool gcs_connection_lost # datalink to GCS lost
|
||||
uint8 gcs_connection_lost_counter # counts unique GCS connection lost events
|
||||
bool high_latency_data_link_lost # Set to true if the high latency data link (eg. RockBlock Iridium 9603 telemetry module) is lost
|
||||
|
||||
# VTOL flags
|
||||
bool is_vtol # True if the system is VTOL capable
|
||||
bool is_vtol_tailsitter # True if the system performs a 90° pitch down rotation during transition from MC to FW
|
||||
bool in_transition_mode # True if VTOL is doing a transition
|
||||
bool in_transition_to_fw # True if VTOL is doing a transition from MC to FW
|
||||
|
||||
# MAVLink identification
|
||||
uint8 system_type # system type, contains mavlink MAV_TYPE
|
||||
uint8 system_id # system id, contains MAVLink's system ID field
|
||||
uint8 component_id # subsystem / component id, contains MAVLink's component ID field
|
||||
|
||||
bool safety_button_available # Set to true if a safety button is connected
|
||||
bool safety_off # Set to true if safety is off
|
||||
|
||||
bool power_input_valid # set if input power is valid
|
||||
bool usb_connected # set to true (never cleared) once telemetry received from usb link
|
||||
|
||||
bool open_drone_id_system_present
|
||||
bool open_drone_id_system_healthy
|
||||
|
||||
bool parachute_system_present
|
||||
bool parachute_system_healthy
|
||||
|
||||
bool traffic_avoidance_system_present
|
||||
|
||||
bool rc_calibration_in_progress
|
||||
bool calibration_enabled
|
||||
|
||||
bool pre_flight_checks_pass # true if all checks necessary to arm pass
|
||||
```
|
||||
|
||||
:::
|
||||
@@ -275,3 +275,4 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
|
||||
- [VehicleLocalPositionV0](VehicleLocalPositionV0.md) — Fused local position in NED. The coordinate system origin is the vehicle position at the time when the EKF2-module was started.
|
||||
- [VehicleStatusV0](VehicleStatusV0.md) — Encodes the system state of the vehicle published by commander.
|
||||
- [VehicleStatusV1](VehicleStatusV1.md) — Encodes the system state of the vehicle published by commander.
|
||||
- [VehicleStatusV2](VehicleStatusV2.md) — Encodes the system state of the vehicle published by commander.
|
||||
|
||||
@@ -13,7 +13,7 @@ DShot is an alternative ESC protocol that has several advantages over [PWM](../p
|
||||
|
||||
## Supported ESC
|
||||
|
||||
[ESCs & Motors > Supported ESCs](../peripherals/esc_motors#supported-esc) has a list of supported ESC (check "Protocols" column for DShot ESC).
|
||||
[ESCs & Motors > Supported ESCs](../peripherals/esc_motors.md#supported-esc) has a list of supported ESC (check "Protocols" column for DShot ESC).
|
||||
|
||||
## Wiring/Connections {#wiring}
|
||||
|
||||
|
||||
@@ -22,37 +22,31 @@ jMAVSim can also be used for HITL Simulation ([as shown here](../simulation/hitl
|
||||
|
||||
## Встановлення
|
||||
|
||||
jMAVSim setup is included in our [standard build instructions](../dev_setup/dev_env.md) for Ubuntu Linux and Windows.
|
||||
Follow the instructions below to install jMAVSim on macOS.
|
||||
jMAVSim requires JDK 17 or later.
|
||||
On Ubuntu and Windows, the [standard development environment setup](../dev_setup/dev_env.md) scripts install all required dependencies including Java.
|
||||
On macOS, you need to install Java manually as shown below.
|
||||
|
||||
### macOS
|
||||
|
||||
To setup the environment for [jMAVSim](../sim_jmavsim/index.md) simulation:
|
||||
jMAVSim requires OpenJDK 17 or later.
|
||||
Install it via Homebrew:
|
||||
|
||||
1. Install a recent version of Java (e.g. Java 15).
|
||||
You can download [Java 15 (or later) from Oracle](https://www.oracle.com/java/technologies/downloads/?er=221886) or use [Eclipse Temurin](https://adoptium.net):
|
||||
```sh
|
||||
brew install openjdk@17
|
||||
```
|
||||
|
||||
```sh
|
||||
brew install --cask temurin
|
||||
```
|
||||
Homebrew installs OpenJDK but does not link it into your `PATH`, so you need to set `JAVA_HOME` for jMAVSim to find it.
|
||||
Add this to your shell profile (e.g. `~/.zshrc`):
|
||||
|
||||
2. Install jMAVSim:
|
||||
|
||||
```sh
|
||||
brew install px4-sim-jmavsim
|
||||
```
|
||||
|
||||
:::warning
|
||||
PX4 v1.11 and beyond require at least JDK 15 for jMAVSim simulation.
|
||||
|
||||
For earlier versions, macOS users might see the error `Exception in thread "main" java.lang.UnsupportedClassVersionError:`.
|
||||
You can find the fix in the [jMAVSim with SITL > Troubleshooting](../sim_jmavsim/index.md#troubleshooting)).
|
||||
|
||||
:::
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 17)
|
||||
```
|
||||
|
||||
## Середовище симуляції
|
||||
|
||||
Симуляція програмного забезпечення в петлі виконує повну систему на комп'ютері та моделює автопілот. Він підключається через локальну мережу до симулятора. Вигляд налаштування виглядає наступним чином:
|
||||
Симуляція програмного забезпечення в петлі виконує повну систему на комп'ютері та моделює автопілот.
|
||||
Він підключається через локальну мережу до симулятора.
|
||||
Вигляд налаштування виглядає наступним чином:
|
||||
|
||||
[](https://mermaid-js.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggTFI7XG4gIFNpbXVsYXRvci0tPk1BVkxpbms7XG4gIE1BVkxpbmstLT5TSVRMOyIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2V9)
|
||||
|
||||
@@ -95,7 +89,8 @@ It will also bring up a window showing a 3D view of the [jMAVSim](https://github
|
||||
|
||||
## Підйом у небо
|
||||
|
||||
Система почне друкувати інформацію про статус. You will be able to start flying once you have a position lock (shortly after the console displays the message: _EKF commencing GPS fusion_).
|
||||
Система почне друкувати інформацію про статус.
|
||||
You will be able to start flying once you have a position lock (shortly after the console displays the message: _EKF commencing GPS fusion_).
|
||||
|
||||
Щоб злітіти, введіть наступне у консоль:
|
||||
|
||||
@@ -220,11 +215,13 @@ To disable lockstep in:
|
||||
|
||||
## Розширення та персоналізація
|
||||
|
||||
To extend or customize the simulation interface, edit the files in the **Tools/jMAVSim** folder. The code can be accessed through the[jMAVSim repository](https://github.com/px4/jMAVSim) on Github.
|
||||
To extend or customize the simulation interface, edit the files in the **Tools/jMAVSim** folder.
|
||||
The code can be accessed through the[jMAVSim repository](https://github.com/px4/jMAVSim) on Github.
|
||||
|
||||
:::info
|
||||
The build system enforces the correct submodule to be checked out for all dependencies, including the simulator.
|
||||
Це не перезапише зміни в файлах у каталозі, проте, коли ці зміни будуть зафіксовані, підмодуль повинен бути зареєстрований у репозиторії Firmware з новим хешем коміту. To do so, `git add Tools/jMAVSim` and commit the change.
|
||||
Це не перезапише зміни в файлах у каталозі, проте, коли ці зміни будуть зафіксовані, підмодуль повинен бути зареєстрований у репозиторії Firmware з новим хешем коміту.
|
||||
To do so, `git add Tools/jMAVSim` and commit the change.
|
||||
Це оновить хеш GIT симулятора.
|
||||
:::
|
||||
|
||||
@@ -237,6 +234,75 @@ The simulation can be [interfaced to ROS](../simulation/ros_interface.md) the sa
|
||||
- The startup scripts are discussed in [System Startup](../concept/system_startup.md).
|
||||
- The simulated root file system ("`/`" directory) is created inside the build directory here: `build/px4_sitl_default/rootfs`.
|
||||
|
||||
## Display-Only Mode
|
||||
|
||||
jMAVSim can run as a display-only renderer for other simulators (like [SIH](../sim_sih/index.md)), with its internal physics disabled.
|
||||
In this mode, jMAVSim receives vehicle position via MAVLink and only renders the 3D view.
|
||||
|
||||
To use jMAVSim as a display for SIH running in SITL:
|
||||
|
||||
```sh
|
||||
# Start SIH first
|
||||
make px4_sitl_sih sihsim_quadx
|
||||
|
||||
# In another terminal, start jMAVSim in display-only mode
|
||||
./Tools/simulation/jmavsim/jmavsim_run.sh -p 19410 -u -q -o # 19410 is the default SIH display port
|
||||
```
|
||||
|
||||
For SIH running on flight controller hardware:
|
||||
|
||||
```sh
|
||||
./Tools/simulation/jmavsim/jmavsim_run.sh -q -d /dev/ttyACM0 -b 2000000 -o
|
||||
```
|
||||
|
||||
Use `-a` for airplane display or `-t` for tailsitter display.
|
||||
|
||||
## Command-Line Reference
|
||||
|
||||
The `jmavsim_run.sh` launch script accepts the following flags:
|
||||
|
||||
| Flag | Опис |
|
||||
| ------------- | -------------------------------------------------------------------------------------------- |
|
||||
| `-b <rate>` | Serial baud rate (default: 921600) |
|
||||
| `-d <device>` | Serial device path (e.g., `/dev/ttyACM0`) |
|
||||
| `-u` | Use UDP connection instead of serial |
|
||||
| `-i <id>` | Simulated MAVLink system ID |
|
||||
| `-p <port>` | UDP port (default: 14560) |
|
||||
| `-q` | No interactive console |
|
||||
| `-s <port>` | TCP serial port |
|
||||
| `-r <rate>` | Render rate in Hz |
|
||||
| `-l` | Enable lockstep |
|
||||
| `-o` | Display-only mode (disable physics, render only) |
|
||||
| `-a` | Use airplane model |
|
||||
| `-t` | Use tailsitter model |
|
||||
| `HEADLESS=1` | Environment variable: run without GUI window |
|
||||
|
||||
## How jMAVSim Works
|
||||
|
||||
jMAVSim is a Java-based lightweight simulator that communicates with PX4 via MAVLink HIL (Hardware-In-the-Loop) messages.
|
||||
|
||||
In normal mode:
|
||||
|
||||
1. PX4 sends actuator commands via [HIL_ACTUATOR_CONTROLS](https://mavlink.io/en/messages/common.html#HIL_ACTUATOR_CONTROLS).
|
||||
2. jMAVSim runs its physics engine to compute the vehicle state.
|
||||
3. jMAVSim sends sensor data back via [HIL_SENSOR](https://mavlink.io/en/messages/common.html#HIL_SENSOR) and [HIL_GPS](https://mavlink.io/en/messages/common.html#HIL_GPS).
|
||||
|
||||
In **display-only mode** (`-o` flag), jMAVSim disables its physics engine and only reads [HIL_STATE_QUATERNION](https://mavlink.io/en/messages/common.html#HIL_STATE_QUATERNION) messages to render the vehicle position.
|
||||
This allows it to visualize vehicles from other simulators like SIH.
|
||||
|
||||
jMAVSim supports [lockstep synchronization](#lockstep) with PX4 (enabled with `-l` flag), ensuring deterministic simulation results.
|
||||
|
||||
## Keyboard Shortcuts
|
||||
|
||||
Camera modes in the jMAVSim 3D view:
|
||||
|
||||
| Key | Camera Mode |
|
||||
| -------------------------------- | ------------------------------------------------------- |
|
||||
| **F** | First person (attached to vehicle) |
|
||||
| **S** | Stationary (fixed position) |
|
||||
| **G** | Gimbal (follows vehicle orientation) |
|
||||
| **(default)** | Third person follow |
|
||||
|
||||
## Усунення проблем
|
||||
|
||||
### java.long.NoClassDefFoundError
|
||||
@@ -327,8 +393,8 @@ Exception in thread "main" java.lang.UnsupportedClassVersionError: me/drton/jmav
|
||||
Ця помилка говорить вам, вам потрібна більш свіжа версія Java у вашому середовищі.
|
||||
Версія файлу класу 58 відповідає jdk14, версія 59 - jdk15, версія 60 - jdk 16 тощо.
|
||||
|
||||
Щоб виправити це під macOS, ми рекомендуємо встановити OpenJDK через homebrew
|
||||
To fix it under macOS, install a newer OpenJDK via Homebrew:
|
||||
|
||||
```sh
|
||||
brew install --cask adoptopenjdk16
|
||||
brew install openjdk@17
|
||||
```
|
||||
|
||||
@@ -0,0 +1,171 @@
|
||||
# SIH on Flight Controller Hardware
|
||||
|
||||
SIH can run directly on flight controller hardware with `SYS_HITL=2`.
|
||||
This replaces real sensors with simulated data while running on the actual autopilot, useful for testing without propellers.
|
||||
|
||||
For a comparison of SIH and HITL on hardware, see [Hardware Simulation](../simulation/hardware.md).
|
||||
|
||||
## Firmware Builds with SIH
|
||||
|
||||
The SIH module is included in many, but not all, default firmware builds.
|
||||
This list can change between PX4 releases. Always verify using the method in [Check if SIH is in Firmware](#check-if-sih-is-in-firmware).
|
||||
|
||||
The table below lists build targets that include SIH at the time of writing:
|
||||
|
||||
| Build Target | Материнська плата |
|
||||
| ------------------------------------ | ------------------------------------------- |
|
||||
| `px4_fmu-v3_default` | Pixhawk 2 (Cube Black) |
|
||||
| `px4_fmu-v4_default` | Pixhawk 3 Pro |
|
||||
| `px4_fmu-v4pro_default` | Pixracer |
|
||||
| `px4_fmu-v5_default` | Pixhawk 4 |
|
||||
| `px4_fmu-v5x_default` | Pixhawk 5X |
|
||||
| `px4_fmu-v6c_default` | Pixhawk 6C |
|
||||
| `px4_fmu-v6c_raptor` | Pixhawk 6C (Raptor) |
|
||||
| `px4_fmu-v6x_multicopter` | Pixhawk 6X (multicopter) |
|
||||
| `auterion_fmu-v6s_default` | Auterion FMU-v6S |
|
||||
| `auterion_fmu-v6x_default` | Auterion FMU-v6X |
|
||||
| `holybro_durandal-v1_default` | Holybro Durandal |
|
||||
| `holybro_kakuteh7_default` | Holybro Kakute H7 |
|
||||
| `holybro_kakuteh7v2_default` | Holybro Kakute H7 V2 |
|
||||
| `holybro_pix32v5_default` | Holybro Pix32 V5 |
|
||||
| `cuav_nora_default` | CUAV Nora |
|
||||
| `cuav_x7pro_default` | CUAV X7 Pro |
|
||||
| `cuav_x25-evo_default` | CUAV X25 EVO |
|
||||
| `cuav_x25-super_default` | CUAV X25 Super |
|
||||
| `cubepilot_cubeyellow_default` | CubePilot Cube Yellow |
|
||||
| `mro_pixracerpro_default` | MRO PixRacer Pro |
|
||||
| `mro_x21_default` | MRO X2.1 |
|
||||
| `mro_ctrl-zero-h7_default` | MRO Ctrl Zero H7 |
|
||||
| `mro_ctrl-zero-h7-oem_default` | MRO Ctrl Zero H7 OEM |
|
||||
| `mro_ctrl-zero-f7_default` | MRO Ctrl Zero F7 |
|
||||
| `mro_ctrl-zero-f7-oem_default` | MRO Ctrl Zero F7 OEM |
|
||||
| `mro_ctrl-zero-classic_default` | MRO Ctrl Zero Classic |
|
||||
| `3dr_ctrl-zero-h7-oem-revg_default` | 3DR Ctrl Zero H7 OEM RevG |
|
||||
| `modalai_fc-v1_default` | ModalAI FC V1 |
|
||||
| `nxp_fmuk66-v3_default` | NXP FMUK66-V3 |
|
||||
| `nxp_fmuk66-e_default` | NXP FMUK66-E |
|
||||
| `radiolink_PIX6_default` | Radiolink PIX6 |
|
||||
| `siyi_n7_default` | SIYI N7 |
|
||||
| `sky-drones_smartap-airlink_default` | Sky-Drones SmartAP Airlink |
|
||||
| `uvify_core_default` | UVify Core |
|
||||
| `atl_mantis-edu_default` | ATL Mantis EDU |
|
||||
| `av_x-v1_default` | AV X-V1 |
|
||||
| `narinfc_h7_default` | NarinFC H7 |
|
||||
| `thepeach_k1_default` | ThePeach K1 |
|
||||
| `thepeach_r1_default` | ThePeach R1 |
|
||||
| `airmind_mindpx-v2_default` | AirMind MindPX V2 |
|
||||
| `beaglebone_blue_default` | BeagleBone Blue |
|
||||
| `bluerobotics_navigator_default` | BlueRobotics Navigator |
|
||||
| `emlid_navio2_default` | Emlid Navio2 |
|
||||
| `px4_raspberrypi_default` | Raspberry Pi |
|
||||
| `scumaker_pilotpi_default` | Scumaker PilotPi |
|
||||
|
||||
:::info
|
||||
Some boards (e.g., `px4_fmu-v6x_default`, `cubepilot_cubeorange_default`) do not include SIH in their default build due to flash memory constraints.
|
||||
You can add SIH to any board -- see [Check if SIH is in Firmware](#check-if-sih-is-in-firmware).
|
||||
:::
|
||||
|
||||
## Вимоги
|
||||
|
||||
- A flight controller with SIH module included in firmware (see [Firmware Builds with SIH](#firmware-builds-with-sih)).
|
||||
- USB connection for QGroundControl.
|
||||
- Optional: jMAVSim for 3D visualization via serial link (see [Visualization](#hardware-visualization)).
|
||||
|
||||
## Check if SIH is in Firmware
|
||||
|
||||
SIH is included in most default firmware builds. To verify, search for `sih` in the parameter list in QGroundControl. If `SIH_*` parameters are available, the module is included.
|
||||
|
||||
To add SIH to a custom build, enable it in the board configuration:
|
||||
|
||||
```txt
|
||||
CONFIG_MODULES_SIMULATION_SIMULATOR_SIH=y
|
||||
```
|
||||
|
||||
## Starting SIH
|
||||
|
||||
1. Connect the flight controller to QGroundControl via USB.
|
||||
2. Set `SYS_HITL` parameter to `2`.
|
||||
3. Reboot the flight controller.
|
||||
4. The SIH module starts automatically and provides simulated sensor data.
|
||||
|
||||
Once running, the vehicle can be controlled from QGroundControl or an RC controller.
|
||||
|
||||
:::warning
|
||||
To save flash memory on boards with limited storage, SIH can be built with only quadrotor support.
|
||||
Set `SIH_VEHICLE_TYPE` before building to limit included vehicle models.
|
||||
:::
|
||||
|
||||
## Visualization (Optional) {#hardware-visualization}
|
||||
|
||||
If you need a visual aid to see what the simulated vehicle is doing on hardware:
|
||||
|
||||
### QGroundControl
|
||||
|
||||
Connect the flight controller via USB. QGC shows the vehicle on the map view with attitude, position, and telemetry, the same as a real flight.
|
||||
|
||||
### jMAVSim (3D Display-Only)
|
||||
|
||||
jMAVSim can render a 3D view of the vehicle over a serial connection. No physics are simulated in jMAVSim -- it is display-only.
|
||||
|
||||
```sh
|
||||
./Tools/simulation/jmavsim/jmavsim_run.sh -q -d /dev/ttyACM0 -b 2000000 -o
|
||||
```
|
||||
|
||||
Where `/dev/ttyACM0` is the serial device for the flight controller.
|
||||
On macOS, this is typically `/dev/tty.usbmodem*`.
|
||||
|
||||
## Controlling Actuators
|
||||
|
||||
:::warning
|
||||
If you want to control throttling actuators in SIH, make sure to remove propellers for safety.
|
||||
:::
|
||||
|
||||
In some scenarios, it may be useful to control an actuator while running SIH on hardware. For example, you might want to verify that winches or grippers are functioning correctly by checking the servo responses.
|
||||
|
||||
**To enable actuator control in SIH:**
|
||||
|
||||
1. Configure PWM parameters in the airframe file:
|
||||
|
||||
Ensure your airframe file includes the necessary parameters to map PWM outputs to the correct channels.
|
||||
|
||||
For example, if a servo is connected to MAIN 3 and you want to map it to AUX1 on your RC, use the following command:
|
||||
|
||||
`param set-default PWM_MAIN_FUNC3 407`
|
||||
|
||||
You can find a full list of available values for `PWM_MAIN_FUNCn` [here](../advanced_config/parameter_reference.md#PWM_MAIN_FUNC1). In this case, `407` maps the MAIN 3 output to AUX1 on the RC.
|
||||
|
||||
Alternatively, you can use the [`PWM_AUX_FUNCn`](../advanced_config/parameter_reference.md#PWM_AUX_FUNC1) parameters.
|
||||
|
||||
You may also configure the output as desired:
|
||||
|
||||
- Disarmed PWM: ([`PWM_MAIN_DISn`](../advanced_config/parameter_reference.md#PWM_MAIN_DIS1) / [`PWM_AUX_DIS1`](../advanced_config/parameter_reference.md#PWM_AUX_DIS1))
|
||||
- Minimum PWM ([`PWM_MAIN_MINn`](../advanced_config/parameter_reference.md#PWM_MAIN_MIN1) / [`PWM_AUX_MINn`](../advanced_config/parameter_reference.md#PWM_AUX_MIN1))
|
||||
- Maximum PWM ([`PWM_MAIN_MAXn`](../advanced_config/parameter_reference.md#PWM_MAIN_MAX1) / [`PWM_AUX_MAXn`](../advanced_config/parameter_reference.md#PWM_AUX_MAX1))
|
||||
|
||||
2. Manually start the PWM output driver
|
||||
|
||||
For safety, the PWM driver is not started automatically in SIH. To enable it, run the following command in the MAVLink shell:
|
||||
|
||||
```sh
|
||||
pwm_out start
|
||||
```
|
||||
|
||||
**And to disable it again:**
|
||||
|
||||
```sh
|
||||
pwm_out stop
|
||||
```
|
||||
|
||||
## Adding New Airframes (FC)
|
||||
|
||||
Airframe configuration for SIH on a flight controller differs from SITL in a few ways:
|
||||
|
||||
- Airframe file goes in `ROMFS/px4fmu_common/init.d/airframes` and follows the naming template `${ID}_${model_name}.hil`, where `ID` is the `SYS_AUTOSTART_ID` used to select the airframe, and `model_name` is the airframe model name.
|
||||
- Add the model name in `ROMFS/px4fmu_common/init.d/airframes/CMakeLists.txt` to generate a corresponding make target.
|
||||
- Actuators are configured with `HIL_ACT_FUNC*` parameters (not the usual `PWM_MAIN_FUNC*` parameters).
|
||||
This is to avoid using the real actuator outputs in SIH.
|
||||
Similarly, the bitfield for inverting individual actuator output ranges is `HIL_ACT_REV`, rather than `PWM_MAIN_REV`.
|
||||
|
||||
For general airframe setup (SIH parameters, EKF2 tuning), see [Adding New Airframes](index.md#adding-new-airframes) on the main SIH page.
|
||||
|
||||
For examples, see the `.hil` airframes in [ROMFS/px4fmu_common/init.d/airframes](https://github.com/PX4/PX4-Autopilot/tree/main/ROMFS/px4fmu_common/init.d/airframes).
|
||||
+183
-289
File diff suppressed because it is too large
Load Diff
@@ -12,10 +12,13 @@ These simulators are not maintained, tested, or supported, by the core developme
|
||||
Інструменти мають різний рівень підтримки своїми спільнотами (деякі добре підтримують, інші - ні).
|
||||
Питання про ці інструменти повинні порушуватися на [форумах для обговорення](../contribute/support.md#forums-and-chat)
|
||||
|
||||
| Симулятор | Опис |
|
||||
| ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| [Simulation-In-Hardware](../sim_sih/README.md) (SIH) | <p>A simulator implemented in C++ as a PX4 module directly in the Firmware [code](https://github.com/PX4/PX4-Autopilot/tree/main/src/modules/simulation/simulator_sih). It can be ran in SITL directly on the computer or as an alternative to HITL offering a hard real-time simulation directly on the hardware autopilot. </p><p><strong>Supported Vehicles:</strong> Quad, Hexa, Plane, Tailsitter, Standard VTOL, Ackermann Rover</p> |
|
||||
| [FlightGear](../sim_flightgear/README.md) | <p>Симулятор який надає фізично та візуально реалістичні симуляції. Зокрема він може моделювати багато погодних умов, включаючи грози, сніг, дощ та град, а також може симулювати температурні режими та різні типи атмосферних течій. [Симуляція кількох засобів](../sim_flightgear/multi_vehicle.md) також підтримується.</p> <p><strong>Рухомі засоби, що підтримуються:</strong> Літак, Автожир, Ровер</p> |
|
||||
| [JMAVSim](../sim_jmavsim/index.md) | <p>A simple multirotor/quad simulator. This was previously part of the PX4 development toolchain but was removed in favour of [Gazebo](../sim_gazebo_gz/index.md).</p> <p><strong>Supported Vehicles:</strong> Quad</p> |
|
||||
| [JSBSim](../sim_jsbsim/README.md) | <p>Симулятор, який надає моделі просунутої динаміки польоту. Він може використовуватися для моделювання реалістичної динаміки польоту, заснованої на даних з аеродинамічної труби.</p> <p><strong>Рухомі засоби, що підтримуються:</strong> Літак, Квадрокоптер, Гексакоптер</p> |
|
||||
| [AirSim](../sim_airsim/README.md) | <p>Міжплатформовий симулятор який надає фізично та візуально реалістичні симуляції. This simulator is resource intensive, and requires a significantly more powerful computer than the other simulators described here.</p><p><strong>Supported Vehicles:</strong> Iris (MultiRotor model and a configuration for PX4 QuadRotor in the X configuration).</p> |
|
||||
| Симулятор | Опис |
|
||||
| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [FlightGear](../sim_flightgear/README.md) | <p>Симулятор який надає фізично та візуально реалістичні симуляції. Зокрема він може моделювати багато погодних умов, включаючи грози, сніг, дощ та град, а також може симулювати температурні режими та різні типи атмосферних течій. [Симуляція кількох засобів](../sim_flightgear/multi_vehicle.md) також підтримується.</p> <p><strong>Рухомі засоби, що підтримуються:</strong> Літак, Автожир, Ровер</p> |
|
||||
| [JMAVSim](../sim_jmavsim/index.md) | <p>A simple multirotor/quad simulator. This was previously part of the PX4 development toolchain but was removed in favour of [Gazebo](../sim_gazebo_gz/index.md).</p> <p><strong>Supported Vehicles:</strong> Quad</p> |
|
||||
| [JSBSim](../sim_jsbsim/README.md) | <p>Симулятор, який надає моделі просунутої динаміки польоту. Він може використовуватися для моделювання реалістичної динаміки польоту, заснованої на даних з аеродинамічної труби.</p> <p><strong>Рухомі засоби, що підтримуються:</strong> Літак, Квадрокоптер, Гексакоптер</p> |
|
||||
| [AirSim](../sim_airsim/README.md) | <p>Міжплатформовий симулятор який надає фізично та візуально реалістичні симуляції. This simulator is resource intensive, and requires a significantly more powerful computer than the other simulators described here.</p><p><strong>Supported Vehicles:</strong> Iris (MultiRotor model and a configuration for PX4 QuadRotor in the X configuration).</p> |
|
||||
|
||||
:::tip
|
||||
[Gazebo](../sim_gazebo_gz/index.md) and [SIH](../sim_sih/index.md) are the officially supported simulators. See the [Simulation](index.md) page for more information.
|
||||
:::
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# Hardware Simulation
|
||||
|
||||
PX4 can run simulation directly on a real flight controller, replacing real sensors with simulated data, while otherwise executing the full flight stack on actual autopilot hardware.
|
||||
|
||||
:::info
|
||||
Simulating PX4 on flight controller hardware exercises more flight stack code than SITL, and tests more of your hardware integration.
|
||||
It can surface issues with running PX4 that might hidden when running on a desktop OS and hardware, or even a different flight controller board.
|
||||
:::
|
||||
|
||||
Two simulation approaches are available, controlled by the [SYS_HITL](../advanced_config/parameter_reference.md#SYS_HITL) parameter:
|
||||
|
||||
- **[HITL Simulation](../simulation/hitl.md) (`SYS_HITL=1`):** An external simulator (Gazebo Classic or jMAVSim) runs physics on a companion computer and sends sensor data to the flight controller via MAVLink HIL messages. Requires a USB/UART connection and simulator setup.
|
||||
- **[SIH on Hardware](../sim_sih/hardware.md) (`SYS_HITL=2`):** A C++ physics model runs directly on the flight controller itself. No external simulator, no companion computer, no MAVLink sensor data. Just set the parameter and reboot.
|
||||
|
||||
## HITL vs SIH {#comparision}
|
||||
|
||||
| | HITL (`SYS_HITL=1`) | SIH (`SYS_HITL=2`) |
|
||||
| ----------------- | ---------------------------------------------------------------------- | ---------------------------------------------------- |
|
||||
| Physics model | External simulator (Gazebo Classic, jMAVSim) | Internal C++ module |
|
||||
| Communication | MAVLink HIL messages | uORB (internal) |
|
||||
| External process | Вимоги | Not required |
|
||||
| Setup complexity | Higher | Lower |
|
||||
| Sensor simulation | Camera, lidar, etc. (via simulator) | IMU, GPS, baro, mag, airspeed only |
|
||||
| Vehicle types | Quadcopter, Standard VTOL | Quad, Hex, FW, VTOL Tailsitter, Standard VTOL, Rover |
|
||||
|
||||
## When to Use Which
|
||||
|
||||
- Use **SIH** if you want the simplest possible setup. No external dependencies.
|
||||
- Use **HITL** if you need an external physics engine, 3D visualization from Gazebo Classic, or camera/lidar sensor simulation that SIH does not provide.
|
||||
@@ -12,9 +12,9 @@ HITL is [community supported and maintained](../simulation/community_supported_s
|
||||
|
||||
PX4 supports HITL for multicopters (using [jMAVSim](../sim_jmavsim/index.md) or [Gazebo Classic](../sim_gazebo_classic/index.md)) and VTOL (using Gazebo Classic).
|
||||
|
||||
<a id="compatible_airframe"></a>
|
||||
For a comparison of HITL and SIH on hardware, see [Hardware Simulation](../simulation/hardware.md).
|
||||
|
||||
## Планери сумісні з HITL
|
||||
## HITL-Compatible Airframes {#compatible_airframe}
|
||||
|
||||
The set of compatible airframes vs simulators is:
|
||||
|
||||
@@ -23,9 +23,7 @@ The set of compatible airframes vs simulators is:
|
||||
| [HIL Quadcopter X](../airframes/airframe_reference.md#copter_simulation_hil_quadcopter_x) | 1001 | Y | Y |
|
||||
| [HIL Standard VTOL QuadPlane](../airframes/airframe_reference.md#vtol_standard_vtol_hil_standard_vtol_quadplane) | 1002 | Y | |
|
||||
|
||||
<a id="simulation_environment"></a>
|
||||
|
||||
## Середовище симуляції HITL
|
||||
## HITL Simulation Environment {#simulation_environment}
|
||||
|
||||
У симуляції з апаратним забезпеченням у контурі (HITL) звичайна прошивка PX4 виконується на реальному обладнані.
|
||||
JMAVSim або Gazebo Classic (які працюють на комп'ютері розробки) підключені до пристрою польотного контролера через USB/UART.
|
||||
|
||||
+61
-11
@@ -3,38 +3,79 @@
|
||||
Симулятори дозволяють польотному коду PX4 керувати комп'ютерно змодельованим апаратом у змодельованому "світі".
|
||||
You can interact with this vehicle just as you might with a real vehicle, using _QGroundControl_, an offboard API, or a radio controller/gamepad.
|
||||
|
||||
:::tip
|
||||
Simulation is a quick, easy, and most importantly, _safe_ way to test changes to PX4 code before attempting to fly in the real world.
|
||||
Це також хороший спосіб почати літати з PX4, якщо у вас ще немає апарату для експериментів.
|
||||
:::
|
||||
|
||||
PX4 supports both _Software In the Loop (SITL)_ simulation, where the flight stack runs on computer (either the same computer or another computer on the same network) and _Hardware In the Loop (HITL)_ simulation using a simulation firmware on a real flight controller board.
|
||||
|
||||
Інформація про доступні тренажери та способи їх налаштування наведена в наступному розділі.
|
||||
The other sections provide general information about how the simulator works, and are not required to _use_ the simulators.
|
||||
|
||||
:::tip
|
||||
Simulation is a quick, easy, and most importantly, _safe_ way to test changes to PX4 code before attempting to fly in the real world.
|
||||
Це також хороший спосіб почати літати з PX4, якщо у вас ще немає апарату для експериментів.
|
||||
:::
|
||||
|
||||
## Підтримувані симулятори
|
||||
|
||||
Наступні симулятори підтримуються основною командою розробників PX4.
|
||||
|
||||
:::info
|
||||
Gazebo Classic is being downgraded to [community supported](../simulation/community_supported_simulators.md) and is no longer recommended as the default simulation solution.
|
||||
Use [Gazebo](../sim_gazebo_gz/index.md) (formerly Gazebo Ignition) for new projects.
|
||||
If you have an older workflow that does not yet work in newer Gazebo, Gazebo Classic remains available but will not receive core team maintenance going forward.
|
||||
See [PX4-Autopilot#23602](https://github.com/PX4/PX4-Autopilot/issues/23602) for the deprecation timeline and migration status.
|
||||
:::
|
||||
|
||||
| Симулятор | Опис |
|
||||
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [Gazebo](../sim_gazebo_gz/index.md) | Gazebo supersedes [Gazebo Classic](../sim_gazebo_classic/index.md), featuring more advanced rendering, physics and sensor models. It is the only version of Gazebo available from Ubuntu Linux 22.04<br><br>A powerful 3D simulation environment that is particularly suitable for testing object-avoidance and computer vision. Він також може бути використаний для [multi-vehicle simulation](../simulation/multi-vehicle-simulation.md) і зазвичай використовується з [ROS](../simulation/ros_interface.md), набором інструментів для автоматизації керування апаратами. <br><br><strong>Supported Vehicles:</strong> Quad, VTOL (Standard, Tailsitter, Tiltroter), Plane, Rovers |
|
||||
| [Gazebo Classic](../sim_gazebo_classic/index.md) | A powerful 3D simulation environment that is particularly suitable for testing object-avoidance and computer vision. It can also be used for [multi-vehicle simulation](../simulation/multi-vehicle-simulation.md) and is commonly used with [ROS](../simulation/ros_interface.md), a collection of tools for automating vehicle control.<br><br>**Supported Vehicles:** Quad ([Iris](../airframes/airframe_reference.md#copter_quadrotor_x_generic_quadcopter)), Hex (Typhoon H480), [Generic Standard VTOL (QuadPlane)](../airframes/airframe_reference.md#vtol_standard_vtol_generic_standard_vtol), Tailsitter, Plane, Rover, Submarine |
|
||||
| [SIH](../sim_sih/index.md) | A lightweight, headless simulator that runs physics directly inside PX4 as a C++ module (no external dependencies). Headless by default for fastest iteration. Supports ROS 2 via uXRCE-DDS. Can also run on flight controller hardware (`SYS_HITL=2`).<br><br>**Supported Vehicles:** Quad, Hex, Plane, Tailsitter, Standard VTOL, Rover |
|
||||
|
||||
There are also a number of [Community Supported Simulators](../simulation/community_supported_simulators.md).
|
||||
|
||||
---
|
||||
### Simulator Comparison
|
||||
|
||||
Решта цієї теми - це "дещо загальний" опис того, як працює інфраструктура симуляції.
|
||||
It is not required to _use_ the simulators.
|
||||
| Характеристика | Gazebo | SIH |
|
||||
| ------------------------- | ------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| **Default Mode** | GUI with 3D rendering | Headless (fastest iteration) |
|
||||
| **3D Visualization** | Built-in (photorealistic) | Optional: QGC map or jMAVSim display-only |
|
||||
| **Physics Engine** | External (gz-physics) | Internal (C++ module, uORB) |
|
||||
| **External Dependencies** | Gazebo packages, rendering libs | None |
|
||||
| **Vehicle Types** | Quad, VTOL, Plane, Rovers | Quad, Hex, Plane, Tailsitter, Std VTOL, Rover |
|
||||
| **Multi-vehicle** | Yes (documented) | Yes ([multi-vehicle](../sim_sih/index.md#multi-vehicle-simulation)) |
|
||||
| **Sensor Simulation** | Camera, LiDAR, depth, IMU, GPS, baro, mag | IMU, GPS, baro, mag, airspeed |
|
||||
| **Custom Worlds/Models** | Yes (SDF, large model library) | Ні |
|
||||
| **ROS 2 Integration** | Yes (uXRCE-DDS) | Yes (uXRCE-DDS) |
|
||||
| **Extensibility** | Plugins, custom sensors, environments | Modify C++ source, tune SIH\_\* parameters |
|
||||
| **Community/Ecosystem** | Large Gazebo community, model repos | PX4-internal |
|
||||
| **Faster-than-Realtime** | Так | Так |
|
||||
| **Runs on FC Hardware** | Ні | Yes (SYS_HITL=2) |
|
||||
| **macOS Apple Silicon** | Unstable (known issues) | Works natively |
|
||||
| **Lockstep** | Так | Так |
|
||||
|
||||
:::tip
|
||||
For a detailed analysis of PX4 simulation user needs, priorities, and pain points, see the [PX4 Simulation Integration Survey Report](https://www.mcguirerobotics.com/px4_sim_research_report/) (K. McGuire, Dronecode Foundation, Dec 2025, 120 respondents).
|
||||
:::
|
||||
|
||||
### Which Simulator Should I Use?
|
||||
|
||||
- **Full-featured simulation with 3D rendering, custom worlds, camera/lidar sensors, or rich sensor ecosystems:** Use [Gazebo](../sim_gazebo_gz/index.md). Largest ecosystem, custom models and plugins, photorealistic rendering, extensive sensor library, large community.
|
||||
- **Fast headless iteration, controls research, zero-dependency setup, or macOS:** Use [SIH](../sim_sih/index.md). Runs entirely inside PX4 with no external dependencies, headless by default for maximum speed, physics parameters directly tunable via `SIH_*` params. Supports ROS 2 via uXRCE-DDS.
|
||||
- **Hardware integration testing without propellers:** Use [SIH on flight controller hardware](../sim_sih/index.md#sih-on-flight-controller-hardware) (`SYS_HITL=2`).
|
||||
|
||||
:::info
|
||||
SIH is headless by default. For optional 3D visualization, you can use [jMAVSim in display-only mode](../sim_sih/index.md#visualization-optional) or monitor the vehicle in QGroundControl's map view.
|
||||
:::
|
||||
|
||||
## Симулятор MAVLink API
|
||||
|
||||
Всі симулятори, крім Gazebo, взаємодіють з PX4 за допомогою API симулятора MAVLink.
|
||||
Most external simulators communicate with PX4 using the Simulator MAVLink API.
|
||||
Цей API визначає набір повідомлень MAVLink, які передають дані датчиків з модельованого світу в PX4 і повертають значення двигуна і приводу з польотного коду, які будуть застосовані до модельованого апарату.
|
||||
На зображенні нижче показано потік повідомлень.
|
||||
|
||||
:::info
|
||||
SIH does not use the MAVLink simulator API. It runs physics internally via uORB messages. Gazebo communicates with PX4 via gz_bridge (Gazebo transport), not MAVLink.
|
||||
:::
|
||||
|
||||

|
||||
|
||||
:::info
|
||||
@@ -96,7 +137,7 @@ See [System Startup](../concept/system_startup.md) to learn more.
|
||||
|
||||
## Середовище симуляції SITL
|
||||
|
||||
На схемі нижче показано типове середовище симуляції SITL для будь-якого з підтримуваних тренажерів, що використовують MAVLink (тобто всіх, окрім Gazebo).
|
||||
The diagram below shows a typical SITL simulation environment for any of the supported simulators that use MAVLink (i.e. most external simulators, but not Gazebo or SIH).
|
||||
|
||||

|
||||
|
||||
@@ -153,8 +194,16 @@ make px4_sitl jmavsim
|
||||
|
||||
# Start PX4 with no simulator (i.e. to use your own "custom" simulator)
|
||||
make px4_sitl none_iris
|
||||
|
||||
# SIH (headless, zero dependencies)
|
||||
make px4_sitl_sih sihsim_quadx
|
||||
make px4_sitl_sih sihsim_airplane
|
||||
```
|
||||
|
||||
:::info
|
||||
Use `px4_sitl_sih` instead of `px4_sitl` to avoid building Gazebo dependencies.
|
||||
:::
|
||||
|
||||
Симуляцію можна додатково налаштувати за допомогою змінних середовища:
|
||||
|
||||
- Any of the [PX4 parameters](../advanced_config/parameter_reference.md) can be overridden via `export PX4_PARAM_{name}={value}`.
|
||||
@@ -165,7 +214,7 @@ For more information see: [Building the Code > PX4 Make Build Targets](../dev_se
|
||||
|
||||
### Run Simulation Faster than Realtime {#simulation_speed}
|
||||
|
||||
SITL can be run faster or slower than real-time when using Gazebo, Gazebo Classic, or jMAVSim.
|
||||
SITL can be run faster or slower than real-time when using Gazebo, Gazebo Classic, jMAVSim, or SIH.
|
||||
|
||||
The speed factor is set using the environment variable `PX4_SIM_SPEED_FACTOR`.
|
||||
|
||||
@@ -179,6 +228,7 @@ This is what makes it possible to run the simulation at different speeds, and al
|
||||
- Gazebo: [Change Simulation Speed](../sim_gazebo_gz/index.md#change-simulation-speed)
|
||||
- Gazebo Classic: [Change Simulation Speed](../sim_gazebo_classic/index.md#change-simulation-speed) and [Lockstep](../sim_gazebo_classic/index.md#lockstep)
|
||||
- jMAVSim: [Change Simulation Speed](../sim_jmavsim/index.md#change-simulation-speed) and [Lockstep](../sim_jmavsim/index.md#lockstep)
|
||||
- SIH: Supports `PX4_SIM_SPEED_FACTOR` for faster-than-realtime simulation.
|
||||
|
||||
### Сценарії запуску
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ PX4 підтримує симуляцію кількох рухомих засо
|
||||
- [Multi-Vehicle Sim with Gazebo Classic](../sim_gazebo_classic/multi_vehicle_simulation.md) (both with and without ROS)
|
||||
- [Multi-Vehicle Sim with FlightGear](../sim_flightgear/multi_vehicle.md)
|
||||
- [Multi-Vehicle Sim with JMAVSim](../sim_jmavsim/multi_vehicle.md)
|
||||
- [Multi-Vehicle Sim with SIH](../sim_sih/index.md#multi-vehicle-simulation)
|
||||
|
||||
Вибір симулятора залежить від рухомого засобу що моделюється, наскільки "якісна" потрібна симуляція (і для яких функцій), і скільки засобів потрібно симулювати одночасно.
|
||||
|
||||
@@ -18,5 +19,8 @@ PX4 підтримує симуляцію кількох рухомих засо
|
||||
Note, this is the successor of [Gazebo Classic](../sim_gazebo_classic/index.md) (below).
|
||||
- [Gazebo Classic](../sim_gazebo_classic/index.md) is less accurate and less heavy-weight and supports many features and vehicles that aren't available for FlightGear.
|
||||
Він може симулювати набагато більше засобів за раз, ніж FlightGear, та дозволяє симулювати різні їх типи водночас.
|
||||
- JMAVSim - це дуже легкий симулятор, який підтримує лише квадрокоптери.
|
||||
- [JMAVSim](../sim_jmavsim/index.md) is a very light-weight simulator that supports only quadcopters.
|
||||
Рекомендується у випадку, якщо вам необхідно підтримувати багато квадрокоптерів та симуляція може бути приблизна.
|
||||
- [SIH](../sim_sih/index.md) is the lightest-weight option with zero external dependencies.
|
||||
Since SIH is headless and runs physics internally, it can launch many instances with minimal resource usage.
|
||||
It supports all 6 vehicle types (quad, hex, plane, tailsitter, standard VTOL, rover).
|
||||
|
||||
Reference in New Issue
Block a user