docs(i18n): PX4 guide translations (Crowdin) - uk (#27209)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
This commit is contained in:
PX4 Build Bot
2026-04-27 08:34:23 +10:00
committed by GitHub
parent 61295affa1
commit 5c7d08f1d0
20 changed files with 535 additions and 250 deletions
+2
View File
@@ -386,6 +386,7 @@
- [Периферія](peripherals/index.md)
- [ADSB/FLARM/UTM (уникнення трафіку)](peripherals/adsb_flarm.md)
- [On-Screen Display (OSD)](peripherals/osd.md)
- [Парашут](peripherals/parachute.md)
- [Remote ID](peripherals/remote_id.md)
@@ -492,6 +493,7 @@
- [Gazebo Models Repository](sim_gazebo_gz/gazebo_models.md)
- [Багатотранспортний Sim](sim_gazebo_gz/multi_vehicle_simulation.md)
- [SIH Simulation](sim_sih/index.md)
- [Hawkeye Visualizer](sim_hawkeye/index.md)
- [Симуляція Gazebo Classic](sim_gazebo_classic/index.md)
- [Vehicles](sim_gazebo_classic/vehicles.md)
- [Worlds](sim_gazebo_classic/worlds.md)
+34 -9
View File
@@ -249,6 +249,18 @@ The Traffic Avoidance Failsafe allows PX4 to respond to transponder data (e.g. f
| ---------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| [NAV_TRAFF_AVOID](../advanced_config/parameter_reference.md#NAV_TRAFF_AVOID) | Встановіть дію аварійного режиму: Вимкнено, Попередження, Режим повернення, Режим посадки. |
## Remote ID Failsafe
<Badge type="tip" text="PX4 v1.18" />
The Remote ID failsafe is triggered when the [Remote ID (Open Drone ID)](../peripherals/remote_id.md) module is not detected or reports as unhealthy while the vehicle is armed.
The failsafe action and arming behaviour are both configured by the `COM_ARM_ODID` parameter:
| Параметр | Опис |
| ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="COM_ARM_ODID"></a>[COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) | Remote ID arming check and in-flight failsafe. `0`: Disabled (default), `1`: Warning only, `2`: Error only (prevents arming), `3`: Return, `4`: Land, `5`: Terminate.<br><br>On failsafe:<br>- `Error`, `Return`, `Land` and `Terminate` prevent arming.<br>- `Return`, `Land` and `Terminate` start the associated action/mode when airborne. |
## Запобіжник Quad-chute
Аварійний режим для випадку, коли БЛА типу VTOL більше не може летіти у режимі фіксованого крила, наприклад, через відмову тягового мотора, датчика швидкості повітря або керованої поверхні.
@@ -296,6 +308,19 @@ Note that this check is _always enabled on takeoff_, irrespective of the `CBRK_F
The failure detector is active in all vehicle types and modes, except for those where the vehicle is _expected_ to do flips (i.e. [Acro mode (MC)](../flight_modes_mc/acro.md), [Acro mode (FW)](../flight_modes_fw/acro.md), and [Manual (FW)](../flight_modes_fw/manual.md)).
### Altitude Loss Trigger {#altitude-loss-trigger}
<Badge type="tip" text="PX4 v1.18" /> <Badge type="tip" text="MC, VTOL only" />
The failure detector can be configured to trigger if a rotary-wing vehicle loses too much altitude below its commanded setpoint while in an altitude-controlled flight mode (such as [Position mode](../flight_modes_mc/position.md) or [Altitude mode](../flight_modes_mc/altitude.md)).
If the vehicle descends more than [FD_ALT_LOSS](#FD_ALT_LOSS) meters below the setpoint, [flight termination](../advanced_config/flight_termination.md) is triggered, which may deploy a [parachute](../peripherals/parachute.md).
| Параметр | Опис |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="FD_ALT_LOSS"></a>[FD_ALT_LOSS](../advanced_config/parameter_reference.md#FD_ALT_LOSS) | Altitude loss threshold (m). Flight termination is triggered when the vehicle drops this far below the setpoint. Установіть значення 0 для відключення. |
| <a id="FD_ALT_LOSS_T"></a>[FD_ALT_LOSS_T](../advanced_config/parameter_reference.md#FD_ALT_LOSS_T) | Time (s) the vehicle must remain below the threshold before flight termination is triggered. |
### Тригер висоти
Детектор відмов може бути налаштований на спрацьовування, якщо стан автомобіля перевищує попередньо визначені значення крена та кочення протягом певного часу.
@@ -431,15 +456,15 @@ The [relevant parameters](../advanced_config/parameters.md) are shown below:
These parameters can be used to set conditions that prevent arming.
| Параметр | Опис |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="COM_ARMABLE"></a>[COM_ARMABLE](../advanced_config/parameter_reference.md#COM_ARMABLE) | Enable arming (at all). `0`: Disabled, `1`: Enabled (default). |
| <a id="COM_ARM_BAT_MIN"></a>[COM_ARM_BAT_MIN](../advanced_config/parameter_reference.md#COM_ARM_BAT_MIN) | Minimum battery level for arming. `0`: Disabled (default). Values: `0`-`0.9`, |
| <a id="COM_ARM_WO_GPS"></a>[COM_ARM_WO_GPS](../advanced_config/parameter_reference.md#COM_ARM_WO_GPS) | Enable arming without GPS. `0`: Disabled, `1`: Enabled (default). |
| <a id="COM_ARM_MIS_REQ"></a>[COM_ARM_MIS_REQ](../advanced_config/parameter_reference.md#COM_ARM_MIS_REQ) | Require valid mission to arm. `0`: Disabled (default), `1`: Enabled . |
| <a id="COM_ARM_SDCARD"></a>[COM_ARM_SDCARD](../advanced_config/parameter_reference.md#COM_ARM_SDCARD) | Require SD card to arm. `0`: Disabled (default), `1`: Warning, `2`: Enabled. |
| <a id="COM_ARM_AUTH_REQ"></a>[COM_ARM_AUTH_REQ](../advanced_config/parameter_reference.md#COM_ARM_AUTH_REQ) | Requires arm authorisation from an external (MAVLink) system. Flag to allow arming (at all). `1`: Enabled, `0`: Disabled (default). Associated configuration parameters are prefixed with `COM_ARM_AUTH_`. |
| <a id="COM_ARM_ODID"></a>[COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) | Require healthy Remote ID system to arm. `0`: Disabled (default), `1`: Warning, `2`: Enabled. |
| Параметр | Опис |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="COM_ARMABLE"></a>[COM_ARMABLE](../advanced_config/parameter_reference.md#COM_ARMABLE) | Enable arming (at all). `0`: Disabled, `1`: Enabled (default). |
| <a id="COM_ARM_BAT_MIN"></a>[COM_ARM_BAT_MIN](../advanced_config/parameter_reference.md#COM_ARM_BAT_MIN) | Minimum battery level for arming. `0`: Disabled (default). Values: `0`-`0.9`, |
| <a id="COM_ARM_WO_GPS"></a>[COM_ARM_WO_GPS](../advanced_config/parameter_reference.md#COM_ARM_WO_GPS) | Enable arming without GPS. `0`: Disabled, `1`: Enabled (default). |
| <a id="COM_ARM_MIS_REQ"></a>[COM_ARM_MIS_REQ](../advanced_config/parameter_reference.md#COM_ARM_MIS_REQ) | Require valid mission to arm. `0`: Disabled (default), `1`: Enabled . |
| <a id="COM_ARM_SDCARD"></a>[COM_ARM_SDCARD](../advanced_config/parameter_reference.md#COM_ARM_SDCARD) | Require SD card to arm. `0`: Disabled (default), `1`: Warning, `2`: Enabled. |
| <a id="COM_ARM_AUTH_REQ"></a>[COM_ARM_AUTH_REQ](../advanced_config/parameter_reference.md#COM_ARM_AUTH_REQ) | Requires arm authorisation from an external (MAVLink) system. Flag to allow arming (at all). `1`: Enabled, `0`: Disabled (default). Associated configuration parameters are prefixed with `COM_ARM_AUTH_`. |
| <a id="COM_ARM_ODID"></a>[COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) | Remote ID arming check and in-flight failsafe. `0`: Disabled (default), `1`: Warning only, `2`: Error only, `3`: Return, `4`: Land, `5`: Terminate. See [Remote ID Failsafe](#remote-id-failsafe). |
In addition there are a number of parameters that configure system and sensor limits that make prevent arming if exceeded: [COM_CPU_MAX](../advanced_config/parameter_reference.md#COM_CPU_MAX), [COM_ARM_IMU_ACC](../advanced_config/parameter_reference.md#COM_ARM_IMU_ACC), [COM_ARM_IMU_GYR](../advanced_config/parameter_reference.md#COM_ARM_IMU_GYR), [COM_ARM_MAG_ANG](../advanced_config/parameter_reference.md#COM_ARM_MAG_ANG), [COM_ARM_MAG_STR](../advanced_config/parameter_reference.md#COM_ARM_MAG_STR).
+25
View File
@@ -83,6 +83,31 @@ sensor_mag 200 1
There are several scripts to analyze and convert logging files in the [pyulog](https://github.com/PX4/pyulog) repository.
## Log Cleanup
PX4 automatically manages log storage by rotating log files during writing and cleaning up old logs when starting a new log.
Rotation is **on by default**: when the current file reaches [SDLOG_MAX_SIZE](../advanced_config/parameter_reference.md#SDLOG_MAX_SIZE), the logger closes it and opens a new one, and old `.ulg` files are deleted (oldest first) to keep free space above the threshold set by [SDLOG_ROTATE](../advanced_config/parameter_reference.md#SDLOG_ROTATE).
Three parameters control how much space logs may use:
- [SDLOG_ROTATE](../advanced_config/parameter_reference.md#SDLOG_ROTATE) is the maximum disk usage percentage (default 90).
Cleanup prior to logging (see below) ensures at least `(100 - SDLOG_ROTATE)%` of the disk stays free at all times, **even while writing a new log file**.
Setting it to `0` disables space-based cleanup entirely; setting it to `100` lets logs fill the disk completely.
- [SDLOG_MAX_SIZE](../advanced_config/parameter_reference.md#SDLOG_MAX_SIZE) is the maximum size of a single log file in MB
(default 1024). It also reserves headroom so that a full new file always fits after cleanup.
- [SDLOG_DIRS_MAX](../advanced_config/parameter_reference.md#SDLOG_DIRS_MAX) optionally caps the number of log directories kept (default 0, disabled).
This runs on top of the space-based cleanup and is mainly useful for capping log usage by count independent of available disk size (e.g. in SITL, where it defaults to `7`).
At log start, the cleanup threshold is `((100 - SDLOG_ROTATE)% of disk) + SDLOG_MAX_SIZE`.
The oldest logs are deleted until the free space meets this threshold.
For example, on an 8 GB card with defaults, cleanup keeps at least `820 + 1024 = ~1.8 GB` free at log start,
so ~6 GB is usable for logs and disk usage never exceeds 90% during writing.
Small flash targets override `SDLOG_MAX_SIZE` to a smaller value to keep more logs within the available space.
PX4 stores logs in directories named with one of two formats, depending on whether the system has valid time: date directories (such as `2024-01-15` or `2024-01-16`) when it does, and session directories (`sess001`) when it doesn't.
The cleanup algorithm prioritises deleting logs from whichever format is not currently in use.
This ensures that stale logs from a different time mode are cleaned up before current logs.
## Обмеження розміру файлу
Максимальний розмір файлу залежить від файлової системи та ОС.
+14 -1
View File
@@ -38,7 +38,7 @@ To build for [other targets](../dev_setup/dev_env.md#supported-targets) you will
4. **Ensure Python 3 is available.** Some PX4 build scripts require `python3` and `pip3` to be in your `PATH`. The Xcode Command Line Tools include Python 3 by default.
:::tip
::: tip
If you need to install or manage a different Python version, we recommend [pyenv](https://github.com/pyenv/pyenv), which lets you set global and per-directory Python versions.
:::
@@ -59,6 +59,19 @@ To build for [other targets](../dev_setup/dev_env.md#supported-targets) you will
./Tools/setup/macos.sh --sim-tools
```
::: info
The setup script creates a Python virtual environment at `.venv` in the repo root and installs all Python dependencies into it. This keeps PX4's Python requirements isolated from your system Python and avoids conflicts with Homebrew's externally-managed Python.
Activate it before building:
```sh
source .venv/bin/activate
```
You'll need to re-run this command in each new terminal session. To activate it automatically when you `cd` into the repo, consider a tool like [direnv](https://direnv.net/) or add the activation to your `~/.zshrc`.
:::
This installs:
- **Toolchain packages** from the `osx-cross/arm` and `PX4/px4` Homebrew taps — ARM cross-compiler (`arm-gcc-bin@13`), `cmake`, `ninja`, `ccache`, `fastdds`, `genromfs`, `kconfig-frontends`, and other build tools
@@ -91,6 +91,18 @@ Firmware can be installed in any of the normal ways:
- [Load the firmware](../config/firmware.md) using _QGroundControl_.
Ви можете використовувати або готове вбудоване програмне забезпечення, або власне користувацьке програмне забезпечення.
### Flash Storage Troubleshooting
The AirBrainH743 uses a 128MB NAND flash (W25N) with a littlefs filesystem for [logging](../dev_log/logging.md).
If the flash filesystem becomes corrupted, you can reformat it using the [System Console](../debug/system_console.md):
```sh
mklittlefs /dev/mtd0 /fs/flash
```
This will erase all data on the flash and create a fresh littlefs filesystem.
The filesystem is immediately available after the command completes.
### Системна консоль
UART1 (ttyS0) is configured for use as the [System Console](../debug/system_console.md).
+2 -2
View File
@@ -13,7 +13,7 @@ The available profiles (in source-code declaration order) are:
- _Gimbal_ (`MAVLINK_MODE_GIMBAL`): Messages for a gimbal. Note this also enables message forwarding.
- _External Vision_ (`MAVLINK_MODE_EXTVISION`): Messages for offboard vision systems.
- _External Vision Minimal_ (`MAVLINK_MODE_EXTVISIONMIN`): Messages for offboard vision systems on slower links.
- _OSD_ (`MAVLINK_MODE_OSD`): Set of messages for an OSD system.
- _OSD_ (`MAVLINK_MODE_OSD`): Set of messages for an [On-Screen Display (OSD)](../peripherals/osd.md#mavlink-osd) system.
- _Magic_ (`MAVLINK_MODE_MAGIC`): No messages streamed by default. Used when configuring streaming dynamically via MAVLink.
- _Custom_ (`MAVLINK_MODE_CUSTOM`): Same as `MAVLINK_MODE_MAGIC`.
- _Config_ (`MAVLINK_MODE_CONFIG`): Set of messages for configuration interface, sent at higher rates. This is used, for example, to send the `MAVLINK_MODE_NORMAL` message set via USB to a GCS.
@@ -29,7 +29,7 @@ The profile defines the _default_ messages and rates.
A connected MAVLink system can still request the streams/rates it wants using [MAV_CMD_SET_MESSAGE_INTERVAL](https://mavlink.io/en/messages/common.html#MAV_CMD_SET_MESSAGE_INTERVAL).
:::
To find the exact messages in each profile, search for ` configure_streams_to_default` (or the above profile names) in [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp).
To find the exact messages in each profile, search for `configure_streams_to_default` (or the above profile names) in [mavlink_main.cpp](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/mavlink/mavlink_main.cpp).
## Assigning Profiles to Ports
+200 -200
View File
@@ -96,210 +96,210 @@ They are not build into the module, and hence are neither published or subscribe
:::details
See messages
- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
- [GimbalControls](../msg_docs/GimbalControls.md)
- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
- [GpioConfig](../msg_docs/GpioConfig.md)
- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
- [PwmInput](../msg_docs/PwmInput.md)
- [DebugValue](../msg_docs/DebugValue.md)
- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
- [MavlinkLog](../msg_docs/MavlinkLog.md)
- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
- [EventV0](../msg_docs/EventV0.md)
- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
- [EscEepromRead](../msg_docs/EscEepromRead.md)
- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
- [DebugArray](../msg_docs/DebugArray.md)
- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
- [GpsDump](../msg_docs/GpsDump.md)
- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
- [NeuralControl](../msg_docs/NeuralControl.md)
- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
- [GainCompression](../msg_docs/GainCompression.md)
- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
- [EscStatus](../msg_docs/EscStatus.md)
- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
- [EstimatorStates](../msg_docs/EstimatorStates.md)
- [VehicleImu](../msg_docs/VehicleImu.md)
- [GeofenceResult](../msg_docs/GeofenceResult.md)
- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md)
- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
- [MissionResult](../msg_docs/MissionResult.md)
- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
- [RangingBeacon](../msg_docs/RangingBeacon.md)
- [OrbitStatus](../msg_docs/OrbitStatus.md)
- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
- [CameraCapture](../msg_docs/CameraCapture.md)
- [RaptorInput](../msg_docs/RaptorInput.md)
- [VehicleStatusV2](../msg_docs/VehicleStatusV2.md)
- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
- [Gripper](../msg_docs/Gripper.md)
- [FollowTarget](../msg_docs/FollowTarget.md)
- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
- [PowerButtonState](../msg_docs/PowerButtonState.md)
- [DeviceInformation](../msg_docs/DeviceInformation.md)
- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
- [RegisterExtComponentRequestV1](../msg_docs/RegisterExtComponentRequestV1.md)
- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
- [EscEepromWrite](../msg_docs/EscEepromWrite.md)
- [ActionRequest](../msg_docs/ActionRequest.md)
- [IrlockReport](../msg_docs/IrlockReport.md)
- [CellularStatus](../msg_docs/CellularStatus.md)
- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
- [SystemPower](../msg_docs/SystemPower.md)
- [SensorAccel](../msg_docs/SensorAccel.md)
- [Vtx](../msg_docs/Vtx.md)
- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
- [SensorAirflow](../msg_docs/SensorAirflow.md)
- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md)
- [MissionResult](../msg_docs/MissionResult.md)
- [SensorSelection](../msg_docs/SensorSelection.md)
- [Event](../msg_docs/Event.md)
- [MountOrientation](../msg_docs/MountOrientation.md)
- [EstimatorFusionControl](../msg_docs/EstimatorFusionControl.md)
- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
- [Mission](../msg_docs/Mission.md)
- [VehicleAirData](../msg_docs/VehicleAirData.md)
- [SensorBaro](../msg_docs/SensorBaro.md)
- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
- [TecsStatus](../msg_docs/TecsStatus.md)
- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
- [RcChannels](../msg_docs/RcChannels.md)
- [DebugVect](../msg_docs/DebugVect.md)
- [AirspeedWind](../msg_docs/AirspeedWind.md)
- [QshellRetval](../msg_docs/QshellRetval.md)
- [SensorUwb](../msg_docs/SensorUwb.md)
- [HomePositionV0](../msg_docs/HomePositionV0.md)
- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
- [CameraTrigger](../msg_docs/CameraTrigger.md)
- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
- [BatteryInfo](../msg_docs/BatteryInfo.md)
- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
- [Rpm](../msg_docs/Rpm.md)
- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
- [AdcReport](../msg_docs/AdcReport.md)
- [Cpuload](../msg_docs/Cpuload.md)
- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
- [RcParameterMap](../msg_docs/RcParameterMap.md)
- [VehicleStatusV3](../msg_docs/VehicleStatusV3.md)
- [GpsInjectData](../msg_docs/GpsInjectData.md)
- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
- [ButtonEvent](../msg_docs/ButtonEvent.md)
- [PpsCapture](../msg_docs/PpsCapture.md)
- [LoggerStatus](../msg_docs/LoggerStatus.md)
- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
- [TuneControl](../msg_docs/TuneControl.md)
- [VelocityLimits](../msg_docs/VelocityLimits.md)
- [DatamanRequest](../msg_docs/DatamanRequest.md)
- [HeaterStatus](../msg_docs/HeaterStatus.md)
- [LogMessage](../msg_docs/LogMessage.md)
- [SensorMag](../msg_docs/SensorMag.md)
- [GpioOut](../msg_docs/GpioOut.md)
- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
- [PowerMonitor](../msg_docs/PowerMonitor.md)
- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
- [GpioIn](../msg_docs/GpioIn.md)
- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
- [MagWorkerData](../msg_docs/MagWorkerData.md)
- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
- [LedControl](../msg_docs/LedControl.md)
- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
- [SensorGyro](../msg_docs/SensorGyro.md)
- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
- [DatamanResponse](../msg_docs/DatamanResponse.md)
- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
- [SensorTemp](../msg_docs/SensorTemp.md)
- [EstimatorBias](../msg_docs/EstimatorBias.md)
- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
- [SensorsStatus](../msg_docs/SensorsStatus.md)
- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
- [RaptorStatus](../msg_docs/RaptorStatus.md)
- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
- [CameraStatus](../msg_docs/CameraStatus.md)
- [WheelEncoders](../msg_docs/WheelEncoders.md)
- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
- [UlogStream](../msg_docs/UlogStream.md)
- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
- [QshellReq](../msg_docs/QshellReq.md)
- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
- [SensorSelection](../msg_docs/SensorSelection.md)
- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
- [ActuatorTest](../msg_docs/ActuatorTest.md)
- [InputRc](../msg_docs/InputRc.md)
- [Ping](../msg_docs/Ping.md)
- [Airspeed](../msg_docs/Airspeed.md)
- [GpioRequest](../msg_docs/GpioRequest.md)
- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
- [OrbTest](../msg_docs/OrbTest.md)
- [RadioStatus](../msg_docs/RadioStatus.md)
- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
- [EscReport](../msg_docs/EscReport.md)
- [NeuralControl](../msg_docs/NeuralControl.md)
- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md)
- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
- [SensorCorrection](../msg_docs/SensorCorrection.md)
- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
- [VehicleRoi](../msg_docs/VehicleRoi.md)
- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
- [HealthReport](../msg_docs/HealthReport.md)
- [DifferentialPressure](../msg_docs/DifferentialPressure.md)
- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md)
- [LedControl](../msg_docs/LedControl.md)
- [RtlStatus](../msg_docs/RtlStatus.md)
- [Rpm](../msg_docs/Rpm.md)
- [QshellReq](../msg_docs/QshellReq.md)
- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md)
- [OrbTest](../msg_docs/OrbTest.md)
- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md)
- [OrbitStatus](../msg_docs/OrbitStatus.md)
- [BatteryInfo](../msg_docs/BatteryInfo.md)
- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md)
- [HeaterStatus](../msg_docs/HeaterStatus.md)
- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md)
- [DeviceInformation](../msg_docs/DeviceInformation.md)
- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md)
- [PowerButtonState](../msg_docs/PowerButtonState.md)
- [SensorAirflow](../msg_docs/SensorAirflow.md)
- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md)
- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md)
- [HealthReport](../msg_docs/HealthReport.md)
- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md)
- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md)
- [AirspeedWind](../msg_docs/AirspeedWind.md)
- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md)
- [VehicleImu](../msg_docs/VehicleImu.md)
- [VehicleStatusV3](../msg_docs/VehicleStatusV3.md)
- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md)
- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md)
- [ActuatorTest](../msg_docs/ActuatorTest.md)
- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md)
- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md)
- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md)
- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md)
- [PwmInput](../msg_docs/PwmInput.md)
- [RcParameterMap](../msg_docs/RcParameterMap.md)
- [VehicleConstraints](../msg_docs/VehicleConstraints.md)
- [SystemPower](../msg_docs/SystemPower.md)
- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md)
- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md)
- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md)
- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md)
- [DebugVect](../msg_docs/DebugVect.md)
- [FollowTarget](../msg_docs/FollowTarget.md)
- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md)
- [TuneControl](../msg_docs/TuneControl.md)
- [PositionSetpoint](../msg_docs/PositionSetpoint.md)
- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md)
- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md)
- [EventV0](../msg_docs/EventV0.md)
- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md)
- [SensorTemp](../msg_docs/SensorTemp.md)
- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md)
- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md)
- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md)
- [LandingGearWheel](../msg_docs/LandingGearWheel.md)
- [SensorsStatus](../msg_docs/SensorsStatus.md)
- [HomePositionV0](../msg_docs/HomePositionV0.md)
- [ParameterUpdate](../msg_docs/ParameterUpdate.md)
- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md)
- [ButtonEvent](../msg_docs/ButtonEvent.md)
- [RaptorInput](../msg_docs/RaptorInput.md)
- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md)
- [GpioConfig](../msg_docs/GpioConfig.md)
- [SensorMag](../msg_docs/SensorMag.md)
- [LogMessage](../msg_docs/LogMessage.md)
- [GeofenceResult](../msg_docs/GeofenceResult.md)
- [LoggerStatus](../msg_docs/LoggerStatus.md)
- [RcChannels](../msg_docs/RcChannels.md)
- [MagWorkerData](../msg_docs/MagWorkerData.md)
- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md)
- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md)
- [GeofenceStatus](../msg_docs/GeofenceStatus.md)
- [UlogStreamAck](../msg_docs/UlogStreamAck.md)
- [Airspeed](../msg_docs/Airspeed.md)
- [ActuatorArmed](../msg_docs/ActuatorArmed.md)
- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md)
- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md)
- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md)
- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md)
- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md)
- [EstimatorBias](../msg_docs/EstimatorBias.md)
- [TecsStatus](../msg_docs/TecsStatus.md)
- [GimbalControls](../msg_docs/GimbalControls.md)
- [Mission](../msg_docs/Mission.md)
- [GainCompression](../msg_docs/GainCompression.md)
- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md)
- [Ping](../msg_docs/Ping.md)
- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md)
- [CellularStatus](../msg_docs/CellularStatus.md)
- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md)
- [EscEepromWrite](../msg_docs/EscEepromWrite.md)
- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md)
- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md)
- [OrbTestMedium](../msg_docs/OrbTestMedium.md)
- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md)
- [EscReport](../msg_docs/EscReport.md)
- [SensorGyro](../msg_docs/SensorGyro.md)
- [DatamanRequest](../msg_docs/DatamanRequest.md)
- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md)
- [GeneratorStatus](../msg_docs/GeneratorStatus.md)
- [SensorAccel](../msg_docs/SensorAccel.md)
- [RangingBeacon](../msg_docs/RangingBeacon.md)
- [RegisterExtComponentRequestV1](../msg_docs/RegisterExtComponentRequestV1.md)
- [GpsDump](../msg_docs/GpsDump.md)
- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md)
- [Vtx](../msg_docs/Vtx.md)
- [VehicleStatusV2](../msg_docs/VehicleStatusV2.md)
- [InputRc](../msg_docs/InputRc.md)
- [DebugKeyValue](../msg_docs/DebugKeyValue.md)
- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md)
- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md)
- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md)
- [GpsInjectData](../msg_docs/GpsInjectData.md)
- [TaskStackInfo](../msg_docs/TaskStackInfo.md)
- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md)
- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md)
- [VehicleAirData](../msg_docs/VehicleAirData.md)
- [PpsCapture](../msg_docs/PpsCapture.md)
- [CameraStatus](../msg_docs/CameraStatus.md)
- [SensorGyroFft](../msg_docs/SensorGyroFft.md)
- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md)
- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md)
- [PowerMonitor](../msg_docs/PowerMonitor.md)
- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md)
- [EstimatorStates](../msg_docs/EstimatorStates.md)
- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md)
- [SensorUwb](../msg_docs/SensorUwb.md)
- [EscStatus](../msg_docs/EscStatus.md)
- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md)
- [TakeoffStatus](../msg_docs/TakeoffStatus.md)
- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md)
- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md)
- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md)
- [SatelliteInfo](../msg_docs/SatelliteInfo.md)
- [MavlinkLog](../msg_docs/MavlinkLog.md)
- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md)
- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md)
- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md)
- [CameraTrigger](../msg_docs/CameraTrigger.md)
- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md)
- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md)
- [EstimatorFusionControl](../msg_docs/EstimatorFusionControl.md)
- [ActionRequest](../msg_docs/ActionRequest.md)
- [DebugArray](../msg_docs/DebugArray.md)
- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md)
- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md)
- [DebugValue](../msg_docs/DebugValue.md)
- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md)
- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md)
- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md)
- [FuelTankStatus](../msg_docs/FuelTankStatus.md)
- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md)
- [EscEepromRead](../msg_docs/EscEepromRead.md)
- [UlogStream](../msg_docs/UlogStream.md)
- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md)
- [CameraCapture](../msg_docs/CameraCapture.md)
- [NavigatorStatus](../msg_docs/NavigatorStatus.md)
- [RoverRateStatus](../msg_docs/RoverRateStatus.md)
- [DatamanResponse](../msg_docs/DatamanResponse.md)
- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md)
- [WheelEncoders](../msg_docs/WheelEncoders.md)
- [FigureEightStatus](../msg_docs/FigureEightStatus.md)
- [GpioOut](../msg_docs/GpioOut.md)
- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md)
- [SensorHygrometer](../msg_docs/SensorHygrometer.md)
- [RaptorStatus](../msg_docs/RaptorStatus.md)
- [Px4ioStatus](../msg_docs/Px4ioStatus.md)
- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md)
- [RadioStatus](../msg_docs/RadioStatus.md)
- [SensorBaro](../msg_docs/SensorBaro.md)
- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md)
- [SensorCorrection](../msg_docs/SensorCorrection.md)
- [Gripper](../msg_docs/Gripper.md)
- [LandingTargetPose](../msg_docs/LandingTargetPose.md)
- [EstimatorStatus](../msg_docs/EstimatorStatus.md)
- [GpioRequest](../msg_docs/GpioRequest.md)
- [QshellRetval](../msg_docs/QshellRetval.md)
- [OrbTestLarge](../msg_docs/OrbTestLarge.md)
- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md)
- [VehicleRoi](../msg_docs/VehicleRoi.md)
- [GpioIn](../msg_docs/GpioIn.md)
- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md)
- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md)
- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md)
- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md)
- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md)
- [Cpuload](../msg_docs/Cpuload.md)
- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md)
- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md)
- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md)
- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md)
- [VelocityLimits](../msg_docs/VelocityLimits.md)
- [AdcReport](../msg_docs/AdcReport.md)
- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md)
- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md)
- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md)
:::
+11 -3
View File
@@ -32,6 +32,11 @@ The [eProsima micro XRCE-DDS _agent_](https://github.com/eProsima/Micro-XRCE-DDS
Код, який хоче підписатися/публікувати до PX4, залежить від коду на стороні клієнта; йому потрібні визначення повідомлень uORB, які збігаються з тими, що були використані для створення клієнта PX4 uXRCE-DDS, щоб він міг інтерпретувати повідомлення.
- For _versioned_ PX4 messages, the [PX4 ROS 2 Message Transition Node](../ros2/px4_ros2_msg_translation_node.md) handles compatibility automatically.
This node acts as an agent-side translator, allowing your code to interact with PX4 without requiring strict, manual message synchronization.
- For unversioned messages, code that needs to publish to PX4 maintains a direct dependency on client-side definitions.
In these cases, you must ensure your local uORB message definitions exactly match those used to create the PX4 uXRCE-DDS client, so that the messages can be correctly interpreted.
## Генерація коду
The PX4 [uxrce_dds_client](../modules/modules_system.md#uxrce-dds-client) is generated at build time and included in PX4 firmware by default.
@@ -397,11 +402,14 @@ Note that all the messages from PX4 source code are present in the repository, b
- If you're using a main or release version of PX4 you can get the message definitions by cloning the interface package [PX4/px4_msgs](https://github.com/PX4/px4_msgs) into your workspace.
- Якщо ви створюєте або змінюєте повідомлення uORB, вам потрібно вручну оновити повідомлення у вашому робочому просторі з вихідного дерева PX4.
Generally this means that you would update [dds_topics.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml), clone the interface package, and then manually synchronize it by copying the new/modified message definitions from [PX4-Autopilot/msg](https://github.com/PX4/PX4-Autopilot/tree/main/msg) to its `msg` folders.
Assuming that PX4-Autopilot is in your home directory `~`, while `px4_msgs` is in `~/px4_ros_com/src/`, then the command might be:
Assuming that PX4-Autopilot is in your home directory `~`, while `px4_msgs` is in `~/ros2_px4_ws/src/`, then the command might be:
```sh
rm ~/px4_ros_com/src/px4_msgs/msg/*.msg
cp ~/PX4-Autopilot/msg/*.msg ~/px4_ros_com/src/px4_msgs/msg/
rm ~/ros2_px4_ws/src/px4_msgs/msg/*.msg
rm ~/ros2_px4_ws/src/px4_msgs/srv/*.srv
cp ~/PX4-Autopilot/msg/*.msg ~/ros2_px4_ws/src/px4_msgs/msg/
cp ~/PX4-Autopilot/msg/versioned/*.msg ~/ros2_px4_ws/src/px4_msgs/msg/
cp ~/PX4-Autopilot/srv/*.msg ~/ros2_px4_ws/src/px4_msgs/srv/
```
::: info
+13
View File
@@ -342,6 +342,19 @@ mft_cfg <command> [arguments...]
<hwver>, id == revision for <hwrev> )
```
## mklittlefs
Source: [systemcmds/mklittlefs](https://github.com/PX4/PX4-Autopilot/tree/main/src/systemcmds/mklittlefs)
Format a device with the littlefs filesystem.
### Usage {#mklittlefs_usage}
```
mklittlefs [arguments...]
<device> <mountpoint> Device and mount point (e.g. /dev/mtd0 /fs/flash)
```
## mtd
Source: [systemcmds/mtd](https://github.com/PX4/PX4-Autopilot/tree/main/src/systemcmds/mtd)
+4 -2
View File
@@ -1064,7 +1064,7 @@ px4io <command> [arguments...]
## rgbled
Source: [drivers/lights/rgbled](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled)
Source: [drivers/lights/rgbled_ncp5623c](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/lights/rgbled_ncp5623c)
### Usage {#rgbled_usage}
@@ -1079,7 +1079,9 @@ rgbled <command> [arguments...]
[-f <val>] bus frequency in kHz
[-q] quiet startup (no message if no device found)
[-a <val>] I2C address
default: 85
default: 57
[-o <val>] RGB PWM Assignment
default: 123
stop
+2
View File
@@ -59,6 +59,7 @@ The flag comments are used as label for the failsafe state machine simulation
| position_accuracy_low | `bool` | | | Position estimate has dropped below threshold, but is currently still declared valid |
| navigator_failure | `bool` | | | Navigator failed to execute a mode |
| parachute_unhealthy | `bool` | | | Parachute system missing or unhealthy |
| remote_id_unhealthy | `bool` | | | Remote ID (Open Drone ID) system missing or unhealthy |
## Source Message
@@ -130,6 +131,7 @@ bool flight_time_limit_exceeded # Maximum flight time exceeded
bool position_accuracy_low # Position estimate has dropped below threshold, but is currently still declared valid
bool navigator_failure # Navigator failed to execute a mode
bool parachute_unhealthy # Parachute system missing or unhealthy
bool remote_id_unhealthy # Remote ID (Open Drone ID) system missing or unhealthy
```
:::
+2 -1
View File
@@ -2,8 +2,9 @@
This section contains topics about peripheral hardware that can be connected to a flight controller (not including [cameras and other payloads](../payloads/index.md)).
The peripherals are not _required_ for flight, but may support it by providing improved safety, or allowing the vehicle to meet regulartory requirements:
The peripherals are not _required_ for flight, but may support it by providing improved safety, or allowing the vehicle to meet regulatory requirements:
- [ADSB/FLARM/UTM (Traffic Avoidance)](../peripherals/adsb_flarm.md)
- [On-Screen Display (OSD)](../peripherals/osd.md)
- [Parachute](../peripherals/parachute.md)
- [Remote ID](../peripherals/remote_id.md)
+1 -1
View File
@@ -1,6 +1,6 @@
# MAVLink Peripherals (GCS/OSD/Gimbal/Camera/Companion)
Ground Control Stations (GCS), On-Screen Displays (OSD), MAVLink Cameras & Gimbals, Remote IDs, Companion Computers, ADS-B receivers, and other MAVLink peripherals interact with PX4 using separate MAVLink streams, sent via different serial ports.
Ground Control Stations (GCS), [MAVLink On-Screen Displays (OSD)](../peripherals/osd.md#mavlink-osd), MAVLink [Cameras](../camera/mavlink_v2_camera.md) and [Gimbals](../advanced/gimbal_control.md), [Remote IDs](../peripherals/remote_id.md), Companion Computers, [ADS-B receivers](../peripherals/adsb_flarm.md), and other MAVLink peripherals interact with PX4 using separate MAVLink streams, sent via different serial ports.
In order to configure that a particular serial port is used for MAVLink traffic with a particular peripheral, we use [Serial Port Configuration](../peripherals/serial_configuration.md), assigning one of the abstract "MAVLink instance" configuration parameters to the desired port.
Потім ми встановлюємо інші властивості каналу MAVLink, використовуючи параметри, пов'язані з обраним екземпляром MAVLink, щоб вони відповідали вимогам нашого конкретного периферійного пристрою.
+103
View File
@@ -0,0 +1,103 @@
# On-Screen Display (OSD)
An **On-Screen Display (OSD)** overlays flight telemetry — battery, altitude, GPS, RSSI, attitude, etc. — onto a pilot's video feed.
OSDs are commonly used in FPV and long-range flying so the pilot can see live flight data without looking away from the video.
PX4 supports three distinct OSD mechanisms, each targeting a different class of video system:
| Mechanism | Use case | Transport | Runs on FC? |
| --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | -------------------------------------------------------------- |
| [MSP OSD](#msp-osd) | Digital FPV air units and video goggles that speak Betaflight MSP (e.g. DJI O3/O4, Walksnail, HDZero, Caddx Vista) | Serial, MSPv1 | Yes — [`msp_osd`](../modules/modules_driver.md#msp-osd) driver |
| [ATXXXX Analog OSD](#atxxxx-analog-osd) | Legacy analog video with an on-board MAX7456/ATXXXX overlay chip (e.g. OmnibusF4SD) | SPI to on-board chip | Yes — [`atxxxx`](../modules/modules_driver.md#atxxxx) driver |
| [MAVLink OSD](#mavlink-osd) | MAVLink-aware ground stations and displays that render their own OSD from telemetry (e.g. Yaapu on EdgeTX/OpenTX, Skydroid, mLRS HUDs) | Serial, MAVLink | No — streams MAVLink; the display renders the OSD |
Which one you use is determined by your video hardware, not by PX4 preference.
If you're unsure, start with your video system's documentation and match the OSD mechanism it expects.
## MSP OSD
**MSP (MultiWii Serial Protocol) OSD** is the mechanism used by digital FPV systems (DJI, Walksnail, HDZero) and by many digital goggles/air units to render telemetry over the pilot's video feed.
PX4 implements the subset of MSP used for OSD telemetry, matching what Betaflight and INAV send.
The [`msp_osd`](../modules/modules_driver.md#msp-osd) driver converts uORB topics (battery, GPS, attitude, etc.) to MSP packets and sends them out a serial port at 115200 baud.
### Supported displays
PX4 currently sends a subset of MSP messages.
Reliably-working display items include:
- Craft name and flight mode / arming state
- Battery voltage, current draw, mAh consumed, average cell voltage
- GPS latitude, longitude, satellite count, ground speed
- Home distance and direction
- Altitude (from GNSS / baro)
- RSSI
- Crosshairs toggle
Some items in [`OSD_SYMBOLS`](../advanced_config/parameter_reference.md#OSD_SYMBOLS) are reserved but not yet implemented — see the parameter's `(unused)` bit labels.
For feature-completeness work, see the tracking issues on GitHub.
### Налаштування обладнання
1. Connect the digital air unit's MSP / telemetry input to a free UART on the flight controller (TX → RX, RX → TX, GND → GND).
2. Power the air unit from its own BEC or a VTX power pad — most air units expect 5 V or battery voltage, not autopilot 5 V.
3. Note which PX4 serial device the UART maps to on your board (e.g. `TELEM2``/dev/ttyS2`).
See [Serial Port Mapping](../hardware/serial_port_mapping.md).
### Firmware requirements
The `msp_osd` driver is included in the default build for most modern Pixhawk and FPV-oriented boards (e.g. `px4_fmu-v5x`, `px4_fmu-v6x`, `ark_fpv`, `cuav_7-nano`, `micoair_h743*`).
If your board does not include it by default, enable it via [board config](../hardware/porting_guide_config.md#px4-menuconfig-setup):
```sh
make <board>_default boardconfig
# drivers → OSD → msp_osd
```
Then rebuild and flash.
### PX4 configuration
1. Assign the selected serial port to MSP OSD with [`MSP_OSD_CONFIG`](../advanced_config/parameter_reference.md#MSP_OSD_CONFIG).
2. Set the matching `SER_<PORT>_BAUD` to `115200`.
3. Reboot.
4. Tune the display via the [`OSD_*` parameters](../advanced_config/parameter_reference.md#osd):
- [`OSD_SYMBOLS`](../advanced_config/parameter_reference.md#OSD_SYMBOLS) — bitmask selecting which items appear.
- [`OSD_CH_HEIGHT`](../advanced_config/parameter_reference.md#OSD_CH_HEIGHT) — vertical position of the crosshairs.
- [`OSD_LOG_LEVEL`](../advanced_config/parameter_reference.md#OSD_LOG_LEVEL) — minimum severity for on-screen warnings.
- [`OSD_SCROLL_RATE`](../advanced_config/parameter_reference.md#OSD_SCROLL_RATE) / [`OSD_DWELL_TIME`](../advanced_config/parameter_reference.md#OSD_DWELL_TIME) — scrolling of long messages.
- [`OSD_RC_STICK`](../advanced_config/parameter_reference.md#OSD_RC_STICK) — forward RC sticks to the VTX when disarmed, so you can navigate the VTX menu.
### Worked examples
- [Reptile Dragon 2 > msp_osd Module](../frames_plane/reptile_dragon_2.md#msp-osd-module) — end-to-end wiring and configuration for a Caddx Vista build.
- [Turbo Timber Evolution](../frames_plane/turbo_timber_evolution.md) — references the same setup pattern.
## MAVLink OSD
Some OSDs render their own overlay directly from the MAVLink telemetry stream — the flight controller simply streams MAVLink at a rate the display can parse.
PX4 exposes this via a dedicated MAVLink stream profile.
To use a MAVLink OSD:
1. Choose an unused MAVLink instance ([`MAV_X_CONFIG`](../peripherals/mavlink_peripherals.md#default_ports)) and assign it to the serial port connected to the display.
2. Configure the mode of the selected MAVLink instance with [`MAV_X_MODE`](./mavlink_peripherals.md#MAV_X_MODE) by setting it to **`OSD`**.
The `OSD` mode uses a built-in rate table tuned for low-bandwidth OSD consumption.
3. Set the matching `SER_<PORT>_BAUD` to the baud rate the display expects.
The stream content is fixed (defined in `src/modules/mavlink/mavlink_main.cpp`) and cannot be customised from parameters.
See [MAVLink Peripherals (GCS/OSD/Gimbal/Camera/Companion)](./mavlink_peripherals.md) for the full MAVLink-side configuration.
## ATXXXX Analog OSD
The [`atxxxx`](../modules/modules_driver.md#atxxxx) driver targets boards with an on-board MAX7456 / ATXXXX chip that overlays characters onto an analog video stream (PAL or NTSC).
This was common on older F4-class FCs such as OmnibusF4SD and is largely superseded by digital systems.
No external wiring is required on boards that include the chip; to enable it, set [`OSD_ATXXXX_CFG`](../advanced_config/parameter_reference.md#OSD_ATXXXX_CFG) to `1` (NTSC) or `2` (PAL) and reboot.
## Дивись також
- [Parameter Reference > OSD](../advanced_config/parameter_reference.md#osd) — all OSD parameters.
- [MAVLink Peripherals (GCS/OSD/Gimbal/Camera/Companion)](./mavlink_peripherals.md) — MAVLink serial configuration.
- [Serial Port Configuration](./serial_configuration.md) — assigning modules to UARTs.
- [`msp_osd` module reference](../modules/modules_driver.md#msp-osd) — CLI usage and source.
+1
View File
@@ -44,6 +44,7 @@ For more information see [Flight Termination Configuration](../advanced_config/f
- Set [Safety](../config/safety.md) action to _Flight termination_ for checks where you want the parachute to trigger.
- Set [Failure Detector](../config/safety.md#failure-detector) pitch angles, roll angles and time triggers for crash/flip detection, and disable the failure/IMU timeout circuit breaker (i.e. set [CBRK_FLIGHTTERM=0](../advanced_config/parameter_reference.md#CBRK_FLIGHTTERM)).
- <Badge type="tip" text="PX4 v1.18" /> Set [FD_ALT_LOSS](../advanced_config/parameter_reference.md#FD_ALT_LOSS) to enable flight termination if a rotary-wing vehicle loses too much altitude below its setpoint (see [Altitude Loss Trigger](../config/safety.md#altitude-loss-trigger)).
:::info
You can also configure an [external Automatic Trigger System (ATS)](../config/safety.md#external-automatic-trigger-system-ats) for failure detection.
+5 -6
View File
@@ -144,13 +144,12 @@ The [CAN Remote ID Not Working](../peripherals/remote_id.md#can-remote-id-not-wo
Немає потреби явно увімкнювати Віддалений ідентифікатор (підтримувані повідомлення про Віддалений ідентифікатор транслюються за замовчуванням або повинні бути запитані в поточній реалізації, навіть якщо жоден віддалений ідентифікатор не підключений).
### Запобігання Зброєнню на підставі Віддаленого Ідентифікатора
### Remote ID Failsafe and Arming Check
To only allow arming when a Remote ID is ready, [set](../advanced_config/parameters.md#conditional-parameters) the parameter [COM_ARM_ODID](#COM_ARM_ODID) to `2` (it is disabled by default).
<Badge type="tip" text="PX4 v1.18" />
| Параметр | Опис |
| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <a id="COM_ARM_ODID"></a>[COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) | Увімкніть систему виявлення та перевірки стану ідентифікатора дрона. `0`: Disable (default), `1`: Warn if Remote ID not detected but still allow arming, `2`: Only allow arming if Remote ID is present. |
The [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) parameter configures both the arming check and the in-flight failsafe action when the Remote ID system is missing or unhealthy.
For more information see [Remote ID Failsafe](http://localhost:5173/px4_user_guide/en/config/safety#remote-id-failsafe) in _Safety Configuration_.
## Тестування мовлення модуля
@@ -174,7 +173,7 @@ The following message can be streamed on request (using [MAV_CMD_SET_MESSAGE_INT
- [OPEN_DRONE_ID_BASIC_ID](https://mavlink.io/en/messages/common.html#OPEN_DRONE_ID_BASIC_ID) - UAV identity information (essentially a serial number)
- PX4 v1.14 specifies a serial number ([MAV_ODID_ID_TYPE_SERIAL_NUMBER](https://mavlink.io/en/messages/common.html#MAV_ODID_ID_TYPE_SERIAL_NUMBER)) but does not use the required format (ANSI/CTA-2063 format).
PX4 prevents arming based on Remote ID health if parameter [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) is set to `2`.
PX4 can prevent arming and/or trigger an in-flight failsafe based on Remote ID health via the [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) parameter.
The UAV will then require `HEARTBEAT` messages from the Remote ID as a precondition for arming the UAV.
You can also set the parameter to `1` to warn but still allow arming when Remote ID `HEARTBEAT` messages are not detected.
+13 -1
View File
@@ -22,7 +22,8 @@ Update these notes with features that are going to be in `main` (PX4 v1.18 or la
## Прочитайте перед оновленням
- TBD …
- Log rotation is now enabled by default. Previously, a single log file grew for the entire flight and old logs were only deleted at boot once free space fell below a fixed 300 MB floor. The logger now caps each log file at [SDLOG_MAX_SIZE](../advanced_config/parameter_reference.md#SDLOG_MAX_SIZE) (new parameter, default `1024` MB) and keeps a configurable percentage of the disk free via [SDLOG_ROTATE](../advanced_config/parameter_reference.md#SDLOG_ROTATE) (new parameter, default `90`, so at least 10% free). Cleanup runs at log start rather than boot, so logs can still be downloaded via FTP before they are deleted. See [Log Cleanup](../dev_log/logging.md#log-cleanup) for details.
- `SDLOG_DIRS_MAX` behaviour changed: it is now an orthogonal directory-count cap that runs on top of the new space-based cleanup, and the default is `0` (disabled). Previously it enforced a fixed ~300 MB free-space floor even when set to `0`. If you relied on that implicit floor, set [SDLOG_ROTATE](../advanced_config/parameter_reference.md#SDLOG_ROTATE) instead.
Please continue reading for [upgrade instructions](#upgrade-guide).
@@ -40,6 +41,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
### Загальні
- [Remote ID (Open Drone ID) in-flight failsafe](../peripherals/remote_id.md): extended [COM_ARM_ODID](../advanced_config/parameter_reference.md#COM_ARM_ODID) to also trigger a configurable failsafe action (Return, Land, or Terminate) if the Remote ID heartbeat is lost while airborne. Users previously on `COM_ARM_ODID=2` retain the same arming behaviour; set to `3` or higher to enable the in-flight action. ([PX4-Autopilot#27029](https://github.com/PX4/PX4-Autopilot/pull/27029))
- [QGroundControl Bootloader Update](../advanced_config/bootloader_update.md#qgc-bootloader-update-sys-bl-update) via the [SYS_BL_UPDATE](../advanced_config/parameter_reference.md#SYS_BL_UPDATE) parameter has been re-enabled after being broken for a number of releases. ([PX4-Autopilot#25032: build: romf: fix generation of rc.board_bootloader_upgrade](https://github.com/PX4/PX4-Autopilot/pull/25032)).
- [Feature: Allow prioritization of manual control inputs based on their instance number in ascending or descending order](../config/manual_control.md#px4-configuration). ([PX4-Autopilot#25602: Ascending and descending manual control input priorities](https://github.com/PX4/PX4-Autopilot/pull/25602)).
@@ -48,6 +50,10 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
- Added new flight mode(s): [Altitude Cruise (MC)](../flight_modes_mc/altitude_cruise.md), Altitude Cruise (FW).
For fixed-wing the mode behaves the same as Altitude mode but you can disable the manual control loss failsafe. ([PX4-Autopilot#25435: Add new flight mode: Altitude Cruise](https://github.com/PX4/PX4-Autopilot/pull/25435)).
### Безпека
- Rotary-wing vehicles now support uncommanded altitude loss detection: if the vehicle descends more than [FD_ALT_LOSS](../advanced_config/parameter_reference.md#FD_ALT_LOSS) meters below its setpoint in altitude-controlled flight, flight termination (and parachute deployment) is triggered. See [Altitude Loss Trigger](../config/safety.md#altitude-loss-trigger). ([PX4-Autopilot#26837](https://github.com/PX4/PX4-Autopilot/pull/26837))
### Оцінки
- Added [EKF2_POS_LOCK](../advanced_config/parameter_reference.md#EKF2_POS_LOCK) to force constant position fusion while landed, useful for vehicles relying on dead-reckoning sensors (airspeed, optical flow) that provide no aiding on the ground.
@@ -73,6 +79,12 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
### Debug & Logging
- [Asset Tracking](../debug/asset_tracking.md): Automatic tracking and logging of external device information including vendor name, firmware and hardware version, serial numbers. Currently supports DroneCAN devices. ([PX4-Autopilot#25617](https://github.com/PX4/PX4-Autopilot/pull/25617))
- Logger: support for small flash storage (e.g. 128 MB W25N NAND on kakuteh7mini, kakuteh7v2, airbrainh743). Logs can now be written directly to an internal littlefs volume instead of requiring an SD card.
- Logger: reworked log rotation and cleanup. Log rotation is now on by default, and cleanup runs at log start rather than boot so logs can be downloaded via FTP before being deleted.
- New [SDLOG_MAX_SIZE](../advanced_config/parameter_reference.md#SDLOG_MAX_SIZE) (default `1024` MB) caps the size of a single log file; once reached, the logger closes the current file and starts a new one.
- New [SDLOG_ROTATE](../advanced_config/parameter_reference.md#SDLOG_ROTATE) (default `90`) sets the maximum disk usage percentage. Cleanup guarantees `(100 - SDLOG_ROTATE)%` of the disk stays free at all times, even while writing a new log file. Set `0` to disable space-based cleanup, `100` to allow filling the disk completely.
- `SDLOG_DIRS_MAX` is now an orthogonal cap on the number of log directories (default `0` = disabled), on top of the space-based cleanup driven by `SDLOG_ROTATE` and `SDLOG_MAX_SIZE`. SITL defaults to `7`.
- New `mklittlefs` systemcmd for reformatting a littlefs volume from the NSH console, analogous to `mkfatfs` for FAT filesystems.
### Ethernet
+11 -6
View File
@@ -16,17 +16,21 @@ It can be used, for example, for [computer vision](../computer_vision/index.md)
ROS 2 enables a very deep integration with PX4, to the extent that you can create flight modes in ROS 2 that are indistinguisable from internal PX4 modes, and directly read from and write to internal uORB topics at high rate.
It is recommended (in particular) for control and communication from a companion computer where low latency is important, when leveraging existing libraries from Linux, or when writing new high level flight modes.
Communication between ROS 2 and PX4 uses middleware that implements the [XRCE-DDS protocol](../middleware/uxrce_dds.md).
This middleware exposes PX4 [uORB messages](../msg_docs/index.md) as ROS 2 messages and types, effectively allowing direct access to PX4 from ROS 2 workflows and nodes.
Проміжна програма використовує визначення повідомлень uORB для генерації коду для серіалізації та десеріалізації заголовків повідомлень PX4.
Communication between ROS 2 and PX4 can leverage two independent middlewares:
- [XRCE-DDS protocol](../middleware/uxrce_dds.md) — Original middleware. More tested and included by default in most PX4 builds.
- [Zenoh protocol](../middleware/zenoh.md) — Must be manually added and enabled to most PX4 builds.
The middlewares expose PX4 [uORB messages](../msg_docs/index.md) as ROS 2 messages and types, effectively allowing direct access to PX4 from ROS 2 workflows and nodes.
The middlewares use uORB message definitions to generate code to serialise and deserialise the messages heading in and out of PX4.
Ці ж визначення повідомлень використовуються в програмах ROS 2, щоб дозволити інтерпретувати повідомлення.
:::info
ROS 2 can also connect with PX4 using [MAVROS](https://github.com/mavlink/mavros/tree/ros2/mavros) instead of XRCE-DDS.
ROS 2 can also connect with PX4 using [MAVROS](https://github.com/mavlink/mavros/tree/ros2/mavros) instead of XRCE-DDS / Zenoh.
This option is supported by the MAVROS project (it is not documented here).
:::
To use the [ROS 2](../ros2/user_guide.md) over XRCE-DDS effectively, you must (at time of writing) have a reasonable understanding of the PX4 internal architecture and conventions, which differ from those used by ROS.
To use the [ROS 2](../ros2/user_guide.md) over XRCE-DDS / Zenoh effectively, you must (at time of writing) have a reasonable understanding of the PX4 internal architecture and conventions, which differ from those used by ROS.
У найближчому майбутньому ми плануємо надати ROS 2 API до абстрактних конвенцій PX4, разом із прикладами, що демонструють їх використання.
## Topics
@@ -42,4 +46,5 @@ To use the [ROS 2](../ros2/user_guide.md) over XRCE-DDS effectively, you must (a
## Подальша інформація
- [XRCE-DDS (PX4-ROS 2/DDS Bridge)](../middleware/uxrce_dds.md): PX4 middleware for connecting to ROS 2.
- [XRCE-DDS (PX4-ROS 2/DDS Bridge)](../middleware/uxrce_dds.md): PX4 middleware leveranging micro XRCE-DDS for connecting to ROS 2.
- [Zenoh (PX4 ROS 2)](../middleware/zenoh.md): PX4 middleware leveraging Zenoh pico for connecting to ROS 2.
+61
View File
@@ -0,0 +1,61 @@
# Hawkeye Visualizer
[Hawkeye](https://px4.github.io/Hawkeye/) is a real-time 3D flight _visualizer_ for PX4.
Hawkeye is the natural pair for [SIH](../sim_sih/index.md) — SIH runs the physics of an aircraft simulation and outputs MAVLink [HIL_STATE_QUATERNION](https://mavlink.io/en/messages/common.html#HIL_STATE_QUATERNION) messages, Hawkeye uses these to show you what's happening.
Hawkeye has zero runtime dependencies, supports up to 16 vehicles simultaneously, and can replay PX4 ULog (`.ulg`) flight logs with transport controls, markers, and multi-drone correlation analysis.
## Встановлення
### macOS (Homebrew)
```sh
brew tap PX4/px4
brew install PX4/px4/hawkeye
```
### Linux (Debian/Ubuntu)
Download the `.deb` from the [Hawkeye releases page](https://github.com/PX4/Hawkeye/releases/latest):
```sh
sudo dpkg -i hawkeye-*.deb
```
### Windows and source builds
For Ubuntu 24.04 or later in WSL2 you can install the packages in the same way:
```sh
sudo dpkg -i hawkeye-*.deb
```
For other versions of Ubuntu (or native Windows builds) you may need to [Build from source](https://px4.github.io/Hawkeye/developer/build) (Hawkeye docs).
## Usage with SIH
Start PX4 SIH, then launch Hawkeye in a separate terminal:
```sh
# Terminal 1
make px4_sitl sihsim_quadx
# Terminal 2
hawkeye
```
Hawkeye listens on UDP port 19410 — the same port SIH sends [HIL_STATE_QUATERNION](https://mavlink.io/en/messages/common.html#HIL_STATE_QUATERNION) on — so no configuration is needed.
The vehicle appears in the Hawkeye window as soon as SIH starts streaming.
For fixed-wing or tailsitter simulation, Hawkeye auto-detects the vehicle type from MAVLink `HEARTBEAT` and loads the matching 3D model.
## Full documentation
Complete documentation — including multi-vehicle SITL, ULog replay, HUD modes, camera controls, and correlation analysis — lives at **[px4.github.io/Hawkeye](https://px4.github.io/Hawkeye/)**.
- [First SITL run](https://px4.github.io/Hawkeye/first-sitl) — the shortest path from install to seeing a vehicle move
- [Multi-Drone Replay](https://px4.github.io/Hawkeye/multi_drone) — compare multiple flights with deconfliction and correlation
- [Live SITL Integration](https://px4.github.io/Hawkeye/sitl) — single-vehicle and multi-instance swarm workflows
- [Command-Line Reference](https://px4.github.io/Hawkeye/cli) — every CLI flag with examples
- [Source code](https://github.com/PX4/Hawkeye)
+19 -18
View File
@@ -79,27 +79,28 @@ The `px4_sitl` target will work, but will also build Gazebo libraries.
### Visualization (Optional) {#sitl-visualization}
SIH is intentionally headless by default.
If you need a visual aid to see what the vehicle is doing you can use QGroundControl to track path over ground, and/or jMAVSim as a 3D viewer.
If you need a visual aid to see what the vehicle is doing you can use QGroundControl to track path over ground, and/or [Hawkeye](../sim_hawkeye/index.md) as a 3D viewer.
#### QGroundControl
QGC auto-connects on UDP port 14550. Open QGC while SIH is running and the vehicle appears on the map view with attitude, position, and telemetry.
#### jMAVSim (3D Display-Only)
#### Hawkeye (3D Visualizer)
jMAVSim can render a 3D view of the vehicle using MAVLink position data. No physics are simulated in jMAVSim — it is display-only.
[Hawkeye](../sim_hawkeye/index.md) renders a real-time 3D view of the vehicle using MAVLink position data.
No physics are simulated in Hawkeye — it is a visualizer only.
In a separate terminal, run:
```sh
./Tools/simulation/jmavsim/jmavsim_run.sh -p 19410 -u -q -o
hawkeye
```
Flags:
Hawkeye connects on UDP port 19410 by default (the same port SIH sends `HIL_STATE_QUATERNION` on).
It then auto-detects the vehicle type from the MAVLink `HEARTBEAT` and loads the matching 3D model.
- `-a` for airplane model
- `-t` for tailsitter model
- `-o` enables display-only mode.
See [jMAVSim Display-Only Mode](../sim_jmavsim/index.md#display-only-mode) for details.
The [Hawkeye](../sim_hawkeye/index.md) overview page explains how to install the software.
See the [Hawkeye docs](https://px4.github.io/Hawkeye/) for other features, such as ULog replay, and multi-vehicle visualization.
### Environment Configuration
@@ -153,14 +154,14 @@ See [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](../middleware/uxrce_dds.md) for full setu
PX4 SITL opens the following UDP ports (all instance-aware, offset by instance number N).
| PX4 sends to (remote) | PX4 listens on (local) | Use for | Instance offset |
| ---------------------------------------- | ----------------------------------------- | -------------------------------------------------- | ------------------------------------------------------------ |
| **14550** | 18570 (+N) | QGroundControl, GCS tools | Так |
| **14540** (+N) | 14580 (+N) | MAVSDK, MAVROS, offboard APIs | Yes (capped at 14549 for 10+ instances) |
| **14030** (+N) | 14280 (+N) | Onboard camera/payload | Так |
| **13280** (+N) | 13030 (+N) | Gimbal control | Так |
| **19410** (+N) | 19450 (+N) | jMAVSim display-only (SIH only) | Так |
| **8888** | - | uXRCE-DDS / ROS 2 | No (use DDS namespace for multi-instance) |
| PX4 sends to (remote) | PX4 listens on (local) | Use for | Instance offset |
| ---------------------------------------- | ----------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------ |
| **14550** | 18570 (+N) | QGroundControl, GCS tools | Так |
| **14540** (+N) | 14580 (+N) | MAVSDK, MAVROS, offboard APIs | Yes (capped at 14549 for 10+ instances) |
| **14030** (+N) | 14280 (+N) | Onboard camera/payload | Так |
| **13280** (+N) | 13030 (+N) | Gimbal control | Так |
| **19410** (+N) | 19450 (+N) | Hawkeye visualizer (SIH only) | Так |
| **8888** | - | uXRCE-DDS / ROS 2 | No (use DDS namespace for multi-instance) |
QGC auto-connects on port **14550** by default. MAVSDK connects on **14540**. No manual port configuration needed for single-instance use.