mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-23 06:36:45 +08:00
New Crowdin translations - zh-CN (#26553)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
This commit is contained in:
+16
-25
@@ -153,15 +153,11 @@
|
||||
- [Wiring Quickstart](assembly/quick_start_pixhawk5x.md)
|
||||
- [Holybro Pixhawk 4 (FMUv5)](flight_controller/pixhawk4.md)
|
||||
- [Wiring Quickstart](assembly/quick_start_pixhawk4.md)
|
||||
- [Holybro Pixhawk 4 Mini (FMUv5) - Discontinued](flight_controller/pixhawk4_mini.md)
|
||||
- [Wiring Quickstart](assembly/quick_start_pixhawk4_mini.md)
|
||||
- [Drotek Pixhawk 3 Pro (FMUv4pro) - Discontinued](flight_controller/pixhawk3_pro.md)
|
||||
- [mRo Pixracer (FMUv4)](flight_controller/pixracer.md)
|
||||
- [Wiring Quickstart](assembly/quick_start_pixracer.md)
|
||||
- [Hex Cube Black (FMUv3)](flight_controller/pixhawk-2.md)
|
||||
- [mRo Pixhawk (FMUv3)](flight_controller/mro_pixhawk.md)
|
||||
- [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)
|
||||
@@ -175,6 +171,7 @@
|
||||
- [CUAV V5 nano (FMUv5)](flight_controller/cuav_v5_nano.md)
|
||||
- [CUAV V5 nano Wiring Quickstart](assembly/quick_start_cuav_v5_nano.md)
|
||||
- [CUAV X25 EVO](flight_controller/cuav_x25-evo.md)
|
||||
- [CUAV X25 SUPER](flight_controller/cuav_x25-super.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)
|
||||
@@ -205,22 +202,6 @@
|
||||
- [PilotPi with Raspberry Pi OS](flight_controller/raspberry_pi_pilotpi_rpios.md)
|
||||
- [PilotPi with Ubuntu Server](flight_controller/raspberry_pi_pilotpi_ubuntu_server.md)
|
||||
- [Discontinued Autopilots/Vehicles](flight_controller/autopilot_discontinued.md)
|
||||
- [Drotek Dropix (FMUv2)](flight_controller/dropix.md)
|
||||
- [Omnibus F4 SD](flight_controller/omnibus_f4_sd.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)
|
||||
- [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)
|
||||
@@ -258,6 +239,7 @@
|
||||
- [Lidar-Lite](sensor/lidar_lite.md)
|
||||
- [Lightware Lidars (SF/LW/GRF)](sensor/sfxx_lidar.md)
|
||||
- [Lightware SF45 Rotary Lidar](sensor/sf45_rotating_lidar.md)
|
||||
- [Lightware GRF250/GRF500 Gimbal Lidar](sensor/grf_lidar.md)
|
||||
- [TeraRanger](sensor/teraranger.md)
|
||||
- [✘ Lanbao PSK-CM8JL65-CC5](sensor/cm8jl65_ir_distance_sensor.md)
|
||||
- [Avionics Anonymous Laser Altimeter UAVCAN Interface (CAN)](dronecan/avanon_laser_interface.md)
|
||||
@@ -332,11 +314,11 @@
|
||||
- [VESC Project ESCs](peripherals/vesc.md)
|
||||
- [Zubax Telega ESCs](dronecan/zubax_telega.md)
|
||||
|
||||
- [Radio Control (RC)](getting_started/rc_transmitter_receiver.md)
|
||||
- [无线电系统设置](config/radio.md)
|
||||
- [飞行模式](config/flight_mode.md)
|
||||
|
||||
- [Joysticks](config/joystick.md)
|
||||
- [Manual Control](config/manual_control.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)
|
||||
@@ -412,6 +394,7 @@
|
||||
- [PX4 DroneCAN Firmware](dronecan/px4_cannode_fw.md)
|
||||
- [ARK CANnode](dronecan/ark_cannode.md)
|
||||
- [RaccoonLab CAN Nodes](dronecan/raccoonlab_nodes.md)
|
||||
- [DroneCAN Lights](dronecan/lights.md)
|
||||
|
||||
- [Cable Wiring](assembly/cable_wiring.md)
|
||||
|
||||
@@ -439,6 +422,7 @@
|
||||
|
||||
- [高级配置](advanced_config/index.md)
|
||||
- [Using PX4's Navigation Filter (EKF2)](advanced_config/tuning_the_ecl_ekf.md)
|
||||
- [GNSS-Denied & Degraded Flight](advanced_config/gnss_degraded_or_denied_flight.md)
|
||||
- [查找/更新参数](advanced_config/parameters.md)
|
||||
- [Full Parameter Reference](advanced_config/parameter_reference.md)
|
||||
|
||||
@@ -547,6 +531,8 @@
|
||||
- [LongitudinalControlConfiguration](msg_docs/LongitudinalControlConfiguration.md)
|
||||
- [ManualControlSetpoint](msg_docs/ManualControlSetpoint.md)
|
||||
- [ModeCompleted](msg_docs/ModeCompleted.md)
|
||||
- [RaptorInput](msg_docs/RaptorInput.md)
|
||||
- [RaptorStatus](msg_docs/RaptorStatus.md)
|
||||
- [RegisterExtComponentReply](msg_docs/RegisterExtComponentReply.md)
|
||||
- [RegisterExtComponentRequest](msg_docs/RegisterExtComponentRequest.md)
|
||||
- [TrajectorySetpoint](msg_docs/TrajectorySetpoint.md)
|
||||
@@ -575,6 +561,7 @@
|
||||
- [Airspeed](msg_docs/Airspeed.md)
|
||||
- [AirspeedWind](msg_docs/AirspeedWind.md)
|
||||
- [AutotuneAttitudeControlStatus](msg_docs/AutotuneAttitudeControlStatus.md)
|
||||
- [AuxGlobalPosition](msg_docs/AuxGlobalPosition.md)
|
||||
- [BatteryInfo](msg_docs/BatteryInfo.md)
|
||||
- [ButtonEvent](msg_docs/ButtonEvent.md)
|
||||
- [CameraCapture](msg_docs/CameraCapture.md)
|
||||
@@ -768,6 +755,7 @@
|
||||
- [VehicleThrustSetpoint](msg_docs/VehicleThrustSetpoint.md)
|
||||
- [VehicleTorqueSetpoint](msg_docs/VehicleTorqueSetpoint.md)
|
||||
- [VelocityLimits](msg_docs/VelocityLimits.md)
|
||||
- [Vtx](msg_docs/Vtx.md)
|
||||
- [WheelEncoders](msg_docs/WheelEncoders.md)
|
||||
- [Wind](msg_docs/Wind.md)
|
||||
- [YawEstimatorStatus](msg_docs/YawEstimatorStatus.md)
|
||||
@@ -781,8 +769,11 @@
|
||||
- [RegisterExtComponentReplyV0](msg_docs/RegisterExtComponentReplyV0.md)
|
||||
- [RegisterExtComponentRequestV0](msg_docs/RegisterExtComponentRequestV0.md)
|
||||
- [VehicleAttitudeSetpointV0](msg_docs/VehicleAttitudeSetpointV0.md)
|
||||
- [VehicleCommandAckV0](msg_docs/VehicleCommandAckV0.md)
|
||||
- [VehicleGlobalPositionV0](msg_docs/VehicleGlobalPositionV0.md)
|
||||
- [VehicleLocalPositionV0](msg_docs/VehicleLocalPositionV0.md)
|
||||
- [VehicleStatusV0](msg_docs/VehicleStatusV0.md)
|
||||
- [VehicleStatusV1](msg_docs/VehicleStatusV1.md)
|
||||
- [MAVLink Messaging](mavlink/index.md)
|
||||
- [Adding Messages](mavlink/adding_messages.md)
|
||||
- [Streaming Messages](mavlink/streaming_messages.md)
|
||||
|
||||
@@ -67,7 +67,7 @@ The consensus [appears to be](https://discuss.px4.io/t/vio-vs-optical-flow/34680
|
||||
|
||||
Optical flow:
|
||||
|
||||
- 向下光学流使得你能够通过陀螺仪的角速度来校正角平面速度。
|
||||
- Downward facing optical flow gives you a planar velocity that's corrected for angular velocity with the gyro.
|
||||
- 需要准确的地面距离并假定地面为平面。
|
||||
在这种情况下,它可能与VIO一样准确可靠(例如室内飞行)
|
||||
- 它比VIO更健壮,因为它的状态较少。
|
||||
|
||||
@@ -20,7 +20,7 @@ By default this is set to `Disabled (-1)` and the driver does not run.
|
||||
在选择输入模式后,请重新启动飞行器以启动挂载驱动程序。
|
||||
|
||||
You should set `MNT_MODE_IN` to one of: `RC (1)`, `MAVlink gimbal protocol v2 (4)` or `Auto (0)` (the other options are deprecated).
|
||||
If you select `Auto (0)`, the gimbal will automatically select either RC or or MAVLink input based on the latest input.
|
||||
If you select `Auto (0)`, the gimbal will automatically select either RC or MAVLink input based on the latest input.
|
||||
请注意,从 MAVLink 到 RC 的自动切换需要一个大幅度地杆量操作!
|
||||
|
||||
The output is set using the [MNT_MODE_OUT](../advanced_config/parameter_reference.md#MNT_MODE_OUT) parameter.
|
||||
|
||||
@@ -45,7 +45,7 @@ PX4 元数据是在 PX4 源代码及其相关数据中定义的。
|
||||
|
||||
内存受限的飞控二进制文件不会在二进制文件中存储参数元数据,而是引用存储在`px4-travis.s3.amazonaws.com`上的相同数据。
|
||||
例如,这适用于[Umnibus F4 SD](../flight_controller/omnibus_f4_sd.md)。
|
||||
元数据是通过 [github CI](https://github.com/PX4/PX4-Autopilot/blob/main/.github/workflows/metadata.yml) 上传的,用于所有构建目标(因此只有在参数被合并到主体后才能使用)。
|
||||
The metadata is uploaded via the [build_all_targets](https://github.com/PX4/PX4-Autopilot/blob/main/.github/workflows/build_all_targets.yml) GitHub CI workflow for all build targets (and hence will only be available once parameters have been merged into main).
|
||||
|
||||
:::info
|
||||
你可以识别出内存受限的开发板,因为它们在[px4board定义文件](https://github.com/PX4/PX4-Autopilot/blob/main/boards/omnibus/f4sd/default.px4board) 中指定了`CONFIG_BOARD_CONSTRAINED_FLASH=y` 。
|
||||
@@ -60,6 +60,7 @@ PX4 元数据是在 PX4 源代码及其相关数据中定义的。
|
||||
这与Crowdin集成,用于获取翻译,这些翻译存储在 [translated](https://github.com/PX4/PX4-Metadata-Translations/tree/main/translated) 文件夹中,每种语言都有 xz 压缩的翻译文件。
|
||||
这些是由载具的组件元数据引用的,并在需要时下载。
|
||||
有关更多信息,请参阅 [PX4-Metadata-Translations](https://github.com/PX4/PX4-Metadata-Translations/) 和 [Component Metadata Protocol > Translation](https://mavlink.io/en/services/component_information.html#translation)。
|
||||
This is orchestrated by the [docs-orchestrator](https://github.com/PX4/PX4-Autopilot/blob/main/.github/workflows/docs-orchestrator.yml) GitHub CI workflow, which also regenerates auto-generated documentation such as parameter reference, airframe reference, and uORB message docs.
|
||||
|
||||
:::info
|
||||
主分支的参数 XML 文件通过 CI 复制到 QGC 源代码树中,并在没有通过组件元数据协议获取到元数据的情况下用作后备方案 (该方法早于组件元数据协议)。
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Bootloader Update Pixhawk V6X-RT via USB
|
||||
|
||||
This topic explains explains to flash [Pixhawk FMUv6X-RT](../flight_controller/pixhawk6x-rt.md) bootloader via USB _without needing a debug probe_.
|
||||
This topic explains how to flash [Pixhawk FMUv6X-RT](../flight_controller/pixhawk6x-rt.md) bootloader via USB _without needing a debug probe_.
|
||||
|
||||
## 综述
|
||||
|
||||
@@ -33,7 +33,7 @@ arm-none-eabi-objcopy -O ihex build/px4_fmu-v6xrt_bootloader/px4_fmu-v6xrt_bootl
|
||||
|
||||
## Flashing the bootloader through USB
|
||||
|
||||
The Pixhawk V6X-RT comes with a build-in bootloader located on the ROM.
|
||||
The Pixhawk V6X-RT comes with a built-in bootloader located on the ROM.
|
||||
To flash a new bootloader through USB you've got to download the [NXP MCUXpresso Secure Provisioning tool](https://www.nxp.com/design/design-center/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-secure-provisioning-tool:MCUXPRESSO-SECURE-PROVISIONING).
|
||||
The tool is available for Windows, Linux and macOS.
|
||||
|
||||
@@ -80,7 +80,7 @@ The tool is available for Windows, Linux and macOS.
|
||||
|
||||

|
||||
|
||||
4. When the Target Memory configuration is succesful you can press the the **Erase All** button
|
||||
4. When the Target Memory configuration is successful you can press the **Erase All** button
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
# GNSS-Degraded & Denied Flight ("Dead-Reckoning" Mode)
|
||||
|
||||
<Badge type="tip" text="PX4 v1.17" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
:::warning
|
||||
Experimental
|
||||
This is a new feature with limited real-world testing.
|
||||
It is intended for GNSS dropout scenarios (not pure GNSS-denied from takeoff), and requires that alternative velocity/position sensors are available.
|
||||
|
||||
Please [share your related test logs](../getting_started/flight_reporting.md#sharing-the-log-files-for-review-by-px4-developers) to help us verify and harden it.
|
||||
:::
|
||||
|
||||
PX4 is default-configured for outdoor flight with a reliable GNSS signal, but it can also be set up in "dead-reckoning mode" to more gracefully handle environments where GNSS is intermittently degraded or denied during flight.
|
||||
|
||||
This section describes the differences between automatic and dead-reckoning modes, the circumstances in which each should be used, and how dead-reckoning is configured.
|
||||
|
||||
## 综述
|
||||
|
||||
PX4's EKF2 navigation has two modes for handling when GNSS data is determined to be unreliable:
|
||||
|
||||
- **Automatic mode** (the default): Used for flying outdoors in environments where a GNSS signal is expected to be largely reliable.
|
||||
- **Dead-reckoning mode**: Recommended when you want to fly missions or other position controlled modes when there is intermittent GNSS loss, such as when flying under a bridge, from outdoors into an indoor setting, or when there is GNSS jamming (it is not suitable for pure-indoor use, as a GNSS signal is required before arming).
|
||||
|
||||
:::info
|
||||
Dead-reckoning mode helps for both Fixed-Wing and Multicopter vehicles.
|
||||
MC vehicles benefit more because they can hover when transitioning between sensor regimes.
|
||||
FW needs continuous accurate velocity/position during the entire mission arc, making sensor transitions trickier.
|
||||
:::
|
||||
|
||||
## Mode Comparison
|
||||
|
||||
The following sections provide more detail about each of the modes and when they should be used.
|
||||
|
||||
### Automatic Mode
|
||||
|
||||
In Automatic mode the EKF2 resets if GNSS is lost and no other sources of position are available.
|
||||
This can result in a [position loss failsafe](../config/safety.md#position-loss-failsafe) and may trigger a shift into a mode that does not require global position, including stopping missions.
|
||||
|
||||
This is desirable if the GNSS signal is likely to be recovered quickly and there are no mechanisms to estimate position when GNSS is unavailable.
|
||||
|
||||
Use Automatic (default) when:
|
||||
|
||||
- Flying in open sky with reliable GNSS throughout the mission.
|
||||
- You want the EKF to reset to GNSS when it becomes available again.
|
||||
- Operating in environments where GNSS is either good or completely unavailable (binary state).
|
||||
|
||||
### Dead-Reckoning Mode
|
||||
|
||||
In dead-reckoning mode, EKF2 stops fusing GNSS data when it becomes unreliable and prevents EKF2 resets — provided there are other sources of position or velocity data that can be fused.
|
||||
This ensures that the vehicle can continue flying missions and other position controlled modes when GNSS is lost.
|
||||
|
||||
When GNSS is recovered it will be fused with other measurements when tests indicate it can be trusted.
|
||||
This may cause jerky movements in position controlled modes if the estimate has drifted.
|
||||
This mode relies on having additional position or velocity sensors and must also have a reliable GNSS signal at boot.
|
||||
|
||||
Use Dead-Reckoning when:
|
||||
|
||||
- **Transitioning between GNSS and non-GNSS environments** (flying into buildings, under bridges, through tree cover).
|
||||
- You have **redundant sensors** (optical flow, VIO, rangefinder, quality baro) that can maintain position estimation.
|
||||
- Flying **missions that cross GPS-denied areas** where you want continuous operation rather than failsafe.
|
||||
- **Urban environments** or other areas with intermittent GNSS quality.
|
||||
- You want to **avoid EKF resets and jumps** when GNSS recovers (smoother transitions).
|
||||
|
||||
## 配置
|
||||
|
||||
To use dead-reckoning mode, the vehicle must have an alternative source of position or velocity information, such as an [Optical Flow](../sensor/optical_flow.md) sensor or [VIO](../computer_vision/visual_inertial_odometry.md) setup.
|
||||
|
||||
To enable the mode:
|
||||
|
||||
1. Set [EKF2_GPS_MODE](../advanced_config/parameter_reference.md#EKF2_GPS_MODE) to `1`.
|
||||
2. Ensure that GNSS arming checks are enabled (a reliable GNSS signal is required before arming):
|
||||
- [COM_ARM_WO_GPS](../advanced_config/parameter_reference.md#COM_ARM_WO_GPS) - set to `0`
|
||||
- [EKF2_GPS_CHECK](../advanced_config/parameter_reference.md#EKF2_GPS_CHECK) - set to default.
|
||||
|
||||
## 另见
|
||||
|
||||
- [GNSS Fault Detection](../advanced_config/tuning_the_ecl_ekf.md#gnss-fault-detection) in _Using PX4's Navigation Filter (EKF2)_
|
||||
- [Fuse, Reset, or Reject? EKF2中处理多种数据源](https://www.youtube.com/watch?v=CMGQJNPiTJg) - _PX4开发者峰会2025_,Marco Hauswirth,Auterion AG
|
||||
@@ -10,6 +10,7 @@
|
||||
## 功能配置
|
||||
|
||||
- [使用 PX4 的导航滤波器 (EKF2)](../advanced_config/tuning_the_ecl_ekf.md)
|
||||
- [GNSS-Denied and Degraded Flight](../advanced_config/gnss_degraded_or_denied_flight.md)
|
||||
- [飞行终止配置](../advanced_config/flight_termination.md)
|
||||
- [着陆探测器配置](../advanced_config/land_detector.md)
|
||||
- [解锁前/解锁/加锁 配置](../advanced_config/prearm_arm_disarm.md)
|
||||
|
||||
@@ -40,7 +40,7 @@ Information about how the parameters affect landing can be found below in [Land
|
||||
如果由于缺少传感器而无法达到条件,则默认情况下认为该条件为真。
|
||||
For instance, in [Acro mode](../flight_modes_mc/acro.md) and no sensor is active except for the gyro sensor, then the detection solely relies on thrust output and time.
|
||||
|
||||
In order to proceed to the next state, each condition has to be true for a third of the configured total land detector trigger time [LNDMC_TRIG_TIME](../advanced_config/parameter_reference.md#LNDMC_TRIG_TIME).
|
||||
In order to proceed to the next state, each condition has to be true for 300ms.
|
||||
If the vehicle is equipped with a distance sensor, but the distance to ground is currently not measurable (usually because it is too large), the trigger time is increased by a factor of 3.
|
||||
|
||||
如果一个条件失败,则陆地探测器立即退出当前状态。
|
||||
|
||||
@@ -328,7 +328,7 @@ GSF 应用于各个 3 状态 EKF 输出的权重位于 `weight` 字段中。
|
||||
|
||||
最小值在 [EKF2_REQ_\*](../advanced_config/parameter_reference.md#EKF2_REQ_EPH) 参数中定义,并且可以使用 [EKF2_GPS_CHECK](../advanced_config/parameter_reference.md#EKF2_GPS_CHECK) 参数启用/禁用每个检查。
|
||||
|
||||
下表显示了直接报告或从 GNSS 数据计算出的不同指标,以及 ECL 使用数据所需的最小值。
|
||||
下表列出了直接从 GNSS 数据中报告或计算的不同指标,以及 ECL 使用这些数据所需满足的最低要求值。
|
||||
此外,_平均值 (Average Value)_ 列显示了可能从标准 GNSS 模块(例如 u-blox M8 系列)合理获得的典型值 - 即被认为良好/可接受的值。
|
||||
|
||||
| 指标 (Metric) | 最低要求 | 平均值 (Average Value) | 单位 (Units) | 备注 |
|
||||
@@ -339,7 +339,7 @@ GSF 应用于各个 3 状态 EKF 输出的权重位于 `weight` 字段中。
|
||||
| sacc | < 0.5 ([EKF2_REQ_EPH](../advanced_config/parameter_reference.md#EKF2_REQ_SACC)) | 0.2 | 米/秒 | 水平速度误差的标准偏差 |
|
||||
| 定位类型 (fix type) | ≥ 3 | 4 | - | 0-1: 无定位, 2: 2D 定位, 3: 3D 定位, 4: RTCM 码差分, 5: 实时动态 (RTK) 浮点解, 6: 实时动态 (RTK) 固定解, 8: 外推值 |
|
||||
| 位置精度衰減因子(PDOP) | < 2.5 ([EKF2_REQ_EPH](../advanced_config/parameter_reference.md#EKF2_REQ_PDOP)) | 1.0 | - | 位置精度衰减 |
|
||||
| hpos 漂移率 | < 0.1 ([EKF2_REQ_EPH](../advanced_config/parameter_reference.md#EKF2_REQ_HDRIFT)) | 0.01 | 米/秒 | 静止时基于 GNSS 位置计算的漂移率 |
|
||||
| hpos 漂移率 | < 0.1 ([EKF2_REQ_EPH](../advanced_config/parameter_reference.md#EKF2_REQ_HDRIFT)) | 0.01 | 米/秒 | 静止时基于 GNSS 位置计算的漂移率。 |
|
||||
| vpos 漂移率 | < 0.2 ([EKF2_REQ_EPH](../advanced_config/parameter_reference.md#EKF2_REQ_VDRIFT)) | 0.02 | 米/秒 | 静止时基于 GNSS 高度计算的漂移率。 |
|
||||
| hspd | < 0.1 ([EKF2_REQ_EPH](../advanced_config/parameter_reference.md#EKF2_REQ_HDRIFT)) | 0.01 | 米/秒 | 报告的 GNSS 水平速度的滤波幅值。 |
|
||||
| 报告的 GNSS 垂直速度的滤波幅值。 | < 0.2 ([EKF2_REQ_EPH](../advanced_config/parameter_reference.md#EKF2_REQ_VDRIFT)) | 0.02 | 米/秒 | 所报告的全球导航卫星系统垂直速度的滤波量级。 |
|
||||
@@ -362,6 +362,10 @@ PX4 的 GNSS 故障检测使用基于测量验证的选择性融合控制来防
|
||||
如果没有其他位置或速度源可用,EKF2 可能会重置。
|
||||
如果 GNSS 高度或水平位置数据漂移,系统将同时禁用这两个测量值的融合(即使其中一个仍能通过验证),并避免执行重置。
|
||||
|
||||
:::tip
|
||||
See also [Fault Detection](https://youtu.be/CMGQJNPiTJg?si=sFtdf4AQbcOH8-u8) in "Fuse, Reset, or Reject? 处理EKF2中的各种数据来源"_PX4 开发者峰会2025_, Marco Hauswirth, Auterion AG
|
||||
:::
|
||||
|
||||
##### 检测逻辑
|
||||
|
||||
水平位置:
|
||||
@@ -456,7 +460,7 @@ PX4 允许您持续融合测距仪作为高度源(在任何飞行模式/载具
|
||||
如果检查失败,测距仪数据将被拒绝,高度将根据加速度计和其他选定的高度源(GNSS、气压计、视觉,如果启用且可用)进行估计。
|
||||
如果距离传感器是活动的高度数据源,在数据不一致持续 5 秒后,估计器会重置高度状态以匹配当前的距离传感器数据。
|
||||
如果一个或多个其他高度源处于活动状态,则测距仪被声明为故障,估计器继续使用其他传感器估计其高度。
|
||||
测量值也可能再次变得一致,例如,如果载具下降,或者如果估计的高度漂移以匹配测量的测距仪高度。
|
||||
测量结果也可能再次保持一致,例如当载具下降时,或者当估计高度漂移至与测距仪测得的高度相匹配时。
|
||||
|
||||
:::
|
||||
|
||||
@@ -571,8 +575,8 @@ EKF2 默认启用(有关更多信息,请参阅 [切换状态估计器](../ad
|
||||
- ecl EKF 检测并报告传感器数据中统计上的显著不一致,协助诊断传感器错误。
|
||||
- 对于固定翼操作,ecl EKF 在有或没有空速传感器的情况下均可估计风速,并且能够在飞行中 GPS 丢失时结合空速测量和侧滑假设来使用估计的风速,以延长可用的航位推算时间。
|
||||
- ecl EKF 估计三轴加速度计零偏,这提高了尾座式飞机和其他在飞行阶段之间经历大姿态变化的载具的精度。
|
||||
- 联邦结构(组合姿态和位置/速度估计)意味着姿态估计受益于所有传感器测量。
|
||||
如果调参正确,这应该提供改善态度估计的潜力。
|
||||
- 联合架构(结合姿态与位置/速度估计)意味着姿态估计能够利用所有传感器的测量数据。
|
||||
若调参得当,这应能提升姿态估算的精度。
|
||||
|
||||
## 如何检查 EKF 性能?
|
||||
|
||||
@@ -594,7 +598,7 @@ EKF 输出、状态和状态数据发布到许多 uORB 主题,这些主题在
|
||||
- 姿态输出数据位于 [VehicleAttitude](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/VehicleAttitude.msg) 消息中。
|
||||
- 局部位置输出数据位于 [VehicleLocalPosition](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/VehicleLocalPosition.msg) 消息中。
|
||||
- 全局 (WGS-84) 输出数据位于 [VehicleGlobalPosition](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/VehicleGlobalPosition.msg) 消息中。
|
||||
- 风速输出数据位于 [Wind.msg](https://github.com/PX4/PX4-Autopilot/blob/main/msg/Wind.msg) 消息中。
|
||||
- 风速输出数据位于 [AirspeedWind.msg](https://github.com/PX4/PX4-Autopilot/blob/main/msg/AirspeedWind.msg)消息中。
|
||||
|
||||
### 状态
|
||||
|
||||
@@ -610,7 +614,7 @@ states\[24\] 的索引映射如下:
|
||||
- \[19 ... 21\] 机体磁场 XYZ \(gauss\)
|
||||
- \[22 ... 23\] 风速 NE \(m/s\)
|
||||
|
||||
### 状态方差
|
||||
### 状态变量
|
||||
|
||||
参考 [EstimatorStates](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EstimatorStates.msg) 中的 covariances\[24\]。
|
||||
covariances\[24\] 的索引映射如下:
|
||||
@@ -630,7 +634,7 @@ covariances\[24\] 的索引映射如下:
|
||||
这些消息字段名称/类型相同(但单位不同)。
|
||||
|
||||
:::info
|
||||
这些消息具有相同字段,是因为它们来自同一字段定义。
|
||||
这些消息具有相同的字段,因为它们是从相同的字段定义生成的。
|
||||
`# TOPICS` 行(见 [文件末尾](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EstimatorInnovations.msg))列出了要生成的消息名:
|
||||
|
||||
```
|
||||
@@ -730,12 +734,12 @@ EKF 在开始 GPS 辅助前会执行一系列 GPS 质量检查。
|
||||
这些检查由 [EKF2_GPS_CHECK](../advanced_config/parameter_reference.md#EKF2_GPS_CHECK) 和 `EKF2_REQ_*` 参数控制。
|
||||
这些检查的通过/失败状态记录在 [EstimatorStatus](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EstimatorStatus.msg) 的 `gps_check_fail_flags` 字段中。
|
||||
当所有所需的 GPS 检查通过后,此整数将为零。
|
||||
如果 EKF 未开始 GPS 对齐,请将该整数与 [EstimatorStatus](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EstimatorStatus.msg) 中 `gps_check_fail_flags` 的位掩码定义进行对比。
|
||||
如果 EKF 未启动 GPS 对齐,请将该整数与 [EstimatorStatus](https://github.com/PX4/PX4-Autopilot/blob/main/msg/EstimatorStatus.msg) 中 `gps_check_fail_flags` 的位掩码定义进行对比。
|
||||
|
||||
### EKF 数值误差
|
||||
|
||||
EKF 对其所有计算使用单精度浮点运算,并使用一阶近似来推导协方差预测和更新方程,以降低处理要求。
|
||||
这意味着,当重新调整 EKF 时,可能遇到协方差矩阵运算条件恶劣,足以导致状态估计中的发散或显著错误的情况。
|
||||
这意味着,当重新调整 EKF 时,可能遇到协方差矩阵运算条件恶化到足以导致发散或状态估计出现重大误差的情况。
|
||||
|
||||
为防止这种情况,每个协方差和状态更新步骤都包含以下错误检测和更正步骤:
|
||||
|
||||
@@ -763,7 +767,7 @@ EKF 对其所有计算使用单精度浮点运算,并使用一阶近似来推
|
||||
|
||||
如果谐振频率与电动机或螺旋桨叶片通过频率一致,则隔离安装件会使振动更严重。
|
||||
|
||||
可通过以下参数调整提高 EKF 对振动引起的高度发散的鲁棒性:
|
||||
通过调整以下参数,可增强 EKF 对振动诱发高度发散的抗扰性:
|
||||
|
||||
- 将主高度传感器的创新门限加倍。
|
||||
若使用气压高度,可调 [EKF2_BARO_GATE](../advanced_config/parameter_reference.md#EKF2_BARO_GATE)。
|
||||
@@ -896,3 +900,4 @@ GPS 数据丢失会表现为速度与位置创新测试比值“贴平(flat-lini
|
||||
## 更多信息
|
||||
|
||||
- [PX4 State Estimation Overview](https://youtu.be/HkYRJJoyBwQ),_PX4 Developer Summit 2019_,Dr. Paul Riseborough:估计器概览、2018/19 的主要变化,以及 2019/20 期间的预期改进。
|
||||
- [Fuse, Reset, or Reject? EKF2中处理多种数据源](https://www.youtube.com/watch?v=CMGQJNPiTJg) - _PX4开发者峰会2025_,Marco Hauswirth,Auterion AG
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
卫星通信链接需要以下组成部件:
|
||||
|
||||
- A [RockBlock 9603 Iridium Satellite Modem](https://www.iridium.com/products/ground-control-rockblock-9603/) module connected to a Pixhawk flashed with the PX4 Autopilot.
|
||||
- A [RockBlock 9603 Iridium Satellite Modem](https://www.iridium.com/products/rockblock-9603) module connected to a Pixhawk flashed with the PX4 Autopilot.
|
||||
- 运行 Ubuntu 系统的消息中继服务器。
|
||||
- A ground station computer running _QGroundControl_ on Ubuntu Linux
|
||||
|
||||
@@ -58,13 +58,13 @@ The default baud rate of the module is 19200. However, the PX4 _iridiumsbd_ driv
|
||||
|
||||
2. Change the baud rate:
|
||||
|
||||
```
|
||||
```sh
|
||||
AT+IPR=9
|
||||
```
|
||||
|
||||
3. Reconnect to the model now with a 115200/8-N-1 setting and save the configuration using:
|
||||
|
||||
```
|
||||
```sh
|
||||
AT&W0
|
||||
```
|
||||
|
||||
@@ -78,7 +78,7 @@ There is no need to set the baud rate for the port, as this is configured by the
|
||||
:::info
|
||||
If the configuration parameter is not available in _QGroundControl_ then you may need to [add the driver to the firmware](../peripherals/serial_configuration.md#parameter_not_in_firmware):
|
||||
|
||||
```
|
||||
```txt
|
||||
drivers/telemetry/iridiumsbd
|
||||
```
|
||||
|
||||
|
||||
@@ -402,7 +402,7 @@ div.frame_variant td, div.frame_variant th {
|
||||
<td>Maintainer: Lorenz Meier <lorenz@px4.io><p><code>SYS_AUTOSTART</code> = 4050</p></td>
|
||||
</tr>
|
||||
<tr id="copter_quadrotor_x_holybro_qav250">
|
||||
<td><a href="https://docs.px4.io/main/en/frames_multicopter/holybro_qav250_pixhawk4_mini.html">HolyBro QAV250</a></td>
|
||||
<td><a href="https://docs.px4.io/main/en/frames_multicopter/holybro_qav250_pixhawk4_mini">HolyBro QAV250</a></td>
|
||||
<td>Maintainer: Beat Kueng <beat-kueng@gmx.net><p><code>SYS_AUTOSTART</code> = 4052</p></td>
|
||||
</tr>
|
||||
<tr id="copter_quadrotor_x_holybro_kopis_2">
|
||||
@@ -604,7 +604,7 @@ div.frame_variant td, div.frame_variant th {
|
||||
<td>Maintainer: John Doe <john@example.com><p><code>SYS_AUTOSTART</code> = 50000</p></td>
|
||||
</tr>
|
||||
<tr id="rover_rover_aion_robotics_r1_ugv">
|
||||
<td><a href="https://docs.px4.io/main/en/complete_vehicles_rover/aion_r1.html">Aion Robotics R1 UGV</a></td>
|
||||
<td><a href="https://docs.px4.io/main/en/complete_vehicles_rover/aion_r1">Aion Robotics R1 UGV</a></td>
|
||||
<td>Maintainer: John Doe <john@example.com><p><code>SYS_AUTOSTART</code> = 50001</p></td>
|
||||
</tr>
|
||||
<tr id="rover_rover_generic_rover_ackermann">
|
||||
|
||||
@@ -338,7 +338,7 @@ Any outputs on either PWM output bus can be connected to any actuators, motor, o
|
||||
Note that the PWM outputs are often labeled `AUX` or `MAIN`.
|
||||
Use the `AUX` bus if both are present, and `MAIN` otherwise.
|
||||
- [DShot ESC](../peripherals/dshot.md) (recommended) can only be used on the FMU PWM outputs.
|
||||
- Motor outputs should be grouped together as much as possible rather than spread randomly across both the FMU and IO busses.
|
||||
- Motor outputs should be grouped together as much as possible rather than spread randomly across both the FMU and IO buses.
|
||||
This is because if you assign some function to an output, such as DShot ESC, you can't then assign adjacent unused pins for anything other than a DShot ESC.
|
||||
|
||||
### Servos
|
||||
@@ -364,7 +364,7 @@ If you don't use servos that all accept the same voltage, you'll need to separat
|
||||
Other peripherals, such as high-power radios, cameras, and so on have their own power requirements.
|
||||
These will usually be supplied off a separate BEC.
|
||||
|
||||
The wiring and configuration of optional/less common components is covered within the [Hardware Hardware Selection & Setup](../hardware/drone_parts.md) topics for individual peripherals.
|
||||
The wiring and configuration of optional/less common components is covered within the [Hardware Selection & Setup](../hardware/drone_parts.md) topics for individual peripherals.
|
||||
|
||||
## Build Tutorials
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ This quick start guide shows how to power the [CUAV V5 nano](../flight_controlle
|
||||
| DSM/SBUS/RSSI | 包含DSM、SBUS、RSSI信号输入接口;DSM接口可以连接DSM卫星接收机,SBUS接口可以连接SBUS总线的遥控器接收机,RSSI连接RSSI信号强度回传模块。 |
|
||||
|
||||
:::info
|
||||
For more interface information, please read [V5 nano Manual](http://manual.cuav.net/V5-nano.pdf).
|
||||
For more interface information, please read [V5 nano Manual](https://manual.cuav.net/V5-nano.pdf).
|
||||
:::
|
||||
|
||||

|
||||
@@ -128,6 +128,6 @@ Motors/servos are connected to the MAIN ports in the order specified for your ve
|
||||
|
||||
- [Airframe buildlog using CUAV v5 nano on a DJI FlameWheel450](../frames_multicopter/dji_f450_cuav_5nano.md)
|
||||
- [CUAV V5 nano](../flight_controller/cuav_v5_nano.md)
|
||||
- [V5 nano manual](http://manual.cuav.net/V5-nano.pdf) (CUAV)
|
||||
- [V5 nano manual](https://manual.cuav.net/V5-nano.pdf) (CUAV)
|
||||
- [FMUv5 reference design pinout](https://docs.google.com/spreadsheets/d/1-n0__BYDedQrc_2NHqBenG1DNepAgnHpSGglke-QQwY/edit#gid=912976165) (CUAV)
|
||||
- [CUAV Github](https://github.com/cuav) (CUAV)
|
||||
|
||||
@@ -33,7 +33,7 @@ This quick start guide shows how to power the [CUAV V5+](../flight_controller/cu
|
||||
| DSM/SBUS/RSSI | 包含DSM、SBUS、RSSI信号输入接口;DSM接口可以连接DSM卫星接收机,SBUS接口可以连接SBUS总线的遥控器接收机,RSSI连接RSSI信号强度回传模块。 |
|
||||
|
||||
:::info
|
||||
For more interface information, please read [V5+ Manual](http://manual.cuav.net/V5-Plus.pdf).
|
||||
For more interface information, please read [V5+ Manual](https://manual.cuav.net/V5-Plus.pdf).
|
||||
:::
|
||||
|
||||

|
||||
@@ -122,12 +122,12 @@ Motors/servos are connected to the MAIN and AUX ports in the order specified for
|
||||
|
||||
## 针脚定义
|
||||
|
||||
Download **V5+** pinouts from [here](http://manual.cuav.net/V5-Plus.pdf).
|
||||
See [CUAV V5+ Manual](https://manual.cuav.net/V5-Plus.pdf).
|
||||
|
||||
## 更多信息
|
||||
|
||||
- [Airframe build-log using CUAV v5+ on a DJI FlameWheel450](../frames_multicopter/dji_f450_cuav_5plus.md)
|
||||
- [CUAV V5+ Manual](http://manual.cuav.net/V5-Plus.pdf) (CUAV)
|
||||
- [CUAV V5+ Manual](https://manual.cuav.net/V5-Plus.pdf) (CUAV)
|
||||
- [CUAV V5+ docs](https://doc.cuav.net/controller/v5-autopilot/en/v5+.html) (CUAV)
|
||||
- [FMUv5 reference design pinout](https://docs.google.com/spreadsheets/d/1-n0__BYDedQrc_2NHqBenG1DNepAgnHpSGglke-QQwY/edit#gid=912976165) (CUAV)
|
||||
- [CUAV Github](https://github.com/cuav) (CUAV)
|
||||
|
||||
@@ -18,7 +18,7 @@ Further/updated information may be available in the [Cube User Manual](https://d
|
||||
|
||||
## 配件
|
||||
|
||||
Cube comes with most (or all) of the accessories you will need when [purchased](../flight_controller/pixhawk-2.md#stores).
|
||||
Cube comes with most (or all) of the accessories you will need when [purchased](../flight_controller/pixhawk-2.md#store).
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ You can press the safety switch again to enable safety and disarm the vehicle (t
|
||||
## 电源
|
||||
|
||||
Connect the output of the _PM02D Power Module_ (PM board) that comes with the Standard Set to one of the **POWER** port of _Pixhawk 5X_ using the 6-wire cable.
|
||||
The PM02D and Power ports on the Pixhawk 5X uses the 6 circuit [2.00mm Pitch CLIK-Mate Wire-to-Board PCB Receptacle](https://www.molex.com/en-us/products/part-detail/5024430670) & [Housing](https://www.molex.com/molex/products/part-detail/crimp_housings/5024390600).
|
||||
The PM02D and Power ports on the Pixhawk 5X uses the 6 circuit [2.00mm Pitch CLIK-Mate Wire-to-Board PCB Receptacle](https://www.molex.com/en-us/products/part-detail/5024430670) & [Housing](https://www.molex.com/en-us/products/part-detail/5024390600).
|
||||
|
||||
The PM02D Power Module supports **2~6S** battery, the board input should be connected to your LiPo battery. Note that the PM board does not supply power to the + and - pins of **FMU PWM OUT** and **I/O PWM OUT**.
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ You can press the safety switch again to enable safety and disarm the vehicle (t
|
||||
## 电源
|
||||
|
||||
Connect the output of the _PM02D Power Module_ (PM board) that comes with the Standard Set to one of the **POWER** port of _Pixhawk 6X_ using the 6-wire cable.
|
||||
The PM02D and Power ports on the Pixhawk 6X uses the 6 circuit [2.00mm Pitch CLIK-Mate Wire-to-Board PCB Receptacle](https://www.molex.com/en-us/products/part-detail/5024430670) & [Housing](https://www.molex.com/molex/products/part-detail/crimp_housings/5024390600).
|
||||
The PM02D and Power ports on the Pixhawk 6X uses the 6 circuit [2.00mm Pitch CLIK-Mate Wire-to-Board PCB Receptacle](https://www.molex.com/en-us/products/part-detail/5024430670) & [Housing](https://www.molex.com/en-us/products/part-detail/5024390600).
|
||||
|
||||
The PM02D Power Module supports **2~6S** battery, the board input should be connected to your LiPo battery. Note that the PM board does not supply power to the + and - pins of **FMU PWM OUT** and **I/O PWM OUT**.
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ The instructions below show how to connect the different types of receivers:
|
||||
Pixracer has inbuilt WiFi, but also supports telemetry via external Wi-Fi or radio telemetry modules connected to the `TELEM1` or `TELEM2` ports.
|
||||
This is shown in the wiring diagram below.
|
||||
|
||||

|
||||

|
||||
|
||||
:::info
|
||||
The `TELEM2` port must be configured as a second MAVLink instance using the [MAV_2_CONFIG](../advanced_config/parameter_reference.md#MAV_2_CONFIG) parameter.
|
||||
|
||||
@@ -36,7 +36,7 @@ The `camera_trigger`, `camera_capture` and `camera_feedback` modules are not use
|
||||
This work is handled by three PX4 components: [`camera_trigger` driver](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_trigger), [`camera_capture` driver](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/camera_capture), [`camera-feedback` module](../modules/modules_system.md#camera-feedback).
|
||||
|
||||
`camera_trigger` subscribes to the [VehicleCommand](../msg_docs/VehicleCommand.md) topic and monitors for updates to its [supported commands](../camera/fc_connected_camera.md#mavlink-command-interface).
|
||||
Thes updates occur when either a command is received via MAVLink or when a [camera item is reached in a mission](#camera-commands-in-missions).
|
||||
These updates occur when either a command is received via MAVLink or when a [camera item is reached in a mission](#camera-commands-in-missions).
|
||||
|
||||
The commands enable and disable triggering, and configure triggering at time and distance intervals.
|
||||
The driver tracks these intervals, and when needed triggers the outputs.
|
||||
|
||||
@@ -18,17 +18,22 @@ No longer available.
|
||||
|
||||
At a high level:
|
||||
|
||||
- The [`realsense-ros` wrapper](https://github.com/IntelRealSense/realsense-ros) provided by Intel should be used to extract the raw data from the camera.
|
||||
- The [`realsense-ros` wrapper](https://github.com/realsenseai/realsense-ros) provided by Intel should be used to extract the raw data from the camera.
|
||||
|
||||
- The camera should be mounted with lenses facing down (default).
|
||||
Be sure to specify the camera orientation by publishing the static transform between the `base_link` and `camera_pose_frame` in a ROS launch file, for example:
|
||||
|
||||
```xml
|
||||
<node pkg="tf" type="static_transform_publisher" name="tf_baseLink_cameraPose"
|
||||
args="0 0 0 0 1.5708 0 base_link camera_pose_frame 1000"/>
|
||||
```
|
||||
|
||||
This is a static transform that links the camera ROS frame `camera_pose_frame` to the MAVROS drone frame `base_link`.
|
||||
|
||||
- the first three `args` specify _translation_ x,y,z in metres from the center of the flight controller to the camera.
|
||||
For example, if the camera is 10cm in front of the controller and 4cm up, the first three numbers would be : [0.1, 0, 0.04,...]
|
||||
- the next three `args` specify rotation in radians (yaw, pitch, roll).
|
||||
So `[... 0, 1.5708, 0]` means pitch down by 90° (facing the ground). Facing straight forward would be [... 0 0 0].
|
||||
|
||||
- The camera is sensitive to high-frequency vibrations!
|
||||
It should be soft-mounted with, for example, vibration isolation foam.
|
||||
|
||||
@@ -79,7 +79,7 @@ The shutter integration setting (`param2`) is only obeyed with a GPIO backend.
|
||||
|
||||
## Trigger Configuration
|
||||
|
||||
Cameras can be connected to the FC for triggering using different intefaces, such as PWM, and GPIO, by specifying the appropriate [trigger interface backend](#trigger-interface-backends).
|
||||
Cameras can be connected to the FC for triggering using different interfaces, such as PWM, and GPIO, by specifying the appropriate [trigger interface backend](#trigger-interface-backends).
|
||||
You can also indicate the camera [trigger mode](#trigger-modes).
|
||||
|
||||
This configuration can most easily be done from the _QGroundControl_ [Vehicle Setup > Camera](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/camera.html#px4-camera-setup) section.
|
||||
@@ -308,7 +308,7 @@ Wire up your cameras to your AUX port by connecting the ground and signal pins t
|
||||
### Step 4
|
||||
|
||||
You will have to modify your driver to follow the sequence diagram above.
|
||||
Public reference implementations for [IDS Imaging UEye](https://github.com/ProjectArtemis/ueye_cam) cameras and for [IEEE1394 compliant](https://github.com/andre-nguyen/camera1394) cameras are available.
|
||||
Public reference implementations for [IDS Imaging UEye](https://github.com/anqixu/ueye_cam) cameras and for [IEEE1394 compliant](https://github.com/andre-nguyen/camera1394) cameras are available.
|
||||
|
||||
## 另见
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# 简单的 MAVLink 摄像头(Camera Protcol v1)
|
||||
# Simple MAVLink Cameras (Camera Protocol v1)
|
||||
|
||||
本节说明了如何使用 PX4 的 MAVLink [相机](../camera/index.md), 实现了 [Camera Protocol v1 (简单触发协议)](https://mavlink.io/en/services/camera_v1.html) 的 PX4 和地面站。
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
PX4 支持此命令集以触发通过原生支持协议的相机 (如本节所述),以及连接到飞控输出的相机。
|
||||
|
||||
地面站和 MAVLink SDK 通常将相机命令发送给自动驾驶仪,然后转发给连接的类型为 '板载' 的 MAVLink 通道。
|
||||
PX4 还会将其在任务中遇到的任何相机任务项重新发出为相机命令:未被接受的命令将被记录。
|
||||
PX4 also re-emits any camera mission items it encounters in a mission as camera commands: commands that aren't accepted are logged.
|
||||
在所有情况下,命令都是使用自动驾驶仪的系统 ID 和组件 ID 为 0(即发送给所有组件,包括摄像头)。
|
||||
|
||||
每次触发图像捕获时 PX4 也会发出一个 [CAMERA_TRIGGER](https://mavlink.io/en/messages/common.html#CAMERA_TRIGGER) (相机本身也可能在触发时发出此消息)。
|
||||
|
||||
@@ -54,8 +54,8 @@ They are in no way guaranteed to be plug and play with your companion computer.
|
||||
|
||||
Popular stereo cameras include:
|
||||
|
||||
- [Intel® RealSense™ Depth Camera D435](https://realsenseai.com/stereo-depth-cameras/stereo-depth-camera-d435/)
|
||||
- [Intel® RealSense™ Depth Camera D415](https://realsenseai.com/stereo-depth-cameras/stereo-depth-camera-d415/)
|
||||
- [Intel® RealSense™ Depth Camera D435](https://www.realsenseai.com/products/stereo-depth-camera-d435/)
|
||||
- [Intel® RealSense™ Depth Camera D415](https://www.realsenseai.com/products/stereo-depth-camera-d415/)
|
||||
- [DUO MLX](https://duo3d.com/product/duo-minilx-lv1)
|
||||
|
||||
### VIO Cameras/Sensors
|
||||
|
||||
@@ -786,7 +786,7 @@ sudo apt install build-essential cmake git genromfs kconfig-frontends libncurses
|
||||
## Building/Flashing the Pixhawk
|
||||
|
||||
The recommended way to update PX4 is on the Pixhawk part of the board is to use your development computer.
|
||||
You can either install install prebuilt binaries with QGroundControl, or first build and then upload custom firmware.
|
||||
You can either install prebuilt binaries with QGroundControl, or first build and then upload custom firmware.
|
||||
|
||||
Alternatively, you can build and deploy PX4 firmware to the Pixhawk part from the Jetson.
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ The boards support the [Pixhawk Autopilot Bus (PAB)](../flight_controller/pixhaw
|
||||
|
||||
## 机载计算机选项
|
||||
|
||||
PX4 可以与计算机一起使用,可以配置为通过基于串口(或以太网端口) 的 MAVLink 或 microROS/uXRCE-DDS 进行通信。
|
||||
PX4 can be used with computers that can be configured to communicate via MAVLink or microROS/uXRCE-DDS over a serial port (or Ethernet port, if present).
|
||||
以下列出了一小部分可能的替代方案。
|
||||
|
||||
高性能计算机:
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Raspberry Pi Companion with Pixhawk
|
||||
|
||||
This topic describes how to setup a Raspberry Pi ("RPi") companion companion running [ROS 2](../ros2/user_guide.md) on Linux Ubuntu OS, connecting to a [Pixhawk](../flight_controller/autopilot_pixhawk_standard.md) flight controller using a serial connection between the Pixhawk `TELEM2` port and the RPi's TX/RX pins.
|
||||
This topic describes how to setup a Raspberry Pi ("RPi") companion running [ROS 2](../ros2/user_guide.md) on Linux Ubuntu OS, connecting to a [Pixhawk](../flight_controller/autopilot_pixhawk_standard.md) flight controller using a serial connection between the Pixhawk `TELEM2` port and the RPi's TX/RX pins.
|
||||
|
||||
These instructions should be readily extensible to other RPi and flight controller configurations.
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ For a Ubuntu companion, a minimal set might be:
|
||||
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
|
||||
```
|
||||
|
||||
For the full set you can mirror the QGC dependencies installed by [/tools/setup/install-dependencies-debian.sh](https://github.com/mavlink/qgroundcontrol/blob/master/tools/setup/install-dependencies-debian.sh).
|
||||
For the full set you can mirror the QGC dependencies installed by [/tools/setup/install_dependencies.py](https://github.com/mavlink/qgroundcontrol/blob/master/tools/setup/install_dependencies.py).
|
||||
At time of writing this is:
|
||||
|
||||
```sh
|
||||
|
||||
@@ -1,319 +1,7 @@
|
||||
<Redirect to="../flight_controller/autopilot_discontinued" />
|
||||
|
||||
<!--
|
||||
# Crazyflie 2.0 (Discontinued)
|
||||
|
||||
<Badge type="info" text="Discontinued" />
|
||||
|
||||
:::warning
|
||||
_Crazyflie 2.0_ has been [discontinued/superseded](../flight_controller/autopilot_experimental.md).
|
||||
Try [Bitcraze Crazyflie 2.1](../complete_vehicles_mc/crazyflie21.md) instead!
|
||||
:::
|
||||
|
||||
:::warning
|
||||
|
||||
- PX4 does not manufacture this (or any) autopilot.
|
||||
Contact the [manufacturer](https://www.bitcraze.io/) for hardware support or compliance issues.
|
||||
- PX4 support for this flight controller is [experimental](../flight_controller/autopilot_experimental.md).
|
||||
|
||||
:::
|
||||
|
||||
The Crazyflie line of micro quads was created by Bitcraze AB.
|
||||
An overview of the Crazyflie 2.0 can be [found here](https://www.bitcraze.io/crazyflie-2/).
|
||||
|
||||

|
||||
|
||||
## 总览
|
||||
|
||||
:::info
|
||||
The main hardware documentation is here: https://wiki.bitcraze.io/projects:crazyflie2:index
|
||||
:::
|
||||
|
||||
- Main System-on-Chip: STM32F405RG
|
||||
- CPU: 168 MHz ARM Cortex M4 with single-precision FPU
|
||||
- RAM: 192 KB SRAM
|
||||
- nRF51822 radio and power management MCU
|
||||
- MPU9250 Accel / Gyro / Mag
|
||||
- LPS25H barometer
|
||||
|
||||
## 购买渠道
|
||||
|
||||
- [Crazyflie 2.0](https://store.bitcraze.io/collections/kits/products/crazyflie-2-0).
|
||||
- [Crazyradio PA 2.4 GHz USB dongle](https://store.bitcraze.io/products/crazyradio-pa): used for wireless communication between _QGroundControl_ and Crazyflie 2.0.
|
||||
- [Breakout deck](https://store.bitcraze.io/collections/decks/products/breakout-deck): breakout expansion board for connecting new peripherals.
|
||||
- [Flow deck](https://store.bitcraze.io/products/flow-deck): contains an optical flow sensor to measure movements of the ground and a distance sensor to measure the distance to the ground.
|
||||
This will be useful for precise altitude and position control.
|
||||
- [Z-ranger deck](https://store.bitcraze.io/collections/decks/products/z-ranger-deck) has the same distance sensor as the Flow deck to measure the distance to the ground.
|
||||
This will be useful for precise altitude control.
|
||||
- [SD-card deck](https://store.bitcraze.io/collections/decks/products/sd-card-deck): used for high speed onboard logging to a micro SD card.
|
||||
- [Logitech Joystick](https://support.logi.com/hc/en-us/articles/360024326793--Getting-Started-Gamepad-F310).
|
||||
|
||||
## Flashing PX4
|
||||
|
||||
After setting up the PX4 development environment, follow these steps to install the PX4 Autopilot on the Crazyflie 2.0:
|
||||
|
||||
1. Download the source code of the PX4 Bootloader:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/PX4/PX4-Bootloader.git
|
||||
```
|
||||
|
||||
2. Navigate into the top directory of the source code and compile it using:
|
||||
|
||||
```sh
|
||||
make crazyflie_bl
|
||||
```
|
||||
|
||||
3. Put the Crazyflie 2.0 into DFU mode by following these steps:
|
||||
- Ensure it is initially unpowered.
|
||||
- Hold down the reset button (see figure below...).
|
||||

|
||||
- Plug into computer's USB port.
|
||||
- After a second, the blue LED should start blinking and after 5 seconds should start blinking faster.
|
||||
- Release button.
|
||||
|
||||
4. Install _dfu-util_:
|
||||
|
||||
```sh
|
||||
sudo apt-get update
|
||||
sudo apt-get install dfu-util
|
||||
```
|
||||
|
||||
5. Flash bootloader using _dfu-util_ and unplug Crazyflie 2.0 when done:
|
||||
|
||||
```sh
|
||||
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D ./build/crazyflie_bl/crazyflie_bl.bin
|
||||
```
|
||||
|
||||
When powering on the Crazyflie 2.0 the yellow LED should blink.
|
||||
|
||||
6. Download the source code of the PX4 autopilot:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/PX4/PX4-Autopilot.git
|
||||
```
|
||||
|
||||
7. Navigate into the top directory of the source code and compile it using:
|
||||
|
||||
```sh
|
||||
make bitcraze_crazyflie_default upload
|
||||
```
|
||||
|
||||
8. When prompted to plug in device, plug in Crazyflie 2.0.
|
||||
The yellow LED should start blinking indicating bootloader mode.
|
||||
Then the red LED should turn on indicating that the flashing process has started.
|
||||
|
||||
9. Wait for completion.
|
||||
|
||||
10. Done! Calibrate the sensors using [QGroundControl](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/sensors.html).
|
||||
|
||||
:::info
|
||||
If QGroundControl does not connect with the vehicle, ensure that in [nuttx-config](https://github.com/PX4/PX4-Autopilot/blob/main/boards/bitcraze/crazyflie/nuttx-config/nsh/defconfig) for crazyflie `# CONFIG_DEV_LOWCONSOLE is not set` is replaced by `CONFIG_DEV_LOWCONSOLE=y`.
|
||||
This should be done using _menuconfig_:
|
||||
|
||||
```sh
|
||||
make bitcraze_crazyflie_default menuconfig
|
||||
```
|
||||
|
||||
or _qconfig_ (Check _Low-level console support_ under _Serial Driver Support_ in GUI):
|
||||
|
||||
```sh
|
||||
make bitcraze_crazyflie_default qconfig
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Wireless Setup Instructions
|
||||
|
||||
The onboard nRF module allows connecting to the board via Bluetooth or through the proprietary 2.4GHz Nordic ESB protocol.
|
||||
|
||||
- A [Crazyradio PA](https://www.bitcraze.io/crazyradio-pa/) is recommended.
|
||||
- To fly the Crazyflie 2.0 right away, the Crazyflie phone app is supported via Bluetooth.
|
||||
|
||||
Using the official Bitcraze **Crazyflie phone app**:
|
||||
|
||||
- Connect via Bluetooth.
|
||||
- Change mode in settings to 1 or 2.
|
||||
- Calibrate via QGroundControl.
|
||||
|
||||
Connecting via **MAVLink**:
|
||||
|
||||
- Use a Crazyradio PA alongside a compatible GCS.
|
||||
- Download the _crazyflie-lib-python_ source code:
|
||||
|
||||
```sh
|
||||
git clone https://github.com/bitcraze/crazyflie-lib-python.git
|
||||
```
|
||||
|
||||
:::info
|
||||
We will use [cfbridge.py](https://github.com/bitcraze/crazyflie-lib-python/blob/master/examples/cfbridge.py) to setup a wireless MAVlink communication link between Crazyflie 2.0 (flashed with PX4) and QGroundControl. _Cfbridge_ enables QGroundControl to communicate with the crazyradio PA.
|
||||
The [C based cfbridge](https://github.com/dennisss/cfbridge) is currently experiencing data loss issues, which is why we have chosen to use **cfbridge.py**.
|
||||
:::
|
||||
|
||||
- Make sure you have set the udev permissions to use the USB Radio. To do this, follow the steps listed [here](https://www.bitcraze.io/documentation/repository/crazyflie-lib-python/master/installation/usb_permissions/) and **restart** your computer.
|
||||
|
||||
- Connect a Crazyradio PA via USB.
|
||||
|
||||
- Build a [virtual environment (local python environment)](https://virtualenv.pypa.io/en/latest/) with package dependencies using the following method:
|
||||
|
||||
```sh
|
||||
pip install tox --user
|
||||
```
|
||||
|
||||
- Navigate to the crazyflie-lib-python folder and type:
|
||||
|
||||
```sh
|
||||
make venv
|
||||
```
|
||||
|
||||
- Activate the virtual environment:
|
||||
|
||||
```sh
|
||||
source venv-cflib/bin/activate
|
||||
```
|
||||
|
||||
- Install required dependencies:
|
||||
|
||||
```sh
|
||||
pip install -r requirements.txt --user
|
||||
```
|
||||
|
||||
To connect Crazyflie 2.0 with crazyradio, **launch cfbridge** by following these steps:
|
||||
|
||||
- Power off and power on Crazyflie 2.0 and wait for it to boot up.
|
||||
|
||||
- Connect a Crazyflie radio device via USB.
|
||||
|
||||
- Navigate to the crazyflie-lib-python folder.
|
||||
|
||||
- Activate the environment:
|
||||
|
||||
```sh
|
||||
source venv-cflib/bin/activate
|
||||
```
|
||||
|
||||
- Navigate to the examples folder:
|
||||
|
||||
```sh
|
||||
cd examples
|
||||
```
|
||||
|
||||
- Launch cfbridge:
|
||||
|
||||
```sh
|
||||
python cfbridge.py
|
||||
```
|
||||
|
||||
:::info
|
||||
_Cfbridge_ by default tries to initiate the radio link communication on channel 80 and with crazyflie address 0xE7E7E7E7E7.
|
||||
If you are using [multiple crazyflies and/or crazyradios](https://github.com/dennisss/cfbridge/blob/master/README.md#advanced-swarming) in the same room and want to use a different channel and/or address for each, first connect the crazyflie with QGroundControl via a USB cable and change the syslink parameters (channel, address) in QGroundControl.
|
||||
Next, launch the cfbridge by giving the same channel and address as the first and second arguments respectively, e.g: `python cfbridge.py 90 0x0202020202`
|
||||
:::
|
||||
|
||||
- Open QGroundControl.
|
||||
- After using _cfbridge_, you can deactivate the virtualenv if you activated it by pressing `CTRL+z`.
|
||||
Most of the time, launching _cfbridge_ again from the same terminal doesn't connect to crazyflie, this can be solved by closing the terminal and relaunching _cfbridge_ in a new terminal.
|
||||
|
||||
:::tip
|
||||
If you change any driver in [crazyflie-lib-python](https://github.com/bitcraze/crazyflie-lib-python) or if launching _cfbridge_ in a new terminal does not find crazyflie, you can try navigating to the crazyflie-lib-python folder and run the script below to rebuild cflib.
|
||||
|
||||
```sh
|
||||
make venv
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
:::info
|
||||
To use Joystick, set `COM_RC_IN_MODE` in QGroundControl to "Joystick/No RC Checks".
|
||||
Calibrate the Joystick and set the Joystick message frequency in QGroundControl to any value between 5 to 14 Hz (10 Hz is recommended).
|
||||
To be able to set the frequency, the advanced option should be enabled.
|
||||
This is the rate at which Joystick commands are sent from QGroundControl to Crazyflie 2.0 (to do this, you will need to follow the instructions [here](https://github.com/mavlink/qgroundcontrol) to obtain the latest QGroundControl source code (master) and build it).
|
||||
:::
|
||||
|
||||

|
||||
|
||||
## 硬件安装
|
||||
|
||||
Crazyflie 2.0 is able to fly with precise control in [Stabilized mode](../flight_modes_mc/manual_stabilized.md), [Altitude mode](../flight_modes_mc/altitude.md) and [Position mode](../flight_modes_mc/position.md).
|
||||
|
||||
- You will need the [Z-ranger deck](https://store.bitcraze.io/collections/decks/products/z-ranger-deck) to fly in _Altitude_ mode.
|
||||
If you also want to fly in the _Position_ mode, it is recommended you buy the [Flow deck](https://store.bitcraze.io/products/flow-deck) which also has the integrated Z-ranger sensor.
|
||||
- The onboard barometer is highly susceptible to any external wind disturbances including those created by Crazyflie's own propellers. Hence, we isolated the barometer with a piece of foam, and then mounted the distance sensor on top of it as shown below:
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
In order to log flight details, you can mount SD card deck on top of crazyflie as shown below:
|
||||
|
||||

|
||||
|
||||
Then, you need to stick the battery on top of the SD card deck using a double sided tape:
|
||||
|
||||

|
||||
|
||||
## Altitude Control
|
||||
|
||||
Crazyflie is able to fly in _Altitude_ mode if you use a [Z-ranger deck](https://store.bitcraze.io/collections/decks/products/z-ranger-deck).
|
||||
According to the datasheet, the maximum height (above ground) the range finder can sense is 2 m. However, when tested on dark surfaces this value decreases to 0.5 m. On a light floor, it goes up to max 1.3 m. This means you cannot hold altitudes above this value in _Altitude_ or _Position_ flight modes.
|
||||
|
||||
:::tip
|
||||
If the Crazyflie 2.0 height drifts at mid-throttle command in _Altitude mode_ or _Position mode_, first try rebooting the vehicle. If this does not fix the problem, recalibrate the accel and mag (compass).
|
||||
:::
|
||||
|
||||
:::info
|
||||
Since the onboard barometer is highly susceptible to wind disturbances created by the Crazyflie's own propellers, you cannot rely on it to hold altitude.
|
||||
:::
|
||||
|
||||
## Position Control
|
||||
|
||||
With [Flow deck](https://store.bitcraze.io/products/flow-deck), you can fly Crazyflie 2.0 in _Position mode_.
|
||||
Unlike [PX4FLOW](../sensor/px4flow.md), the flow deck does not house a gyro, hence the onboard gyro is used for flow fusion to find the local position estimates.
|
||||
Moreover, the flow deck shares the same SPI bus as the SD card deck, therefore logging at high rate on SD card is not recommended when flying in _Position mode_.
|
||||
|
||||
## Using FrSky Taranis RC Transmitter as Joystick
|
||||
|
||||
If you already own a Taranis RC transmitter and want to use it as a controller, it can be configured as a USB Joystick:
|
||||
|
||||
- Create a new model in Taranis.
|
||||
|
||||

|
||||
|
||||
- In _MODEL SETUP_ menu page, turn off both internal and external TX modules.
|
||||
|
||||

|
||||
|
||||
- In _OUTPUTS_ menu page (also called “SERVOS” page in some Taranis transmitters), invert Throttle (CH1) and Aileron (CH3).
|
||||
|
||||

|
||||
|
||||
To use Taranis switches to arm/disarm and switch to different flight modes:
|
||||
|
||||
- In Taranis UI _MIXER_ menu page, you can assign the switches to any channel in the range channel 9-16 which map to the buttons 0-7 in the QGroundControl Joystick setup. For example, Taranis “SD” switch can be set to channel 9 in Taranis UI:
|
||||
|
||||

|
||||
|
||||
- Connect Taranis to PC with a USB cable and Open QGroundControl.
|
||||
|
||||
- In QGroundControl Joystick Setup, you can see the buttons turning yellow when you switch them on. For example, channel 9 in Taranis maps to button 0 in QGroundControl Joystick setup. You can assign any mode to this button e.g. _Altitude_ mode. Now when you lower the switch "SD", flight mode will change to _Altitude_.
|
||||
|
||||

|
||||
|
||||
### ROS
|
||||
|
||||
To connect to Crazyflie 2.0 via MAVROS:
|
||||
|
||||
- Start up _cfbridge_ using the above instructions.
|
||||
|
||||
- Change the UDP port QGroundControl listens to:
|
||||
- In QGroundControl, navigate to **Application Settings > General** and uncheck all the boxes under _Autoconnect to the following devices_.
|
||||
- Add in **Comm Links** a link of type _UDP_, check the _Automatically Connect on Start_ option, change the _Listening Port_ to 14557, add Target Hosts: 127.0.0.1 and then press **OK**.
|
||||
|
||||
- Make sure you have [MAVROS](https://github.com/mavlink/mavros/tree/master/mavros#installation) installed.
|
||||
|
||||
- Start MAVROS with command:
|
||||
|
||||
```sh
|
||||
roslaunch mavros px4.launch fcu_url:="udp://:14550@127.0.0.1:14551" gcs_url:="udp://@127.0.0.1:14557"
|
||||
```
|
||||
|
||||
- Restart QGroundControl if it doesn't connect.
|
||||
DOC REMOVED: 202603
|
||||
-->
|
||||
|
||||
@@ -70,7 +70,7 @@ Difference between the PX4 Vision V1 and V1.5 can be found [here](https://docs.h
|
||||
|
||||

|
||||
|
||||
What's inside the PX4 Vision V1 can be found here in the [PX4 v1.13 Docs here](https://docs.px4.io/v1.13/en/complete_vehicles/px4_vision_kit.html#what-is-inside).
|
||||
What's inside the PX4 Vision V1 can be found here in the [PX4 v1.13 Docs here](https://docs.px4.io/v1.13/en/complete_vehicles/px4_vision_kit#what-is-inside).
|
||||
|
||||
The PX4 Vision DevKit contains following components:
|
||||
|
||||
@@ -403,7 +403,7 @@ The carrier board pinouts and other information are in the [downloads section](h
|
||||
## Other Development Resources
|
||||
|
||||
- [_UP Core_ Wiki](https://github.com/up-board/up-community/wiki/Ubuntu) - _Up Core_ companion computer technical information
|
||||
- [Occipital Developer Forum](https://structure.io/developers/) - _Structure Core_ camera information
|
||||
- [Occipital Developer Forum](https://structure.io/structure-sdk/) - _Structure Core_ camera information
|
||||
- [Pixhawk 4 Overview](../flight_controller/pixhawk4.md)
|
||||
- [Pixhawk 6C Overview](../flight_controller/pixhawk6c.md)
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ For this build this includes an [Auterion Skynode](../companion_computer/auterio
|
||||
If using a standard Pixhawk you could connect the RoboClaw to the Autopilot without an Adapter Board.
|
||||
:::
|
||||
|
||||
The RoboClaw should be connected to a suitable suitable serial (UART) port on the flight controller, such as `GPS2` or `TELEM1`.
|
||||
The RoboClaw should be connected to a suitable serial (UART) port on the flight controller, such as `GPS2` or `TELEM1`.
|
||||
Other RoboClaw wiring is detailed in the [RoboClaw User Manual](https://downloads.basicmicro.com/docs/roboclaw_user_manual.pdf) 'Packet Serial Wiring' section and shown below (this setup has been validated for compatibility).
|
||||
|
||||

|
||||
|
||||
@@ -143,7 +143,7 @@ If you wish to move freely into directions without sensor coverage, this can be
|
||||
|
||||
### Acceleration Constraining
|
||||
|
||||
For this we split out the acceleration setpoint into two components, one parallel to the closest distance to the obstacle and one normal to it. Then we scale each of these components according the the figure below.
|
||||
For this we split out the acceleration setpoint into two components, one parallel to the closest distance to the obstacle and one normal to it. Then we scale each of these components according to the figure below.
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -18,4 +18,4 @@ This interface allows PX4 to stream a proposed path to a companion computer, and
|
||||
This enables features such obstacle avoidance in missions and safer landing to be provided by a planner on a companion computer.
|
||||
|
||||
This actual code is still present in code at time of writing (PX4 v1.15).
|
||||
Information about the API and associated features can be found in the [PX4 v1.14 docs](https://docs.px4.io/v1.14/en/computer_vision/path_planning_interface.html).
|
||||
Information about the API and associated features can be found in the [PX4 v1.14 docs](https://docs.px4.io/v1.14/en/computer_vision/path_planning_interface).
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
:::info
|
||||
Control allocation replaces the legacy mixing approach used in PX4 v1.13 and earlier.
|
||||
For PX4 v1.13 documentation see: [Mixing & Actuators](https://docs.px4.io/v1.13/en/concept/mixing.html), [Geometry Files](https://docs.px4.io/v1.13/en/concept/geometry_files.html) and [Adding a New Airframe Configuration](https://docs.px4.io/v1.13/en/dev_airframes/adding_a_new_frame.html).
|
||||
For PX4 v1.13 documentation see: [Mixing & Actuators](https://docs.px4.io/v1.13/en/concept/mixing), [Geometry Files](https://docs.px4.io/v1.13/en/concept/geometry_files) and [Adding a New Airframe Configuration](https://docs.px4.io/v1.13/en/dev_airframes/adding_a_new_frame).
|
||||
:::
|
||||
|
||||
PX4从核心控制器获取所需的扭矩和推力指令,并将它们转换为控制电机或作动器的驱动指令。
|
||||
|
||||
@@ -94,7 +94,7 @@ Explanations and requirements:
|
||||
```
|
||||
|
||||
- Above we specify a separate external and internal log level, which are the levels displayed to GCS users and in the log file, respectively: `{events::Log::Error, events::LogInternal::Info}`.
|
||||
For the majority of cases you can pass a single log level, and this will be used for both exernal and internal cases.
|
||||
For the majority of cases you can pass a single log level, and this will be used for both external and internal cases.
|
||||
There are cases it makes sense to have two different log levels.
|
||||
For example an RTL failsafe action: the user should see it as Warning/Error, whereas in the log, it is an expected system response, so it can be set to `Info`.
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ The instructions below might be used to create a task named _MyTask_:
|
||||
::: tip
|
||||
|
||||
The task added above will be built on all boards, including those with constrained flash such as Pixhawk FMUv2.
|
||||
If your task is not indended for use on boards with constrained flash it should instead be added to the conditional block shown below (as shown).
|
||||
If your task is not intended for use on boards with constrained flash it should instead be added to the conditional block shown below (as shown).
|
||||
|
||||
```cmake
|
||||
...
|
||||
|
||||
@@ -21,7 +21,7 @@ On POSIX, the system shell is used as script interpreter (e.g. /bin/sh, being sy
|
||||
- PX4 的各个模块需要看起来像系统的单个可执行文件。
|
||||
这一点可以通过创建符号链接做到。
|
||||
For each module a symbolic link `px4-<module> -> px4` is created in the `bin` directory of the build folder.
|
||||
When executed, the binary path is checked (`argv[0]`), and if it is a module (starts with `px4-`), it sends the command to the main px4 instance (see below).
|
||||
When executed, the binary path is checked (`argv[0]`), and if it is a module (starts with `px4-`), it sends the command to the main PX4 instance (see below).
|
||||
|
||||
:::tip
|
||||
The `px4-` prefix is used to avoid conflicts with system commands (e.g. `shutdown`), and it also allows for simple tab completion by typing `px4-<TAB>`.
|
||||
@@ -32,7 +32,7 @@ On POSIX, the system shell is used as script interpreter (e.g. /bin/sh, being sy
|
||||
For that the `bin` directory with the symbolic links is added to the `PATH` variable right before executing the startup scripts.
|
||||
|
||||
- Shell 将每个模块作为一个新的 (客户端) 进程进行启动,
|
||||
每个客户端进程都需要与 PX4 主实例(服务器)进行通讯,实际的模块以线程的形式运行。
|
||||
Each client process needs to communicate with the main instance of PX4 (the server), where the actual modules are running as threads.
|
||||
This is done through a [UNIX socket](https://man7.org/linux/man-pages/man7/unix.7.html).
|
||||
服务器侦听一个 socket,然后客户端将连接该 socket 并通过它发送指令。
|
||||
服务器收到客户端的指令后将指令运行的输出结果及返回代码重新发送给客户端。
|
||||
@@ -40,7 +40,7 @@ On POSIX, the system shell is used as script interpreter (e.g. /bin/sh, being sy
|
||||
- The startup scripts call the module directly, e.g. `commander start`, rather than using the `px4-` prefix.
|
||||
This works via aliases: for each module an alias in the form of `alias <module>=px4-<module>` is created in the file `bin/px4-alias.sh`.
|
||||
|
||||
- The `rcS` script is executed from the main px4 instance.
|
||||
- The `rcS` script is executed from the main PX4 instance.
|
||||
It does not start any modules, but first updates the `PATH` variable and then simply runs a shell with the `rcS` file as argument.
|
||||
|
||||
- 除此之外,在进行多飞行器仿真时还可以启动多个服务器实例。
|
||||
|
||||
@@ -126,7 +126,7 @@ Additional notes:
|
||||
<div v-if="$frontmatter.frame === 'Multicopter'">
|
||||
|
||||
- The instructions above tune the vehicle in [Altitude mode](../flight_modes_mc/altitude.md).
|
||||
You can instead takeoff in [Takeoff mode](../flight_modes_mc/takeoff.md) and tune in [Position mode](../flight_modes_mc/position.md) if the vehicle is is _known_ to be stable in these modes.
|
||||
You can instead takeoff in [Takeoff mode](../flight_modes_mc/takeoff.md) and tune in [Position mode](../flight_modes_mc/position.md) if the vehicle is _known_ to be stable in these modes.
|
||||
|
||||
</div>
|
||||
<div v-else-if="$frontmatter.frame === 'Plane'">
|
||||
@@ -243,7 +243,7 @@ To map a switch:
|
||||
2. Set [RC_MAP_AUX1](../advanced_config/parameter_reference.md#RC_MAP_AUX1) to match the RC channel for your switch (you can use any of `RC_MAP_AUX1` to `RC_MAP_AUX6`).
|
||||
3. Set [FW_AT_MAN_AUX](../advanced_config/parameter_reference.md#FW_AT_MAN_AUX) to the selected channel (i.e. `1: Aux 1` if you mapped `RC_MAP_AUX1`).
|
||||
|
||||
The auto tuner will be disabled when the switch is below `0.5` (on the manual control setpoint range of of `[-1, 1]`) and enabled when the switch channel is above `0.5`.
|
||||
The auto tuner will be disabled when the switch is below `0.5` (on the manual control setpoint range of `[-1, 1]`) and enabled when the switch channel is above `0.5`.
|
||||
|
||||
If using an RC AUX switch to enable autotuning, make sure to [select the tuning axes](#select-tuning-axis) before flight.
|
||||
|
||||
|
||||
@@ -23,8 +23,7 @@ Information about how to set up a joystick is covered in: [QGroundControl > Joys
|
||||
总结:
|
||||
|
||||
- Open _QGroundControl_
|
||||
- Set the parameter [COM_RC_IN_MODE=1](../advanced_config/parameter_reference.md#COM_RC_IN_MODE) - `Joystick`
|
||||
- See [Parameters](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/setup_view/parameters.html) for information about setting parameters
|
||||
- Setting the parameter to `2` or `3` also enables Joystick under some circumstances.
|
||||
- [Enable a `COM_RC_IN_MODE` mode that allows Joystick](../config/manual_control.md#px4-configuration).
|
||||
The default `RC or MAVLink keep first` should work if you plan to only have a Joystick connected.
|
||||
- Connect the joystick
|
||||
- Configure the connected joystick in: **Vehicle Setup > Joystick**.
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
# Manual Control
|
||||
|
||||
Pilots can control a vehicle manually using either a [Radio Control (RC) System](../getting_started/rc_transmitter_receiver.md) or a [Joystick/Gamepad](../config/joystick.md) controller connected via QGroundControl.
|
||||
PX4 also supports using RC and/or multiple Joysticks, with fallback from one type to the other.
|
||||
|
||||
 <img src="../../assets/peripherals/joystick/micronav.jpg" alt="Photo of MicroNav, a ground controller with integrated joysticks" width="400px">
|
||||
|
||||
## 综述
|
||||
|
||||
_Joystick_ setups use QGroundControl to encode the control information from a "standard" computer gaming joystick into [MAVLink messages](https://mavlink.io/en/services/manual_control.html) that are sent to the vehicle over the (shared) telemetry radio channel.
|
||||
They are often used in integrated GCS/manual control systems because it is cheaper and easier to integrate a joystick than a separate radio system.
|
||||
|
||||
Joysticks are suitable for most applications provided your telemetry channel has a high enough bandwidth/low latency.
|
||||
They are perfect for flying the PX4 simulator, because you can plug them directly into your ground control computer and start flying.
|
||||
|
||||
_RC systems_ use a dedicated ground-based radio transmitter and vehicle-based receiver for sending control information.
|
||||
They offer lower latency than Joysticks, and are very highly recommended when first tuning/testing a new frame design, when flying racers/acrobatically, and in other cases where low latency is important.
|
||||
They can also be useful as a robust backup link for safety.
|
||||
Note RC systems usually require significantly more configuration and calibration, much of which may be brand or model-specific.
|
||||
|
||||
:::info
|
||||
PX4 does not _require_ a manual control system for autonomous flight modes.
|
||||
:::
|
||||
|
||||
## PX4 配置
|
||||
|
||||
:::tip
|
||||
This section explains how to configure PX4 to use and prioritise various manual control sources (other configuration is covered in the guides for each type of manual control).
|
||||
:::
|
||||
|
||||
If you only have one manual control system, either RC or Joystick, then by default no manual control selection is required.
|
||||
In this case PX4 locks to the first valid manual control source it detects and uses that source until the vehicle is rebooted.
|
||||
|
||||
If you have multiple control sources, such as an RC system and/or one or more Joysticks, then you can use the [COM_RC_IN_MODE](../advanced_config/parameter_reference.md#COM_RC_IN_MODE) parameter to determine which source is active, specifying selection priorities and fallback behavior ([parameters can be set](../advanced_config/parameters.md#finding-a-parameter) using QGC):
|
||||
|
||||
- `0`: RC only.
|
||||
- `1`: MAVLink only.
|
||||
- `2`: RC or MAVLink with fallback (switches if current source becomes invalid).
|
||||
- `3`: RC or MAVLink keep first (locks to the first valid source until reboot).
|
||||
- `4`: Disable manual control (ignores all sources).
|
||||
- `5`: RC priority, then MAVLink (lower instance before higher) — `RC > MAVLink 1 > MAVLink 2`
|
||||
- `6`: MAVLink priority (lower instance before higher), then RC — `MAVLink 1 > MAVLink 2 > RC`
|
||||
- `7`: RC priority, then MAVLink (higher instance before lower) — `RC > MAVLink 2 > MAVLink 1`
|
||||
- `8`: MAVLink priority (higher instance before lower), then RC — `MAVLink 2 > MAVLink 1 > RC`
|
||||
|
||||
The [MAVLink instance](../peripherals/mavlink_peripherals.md#mavlink-instances) refers to an instance assigned to a serial port, such as [MAV_0_CONFIG](../advanced_config/parameter_reference.md#MAV_0_CONFIG).
|
||||
|
||||
备注:
|
||||
|
||||
- RC checks are run for any option that uses RC (so not for `MAVLink only` or `Disable manual control`).
|
||||
- When using priority sources, sources are evaluated as soon as they become valid and may trigger an immediate switch (if higher priority than the currently active source).
|
||||
- A [Manual Control Loss Failsafe](../config/safety.md#manual-control-loss-failsafe) is triggered when none of the manual control inputs allowed by the `COM_RC_IN_MODE` mode are available for a time that is greater than the RC Loss Timeout.
|
||||
As long as there is a fallback input source available, the failsafe is not triggered.
|
||||
|
||||
## 另见
|
||||
|
||||
- [Radio Control (RC)](../getting_started/rc_transmitter_receiver.md)
|
||||
- [Joysticks](../config/joystick.md)
|
||||
@@ -1,10 +1,12 @@
|
||||
# 无线电控制(遥控)设置
|
||||
|
||||
The _Radio Setup_ screen is used to configure the mapping of your RC controller's main attitude control sticks (roll, pitch, yaw, throttle) to channels, and to calibrate the minimum, maximum, trim and reverse settings for all other transmitter controls/RC channels.
|
||||
The _Radio Setup_ screen is used to configure the mapping of your [RC controller's](../getting_started/rc_transmitter_receiver.md) main attitude control sticks (roll, pitch, yaw, throttle) to channels, and to calibrate the minimum, maximum, trim and reverse settings for all other transmitter controls/RC channels.
|
||||
|
||||
:::info
|
||||
A [Joystick](../config/joystick.md) can be used instead of RC for manual control.
|
||||
The [COM_RC_IN_MODE](../advanced_config/parameter_reference.md#COM_RC_IN_MODE) parameter [can be set](../advanced_config/parameters.md) to define what kind of manual controller(s) are enabled.
|
||||
A [Joystick](../config/joystick.md) can also be used for [Manual Control](../config/manual_control.md).
|
||||
|
||||
By default PX4 will latch the first valid controller it discovers and use it until the vehicle reboots.
|
||||
If you have multiple controllers and you want to define their priority see [Manual Control > PX4 Configuration](../config/manual_control.md#px4-configuration).
|
||||
:::
|
||||
|
||||
## 绑定接收机
|
||||
|
||||
+34
-21
@@ -111,19 +111,17 @@ The settings and underlying parameters are shown below.
|
||||
|
||||
## Manual Control Loss Failsafe
|
||||
|
||||
The manual control loss failsafe may be triggered if the connection to the [RC transmitter](../getting_started/rc_transmitter_receiver.md) or [joystick](../config/joystick.md) is lost, and there is no fallback.
|
||||
If using an [RC transmitter](../getting_started/rc_transmitter_receiver.md) this is triggered if the RC [transmitter link is lost](../getting_started/rc_transmitter_receiver.md#set-signal-loss-behaviour).
|
||||
If using [joysticks](../config/joystick.md) connected over a MAVLink data link, this is triggered if the joysticks are disconnected or the data link is lost.
|
||||
|
||||
:::info
|
||||
PX4 and the receiver may also need to be configured in order to _detect RC loss_: [Radio Setup > RC Loss Detection](../config/radio.md#rc-loss-detection).
|
||||
:::
|
||||
A [Manual Control Loss Failsafe](../config/safety.md#manual-control-loss-failsafe) is triggered after a [manual control loss timeout](#COM_RC_LOSS_T) in which none of the configured [Manual Controllers](../config/manual_control.md) are available.
|
||||
|
||||

|
||||
|
||||
The QGCroundControl Safety UI allows you to set the [failsafe action](#failsafe-actions) and [manual control loss timeout](#COM_RC_LOSS_T).
|
||||
Users that want to disable this failsafe in specific modes can do so using the parameter [COM_RCL_EXCEPT](#COM_RCL_EXCEPT).
|
||||
|
||||
:::info
|
||||
PX4 and the receiver may also need to be configured in order to _detect RC loss_: [Radio Setup > RC Loss Detection](../config/radio.md#rc-loss-detection).
|
||||
:::
|
||||
|
||||
Additional (and underlying) parameter settings are shown below.
|
||||
|
||||
| 参数 | 设置 | 描述 |
|
||||
@@ -181,17 +179,22 @@ The following settings also apply, but are not displayed in the QGC UI.
|
||||
| <a id="GF_PREDICT"></a>Preemptive geofence triggering | [GF_PREDICT](../advanced_config/parameter_reference.md#GF_PREDICT) | (Experimental) Trigger geofence if current motion of the vehicle is predicted to trigger the breach (rather than late triggering after the breach). |
|
||||
| <a id="CBRK_FLIGHTTERM"></a>Circuit breaker for flight termination | [CBRK_FLIGHTTERM](../advanced_config/parameter_reference.md#CBRK_FLIGHTTERM) | 启用/禁用飞行终止操作(默认禁用)。 |
|
||||
|
||||
## Position (GNSS) Loss Failsafe
|
||||
## Position Estimation Failsafes
|
||||
|
||||
This section describes failsafes related to the quality of the vehicle's position estimate.
|
||||
|
||||
### Position Loss Failsafe
|
||||
|
||||
The _Position Loss Failsafe_ is triggered if the quality of the PX4 position estimate falls below acceptable levels (this might be caused by GPS loss) while in a mode that requires an acceptable position estimate.
|
||||
The sections below cover first the trigger and then the failsafe action taken by the controller.
|
||||
|
||||
### Position Loss Failsafe Trigger
|
||||
|
||||
There are basically two mechanisms in PX4 to trigger position failsafes:
|
||||
The position loss failsafe triggers if the position estimate becomes _invalid_. There are two mechanisms in PX4 to invalidate the position estimate:
|
||||
|
||||
- A timeout since the last sensor data was fused that provides direct speed or horizontal position measurements. Sensors that fall into that category are: GNSS, optical flow, airspeed, VIO, auxiliary global position.
|
||||
- The estimated horizontal position accuracy exceeds a certain threshold. This check is only done on hovering systems (rotary wing vehicles or VTOLs in hover phase).
|
||||
- A timeout since the last sensor data was fused that provides direct speed or horizontal position measurements.
|
||||
- Sensors that fall into that category are: GNSS, optical flow, airspeed, VIO, auxiliary global position.
|
||||
- The estimated horizontal position inaccuracy exceeds the threshold [COM_POS_LOW_EPH](../advanced_config/parameter_reference.md#COM_POS_LOW_EPH)
|
||||
- This check is only done on hovering systems (rotary-wing vehicles or VTOLs in hover phase). For fixed-wing vehicles, refer to the [Position Accuracy Low](#position-accuracy-low-failsafe) section.
|
||||
|
||||
The relevant parameters shown below.
|
||||
|
||||
@@ -207,14 +210,24 @@ Multicopters will switch to [Altitude mode](../flight_modes_mc/altitude.md) if a
|
||||
Fixed-wing planes, and VTOLs not configured to land in hover ([NAV_FORCE_VT](../advanced_config/parameter_reference.md#NAV_FORCE_VT)), have a parameter ([FW_GPSF_LT](../advanced_config/parameter_reference.md#FW_GPSF_LT)) that defines how long they will loiter (circle with a constant roll angle ([FW_GPSF_R](../advanced_config/parameter_reference.md#FW_GPSF_R)) at the current altitude) after losing position before attempting to land.
|
||||
If VTOLs have are configured to switch to hover for landing ([NAV_FORCE_VT](../advanced_config/parameter_reference.md#NAV_FORCE_VT)) then they will first transition and then descend.
|
||||
|
||||
The relevant parameters for all vehicles shown below.
|
||||
The relevant parameters are:
|
||||
|
||||
Parameters that only affect Fixed-wing vehicles:
|
||||
| 参数 | 描述 |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <a id="FW_GPSF_LT"></a>[FW_GPSF_LT](../advanced_config/parameter_reference.md#FW_GPSF_LT) | Fixed-wing only: Loiter time (waiting at current altitude for position estimation recovery before starting to descend). 设置为 0 以禁用。 |
|
||||
| <a id="FW_GPSF_R"></a>[FW_GPSF_R](../advanced_config/parameter_reference.md#FW_GPSF_R) | 以一定的横滚/侧倾角盘旋。 |
|
||||
| <a id="NAV_FORCE_VT"></a>[NAV_FORCE_VT](../advanced_config/parameter_reference.md#NAV_FORCE_VT) | If true, force VTOL takeoff and landing, even in `Descend` failsafe. |
|
||||
|
||||
| 参数 | 描述 |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| <a id="FW_GPSF_LT"></a>[FW_GPSF_LT](../advanced_config/parameter_reference.md#FW_GPSF_LT) | Loiter time (waiting for GPS recovery before it goes into land or flight termination). 设置为 0 以禁用。 |
|
||||
| <a id="FW_GPSF_R"></a>[FW_GPSF_R](../advanced_config/parameter_reference.md#FW_GPSF_R) | 以一定的横滚/侧倾角盘旋。 |
|
||||
### Position Accuracy Low Failsafe
|
||||
|
||||
In Fixed-wing, the position estimate is never strictly invalidated as long as we have a horizontal aiding source, such as an airspeed sensor. In that case, a separate failsafe can be configured that triggers if the position estimate inacuraccy exceeds the threshold [COM_POS_LOW_EPH](../advanced_config/parameter_reference.md#COM_POS_LOW_EPH). The failsafe action is taken if the vehicle is in mission or hold mode, otherwise it is only a warning. The relevant parameters are:
|
||||
|
||||
| 参数 | 描述 |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <a id="COM_POS_LOW_EPH"></a>[COM_POS_LOW_EPH](../advanced_config/parameter_reference.md#COM_POS_LOW_EPH) | Position inaccuracy threshold above which COM_POS_LOW_ACT is taken. |
|
||||
| <a id="COM_POS_LOW_ACT"></a>[COM_POS_LOW_ACT](../advanced_config/parameter_reference.md#COM_POS_LOW_ACT) | Failsafe action taken when position inaccuracy is above configured threshold. |
|
||||
|
||||
Note that if there is no horizontal aiding source anymore, the position estimate is invalidated after `EKF2_NOAID_TOUT`, and the standard position loss failsafe applies.
|
||||
|
||||
## Offboard 中断故障保护
|
||||
|
||||
@@ -261,7 +274,7 @@ The parameters that control when the quad-chute will trigger are listed in the t
|
||||
|
||||
## High Wind Failsafe
|
||||
|
||||
The high wind failsafe can trigger a warning and/or other mode change when the wind speed exceeds the warning and maximum wind-speed threshhold values.
|
||||
The high wind failsafe can trigger a warning and/or other mode change when the wind speed exceeds the warning and maximum wind-speed threshold values.
|
||||
The relevant parameters are listed in the table below.
|
||||
|
||||
| 参数 | 描述 |
|
||||
@@ -315,8 +328,8 @@ The failure detector can be configured to detect a motor failure while armed (an
|
||||
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| <a id="FD_ACT_EN"></a>[FD_ACT_EN](../advanced_config/parameter_reference.md#FD_ACT_EN) | Enable/disable the motor failure trigger completely. |
|
||||
| <a id="FD_ACT_MOT_THR"></a>[FD_ACT_MOT_THR](../advanced_config/parameter_reference.md#FD_ACT_MOT_THR) | Minimum normalized [0,1] motor command below which motor under current is ignored. |
|
||||
| <a id="FD_ACT_MOT_C2T"></a>[FD_ACT_MOT_C2T](../advanced_config/parameter_reference.md#FD_ACT_MOT_C2T) | Scale between normalized [0,1] motor command and expected minimally reported currrent when the rotor is healthy. |
|
||||
| <a id="FD_ACT_MOT_TOUT"></a>[FD_ACT_MOT_TOUT](../advanced_config/parameter_reference.md#FD_ACT_MOT_TOUT) | Time in miliseconds for which the under current detection condition needs to stay true. |
|
||||
| <a id="FD_ACT_MOT_C2T"></a>[FD_ACT_MOT_C2T](../advanced_config/parameter_reference.md#FD_ACT_MOT_C2T) | Scale between normalized [0,1] motor command and expected minimally reported current when the rotor is healthy. |
|
||||
| <a id="FD_ACT_MOT_TOUT"></a>[FD_ACT_MOT_TOUT](../advanced_config/parameter_reference.md#FD_ACT_MOT_TOUT) | Time in milliseconds for which the under current detection condition needs to stay true. |
|
||||
| <a id="CA_FAILURE_MODE"></a>[CA_FAILURE_MODE](../advanced_config/parameter_reference.md#CA_FAILURE_MODE) | Configure to not only warn about a motor failure but remove the first motor that detects a failure from the allocation effectiveness which turns off the motor and tries to operate the vehicle without it until disarming the next time. |
|
||||
|
||||
### 外部自动触发系统(ATS)
|
||||
|
||||
@@ -13,7 +13,7 @@ For example, different ESCs or motors change the optimal tuning gains.
|
||||
|
||||
## 简介
|
||||
|
||||
PX4 uses **P**roportional, **I**ntegral, **D**erivative (PID) controllers (these are the most widespread control technique).
|
||||
PX4 uses **P**roportional, **I**integral, **D**erivative (PID) controllers (these are the most widespread control technique).
|
||||
|
||||
The _QGroundControl_ **PID Tuning** setup provides real-time plots of the vehicle setpoint and response curves.
|
||||
The goal of tuning is to set the P/I/D values such that the _Response_ curve matches the _Setpoint_ curve as closely as possible (i.e. a fast response without overshoots).
|
||||
|
||||
@@ -16,7 +16,7 @@ Configure the following [parameters](../advanced_config/parameters.md) in QGroun
|
||||
Put the rover into stabilized mode and move the left stick of your controller up to drive forwards.
|
||||
Disarm the rover and from the flight log plot the `measured_yaw` and the `adjusted_yaw_setpoint` from the [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md) message over each other.
|
||||
Increase/Decrease the parameter until you are satisfied with the setpoint tracking.
|
||||
If you observe a steady state error in the yaw setpoint increase the the integrator of the rate controller: [RO_YAW_RATE_I](../advanced_config/parameter_reference.md#RO_YAW_RATE_I) .
|
||||
If you observe a steady state error in the yaw setpoint increase the integrator of the rate controller: [RO_YAW_RATE_I](../advanced_config/parameter_reference.md#RO_YAW_RATE_I) .
|
||||
|
||||
:::
|
||||
|
||||
@@ -30,7 +30,7 @@ The attitude controller uses the following structure:
|
||||
|
||||

|
||||
|
||||
The rate and attitude controllers are cascaded, therefor we only require one integrator in the structure to eliminate steady state errors.
|
||||
The rate and attitude controllers are cascaded, therefore we only require one integrator in the structure to eliminate steady state errors.
|
||||
We placed the integrator in the rate controller since it can run without the attitude controller but not the other way around.
|
||||
|
||||
## Parameter Overview
|
||||
|
||||
@@ -138,7 +138,7 @@ In [Manual mode](../flight_modes_rover/manual.md#manual-mode) we can additionall
|
||||
- Differential Rover: $r=$ [RD_YAW_STK_GAIN](#RD_YAW_STK_GAIN), which enables adjusting the slope of the input mapping. This leads to a normalized steering input $\hat{\delta} = \delta \cdot r \in$ [-[RD_YAW_STK_GAIN](#RD_YAW_STK_GAIN), [RD_YAW_STK_GAIN](#RD_YAW_STK_GAIN)].
|
||||
- Mecanum Rover: $r=$ [RM_YAW_STK_GAIN](#RM_YAW_STK_GAIN), which enables adjusting the slope of the input mapping. This leads to a normalized steering input $\hat{\delta} = \delta \cdot r \in$ [-[RM_YAW_STK_GAIN](#RM_YAW_STK_GAIN), [RM_YAW_STK_GAIN](#RM_YAW_STK_GAIN)].
|
||||
|
||||
This scaling is useful to limit the normalized steering setpoint, if it is too aggresive for your rover in manual mode.
|
||||
This scaling is useful to limit the normalized steering setpoint, if it is too aggressive for your rover in manual mode.
|
||||
|
||||
You can experiment with the relationships graphically using the [PX4 SuperExpo Rover calculator](https://www.desmos.com/calculator/gwm8lrlanx).
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ make px4_fmu-v6x_rover
|
||||
|
||||
Note that configuration targets are constructed with the format "VENDOR_MODEL_VARIANT".
|
||||
|
||||
The built firmware can be installed as custom firmware, as shown above in in [Flashing the Rover Build](#flashing-the-rover-build).
|
||||
The built firmware can be installed as custom firmware, as shown above in [Flashing the Rover Build](#flashing-the-rover-build).
|
||||
|
||||
:::info
|
||||
You can also enable the modules in default builds by adding these lines to your [board configuration](../hardware/porting_guide_config.md) (e.g. for fmu-v6x you might add them to [`main/boards/px4/fmu-v6x/default.px4board`](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v6x/default.px4board)):
|
||||
|
||||
@@ -11,7 +11,7 @@ Configure the following [parameters](../advanced_config/parameters.md) in QGroun
|
||||
1. [RO_YAW_RATE_LIM](#RO_YAW_RATE_LIM): Maximum yaw rate you want to allow for your rover.
|
||||
|
||||
:::tip
|
||||
Limiting the yaw rate is necessary if the rover is prone rolling over, loosing traction at high speeds or if passenger comfort is important.
|
||||
Limiting the yaw rate is necessary if the rover is prone rolling over, losing traction at high speeds or if passenger comfort is important.
|
||||
Small rovers especially can be prone to rolling over when steering aggressively at high speeds.
|
||||
|
||||
If this is the case:
|
||||
|
||||
@@ -60,7 +60,7 @@ To tune the velocity controller configure the following [parameters](../advanced
|
||||
|
||||
## Manual Position Mode Parameters
|
||||
|
||||
These steps are only necessary if you are tuning/want to unlock the manual [Position mode](../flight_modes_rover/manual.md#position-mode). Othwerwise, you can continue with [position tuning](position_tuning.md) where these same parameters will also be configured.
|
||||
These steps are only necessary if you are tuning/want to unlock the manual [Position mode](../flight_modes_rover/manual.md#position-mode). Otherwise, you can continue with [position tuning](position_tuning.md) where these same parameters will also be configured.
|
||||
|
||||
1. [PP_LOOKAHD_GAIN](#PP_LOOKAHD_GAIN): When driving in a straight line (right stick centered) position mode leverages the same path following algorithm used in [auto modes](../flight_modes_rover/auto.md) called [pure pursuit](position_tuning.md#pure-pursuit-guidance-logic-info-only) to achieve the best possible straight line driving behaviour.
|
||||
This parameter determines how aggressive the controller will steer towards the path.
|
||||
@@ -109,7 +109,7 @@ The speed controller uses the following structure:
|
||||
|
||||
The feed forward mapping is done by interpolating the speed setpoint from [-[RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED), [RO_MAX_THR_SPEED](../advanced_config/parameter_reference.md#RO_MAX_THR_SPEED)] to [-1, 1].
|
||||
|
||||
For ackermann and differential rovers the bearing is aligned with the vehicle yaw. Therefor the bearing is simply sent as a yaw setpoint to the [yaw controller](attitude_tuning.md#attitude-controller-structure-info-only) and the speed setpoint is always defined in body x direction.
|
||||
For ackermann and differential rovers the bearing is aligned with the vehicle yaw. Therefore the bearing is simply sent as a yaw setpoint to the [yaw controller](attitude_tuning.md#attitude-controller-structure-info-only) and the speed setpoint is always defined in body x direction.
|
||||
|
||||
For mecanum vehicles, the bearing and yaw are decoupled. The direction is controlled by splitting the velocity vector into one speed component in body x direction and one in body y direction.
|
||||
Both these setpoint are then sent to their own closed loop speed controllers.
|
||||
|
||||
@@ -6,7 +6,7 @@ Ice shedding is a feature that periodically spins unused motors in fixed-wing
|
||||
flight, to break off any ice that is starting to build up in the motors while it
|
||||
is still feasible to do so.
|
||||
|
||||
It is configured by the paramter `CA_ICE_PERIOD`. When it is 0, the feature is
|
||||
It is configured by the parameter `CA_ICE_PERIOD`. When it is 0, the feature is
|
||||
disabled, when it is above 0, it sets the duration of the ice shedding cycle in
|
||||
seconds. In each cycle, the rotors are spun for two seconds at a motor output of
|
||||
0.01.
|
||||
|
||||
@@ -95,7 +95,7 @@ It should be set to a value which ensures that the vehicle reaches a high enough
|
||||
[VT_TRANS_TIMEOUT](../advanced_config/parameter_reference.md#VT_TRANS_TIMEOUT)
|
||||
|
||||
This specifies the upper limit for the duration of the front transition. If the vehicle has not reached the transition airspeed after this time, then the transition will be aborted and a [Quadchute](../config/safety.md#quad-chute-failsafe) event will be triggered.
|
||||
:::note
|
||||
::: info
|
||||
Additionally, if an airspeed sensor is present, the transition will also be aborted if the airspeed has not reached [VT_ARSP_BLEND](../advanced_config/parameter_reference.md#VT_ARSP_BLEND) after the openloop transition time [VT_F_TR_OL_TM](../advanced_config/parameter_reference.md#VT_F_TR_OL_TM) has elapsed. This checks is used to avoid a scenario where the vehicle gains excessive speed when the airspeed sensor is faulty.
|
||||
:::
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ const { site } = useData();
|
||||
|
||||
<div v-if="site.title !== 'PX4 Guide (main)'">
|
||||
<div class="custom-block danger">
|
||||
<p class="custom-block-title">This page may be out out of date. <a href="https://docs.px4.io/main/en/contribute/dev_call.html">See the latest version</a>.</p>
|
||||
<p class="custom-block-title">This page may be out of date. <a href="https://docs.px4.io/main/en/contribute/dev_call">See the latest version</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -36,4 +36,4 @@ Please add your topics for discussion to the agenda before the meeting begins, b
|
||||
## 日程
|
||||
|
||||
- TIME: Wednesday 17h00 CET ([subscribe to calendar](https://dronecode.org/calendar/))
|
||||
- **Join the call**: [https://discord.gg/BDYmr6FA6Q](https://discord.gg/BDYmr6FA6Q)
|
||||
- **Join the call**: [https://discord.com/invite/BDYmr6FA6Q](https://discord.com/invite/BDYmr6FA6Q)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user