Compare commits

...

11 Commits

Author SHA1 Message Date
Jacob Dahl b6df1c6388 don't change EKF2_MIN_RNG 2025-09-16 09:54:12 -08:00
Jacob Dahl 6fc9720e25 in_air default to true for tests 2025-09-15 12:49:13 -08:00
Jacob Dahl 569849665f ekf2: range fusion: while on the ground the rangefinder quality checks are bypassed and a synthetic measurement is fused using the minimum rangefinder distance. The intention of this logic is to ensure the rangefinder can be fused immediately during takeoff even if it's reporting 0 quality while on the ground. This was not working since the rangefinder _time_bad_quality_us was being updated while on the ground. This results in range fusion being disabled as soon as the in_air flag is set, since the time since the last bad quality value has not exceeded the EKF2_RNG_QLTY_T. This commit moves the logic into the SensorRangeFinder::isQualityOk function where the _time_bad_quality_us is only set once airborne. 2025-09-15 12:29:14 -08:00
Silvan db8a1f11a7 EstimatorCheck: fix reporting of low position accuracy failsafe
Signed-off-by: Silvan <silvan@auterion.com>
2025-09-12 14:16:16 +02:00
jmackay2 8669947bcb Support Gazebo Jetty (#25521)
* Support Gazebo Jetty

* Gazebo jetty cmake spelling fix

---------

Co-authored-by: jmackay2 <jmackay2@gmail.com>
2025-09-11 19:30:27 -08:00
Jacob Dahl 1aad8b6ec9 serial: nuttx: revert tcdrain back to fsync (#25538)
* serial: nuttx: revert tcdrain back to fsync

* serial: do not print error on EAGAIN

---------

Co-authored-by: Alexander Lerach <alexander@auterion.com>
2025-09-11 12:32:34 -08:00
Matthias Grob 7b68c5dbfc parameters: remove parameters_injected.xml and support for it in the build system (#25549)
This was apparently added 10 years ago to store metadata of UAVCAN components within the PX4 binary. The parameters in the xml are mostly early UAVCAN ESC parameters that are presumably out of date and not used. Also it does not scale to maintain metadata for all the possible UAVCAN components and it causes confusion when users read the metadata documentation because these parameters are not available in PX4. That's why I suggest to remove it.
2025-09-11 10:47:45 -08:00
Samuel Toledano b2672910da sbgecom: Implement sbgECom INS driver (#24137)
* Add new INS driver sbgECom

Implement sbgECom messages handling to provide IMU sensors, GNSS and EKF data to the autopilot
Be able to parametrize the serial port, baudrate and the communicating mode
Clone sbgECom library only if sbgecom support is enabled and apply a patch
Be able to send SBG Systems INS settings in several ways when starting sbgecom driver

* Fix sensor airspeed simulator units

* Fix HIGHRES_IMU pressure unit

* Allow HIGHRES_IMU to support 4 IMUs

* sbgECom: Add documentation

* Use submodule instead of fetching sbgECom using CMake

* Remove patch strategy

* Fix dates

* Remove patch file

* Update SBG dev type ID

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>

---------

Co-authored-by: Samuel Toledano <samuel.toledano@sbg-systems.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-09-11 00:37:41 -08:00
SolderSyntax 05394162ce Update dev_env_windows_wsl.md (#25441)
* Update dev_env_windows_wsl.md

Add info about enabling broadcasting or streaming to work with PX4 SITL on WSL and QGC on Windows.

* Update dev_env_windows_wsl.md

Fix links

* Update dev_env_windows_wsl.md

moved troubleshooting section at the bottom of WSL2<>Windows section.

* Move under troubleshooting

---------

Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
2025-09-11 17:55:02 +10:00
Hamish Willee d1da30911e Update metadata and tidy a few docs (#25547)
* Fix up metadata except for uorb graphs

* Additional customization of startup tidy
2025-09-11 16:06:51 +10:00
Holden Ramsey 264b8fe277 Tools: Support Setup for Linux Mint (#25486) 2025-09-10 18:01:37 -08:00
62 changed files with 2497 additions and 567 deletions
+3
View File
@@ -100,3 +100,6 @@
[submodule "src/drivers/ins/microstrain/mip_sdk"]
path = src/drivers/ins/microstrain/mip_sdk
url = https://github.com/PX4/LORD-MicroStrain_mip_sdk.git
[submodule "src/drivers/ins/sbgecom/sbgECom"]
path = src/drivers/ins/sbgecom/sbgECom
url = https://github.com/PX4/sbgECom.git
+16
View File
@@ -54,6 +54,22 @@ if [[ ! -f "${DIR}/${REQUIREMENTS_FILE}" ]]; then
return 1
fi
# Linux Mint compatibility: use upstream Ubuntu values
if [ -r /etc/upstream-release/lsb-release ]; then
. /etc/upstream-release/lsb-release
UBUNTU_CODENAME="${DISTRIB_CODENAME:-${UBUNTU_CODENAME:-}}"
UBUNTU_RELEASE="${DISTRIB_RELEASE:-${UBUNTU_RELEASE:-}}"
lsb_release() {
if [ "$1" = "-cs" ]; then
printf '%s' "$UBUNTU_CODENAME"
elif [ "$1" = "-rs" ]; then
printf '%s' "$UBUNTU_RELEASE"
else
command lsb_release "$@"
fi
}
fi
# check ubuntu version
# otherwise warn and point to docker?
-1
View File
@@ -36,7 +36,6 @@ param set-default EKF2_MULTI_IMU 0
param set-default EKF2_OF_CTRL 1
param set-default EKF2_OF_N_MIN 0.05
param set-default EKF2_RNG_A_HMAX 25
param set-default EKF2_RNG_QLTY_T 0.1
param set-default SENS_FLOW_RATE 150
param set-default SENS_IMU_MODE 1
-3
View File
@@ -71,18 +71,15 @@ add_custom_target(metadata_parameters
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/src/lib/parameters/px_process_params.py
--src-path `find ${PX4_SOURCE_DIR}/src -maxdepth 4 -type d` ${generated_params_dir}
--inject-xml ${PX4_SOURCE_DIR}/src/lib/parameters/parameters_injected.xml
--markdown ${PX4_BINARY_DIR}/docs/parameters.md
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/src/lib/parameters/px_process_params.py
--src-path `find ${PX4_SOURCE_DIR}/src -maxdepth 4 -type d` ${generated_params_dir}
--inject-xml ${PX4_SOURCE_DIR}/src/lib/parameters/parameters_injected.xml
--json ${PX4_BINARY_DIR}/docs/parameters.json
--compress
COMMAND ${PYTHON_EXECUTABLE} ${PX4_SOURCE_DIR}/src/lib/parameters/px_process_params.py
--src-path `find ${PX4_SOURCE_DIR}/src -maxdepth 4 -type d` ${generated_params_dir}
--inject-xml ${PX4_SOURCE_DIR}/src/lib/parameters/parameters_injected.xml
--xml ${PX4_BINARY_DIR}/docs/parameters.xml
COMMENT "Generating full parameter metadata (markdown, xml, and json)"
Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

+4
View File
@@ -282,6 +282,7 @@
- [CubePilot Here+ (Discontined)](gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Inertial Navigation/GNSS)](sensor/inertial_navigation_systems.md)
- [InertialLabs](sensor/inertiallabs.md)
- [sbgECom](sensor/sbgecom.md)
- [VectorNav](sensor/vectornav.md)
- [Optical Flow](sensor/optical_flow.md)
- [ARK Flow](dronecan/ark_flow.md)
@@ -660,6 +661,8 @@
- [RoverPositionSetpoint](msg_docs/RoverPositionSetpoint.md)
- [RoverRateSetpoint](msg_docs/RoverRateSetpoint.md)
- [RoverRateStatus](msg_docs/RoverRateStatus.md)
- [RoverSpeedSetpoint](msg_docs/RoverSpeedSetpoint.md)
- [RoverSpeedStatus](msg_docs/RoverSpeedStatus.md)
- [RoverSteeringSetpoint](msg_docs/RoverSteeringSetpoint.md)
- [RoverThrottleSetpoint](msg_docs/RoverThrottleSetpoint.md)
- [RoverVelocitySetpoint](msg_docs/RoverVelocitySetpoint.md)
@@ -720,6 +723,7 @@
- [YawEstimatorStatus](msg_docs/YawEstimatorStatus.md)
- [AirspeedValidatedV0](msg_docs/AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](msg_docs/ArmingCheckReplyV0.md)
- [ArmingCheckRequestV0](msg_docs/ArmingCheckRequestV0.md)
- [BatteryStatusV0](msg_docs/BatteryStatusV0.md)
- [EventV0](msg_docs/EventV0.md)
- [HomePositionV0](msg_docs/HomePositionV0.md)
+46 -31
View File
@@ -1,10 +1,9 @@
<!-- GENERATED CONTENT: DO NOT EDIT -->
- [Introduction](/index.md)
- [Introduction](/index.md)
- [Basic Concepts](/getting_started/px4_basic_concepts.md)
- [Multicopters](/frames_multicopter/index.md)
- [Features](/features_mc/index.md)
- [Flight Modes](/flight_modes_mc/index.md)
- [Position Mode (MC)](/flight_modes_mc/position.md)
@@ -37,7 +36,7 @@
- [Static Pressure Buildup](/advanced_config/static_pressure_buildup.md)
- [Flying (Basics)](/flying/basic_flying_mc.md)
- [Complete Vehicles](/complete_vehicles_mc/index.md)
- [ModalAI Starling](/complete_vehicles_mc/modalai_starling.md)
- [ModalAI Starling (PX4 Dev Kit)](/complete_vehicles_mc/modalai_starling.md)
- [PX4 Vision Kit](/complete_vehicles_mc/px4_vision_kit.md)
- [MindRacer BNF & RTF](/complete_vehicles_mc/mindracer_BNF_RTF.md)
- [MindRacer 210](/complete_vehicles_mc/mindracer210.md)
@@ -58,7 +57,6 @@
- [DJI F450 (CUAV v5 nano)](/frames_multicopter/dji_f450_cuav_5nano.md)
- [Planes (Fixed-Wing)](/frames_plane/index.md)
- [Assembly](/assembly/assembly_fw.md)
- [Config/Tuning](/config_fw/index.md)
- [Auto-tune](/config/autotune_fw.md)
@@ -86,7 +84,6 @@
- [Wing Wing Z84 (Pixracer)](/frames_plane/wing_wing_z84.md)
- [VTOL](/frames_vtol/index.md)
- [Assembly](/assembly/assembly_vtol.md)
- [VTOL Config/Tuning](/config_vtol/index.md)
- [Auto-tune](/config/autotune_vtol.md)
@@ -111,7 +108,6 @@
- [Complete Vehicles](/complete_vehicles_vtol/index.md)
- [Operations](/config/operations.md)
- [Safety](/config/safety_intro.md)
- [Safety Configuration (Failsafes)](/config/safety.md)
- [Failsafe Simulation](/config/safety_simulation.md)
@@ -132,7 +128,6 @@
- [QGroundControl Flight-Readiness Status](/flying/pre_flight_checks.md)
- [Hardware Selection & Setup](/hardware/drone_parts.md)
- [Flight Controllers (Autopilots)](/flight_controller/index.md)
- [Flight Controller Selection](/getting_started/flight_controller_selection.md)
- [Pixhawk Series](/flight_controller/pixhawk_series.md)
@@ -164,18 +159,18 @@
- [mRo (3DR) Pixhawk Wiring Quickstart](/assembly/quick_start_pixhawk.md)
- [Holybro Pixhawk Mini (FMUv3) - Discontinued](/flight_controller/pixhawk_mini.md)
- [Manufacturer-Supported Autopilots](/flight_controller/autopilot_manufacturer_supported.md)
- [Accton Godwit GA1](/flight_controller/accton-godwit_ga1.md)
- [AirMind MindPX](/flight_controller/mindpx.md)
- [AirMind MindRacer](/flight_controller/mindracer.md)
- [ARK Electronics ARKV6X](/flight_controller/ark_v6x.md)
- [ARK FPV Flight Controller](/flight_controller/ark_fpv.md)
- [ARK Pi6X Flow Flight Controller](/flight_controller/ark_pi6x.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV Nora](/flight_controller/cuav_nora.md)
- [CUAV V5+ (FMUv5)](/flight_controller/cuav_v5_plus.md)
- [Wiring Quickstart](/assembly/quick_start_cuav_v5_plus.md)
- [CUAV V5 nano (FMUv5)](/flight_controller/cuav_v5_nano.md)
- [CUAV V5 nano Wiring Quickstart](/assembly/quick_start_cuav_v5_nano.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [CUAV X25 EVO](/flight_controller/cuav_x25-evo.md)
- [CubePilot Cube Orange+ (CubePilot)](/flight_controller/cubepilot_cube_orangeplus.md)
- [CubePilot Cube Orange (CubePilot)](/flight_controller/cubepilot_cube_orange.md)
- [CubePilot Cube Yellow (CubePilot)](/flight_controller/cubepilot_cube_yellow.md)
@@ -188,11 +183,8 @@
- [Wiring Quickstart](/assembly/quick_start_durandal.md)
- [Holybro Pix32 v5](/flight_controller/holybro_pix32_v5.md)
- [Wiring Quickstart](/assembly/quick_start_holybro_pix32_v5.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [ModalAI VOXL 2](/flight_controller/modalai_voxl_2.md)
- [mRobotics-X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo Control Zero F7)](/flight_controller/mro_control_zero_f7.md)
- [mRo Control Zero F7](/flight_controller/mro_control_zero_f7.md)
- [Sky-Drones AIRLink](/flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](/flight_controller/spracingh7extreme.md)
- [ThePeach FCC-K1](/flight_controller/thepeach_k1.md)
@@ -206,18 +198,20 @@
- [Discontinued Autopilots/Vehicles](/flight_controller/autopilot_discontinued.md)
- [Drotek Dropix (FMUv2)](/flight_controller/dropix.md)
- [Omnibus F4 SD](/flight_controller/omnibus_f4_sd.md)
- [BetaFPV Beta75X 2S Brushless Whoop](/complete_vehicles_mc/betafpv_beta75x.md)
- [Bitcraze Crazyflie 2.0 ](/complete_vehicles_mc/crazyflie2.md)
- [Aerotenna OcPoC-Zynq Mini](/flight_controller/ocpoc_zynq.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV v5](/flight_controller/cuav_v5.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [Holybro Kakute F7](/flight_controller/kakutef7.md)
- [Holybro Pixfalcon](/flight_controller/pixfalcon.md)
- [Holybro pix32 (FMUv2)](/flight_controller/holybro_pix32.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [mRo X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo AUAV-X2](/flight_controller/auav_x2.md)
- [NXP RDDRONE-FMUK66 FMU](/flight_controller/nxp_rddrone_fmuk66.md)
- [3DR Pixhawk 1](/flight_controller/pixhawk.md)
- [Snapdragon Flight](/flight_controller/snapdragon_flight.md)
- [Intel® Aero RTF Drone](/complete_vehicles_mc/intel_aero.md)
- [Pixhawk Autopilot Bus (PAB) & Carriers](/flight_controller/pixhawk_autopilot_bus.md)
- [ARK Electronics Pixhawk Autopilot Bus Carrier](/flight_controller/ark_pab.md)
- [Mounting the Flight Controller](/assembly/mount_and_orient_controller.md)
@@ -241,6 +235,7 @@
- [Compass Power Compensation](/advanced_config/compass_power_compensation.md)
- [Airspeed Sensors](/sensor/airspeed.md)
- [Calibration](/config/airspeed.md)
- [Airspeed Validation](/advanced_config/airspeed_validation.md)
- [TFSlot Airspeed Sensor](/sensor/airspeed_tfslot.md)
- [Barometers](/sensor/barometer.md)
- [Distance Sensors \(Rangefinders\)](/sensor/rangefinders.md)
@@ -272,6 +267,7 @@
- [CUAV C-RTK](/gps_compass/rtk_gps_cuav_c-rtk.md)
- [CUAV C-RTK2 PPK/RTK GNSS](/gps_compass/rtk_gps_cuav_c-rtk2.md)
- [CUAV C-RTK 9Ps](/gps_compass/rtk_gps_cuav_c-rtk-9ps.md)
- [DATAGNSS NANO HRTK GNSS](/gps_compass/rtk_gps_datagnss_nano_hrtk.md)
- [DATAGNSS GEM1305 RTK GNSS](/gps_compass/rtk_gps_gem1305.md)
- [Femtones MINI2 Receiver](/gps_compass/rtk_gps_fem_mini2.md)
- [Freefly RTK GPS](/gps_compass/rtk_gps_freefly.md)
@@ -287,6 +283,7 @@
- [Trimble MB-Two](/gps_compass/rtk_gps_trimble_mb_two.md)
- [CubePilot Here+ (Discontined)](/gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Inertial Navigation/GNSS)](/sensor/inertial_navigation_systems.md)
- [InertialLabs](/sensor/inertiallabs.md)
- [VectorNav](/sensor/vectornav.md)
- [Optical Flow](/sensor/optical_flow.md)
- [ARK Flow](/dronecan/ark_flow.md)
@@ -308,7 +305,6 @@
- [Zubax Telega](/dronecan/zubax_telega.md)
- [PX4 Sapog ESC Firmware](/dronecan/sapog.md)
- [Holybro Kotleta](/dronecan/holybro_kotleta.md)
- [Zubax Orel](/dronecan/zubax_orel.md)
- [Vertiq](/peripherals/vertiq.md)
- [VESC](/peripherals/vesc.md)
- [Radio Control (RC)](/getting_started/rc_transmitter_receiver.md)
@@ -320,6 +316,7 @@
- [Telemetry Radios](/telemetry/index.md)
- [SiK Radio](/telemetry/sik_radio.md)
- [RFD900 (SiK) Telemetry Radio](/telemetry/rfd900_telemetry.md)
- [ThunderFly TFSIK01 Telemetry Radio](/telemetry/tfsik_telemetry.md)
- [HolyBro (SIK) Telemetry Radio](/telemetry/holybro_sik_radio.md)
- [Telemetry Wifi](/telemetry/telemetry_wifi.md)
- [ESP8266 WiFi Module](/telemetry/esp8266_wifi_module.md)
@@ -335,6 +332,7 @@
- [FrSky Telemetry](/peripherals/frsky_telemetry.md)
- [TBS Crossfire (CRSF) Telemetry](/telemetry/crsf_telemetry.md)
- [Satellite Comms (Iridium/RockBlock)](/advanced_features/satcom_roadblock.md)
- [Power Systems](/power_systems/index.md)
- [Battery Estimation Tuning](/config/battery.md)
- [Battery Chemistry Overview](/power_systems/battery_chemistry.md)
@@ -401,7 +399,6 @@
- [Full Parameter Reference](/advanced_config/parameter_reference.md)
- [Other Vehicles](/airframes/index.md)
- [Airships (experimental)](/frames_airship/index.md)
- [Autogyros (experimental)](/frames_autogyro/index.md)
- [ThunderFly Auto-G2 (Holybro pix32)](/frames_autogyro/thunderfly_auto_g2.md)
@@ -409,17 +406,17 @@
- [Helicopter (experimental)](/frames_helicopter/index.md)
- [Helicopter Config/Tuning](/config_heli/index.md)
- [Rovers (experimental)](/frames_rover/index.md)
- [Ackermann Rovers](/frames_rover/ackermann.md)
- [Drive Modes](/flight_modes_rover/ackermann.md)
- [Configuration/Tuning](/config_rover/ackermann.md)
- [Differential Rovers](/frames_rover/differential.md)
- [Drive Modes](/flight_modes_rover/differential.md)
- [Configuration/Tuning](/config_rover/differential.md)
- [Aion Robotics R1](/frames_rover/aion_r1.md)
- [Mecanum Rovers](/frames_rover/mecanum.md)
- [Drive Modes](/flight_modes_rover/mecanum.md)
- [Configuration/Tuning](/config_rover/mecanum.md)
- [(Deprecated) Rover Position Control](/frames_rover/rover_position_control.md)
- [Drive Modes](/flight_modes_rover/index.md)
- [Manual](/flight_modes_rover/manual.md)
- [Auto](/flight_modes_rover/auto.md)
- [Configuration/Tuning](/config_rover/index.md)
- [Basic Setup](/config_rover/basic_setup.md)
- [Rate Tuning](/config_rover/rate_tuning.md)
- [Attitude Tuning](/config_rover/attitude_tuning.md)
- [Velocity Tuning](/config_rover/velocity_tuning.md)
- [Position Tuning](/config_rover/position_tuning.md)
- [Complete Vehicles](/complete_vehicles_rover/index.md)
- [Aion Robotics R1](/complete_vehicles_rover/aion_r1.md)
- [Submarines (experimental)](/frames_sub/index.md)
- [BlueROV2](/frames_sub/bluerov2.md)
- [Airframes Reference](/airframes/airframe_reference.md)
@@ -531,6 +528,7 @@
- [Airspeed](/msg_docs/Airspeed.md)
- [AirspeedWind](/msg_docs/AirspeedWind.md)
- [AutotuneAttitudeControlStatus](/msg_docs/AutotuneAttitudeControlStatus.md)
- [BatteryInfo](/msg_docs/BatteryInfo.md)
- [ButtonEvent](/msg_docs/ButtonEvent.md)
- [CameraCapture](/msg_docs/CameraCapture.md)
- [CameraStatus](/msg_docs/CameraStatus.md)
@@ -549,6 +547,7 @@
- [DifferentialPressure](/msg_docs/DifferentialPressure.md)
- [DistanceSensor](/msg_docs/DistanceSensor.md)
- [DistanceSensorModeChangeRequest](/msg_docs/DistanceSensorModeChangeRequest.md)
- [DronecanNodeStatus](/msg_docs/DronecanNodeStatus.md)
- [Ekf2Timestamps](/msg_docs/Ekf2Timestamps.md)
- [EscReport](/msg_docs/EscReport.md)
- [EscStatus](/msg_docs/EscStatus.md)
@@ -623,6 +622,7 @@
- [MountOrientation](/msg_docs/MountOrientation.md)
- [NavigatorMissionItem](/msg_docs/NavigatorMissionItem.md)
- [NavigatorStatus](/msg_docs/NavigatorStatus.md)
- [NeuralControl](/msg_docs/NeuralControl.md)
- [NormalizedUnsignedSetpoint](/msg_docs/NormalizedUnsignedSetpoint.md)
- [ObstacleDistance](/msg_docs/ObstacleDistance.md)
- [OffboardControlMode](/msg_docs/OffboardControlMode.md)
@@ -662,6 +662,8 @@
- [RoverPositionSetpoint](/msg_docs/RoverPositionSetpoint.md)
- [RoverRateSetpoint](/msg_docs/RoverRateSetpoint.md)
- [RoverRateStatus](/msg_docs/RoverRateStatus.md)
- [RoverSpeedSetpoint](/msg_docs/RoverSpeedSetpoint.md)
- [RoverSpeedStatus](/msg_docs/RoverSpeedStatus.md)
- [RoverSteeringSetpoint](/msg_docs/RoverSteeringSetpoint.md)
- [RoverThrottleSetpoint](/msg_docs/RoverThrottleSetpoint.md)
- [RoverVelocitySetpoint](/msg_docs/RoverVelocitySetpoint.md)
@@ -721,7 +723,13 @@
- [Wind](/msg_docs/Wind.md)
- [YawEstimatorStatus](/msg_docs/YawEstimatorStatus.md)
- [AirspeedValidatedV0](/msg_docs/AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](/msg_docs/ArmingCheckReplyV0.md)
- [ArmingCheckRequestV0](/msg_docs/ArmingCheckRequestV0.md)
- [BatteryStatusV0](/msg_docs/BatteryStatusV0.md)
- [EventV0](/msg_docs/EventV0.md)
- [HomePositionV0](/msg_docs/HomePositionV0.md)
- [VehicleAttitudeSetpointV0](/msg_docs/VehicleAttitudeSetpointV0.md)
- [VehicleLocalPositionV0](/msg_docs/VehicleLocalPositionV0.md)
- [VehicleStatusV0](/msg_docs/VehicleStatusV0.md)
- [MAVLink Messaging](/mavlink/index.md)
- [Adding Messages](/mavlink/adding_messages.md)
@@ -761,7 +769,7 @@
- [Debugging with GDB](/debug/gdb_debugging.md)
- [SWD Debug Port](/debug/swd_debug.md)
- [JLink Probe](/debug/probe_jlink.md)
- [Black Magic/DroneCode Probe](/debug/probe_bmp.md)
- [Black Magic/Zubax BugFace BF1 Probe](/debug/probe_bmp.md)
- [STLink Probe](/debug/probe_stlink.md)
- [MCU-Link Probe](/debug/probe_mculink.md)
- [Hardfault Debugging](/debug/gdb_hardfault.md)
@@ -785,6 +793,9 @@
- [Camera Integration/Architecture](/camera/camera_architecture.md)
- [Computer Vision](/advanced/computer_vision.md)
- [Motion Capture (VICON, Optitrack, NOKOV)](/tutorials/motion-capture.md)
- [Neural Networks](/advanced/neural_networks.md)
- [Neural Network Module Utilities](/advanced/nn_module_utilities.md)
- [TensorFlow Lite Micro (TFLM)](/advanced/tflm.md)
- [Installing driver for Intel RealSense R200](/advanced/realsense_intel_driver.md)
- [Switching State Estimators](/advanced/switching_state_estimators.md)
- [Out-of-Tree Modules](/advanced/out_of_tree_modules.md)
@@ -816,8 +827,12 @@
- [Test MC_02 - Full Autonomous](/test_cards/mc_02_full_autonomous.md)
- [Test MC_03 - Auto Manual Mix](/test_cards/mc_03_auto_manual_mix.md)
- [Test MC_04 - Failsafe Testing](/test_cards/mc_04_failsafe_testing.md)
- [Test MC_05 - Indoor Flight (Manual Modes)](/test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_05 - Manual Modes (Inside)](/test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_06 - Optical Flow (Inside)](/test_cards/mc_06_optical_flow.md)
- [Test MC_07 - VIO (Inside)](/test_cards/mc_07_vio.md)
- [Test MC_08 - DSHOT ESC](/test_cards/mc_08_dshot.md)
- [Unit Tests](/test_and_ci/unit_tests.md)
- [Fuzz Tests](/test_and_ci/fuzz_tests.md)
- [Continuous Integration](/test_and_ci/continous_integration.md)
- [Integration Testing](/test_and_ci/integration_testing.md)
- [MAVSDK Integration Testing](/test_and_ci/integration_testing_mavsdk.md)
+203 -29
View File
@@ -692,6 +692,16 @@ to 0 and 4096. Other standard params follows the same rule.
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 65535 | | 0 |
### PCA9685_EN_BUS (`INT32`) {#PCA9685_EN_BUS}
Enable the PCA9685 output driver.
The integer refers to the I2C bus number where PCA9685 is connected.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 10 | | 0 |
### PCA9685_FAIL1 (`INT32`) {#PCA9685_FAIL1}
PCA9685 Output Channel 1 Failsafe Value.
@@ -14435,9 +14445,9 @@ Set bits in the following positions to enable:
### FW_AT_MAN_AUX (`INT32`) {#FW_AT_MAN_AUX}
Enable/disable auto tuning using an RC AUX input.
Enable/disable auto tuning using a manual control AUX input.
Defines which RC_MAP_AUXn parameter maps the RC channel used to enable/disable auto tuning.
Defines which RC_MAP_AUXn parameter maps the manual control channel used to enable/disable auto tuning.
**Values:**
@@ -16242,21 +16252,6 @@ Expect and require a healthy MAVLink parachute system.
| ------ | -------- | -------- | --------- | ------------ | ---- |
| &nbsp; | | | | Disabled (0) |
### COM_POSCTL_NAVL (`INT32`) {#COM_POSCTL_NAVL}
Position mode navigation loss response.
This sets the flight mode that will be used if navigation accuracy is no longer adequate for position control in manual Position mode.
**Values:**
- `0`: Altitude mode
- `1`: Land mode (descend)
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | | | | 0 |
### COM_POS_FS_EPH (`FLOAT`) {#COM_POS_FS_EPH}
Horizontal position error threshold for hovering systems.
@@ -16363,7 +16358,7 @@ A negative value disables the check.
### COM_RCL_EXCEPT (`INT32`) {#COM_RCL_EXCEPT}
RC loss exceptions.
Manual control loss exceptions.
Specify modes where manual control loss is ignored and no failsafe is triggered.
External modes requiring stick input will still failsafe.
@@ -16381,7 +16376,7 @@ External modes requiring stick input will still failsafe.
### COM_RC_ARM_HYST (`INT32`) {#COM_RC_ARM_HYST}
RC input arm/disarm command duration.
Manual control input arm/disarm command duration.
The default value of 1000 requires the stick to be held in the arm or disarm position for 1 second.
@@ -16429,9 +16424,9 @@ Ensure the value is not set lower than the update interval of the RC or Joystick
### COM_RC_OVERRIDE (`INT32`) {#COM_RC_OVERRIDE}
Enable RC stick override of auto and/or offboard modes.
Enable manual control stick override.
When RC stick override is enabled, moving the RC sticks more than COM_RC_STICK_OV
When enabled, moving the sticks more than COM_RC_STICK_OV
immediately gives control back to the pilot by switching to Position mode and
if position is unavailable Altitude mode.
Note: Only has an effect on multicopters, and VTOLs in multicopter mode.
@@ -16447,7 +16442,7 @@ Note: Only has an effect on multicopters, and VTOLs in multicopter mode.
### COM_RC_STICK_OV (`FLOAT`) {#COM_RC_STICK_OV}
RC stick override threshold.
Stick override threshold.
If COM_RC_OVERRIDE is enabled and the joystick input is moved more than this threshold
the autopilot the pilot takes over control.
@@ -16591,11 +16586,10 @@ action will be executed.
### NAV_RCL_ACT (`INT32`) {#NAV_RCL_ACT}
Set RC loss failsafe mode.
Set manual control loss failsafe mode.
The RC loss failsafe will only be entered after a timeout,
set by COM_RC_LOSS_T in seconds. If RC input checks have been disabled
by setting the COM_RC_IN_MODE param it will not be triggered.
The manual control loss failsafe will only be entered after a timeout,
set by COM_RC_LOSS_T in seconds.
**Values:**
@@ -16876,7 +16870,7 @@ armed.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 1 | 0.01 | 0.055 | % |
| &nbsp; | 0 | 1 | 0.01 | 0.055 | norm |
### DSHOT_TEL_CFG (`INT32`) {#DSHOT_TEL_CFG}
@@ -19929,7 +19923,7 @@ Yaw behaviour during orbit flight.
- `1`: Hold Initial Heading
- `2`: Uncontrolled
- `3`: Hold Front Tangent to Circle
- `4`: RC Controlled
- `4`: Manually (yaw stick) Controlled
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
@@ -20268,6 +20262,7 @@ Modes 1 and 2 require each F9P UART1 to be connected to the Autopilot. In additi
F9P units are connected to each other.
Modes 3 and 4 only require UART1 on each F9P connected to the Autopilot or Can Node. UART RX DMA is required.
RTK is still possible with this setup.
Mode 6 is intended for use with a ground control station (not necessarily an RTK correction base).
**Values:**
@@ -20277,6 +20272,7 @@ RTK is still possible with this setup.
- `3`: Heading (Rover With Moving Base UART1 Connected to Autopilot Or Can Node At 921600)
- `4`: Moving Base (Moving Base UART1 Connected to Autopilot Or Can Node At 921600)
- `5`: Rover with Static Base on UART2 (similar to Default, except coming in on UART2)
- `6`: Ground Control Station (UART2 outputs NMEA)
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ------- | ---- |
@@ -29542,6 +29538,16 @@ Distance from the center of the right wheel to the center of the left wheel.
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 100 | 0.001 | 0 | m |
### RD_YAW_STK_GAIN (`FLOAT`) {#RD_YAW_STK_GAIN}
Yaw stick gain for Manual mode.
Assign value <1.0 to decrease stick response for yaw control.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0.1 | 1 | 0.01 | 1 |
## Rover Mecanum
### RM_COURSE_CTL_TH (`FLOAT`) {#RM_COURSE_CTL_TH}
@@ -29567,6 +29573,16 @@ Distance from the center of the right wheel to the center of the left wheel.
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 100 | 0.001 | 0 | m |
### RM_YAW_STK_GAIN (`FLOAT`) {#RM_YAW_STK_GAIN}
Yaw stick gain for Manual mode.
Assign value <1.0 to decrease stick response for yaw control.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0.1 | 1 | 0.01 | 1 |
## Rover Rate Control
### RO_YAW_ACCEL_LIM (`FLOAT`) {#RO_YAW_ACCEL_LIM}
@@ -29591,6 +29607,18 @@ Set to -1 to disable.
| ------ | -------- | -------- | --------- | ------- | ------- |
| &nbsp; | -1 | 10000 | 0.01 | -1. | deg/s^2 |
### RO_YAW_EXPO (`FLOAT`) {#RO_YAW_EXPO}
Yaw rate expo factor.
Exponential factor for tuning the input curve shape.
0 Purely linear input curve
1 Purely cubic input curve
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 1 | | 0. |
### RO_YAW_RATE_CORR (`FLOAT`) {#RO_YAW_RATE_CORR}
Yaw rate correction factor.
@@ -29651,6 +29679,19 @@ Percentage of stick input range that will be interpreted as zero around the stic
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 1 | 0.01 | 0.1 |
### RO_YAW_SUPEXPO (`FLOAT`) {#RO_YAW_SUPEXPO}
Yaw rate super expo factor.
"Superexponential" factor for refining the input curve shape tuned using RO_YAW_EXPO.
0 Pure Expo function
0.7 reasonable shape enhancement for intuitive stick feel
0.95 very strong bent input curve only near maxima have effect
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 0.95 | | 0. |
## Rover Velocity Control
### RO_ACCEL_LIM (`FLOAT`) {#RO_ACCEL_LIM}
@@ -29838,6 +29879,24 @@ Selects the algorithm used for logfile encryption
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | | | | 2 |
### SDLOG_BACKEND (`INT32`) {#SDLOG_BACKEND}
Logging Backend (integer bitmask).
If no logging is set the logger will not be started.
Set bits true to enable:
0: SD card logging
1: Mavlink logging
**Bitmask:**
- `0`: SD card logging
- `1`: Mavlink logging
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ------- | ---- |
| &check; | 0 | 3 | | 3 |
### SDLOG_BOOT_BAT (`INT32`) {#SDLOG_BOOT_BAT}
Battery-only Logging.
@@ -29924,10 +29983,12 @@ Logging Mode.
Determines when to start and stop logging. By default, logging is started
when arming the system, and stopped when disarming.
Note: The logging start/end points that can be configured here only apply to
SD logging. The mavlink backend is started/stopped independently
of these points.
**Values:**
- `-1`: disabled
- `0`: when armed until disarm (default)
- `1`: from boot until disarm
- `2`: from boot until shutdown
@@ -33018,6 +33079,31 @@ The mode will switch from long to short range when the distance is less than the
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 1 | 50 | | 4 | m |
### SENS_BAHRS_CFG (`INT32`) {#SENS_BAHRS_CFG}
Serial Configuration for EULER-NAV BAHRS.
Configure on which serial port to run EULER-NAV BAHRS.
**Values:**
- `0`: Disabled
- `6`: UART 6
- `101`: TELEM 1
- `102`: TELEM 2
- `103`: TELEM 3
- `104`: TELEM/SERIAL 4
- `201`: GPS 1
- `202`: GPS 2
- `203`: GPS 3
- `300`: Radio Controller
- `301`: Wifi Port
- `401`: EXT2
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ------- | ---- |
| &check; | | | | 0 |
### SENS_BARO_QNH (`FLOAT`) {#SENS_BARO_QNH}
QNH for barometer.
@@ -35562,6 +35648,86 @@ Note: certain drivers such as the GPS can determine the Baudrate automatically.
| ------- | -------- | -------- | --------- | ------- | ---- |
| &check; | | | | 1 |
## Simulation
### SIM_GZ_EN_ASPD (`INT32`) {#SIM_GZ_EN_ASPD}
Enable airspeed sensor in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_BARO (`INT32`) {#SIM_GZ_EN_BARO}
Enable barometer/air pressure sensor in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_FLOW (`INT32`) {#SIM_GZ_EN_FLOW}
Enable optical flow sensor in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_GPS (`INT32`) {#SIM_GZ_EN_GPS}
Enable GPS/NavSat sensor in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_LIDAR (`INT32`) {#SIM_GZ_EN_LIDAR}
Enable laser/lidar sensors in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
### SIM_GZ_EN_ODOM (`INT32`) {#SIM_GZ_EN_ODOM}
Enable odometry in Gazebo bridge.
**Values:**
- `0`: Disabled
- `1`: Enabled
| Reboot | minValue | maxValue | increment | default | unit |
| ------- | -------- | -------- | --------- | ----------- | ---- |
| &check; | | | | Enabled (1) |
## Simulation In Hardware
### SIH_DISTSNSR_MAX (`FLOAT`) {#SIH_DISTSNSR_MAX}
@@ -41075,3 +41241,11 @@ SPC_VEHICLE_RESP.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | | | | 0.5 |
### ZENOH_DOMAIN_ID (`INT32`) {#ZENOH_DOMAIN_ID}
ROS2 RMW_ZENOH_CPP Domain id.
| Reboot | minValue | maxValue | increment | default | unit |
| ------ | -------- | -------- | --------- | ------- | ---- |
| &nbsp; | 0 | 232 | | 0 |
+11 -2
View File
@@ -628,7 +628,16 @@ div.frame_variant td, div.frame_variant th {
### Free-Flyer
<div class="frame_common">
<img src="../../assets/airframes/types/AirframeUnknown.svg"/>
<img src="../../assets/airframes/types/FreeFlyer.svg"/>
<table>
<thead>
<tr><th>Common Outputs</th></tr>
</thead>
<tbody>
<tr>
<td><ul><li><b>Motor1</b>: back left thruster, +x thrust</li><li><b>Motor2</b>: front left thruster, -x thrust</li><li><b>Motor3</b>: back right thruster, +x thrust</li><li><b>Motor4</b>: front right thruster, -x thrust</li><li><b>Motor5</b>: front left thruster, +y thrust</li><li><b>Motor6</b>: front right thruster, -y thrust</li><li><b>Motor7</b>: back left thruster, +y thrust</li><li><b>Motor8</b>: back right thruster, -y thrust</li></ul></td>
</tr>
</tbody></table>
</div>
<div class="frame_variant">
@@ -638,7 +647,7 @@ div.frame_variant td, div.frame_variant th {
</thead>
<tbody>
<tr id="spacecraft_free-flyer_kth-atmos">
<td>KTH-ATMOS</td>
<td><a href="https://atmos.discower.io">KTH-ATMOS</a></td>
<td>Maintainer: DISCOWER<p><code>SYS_AUTOSTART</code> = 70000</p></td>
</tr>
</tbody>
+21 -12
View File
@@ -13,9 +13,9 @@ The first executed file is the [init.d/rcS](https://github.com/PX4/PX4-Autopilot
The following sections are split according to the operating system that PX4 runs on.
## Posix (Linux/MacOS)
## POSIX (Linux/MacOS)
On Posix, the system shell is used as script interpreter (e.g. /bin/sh, being symlinked to dash on Ubuntu).
On POSIX, the system shell is used as script interpreter (e.g. /bin/sh, being symlinked to dash on Ubuntu).
For that to work, a few things are required:
- PX4 modules need to look like individual executables to the system.
@@ -54,7 +54,7 @@ cd <PX4-Autopilot>/build/px4_sitl_default/bin
### Dynamic Modules
Normally, all modules are compiled into a single PX4 executable.
However, on Posix, there's the option of compiling a module into a separate file, which can be loaded into PX4 using the `dyn` command.
However, on POSIX, there's the option of compiling a module into a separate file, which can be loaded into PX4 using the `dyn` command.
```sh
dyn ./test.px4mod
@@ -90,7 +90,7 @@ This is documented below.
The best way to customize the system startup is to introduce a [new frame configuration](../dev_airframes/adding_a_new_frame.md).
The frame configuration file can be included in the firmware or on an SD Card.
#### Dynamic customization
#### Dynamic Customization
If you only need to "tweak" the existing configuration, such as starting one more application or setting the value of a few parameters, you can specify these by creating two files in the `/etc/` directory of the SD Card:
@@ -148,27 +148,36 @@ The following example shows how to start custom applications:
mandatory_app start # Will abort boot if mandatory_app is unknown or fails
```
#### Additional customization
#### Additional Init-File Customization
In rare cases where the desired setup cannot be achieved through frame configuration or dynamic customization,
you can add a script that will be contained in the binary.
In rare cases where the desired setup cannot be achieved through frame configuration or dynamic customization, you can add a script that will be compiled into the binary for a particular `make` target build variant.
**Note**: In almost all cases, you should use a frame configuration. This method should only be used for
edge-cases such as customizing `cannode` based boards.
::: warning
In almost all cases, you should use a frame configuration.
This method should only be used for edge-cases such as customizing `cannode` based boards.
:::
The steps are:
- Add a new init script in `boards/<vendor>/<board>/init` that will run during board startup.
For example:
- Add a new init script in `boards/<vendor>/<board>/init` that will run during board startup. For example:
```sh
# File: boards/<vendor>/<board>/init/rc.additional
param set-default <param> <value>
```
- Add a new board variant in `boards/<vendor>/<board>/<variant>.px4board` that includes the additional script. For example:
- Add a new board variant in `boards/<vendor>/<board>/<variant>.px4board` that includes the additional script.
For example:
```sh
# File: boards/<vendor>/<board>/var.px4board
CONFIG_BOARD_ADDITIONAL_INIT="rc.additional"
```
- Compile the firmware with your new variant by appending the variant name to the compile target. For example:
- Compile the firmware with your new variant by appending the variant name to the compile target.
For example:
```sh
make <target>_var
```
+7 -1
View File
@@ -33,7 +33,7 @@ _QGroundControl for Windows_ is additionally required if you need to:
Note that you can also use it to monitor a simulation, but you must manually [connect to the simulation running in WSL](#qgroundcontrol-on-windows).
::: info
Connecting to an USB device from within WSL is not natively supported, however it can still be achieved by using the [USBIPD-WIN](https://learn.microsoft.com/en-us/windows/wsl/connect-usb) project. With this you can automatically upload firmware from the command line in WSL using the [`upload`](../dev_setup/building_px4.md#uploading-firmware-flashing-the-board) function.
Connecting to an USB device from within WSL is not natively supported, however it can still be achieved by using the [USBIPD-WIN](https://learn.microsoft.com/en-us/windows/wsl/connect-usb) project. With this you can automatically upload firmware from the command line in WSL using the [`upload`](../dev_setup/building_px4.md#uploading-firmware-flashing-the-board) function.
:::
::: info
@@ -325,3 +325,9 @@ sudo add-apt-repository ppa:kisak/kisak-mesa
sudo apt update
sudo apt upgrade
```
### QGroundControl not connecting to PX4 SITL
- The connection between PX4 SITL on WSL2 and QGroundControl on Windows requires [broadcasting](../simulation/index.md#enable-udp-broadcasting) or [streaming to a specific address](../simulation/index.md#enable-streaming-to-specific-address) to be enabled.
Streaming to a specific address should be enabled by default, but is something to check if a connection can't be established.
- Network traffic might be blocked by firewall or antivirus on you system.
+35
View File
@@ -45,6 +45,41 @@ MicroStrain <command> [arguments...]
status Driver status
```
## eulernav_bahrs
Source: [drivers/ins/eulernav_bahrs](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/ins/eulernav_bahrs)
### Description
Serial bus driver for the EULER-NAV Baro-Inertial AHRS.
### Examples
Attempt to start driver on a specified serial device.
```
eulernav_bahrs start -d /dev/ttyS1
```
Stop driver
```
eulernav_bahrs stop
```
### Usage {#eulernav_bahrs_usage}
```
eulernav_bahrs <command> [arguments...]
Commands:
start Start driver
-d <val> Serial device
status Print driver status
stop Stop driver
```
## ilabs
Source: [drivers/ins/ilabs](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/ins/ilabs)
+17 -17
View File
@@ -15,25 +15,25 @@ Request are published by `manual_control` and subscribed by the `commander` and
# It allows mapping triggers from various external interfaces like RC channels or MAVLink to cause an action.
# Request are published by `manual_control` and subscribed by the `commander` and `vtol_att_control` modules.
uint64 timestamp # [us] Time since system start
uint64 timestamp # [us] Time since system start
uint8 action # [@enum ACTION] Requested action
uint8 ACTION_DISARM = 0 # Disarm vehicle
uint8 ACTION_ARM = 1 # Arm vehicle
uint8 ACTION_TOGGLE_ARMING = 2 # Toggle arming
uint8 ACTION_UNKILL = 3 # Revert a kill action
uint8 ACTION_KILL = 4 # Kill vehicle (instantly stop the motors)
uint8 ACTION_SWITCH_MODE = 5 # Switch mode. The target mode is set in the `mode` field.
uint8 ACTION_VTOL_TRANSITION_TO_MULTICOPTER = 6 # Transition to hover flight
uint8 ACTION_VTOL_TRANSITION_TO_FIXEDWING = 7 # Transition to fast forward flight
uint8 ACTION_TERMINATION = 8 # Irreversably output failsafe values on all outputs, trigger parachute
uint8 action # [@enum ACTION] Requested action
uint8 ACTION_DISARM = 0 # Disarm vehicle
uint8 ACTION_ARM = 1 # Arm vehicle
uint8 ACTION_TOGGLE_ARMING = 2 # Toggle arming
uint8 ACTION_UNKILL = 3 # Revert a kill action
uint8 ACTION_KILL = 4 # Kill vehicle (instantly stop the motors)
uint8 ACTION_SWITCH_MODE = 5 # Switch mode. The target mode is set in the `mode` field.
uint8 ACTION_VTOL_TRANSITION_TO_MULTICOPTER = 6 # Transition to hover flight
uint8 ACTION_VTOL_TRANSITION_TO_FIXEDWING = 7 # Transition to fast forward flight
uint8 ACTION_TERMINATION = 8 # Irreversibly output failsafe values on all outputs, trigger parachute
uint8 source # [@enum SOURCE] Request trigger type, such as a switch, button or gesture
uint8 SOURCE_STICK_GESTURE = 0 # Triggered by holding the sticks in a certain position
uint8 SOURCE_RC_SWITCH = 1 # Triggered by an RC switch moving into a certain position
uint8 SOURCE_RC_BUTTON = 2 # Triggered by a momentary button on the RC being pressed or held
uint8 SOURCE_RC_MODE_SLOT = 3 # Mode change through the RC mode selection mechanism
uint8 source # [@enum SOURCE] Request trigger type, such as a switch, button or gesture
uint8 SOURCE_STICK_GESTURE = 0 # Triggered by holding the sticks in a certain position
uint8 SOURCE_RC_SWITCH = 1 # Triggered by an RC switch moving into a certain position
uint8 SOURCE_RC_BUTTON = 2 # Triggered by a momentary button on the RC being pressed or held
uint8 SOURCE_RC_MODE_SLOT = 3 # Mode change through the RC mode selection mechanism
uint8 mode # Requested mode. Only applies when `action` is `ACTION_SWITCH_MODE`. Values for this field are defined by the `vehicle_status_s::NAVIGATION_STATE_*` enumeration.
uint8 mode # Requested mode. Only applies when `action` is `ACTION_SWITCH_MODE`. Values for this field are defined by the `vehicle_status_s::NAVIGATION_STATE_*` enumeration.
```
+6 -6
View File
@@ -15,14 +15,14 @@ Published by the vehicle's allocation and consumed by the ESC protocol drivers e
uint32 MESSAGE_VERSION = 0
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Sampling timestamp of the data this control response is based on
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Sampling timestamp of the data this control response is based on
uint16 reversible_flags # Bitset indicating which motors are configured to be reversible
uint16 reversible_flags # Bitset indicating which motors are configured to be reversible
uint8 ACTUATOR_FUNCTION_MOTOR1 = 101
uint8 ACTUATOR_FUNCTION_MOTOR1 = 101 #
uint8 NUM_CONTROLS = 12
float32[12] control # [@range -1, 1] Normalized thrust. where 1 means maximum positive thrust, -1 maximum negative (if not supported by the output, <0 maps to NaN). NaN maps to disarmed (stop the motors)
uint8 NUM_CONTROLS = 12 #
float32[12] control # [@range -1, 1] Normalized thrust. where 1 means maximum positive thrust, -1 maximum negative (if not supported by the output, <0 maps to NaN). NaN maps to disarmed (stop the motors)
```
+4 -4
View File
@@ -15,10 +15,10 @@ Published by the vehicle's allocation and consumed by the actuator output driver
uint32 MESSAGE_VERSION = 0
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Sampling timestamp of the data this control response is based on
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Sampling timestamp of the data this control response is based on
uint8 NUM_CONTROLS = 8
float32[8] control # [@range -1, 1] Normalized output. 1 means maximum positive position. -1 maximum negative position (if not supported by the output, <0 maps to NaN). NaN maps to disarmed.
uint8 NUM_CONTROLS = 8 #
float32[8] control # [@range -1, 1] Normalized output. 1 means maximum positive position. -1 maximum negative position (if not supported by the output, <0 maps to NaN). NaN maps to disarmed.
```
+5 -5
View File
@@ -13,10 +13,10 @@ It is subscribed by the airspeed selector module, which validates the data from
# This is published by airspeed sensor drivers, CAN airspeed sensors, simulators.
# It is subscribed by the airspeed selector module, which validates the data from multiple sensors and passes on a single estimation to the EKF, controllers and telemetry providers.
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Timestamp of the raw data
float32 indicated_airspeed_m_s # [m/s] Indicated airspeed
float32 true_airspeed_m_s # [m/s] True airspeed
float32 confidence # [@range 0,1] Confidence value for this sensor
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Timestamp of the raw data
float32 indicated_airspeed_m_s # [m/s] Indicated airspeed
float32 true_airspeed_m_s # [m/s] True airspeed
float32 confidence # [@range 0,1] Confidence value for this sensor
```
+23 -23
View File
@@ -21,39 +21,39 @@ The message is not used by internal/FMU components, as their mode requirements a
# Note that the external component is identified by its registration_id, which is allocated to the component during registration (arming_check_id in RegisterExtComponentReply).
# The message is not used by internal/FMU components, as their mode requirements are known at compile time.
uint32 MESSAGE_VERSION = 1
uint32 MESSAGE_VERSION = 1
uint64 timestamp # [us] Time since system start.
uint8 request_id # Id of ArmingCheckRequest for which this is a response.
uint8 registration_id # Id of external component emitting this response.
uint8 request_id # Id of ArmingCheckRequest for which this is a response.
uint8 registration_id # Id of external component emitting this response.
uint8 HEALTH_COMPONENT_INDEX_NONE = 0 # Index of health component for which this response applies.
uint8 HEALTH_COMPONENT_INDEX_NONE = 0 # Index of health component for which this response applies.
uint8 health_component_index # [@enum HEALTH_COMPONENT_INDEX]
bool health_component_is_present # Unused. Intended for use with health events interface (health_component_t in events.json).
bool health_component_warning # Unused. Intended for use with health events interface (health_component_t in events.json).
bool health_component_error # Unused. Intended for use with health events interface (health_component_t in events.json).
uint8 health_component_index # [@enum HEALTH_COMPONENT_INDEX]
bool health_component_is_present # Unused. Intended for use with health events interface (health_component_t in events.json).
bool health_component_warning # Unused. Intended for use with health events interface (health_component_t in events.json).
bool health_component_error # Unused. Intended for use with health events interface (health_component_t in events.json).
bool can_arm_and_run # True if the component can arm. For navigation mode components, true if the component can arm in the mode or switch to the mode when already armed.
bool can_arm_and_run # True if the component can arm. For navigation mode components, true if the component can arm in the mode or switch to the mode when already armed.
uint8 num_events # Number of queued failure messages (Event) in the events field.
uint8 num_events # Number of queued failure messages (Event) in the events field.
Event[5] events # Arming failure reasons (Queue of events to report to GCS).
Event[5] events # Arming failure reasons (Queue of events to report to GCS).
# Mode requirements
bool mode_req_angular_velocity # Requires angular velocity estimate (e.g. from gyroscope).
bool mode_req_attitude # Requires an attitude estimate.
bool mode_req_local_alt # Requires a local altitude estimate.
bool mode_req_local_position # Requires a local position estimate.
bool mode_req_local_position_relaxed # Requires a more relaxed global position estimate.
bool mode_req_global_position # Requires a global position estimate.
bool mode_req_global_position_relaxed # Requires a relaxed global position estimate.
bool mode_req_mission # Requires an uploaded mission.
bool mode_req_home_position # Requires a home position (such as RTL/Return mode).
bool mode_req_prevent_arming # Prevent arming (such as in Land mode).
bool mode_req_manual_control # Requires a manual controller
bool mode_req_angular_velocity # Requires angular velocity estimate (e.g. from gyroscope).
bool mode_req_attitude # Requires an attitude estimate.
bool mode_req_local_alt # Requires a local altitude estimate.
bool mode_req_local_position # Requires a local position estimate.
bool mode_req_local_position_relaxed # Requires a more relaxed global position estimate.
bool mode_req_global_position # Requires a global position estimate.
bool mode_req_global_position_relaxed # Requires a relaxed global position estimate.
bool mode_req_mission # Requires an uploaded mission.
bool mode_req_home_position # Requires a home position (such as RTL/Return mode).
bool mode_req_prevent_arming # Prevent arming (such as in Land mode).
bool mode_req_manual_control # Requires a manual controller
uint8 ORB_QUEUE_LENGTH = 4 #
uint8 ORB_QUEUE_LENGTH = 4
```
+5 -3
View File
@@ -21,10 +21,12 @@ The reply will also include the registration_id for each external component, pro
# The reply will include the published request_id, allowing correlation of all arming check information for a particular request.
# The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply).
uint32 MESSAGE_VERSION = 0
uint32 MESSAGE_VERSION = 1
uint64 timestamp # [us] Time since system start.
uint64 timestamp # [us] Time since system start.
uint8 request_id # Id of this request. Allows correlation with associated ArmingCheckReply messages.
uint8 request_id # Id of this request. Allows correlation with associated ArmingCheckReply messages.
uint32 valid_registrations_mask # Bitmask of valid registration ID's (the bit is also cleared if flagged as unresponsive)
```
+30
View File
@@ -0,0 +1,30 @@
# ArmingCheckRequestV0 (UORB message)
Arming check request.
Broadcast message to request arming checks be reported by all registered components, such as external ROS 2 navigation modes.
All registered components should respond with an ArmingCheckReply message that indicates their current mode requirements, and any arming failure information.
The request is sent regularly, even while armed, so that the FMU always knows the current arming state for external modes, and can forward it to ground stations.
The reply will include the published request_id, allowing correlation of all arming check information for a particular request.
The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply).
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/px4_msgs_old/msg/ArmingCheckRequestV0.msg)
```c
# Arming check request.
#
# Broadcast message to request arming checks be reported by all registered components, such as external ROS 2 navigation modes.
# All registered components should respond with an ArmingCheckReply message that indicates their current mode requirements, and any arming failure information.
# The request is sent regularly, even while armed, so that the FMU always knows the current arming state for external modes, and can forward it to ground stations.
#
# The reply will include the published request_id, allowing correlation of all arming check information for a particular request.
# The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply).
uint32 MESSAGE_VERSION = 0
uint64 timestamp # [us] Time since system start.
uint8 request_id # Id of this request. Allows correlation with associated ArmingCheckReply messages.
```
+30 -30
View File
@@ -11,39 +11,39 @@ This is currently used only for logging cell status from MAVLink.
#
# This is currently used only for logging cell status from MAVLink.
uint64 timestamp # [us] Time since system start
uint64 timestamp # [us] Time since system start
uint16 status # [@enum STATUS_FLAG] Status bitmap
uint16 STATUS_FLAG_UNKNOWN = 1 # State unknown or not reportable
uint16 STATUS_FLAG_FAILED = 2 # Modem is unusable
uint16 STATUS_FLAG_INITIALIZING = 4 # Modem is being initialized
uint16 STATUS_FLAG_LOCKED = 8 # Modem is locked
uint16 STATUS_FLAG_DISABLED = 16 # Modem is not enabled and is powered down
uint16 STATUS_FLAG_DISABLING = 32 # Modem is currently transitioning to the STATUS_FLAG_DISABLED state
uint16 STATUS_FLAG_ENABLING = 64 # Modem is currently transitioning to the STATUS_FLAG_ENABLED state
uint16 STATUS_FLAG_ENABLED = 128 # Modem is enabled and powered on but not registered with a network provider and not available for data connections
uint16 STATUS_FLAG_SEARCHING = 256 # Modem is searching for a network provider to register
uint16 STATUS_FLAG_REGISTERED = 512 # Modem is registered with a network provider, and data connections and messaging may be available for use
uint16 STATUS_FLAG_DISCONNECTING = 1024 # Modem is disconnecting and deactivating the last active packet data bearer. This state will not be entered if more than one packet data bearer is active and one of the active bearers is deactivated
uint16 STATUS_FLAG_CONNECTING = 2048 # Modem is activating and connecting the first packet data bearer. Subsequent bearer activations when another bearer is already active do not cause this state to be entered
uint16 STATUS_FLAG_CONNECTED = 4096 # One or more packet data bearers is active and connected
uint16 status # [@enum STATUS_FLAG] Status bitmap
uint16 STATUS_FLAG_UNKNOWN = 1 # State unknown or not reportable
uint16 STATUS_FLAG_FAILED = 2 # Modem is unusable
uint16 STATUS_FLAG_INITIALIZING = 4 # Modem is being initialized
uint16 STATUS_FLAG_LOCKED = 8 # Modem is locked
uint16 STATUS_FLAG_DISABLED = 16 # Modem is not enabled and is powered down
uint16 STATUS_FLAG_DISABLING = 32 # Modem is currently transitioning to the STATUS_FLAG_DISABLED state
uint16 STATUS_FLAG_ENABLING = 64 # Modem is currently transitioning to the STATUS_FLAG_ENABLED state
uint16 STATUS_FLAG_ENABLED = 128 # Modem is enabled and powered on but not registered with a network provider and not available for data connections
uint16 STATUS_FLAG_SEARCHING = 256 # Modem is searching for a network provider to register
uint16 STATUS_FLAG_REGISTERED = 512 # Modem is registered with a network provider, and data connections and messaging may be available for use
uint16 STATUS_FLAG_DISCONNECTING = 1024 # Modem is disconnecting and deactivating the last active packet data bearer. This state will not be entered if more than one packet data bearer is active and one of the active bearers is deactivated
uint16 STATUS_FLAG_CONNECTING = 2048 # Modem is activating and connecting the first packet data bearer. Subsequent bearer activations when another bearer is already active do not cause this state to be entered
uint16 STATUS_FLAG_CONNECTED = 4096 # One or more packet data bearers is active and connected
uint8 failure_reason # [@enum FAILURE_REASON] Failure reason
uint8 FAILURE_REASON_NONE = 0 # No error
uint8 FAILURE_REASON_UNKNOWN = 1 # Error state is unknown
uint8 FAILURE_REASON_SIM_MISSING = 2 # SIM is required for the modem but missing
uint8 FAILURE_REASON_SIM_ERROR = 3 # SIM is available, but not usable for connection
uint8 failure_reason # [@enum FAILURE_REASON] Failure reason
uint8 FAILURE_REASON_NONE = 0 # No error
uint8 FAILURE_REASON_UNKNOWN = 1 # Error state is unknown
uint8 FAILURE_REASON_SIM_MISSING = 2 # SIM is required for the modem but missing
uint8 FAILURE_REASON_SIM_ERROR = 3 # SIM is available, but not usable for connection
uint8 type # [@enum CELLULAR_NETWORK_RADIO_TYPE] Cellular network radio type
uint8 CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 # None
uint8 CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 # GSM
uint8 CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 # CDMA
uint8 CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 # WCDMA
uint8 CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 # LTE
uint8 type # [@enum CELLULAR_NETWORK_RADIO_TYPE] Cellular network radio type
uint8 CELLULAR_NETWORK_RADIO_TYPE_NONE = 0 # None
uint8 CELLULAR_NETWORK_RADIO_TYPE_GSM = 1 # GSM
uint8 CELLULAR_NETWORK_RADIO_TYPE_CDMA = 2 # CDMA
uint8 CELLULAR_NETWORK_RADIO_TYPE_WCDMA = 3 # WCDMA
uint8 CELLULAR_NETWORK_RADIO_TYPE_LTE = 4 # LTE
uint8 quality # [dBm] Cellular network RSSI/RSRP, absolute value
uint16 mcc # [@invalid UINT16_MAX] Mobile country code
uint16 mnc # [@invalid UINT16_MAX] Mobile network code
uint16 lac # [@invalid 0] Location area code
uint8 quality # [dBm] Cellular network RSSI/RSRP, absolute value
uint16 mcc # [@invalid UINT16_MAX] Mobile country code
uint16 mnc # [@invalid UINT16_MAX] Mobile network code
uint16 lac # [@invalid 0] Location area code
```
+14
View File
@@ -0,0 +1,14 @@
# RoverSpeedSetpoint (UORB message)
Rover Speed Setpoint
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/RoverSpeedSetpoint.msg)
```c
# Rover Speed Setpoint
uint64 timestamp # [us] Time since system start
float32 speed_body_x # [m/s] [@range -inf (Backwards), inf (Forwards)] [@frame Body] Speed setpoint in body x direction
float32 speed_body_y # [m/s] [@range -inf (Left), inf (Right)] [@frame Body] [@invalid NaN If not mecanum] Mecanum only: Speed setpoint in body y direction
```
+18
View File
@@ -0,0 +1,18 @@
# RoverSpeedStatus (UORB message)
Rover Velocity Status
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/RoverSpeedStatus.msg)
```c
# Rover Velocity Status
uint64 timestamp # [us] Time since system start
float32 measured_speed_body_x # [m/s] [@range -inf (Backwards), inf (Forwards)] [@frame Body] Measured speed in body x direction
float32 adjusted_speed_body_x_setpoint # [m/s] [@range -inf (Backwards), inf (Forwards)] [@frame Body] Speed setpoint in body x direction that is being tracked (Applied slew rates)
float32 pid_throttle_body_x_integral # [] [@range -1, 1] Integral of the PID for the closed loop controller of the speed in body x direction
float32 measured_speed_body_y # [m/s] [@range -inf (Left), inf (Right)] [@frame Body] [@invalid NaN If not mecanum] Mecanum only: Measured speed in body y direction
float32 adjusted_speed_body_y_setpoint # [m/s] [@range -inf (Left), inf (Right)] [@frame Body] [@invalid NaN If not mecanum] Mecanum only: Speed setpoint in body y direction that is being tracked (Applied slew rates)
float32 pid_throttle_body_y_integral # [] [@range -1, 1] [@invalid NaN If not mecanum] Mecanum only: Integral of the PID for the closed loop controller of the speed in body y direction
```
+16 -14
View File
@@ -1,24 +1,26 @@
# VehicleAirData (UORB message)
Vehicle air data
Data from the currently selected barometer (plus ambient temperature from the source specified in temperature_source).
Includes calculated data such as barometric altitude and air density.
[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/VehicleAirData.msg)
```c
# Vehicle air data
#
# Data from the currently selected barometer (plus ambient temperature from the source specified in temperature_source).
# Includes calculated data such as barometric altitude and air density.
uint64 timestamp # time since system start (microseconds)
uint64 timestamp_sample # the timestamp of the raw data (microseconds)
uint32 baro_device_id # unique device ID for the selected barometer
float32 baro_alt_meter # Altitude above MSL calculated from temperature compensated baro sensor data using an ISA corrected for sea level pressure SENS_BARO_QNH.
float32 baro_pressure_pa # Absolute pressure in Pascals
float32 ambient_temperature # Abient temperature in degrees Celsius
uint8 temperature_source # Source of temperature data: 0: Default Temperature (15°C), 1: External Baro, 2: Airspeed
float32 rho # air density
uint8 calibration_count # Calibration changed counter. Monotonically increases whenever calibration changes.
uint64 timestamp # [us] Time since system start
uint64 timestamp_sample # [us] Timestamp of the raw data
uint32 baro_device_id # Unique device ID for the selected barometer
float32 baro_alt_meter # [m] [@frame MSL] Altitude above MSL calculated from temperature compensated baro sensor data using an ISA corrected for sea level pressure SENS_BARO_QNH
float32 baro_pressure_pa # [Pa] Absolute pressure
float32 ambient_temperature # [degC] Ambient temperature
uint8 temperature_source # Source of temperature data: 0: Default Temperature (15°C), 1: External Baro, 2: Airspeed
float32 rho # [kg/m^3] Air density
uint8 calibration_count # Calibration changed counter. Monotonically increases whenever calibration changes.
```
+4 -3
View File
@@ -229,10 +229,10 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [RoverPositionSetpoint](RoverPositionSetpoint.md) — Rover Position Setpoint
- [RoverRateSetpoint](RoverRateSetpoint.md) — Rover Rate setpoint
- [RoverRateStatus](RoverRateStatus.md) — Rover Rate Status
- [RoverSpeedSetpoint](RoverSpeedSetpoint.md) — Rover Speed Setpoint
- [RoverSpeedStatus](RoverSpeedStatus.md) — Rover Velocity Status
- [RoverSteeringSetpoint](RoverSteeringSetpoint.md) — Rover Steering setpoint
- [RoverThrottleSetpoint](RoverThrottleSetpoint.md) — Rover Throttle setpoint
- [RoverVelocitySetpoint](RoverVelocitySetpoint.md) — Rover Velocity Setpoint
- [RoverVelocityStatus](RoverVelocityStatus.md) — Rover Velocity Status
- [Rpm](Rpm.md)
- [RtlStatus](RtlStatus.md)
- [RtlTimeEstimate](RtlTimeEstimate.md)
@@ -281,7 +281,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [UlogStreamAck](UlogStreamAck.md) — Ack a previously sent ulog_stream message that had
the NEED_ACK flag set
- [VehicleAcceleration](VehicleAcceleration.md)
- [VehicleAirData](VehicleAirData.md)
- [VehicleAirData](VehicleAirData.md) — Vehicle air data
- [VehicleAngularAccelerationSetpoint](VehicleAngularAccelerationSetpoint.md)
- [VehicleConstraints](VehicleConstraints.md) — Local setpoint constraints in NED frame
setting something to NaN means that no limit is provided
@@ -301,6 +301,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m
- [YawEstimatorStatus](YawEstimatorStatus.md)
- [AirspeedValidatedV0](AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](ArmingCheckReplyV0.md)
- [ArmingCheckRequestV0](ArmingCheckRequestV0.md) — Arming check request.
- [BatteryStatusV0](BatteryStatusV0.md) — Battery status
- [EventV0](EventV0.md) — this message is required here in the msg_old folder because other msg are depending on it
Events interface
+1 -1
View File
@@ -52,7 +52,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide).
### Sensors
- TBD
- Add [sbgECom INS driver](../sensor/sbgecom.md) ([PX4-Autopilot#24137](https://github.com/PX4/PX4-Autopilot/pull/24137))
### Simulation
@@ -9,6 +9,7 @@ However PX4 can also use some INS devices as either sources of raw data, or as a
INS systems that can be used as a replacement for EKF2 in PX4:
- [InertialLabs](../sensor/inertiallabs.md)
- [SBG Systems](../sensor/sbgecom.md): IMU/AHRS, GNSS/INS, Dual GNSS/INS systems that can be used as an external INS or as a source of raw sensor data.
- [VectorNav](../sensor/vectornav.md): IMU/AHRS, GNSS/INS, Dual GNSS/INS systems that can be used as an external INS or as a source of raw sensor data.
## PX4 Firmware
+150
View File
@@ -0,0 +1,150 @@
# SBG Systems INS/AHRS (Pulse, Ellipse, etc.)
[SBG-Systems](https://www.sbg-systems.com/) designs, manufactures, and support an extensive range of state-of-the-art inertial sensors such as Inertial Measurement Units (IMU), Attitude and Heading Reference Systems (AHRS), Inertial Navigation Systems with embedded GNSS (INS/GNSS), and so on.
PX4 supports [all SBG Systems products](https://www.sbg-systems.com/products/) and can use these as an [external INS](../sensor/inertial_navigation_systems.md) (bypassing/replacing the EKF2 estimator), or as a source of raw sensor data provided to the navigation estimator.
![Ellipse](../../assets/hardware/sensors/inertial/ellipse-inertial-navigation-system.png)
## Overview
SBG Systems products provide a range of benefits to PX4 users and can be integrated for:
- Higher accuracy heading, pitch, and roll estimates
- More robust and reliable GNSS positioning
- Improved positioning and attitude performance in GNSS-contested environments
- Performance under challenging dynamic conditions (e.g. catapult launches, VTOL operations, high-g or high angular rate operations)
The sbgECom PX4 driver is streamlined to provide a simple plug-and-play architecture, removing engineering obstacles and allowing the acceleration of the design, development, and launch of platforms to keep pace with the rapid rate of innovation.
The driver supports [all SBG Systems products](https://www.sbg-systems.com/products/).
In particular the following systems are recommended:
- **Pulse:** Recommended for fixed-wing systems without hovering, where static heading is not necessary.
- **Ellipse:** Recommended for multicopter systems where hovering and low dynamics requires the use of static heading.
## Where to Buy
SBG Systems solutions are available directly from [MySBG](https://my.sbg-systems.com) (FR) or through their Global Sales Representatives. For more information on their solutions or for international orders, please contact contact@sbg-systems.com.
## Hardware Setup
### Wiring
Connect any unused flight controller serial interface, such as a spare `GPS` or `TELEM` port, to the SBG Systems product MAIN port (required by PX4).
### Mounting
The SBG Systems product sensor can be mounted in any orientation, in any position on the vehicle, without regard to center of gravity.
All SBG Systems product sensors default to a coordinate system of x-forward, y-right, and z-down, making the default mounting as connector-back, base down.
This can be changed to any rigid rotation using the sbgECom Reference Frame Rotation register.
If using a GNSS-enabled product, the GNSS antenna must be mounted rigidly with respect to the inertial sensor and with an unobstructed sky view. If using a dual-GNSS-enabled product (Ellipse-D), the secondary antenna must be mounted rigidly with respect to the primary antenna and the inertial sensor with an unobstructed sky view.
For more mounting and configuration requirements and recommendations, see the relevant [SBG SUPPORT CENTER](https://support.sbg-systems.com/sc).
## Firmware Configuration
### PX4 Configuration
To use the sbgECom driver:
1. Include the module in firmware in the [kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) by setting the kconfig variables: `CONFIG_DRIVERS_INS_SBGECOM` or `CONFIG_COMMON_INS`.
2. [Set the parameter](../advanced_config/parameters.md) [SENS_SBG_CFG](../advanced_config/parameter_reference.md#SENS_SBG_CFG) to the hardware port connected to the SBG Systems product (for more information see [Serial Port Configuration](../peripherals/serial_configuration.md)).
::: warning
Disable or change port of other sensors that are using the same one, for example [GPS_1_CONFIG](../advanced_config/parameter_reference.md#GPS_1_CONFIG) if using GPS1 port.
:::
3. Set [SBG_BAUDRATE](../advanced_config/parameter_reference.md#SBG_BAUDRATE) to the desired default baudrate value.
4. Allow the sbgECom driver to initialize by restarting PX4.
5. Configure driver to provide IMU data, GNSS data and INS :
1. Set [SBG_MODE](../advanced_config/parameter_reference.md#SBG_MODE) to the desired mode.
2. Make sensor module select sensors by enabling [SENS_IMU_MODE](../advanced_config/parameter_reference.md#SENS_IMU_MODE).
3. Prioritize SBG Systems sensors using [CAL_GYROn_PRIO](../advanced_config/parameter_reference.md#CAL_GYRO0_PRIO), [CAL_ACCn_PRIO](../advanced_config/parameter_reference.md#CAL_ACC0_PRIO), [CAL_BAROn_PRIO](../advanced_config/parameter_reference.md#CAL_BARO0_PRIO), [CAL_MAGn_PRIO](../advanced_config/parameter_reference.md#CAL_MAG0_PRIO), where _n_ is the instance number of the IMU component (0, 1, etc.).
::: tip
In most cases the external IMU (SBG) is the highest-numbered.
You can get a list of the IMU components available using [`uorb top -1`](../middleware/uorb.md#uorb-top-command), you can differentiate between them using the [`listener`](../modules/modules_command.md#listener) command and looking through the data, or just the rates.
Alternatively, you can check [CAL_GYROn_ID](../advanced_config/parameter_reference.md#CAL_GYRO0_ID) to see the device id.
The priority is 0-255, where 0 is entirely disabled and 255 is highest priority.
:::
::: warning
When configuring both SBG Systems and Pixhawk sensors to have non-zero priority, if the selected sensor is errored (timeout), it can change during operation without being notified.
In this case, MAVLink messages will be updated with the newly selected sensor.
If you don't want to have this fallback mechanism, you must disable unwanted sensors.
:::
4. If using the sbgECom as an INS, disable EKF2 using [EKF2_EN](../advanced_config/parameter_reference.md#EKF2_EN).
6. Restart PX4.
Once enabled, the module will be detected on boot.
IMU data should be published at 200Hz.
## SBG Systems Configuration
All High Performance and Ellipse 3.0 and higher SBG Systems INS can be configured directly from PX4 firmware:
1. Enable [SBG_CONFIGURATION_EN](../advanced_config/parameter_reference.md#SBG_CONFIGURATION_EN)
2. Provide a JSON file `sbg_settings.json` containing SBG Systems INS settings to be applied in your PX4 board `extras` directory (ex: `boards/px4/fmu-v5/extras`). The settings JSON file will be installed in `/etc/extras/sbg_settings.json` on the board.
::: tip
The settings can be retrieved using [sbgEComAPI](https://github.com/SBG-Systems/sbgECom/tree/main/tools/sbgEComApi) or [sbgInsRestApi](https://developer.sbg-systems.com/sbgInsRestApi/1.3/#tag/Settings) and then modified as a JSON file.
:::
::: tip
The settings file can be provided in the SD card in q`/fs/microsd/etc/extras/sbg_settings.json` to avoid rebuilding a new firmware to change JSON settings file.
:::
3. For testing purpose, it's also possible to modify SBG Systems INS settings on the fly:
- By passing a JSON file path as argument when starting sbgecom driver (ex: `sbgecom start -f /fs/microsd/new_sbg_settings.json`)
- By passing a JSON string as argument when starting sbgecom driver: (ex: `sbgecom start -s {"output":{"comA":{"messages":{"airData":"onChange"}}}}`)
For older Ellipse SBG Systems INS or to configure any SBG Systems INS directly, all commands and registers can be found in the [SBG SUPPORT CENTER](https://support.sbg-systems.com/sc).
::: warning
If the baudrate of the serial port on the INS product (used to communicate with PX4) is changed, the parameter [SBG_BAUDRATE](../advanced_config/parameter_reference.md#SBG_BAUDRATE) must be changed to match.
:::
## Published Data
Upon initialization, the driver should print the following information to console (printed using `PX4_INFO`)
- Unit model number
- Unit hardware version
- Unit serial number
- Unit firmware number
This should be accessible using the [`dmesg`](../modules/modules_system.md#dmesg) command.
The sbgECom driver always publishes the unit's data to the following uORB topics:
- [sensor_accel](../msg_docs/SensorAccel.md)
- [sensor_gyro](../msg_docs/SensorGyro.md)
- [sensor_mag](../msg_docs/SensorMag.md)
if configured as a GNSS, publishes:
- [sensor_gps](../msg_docs/SensorGps.md)
and, if configured as an INS, publishes:
- [estimator_status](../msg_docs/EstimatorStatus.md)
- [vehicle_local_position](../msg_docs/VehicleLocalPosition.md)
- [vehicle_global_positon](../msg_docs/VehicleGlobalPosition.md)
- [vehicle_attitude](../msg_docs/VehicleAttitude.md)
::: tip
Published topics can be viewed using the `listener` command.
:::
## Hardware Specifications
- [Product Briefs](https://www.sbg-systems.com/products/)
- [Datasheets](https://www.sbg-systems.com/contact/#products)
+61 -33
View File
@@ -1,10 +1,8 @@
<!-- GENERATED CONTENT: DO NOT EDIT -->
- [Introduction](/index.md)
- [기본 개념](/getting_started/px4_basic_concepts.md)
- [멀티콥터](/frames_multicopter/index.md)
- [Features](/features_mc/index.md)
- [비행 모드 ](/flight_modes_mc/index.md)
- [위치 모드 (멀티콥터)](/flight_modes_mc/position.md)
@@ -37,7 +35,7 @@
- [정압 축적](/advanced_config/static_pressure_buildup.md)
- [Flying (Basics)](/flying/basic_flying_mc.md)
- [완성 기체](/complete_vehicles_mc/index.md)
- [ModalAI Starling](/complete_vehicles_mc/modalai_starling.md)
- [ModalAI Starling (PX4 Dev Kit)](/complete_vehicles_mc/modalai_starling.md)
- [PX4 비전 키트](/complete_vehicles_mc/px4_vision_kit.md)
- [마인드레이서 BNF & RTF](/complete_vehicles_mc/mindracer_BNF_RTF.md)
- [마인드레이서 210](/complete_vehicles_mc/mindracer210.md)
@@ -58,7 +56,6 @@
- [DJI F450 (CUAV v5 nano)](/frames_multicopter/dji_f450_cuav_5nano.md)
- [Planes (Fixed-Wing)](/frames_plane/index.md)
- [Assembly](/assembly/assembly_fw.md)
- [Config/Tuning](/config_fw/index.md)
- [Auto-tune](/config/autotune_fw.md)
@@ -86,7 +83,6 @@
- [Wing Wing Z84 (Pixracer)](/frames_plane/wing_wing_z84.md)
- [수직이착륙기(VTOL)](/frames_vtol/index.md)
- [Assembly](/assembly/assembly_vtol.md)
- [VTOL 설정 및 튜닝](/config_vtol/index.md)
- [Auto-tune](/config/autotune_vtol.md)
@@ -111,7 +107,6 @@
- [Complete Vehicles](/complete_vehicles_vtol/index.md)
- [Operations](/config/operations.md)
- [안전 설정](/config/safety_intro.md)
- [Safety Configuration (Failsafes)](/config/safety.md)
- [Failsafe Simulation](/config/safety_simulation.md)
@@ -132,7 +127,6 @@
- [QGroundControl Flight-Readiness Status](/flying/pre_flight_checks.md)
- [Hardware Selection & Setup](/hardware/drone_parts.md)
- [비행 컨트롤러 (오토파일럿)](/flight_controller/index.md)
- [Flight Controller Selection](/getting_started/flight_controller_selection.md)
- [Pixhawk Series](/flight_controller/pixhawk_series.md)
@@ -169,13 +163,12 @@
- [ARK Electronics ARKV6X](/flight_controller/ark_v6x.md)
- [ARK FPV Flight Controller](/flight_controller/ark_fpv.md)
- [ARK Pi6X Flow Flight Controller](/flight_controller/ark_pi6x.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV Nora](/flight_controller/cuav_nora.md)
- [CUAV V5+ (FMUv5)](/flight_controller/cuav_v5_plus.md)
- [Wiring Quickstart](/assembly/quick_start_cuav_v5_plus.md)
- [CUAV V5 nano (FMUv5)](/flight_controller/cuav_v5_nano.md)
- [CUAV V5 nano 배선 퀵 스타트](/assembly/quick_start_cuav_v5_nano.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [CUAV X25 EVO](/flight_controller/cuav_x25-evo.md)
- [CubePilot Cube Orange+ (CubePilot)](/flight_controller/cubepilot_cube_orangeplus.md)
- [CubePilot Cube Orange (CubePilot)](/flight_controller/cubepilot_cube_orange.md)
- [CubePilot Cube Yellow (CubePilot)](/flight_controller/cubepilot_cube_yellow.md)
@@ -188,11 +181,8 @@
- [Wiring Quickstart](/assembly/quick_start_durandal.md)
- [Holybro Pix32 v5](/flight_controller/holybro_pix32_v5.md)
- [Wiring Quickstart](/assembly/quick_start_holybro_pix32_v5.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [ModalAI VOXL 2](/flight_controller/modalai_voxl_2.md)
- [mRobotics-X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo Control Zero F7)](/flight_controller/mro_control_zero_f7.md)
- [mRo Control Zero F7](/flight_controller/mro_control_zero_f7.md)
- [Sky-Drones AIRLink](/flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](/flight_controller/spracingh7extreme.md)
- [ThePeach FCC-K1](/flight_controller/thepeach_k1.md)
@@ -206,18 +196,20 @@
- [Discontinued Autopilots/Vehicles](/flight_controller/autopilot_discontinued.md)
- [Drotek Dropix (FMUv2)](/flight_controller/dropix.md)
- [Omnibus F4 SD](/flight_controller/omnibus_f4_sd.md)
- [BetaFPV Beta75X 2S Brushless Whoop](/complete_vehicles_mc/betafpv_beta75x.md)
- [Bitcraze Crazyflie 2.0 ](/complete_vehicles_mc/crazyflie2.md)
- [Aerotenna OcPoC-Zynq Mini](/flight_controller/ocpoc_zynq.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV v5](/flight_controller/cuav_v5.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [Holybro Kakute F7](/flight_controller/kakutef7.md)
- [Holybro Pixfalcon](/flight_controller/pixfalcon.md)
- [Holybro pix32 (FMUv2)](/flight_controller/holybro_pix32.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [mRo X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo AUAV-X2](/flight_controller/auav_x2.md)
- [NXP RDDRONE-FMUK66 FMU](/flight_controller/nxp_rddrone_fmuk66.md)
- [3DR Pixhawk 1](/flight_controller/pixhawk.md)
- [Snapdragon Flight](/flight_controller/snapdragon_flight.md)
- [Intel® Aero RTF Drone](/complete_vehicles_mc/intel_aero.md)
- [Pixhawk Autopilot Bus (PAB) & Carriers](/flight_controller/pixhawk_autopilot_bus.md)
- [ARK Electronics Pixhawk Autopilot Bus Carrier](/flight_controller/ark_pab.md)
- [Mounting the Flight Controller](/assembly/mount_and_orient_controller.md)
@@ -229,7 +221,9 @@
- [Bootloader Update](/advanced_config/bootloader_update.md)
- [Bootloader Update FMUv6X-RT via USB](/advanced_config/bootloader_update_v6xrt.md)
- [Bootloader Flashing onto Betaflight Systems](/advanced_config/bootloader_update_from_betaflight.md)
- [Airframe Selection](/config/airframe.md)
- [센서](/sensor/index.md)
- [가속도계](/sensor/accelerometer.md)
- [Calibration](/config/accelerometer.md)
@@ -241,6 +235,7 @@
- [나침반 전력 보정](/advanced_config/compass_power_compensation.md)
- [항속 센서](/sensor/airspeed.md)
- [Calibration](/config/airspeed.md)
- [Airspeed Validation](/advanced_config/airspeed_validation.md)
- [TFSlot Airspeed Sensor](/sensor/airspeed_tfslot.md)
- [Barometers](/sensor/barometer.md)
- [거리 센서](/sensor/rangefinders.md)
@@ -272,6 +267,7 @@
- [CUAV C-RTK](/gps_compass/rtk_gps_cuav_c-rtk.md)
- [CUAV C-RTK2 PPK/RTK GNSS](/gps_compass/rtk_gps_cuav_c-rtk2.md)
- [CUAV C-RTK 9Ps](/gps_compass/rtk_gps_cuav_c-rtk-9ps.md)
- [DATAGNSS NANO HRTK GNSS](/gps_compass/rtk_gps_datagnss_nano_hrtk.md)
- [DATAGNSS GEM1305 RTK GNSS](/gps_compass/rtk_gps_gem1305.md)
- [Femtones MINI2 Receiver](/gps_compass/rtk_gps_fem_mini2.md)
- [Freefly RTK GPS](/gps_compass/rtk_gps_freefly.md)
@@ -287,6 +283,7 @@
- [Trimble MB-Two](/gps_compass/rtk_gps_trimble_mb_two.md)
- [CubePilot Here+ (Discontined)](/gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Inertial Navigation/GNSS)](/sensor/inertial_navigation_systems.md)
- [InertialLabs](/sensor/inertiallabs.md)
- [VectorNav](/sensor/vectornav.md)
- [광류 센서](/sensor/optical_flow.md)
- [ARK Flow](/dronecan/ark_flow.md)
@@ -297,6 +294,7 @@
- [ThunderFly TFRPM01 타코미터 센서](/sensor/thunderfly_tachometer.md)
- [IMU Factory Calibration](/advanced_config/imu_factory_calibration.md)
- [센서 온도 보정](/advanced_config/sensor_thermal_calibration.md)
- [액츄에이터](/actuators/index.md)
- [ADSB/FLARM (트래픽 회피)](/config/actuators.md)
- [ESC 보정](/advanced_config/esc_calibration.md)
@@ -308,19 +306,22 @@
- [Zubax Telega](/dronecan/zubax_telega.md)
- [PX4 Sapog ESC Firmware](/dronecan/sapog.md)
- [Holybro Kotleta](/dronecan/holybro_kotleta.md)
- [Zubax Orel](/dronecan/zubax_orel.md)
- [Vertiq](/peripherals/vertiq.md)
- [VESC](/peripherals/vesc.md)
- [Radio Control (RC)](/getting_started/rc_transmitter_receiver.md)
- [무선 조종기 설정](/config/radio.md)
- [비행 모드](/config/flight_mode.md)
- [Joysticks](/config/joystick.md)
- [Data Links](/data_links/index.md)
- [MAVLink 텔레메트리(OSD/GCS) ](/peripherals/mavlink_peripherals.md)
- [텔레메트리 무선통신](/telemetry/index.md)
- [SiK 무선통신](/telemetry/sik_radio.md)
- [RFD900 (SiK) 텔레메트리](/telemetry/rfd900_telemetry.md)
- [ThunderFly TFSIK01 Telemetry Radio](/telemetry/tfsik_telemetry.md)
- [HolyBro (SIK) Telemetry Radio](/telemetry/holybro_sik_radio.md)
- [Wifi 텔레메트리](/telemetry/telemetry_wifi.md)
- [ESP8266 WiFi 모듈](/telemetry/esp8266_wifi_module.md)
@@ -338,6 +339,7 @@
- [TBS Crossfire (CRSF) Telemetry](/telemetry/crsf_telemetry.md)
- [Satellite Comms (Iridium/RockBlock)](/advanced_features/satcom_roadblock.md)
- [Power Systems](/power_systems/index.md)
- [Battery Estimation Tuning](/config/battery.md)
- [Battery Chemistry Overview](/power_systems/battery_chemistry.md)
@@ -356,6 +358,7 @@
- [Sky-Drones SmartAP PDB](/power_module/sky-drones_smartap-pdb.md)
- [Smart/MAVLink Batteries](/smart_batteries/index.md)
- [Rotoye Batmon 배터리 스마트 키트](/smart_batteries/rotoye_batmon.md)
- [탑재중량과 카메라](/payloads/index.md)
- [Use Cases](/payloads/use_cases.md)
- [Package Delivery Mission](/flying/package_delivery_mission.md)
@@ -367,19 +370,25 @@
- [Gimbal \(Mount\) Configuration](/advanced/gimbal_control.md)
- [Grippers](/peripherals/gripper.md)
- [Servo Gripper](/peripherals/gripper_servo.md)
- [Peripherals](/peripherals/index.md)
- [ADSB/FLARM/UTM (Traffic Avoidance)](/peripherals/adsb_flarm.md)
- [낙하산](/peripherals/parachute.md)
- [Remote ID](/peripherals/remote_id.md)
- [I2C Peripherals](/sensor_bus/i2c_general.md)
- [I2C bus accelerators](/sensor_bus/i2c_general.md#i2c-bus-accelerators)
- [TFI2CADT01 I2C address translator](/sensor_bus/translator_tfi2cadt.md)
- [CAN Peripherals](/can/index.md)
- [DroneCAN Peripherals](/dronecan/index.md)
- [PX4 DroneCAN Firmware](/dronecan/px4_cannode_fw.md)
- [ARK CANnode](/dronecan/ark_cannode.md)
- [RaccoonLab CAN Nodes](/dronecan/raccoonlab_nodes.md)
- [배선 개요](/assembly/cable_wiring.md)
- [보조 컴퓨터](/companion_computer/index.md)
- [Pixhawk + Companion Setup](/companion_computer/pixhawk_companion.md)
- [RPi Pixhawk Companion](/companion_computer/pixhawk_rpi.md)
@@ -395,16 +404,19 @@
- [리얼센스 T265 트래킹 카메라 (VIO)](/camera/camera_intel_realsense_t265_vio.md)
- [동영상 스트리밍](/companion_computer/video_streaming.md)
- [Video Streaming using WFB-ng Wifi (Long range)](/companion_computer/video_streaming_wfb_ng_wifi.md)
- [직렬 포트 설정 ](/peripherals/serial_configuration.md)
- [PX4 이더넷 설정](/advanced_config/ethernet_setup.md)
- [Standard Configuration](/config/index.md)
- [고급 설정](/advanced_config/index.md)
- [Using PX4's Navigation Filter (EKF2)](/advanced_config/tuning_the_ecl_ekf.md)
- [매개변수 검색 및 수정](/advanced_config/parameters.md)
- [전체 매개변수 정의서](/advanced_config/parameter_reference.md)
- [Other Vehicles](/airframes/index.md)
- [Airships (experimental)](/frames_airship/index.md)
- [Autogyros (experimental)](/frames_autogyro/index.md)
- [선더플라이 Auto-G2 (Holybro pix32)](/frames_autogyro/thunderfly_auto_g2.md)
@@ -412,17 +424,17 @@
- [Helicopter (experimental)](/frames_helicopter/index.md)
- [Helicopter Config/Tuning](/config_heli/index.md)
- [Rovers (experimental)](/frames_rover/index.md)
- [Ackermann Rovers](/frames_rover/ackermann.md)
- [Drive Modes](/flight_modes_rover/ackermann.md)
- [Configuration/Tuning](/config_rover/ackermann.md)
- [Differential Rovers](/frames_rover/differential.md)
- [Drive Modes](/flight_modes_rover/differential.md)
- [Configuration/Tuning](/config_rover/differential.md)
- [Aion Robotics R1](/frames_rover/aion_r1.md)
- [Mecanum Rovers](/frames_rover/mecanum.md)
- [Drive Modes](/flight_modes_rover/mecanum.md)
- [Configuration/Tuning](/config_rover/mecanum.md)
- [(Deprecated) Rover Position Control](/frames_rover/rover_position_control.md)
- [Drive Modes](/flight_modes_rover/index.md)
- [Manual](/flight_modes_rover/manual.md)
- [Auto](/flight_modes_rover/auto.md)
- [Configuration/Tuning](/config_rover/index.md)
- [Basic Setup](/config_rover/basic_setup.md)
- [Rate Tuning](/config_rover/rate_tuning.md)
- [Attitude Tuning](/config_rover/attitude_tuning.md)
- [Velocity Tuning](/config_rover/velocity_tuning.md)
- [Position Tuning](/config_rover/position_tuning.md)
- [Complete Vehicles](/complete_vehicles_rover/index.md)
- [Aion Robotics R1](/complete_vehicles_rover/aion_r1.md)
- [Submarines (experimental)](/frames_sub/index.md)
- [블루로브2](/frames_sub/bluerov2.md)
- [기체 프레임 정의서](/airframes/airframe_reference.md)
@@ -534,6 +546,7 @@
- [Airspeed](/msg_docs/Airspeed.md)
- [AirspeedWind](/msg_docs/AirspeedWind.md)
- [AutotuneAttitudeControlStatus](/msg_docs/AutotuneAttitudeControlStatus.md)
- [BatteryInfo](/msg_docs/BatteryInfo.md)
- [ButtonEvent](/msg_docs/ButtonEvent.md)
- [CameraCapture](/msg_docs/CameraCapture.md)
- [CameraStatus](/msg_docs/CameraStatus.md)
@@ -552,6 +565,7 @@
- [DifferentialPressure](/msg_docs/DifferentialPressure.md)
- [DistanceSensor](/msg_docs/DistanceSensor.md)
- [DistanceSensorModeChangeRequest](/msg_docs/DistanceSensorModeChangeRequest.md)
- [DronecanNodeStatus](/msg_docs/DronecanNodeStatus.md)
- [Ekf2Timestamps](/msg_docs/Ekf2Timestamps.md)
- [EscReport](/msg_docs/EscReport.md)
- [EscStatus](/msg_docs/EscStatus.md)
@@ -626,6 +640,7 @@
- [MountOrientation](/msg_docs/MountOrientation.md)
- [NavigatorMissionItem](/msg_docs/NavigatorMissionItem.md)
- [NavigatorStatus](/msg_docs/NavigatorStatus.md)
- [NeuralControl](/msg_docs/NeuralControl.md)
- [NormalizedUnsignedSetpoint](/msg_docs/NormalizedUnsignedSetpoint.md)
- [ObstacleDistance](/msg_docs/ObstacleDistance.md)
- [OffboardControlMode](/msg_docs/OffboardControlMode.md)
@@ -724,7 +739,12 @@
- [Wind](/msg_docs/Wind.md)
- [YawEstimatorStatus](/msg_docs/YawEstimatorStatus.md)
- [AirspeedValidatedV0](/msg_docs/AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](/msg_docs/ArmingCheckReplyV0.md)
- [BatteryStatusV0](/msg_docs/BatteryStatusV0.md)
- [EventV0](/msg_docs/EventV0.md)
- [HomePositionV0](/msg_docs/HomePositionV0.md)
- [VehicleAttitudeSetpointV0](/msg_docs/VehicleAttitudeSetpointV0.md)
- [VehicleLocalPositionV0](/msg_docs/VehicleLocalPositionV0.md)
- [VehicleStatusV0](/msg_docs/VehicleStatusV0.md)
- [MAVLink Messaging](/mavlink/index.md)
- [Adding Messages](/mavlink/adding_messages.md)
@@ -734,6 +754,7 @@
- [Protocols/Microservices](/mavlink/protocols.md)
- [Standard Modes Protocol](/mavlink/standard_modes.md)
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](/middleware/uxrce_dds.md)
- [UORB Bridged to ROS 2](/middleware/dds_topics.md)
- [모듈과 명령어](/modules/modules_main.md)
- [자동 튜닝](/modules/modules_autotune.md)
- [명령어](/modules/modules_command.md)
@@ -763,7 +784,7 @@
- [Debugging with GDB](/debug/gdb_debugging.md)
- [SWD Debug Port](/debug/swd_debug.md)
- [JLink Probe](/debug/probe_jlink.md)
- [Black Magic/DroneCode Probe](/debug/probe_bmp.md)
- [Black Magic/Zubax BugFace BF1 Probe](/debug/probe_bmp.md)
- [STLink Probe](/debug/probe_stlink.md)
- [MCU-Link Probe](/debug/probe_mculink.md)
- [Hardfault Debugging](/debug/gdb_hardfault.md)
@@ -787,6 +808,9 @@
- [Camera Integration/Architecture](/camera/camera_architecture.md)
- [컴퓨터 비전](/advanced/computer_vision.md)
- [Motion Capture (VICON, Optitrack, NOKOV)](/tutorials/motion-capture.md)
- [Neural Networks](/advanced/neural_networks.md)
- [Neural Network Module Utilities](/advanced/nn_module_utilities.md)
- [TensorFlow Lite Micro (TFLM)](/advanced/tflm.md)
- [Intel RealSense R200용 드라이버 설치](/advanced/realsense_intel_driver.md)
- [상태 추정기 전환](/advanced/switching_state_estimators.md)
- [트리 외부 모듈](/advanced/out_of_tree_modules.md)
@@ -818,8 +842,12 @@
- [시험 MC_02 - 완전 자동](/test_cards/mc_02_full_autonomous.md)
- [시험 MC_03 - 자동 / 수동 혼합](/test_cards/mc_03_auto_manual_mix.md)
- [시험 MC_04 - 안전 장치 시험](/test_cards/mc_04_failsafe_testing.md)
- [시험 MC_05 - 실내 비행 (수동 모드)](/test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_05 - Manual Modes (Inside)](/test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_06 - Optical Flow (Inside)](/test_cards/mc_06_optical_flow.md)
- [Test MC_07 - VIO (Inside)](/test_cards/mc_07_vio.md)
- [Test MC_08 - DSHOT ESC](/test_cards/mc_08_dshot.md)
- [단위 테스트](/test_and_ci/unit_tests.md)
- [Fuzz Tests](/test_and_ci/fuzz_tests.md)
- [지속 통합](/test_and_ci/continous_integration.md)
- [Integration Testing](/test_and_ci/integration_testing.md)
- [MAVSDK 통합 테스트](/test_and_ci/integration_testing_mavsdk.md)
@@ -862,8 +890,8 @@
- [출시](/releases/index.md)
- [main (alpha)](/releases/main.md)
- [1.16 (release candidate)](/releases/1.16.md)
- [1.15 (stable)](/releases/1.15.md)
- [1.16 (stable)](/releases/1.16.md)
- [1.15](/releases/1.15.md)
- [1.14](/releases/1.14.md)
- [1.13](/releases/1.13.md)
- [1.12](/releases/1.12.md)
+61 -33
View File
@@ -1,10 +1,8 @@
<!-- GENERATED CONTENT: DO NOT EDIT -->
- [Введення](/index.md)
- [Основні поняття](/getting_started/px4_basic_concepts.md)
- [Мультикоптери](/frames_multicopter/index.md)
- [Функції](/features_mc/index.md)
- [Режим польоту](/flight_modes_mc/index.md)
- [Position Mode (MC)](/flight_modes_mc/position.md)
@@ -37,7 +35,7 @@
- [Static Pressure Buildup](/advanced_config/static_pressure_buildup.md)
- [Flying (Basics)](/flying/basic_flying_mc.md)
- [Complete Vehicles](/complete_vehicles_mc/index.md)
- [ModalAI Starling](/complete_vehicles_mc/modalai_starling.md)
- [ModalAI Starling (PX4 Dev Kit)](/complete_vehicles_mc/modalai_starling.md)
- [PX4 Vision Kit](/complete_vehicles_mc/px4_vision_kit.md)
- [MindRacer BNF & RTF](/complete_vehicles_mc/mindracer_BNF_RTF.md)
- [MindRacer 210](/complete_vehicles_mc/mindracer210.md)
@@ -58,7 +56,6 @@
- [DJI F450 (CUAV v5 nano)](/frames_multicopter/dji_f450_cuav_5nano.md)
- [Літаки (з фіксованим крилом)](/frames_plane/index.md)
- [Збірка](/assembly/assembly_fw.md)
- [Конфігурація/підлаштування](/config_fw/index.md)
- [Auto-tune](/config/autotune_fw.md)
@@ -86,7 +83,6 @@
- [Wing Wing Z84 (Pixracer)](/frames_plane/wing_wing_z84.md)
- [VTOL (Вертикальний зліт та посадка)](/frames_vtol/index.md)
- [Assembly](/assembly/assembly_vtol.md)
- [Конфігурація/Налаштування VTOL](/config_vtol/index.md)
- [Auto-tune](/config/autotune_vtol.md)
@@ -111,7 +107,6 @@
- [Complete Vehicles](/complete_vehicles_vtol/index.md)
- [Operations](/config/operations.md)
- [Безпека](/config/safety_intro.md)
- [Конфігурація безпеки (запобіжники)](/config/safety.md)
- [Моделювання відмовостійкості](/config/safety_simulation.md)
@@ -132,7 +127,6 @@
- [QGroundControl Flight-Readiness Status](/flying/pre_flight_checks.md)
- [Вибір обладнання & Налаштування](/hardware/drone_parts.md)
- [Flight Controllers (Autopilots)](/flight_controller/index.md)
- [Польотні контролери](/getting_started/flight_controller_selection.md)
- [Серія Pixhawk](/flight_controller/pixhawk_series.md)
@@ -169,13 +163,12 @@
- [ARK Electronics ARKV6X](/flight_controller/ark_v6x.md)
- [ARK FPV Flight Controller](/flight_controller/ark_fpv.md)
- [ARK Pi6X Flow Flight Controller](/flight_controller/ark_pi6x.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV Nora](/flight_controller/cuav_nora.md)
- [CUAV V5+ (FMUv5)](/flight_controller/cuav_v5_plus.md)
- [Wiring Quickstart](/assembly/quick_start_cuav_v5_plus.md)
- [CUAV V5 nano (FMUv5)](/flight_controller/cuav_v5_nano.md)
- [Швидке підключення CUAV V5 nano](/assembly/quick_start_cuav_v5_nano.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [CUAV X25 EVO](/flight_controller/cuav_x25-evo.md)
- [CubePilot Cube Orange+ (CubePilot)](/flight_controller/cubepilot_cube_orangeplus.md)
- [CubePilot Cube Orange (CubePilot)](/flight_controller/cubepilot_cube_orange.md)
- [CubePilot Cube Yellow (CubePilot)](/flight_controller/cubepilot_cube_yellow.md)
@@ -188,11 +181,8 @@
- [Wiring Quickstart](/assembly/quick_start_durandal.md)
- [Holybro Pix32 v5](/flight_controller/holybro_pix32_v5.md)
- [Wiring Quickstart](/assembly/quick_start_holybro_pix32_v5.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [ModalAI VOXL 2](/flight_controller/modalai_voxl_2.md)
- [mRobotics-X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo Control Zero F7)](/flight_controller/mro_control_zero_f7.md)
- [mRo Control Zero F7](/flight_controller/mro_control_zero_f7.md)
- [Sky-Drones AIRLink](/flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](/flight_controller/spracingh7extreme.md)
- [ThePeach FCC-K1](/flight_controller/thepeach_k1.md)
@@ -206,18 +196,20 @@
- [Зняті з виробництва автопілоти/транспортні засоби](/flight_controller/autopilot_discontinued.md)
- [Drotek Dropix (FMUv2)](/flight_controller/dropix.md)
- [Omnibus F4 SD](/flight_controller/omnibus_f4_sd.md)
- [BetaFPV Beta75X 2S Brushless Whoop](/complete_vehicles_mc/betafpv_beta75x.md)
- [Bitcraze Crazyflie 2.0 ](/complete_vehicles_mc/crazyflie2.md)
- [Aerotenna OcPoC-Zynq Mini](/flight_controller/ocpoc_zynq.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV v5](/flight_controller/cuav_v5.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [Holybro Kakute F7](/flight_controller/kakutef7.md)
- [Holybro Pixfalcon](/flight_controller/pixfalcon.md)
- [Holybro pix32 (FMUv2)](/flight_controller/holybro_pix32.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [mRo X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo AUAV-X2](/flight_controller/auav_x2.md)
- [NXP RDDRONE-FMUK66 FMU](/flight_controller/nxp_rddrone_fmuk66.md)
- [3DR Pixhawk 1](/flight_controller/pixhawk.md)
- [Snapdragon Flight](/flight_controller/snapdragon_flight.md)
- [Intel® Aero RTF Drone](/complete_vehicles_mc/intel_aero.md)
- [Pixhawk Autopilot Bus (PAB) & Carriers](/flight_controller/pixhawk_autopilot_bus.md)
- [ARK Electronics Pixhawk Autopilot Bus Carrier](/flight_controller/ark_pab.md)
- [Кріплення польотного контролера](/assembly/mount_and_orient_controller.md)
@@ -229,7 +221,9 @@
- [Оновлення завантажувача](/advanced_config/bootloader_update.md)
- [Оновлення бутлоадера FMUv6X-RT через USB](/advanced_config/bootloader_update_v6xrt.md)
- [Bootloader прошивка на системи Betaflight](/advanced_config/bootloader_update_from_betaflight.md)
- [Airframe Selection](/config/airframe.md)
- [Сенсори](/sensor/index.md)
- [Акселерометр](/sensor/accelerometer.md)
- [Калібрування](/config/accelerometer.md)
@@ -241,6 +235,7 @@
- [Compass Power Compensation](/advanced_config/compass_power_compensation.md)
- [Датчики швидкості повітря](/sensor/airspeed.md)
- [Калібрування](/config/airspeed.md)
- [Airspeed Validation](/advanced_config/airspeed_validation.md)
- [ВЗІП Датчик польоту](/sensor/airspeed_tfslot.md)
- [Барометри](/sensor/barometer.md)
- [Датчики відстані \(далекодобива\)](/sensor/rangefinders.md)
@@ -272,6 +267,7 @@
- [CUAV C-RTK](/gps_compass/rtk_gps_cuav_c-rtk.md)
- [CUAV C-RTK2 PPK/RTK GNSS](/gps_compass/rtk_gps_cuav_c-rtk2.md)
- [CUAV C-RTK 9Ps](/gps_compass/rtk_gps_cuav_c-rtk-9ps.md)
- [DATAGNSS NANO HRTK GNSS](/gps_compass/rtk_gps_datagnss_nano_hrtk.md)
- [DATAGNSS GEM1305 RTK GNSS](/gps_compass/rtk_gps_gem1305.md)
- [Femtones MINI2 Receiver](/gps_compass/rtk_gps_fem_mini2.md)
- [Freefly RTK GPS](/gps_compass/rtk_gps_freefly.md)
@@ -287,6 +283,7 @@
- [Trimble MB-Two](/gps_compass/rtk_gps_trimble_mb_two.md)
- [CubePilot Here+ (Discontined)](/gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Інерціальна навігація/GNSS)](/sensor/inertial_navigation_systems.md)
- [InertialLabs](/sensor/inertiallabs.md)
- [VectorNav](/sensor/vectornav.md)
- [Optical Flow](/sensor/optical_flow.md)
- [ARK Flow](/dronecan/ark_flow.md)
@@ -297,6 +294,7 @@
- [Датчик тахометра ThunderFly TFRPM01](/sensor/thunderfly_tachometer.md)
- [Заводське калібрування IMU](/advanced_config/imu_factory_calibration.md)
- [Sensor Thermal Compensation](/advanced_config/sensor_thermal_calibration.md)
- [Актуатори](/actuators/index.md)
- [Розподіл приводу](/config/actuators.md)
- [Калібрування ESC (плати контролю двигунів)](/advanced_config/esc_calibration.md)
@@ -308,19 +306,22 @@
- [Zubax Telega](/dronecan/zubax_telega.md)
- [Прошивка PX4 Sapog ESC](/dronecan/sapog.md)
- [Holybro Kotleta](/dronecan/holybro_kotleta.md)
- [Zubax Orel](/dronecan/zubax_orel.md)
- [Vertiq](/peripherals/vertiq.md)
- [VESC](/peripherals/vesc.md)
- [Радіокерування (RC)](/getting_started/rc_transmitter_receiver.md)
- [Налаштування радіо](/config/radio.md)
- [Режими польоту](/config/flight_mode.md)
- [Джойстики](/config/joystick.md)
- [Посилання даних](/data_links/index.md)
- [MAVLink Telemetry (OSD/GCS)](/peripherals/mavlink_peripherals.md)
- [Телеметричні радіостанції](/telemetry/index.md)
- [SiK Radio](/telemetry/sik_radio.md)
- [Телеметричне радіо RFD900 (SiK)](/telemetry/rfd900_telemetry.md)
- [ThunderFly TFSIK01 Telemetry Radio](/telemetry/tfsik_telemetry.md)
- [HolyBro (SIK) Телеметричне радіо](/telemetry/holybro_sik_radio.md)
- [Телеметрія Wi-Fi](/telemetry/telemetry_wifi.md)
- [Модуль WiFi ESP8266](/telemetry/esp8266_wifi_module.md)
@@ -338,6 +339,7 @@
- [TBS Crossfire (CRSF) телеметрія](/telemetry/crsf_telemetry.md)
- [Супутниковий зв'язок (Iridium/RockBlock)](/advanced_features/satcom_roadblock.md)
- [Енергетичні системи](/power_systems/index.md)
- [Налаштування оцінки батареї](/config/battery.md)
- [Battery Chemistry Overview](/power_systems/battery_chemistry.md)
@@ -356,6 +358,7 @@
- [Sky-Drones SmartAP PDB](/power_module/sky-drones_smartap-pdb.md)
- [Акумулятори Smart/MAVLink](/smart_batteries/index.md)
- [Rotoye Batmon Комплект інтелектуального акумулятора](/smart_batteries/rotoye_batmon.md)
- [Вантажі & камери](/payloads/index.md)
- [Випадки використання](/payloads/use_cases.md)
- [Місія доставки посилок](/flying/package_delivery_mission.md)
@@ -367,19 +370,25 @@
- [Конфігурація Gimbal \(Mount\)](/advanced/gimbal_control.md)
- [Grippers](/peripherals/gripper.md)
- [Servo Gripper](/peripherals/gripper_servo.md)
- [Периферія](/peripherals/index.md)
- [ADSB/FLARM/UTM (уникнення трафіку)](/peripherals/adsb_flarm.md)
- [Парашут](/peripherals/parachute.md)
- [Remote ID](/peripherals/remote_id.md)
- [Периферійні пристрої I2C](/sensor_bus/i2c_general.md)
- [Прискорювачі шини I2C](/sensor_bus/i2c_general.md#i2c-bus-accelerators)
- [TFI2CADT01 Транслятор адреси I2C](/sensor_bus/translator_tfi2cadt.md)
- [Периферійні пристрої CAN](/can/index.md)
- [Периферійні пристрої DroneCAN](/dronecan/index.md)
- [Прошивка PX4 DroneCAN](/dronecan/px4_cannode_fw.md)
- [ARK CANnode](/dronecan/ark_cannode.md)
- [RaccoonLab CAN Nodes](/dronecan/raccoonlab_nodes.md)
- [Підключення дротів](/assembly/cable_wiring.md)
- [Комп’ютери-супутники](/companion_computer/index.md)
- [Налаштування Pixhawk + Companion](/companion_computer/pixhawk_companion.md)
- [RPi Pixhawk Companion](/companion_computer/pixhawk_rpi.md)
@@ -395,16 +404,19 @@
- [Realsense T265 Tracking Camera (VIO)](/camera/camera_intel_realsense_t265_vio.md)
- [Потокове відео](/companion_computer/video_streaming.md)
- [Потокове відео за допомогою WFB-ng Wi-Fi (далекий діапазон)](/companion_computer/video_streaming_wfb_ng_wifi.md)
- [Serial Port Configuration](/peripherals/serial_configuration.md)
- [PX4 Ethernet Setup](/advanced_config/ethernet_setup.md)
- [Стандартна конфігурація](/config/index.md)
- [Розширені налаштування](/advanced_config/index.md)
- [Using PX4's Navigation Filter (EKF2)](/advanced_config/tuning_the_ecl_ekf.md)
- [Finding/Updating Parameters](/advanced_config/parameters.md)
- [Full Parameter Reference](/advanced_config/parameter_reference.md)
- [Інші транспортні засоби](/airframes/index.md)
- [Airships (experimental)](/frames_airship/index.md)
- [Autogyros (experimental)](/frames_autogyro/index.md)
- [ThunderFly Auto-G2 (Holybro pix32)](/frames_autogyro/thunderfly_auto_g2.md)
@@ -412,17 +424,17 @@
- [Helicopter (experimental)](/frames_helicopter/index.md)
- [Конфігурація/Підлаштування](/config_heli/index.md)
- [Rovers (experimental)](/frames_rover/index.md)
- [Ackermann Rovers](/frames_rover/ackermann.md)
- [Drive Modes](/flight_modes_rover/ackermann.md)
- [Конфігурація/Підлаштування](/config_rover/ackermann.md)
- [Differential Rovers](/frames_rover/differential.md)
- [Drive Modes](/flight_modes_rover/differential.md)
- [Конфігурація/Підлаштування](/config_rover/differential.md)
- [Aion Robotics R1](/frames_rover/aion_r1.md)
- [Mecanum Rovers](/frames_rover/mecanum.md)
- [Drive Modes](/flight_modes_rover/mecanum.md)
- [Конфігурація/Підлаштування](/config_rover/mecanum.md)
- [(Deprecated) Rover Position Control](/frames_rover/rover_position_control.md)
- [Drive Modes](/flight_modes_rover/index.md)
- [Manual](/flight_modes_rover/manual.md)
- [Auto](/flight_modes_rover/auto.md)
- [Configuration/Tuning](/config_rover/index.md)
- [Basic Setup](/config_rover/basic_setup.md)
- [Rate Tuning](/config_rover/rate_tuning.md)
- [Attitude Tuning](/config_rover/attitude_tuning.md)
- [Velocity Tuning](/config_rover/velocity_tuning.md)
- [Position Tuning](/config_rover/position_tuning.md)
- [Complete Vehicles](/complete_vehicles_rover/index.md)
- [Aion Robotics R1](/complete_vehicles_rover/aion_r1.md)
- [Submarines (experimental)](/frames_sub/index.md)
- [BlueROV2](/frames_sub/bluerov2.md)
- [Airframes Reference](/airframes/airframe_reference.md)
@@ -534,6 +546,7 @@
- [Airspeed](/msg_docs/Airspeed.md)
- [AirspeedWind](/msg_docs/AirspeedWind.md)
- [AutotuneAttitudeControlStatus](/msg_docs/AutotuneAttitudeControlStatus.md)
- [BatteryInfo](/msg_docs/BatteryInfo.md)
- [ButtonEvent](/msg_docs/ButtonEvent.md)
- [CameraCapture](/msg_docs/CameraCapture.md)
- [CameraStatus](/msg_docs/CameraStatus.md)
@@ -552,6 +565,7 @@
- [DifferentialPressure](/msg_docs/DifferentialPressure.md)
- [DistanceSensor](/msg_docs/DistanceSensor.md)
- [DistanceSensorModeChangeRequest](/msg_docs/DistanceSensorModeChangeRequest.md)
- [DronecanNodeStatus](/msg_docs/DronecanNodeStatus.md)
- [Ekf2Timestamps](/msg_docs/Ekf2Timestamps.md)
- [EscReport](/msg_docs/EscReport.md)
- [EscStatus](/msg_docs/EscStatus.md)
@@ -626,6 +640,7 @@
- [MountOrientation](/msg_docs/MountOrientation.md)
- [NavigatorMissionItem](/msg_docs/NavigatorMissionItem.md)
- [NavigatorStatus](/msg_docs/NavigatorStatus.md)
- [NeuralControl](/msg_docs/NeuralControl.md)
- [NormalizedUnsignedSetpoint](/msg_docs/NormalizedUnsignedSetpoint.md)
- [ObstacleDistance](/msg_docs/ObstacleDistance.md)
- [OffboardControlMode](/msg_docs/OffboardControlMode.md)
@@ -724,7 +739,12 @@
- [Wind](/msg_docs/Wind.md)
- [YawEstimatorStatus](/msg_docs/YawEstimatorStatus.md)
- [AirspeedValidatedV0](/msg_docs/AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](/msg_docs/ArmingCheckReplyV0.md)
- [BatteryStatusV0](/msg_docs/BatteryStatusV0.md)
- [EventV0](/msg_docs/EventV0.md)
- [HomePositionV0](/msg_docs/HomePositionV0.md)
- [VehicleAttitudeSetpointV0](/msg_docs/VehicleAttitudeSetpointV0.md)
- [VehicleLocalPositionV0](/msg_docs/VehicleLocalPositionV0.md)
- [VehicleStatusV0](/msg_docs/VehicleStatusV0.md)
- [MAVLink Messaging](/mavlink/index.md)
- [Adding Messages](/mavlink/adding_messages.md)
@@ -734,6 +754,7 @@
- [Protocols/Microservices](/mavlink/protocols.md)
- [Standard Modes Protocol](/mavlink/standard_modes.md)
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](/middleware/uxrce_dds.md)
- [UORB Bridged to ROS 2](/middleware/dds_topics.md)
- [Модулі & Команди](/modules/modules_main.md)
- [Автоматичне підлаштування](/modules/modules_autotune.md)
- [Команди](/modules/modules_command.md)
@@ -763,7 +784,7 @@
- [Відлагодження з GDB](/debug/gdb_debugging.md)
- [Порт для налагодження SWD](/debug/swd_debug.md)
- [JLink адаптер](/debug/probe_jlink.md)
- [Black Magic / Dronecode адаптери](/debug/probe_bmp.md)
- [Black Magic/Zubax BugFace BF1 Probe](/debug/probe_bmp.md)
- [STLink адаптер](/debug/probe_stlink.md)
- [MCU-Link адаптер](/debug/probe_mculink.md)
- [Відлагодження Hardfault ](/debug/gdb_hardfault.md)
@@ -787,6 +808,9 @@
- [Інтеграція камери/Архітектура](/camera/camera_architecture.md)
- [Комп'ютерний зір](/advanced/computer_vision.md)
- [Захоплення руху (VICON, Optitrack, NOKOV)](/tutorials/motion-capture.md)
- [Neural Networks](/advanced/neural_networks.md)
- [Neural Network Module Utilities](/advanced/nn_module_utilities.md)
- [TensorFlow Lite Micro (TFLM)](/advanced/tflm.md)
- [Встановлюється драйвер для Intel RealSense R200](/advanced/realsense_intel_driver.md)
- [Перемикання оцінювачів стану](/advanced/switching_state_estimators.md)
- [Out-of-Tree модулі](/advanced/out_of_tree_modules.md)
@@ -818,8 +842,12 @@
- [Тест MC_02 - Повна автономність](/test_cards/mc_02_full_autonomous.md)
- [Тест MC_03 - поєднання автоматичного і ручного керування](/test_cards/mc_03_auto_manual_mix.md)
- [Тест MC_04 - Тестування відмовостійкості](/test_cards/mc_04_failsafe_testing.md)
- [Тест MC_05 - Політ у приміщенні (ручні режими)](/test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_05 - Manual Modes (Inside)](/test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_06 - Optical Flow (Inside)](/test_cards/mc_06_optical_flow.md)
- [Test MC_07 - VIO (Inside)](/test_cards/mc_07_vio.md)
- [Test MC_08 - DSHOT ESC](/test_cards/mc_08_dshot.md)
- [Модульні Тести](/test_and_ci/unit_tests.md)
- [Fuzz Tests](/test_and_ci/fuzz_tests.md)
- [Безперервна інтеграція](/test_and_ci/continous_integration.md)
- [Integration Testing](/test_and_ci/integration_testing.md)
- [MAVSDK Тестування інтеграції ](/test_and_ci/integration_testing_mavsdk.md)
@@ -862,8 +890,8 @@
- [Релізи](/releases/index.md)
- [main (alpha)](/releases/main.md)
- [1.16 (release candidate)](/releases/1.16.md)
- [1.15 (stable)](/releases/1.15.md)
- [1.16 (stable)](/releases/1.16.md)
- [1.15](/releases/1.15.md)
- [1.14](/releases/1.14.md)
- [1.13](/releases/1.13.md)
- [1.12](/releases/1.12.md)
+61 -33
View File
@@ -1,10 +1,8 @@
<!-- GENERATED CONTENT: DO NOT EDIT -->
- [Introduction](/index.md)
- [基本概念](/getting_started/px4_basic_concepts.md)
- [多旋翼](/frames_multicopter/index.md)
- [Features](/features_mc/index.md)
- [飞行模式](/flight_modes_mc/index.md)
- [位置模式(多旋翼)](/flight_modes_mc/position.md)
@@ -37,7 +35,7 @@
- [静态压力生成](/advanced_config/static_pressure_buildup.md)
- [Flying (Basics)](/flying/basic_flying_mc.md)
- [整机](/complete_vehicles_mc/index.md)
- [ModalAI Starling](/complete_vehicles_mc/modalai_starling.md)
- [ModalAI Starling (PX4 Dev Kit)](/complete_vehicles_mc/modalai_starling.md)
- [PX4 视觉套件](/complete_vehicles_mc/px4_vision_kit.md)
- [MindRacer BNF & RTF](/complete_vehicles_mc/mindracer_BNF_RTF.md)
- [MindRacer 210](/complete_vehicles_mc/mindracer210.md)
@@ -58,7 +56,6 @@
- [DJI F450 (CUAV v5 nano)](/frames_multicopter/dji_f450_cuav_5nano.md)
- [Planes (Fixed-Wing)](/frames_plane/index.md)
- [Assembly](/assembly/assembly_fw.md)
- [Config/Tuning](/config_fw/index.md)
- [Auto-tune](/config/autotune_fw.md)
@@ -86,7 +83,6 @@
- [Wing Wing Z84 (Pixracer)](/frames_plane/wing_wing_z84.md)
- [垂直起降](/frames_vtol/index.md)
- [Assembly](/assembly/assembly_vtol.md)
- [垂直起降配置/调试](/config_vtol/index.md)
- [Auto-tune](/config/autotune_vtol.md)
@@ -111,7 +107,6 @@
- [Complete Vehicles](/complete_vehicles_vtol/index.md)
- [Operations](/config/operations.md)
- [安全性](/config/safety_intro.md)
- [Safety Configuration (Failsafes)](/config/safety.md)
- [Failsafe Simulation](/config/safety_simulation.md)
@@ -132,7 +127,6 @@
- [QGroundControl Flight-Readiness Status](/flying/pre_flight_checks.md)
- [Hardware Selection & Setup](/hardware/drone_parts.md)
- [飞行控制器(Autopilots)](/flight_controller/index.md)
- [Flight Controller Selection](/getting_started/flight_controller_selection.md)
- [Pixhawk Series](/flight_controller/pixhawk_series.md)
@@ -169,13 +163,12 @@
- [ARK Electronics ARKV6X](/flight_controller/ark_v6x.md)
- [ARK FPV Flight Controller](/flight_controller/ark_fpv.md)
- [ARK Pi6X Flow Flight Controller](/flight_controller/ark_pi6x.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV Nora](/flight_controller/cuav_nora.md)
- [CUAV V5+ (FMUv5)](/flight_controller/cuav_v5_plus.md)
- [Wiring Quickstart](/assembly/quick_start_cuav_v5_plus.md)
- [CUAV V5 nano (FMUv5)](/flight_controller/cuav_v5_nano.md)
- [CUAV V5 nano Wiring Quickstart](/assembly/quick_start_cuav_v5_nano.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [CUAV X25 EVO](/flight_controller/cuav_x25-evo.md)
- [CubePilot Cube Orange+ (CubePilot)](/flight_controller/cubepilot_cube_orangeplus.md)
- [CubePilot Cube Orange (CubePilot)](/flight_controller/cubepilot_cube_orange.md)
- [CubePilot Cube Yellow (CubePilot)](/flight_controller/cubepilot_cube_yellow.md)
@@ -188,11 +181,8 @@
- [Wiring Quickstart](/assembly/quick_start_durandal.md)
- [Holybro Pix32 v5](/flight_controller/holybro_pix32_v5.md)
- [Wiring Quickstart](/assembly/quick_start_holybro_pix32_v5.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [ModalAI VOXL 2](/flight_controller/modalai_voxl_2.md)
- [mRobotics-X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo Control Zero F7)](/flight_controller/mro_control_zero_f7.md)
- [mRo Control Zero F7](/flight_controller/mro_control_zero_f7.md)
- [Sky-Drones AIRLink](/flight_controller/airlink.md)
- [SPRacing SPRacingH7EXTREME](/flight_controller/spracingh7extreme.md)
- [ThePeach FCC-K1](/flight_controller/thepeach_k1.md)
@@ -206,18 +196,20 @@
- [Discontinued Autopilots/Vehicles](/flight_controller/autopilot_discontinued.md)
- [Drotek Dropix (FMUv2)](/flight_controller/dropix.md)
- [Omnibus F4 SD](/flight_controller/omnibus_f4_sd.md)
- [BetaFPV Beta75X 2S Brushless Whoop](/complete_vehicles_mc/betafpv_beta75x.md)
- [Bitcraze Crazyflie 2.0 ](/complete_vehicles_mc/crazyflie2.md)
- [Aerotenna OcPoC-Zynq Mini](/flight_controller/ocpoc_zynq.md)
- [CUAV X7](/flight_controller/cuav_x7.md)
- [CUAV v5](/flight_controller/cuav_v5.md)
- [CUAV Pixhack v3 (FMUv3)](/flight_controller/pixhack_v3.md)
- [Holybro Kakute F7](/flight_controller/kakutef7.md)
- [Holybro Pixfalcon](/flight_controller/pixfalcon.md)
- [Holybro pix32 (FMUv2)](/flight_controller/holybro_pix32.md)
- [ModalAI Flight Core v1](/flight_controller/modalai_fc_v1.md)
- [ModalAI VOXL Flight](/flight_controller/modalai_voxl_flight.md)
- [mRo X2.1 (FMUv2)](/flight_controller/mro_x2.1.md)
- [mRo AUAV-X2](/flight_controller/auav_x2.md)
- [NXP RDDRONE-FMUK66 FMU](/flight_controller/nxp_rddrone_fmuk66.md)
- [3DR Pixhawk 1](/flight_controller/pixhawk.md)
- [Snapdragon Flight](/flight_controller/snapdragon_flight.md)
- [Intel® Aero RTF Drone](/complete_vehicles_mc/intel_aero.md)
- [Pixhawk Autopilot Bus (PAB) & Carriers](/flight_controller/pixhawk_autopilot_bus.md)
- [ARK Electronics Pixhawk Autopilot Bus Carrier](/flight_controller/ark_pab.md)
- [Mounting the Flight Controller](/assembly/mount_and_orient_controller.md)
@@ -229,7 +221,9 @@
- [Bootloader Update](/advanced_config/bootloader_update.md)
- [Bootloader Update FMUv6X-RT via USB](/advanced_config/bootloader_update_v6xrt.md)
- [Bootloader Flashing onto Betaflight Systems](/advanced_config/bootloader_update_from_betaflight.md)
- [Airframe Selection](/config/airframe.md)
- [传感器](/sensor/index.md)
- [加速度计](/sensor/accelerometer.md)
- [Calibration](/config/accelerometer.md)
@@ -241,6 +235,7 @@
- [指南针动力补偿](/advanced_config/compass_power_compensation.md)
- [空速传感器](/sensor/airspeed.md)
- [Calibration](/config/airspeed.md)
- [Airspeed Validation](/advanced_config/airspeed_validation.md)
- [TFSlot Airspeed Sensor](/sensor/airspeed_tfslot.md)
- [Barometers](/sensor/barometer.md)
- [距离传感器 \(测距仪\)](/sensor/rangefinders.md)
@@ -272,6 +267,7 @@
- [CUAV C-RTK](/gps_compass/rtk_gps_cuav_c-rtk.md)
- [CUAV C-RTK2 PPK/RTK GNSS](/gps_compass/rtk_gps_cuav_c-rtk2.md)
- [CUAV C-RTK 9Ps](/gps_compass/rtk_gps_cuav_c-rtk-9ps.md)
- [DATAGNSS NANO HRTK GNSS](/gps_compass/rtk_gps_datagnss_nano_hrtk.md)
- [DATAGNSS GEM1305 RTK GNSS](/gps_compass/rtk_gps_gem1305.md)
- [Femtones MINI2 Receiver](/gps_compass/rtk_gps_fem_mini2.md)
- [Freefly RTK GPS](/gps_compass/rtk_gps_freefly.md)
@@ -287,6 +283,7 @@
- [Trimble MB-Two](/gps_compass/rtk_gps_trimble_mb_two.md)
- [CubePilot Here+ (Discontined)](/gps_compass/rtk_gps_hex_hereplus.md)
- [INS (Inertial Navigation/GNSS)](/sensor/inertial_navigation_systems.md)
- [InertialLabs](/sensor/inertiallabs.md)
- [VectorNav](/sensor/vectornav.md)
- [光流](/sensor/optical_flow.md)
- [ARK 光流](/dronecan/ark_flow.md)
@@ -297,6 +294,7 @@
- [ThunderFly TFRPM01 转速传感器](/sensor/thunderfly_tachometer.md)
- [IMU Factory Calibration](/advanced_config/imu_factory_calibration.md)
- [传感器热补偿](/advanced_config/sensor_thermal_calibration.md)
- [执行器](/actuators/index.md)
- [ADSB/FLARM (空中防撞)](/config/actuators.md)
- [电调(ESC)校准](/advanced_config/esc_calibration.md)
@@ -308,19 +306,22 @@
- [Zubax Telega](/dronecan/zubax_telega.md)
- [PX4 Sapog ESC Firmware](/dronecan/sapog.md)
- [Holybro Kotleta](/dronecan/holybro_kotleta.md)
- [Zubax Orel](/dronecan/zubax_orel.md)
- [Vertiq](/peripherals/vertiq.md)
- [VESC](/peripherals/vesc.md)
- [Radio Control (RC)](/getting_started/rc_transmitter_receiver.md)
- [无线电系统设置](/config/radio.md)
- [飞行模式](/config/flight_mode.md)
- [Joysticks](/config/joystick.md)
- [Data Links](/data_links/index.md)
- [MAVLink 回传(OSD/GCS](/peripherals/mavlink_peripherals.md)
- [数传电台](/telemetry/index.md)
- [SiK 电台](/telemetry/sik_radio.md)
- [RFD900 (SiK) 数传电台](/telemetry/rfd900_telemetry.md)
- [ThunderFly TFSIK01 Telemetry Radio](/telemetry/tfsik_telemetry.md)
- [HolyBro (SIK) 数传电台](/telemetry/holybro_sik_radio.md)
- [WiFi 数传](/telemetry/telemetry_wifi.md)
- [ESP8266 WiFi 模块](/telemetry/esp8266_wifi_module.md)
@@ -338,6 +339,7 @@
- [TBS Crossfire (CRSF) Telemetry](/telemetry/crsf_telemetry.md)
- [Satellite Comms (Iridium/RockBlock)](/advanced_features/satcom_roadblock.md)
- [Power Systems](/power_systems/index.md)
- [Battery Estimation Tuning](/config/battery.md)
- [Battery Chemistry Overview](/power_systems/battery_chemistry.md)
@@ -356,6 +358,7 @@
- [Sky-Drones SmartAP PDB](/power_module/sky-drones_smartap-pdb.md)
- [Smart/MAVLink Batteries](/smart_batteries/index.md)
- [Rotoye Batmon 电池智能套装](/smart_batteries/rotoye_batmon.md)
- [载荷 & 相机](/payloads/index.md)
- [Use Cases](/payloads/use_cases.md)
- [Package Delivery Mission](/flying/package_delivery_mission.md)
@@ -367,19 +370,25 @@
- [Gimbal \(Mount\) Configuration](/advanced/gimbal_control.md)
- [Grippers](/peripherals/gripper.md)
- [Servo Gripper](/peripherals/gripper_servo.md)
- [Peripherals](/peripherals/index.md)
- [ADSB/FLARM/UTM (Traffic Avoidance)](/peripherals/adsb_flarm.md)
- [降落伞](/peripherals/parachute.md)
- [Remote ID](/peripherals/remote_id.md)
- [I2C Peripherals](/sensor_bus/i2c_general.md)
- [I2C bus accelerators](/sensor_bus/i2c_general.md#i2c-bus-accelerators)
- [TFI2CADT01 I2C address translator](/sensor_bus/translator_tfi2cadt.md)
- [CAN Peripherals](/can/index.md)
- [DroneCAN Peripherals](/dronecan/index.md)
- [PX4 DroneCAN Firmware](/dronecan/px4_cannode_fw.md)
- [ARK CANnode](/dronecan/ark_cannode.md)
- [RaccoonLab CAN Nodes](/dronecan/raccoonlab_nodes.md)
- [Cable Wiring](/assembly/cable_wiring.md)
- [机载电脑](/companion_computer/index.md)
- [Pixhawk + Companion Setup](/companion_computer/pixhawk_companion.md)
- [RPi Pixhawk Companion](/companion_computer/pixhawk_rpi.md)
@@ -395,16 +404,19 @@
- [Realsense T265 跟踪相机 (VIO)](/camera/camera_intel_realsense_t265_vio.md)
- [视频流](/companion_computer/video_streaming.md)
- [Video Streaming using WFB-ng Wifi (Long range)](/companion_computer/video_streaming_wfb_ng_wifi.md)
- [串口配置](/peripherals/serial_configuration.md)
- [PX4 Ethernet Setup](/advanced_config/ethernet_setup.md)
- [Standard Configuration](/config/index.md)
- [高级配置](/advanced_config/index.md)
- [Using PX4's Navigation Filter (EKF2)](/advanced_config/tuning_the_ecl_ekf.md)
- [查找/更新参数](/advanced_config/parameters.md)
- [Full Parameter Reference](/advanced_config/parameter_reference.md)
- [Other Vehicles](/airframes/index.md)
- [Airships (experimental)](/frames_airship/index.md)
- [Autogyros (experimental)](/frames_autogyro/index.md)
- [ThunderFly Auto-G2 (Holybro pix32)](/frames_autogyro/thunderfly_auto_g2.md)
@@ -412,17 +424,17 @@
- [Helicopter (experimental)](/frames_helicopter/index.md)
- [Helicopter Config/Tuning](/config_heli/index.md)
- [Rovers (experimental)](/frames_rover/index.md)
- [Ackermann Rovers](/frames_rover/ackermann.md)
- [Drive Modes](/flight_modes_rover/ackermann.md)
- [Configuration/Tuning](/config_rover/ackermann.md)
- [Differential Rovers](/frames_rover/differential.md)
- [Drive Modes](/flight_modes_rover/differential.md)
- [Configuration/Tuning](/config_rover/differential.md)
- [Aion Robotics R1](/frames_rover/aion_r1.md)
- [Mecanum Rovers](/frames_rover/mecanum.md)
- [Drive Modes](/flight_modes_rover/mecanum.md)
- [Configuration/Tuning](/config_rover/mecanum.md)
- [(Deprecated) Rover Position Control](/frames_rover/rover_position_control.md)
- [Drive Modes](/flight_modes_rover/index.md)
- [Manual](/flight_modes_rover/manual.md)
- [Auto](/flight_modes_rover/auto.md)
- [Configuration/Tuning](/config_rover/index.md)
- [Basic Setup](/config_rover/basic_setup.md)
- [Rate Tuning](/config_rover/rate_tuning.md)
- [Attitude Tuning](/config_rover/attitude_tuning.md)
- [Velocity Tuning](/config_rover/velocity_tuning.md)
- [Position Tuning](/config_rover/position_tuning.md)
- [Complete Vehicles](/complete_vehicles_rover/index.md)
- [Aion Robotics R1](/complete_vehicles_rover/aion_r1.md)
- [Submarines (experimental)](/frames_sub/index.md)
- [BlueROV2](/frames_sub/bluerov2.md)
- [机架参考](/airframes/airframe_reference.md)
@@ -534,6 +546,7 @@
- [Airspeed](/msg_docs/Airspeed.md)
- [AirspeedWind](/msg_docs/AirspeedWind.md)
- [AutotuneAttitudeControlStatus](/msg_docs/AutotuneAttitudeControlStatus.md)
- [BatteryInfo](/msg_docs/BatteryInfo.md)
- [ButtonEvent](/msg_docs/ButtonEvent.md)
- [CameraCapture](/msg_docs/CameraCapture.md)
- [CameraStatus](/msg_docs/CameraStatus.md)
@@ -552,6 +565,7 @@
- [DifferentialPressure](/msg_docs/DifferentialPressure.md)
- [DistanceSensor](/msg_docs/DistanceSensor.md)
- [DistanceSensorModeChangeRequest](/msg_docs/DistanceSensorModeChangeRequest.md)
- [DronecanNodeStatus](/msg_docs/DronecanNodeStatus.md)
- [Ekf2Timestamps](/msg_docs/Ekf2Timestamps.md)
- [EscReport](/msg_docs/EscReport.md)
- [EscStatus](/msg_docs/EscStatus.md)
@@ -626,6 +640,7 @@
- [MountOrientation](/msg_docs/MountOrientation.md)
- [NavigatorMissionItem](/msg_docs/NavigatorMissionItem.md)
- [NavigatorStatus](/msg_docs/NavigatorStatus.md)
- [NeuralControl](/msg_docs/NeuralControl.md)
- [NormalizedUnsignedSetpoint](/msg_docs/NormalizedUnsignedSetpoint.md)
- [ObstacleDistance](/msg_docs/ObstacleDistance.md)
- [OffboardControlMode](/msg_docs/OffboardControlMode.md)
@@ -724,7 +739,12 @@
- [Wind](/msg_docs/Wind.md)
- [YawEstimatorStatus](/msg_docs/YawEstimatorStatus.md)
- [AirspeedValidatedV0](/msg_docs/AirspeedValidatedV0.md)
- [ArmingCheckReplyV0](/msg_docs/ArmingCheckReplyV0.md)
- [BatteryStatusV0](/msg_docs/BatteryStatusV0.md)
- [EventV0](/msg_docs/EventV0.md)
- [HomePositionV0](/msg_docs/HomePositionV0.md)
- [VehicleAttitudeSetpointV0](/msg_docs/VehicleAttitudeSetpointV0.md)
- [VehicleLocalPositionV0](/msg_docs/VehicleLocalPositionV0.md)
- [VehicleStatusV0](/msg_docs/VehicleStatusV0.md)
- [MAVLink Messaging](/mavlink/index.md)
- [Adding Messages](/mavlink/adding_messages.md)
@@ -734,6 +754,7 @@
- [Protocols/Microservices](/mavlink/protocols.md)
- [Standard Modes Protocol](/mavlink/standard_modes.md)
- [uXRCE-DDS (PX4-ROS 2/DDS Bridge)](/middleware/uxrce_dds.md)
- [UORB Bridged to ROS 2](/middleware/dds_topics.md)
- [模块 & 命令](/modules/modules_main.md)
- [自动调参](/modules/modules_autotune.md)
- [命令](/modules/modules_command.md)
@@ -763,7 +784,7 @@
- [Debugging with GDB](/debug/gdb_debugging.md)
- [SWD Debug Port](/debug/swd_debug.md)
- [JLink Probe](/debug/probe_jlink.md)
- [Black Magic/DroneCode Probe](/debug/probe_bmp.md)
- [Black Magic/Zubax BugFace BF1 Probe](/debug/probe_bmp.md)
- [STLink Probe](/debug/probe_stlink.md)
- [MCU-Link Probe](/debug/probe_mculink.md)
- [Hardfault Debugging](/debug/gdb_hardfault.md)
@@ -787,6 +808,9 @@
- [Camera Integration/Architecture](/camera/camera_architecture.md)
- [机器视觉](/advanced/computer_vision.md)
- [Motion Capture (VICON, Optitrack, NOKOV)](/tutorials/motion-capture.md)
- [Neural Networks](/advanced/neural_networks.md)
- [Neural Network Module Utilities](/advanced/nn_module_utilities.md)
- [TensorFlow Lite Micro (TFLM)](/advanced/tflm.md)
- [安装英特尔 RealSense R200 的驱动程序](/advanced/realsense_intel_driver.md)
- [切换状态估计器](/advanced/switching_state_estimators.md)
- [外部模块](/advanced/out_of_tree_modules.md)
@@ -818,8 +842,12 @@
- [测试 MC_02-完全自主](/test_cards/mc_02_full_autonomous.md)
- [测试 MC_03 - 自动手动混合](/test_cards/mc_03_auto_manual_mix.md)
- [测试 MC_04 -故障安全测试](/test_cards/mc_04_failsafe_testing.md)
- [测试 MC_05-室内飞行(手动模式)](/test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_05 - Manual Modes (Inside)](/test_cards/mc_05_indoor_flight_manual_modes.md)
- [Test MC_06 - Optical Flow (Inside)](/test_cards/mc_06_optical_flow.md)
- [Test MC_07 - VIO (Inside)](/test_cards/mc_07_vio.md)
- [Test MC_08 - DSHOT ESC](/test_cards/mc_08_dshot.md)
- [单元测试](/test_and_ci/unit_tests.md)
- [Fuzz Tests](/test_and_ci/fuzz_tests.md)
- [持续集成](/test_and_ci/continous_integration.md)
- [Integration Testing](/test_and_ci/integration_testing.md)
- [MAVSDK集成测试](/test_and_ci/integration_testing_mavsdk.md)
@@ -862,8 +890,8 @@
- [版本发布](/releases/index.md)
- [main (alpha)](/releases/main.md)
- [1.16 (release candidate)](/releases/1.16.md)
- [1.15 (stable)](/releases/1.15.md)
- [1.16 (stable)](/releases/1.16.md)
- [1.15](/releases/1.15.md)
- [1.14](/releases/1.14.md)
- [1.13](/releases/1.13.md)
- [1.12](/releases/1.12.md)
@@ -355,12 +355,15 @@ ssize_t SerialImpl::write(const void *buffer, size_t buffer_size)
}
int written = ::write(_serial_fd, buffer, buffer_size);
tcdrain(_serial_fd); // Wait until all output is transmitted
if (written < 0) {
PX4_ERR("%s write error %d", _port, written);
if (errno != EAGAIN) {
PX4_ERR("%s write error %d", _port, written);
}
}
::fsync(_serial_fd);
return written;
}
@@ -337,13 +337,15 @@ ssize_t SerialImpl::write(const void *buffer, size_t buffer_size)
}
int written = ::write(_serial_fd, buffer, buffer_size);
::fsync(_serial_fd);
if (written < 0) {
PX4_ERR("%s write error %d", _port, written);
if (errno != EAGAIN) {
PX4_ERR("%s write error %d", _port, written);
}
}
::fsync(_serial_fd);
return written;
}
+3 -2
View File
@@ -268,8 +268,9 @@ ssize_t SerialImpl::write(const void *buffer, size_t buffer_size)
int ret_write = qurt_uart_write(_serial_fd, (const char *) buffer, buffer_size);
if (ret_write < 0) {
PX4_ERR("%s write error %d", _port, ret_write);
if (errno != EAGAIN) {
PX4_ERR("%s write error %d", _port, ret_write);
}
}
return ret_write;
+2
View File
@@ -256,6 +256,8 @@
#define DRV_INS_DEVTYPE_MICROSTRAIN 0xEA
#define DRV_INS_DEVTYPE_BAHRS 0xEB
#define DRV_INS_DEVTYPE_SBG 0xEC
#define DRV_DEVTYPE_UNUSED 0xff
#endif /* _DRV_SENSOR_H */
+2 -1
View File
@@ -5,7 +5,8 @@ menu "Inertial Navigation Systems (INS)"
select DRIVERS_INS_VECTORNAV
select DRIVERS_INS_ILABS
select DRIVERS_INS_MICROSTRAIN
select DRIVERS_INS_EULERNAV_BAHRS
select DRIVERS_INS_EULERNAV_BAHRS
select DRIVERS_INS_SBGECOM
---help---
Enable default set of INS sensors
rsource "*/Kconfig"
+73
View File
@@ -0,0 +1,73 @@
############################################################################
#
# Copyright (c) 2025 PX4 Development Team. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. Neither the name PX4 nor the names of its contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
############################################################################
add_compile_definitions(SBG_CONFIG_LOG_MAX_SIZE=128)
set(SBGECOM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/sbgECom)
px4_add_git_submodule(TARGET git_sbgECom PATH ${SBGECOM_DIR})
add_subdirectory(sbgECom)
add_dependencies(sbgECom prebuild_targets)
target_compile_options(sbgECom
PRIVATE
-Wno-format
-Wno-format-security
-Wno-bad-function-cast
-Wno-double-promotion
-Wno-type-limits
-Wno-maybe-uninitialized
-Wno-float-equal
)
if("${PX4_PLATFORM}" MATCHES "nuttx")
target_compile_definitions(sbgECom PUBLIC __NUTTX__)
endif()
px4_add_module(
MODULE drivers__ins__sbgecom
MAIN sbgecom
INCLUDES
sbgECom/common
sbgECom/src
COMPILE_FLAGS
SRCS
sbgecom.cpp
sbgecom.hpp
MODULE_CONFIG
module.yaml
DEPENDS
sbgECom
)
+5
View File
@@ -0,0 +1,5 @@
menuconfig DRIVERS_INS_SBGECOM
bool "sbgecom"
default n
---help---
Enable support for sbgecom
+50
View File
@@ -0,0 +1,50 @@
module_name: sbgECom
serial_config:
- command: sbgecom start -d ${SERIAL_DEV}
port_config_param:
name: SENS_SBG_CFG
group: Sensors
parameters:
- group: Sensors
definitions:
SBG_MODE:
description:
short: sbgECom driver mode
long: |
Modes available for sbgECom driver.
In Sensors Only mode, use external IMU and magnetometer.
In GNSS mode, use external GNSS in addition to sensors only mode.
In INS mode, use external Kalman Filter in addition to GNSS mode.
In INS mode, requires EKF2_EN 0. Keeping both enabled
can lead to an unexpected behavior and vehicle instability.
category: System
type: enum
values:
0: Sensors Only
1: GNSS
2: INS (default)
default: 2
SBG_BAUDRATE:
description:
short: sbgECom driver baudrate
long: |
Baudrate used by default for serial communication between PX4
and SBG Systems INS through sbgECom driver.
category: System
type: int32
min: 9600
max: 921600
default: 921600
reboot_required: true
SBG_CONFIGURE_EN:
description:
short: sbgECom driver INS configuration enable
long: |
Enable SBG Systems INS configuration through sbgECom driver
on start.
category: System
type: boolean
default: 0
File diff suppressed because it is too large Load Diff
+294
View File
@@ -0,0 +1,294 @@
/****************************************************************************
*
* Copyright (c) 2012-2025 PX4 Development Team. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name PX4 nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
/**
* @file sbgecom.hpp
* Driver for the SBG Systems products
*
* @author SBG Systems <contact@sbg-systems.com>
*/
#pragma once
#include <sbgEComLib.h>
#include <version/sbgVersion.h>
#include <px4_platform_common/module.h>
#include <px4_platform_common/module_params.h>
#include <px4_platform_common/px4_work_queue/ScheduledWorkItem.hpp>
#include <lib/drivers/accelerometer/PX4Accelerometer.hpp>
#include <lib/drivers/gyroscope/PX4Gyroscope.hpp>
#include <lib/drivers/magnetometer/PX4Magnetometer.hpp>
#include <uORB/Subscription.hpp>
#include <uORB/topics/airspeed.h>
#include <uORB/topics/differential_pressure.h>
#include <uORB/topics/estimator_status.h>
#include <uORB/topics/parameter_update.h>
#include <uORB/topics/sensor_baro.h>
#include <uORB/topics/sensor_gps.h>
#include <uORB/topics/sensor_selection.h>
#include <uORB/topics/vehicle_attitude.h>
#include <uORB/topics/vehicle_air_data.h>
#include <uORB/topics/vehicle_global_position.h>
#include <uORB/topics/vehicle_local_position.h>
#include <uORB/topics/vehicle_magnetometer.h>
class SbgEcom : public ModuleBase<SbgEcom>, public ModuleParams, public px4::ScheduledWorkItem
{
public:
SbgEcom(const char *port, uint32_t baudrate, const char *config_file, const char *config_string);
~SbgEcom() override;
/** @see ModuleBase */
static int task_spawn(int argc, char **argv);
/** @see ModuleBase */
static int custom_command(int argc, char **argv);
/** @see ModuleBase */
static int print_usage(const char *reason = nullptr);
/** @see ModuleBase */
int print_status() override;
/** @see ModuleBase::run() */
void Run() override;
int init();
private:
/**
* @brief Type for logging functions.
*
* @param file_name File name where the error occurred.
* @param function_name Function name where the error occurred.
* @param line Line number where the error occurred.
* @param category Category for this log or "None" if no category has been specified.
* @param log_type Define if we have an error, a warning, an info or a debug log.
* @param error_code The error code associated with the message.
* @param message The message to log.
*/
static void printLogCallBack(const char *file_name, const char *function_name, uint32_t line, const char *category,
SbgDebugLogType log_type, SbgErrorCode error_code, const char *message);
/**
* @brief Parse IMU (Inertial Measurement Unit) measurement logs.
*
* @param ref_sbg_data Contains the received log data as an union.
* @param user_arg Optional user supplied argument.
*/
static void handleLogImuShort(const SbgEComLogUnion *ref_sbg_data, void *user_arg);
/**
* @brief Parse magnetic field measurements logs.
*
* @param ref_sbg_data Contains the received log data as an union.
* @param user_arg Optional user supplied argument.
*/
static void handleLogMag(const SbgEComLogUnion *ref_sbg_data, void *user_arg);
/**
* @brief Parse EKF quaternion measurement logs.
*
* @param ref_sbg_data Contains the received log data as an union.
* @param user_arg Optional user supplied argument.
*/
static void handleLogEkfQuat(const SbgEComLogUnion *ref_sbg_data, void *user_arg);
/**
* @brief Parse EKF navigation measurement logs.
*
* @param ref_sbg_data Contains the received log data as an union.
* @param user_arg Optional user supplied argument.
*/
static void handleLogEkfNav(const SbgEComLogUnion *ref_sbg_data, void *user_arg);
/**
* @brief GNSS position, velocity and heading related logs.
*
* @param msg Message ID of the log received.
* @param ref_sbg_data Contains the received log data as an union.
* @param user_arg Optional user supplied argument.
*/
static void handleLogGnssPosVelHdt(SbgEComMsgId msg, const SbgEComLogUnion *ref_sbg_data, void *user_arg);
/**
* @brief Update estimator status message from EKF status flags.
*
* @param ekf_status EKF status flags.
* @param estimator_status Estimator status message.
*/
static void updateEstimatorStatus(uint32_t ekf_status, estimator_status_s *estimator_status);
/**
* @brief Callback definition called each time a new log is received.
*
* @param handle Valid handle on the sbgECom instance that has called this callback.
* @param msg_class Class of the message we have received
* @param msg Message ID of the log received.
* @param ref_sbg_data Contains the received log data as an union.
* @param user_arg Optional user supplied argument.
* @return SBG_NO_ERROR if the received log has been used successfully.
*/
static SbgErrorCode onLogReceived(SbgEComHandle *handle, SbgEComClass msg_class, SbgEComMsgId msg,
const SbgEComLogUnion *ref_sbg_data, void *user_arg);
/**
* @brief Send a config to the INS
*
* @param pHandle SbgECom instance.
* @param config Config json string.
*/
static void send_config(SbgEComHandle *pHandle, const char *config);
/**
* @brief Send a config file to the INS
*
* @param pHandle SbgECom instance.
* @param file_path Config file path.
*/
static void send_config_file(SbgEComHandle *pHandle, const char *file_path);
/**
* @brief Get and print product info.
*
* @param handle SbgECom instance.
* @return SBG_NO_ERROR if successful.
*/
SbgErrorCode getAndPrintProductInfo(SbgEComHandle *handle);
/**
* @brief Try to parse one log from the input interface and then return.
*
* @param handle A valid sbgECom handle.
* @return SBG_NO_ERROR if no error occurs during incoming log parsing.
*/
SbgErrorCode handleOneLog(SbgEComHandle *handle);
/**
* @brief Get air data and send it.
*
* @param handle A valid sbgECom handle.
* @param instance An SbgEcom object.
* @return SBG_NO_ERROR if no error occurs during incoming log parsing.
*/
SbgErrorCode sendAirDataLog(SbgEComHandle *handle, SbgEcom *instance);
/**
* @brief Get magnetometer data and send it.
*
* @param handle A valid sbgECom handle.
* @param instance An SbgEcom object.
* @return SBG_NO_ERROR if no error occurs during incoming log parsing.
*/
SbgErrorCode sendMagLog(SbgEComHandle *handle, SbgEcom *instance);
void set_device_id(uint32_t device_id);
uint32_t get_device_id(void);
// SBG interface and state variables
SbgInterface _sbg_interface;
SbgEComHandle _com_handle;
SbgEComLogUnion _log_data;
uint32_t _baudrate;
const char *_config_file;
const char *_config_string;
char _device_name[25];
uint32_t _device_id{0};
const int log_interval = 10;
int iteration_count = log_interval;
bool failure = false;
bool _ekf_failure = false;
bool _initialized = false;
int init_result;
MapProjection _pos_ref{};
double _gps_alt_ref{NAN};
struct GnssData {
bool pos_received = false;
bool vel_received = false;
bool hdt_received = false;
SbgEComLogGnssPos gps_pos;
SbgEComLogGnssVel gps_vel;
SbgEComLogGnssHdt gps_hdt;
hrt_abstime pos_timestamp = 0;
hrt_abstime vel_timestamp = 0;
hrt_abstime hdt_timestamp = 0;
};
GnssData gnss_data;
float _heading;
px4::atomic<hrt_abstime> _time_last_valid_imu_us{false};
// Sensors topics
PX4Accelerometer _px4_accel{0};
PX4Gyroscope _px4_gyro{0};
PX4Magnetometer _px4_mag{0};
// Publications with topic dependent on multi-mode
uORB::PublicationMulti<sensor_gps_s> _sensor_gps_pub{ORB_ID(sensor_gps)};
uORB::PublicationMulti<vehicle_attitude_s> _attitude_pub{ORB_ID(vehicle_attitude)};
uORB::PublicationMulti<vehicle_local_position_s> _local_position_pub{ORB_ID(vehicle_local_position)};
uORB::PublicationMulti<vehicle_global_position_s> _global_position_pub{ORB_ID(vehicle_global_position)};
uORB::Publication<estimator_status_s> _estimator_status_pub{ORB_ID(estimator_status)};
// Subscription for INS EKF aiding
uORB::Subscription _air_data_sub{ORB_ID(vehicle_air_data)};
uORB::Subscription _airspeed_sub{ORB_ID(airspeed)};
uORB::Subscription _diff_pressure_sub{ORB_ID(differential_pressure)};
uORB::Subscription _mag_sub{ORB_ID(vehicle_magnetometer)};
// Performance mounters for monitoring and debugging
perf_counter_t _comms_errors{perf_alloc(PC_COUNT, MODULE_NAME": errors")};
perf_counter_t _sample_perf{perf_alloc(PC_ELAPSED, MODULE_NAME": sample")};
perf_counter_t _write_perf{perf_alloc(PC_ELAPSED, MODULE_NAME": write")};
perf_counter_t _accel_pub_interval_perf{perf_alloc(PC_INTERVAL, MODULE_NAME": accel publish interval")};
perf_counter_t _gyro_pub_interval_perf{perf_alloc(PC_INTERVAL, MODULE_NAME": gyro publish interval")};
perf_counter_t _mag_pub_interval_perf{perf_alloc(PC_INTERVAL, MODULE_NAME": mag publish interval")};
perf_counter_t _gnss_pub_interval_perf{perf_alloc(PC_INTERVAL, MODULE_NAME": GNSS publish interval")};
perf_counter_t _attitude_pub_interval_perf{perf_alloc(PC_INTERVAL, MODULE_NAME": attitude publish interval")};
perf_counter_t _local_position_pub_interval_perf{perf_alloc(PC_INTERVAL, MODULE_NAME": local position publish interval")};
perf_counter_t _global_position_pub_interval_perf{perf_alloc(PC_INTERVAL, MODULE_NAME": global position publish interval")};
};
+1 -4
View File
@@ -123,7 +123,6 @@ add_custom_command(OUTPUT ${parameters_xml} ${parameters_json} ${parameters_json
--xml ${parameters_xml}
--json ${parameters_json}
--compress
--inject-xml ${CMAKE_CURRENT_SOURCE_DIR}/parameters_injected.xml
--overrides ${PARAM_DEFAULT_OVERRIDES}
--board ${PX4_BOARD}
#--verbose
@@ -136,13 +135,11 @@ add_custom_command(OUTPUT ${parameters_xml} ${parameters_json} ${parameters_json
${param_src_files}
${generated_serial_params_file}
${generated_module_params_file}
parameters_injected.xml
px4params/srcparser.py
px4params/srcscanner.py
px4params/jsonout.py
px4params/xmlout.py
px_process_params.py
parameters_injected.xml
COMMENT "Generating parameters.xml"
)
add_custom_target(parameters_xml DEPENDS ${parameters_xml})
@@ -161,7 +158,7 @@ add_custom_target(parameters_header DEPENDS px4_parameters.hpp)
set(SRCS)
list(APPEND SRCS
parameters.cpp
parameters.cpp
atomic_transaction.cpp
autosave.cpp
)
-198
View File
@@ -1,198 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<parameters>
<version>3</version>
<group name="UAVCAN Motor Parameters" no_code_generation="true">
<parameter default="75" name="ctl_bw" type="INT32">
<short_desc>Speed controller bandwidth</short_desc>
<long_desc>Speed controller bandwidth, in Hz. Higher values result in faster speed and current rise times, but may result in overshoot and higher current consumption. For fixed-wing aircraft, this value should be less than 50 Hz; for multirotors, values up to 100 Hz may provide improvements in responsiveness.</long_desc>
<unit>Hz</unit>
<min>10</min>
<max>250</max>
</parameter>
<parameter default="1" name="ctl_dir" type="INT32">
<short_desc>Reverse direction</short_desc>
<long_desc>Motor spin direction as detected during initial enumeration. Use 0 or 1 to reverse direction.</long_desc>
<min>0</min>
<max>1</max>
</parameter>
<parameter default="1" name="ctl_gain" type="FLOAT">
<short_desc>Speed (RPM) controller gain</short_desc>
<long_desc>Speed (RPM) controller gain. Determines controller
aggressiveness; units are amp-seconds per radian. Systems with
higher rotational inertia (large props) will need gain increased;
systems with low rotational inertia (small props) may need gain
decreased. Higher values result in faster response, but may result
in oscillation and excessive overshoot. Lower values result in a
slower, smoother response.</long_desc>
<unit>C/rad</unit>
<decimal>3</decimal>
<min>0.00</min>
<max>1.00</max>
</parameter>
<parameter default="3.5" name="ctl_hz_idle" type="FLOAT">
<short_desc>Idle speed (e Hz)</short_desc>
<long_desc>Idle speed (e Hz)</long_desc>
<unit>Hz</unit>
<decimal>3</decimal>
<min>0.0</min>
<max>100.0</max>
</parameter>
<parameter default="25" name="ctl_start_rate" type="INT32">
<short_desc>Spin-up rate (e Hz/s)</short_desc>
<long_desc>Spin-up rate (e Hz/s)</long_desc>
<unit>1/s^2</unit>
<min>5</min>
<max>1000</max>
</parameter>
<parameter default="0" name="esc_index" type="INT32">
<short_desc>Index of this ESC in throttle command messages.</short_desc>
<long_desc>Index of this ESC in throttle command messages.</long_desc>
<min>0</min>
<max>15</max>
</parameter>
<parameter default="20034" name="id_ext_status" type="INT32">
<short_desc>Extended status ID</short_desc>
<long_desc>Extended status ID</long_desc>
<min>1</min>
<max>1000000</max>
</parameter>
<parameter default="50000" name="int_ext_status" type="INT32">
<short_desc>Extended status interval (µs)</short_desc>
<long_desc>Extended status interval (µs)</long_desc>
<unit>us</unit>
<min>0</min>
<max>1000000</max>
</parameter>
<parameter default="50000" name="int_status" type="INT32">
<short_desc>ESC status interval (µs)</short_desc>
<long_desc>ESC status interval (µs)</long_desc>
<unit>us</unit>
<max>1000000</max>
</parameter>
<parameter default="12" name="mot_i_max" type="FLOAT">
<short_desc>Motor current limit in amps</short_desc>
<long_desc>Motor current limit in amps. This determines the maximum
current controller setpoint, as well as the maximum allowable
current setpoint slew rate. This value should generally be set to
the continuous current rating listed in the motors specification
sheet, or set equal to the motors specified continuous power
divided by the motor voltage limit.</long_desc>
<unit>A</unit>
<decimal>3</decimal>
<min>1</min>
<max>80</max>
</parameter>
<parameter default="2300" name="mot_kv" type="INT32">
<short_desc>Motor Kv in RPM per volt</short_desc>
<long_desc>Motor Kv in RPM per volt. This can be taken from the motors
specification sheet; accuracy will help control performance but
some deviation from the specified value is acceptable.</long_desc>
<unit>rpm/V</unit>
<min>0</min>
<max>4000</max>
</parameter>
<parameter default="0.0" name="mot_ls" type="FLOAT">
<short_desc>READ ONLY: Motor inductance in henries.</short_desc>
<long_desc>READ ONLY: Motor inductance in henries. This is measured on start-up.</long_desc>
<unit>H</unit>
<decimal>3</decimal>
</parameter>
<parameter default="14" name="mot_num_poles" type="INT32">
<short_desc>Number of motor poles.</short_desc>
<long_desc>Number of motor poles. Used to convert mechanical speeds to
electrical speeds. This number should be taken from the motors
specification sheet.</long_desc>
<min>2</min>
<max>40</max>
</parameter>
<parameter default="0.0" name="mot_rs" type="FLOAT">
<short_desc>READ ONLY: Motor resistance in ohms</short_desc>
<long_desc>READ ONLY: Motor resistance in ohms. This is measured on start-up. When
tuning a new motor, check that this value is approximately equal
to the value shown in the motors specification sheet.</long_desc>
<unit>Ohm</unit>
<decimal>3</decimal>
</parameter>
<parameter default="0.5" name="mot_v_accel" type="FLOAT">
<short_desc>Acceleration limit (V)</short_desc>
<long_desc>Acceleration limit (V)</long_desc>
<unit>V</unit>
<decimal>3</decimal>
<min>0.01</min>
<max>1.00</max>
</parameter>
<parameter default="14.8" name="mot_v_max" type="FLOAT">
<short_desc>Motor voltage limit in volts</short_desc>
<long_desc>Motor voltage limit in volts. The current controllers
commanded voltage will never exceed this value. Note that this may
safely be above the nominal voltage of the motor; to determine the
actual motor voltage limit, divide the motors rated power by the
motor current limit.</long_desc>
<unit>V</unit>
<decimal>3</decimal>
<min>0</min>
</parameter>
</group>
<group name="UAVCAN GNSS" no_code_generation="true">
<parameter name="gnss.warn_dimens" default="0" type="INT32">
<short_desc>device health warning</short_desc>
<long_desc>Set the device health to Warning if the dimensionality of
the GNSS solution is less than this value. 3 for the full (3D)
solution, 2 for planar (2D) solution, 1 for time-only solution,
0 disables the feature.
</long_desc>
<min>0</min>
<max>3</max>
<values>
<value code="0">disables the feature</value>
<value code="1">time-only solution</value>
<value code="2">planar (2D) solution</value>
<value code="3">full (3D) solution</value>
</values>
</parameter>
<parameter name="gnss.warn_sats" default="0" type="INT32">
<short_desc></short_desc>
<long_desc>Set the device health to Warning if the number of satellites
used in the GNSS solution is below this threshold. Zero
disables the feature
</long_desc>
</parameter>
<parameter name="gnss.dyn_model" default="2" type="INT32">
<short_desc>GNSS dynamic model</short_desc>
<long_desc>Dynamic model used in the GNSS positioning engine. 0
Automotive, 1 Sea, 2 Airborne.
</long_desc>
<min>0</min>
<max>2</max>
<values>
<value code="0">Automotive</value>
<value code="1">Sea</value>
<value code="2">Airborne</value>
</values>
</parameter>
<parameter name="gnss.old_fix_msg" default="1" type="INT32">
<short_desc>Broadcast old GNSS fix message</short_desc>
<long_desc>Broadcast the old (deprecated) GNSS fix message
uavcan.equipment.gnss.Fix alongside the new alternative
uavcan.equipment.gnss.Fix2. It is recommended to
disable this feature to reduce the CAN bus traffic.
</long_desc>
<min>0</min>
<max>1</max>
<values>
<value code="0">Fix2</value>
<value code="1">Fix and Fix2</value>
</values>
</parameter>
<parameter name="uavcan.pubp-pres" default="0" type="INT32">
<short_desc></short_desc>
<long_desc>Set the device health to Warning if the number of satellites
used in the GNSS solution is below this threshold. Zero
disables the feature
</long_desc>
<unit>us</unit>
<min>0</min>
<max>1000000</max>
</parameter>
</group>
</parameters>
+1 -1
View File
@@ -5,7 +5,7 @@ import sys
class JsonOutput():
def __init__(self, groups, board, inject_xml_file_name):
def __init__(self, groups, board):
all_json=dict()
all_json['version']=1
all_params=[]
+2 -11
View File
@@ -75,12 +75,6 @@ def main():
metavar="FILENAME",
help="Create XML file"
" (default FILENAME: parameters.xml)")
parser.add_argument("-i", "--inject-xml",
nargs='?',
const="parameters_injected.xml",
metavar="FILENAME",
help="Inject additional param XML file"
" (default FILENAME: parameters_injected.xml)")
parser.add_argument("-b", "--board",
nargs='?',
const="",
@@ -138,8 +132,6 @@ def main():
#inject parameters at front of set
cur_dir = os.path.dirname(os.path.realpath(__file__))
groups_to_inject = injectxmlparams.XMLInject(os.path.join(cur_dir, args.inject_xml)).injected()
param_groups=groups_to_inject+param_groups
override_dict = json.loads(args.overrides)
if len(override_dict.keys()) > 0:
@@ -174,8 +166,7 @@ def main():
if args.verbose:
print("Creating Json file " + args.json)
cur_dir = os.path.dirname(os.path.realpath(__file__))
out = jsonout.JsonOutput(param_groups, args.board,
os.path.join(cur_dir, args.inject_xml))
out = jsonout.JsonOutput(param_groups, args.board)
out.Save(args.json)
output_files.append(args.json)
@@ -184,7 +175,7 @@ def main():
if args.verbose:
print("Compressing file " + f)
save_compressed(f)
if __name__ == "__main__":
main()
@@ -621,8 +621,7 @@ void EstimatorChecks::lowPositionAccuracy(const Context &context, Report &report
position_valid_but_low_accuracy = (_param_com_low_eph.get() > FLT_EPSILON && lpos.eph > _param_com_low_eph.get());
}
if (!reporter.failsafeFlags().position_accuracy_low && position_valid_but_low_accuracy
&& _param_com_pos_low_act.get()) {
if (position_valid_but_low_accuracy && _param_com_pos_low_act.get()) {
// only report if armed
if (context.isArmed()) {
@@ -57,7 +57,7 @@ void Ekf::controlRangeHaglFusion(const imuSample &imu_sample)
_range_sensor.setQualityHysteresis(_params.ekf2_rng_qlty_t);
_range_sensor.setMaxFogDistance(_params.ekf2_rng_fog);
_range_sensor.runChecks(imu_sample.time_us, _R_to_earth);
_range_sensor.runChecks(imu_sample.time_us, _R_to_earth, _control_status.flags.in_air);
if (_range_sensor.isDataHealthy()) {
// correct the range data for position offset relative to the IMU
@@ -76,17 +76,6 @@ void Ekf::controlRangeHaglFusion(const imuSample &imu_sample)
_rng_consistency_check.update(_range_sensor.getDistBottom(), math::max(var, 0.001f), _state.vel(2),
P(State::vel.idx + 2, State::vel.idx + 2), horizontal_motion, imu_sample.time_us);
}
} else {
// If we are supposed to be using range finder data but have bad range measurements
// and are on the ground, then synthesise a measurement at the expected on ground value
if (!_control_status.flags.in_air
&& _range_sensor.isRegularlySendingData()
&& _range_sensor.isDataReady()) {
_range_sensor.setRange(_params.ekf2_min_rng);
_range_sensor.setValidity(true); // bypass the checks
}
}
_control_status.flags.rng_kin_consistent = _rng_consistency_check.isKinematicallyConsistent();
@@ -47,8 +47,10 @@ namespace estimator
namespace sensor
{
void SensorRangeFinder::runChecks(const uint64_t current_time_us, const matrix::Dcmf &R_to_earth)
void SensorRangeFinder::runChecks(const uint64_t current_time_us, const matrix::Dcmf &R_to_earth, bool in_air)
{
_in_air = in_air;
updateSensorToEarthRotation(R_to_earth);
updateValidity(current_time_us);
}
@@ -64,7 +66,7 @@ void SensorRangeFinder::updateValidity(uint64_t current_time_us)
{
updateDtDataLpf(current_time_us);
if (_is_faulty || isSampleOutOfDate(current_time_us) || !isDataContinuous()) {
if (isSampleOutOfDate(current_time_us) || !isDataContinuous()) {
_is_sample_valid = false;
_is_regularly_sending_data = false;
return;
@@ -76,7 +78,6 @@ void SensorRangeFinder::updateValidity(uint64_t current_time_us)
if (_is_sample_ready) {
_is_sample_valid = false;
_time_bad_quality_us = _sample.quality == 0 ? current_time_us : _time_bad_quality_us;
if (!isQualityOk(current_time_us) || !isTiltOk() || !isDataInRange()) {
return;
@@ -92,8 +93,16 @@ void SensorRangeFinder::updateValidity(uint64_t current_time_us)
}
}
bool SensorRangeFinder::isQualityOk(uint64_t current_time_us) const
bool SensorRangeFinder::isQualityOk(uint64_t current_time_us)
{
// Mark quality as OK while on the ground
if (!_in_air) {
_sample.rng = _rng_valid_min_val; // set to min val while on ground
return true;
}
_time_bad_quality_us = _sample.quality == 0 ? current_time_us : _time_bad_quality_us;
return current_time_us - _time_bad_quality_us > _quality_hyst_us;
}
@@ -66,7 +66,7 @@ public:
SensorRangeFinder() = default;
~SensorRangeFinder() override = default;
void runChecks(uint64_t current_time_us, const matrix::Dcmf &R_to_earth);
void runChecks(uint64_t current_time_us, const matrix::Dcmf &R_to_earth, bool in_air = true);
bool isHealthy() const override { return _is_sample_valid; }
bool isDataHealthy() const override { return _is_sample_ready && _is_sample_valid; }
bool isDataReady() const { return _is_sample_ready; }
@@ -120,8 +120,6 @@ public:
float getValidMinVal() const { return _rng_valid_min_val; }
float getValidMaxVal() const { return _rng_valid_max_val; }
void setFaulty(bool faulty = true) { _is_faulty = faulty; }
private:
void updateSensorToEarthRotation(const matrix::Dcmf &R_to_earth);
@@ -131,7 +129,7 @@ private:
bool isDataContinuous() const { return _dt_data_lpf < 2e6f; }
bool isTiltOk() const { return _cos_tilt_rng_to_earth > _range_cos_max_tilt; }
bool isDataInRange() const;
bool isQualityOk(uint64_t current_time_us) const;
bool isQualityOk(uint64_t current_time_us);
void updateStuckCheck();
void updateFogCheck(const float dist_bottom, const uint64_t time_us);
@@ -141,7 +139,6 @@ private:
bool _is_sample_valid{}; ///< true if range finder sample retrieved from buffer is valid
bool _is_regularly_sending_data{false}; ///< true if the interval between two samples is less than the maximum expected interval
uint64_t _time_last_valid_us{}; ///< time the last range finder measurement was ready (uSec)
bool _is_faulty{false}; ///< the sensor should not be used anymore
/*
* Stuck check
@@ -177,6 +174,7 @@ private:
*/
uint64_t _time_bad_quality_us{}; ///< timestamp at which range finder signal quality was 0 (used for hysteresis)
uint64_t _quality_hyst_us{}; ///< minimum duration during which the reported range finder signal quality needs to be non-zero in order to be declared valid (us)
bool _in_air{};
/*
* Fog check
+3 -3
View File
@@ -63,7 +63,7 @@ public:
private:
explicit MavlinkStreamHighresIMU(Mavlink *mavlink) : MavlinkStream(mavlink) {}
uORB::SubscriptionMultiArray<vehicle_imu_s, 3> _vehicle_imu_subs{ORB_ID::vehicle_imu};
uORB::SubscriptionMultiArray<vehicle_imu_s, 4> _vehicle_imu_subs{ORB_ID::vehicle_imu};
uORB::Subscription _estimator_sensor_bias_sub{ORB_ID(estimator_sensor_bias)};
uORB::Subscription _estimator_selector_status_sub{ORB_ID(estimator_selector_status)};
uORB::Subscription _sensor_selection_sub{ORB_ID(sensor_selection)};
@@ -190,8 +190,8 @@ private:
msg.xmag = mag(0);
msg.ymag = mag(1);
msg.zmag = mag(2);
msg.abs_pressure = air_data.baro_pressure_pa;
msg.diff_pressure = differential_pressure.differential_pressure_pa;
msg.abs_pressure = air_data.baro_pressure_pa * 0.01f; // Pa to hPa
msg.diff_pressure = differential_pressure.differential_pressure_pa * 0.01f; // Pa to hPa
msg.pressure_alt = air_data.baro_alt_meter;
msg.temperature = air_data.ambient_temperature;
msg.fields_updated = fields_updated;
@@ -32,7 +32,7 @@
############################################################################
if(NOT DEFINED ENV{GZ_DISTRO} OR NOT "$ENV{GZ_DISTRO}" STREQUAL "harmonic")
find_package(gz-transport NAMES gz-transport14 gz-transport13)
find_package(gz-transport NAMES gz-transport gz-transport14 gz-transport13)
else()
find_package(gz-transport NAMES gz-transport13)
endif()
@@ -41,6 +41,11 @@ file(GLOB gz_worlds ${PX4_SOURCE_DIR}/Tools/simulation/gz/worlds/*.sdf)
file(GLOB gz_airframes ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/init.d-posix/airframes/*_gz_*)
if (gz-transport_FOUND)
if (gz-transport_VERSION VERSION_LESS "15")
set(GZ_TRANSPORT_TARGET "gz-transport${gz-transport_VERSION_MAJOR}::core")
else()
set(GZ_TRANSPORT_TARGET "gz-transport::core")
endif()
px4_add_module(
MODULE modules__simulation__gz_bridge
MAIN gz_bridge
@@ -60,7 +65,7 @@ if (gz-transport_FOUND)
DEPENDS
mixer_module
px4_work_queue
gz-transport${gz-transport_VERSION_MAJOR}::core
${GZ_TRANSPORT_TARGET}
MODULE_CONFIG
module.yaml
)
@@ -33,6 +33,8 @@
#include "GZMixingInterfaceServo.hpp"
#include <gz/msgs/double.pb.h>
float
GZMixingInterfaceServo::get_servo_angle_max(const size_t index)
@@ -34,10 +34,10 @@
project(px4_gz_plugins)
if(NOT DEFINED ENV{GZ_DISTRO} OR NOT "$ENV{GZ_DISTRO}" STREQUAL "harmonic")
find_package(gz-transport NAMES gz-transport14 gz-transport13)
find_package(gz-sim NAMES gz-sim9 gz-sim8)
find_package(gz-sensors NAMES gz-sensors9 gz-sensors8)
find_package(gz-plugin NAMES gz-plugin3 gz-plugin2 COMPONENTS register)
find_package(gz-transport NAMES gz-transport gz-transport14 gz-transport13)
find_package(gz-sim NAMES gz-sim gz-sim9 gz-sim8)
find_package(gz-sensors NAMES gz-sensors gz-sensors9 gz-sensors8)
find_package(gz-plugin NAMES gz-plugin gz-plugin3 gz-plugin2 COMPONENTS register)
else()
find_package(gz-transport NAMES gz-transport13)
find_package(gz-sim NAMES gz-sim8)
@@ -46,6 +46,17 @@ else()
endif()
if (gz-transport_FOUND)
if (gz-transport_VERSION VERSION_LESS "15")
set(GZ_TRANSPORT_TARGET "gz-transport${gz-transport_VERSION_MAJOR}::gz-transport${gz-transport_VERSION_MAJOR}")
set(GZ_SIM_TARGET "gz-sim${gz-sim_VERSION_MAJOR}::gz-sim${gz-sim_VERSION_MAJOR}")
set(GZ_SENSORS_TARGET "gz-sensors${gz-sensors_VERSION_MAJOR}::gz-sensors${gz-sensors_VERSION_MAJOR}")
set(GZ_PLUGIN_TARGET "gz-plugin${gz-plugin_VERSION_MAJOR}::gz-plugin${gz-plugin_VERSION_MAJOR}")
else()
set(GZ_TRANSPORT_TARGET "gz-transport::gz-transport")
set(GZ_SIM_TARGET "gz-sim::gz-sim")
set(GZ_SENSORS_TARGET "gz-sensors::gz-sensors")
set(GZ_PLUGIN_TARGET "gz-plugin::gz-plugin")
endif()
# Create a flat output directory for all plugin libraries
set(PX4_GZ_PLUGIN_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE PATH "Directory for all Gazebo plugin libraries")
file(MAKE_DIRECTORY ${PX4_GZ_PLUGIN_OUTPUT_DIR})
@@ -48,10 +48,10 @@ add_library(${PROJECT_NAME} SHARED
target_link_libraries(${PROJECT_NAME}
PUBLIC px4_gz_msgs
PUBLIC gz-sensors${gz-sensors_VERSION_MAJOR}::gz-sensors${gz-sensors_VERSION_MAJOR}
PUBLIC gz-plugin${gz-plugin_VERSION_MAJOR}::gz-plugin${gz-plugin_VERSION_MAJOR}
PUBLIC gz-sim${gz-sim_VERSION_MAJOR}::gz-sim${gz-sim_VERSION_MAJOR}
PUBLIC gz-transport${gz-transport_VERSION_MAJOR}::gz-transport${gz-transport_VERSION_MAJOR}
PUBLIC ${GZ_SENSORS_TARGET}
PUBLIC ${GZ_PLUGIN_TARGET}
PUBLIC ${GZ_SIM_TARGET}
PUBLIC ${GZ_TRANSPORT_TARGET}
# Add other dependencies as needed
# PUBLIC ${OtherLib_LIBS}
)
@@ -48,10 +48,10 @@ add_library(${PROJECT_NAME} SHARED
target_link_libraries(${PROJECT_NAME}
PUBLIC px4_gz_msgs
PUBLIC gz-sensors${gz-sensors_VERSION_MAJOR}::gz-sensors${gz-sensors_VERSION_MAJOR}
PUBLIC gz-plugin${gz-plugin_VERSION_MAJOR}::gz-plugin${gz-plugin_VERSION_MAJOR}
PUBLIC gz-sim${gz-sim_VERSION_MAJOR}::gz-sim${gz-sim_VERSION_MAJOR}
PUBLIC gz-transport${gz-transport_VERSION_MAJOR}::gz-transport${gz-transport_VERSION_MAJOR}
PUBLIC ${GZ_SENSORS_TARGET}
PUBLIC ${GZ_PLUGIN_TARGET}
PUBLIC ${GZ_SIM_TARGET}
PUBLIC ${GZ_TRANSPORT_TARGET}
# Add other dependencies as needed
# PUBLIC ${OtherLib_LIBS}
)
@@ -47,10 +47,10 @@ else()
target_link_libraries(${PROJECT_NAME}
PUBLIC px4_gz_msgs
PUBLIC gz-sensors${gz-sensors_VERSION_MAJOR}::gz-sensors${gz-sensors_VERSION_MAJOR}
PUBLIC gz-plugin${gz-plugin_VERSION_MAJOR}::gz-plugin${gz-plugin_VERSION_MAJOR}
PUBLIC gz-sim${gz-sim_VERSION_MAJOR}::gz-sim${gz-sim_VERSION_MAJOR}
PUBLIC gz-transport${gz-transport_VERSION_MAJOR}::gz-transport${gz-transport_VERSION_MAJOR}
PUBLIC ${GZ_SENSORS_TARGET}
PUBLIC ${GZ_PLUGIN_TARGET}
PUBLIC ${GZ_SIM_TARGET}
PUBLIC ${GZ_TRANSPORT_TARGET}
PUBLIC ${GSTREAMER_LIBRARIES}
PUBLIC ${GSTREAMER_APP_LIBRARIES}
)
@@ -39,10 +39,10 @@ add_library(${PROJECT_NAME} SHARED
target_link_libraries(${PROJECT_NAME}
PUBLIC px4_gz_msgs
PUBLIC gz-sensors${gz-sensors_VERSION_MAJOR}::gz-sensors${gz-sensors_VERSION_MAJOR}
PUBLIC gz-plugin${gz-plugin_VERSION_MAJOR}::gz-plugin${gz-plugin_VERSION_MAJOR}
PUBLIC gz-sim${gz-sim_VERSION_MAJOR}::gz-sim${gz-sim_VERSION_MAJOR}
PUBLIC gz-transport${gz-transport_VERSION_MAJOR}::gz-transport${gz-transport_VERSION_MAJOR}
PUBLIC ${GZ_SENSORS_TARGET}
PUBLIC ${GZ_PLUGIN_TARGET}
PUBLIC ${GZ_SIM_TARGET}
PUBLIC ${GZ_TRANSPORT_TARGET}
)
target_include_directories(${PROJECT_NAME}
@@ -46,10 +46,10 @@ add_library(${PROJECT_NAME} SHARED
target_link_libraries(${PROJECT_NAME}
PUBLIC px4_gz_msgs
PUBLIC gz-sensors${gz-sensors_VERSION_MAJOR}::gz-sensors${gz-sensors_VERSION_MAJOR}
PUBLIC gz-plugin${gz-plugin_VERSION_MAJOR}::gz-plugin${gz-plugin_VERSION_MAJOR}
PUBLIC gz-sim${gz-sim_VERSION_MAJOR}::gz-sim${gz-sim_VERSION_MAJOR}
PUBLIC gz-transport${gz-transport_VERSION_MAJOR}::gz-transport${gz-transport_VERSION_MAJOR}
PUBLIC ${GZ_SENSORS_TARGET}
PUBLIC ${GZ_PLUGIN_TARGET}
PUBLIC ${GZ_SIM_TARGET}
PUBLIC ${GZ_TRANSPORT_TARGET}
PUBLIC ${OpenCV_LIBS}
PUBLIC ${OpticalFlow_LIBS}
)
@@ -48,10 +48,10 @@ add_library(${PROJECT_NAME} SHARED
target_link_libraries(${PROJECT_NAME}
PUBLIC px4_gz_msgs
PUBLIC gz-sensors${gz-sensors_VERSION_MAJOR}::gz-sensors${gz-sensors_VERSION_MAJOR}
PUBLIC gz-plugin${gz-plugin_VERSION_MAJOR}::gz-plugin${gz-plugin_VERSION_MAJOR}
PUBLIC gz-sim${gz-sim_VERSION_MAJOR}::gz-sim${gz-sim_VERSION_MAJOR}
PUBLIC gz-transport${gz-transport_VERSION_MAJOR}::gz-transport${gz-transport_VERSION_MAJOR}
PUBLIC ${GZ_SENSORS_TARGET}
PUBLIC ${GZ_PLUGIN_TARGET}
PUBLIC ${GZ_SIM_TARGET}
PUBLIC ${GZ_TRANSPORT_TARGET}
# Add other dependencies as needed
# PUBLIC ${OtherLib_LIBS}
)
@@ -48,10 +48,10 @@ add_library(${PROJECT_NAME} SHARED
target_link_libraries(${PROJECT_NAME}
PUBLIC px4_gz_msgs
PUBLIC gz-sensors${gz-sensors_VERSION_MAJOR}::gz-sensors${gz-sensors_VERSION_MAJOR}
PUBLIC gz-plugin${gz-plugin_VERSION_MAJOR}::gz-plugin${gz-plugin_VERSION_MAJOR}
PUBLIC gz-sim${gz-sim_VERSION_MAJOR}::gz-sim${gz-sim_VERSION_MAJOR}
PUBLIC gz-transport${gz-transport_VERSION_MAJOR}::gz-transport${gz-transport_VERSION_MAJOR}
PUBLIC ${GZ_SENSORS_TARGET}
PUBLIC ${GZ_PLUGIN_TARGET}
PUBLIC ${GZ_SIM_TARGET}
PUBLIC ${GZ_TRANSPORT_TARGET}
# Add other dependencies as needed
# PUBLIC ${OtherLib_LIBS}
)
@@ -144,7 +144,7 @@ void SensorAirspeedSim::Run()
// report.timestamp_sample = time;
differential_pressure.device_id = 1377548; // 1377548: DRV_DIFF_PRESS_DEVTYPE_SIM, BUS: 1, ADDR: 5, TYPE: SIMULATION
differential_pressure.differential_pressure_pa = (double)diff_pressure * 100.0; // hPa to Pa;
differential_pressure.temperature = temperature_local;
differential_pressure.temperature = temperature_local + ABSOLUTE_ZERO_C; // K to C
differential_pressure.timestamp = hrt_absolute_time();
_differential_pressure_pub.publish(differential_pressure);
@@ -49,6 +49,7 @@
using namespace time_literals;
static constexpr float ABSOLUTE_ZERO_C = -273.15; // absolute 0 temperature [C]
static constexpr float TEMPERATURE_MSL = 288.15; // temperature at MSL [K] (15 [C])
static constexpr float PRESSURE_MSL = 101325.0; // pressure at MSL [Pa]
static constexpr float LAPSE_RATE = 0.0065; // reduction in temperature with altitude for troposphere [K/m]