diff --git a/docs/zh/SUMMARY.md b/docs/zh/SUMMARY.md index 9b7e14bde6..8e8111ae02 100644 --- a/docs/zh/SUMMARY.md +++ b/docs/zh/SUMMARY.md @@ -313,6 +313,7 @@ - [DroneCAN ESCs](dronecan/escs.md) - [PX4 Sapog ESC Firmware](dronecan/sapog.md) - [ARK 4IN1 ESC](esc/ark_4in1_esc.md) + - [Hiwonder 4Ch Encoder Motor Module](peripherals/hiwonder_emm.md) - [Holybro Kotleta](dronecan/holybro_kotleta.md) - [Vertiq Motor/ESC Modules](peripherals/vertiq.md) - [VESC Project ESCs](peripherals/vesc.md) diff --git a/docs/zh/advanced_config/prearm_arm_disarm.md b/docs/zh/advanced_config/prearm_arm_disarm.md index b4c9f9ad3c..a141ab4a8b 100644 --- a/docs/zh/advanced_config/prearm_arm_disarm.md +++ b/docs/zh/advanced_config/prearm_arm_disarm.md @@ -55,12 +55,12 @@ RC controllers will use different sticks for throttle and yaw [based on their mo - _Arm:_ Left-stick to right, right-stick to bottom. - _Disarm:_ Left-stick to left, right-stick to the bottom. -Note that by default ([COM_DISARM_MAN](#COM_DISARM_MAN)) you can also disarm in flight using gestures/buttons: you may choose to disable this to avoid accidental disarming. +Note that disarming in any altitude controlled mode is only possible after landing was detected. +In manually piloted modes without altitude control, such as Stabilized, Acro, and Manual, it's always possible to disarm using gestures or buttons — even in flight. -| 参数 | 描述 | -| -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [MAN_ARM_GESTURE](../advanced_config/parameter_reference.md#MAN_ARM_GESTURE) | Enable arm/disarm stick guesture. `0`: Disabled, `1`: Enabled (default). | -| [COM_DISARM_MAN](../advanced_config/parameter_reference.md#COM_DISARM_MAN) | Enable disarming in flight via switch/stick/button in MC manual thrust modes. `0`: Disabled, `1`: Enabled (default). | +| 参数 | 描述 | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [MAN_ARM_GESTURE](../advanced_config/parameter_reference.md#MAN_ARM_GESTURE) | Enable arm/disarm stick guesture. `0`: Disabled, `1`: Enabled (default). | ## Arming Button/Switch {#arm_disarm_switch} @@ -89,10 +89,10 @@ The switch can also be set as part of _QGroundControl_ [Flight Mode](../config/f By default vehicles will automatically disarm on landing, or if you take too long to take off after arming. The feature is configured using the following timeouts. -| 参数 | 描述 | -| ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [COM_DISARM_LAND](../advanced_config/parameter_reference.md#COM_DISARM_LAND) | 降落后自动锁定超时时间. Default: 2s (-1 to disable). | -| [COM_DISARM_PRFLT](../advanced_config/parameter_reference.md#COM_DISARM_PRFLT) | Time-out for auto disarm if too slow to takeoff. Default: 10s (<=0 to disable). | +| 参数 | 描述 | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| [COM_DISARM_LAND](../advanced_config/parameter_reference.md#COM_DISARM_LAND) | 降落后自动锁定超时时间. Default: 2s (-1 to disable). | +| [COM_DISARM_PRFLT](../advanced_config/parameter_reference.md#COM_DISARM_PRFLT) | Time-out for auto disarm if too slow to takeoff. Default: 10s (-1 to disable). | ## Auto-Arming on Boot diff --git a/docs/zh/config/safety.md b/docs/zh/config/safety.md index 31196cb838..0bfbfb8a83 100644 --- a/docs/zh/config/safety.md +++ b/docs/zh/config/safety.md @@ -229,6 +229,23 @@ In Fixed-wing, the position estimate is never strictly invalidated as long as we 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. +### GNSS Check Failsafe + + + +Triggers on either of: + +- **Count drop**: receivers with a 3D fix drop below [SYS_HAS_NUM_GNSS](#SYS_HAS_NUM_GNSS). No failsafe action when `SYS_HAS_NUM_GNSS=0` (default). +- **Position divergence**: two receivers disagree beyond their expected separation (configured via [SENS_GPS0_OFFX/Y](../advanced_config/parameter_reference.md#SENS_GPS0_OFFX), [SENS_GPS1_OFFX/Y](../advanced_config/parameter_reference.md#SENS_GPS1_OFFX)) plus reported accuracy. Only triggers a failsafe action if `SYS_HAS_NUM_GNSS=2`. + +At least a warning is emitted, additional failsafe actions can be configured using [COM_GNSSLOSS_ACT](#COM_GNSSLOSS_ACT). +Loss of a single GPS when none are required is handled by other GPS health checks. + +| 参数 | 描述 | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [SYS_HAS_NUM_GNSS](../advanced_config/parameter_reference.md#SYS_HAS_NUM_GNSS) | Number of usable GNSS receivers required for arming and flight. If two are required then they also need to be consistent. | +| [COM_GNSSLOSS_ACT](../advanced_config/parameter_reference.md#COM_GNSSLOSS_ACT) | Failsafe action when a GNSS failure is detected. Actions other than a warning also lead to arming being blocked. | + ## Offboard 中断故障保护 The _Offboard Loss Failsafe_ is triggered if the offboard link is lost while under [Offboard control](../flight_modes/offboard.md). @@ -339,26 +356,26 @@ The relevant parameters are shown below: ### Motor Failure Trigger -The failure detector can be configured to detect a motor failure while armed (and trigger an associated action) if the ESC current falls outside expected bounds for more than [MOTFAIL_TIME](#MOTFAIL_TIME) seconds. +The failure detector can be configured to detect a motor failure while armed (and trigger an associated action) if the ESC current falls outside expected threshold for more than [MOTFAIL_TIME](#MOTFAIL_TIME) seconds. Motor failures are non-latching: if the failure condition clears, the failure is cleared. The undercurrent and overcurrent conditions are defined by: ```text -undercurrent: {esc current} < {MOTFAIL_C2T} * {motor command [0,1]} - {MOTFAIL_LOW_OFF} -overcurrent: {esc current} > {MOTFAIL_C2T} * {motor command [0,1]} + {MOTFAIL_HIGH_OFF} +undercurrent: {esc current} < {MOTFAIL_C2T} * {motor command [0,1]} - {MOTFAIL_OFF} +overcurrent: {esc current} > {MOTFAIL_C2T} * {motor command [0,1]} + {MOTFAIL_OFF} ``` -| 参数 | 描述 | -| ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [FD_ACT_EN](../advanced_config/parameter_reference.md#FD_ACT_EN) | Enable/disable the motor failure trigger completely. | -| [MOTFAIL_C2T](../advanced_config/parameter_reference.md#MOTFAIL_C2T) | Slope between normalized motor command [0–1] and expected steady-state current (FD_ACT_MOT_C2T at 100%) (A/%). | -| [MOTFAIL_LOW_OFF](../advanced_config/parameter_reference.md#MOTFAIL_LOW_OFF) | Undercurrent detection threshold offset (A). Subtracted from the expected current to form the lower bound. | -| [MOTFAIL_HIGH_OFF](../advanced_config/parameter_reference.md#MOTFAIL_HIGH_OFF) | Overcurrent detection threshold offset (A). Added to the expected current to form the upper bound. | -| [MOTFAIL_TIME](../advanced_config/parameter_reference.md#MOTFAIL_TIME) | Hysteresis time (s) for which the current threshold must remain exceeded before a motor failure is triggered. | -| [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. | +| 参数 | 描述 | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [FD_ACT_EN](../advanced_config/parameter_reference.md#FD_ACT_EN) | Enable/disable the motor failure trigger completely. | +| [MOTFAIL_C2T](../advanced_config/parameter_reference.md#MOTFAIL_C2T) | Slope between normalized motor command [0–1] and expected steady-state current (FD_ACT_MOT_C2T at 100%) (A/%). | +| [MOTFAIL_OFF](../advanced_config/parameter_reference.md#MOTFAIL_OFF) | Under/over-current detection threshold offset (A). Added to the expected current to form the upper bound. Subtracted from the expected current to form the lower bound. | +| | | +| [MOTFAIL_TIME](../advanced_config/parameter_reference.md#MOTFAIL_TIME) | Hysteresis time (s) for which the current threshold must remain exceeded before a motor failure is triggered. | +| [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) +### External Automatic Trigger System (ATS) The [failure detector](#failure-detector), if [enabled](#CBRK_FLIGHTTERM), can also be triggered by an external ATS system. The external trigger system must be connected to flight controller port AUX5 (or MAIN5 on boards that do not have AUX ports), and is configured using the parameters below. @@ -368,10 +385,10 @@ External ATS is required by [ASTM F3322-18](https://webstore.ansi.org/standards/ One example of an ATS device is the [FruityChutes Sentinel Automatic Trigger System (SATS-MINI)](https://fruitychutes.com/uav_rpv_drone_recovery_parachutes/sentinel-automatic-trigger-system). ::: -| 参数 | 描述 | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | -| [FD_EXT_ATS_EN](../advanced_config/parameter_reference.md#FD_EXT_ATS_EN) | 启用 AUX5 或 MAIN5(取决于飞控板)上的 PWM 输入,以便从外部自动触发系统(ATS)启用故障保护。 默认值:禁用。 | -| [FD_EXT_ATS_TRIG](../advanced_config/parameter_reference.md#FD_EXT_ATS_TRIG) | 来自外部自动触发系统的用于接通故障保护的 PWM 阈值。 默认值:1900m/s。 | +| 参数 | 描述 | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [FD_EXT_ATS_EN](../advanced_config/parameter_reference.md#FD_EXT_ATS_EN) | Enable PWM input on AUX5 or MAIN5 (depending on board) for engaging failsafe from an external automatic trigger system (ATS). Default: Disabled. | +| [FD_EXT_ATS_TRIG](../advanced_config/parameter_reference.md#FD_EXT_ATS_TRIG) | The PWM threshold from external automatic trigger system for engaging failsafe. Default: 1900 ms. | ## 任务可行性检查 @@ -380,13 +397,13 @@ For example, the checks ensures that the first waypoint isn't too far away, and As these are not strictly speaking "failsafes" they are documented in [Mission Mode (FW) > Mission Feasibility Checks](../flight_modes_fw/mission.md#mission-feasibility-checks) and [Mission Mode (MC) > Mission Feasibility Checks](../flight_modes_mc/mission.md#mission-feasibility-checks). -## 应急开关 +## Emergency Switches Remote control switches can be configured (as part of _QGroundControl_ [Flight Mode Setup](../config/flight_mode.md)) to allow you to take rapid corrective action in the event of a problem or emergency; for example, to stop all motors, or activate [Return mode](#return-switch). This section lists the available emergency switches. -### 急停开关 +### Kill Switch A kill switch immediately stops all motor outputs — if flying, the vehicle will start to fall! @@ -396,23 +413,23 @@ The motors will restart if the switch is reverted within 5 seconds, after which There is also a [Kill Gesture](#kill-gesture), which cannot be reverted. ::: -### 解锁/上锁开关 +### Arm/Disarm Switch The arm/disarm switch is a _direct replacement_ for the default stick-based arming/disarming mechanism (and serves the same purpose: making sure there is an intentional step involved before the motors start/stop). -它可能优先于默认机制使用,原因如下: +It might be used in preference to the default mechanism because: -- 这种机制偏向于切换动作而不是持续运动。 -- 这种机制可以避免因为某种意外误触而引发的飞行期间解锁/上锁。 -- 这种机制没有延迟(立即作出反应)。 +- Of a preference of a switch over a stick motion. +- It avoids accidentally triggering arming/disarming in-air with a certain stick motion. +- There is no delay (it reacts immediately). The arm/disarm switch immediately disarms (stop) motors for those [flight modes](../flight_modes/index.md#flight-modes) that _support disarming in flight_. -其中包括: +This includes: - _Manual mode_ - _Acro mode_ - _Stabilized_ -对于不支持在飞行期间上锁的模式,在飞行期间会忽略该开关信号,但在检测到着陆后可以使用该开关。 +For modes that do not support disarming in flight, the switch is ignored during flight, but may be used after landing is detected. This includes _Position mode_ and autonomous modes (e.g. _Mission_, _Land_ etc.). :::info @@ -424,7 +441,7 @@ This includes _Position mode_ and autonomous modes (e.g. _Mission_, _Land_ etc.) If the switch positions are reversed, change the sign of the parameter [RC_ARMSWITCH_TH](../advanced_config/parameter_reference.md#RC_ARMSWITCH_TH) (or also change its value to alter the threshold value). --> -### 返航开关 +### Return Switch A return switch can be used to immediately engage [Return mode](../flight_modes/return.md). @@ -449,10 +466,10 @@ You can set timeouts to automatically disarm a vehicle if it is too slow to take The [relevant parameters](../advanced_config/parameters.md) are shown below: -| 参数 | 描述 | -| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | -| [COM_DISARM_LAND](../advanced_config/parameter_reference.md#COM_DISARM_LAND) | 降落后自动上锁的超时时间。 | -| [COM_DISARM_PRFLT](../advanced_config/parameter_reference.md#COM_DISARM_PRFLT) | 如果起飞速度太慢,将启动自动上锁。 | +| 参数 | 描述 | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| [COM_DISARM_LAND](../advanced_config/parameter_reference.md#COM_DISARM_LAND) | Timeout for auto-disarm after landing. | +| [COM_DISARM_PRFLT](../advanced_config/parameter_reference.md#COM_DISARM_PRFLT) | Timeout for auto disarm if vehicle is too slow to takeoff. | ### Arming Pre-Conditions diff --git a/docs/zh/config/safety_simulation.md b/docs/zh/config/safety_simulation.md index bee01fc8d3..67d95f18a2 100644 --- a/docs/zh/config/safety_simulation.md +++ b/docs/zh/config/safety_simulation.md @@ -1,3 +1,7 @@ +--- +aside: false +--- + # Failsafe State Machine Simulation diff --git a/docs/zh/index.md b/docs/zh/index.md index 30a88a2b5e..b9167d24bc 100644 --- a/docs/zh/index.md +++ b/docs/zh/index.md @@ -3,7 +3,7 @@ import { useData } from 'vitepress' const { site } = useData(); -# PX4 自动驾驶仪用户指南 +# PX4 自动化用户指南 [![Releases](https://img.shields.io/badge/release-main-blue.svg)](https://github.com/PX4/PX4-Autopilot/releases) [![Discuss](https://img.shields.io/badge/discuss-px4-ff69b4.svg)](https://discuss.px4.io//) [![Discord](https://discordapp.com/api/guilds/1022170275984457759/widget.png?style=shield)](https://discord.com/invite/dronecode) diff --git a/docs/zh/mavlink/security_hardening.md b/docs/zh/mavlink/security_hardening.md index 7501c803a6..d351d14e02 100644 --- a/docs/zh/mavlink/security_hardening.md +++ b/docs/zh/mavlink/security_hardening.md @@ -92,7 +92,7 @@ If your threat model includes physical access, secure the SD card slot and debug PX4 is open-source flight controller firmware used by manufacturers and system integrators to build commercial and custom drone platforms. Securing the communication links for a specific deployment is the responsibility of the system integrator. -其中包括: +This includes: - Choosing appropriate radio hardware and link security - Enabling and managing MAVLink message signing diff --git a/docs/zh/middleware/dds_topics.md b/docs/zh/middleware/dds_topics.md index c7e9127806..0936a69c55 100644 --- a/docs/zh/middleware/dds_topics.md +++ b/docs/zh/middleware/dds_topics.md @@ -96,210 +96,210 @@ They are not build into the module, and hence are neither published or subscribe :::details See messages -- [HeaterStatus](../msg_docs/HeaterStatus.md) -- [MavlinkLog](../msg_docs/MavlinkLog.md) -- [VehicleAirData](../msg_docs/VehicleAirData.md) -- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md) -- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md) +- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md) +- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md) +- [DebugArray](../msg_docs/DebugArray.md) +- [Event](../msg_docs/Event.md) +- [VehicleRoi](../msg_docs/VehicleRoi.md) - [SensorAccel](../msg_docs/SensorAccel.md) -- [DebugKeyValue](../msg_docs/DebugKeyValue.md) -- [SensorGyro](../msg_docs/SensorGyro.md) -- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md) -- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md) -- [LoggerStatus](../msg_docs/LoggerStatus.md) -- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md) -- [PwmInput](../msg_docs/PwmInput.md) -- [UlogStream](../msg_docs/UlogStream.md) -- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md) -- [TecsStatus](../msg_docs/TecsStatus.md) -- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md) -- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md) -- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md) -- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md) -- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md) -- [InputRc](../msg_docs/InputRc.md) -- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md) -- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md) -- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md) -- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md) -- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md) -- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md) -- [MissionResult](../msg_docs/MissionResult.md) -- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md) -- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md) -- [Px4ioStatus](../msg_docs/Px4ioStatus.md) -- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md) -- [SystemPower](../msg_docs/SystemPower.md) -- [VelocityLimits](../msg_docs/VelocityLimits.md) -- [GeofenceStatus](../msg_docs/GeofenceStatus.md) -- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md) -- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md) -- [SensorBaro](../msg_docs/SensorBaro.md) -- [DebugVect](../msg_docs/DebugVect.md) -- [DatamanRequest](../msg_docs/DatamanRequest.md) -- [GainCompression](../msg_docs/GainCompression.md) -- [VehicleStatusV2](../msg_docs/VehicleStatusV2.md) -- [SensorTemp](../msg_docs/SensorTemp.md) -- [SensorCorrection](../msg_docs/SensorCorrection.md) -- [DeviceInformation](../msg_docs/DeviceInformation.md) -- [OrbTest](../msg_docs/OrbTest.md) -- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md) -- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md) -- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md) -- [QshellReq](../msg_docs/QshellReq.md) -- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md) -- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md) -- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md) -- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md) -- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md) -- [Airspeed](../msg_docs/Airspeed.md) -- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md) -- [NavigatorStatus](../msg_docs/NavigatorStatus.md) -- [PowerButtonState](../msg_docs/PowerButtonState.md) -- [EscStatus](../msg_docs/EscStatus.md) -- [LedControl](../msg_docs/LedControl.md) - [GpioOut](../msg_docs/GpioOut.md) -- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md) -- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md) -- [SensorUwb](../msg_docs/SensorUwb.md) -- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md) -- [Vtx](../msg_docs/Vtx.md) -- [GpsDump](../msg_docs/GpsDump.md) -- [ButtonEvent](../msg_docs/ButtonEvent.md) -- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md) -- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md) -- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md) -- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md) -- [RadioStatus](../msg_docs/RadioStatus.md) -- [ActuatorArmed](../msg_docs/ActuatorArmed.md) -- [DebugValue](../msg_docs/DebugValue.md) -- [Ping](../msg_docs/Ping.md) -- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md) -- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md) -- [SensorAirflow](../msg_docs/SensorAirflow.md) -- [TakeoffStatus](../msg_docs/TakeoffStatus.md) - [AirspeedWind](../msg_docs/AirspeedWind.md) -- [EscEepromWrite](../msg_docs/EscEepromWrite.md) -- [CameraTrigger](../msg_docs/CameraTrigger.md) -- [Mission](../msg_docs/Mission.md) -- [FigureEightStatus](../msg_docs/FigureEightStatus.md) -- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md) -- [EstimatorStatus](../msg_docs/EstimatorStatus.md) -- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md) -- [CameraCapture](../msg_docs/CameraCapture.md) -- [AdcReport](../msg_docs/AdcReport.md) -- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md) -- [GpioRequest](../msg_docs/GpioRequest.md) -- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md) -- [RcParameterMap](../msg_docs/RcParameterMap.md) -- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md) -- [CellularStatus](../msg_docs/CellularStatus.md) -- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md) - [EscEepromRead](../msg_docs/EscEepromRead.md) -- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md) -- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md) -- [DifferentialPressure](../msg_docs/DifferentialPressure.md) -- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md) -- [TuneControl](../msg_docs/TuneControl.md) -- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md) -- [Gripper](../msg_docs/Gripper.md) -- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md) -- [ActionRequest](../msg_docs/ActionRequest.md) -- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md) +- [AdcReport](../msg_docs/AdcReport.md) - [WheelEncoders](../msg_docs/WheelEncoders.md) -- [ParameterUpdate](../msg_docs/ParameterUpdate.md) -- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md) -- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md) -- [PpsCapture](../msg_docs/PpsCapture.md) -- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md) -- [EscReport](../msg_docs/EscReport.md) -- [SatelliteInfo](../msg_docs/SatelliteInfo.md) -- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md) -- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md) -- [RegisterExtComponentRequestV1](../msg_docs/RegisterExtComponentRequestV1.md) -- [VehicleStatusV3](../msg_docs/VehicleStatusV3.md) -- [SensorMag](../msg_docs/SensorMag.md) -- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md) -- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md) -- [RoverRateStatus](../msg_docs/RoverRateStatus.md) -- [SensorSelection](../msg_docs/SensorSelection.md) -- [MountOrientation](../msg_docs/MountOrientation.md) +- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md) +- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md) +- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md) +- [CellularStatus](../msg_docs/CellularStatus.md) +- [TaskStackInfo](../msg_docs/TaskStackInfo.md) - [UlogStreamAck](../msg_docs/UlogStreamAck.md) -- [EstimatorFusionControl](../msg_docs/EstimatorFusionControl.md) -- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md) -- [GeofenceResult](../msg_docs/GeofenceResult.md) +- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md) +- [PpsCapture](../msg_docs/PpsCapture.md) +- [Airspeed](../msg_docs/Airspeed.md) +- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md) +- [LedControl](../msg_docs/LedControl.md) +- [LoggerStatus](../msg_docs/LoggerStatus.md) +- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md) +- [GpioConfig](../msg_docs/GpioConfig.md) +- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md) +- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md) +- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md) +- [TakeoffStatus](../msg_docs/TakeoffStatus.md) +- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md) +- [TuneControl](../msg_docs/TuneControl.md) +- [SensorMag](../msg_docs/SensorMag.md) +- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md) +- [VehicleImu](../msg_docs/VehicleImu.md) +- [DebugValue](../msg_docs/DebugValue.md) +- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md) +- [SensorUwb](../msg_docs/SensorUwb.md) +- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md) +- [CameraTrigger](../msg_docs/CameraTrigger.md) +- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md) +- [FollowTarget](../msg_docs/FollowTarget.md) +- [RegisterExtComponentRequestV1](../msg_docs/RegisterExtComponentRequestV1.md) +- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md) +- [GeofenceStatus](../msg_docs/GeofenceStatus.md) +- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md) +- [QshellReq](../msg_docs/QshellReq.md) +- [InputRc](../msg_docs/InputRc.md) +- [OrbitStatus](../msg_docs/OrbitStatus.md) +- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md) +- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md) +- [RadioStatus](../msg_docs/RadioStatus.md) +- [CameraCapture](../msg_docs/CameraCapture.md) +- [LandingGearWheel](../msg_docs/LandingGearWheel.md) +- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md) +- [EscReport](../msg_docs/EscReport.md) +- [SensorsStatus](../msg_docs/SensorsStatus.md) +- [ActuatorTest](../msg_docs/ActuatorTest.md) +- [MavlinkLog](../msg_docs/MavlinkLog.md) +- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md) +- [ActuatorArmed](../msg_docs/ActuatorArmed.md) +- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md) +- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md) +- [EscStatus](../msg_docs/EscStatus.md) +- [EstimatorBias](../msg_docs/EstimatorBias.md) +- [VehicleAirData](../msg_docs/VehicleAirData.md) +- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md) +- [GainCompression](../msg_docs/GainCompression.md) +- [DifferentialPressure](../msg_docs/DifferentialPressure.md) +- [ArmingCheckRequestV0](../msg_docs/ArmingCheckRequestV0.md) +- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md) +- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md) +- [UlogStream](../msg_docs/UlogStream.md) +- [VehicleStatusV2](../msg_docs/VehicleStatusV2.md) +- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md) +- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md) +- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md) +- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md) +- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md) +- [HealthReport](../msg_docs/HealthReport.md) +- [RcChannels](../msg_docs/RcChannels.md) +- [GpioIn](../msg_docs/GpioIn.md) +- [DebugVect](../msg_docs/DebugVect.md) +- [DebugKeyValue](../msg_docs/DebugKeyValue.md) +- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md) +- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md) +- [ButtonEvent](../msg_docs/ButtonEvent.md) +- [DronecanNodeStatus](../msg_docs/DronecanNodeStatus.md) +- [RangingBeacon](../msg_docs/RangingBeacon.md) +- [SensorHygrometer](../msg_docs/SensorHygrometer.md) +- [RtlStatus](../msg_docs/RtlStatus.md) +- [OrbTestMedium](../msg_docs/OrbTestMedium.md) +- [RoverRateStatus](../msg_docs/RoverRateStatus.md) +- [BatteryInfo](../msg_docs/BatteryInfo.md) +- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md) +- [RaptorInput](../msg_docs/RaptorInput.md) +- [ConfigOverridesV0](../msg_docs/ConfigOverridesV0.md) +- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md) +- [RaptorStatus](../msg_docs/RaptorStatus.md) +- [VehicleConstraints](../msg_docs/VehicleConstraints.md) +- [GpioRequest](../msg_docs/GpioRequest.md) +- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md) +- [PwmInput](../msg_docs/PwmInput.md) +- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md) +- [SensorSelection](../msg_docs/SensorSelection.md) +- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md) +- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md) +- [VehicleLocalPositionV0](../msg_docs/VehicleLocalPositionV0.md) +- [VehicleStatusV3](../msg_docs/VehicleStatusV3.md) +- [GpsDump](../msg_docs/GpsDump.md) +- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md) +- [LogMessage](../msg_docs/LogMessage.md) +- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md) +- [VehicleCommandAckV0](../msg_docs/VehicleCommandAckV0.md) +- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md) +- [FuelTankStatus](../msg_docs/FuelTankStatus.md) +- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md) +- [Px4ioStatus](../msg_docs/Px4ioStatus.md) +- [SensorBaro](../msg_docs/SensorBaro.md) +- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md) +- [HeaterStatus](../msg_docs/HeaterStatus.md) +- [RoverSpeedStatus](../msg_docs/RoverSpeedStatus.md) +- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md) +- [SystemPower](../msg_docs/SystemPower.md) +- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md) +- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md) +- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md) +- [EventV0](../msg_docs/EventV0.md) - [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md) -- [PowerMonitor](../msg_docs/PowerMonitor.md) +- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md) +- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md) +- [QshellRetval](../msg_docs/QshellRetval.md) +- [Vtx](../msg_docs/Vtx.md) +- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md) +- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md) +- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md) +- [SatelliteInfo](../msg_docs/SatelliteInfo.md) - [OrbTestLarge](../msg_docs/OrbTestLarge.md) - [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md) -- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md) -- [HealthReport](../msg_docs/HealthReport.md) -- [CameraStatus](../msg_docs/CameraStatus.md) -- [SensorGnssStatus](../msg_docs/SensorGnssStatus.md) -- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md) +- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md) - [SensorGyroFifo](../msg_docs/SensorGyroFifo.md) -- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md) -- [IrlockReport](../msg_docs/IrlockReport.md) -- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md) -- [LandingGearWheel](../msg_docs/LandingGearWheel.md) -- [TaskStackInfo](../msg_docs/TaskStackInfo.md) -- [RegisterExtComponentRequestV0](../msg_docs/RegisterExtComponentRequestV0.md) +- [GpsInjectData](../msg_docs/GpsInjectData.md) +- [TecsStatus](../msg_docs/TecsStatus.md) +- [ParameterUpdate](../msg_docs/ParameterUpdate.md) +- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md) +- [PowerButtonState](../msg_docs/PowerButtonState.md) +- [Gripper](../msg_docs/Gripper.md) +- [RcParameterMap](../msg_docs/RcParameterMap.md) +- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md) - [NeuralControl](../msg_docs/NeuralControl.md) -- [VehicleImu](../msg_docs/VehicleImu.md) -- [RaptorStatus](../msg_docs/RaptorStatus.md) -- [OrbTestMedium](../msg_docs/OrbTestMedium.md) -- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md) - [Rpm](../msg_docs/Rpm.md) -- [BatteryStatusV0](../msg_docs/BatteryStatusV0.md) -- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md) -- [SensorHygrometer](../msg_docs/SensorHygrometer.md) -- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md) -- [LandingTargetPose](../msg_docs/LandingTargetPose.md) -- [GpioConfig](../msg_docs/GpioConfig.md) -- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md) -- [EstimatorBias](../msg_docs/EstimatorBias.md) -- [VehicleConstraints](../msg_docs/VehicleConstraints.md) -- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md) -- [SensorsStatus](../msg_docs/SensorsStatus.md) +- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md) +- [GeneratorStatus](../msg_docs/GeneratorStatus.md) +- [DeviceInformation](../msg_docs/DeviceInformation.md) +- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md) - [SensorGnssRelative](../msg_docs/SensorGnssRelative.md) - [EstimatorStates](../msg_docs/EstimatorStates.md) -- [ActuatorTest](../msg_docs/ActuatorTest.md) -- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md) -- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md) -- [GpioIn](../msg_docs/GpioIn.md) -- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md) -- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md) -- [VehicleRoi](../msg_docs/VehicleRoi.md) -- [MagWorkerData](../msg_docs/MagWorkerData.md) -- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md) -- [FollowTarget](../msg_docs/FollowTarget.md) -- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md) -- [HomePositionV0](../msg_docs/HomePositionV0.md) -- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md) -- [DebugArray](../msg_docs/DebugArray.md) -- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md) -- [BatteryInfo](../msg_docs/BatteryInfo.md) -- [RcChannels](../msg_docs/RcChannels.md) -- [LogMessage](../msg_docs/LogMessage.md) -- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md) -- [PositionSetpoint](../msg_docs/PositionSetpoint.md) +- [Ping](../msg_docs/Ping.md) - [GimbalControls](../msg_docs/GimbalControls.md) +- [LandingTargetPose](../msg_docs/LandingTargetPose.md) +- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md) +- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md) +- [EstimatorStatus](../msg_docs/EstimatorStatus.md) +- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md) +- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md) - [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md) -- [RtlStatus](../msg_docs/RtlStatus.md) -- [VehicleGlobalPositionV0](../msg_docs/VehicleGlobalPositionV0.md) -- [Cpuload](../msg_docs/Cpuload.md) -- [GpsInjectData](../msg_docs/GpsInjectData.md) -- [GeneratorStatus](../msg_docs/GeneratorStatus.md) -- [FuelTankStatus](../msg_docs/FuelTankStatus.md) -- [SensorGyroFft](../msg_docs/SensorGyroFft.md) -- [OrbitStatus](../msg_docs/OrbitStatus.md) +- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md) +- [GeofenceResult](../msg_docs/GeofenceResult.md) +- [SensorAirflow](../msg_docs/SensorAirflow.md) +- [VelocityLimits](../msg_docs/VelocityLimits.md) - [DatamanResponse](../msg_docs/DatamanResponse.md) -- [EventV0](../msg_docs/EventV0.md) -- [RegisterExtComponentReplyV0](../msg_docs/RegisterExtComponentReplyV0.md) -- [RangingBeacon](../msg_docs/RangingBeacon.md) -- [Event](../msg_docs/Event.md) - [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md) -- [QshellRetval](../msg_docs/QshellRetval.md) -- [RaptorInput](../msg_docs/RaptorInput.md) +- [NavigatorStatus](../msg_docs/NavigatorStatus.md) +- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md) +- [EstimatorFusionControl](../msg_docs/EstimatorFusionControl.md) +- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md) +- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md) +- [Mission](../msg_docs/Mission.md) +- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md) +- [DatamanRequest](../msg_docs/DatamanRequest.md) +- [HomePositionV0](../msg_docs/HomePositionV0.md) +- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md) +- [CameraStatus](../msg_docs/CameraStatus.md) +- [MagWorkerData](../msg_docs/MagWorkerData.md) +- [SensorGyro](../msg_docs/SensorGyro.md) +- [MissionResult](../msg_docs/MissionResult.md) +- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md) +- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md) +- [SensorGyroFft](../msg_docs/SensorGyroFft.md) +- [EscEepromWrite](../msg_docs/EscEepromWrite.md) +- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md) +- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md) +- [MountOrientation](../msg_docs/MountOrientation.md) +- [Cpuload](../msg_docs/Cpuload.md) +- [OrbTest](../msg_docs/OrbTest.md) +- [SensorCorrection](../msg_docs/SensorCorrection.md) +- [PositionSetpoint](../msg_docs/PositionSetpoint.md) +- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md) +- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md) +- [FigureEightStatus](../msg_docs/FigureEightStatus.md) +- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md) +- [IrlockReport](../msg_docs/IrlockReport.md) +- [PowerMonitor](../msg_docs/PowerMonitor.md) +- [ActionRequest](../msg_docs/ActionRequest.md) +- [VehicleStatusV1](../msg_docs/VehicleStatusV1.md) +- [SensorTemp](../msg_docs/SensorTemp.md) ::: diff --git a/docs/zh/modules/modules_driver.md b/docs/zh/modules/modules_driver.md index d46c8be281..53992bf2f0 100644 --- a/docs/zh/modules/modules_driver.md +++ b/docs/zh/modules/modules_driver.md @@ -432,6 +432,26 @@ gz_bridge [arguments...] status print status info ``` +## hiwonder_emm + +Source: [drivers/hiwonder_emm](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/hiwonder_emm) + +### 描述 + +Hiwonder encoder motor module driver for PX4. + +### Usage {#hiwonder_emm_usage} + +``` +hiwonder_emm [arguments...] + Commands: + start Start the task + + stop + + status print status info +``` + ## ina220 Source: [drivers/power_monitor/ina220](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/power_monitor/ina220) diff --git a/docs/zh/modules/modules_driver_imu.md b/docs/zh/modules/modules_driver_imu.md index 5b3563564a..eecc2bb5b2 100644 --- a/docs/zh/modules/modules_driver_imu.md +++ b/docs/zh/modules/modules_driver_imu.md @@ -130,6 +130,70 @@ adis16507 [arguments...] status print status info ``` +## adis1650x + +Source: [drivers/imu/analog_devices/adis1650x](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/imu/analog_devices/adis1650x) + +### Usage {#adis1650x_usage} + +``` +adis1650x [arguments...] + Commands: + start + [-s] Internal SPI bus(es) + [-S] External SPI bus(es) + [-b ] board-specific bus (default=all) (external SPI: n-th bus + (default=1)) + [-c ] chip-select pin (for internal SPI) or index (for external SPI) + [-m ] SPI mode + [-f ] bus frequency in kHz + [-q] quiet startup (no message if no device found) + [-R ] Rotation + default: 0 + [-r ] Decimation rate: sample_rate = 2000/(dec_rate+1). 0=2000Hz + 1=1000Hz 3=500Hz + default: 1 + [-F ] Hardware Bartlett FIR filter tap size: 0=bypass 1-6=increasing + strength + default: 0 + + stop + + status print status info +``` + +## adis1657x + +Source: [drivers/imu/analog_devices/adis1657x](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/imu/analog_devices/adis1657x) + +### Usage {#adis1657x_usage} + +``` +adis1657x [arguments...] + Commands: + start + [-s] Internal SPI bus(es) + [-S] External SPI bus(es) + [-b ] board-specific bus (default=all) (external SPI: n-th bus + (default=1)) + [-c ] chip-select pin (for internal SPI) or index (for external SPI) + [-m ] SPI mode + [-f ] bus frequency in kHz + [-q] quiet startup (no message if no device found) + [-R ] Rotation + default: 0 + [-r ] Decimation rate: sample_rate = 2000/(dec_rate+1). 0=2000Hz + 1=1000Hz 3=500Hz 19=100Hz + default: 0 + [-F ] Hardware Bartlett FIR filter tap size: 0=bypass 1-6=increasing + filter strength + default: 0 + + stop + + status print status info +``` + ## adis16607 Source: [drivers/imu/analog_devices/adis16607](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/imu/analog_devices/adis16607) diff --git a/docs/zh/msg_docs/AuxGlobalPosition.md b/docs/zh/msg_docs/AuxGlobalPosition.md index 290ae9651a..37e354905c 100644 --- a/docs/zh/msg_docs/AuxGlobalPosition.md +++ b/docs/zh/msg_docs/AuxGlobalPosition.md @@ -30,15 +30,16 @@ pseudolites, visual navigation, or other positioning system. ### SOURCE {#SOURCE} -| 参数名 | 类型 | 值 | 描述 | -| ------------------------------------------------------------------------ | ------- | - | -------------- | -| SOURCE_UNKNOWN | `uint8` | 0 | Unknown source | -| SOURCE_GNSS | `uint8` | 1 | GNSS | -| SOURCE_VISION | `uint8` | 2 | Vision | -| SOURCE_PSEUDOLITES | `uint8` | 3 | Pseudolites | -| SOURCE_TERRAIN | `uint8` | 4 | Terrain | -| SOURCE_MAGNETIC | `uint8` | 5 | Magnetic | -| SOURCE_ESTIMATOR | `uint8` | 6 | 估计器 | +| 参数名 | 类型 | 值 | 描述 | +| ------------------------------------------------------------------------ | ------- | - | ------------------------------------------- | +| SOURCE_UNKNOWN | `uint8` | 0 | Unknown source | +| SOURCE_GNSS | `uint8` | 1 | GNSS | +| SOURCE_VISION | `uint8` | 2 | Vision | +| SOURCE_PSEUDOLITES | `uint8` | 3 | Pseudolites | +| SOURCE_TERRAIN | `uint8` | 4 | Terrain | +| SOURCE_MAGNETIC | `uint8` | 5 | Magnetic | +| SOURCE_ESTIMATOR | `uint8` | 6 | 估计器 | +| SOURCE_LEO | `uint8` | 7 | Low Earth Orbit satellite-based positioning | ## Constants @@ -73,6 +74,7 @@ uint8 SOURCE_PSEUDOLITES = 3 # Pseudolites uint8 SOURCE_TERRAIN = 4 # Terrain uint8 SOURCE_MAGNETIC = 5 # Magnetic uint8 SOURCE_ESTIMATOR = 6 # Estimator +uint8 SOURCE_LEO = 7 # Low Earth Orbit satellite-based positioning # lat, lon: required for horizontal position fusion, alt: required for vertical position fusion float64 lat # [deg] Latitude in WGS84 diff --git a/docs/zh/msg_docs/FailsafeFlags.md b/docs/zh/msg_docs/FailsafeFlags.md index c04b633113..a79989ae4e 100644 --- a/docs/zh/msg_docs/FailsafeFlags.md +++ b/docs/zh/msg_docs/FailsafeFlags.md @@ -13,53 +13,54 @@ The flag comments are used as label for the failsafe state machine simulation ## Fields -| 参数名 | 类型 | Unit [Frame] | Range/Enum | 描述 | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| timestamp | `uint64` | | | time since system start (microseconds) | -| mode_req_angular_velocity | `uint32` | | | | -| mode_req_attitude | `uint32` | | | | -| mode_req_local_alt | `uint32` | | | | -| mode_req_local_position | `uint32` | | | | -| mode_req_local_position_relaxed | `uint32` | | | | -| mode_req_global_position | `uint32` | | | | -| mode_req_global_position_relaxed | `uint32` | | | | -| mode_req_mission | `uint32` | | | | -| mode_req_offboard_signal | `uint32` | | | | -| mode_req_home_position | `uint32` | | | | -| mode_req_wind_and_flight_time_compliance | `uint32` | | | if set, mode cannot be entered if wind or flight time limit exceeded | -| mode_req_prevent_arming | `uint32` | | | if set, cannot arm while in this mode | -| mode_req_manual_control | `uint32` | | | | -| mode_req_other | `uint32` | | | other requirements, not covered above (for external modes) | -| angular_velocity_invalid | `bool` | | | Angular velocity invalid | -| attitude_invalid | `bool` | | | Attitude invalid | -| local_altitude_invalid | `bool` | | | Local altitude invalid | -| local_position_invalid | `bool` | | | Local position estimate invalid | -| local_position_invalid_relaxed | `bool` | | | Local position with reduced accuracy requirements invalid (e.g. flying with optical flow) | -| local_velocity_invalid | `bool` | | | Local velocity estimate invalid | -| global_position_invalid | `bool` | | | Global position estimate invalid | -| global_position_invalid_relaxed | `bool` | | | Global position estimate invalid with relaxed accuracy requirements | -| auto_mission_missing | `bool` | | | No mission available | -| offboard_control_signal_lost | `bool` | | | Offboard signal lost | -| home_position_invalid | `bool` | | | No home position available | -| manual_control_signal_lost | `bool` | | | Manual control (RC) signal lost | -| gcs_connection_lost | `bool` | | | GCS connection lost | -| battery_warning | `uint8` | | | Battery warning level (see BatteryStatus.msg) | -| battery_low_remaining_time | `bool` | | | Low battery based on remaining flight time | -| battery_unhealthy | `bool` | | | Battery unhealthy | -| fd_critical_failure | `bool` | | | Critical failure (attitude limit exceeded, or external ATS) | -| fd_esc_arming_failure | `bool` | | | ESC failed to arm | -| fd_imbalanced_prop | `bool` | | | Imbalanced propeller detected | -| fd_motor_failure | `bool` | | | Motor failure | -| fd_alt_loss | `bool` | | | Uncommanded altitude loss (rotary-wing, altitude-controlled flight) | -| geofence_breached | `bool` | | | Geofence breached (one or multiple) | -| mission_failure | `bool` | | | Mission failure | -| vtol_fixed_wing_system_failure | `bool` | | | vehicle in fixed-wing system failure failsafe mode (after quad-chute) | -| wind_limit_exceeded | `bool` | | | Wind limit exceeded | -| flight_time_limit_exceeded | `bool` | | | Maximum flight time exceeded | -| position_accuracy_low | `bool` | | | Position estimate has dropped below threshold, but is currently still declared valid | -| navigator_failure | `bool` | | | Navigator failed to execute a mode | -| parachute_unhealthy | `bool` | | | Parachute system missing or unhealthy | -| remote_id_unhealthy | `bool` | | | Remote ID (Open Drone ID) system missing or unhealthy | +| 参数名 | 类型 | Unit [Frame] | Range/Enum | 描述 | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ---------------------------------------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| timestamp | `uint64` | | | time since system start (microseconds) | +| mode_req_angular_velocity | `uint32` | | | | +| mode_req_attitude | `uint32` | | | | +| mode_req_local_alt | `uint32` | | | | +| mode_req_local_position | `uint32` | | | | +| mode_req_local_position_relaxed | `uint32` | | | | +| mode_req_global_position | `uint32` | | | | +| mode_req_global_position_relaxed | `uint32` | | | | +| mode_req_mission | `uint32` | | | | +| mode_req_offboard_signal | `uint32` | | | | +| mode_req_home_position | `uint32` | | | | +| mode_req_wind_and_flight_time_compliance | `uint32` | | | if set, mode cannot be entered if wind or flight time limit exceeded | +| mode_req_prevent_arming | `uint32` | | | if set, cannot arm while in this mode | +| mode_req_manual_control | `uint32` | | | | +| mode_req_other | `uint32` | | | other requirements, not covered above (for external modes) | +| angular_velocity_invalid | `bool` | | | Angular velocity invalid | +| attitude_invalid | `bool` | | | Attitude invalid | +| local_altitude_invalid | `bool` | | | Local altitude invalid | +| local_position_invalid | `bool` | | | Local position estimate invalid | +| local_position_invalid_relaxed | `bool` | | | Local position with reduced accuracy requirements invalid (e.g. flying with optical flow) | +| local_velocity_invalid | `bool` | | | Local velocity estimate invalid | +| global_position_invalid | `bool` | | | Global position estimate invalid | +| global_position_invalid_relaxed | `bool` | | | Global position estimate invalid with relaxed accuracy requirements | +| auto_mission_missing | `bool` | | | No mission available | +| offboard_control_signal_lost | `bool` | | | Offboard signal lost | +| home_position_invalid | `bool` | | | No home position available | +| manual_control_signal_lost | `bool` | | | Manual control (RC) signal lost | +| gcs_connection_lost | `bool` | | | GCS connection lost | +| battery_warning | `uint8` | | | Battery warning level (see BatteryStatus.msg) | +| battery_low_remaining_time | `bool` | | | Low battery based on remaining flight time | +| battery_unhealthy | `bool` | | | Battery unhealthy | +| fd_critical_failure | `bool` | | | Critical failure (attitude limit exceeded, or external ATS) | +| fd_esc_arming_failure | `bool` | | | ESC failed to arm | +| fd_imbalanced_prop | `bool` | | | Imbalanced propeller detected | +| fd_motor_failure | `bool` | | | Motor failure | +| fd_alt_loss | `bool` | | | Uncommanded altitude loss (rotary-wing, altitude-controlled flight) | +| geofence_breached | `bool` | | | Geofence breached (one or multiple) | +| mission_failure | `bool` | | | Mission failure | +| vtol_fixed_wing_system_failure | `bool` | | | vehicle in fixed-wing system failure failsafe mode (after quad-chute) | +| wind_limit_exceeded | `bool` | | | Wind limit exceeded | +| flight_time_limit_exceeded | `bool` | | | Maximum flight time exceeded | +| position_accuracy_low | `bool` | | | Position estimate has dropped below threshold, but is currently still declared valid | +| navigator_failure | `bool` | | | Navigator failed to execute a mode | +| parachute_unhealthy | `bool` | | | Parachute system missing or unhealthy | +| remote_id_unhealthy | `bool` | | | Remote ID (Open Drone ID) system missing or unhealthy | +| gnss_lost | `bool` | | | Active GNSS count dropped below SYS_HAS_NUM_GNSS, or two receivers report inconsistent positions | ## Source Message @@ -132,6 +133,7 @@ bool position_accuracy_low # Position estimate has dropped below thre bool navigator_failure # Navigator failed to execute a mode bool parachute_unhealthy # Parachute system missing or unhealthy bool remote_id_unhealthy # Remote ID (Open Drone ID) system missing or unhealthy +bool gnss_lost # Active GNSS count dropped below SYS_HAS_NUM_GNSS, or two receivers report inconsistent positions ``` ::: diff --git a/docs/zh/msg_docs/OrbitStatus.md b/docs/zh/msg_docs/OrbitStatus.md index 3fdceb4d7a..65c59a152e 100644 --- a/docs/zh/msg_docs/OrbitStatus.md +++ b/docs/zh/msg_docs/OrbitStatus.md @@ -4,32 +4,49 @@ pageClass: is-wide-page # OrbitStatus (UORB message) -ORBIT_YAW_BEHAVIOUR. +Orbit status. + +Current state of an orbit or loiter manoeuver, published while the maneuver is executing. +For multirotors, published by the orbit flight task (FlightTaskOrbit) on each control cycle +when a valid GPS projection is available. +For fixed-wing, published by FixedWingModeManager during loiter. +Subscribed by the MAVLink module and streamed to the GCS as ORBIT_EXECUTION_STATUS (message 360). **TOPICS:** orbit_status ## Fields -| 参数名 | 类型 | Unit [Frame] | Range/Enum | 描述 | -| ---------------------------------- | --------- | ---------------------------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| timestamp | `uint64` | | | time since system start (microseconds) | -| radius | `float32` | | | Radius of the orbit circle. Positive values orbit clockwise, negative values orbit counter-clockwise. [m] | -| frame | `uint8` | | | The coordinate system of the fields: x, y, z. | -| x | `float64` | | | X coordinate of center point. Coordinate system depends on frame field: local = x position in meters _ 1e4, global = latitude in degrees _ 1e7. | -| y | `float64` | | | Y coordinate of center point. Coordinate system depends on frame field: local = y position in meters _ 1e4, global = latitude in degrees _ 1e7. | -| z | `float32` | | | Altitude of center point. Coordinate system depends on frame field. | -| yaw_behaviour | `uint8` | | | | +| 参数名 | 类型 | Unit [Frame] | Range/Enum | 描述 | +| ---------------------------------- | --------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| timestamp | `uint64` | us | | Time since system start | +| radius | `float32` | 米 | | Radius of the orbit circle. Positive values orbit clockwise, negative values orbit counter-clockwise. | +| frame | `uint8` | | [FRAME](#FRAME) | The coordinate system of the fields: x, y, z | +| x | `float64` | | | X coordinate of center point. Coordinate system depends on frame field: `local = x position in meters * 1e4`, `global = latitude in degrees * 1e7`. | +| y | `float64` | | | Y coordinate of center point. Coordinate system depends on frame field: `local = y position in meters * 1e4`, `global = longitude in degrees * 1e7`. | +| z | `float32` | | | Altitude of center point. Coordinate system depends on frame field. | +| yaw_behaviour | `uint8` | | [ORBIT_YAW_BEHAVIOUR](#ORBIT_YAW_BEHAVIOUR) | | -## Constants +## Enums -| 参数名 | 类型 | 值 | 描述 | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | - | -- | -| ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER | `uint8` | 0 | | -| ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING | `uint8` | 1 | | -| ORBIT_YAW_BEHAVIOUR_UNCONTROLLED | `uint8` | 2 | | -| ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE | `uint8` | 3 | | -| ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED | `uint8` | 4 | | -| ORBIT_YAW_BEHAVIOUR_UNCHANGED | `uint8` | 5 | | +### FRAME {#FRAME} + +| 参数名 | 类型 | 值 | 描述 | +| -------------------------------------------------------------------------------------------------------------------------------- | ------- | -- | ----------------------------------------------------------------------------------------------------------------------- | +| FRAME_GLOBAL | `uint8` | 0 | WGS84 global frame, MSL altitude. x/y = latitude/longitude (degrees × 1e7) | +| FRAME_LOCAL_NED | `uint8` | 1 | Local NED frame. x/y = north/east position (meters × 1e4) | +| FRAME_GLOBAL_RELATIVE_ALT | `uint8` | 3 | WGS84 global frame, altitude above home. x/y = latitude/longitude (degrees × 1e7) | +| FRAME_GLOBAL_TERRAIN_ALT | `uint8` | 10 | WGS84 global frame, altitude above terrain. x/y = latitude/longitude (degrees × 1e7) | + +### ORBIT_YAW_BEHAVIOUR {#ORBIT_YAW_BEHAVIOUR} + +| 参数名 | 类型 | 值 | 描述 | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER | `uint8` | 0 | Vehicle front points to the center (default). | +| ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING | `uint8` | 1 | Vehicle front holds heading when message received. | +| ORBIT_YAW_BEHAVIOUR_UNCONTROLLED | `uint8` | 2 | Yaw uncontrolled. | +| ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE | `uint8` | 3 | Vehicle front follows flight path (tangential to circle). | +| ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED | `uint8` | 4 | Yaw controlled by RC input. | +| ORBIT_YAW_BEHAVIOUR_UNCHANGED | `uint8` | 5 | Vehicle uses current yaw behaviour (unchanged). The vehicle-default yaw behaviour is used if this value is specified when orbit is first commanded. | ## Source Message @@ -39,21 +56,34 @@ ORBIT_YAW_BEHAVIOUR. Click here to see original file ```c -# ORBIT_YAW_BEHAVIOUR -uint8 ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER = 0 -uint8 ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING = 1 -uint8 ORBIT_YAW_BEHAVIOUR_UNCONTROLLED = 2 -uint8 ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE = 3 -uint8 ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED = 4 -uint8 ORBIT_YAW_BEHAVIOUR_UNCHANGED = 5 +# Orbit status +# +# Current state of an orbit or loiter manoeuver, published while the maneuver is executing. +# For multirotors, published by the orbit flight task (FlightTaskOrbit) on each control cycle +# when a valid GPS projection is available. +# For fixed-wing, published by FixedWingModeManager during loiter. +# Subscribed by the MAVLink module and streamed to the GCS as ORBIT_EXECUTION_STATUS (message 360). -uint64 timestamp # time since system start (microseconds) -float32 radius # Radius of the orbit circle. Positive values orbit clockwise, negative values orbit counter-clockwise. [m] -uint8 frame # The coordinate system of the fields: x, y, z. -float64 x # X coordinate of center point. Coordinate system depends on frame field: local = x position in meters * 1e4, global = latitude in degrees * 1e7. -float64 y # Y coordinate of center point. Coordinate system depends on frame field: local = y position in meters * 1e4, global = latitude in degrees * 1e7. -float32 z # Altitude of center point. Coordinate system depends on frame field. -uint8 yaw_behaviour +uint64 timestamp # [us] Time since system start +float32 radius # [m] Radius of the orbit circle. Positive values orbit clockwise, negative values orbit counter-clockwise. + +uint8 frame # [@enum FRAME] The coordinate system of the fields: x, y, z +uint8 FRAME_GLOBAL = 0 # WGS84 global frame, MSL altitude. x/y = latitude/longitude (degrees × 1e7) +uint8 FRAME_LOCAL_NED = 1 # Local NED frame. x/y = north/east position (meters × 1e4) +uint8 FRAME_GLOBAL_RELATIVE_ALT = 3 # WGS84 global frame, altitude above home. x/y = latitude/longitude (degrees × 1e7) +uint8 FRAME_GLOBAL_TERRAIN_ALT = 10 # WGS84 global frame, altitude above terrain. x/y = latitude/longitude (degrees × 1e7) + +float64 x # X coordinate of center point. Coordinate system depends on frame field: `local = x position in meters * 1e4`, `global = latitude in degrees * 1e7`. +float64 y # Y coordinate of center point. Coordinate system depends on frame field: `local = y position in meters * 1e4`, `global = longitude in degrees * 1e7`. +float32 z # Altitude of center point. Coordinate system depends on frame field. + +uint8 yaw_behaviour # [@enum ORBIT_YAW_BEHAVIOUR] +uint8 ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TO_CIRCLE_CENTER = 0 # Vehicle front points to the center (default). +uint8 ORBIT_YAW_BEHAVIOUR_HOLD_INITIAL_HEADING = 1 # Vehicle front holds heading when message received. +uint8 ORBIT_YAW_BEHAVIOUR_UNCONTROLLED = 2 # Yaw uncontrolled. +uint8 ORBIT_YAW_BEHAVIOUR_HOLD_FRONT_TANGENT_TO_CIRCLE = 3 # Vehicle front follows flight path (tangential to circle). +uint8 ORBIT_YAW_BEHAVIOUR_RC_CONTROLLED = 4 # Yaw controlled by RC input. +uint8 ORBIT_YAW_BEHAVIOUR_UNCHANGED = 5 # Vehicle uses current yaw behaviour (unchanged). The vehicle-default yaw behaviour is used if this value is specified when orbit is first commanded. ``` ::: diff --git a/docs/zh/msg_docs/index.md b/docs/zh/msg_docs/index.md index 45396a8c42..8dce815202 100644 --- a/docs/zh/msg_docs/index.md +++ b/docs/zh/msg_docs/index.md @@ -173,7 +173,7 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m - [OrbTest](OrbTest.md) - [OrbTestLarge](OrbTestLarge.md) - [OrbTestMedium](OrbTestMedium.md) -- [OrbitStatus](OrbitStatus.md) — ORBIT_YAW_BEHAVIOUR. +- [OrbitStatus](OrbitStatus.md) — Orbit status. - [ParameterResetRequest](ParameterResetRequest.md) — ParameterResetRequest : Used by the primary to reset one or all parameter value(s) on the remote. - [ParameterSetUsedRequest](ParameterSetUsedRequest.md) — ParameterSetUsedRequest : Used by a remote to update the used flag for a parameter on the primary. - [ParameterSetValueRequest](ParameterSetValueRequest.md) — ParameterSetValueRequest : Used by a remote or primary to update the value for a parameter at the other end. diff --git a/docs/zh/peripherals/esc_motors.md b/docs/zh/peripherals/esc_motors.md index 17143455ef..62b4cc4050 100644 --- a/docs/zh/peripherals/esc_motors.md +++ b/docs/zh/peripherals/esc_motors.md @@ -9,18 +9,20 @@ PX4 supports a number of [common protocols](../esc/esc_protocols.md) for sending The following list is non-exhaustive. -| ESC Device | Protocols | Firmwares | 备注 | -| ------------------------------ | ------------------------------------ | ------------------------ | ----------------------------------------------------- | -| [ARK 4IN1 ESC] | [Dshot], [PWM] | [AM32] | Has versions with/without connectors | -| [Holybro Kotleta 20] | [DroneCAN], [PWM] | [PX4 Sapog ESC Firmware] | | -| [Vertiq Motor & ESC modules] | [Dshot], [OneShot], Multishot, [PWM] | Vertiq firmware | Larger modules support DroneCAN, ESC and Motor in one | -| [RaccoonLab CAN PWM ESC nodes] | [DroneCAN], Cyphal | | Cyphal and DroneCAN notes for PWM ESC | -| [VESC ESCs] | [DroneCAN], [PWM] | VESC project firmware | | -| [Zubax Telega] | [DroneCAN], [PWM] | Telega-based | ESC and Motor in one | +| ESC Device | Protocols | Firmwares | 备注 | +| ------------------------------ | ------------------------------------ | ------------------------ | ------------------------------------------------------------------------ | +| [ARK 4IN1 ESC] | [Dshot], [PWM] | [AM32] | Has versions with/without connectors | +| [Hiwonder 4Ch Encoder Motor] | I2C | | Brushed-DC, 4 channels with encoder feedback (rovers) | +| [Holybro Kotleta 20] | [DroneCAN], [PWM] | [PX4 Sapog ESC Firmware] | | +| [Vertiq Motor & ESC modules] | [Dshot], [OneShot], Multishot, [PWM] | Vertiq firmware | Larger modules support DroneCAN, ESC and Motor in one | +| [RaccoonLab CAN PWM ESC nodes] | [DroneCAN], Cyphal | | Cyphal and DroneCAN notes for PWM ESC | +| [VESC ESCs] | [DroneCAN], [PWM] | VESC project firmware | | +| [Zubax Telega] | [DroneCAN], [PWM] | Telega-based | ESC and Motor in one | [ARK 4IN1 ESC]: ../esc/ark_4in1_esc.md +[Hiwonder 4Ch Encoder Motor]: ../peripherals/hiwonder_emm.md [AM32]: https://am32.ca/ [PX4 Sapog ESC Firmware]: ../dronecan/sapog.md [VESC ESCs]: ../peripherals/vesc.md diff --git a/docs/zh/peripherals/hiwonder_emm.md b/docs/zh/peripherals/hiwonder_emm.md new file mode 100644 index 0000000000..c915a66c1f --- /dev/null +++ b/docs/zh/peripherals/hiwonder_emm.md @@ -0,0 +1,53 @@ +# Hiwonder 4-Channel Encoder Motor Module + +The [Hiwonder 4-Channel Encoder Motor Driver](https://www.hiwonder.com/products/4-channel-encoder-motor-driver) is a small I2C motor controller with integrated encoder feedback for up to four brushed DC motors. +It is well suited to small wheeled rovers (differential, ackermann, or mecanum) where size, weight, and a low channel count make a full-size ESC overkill. + +PX4 supports the board via the `hiwonder_emm` I2C driver. + +## 特性 + +- Four independent motor outputs with closed-loop speed control from on-board encoders. +- I2C interface (default address `0x34`, 400 kHz). +- Battery voltage telemetry of the supply rail powering the motor outputs. +- Selectable motor types (TT, N20, JGB37-520-12V-110RPM, or open-loop "no encoder"). + +## 购买渠道 + +- [Hiwonder — 4-Channel Encoder Motor Driver product page](https://www.hiwonder.com/products/4-channel-encoder-motor-driver) + +## 硬件安装 + +### 布线 + +Connect the four motors (with their encoder leads) to channels `M1`–`M4` on the EMM and supply the motor driver from a battery suitable for the motors used. +Wire the EMM's I2C bus (`SDA`, `SCL`, `GND`) to an external I2C port on the flight controller. +The driver is hard-coded to bus `1` (the first external I2C bus) at address `0x34`, which is the board default. + +:::info +The driver auto-detects the four channels but the motor type is selected in firmware. +The shipped default is `JGB37-520-12V-110RPM`; change [`HiwonderEMM.cpp`](https://github.com/PX4/PX4-Autopilot/blob/main/src/drivers/hiwonder_emm/HiwonderEMM.cpp) (`set_motor_type`) if you use a different model. +::: + +## Flight Controller Setup + +### Enable the Driver + +Set the [HIWONDER_EMM_EN](../advanced_config/parameter_reference.md#HIWONDER_EMM_EN) parameter to `1` and reboot. + +The driver is started automatically by the rover startup script ([`rc.rover`](https://github.com/PX4/PX4-Autopilot/blob/main/ROMFS/px4fmu_common/init.d/rc.rover)), which runs for every ackermann, differential, and mecanum airframe. +It is compiled into builds that enable `CONFIG_DRIVERS_HIWONDER_EMM` in the board configuration. + +### Actuator Allocation + +The driver exposes a four-channel output group with the `EMM` parameter prefix. +In [Actuator Configuration](../config/actuators.md), assign the rover wheel outputs (e.g. `Motor 1`, `Motor 2`, …) to channels `EMM 1`–`EMM 4` matching how the motors are wired to the EMM. + +The output range is fixed in firmware to `0..255` (the EMM's protocol range, internally mapped to a signed `[-128, 127]` speed command — `128` is stop, values below are reverse, values above are forward). +`EMM_DIS{i}` (disarmed) and `EMM_FAIL{i}` (failsafe) per-channel parameters are user-tunable in the standard range. + +## 更多信息 + +- Driver source: [`src/drivers/hiwonder_emm`](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/hiwonder_emm) +- [Actuator Configuration](../config/actuators.md) +- [无人车](../frames_rover/index.md) diff --git a/docs/zh/releases/1.17.md b/docs/zh/releases/1.17.md index 15d43c70d5..5c98719f64 100644 --- a/docs/zh/releases/1.17.md +++ b/docs/zh/releases/1.17.md @@ -13,122 +13,350 @@ const { site } = useData(); -This contains changes in PX4 v1.17 (since the last major release [PX v1.16](../releases/1.16.md)). +PX4 v1.17 builds on [PX4 v1.16](../releases/1.16.md), with the changes below landing since v1.16.2. +This release adds [Altitude Cruise](../flight_modes_mc/altitude_cruise.md) mode, improves Fixed Wing Takeoff behaviour on navigation loss, and exposes cleaner high-level fixed-wing and rover control interfaces for ROS 2 workflows. +The in-tree Zenoh middleware matures to `rmw_zenoh` compatibility, simulation gains Gazebo Jetty support and Ackermann SIH, and three new INS drivers (MicroStrain, sbgECom, EULER-NAV) join the ecosystem alongside Septentrio GNSS resilience reporting and barometer auto-calibration against GNSS height. +PX4 v1.17 also includes user-visible MAVLink, RC, logging, failsafe, and rover refinements across the stack. :::warning -PX4 v1.17 is in alpha/beta testing. -Update these notes with features that are going to be in PX4 v1.17 release. -New features that are not expected to go into the v1.17 release are in [PX4-Autopilot `main` Release Notes](../releases/main.md). +PX4 v1.17 is documented on an alpha/beta release branch. +See [PX4-Autopilot `main` Release Notes](../releases/main.md) for newer changes on `main`. ::: ## Read Before Upgrading -TBD … - Please continue reading for [upgrade instructions](#upgrade-guide). ## Major Changes -- TBD +- New multicopter flight mode: [Altitude Cruise](../flight_modes_mc/altitude_cruise.md). + Holds tilt and heading on stick release so the vehicle keeps cruising at a steady velocity instead of stopping like Altitude mode does. +- [Fixed Wing Takeoff mode](../flight_modes_fw/takeoff.md) now keeps climbing with level wings on navigation loss and can use the takeoff waypoint latitude and longitude to define the loiter position. + ([PX4-Autopilot#25226](https://github.com/PX4/PX4-Autopilot/pull/25226)) +- Fixed-wing vehicles (and VTOLs in fixed-wing mode) can now be controlled from ROS 2 via the new [`FwLateralLongitudinalSetpointType`](../ros2/px4_ros2_control_interface.md#fw-lateral-longitudinal-setpoint) in the PX4 ROS 2 Control Interface, exposing direct lateral and longitudinal setpoints. +- Rovers can now be controlled from ROS 2 via the new [`RoverSetpointTypes`](../ros2/px4_ros2_control_interface.md#rover-setpoints) in the PX4 ROS 2 Control Interface, with valid combinations of position, speed, throttle, attitude, rate, and steering setpoints exposed as guaranteed-valid setpoint types. See [Rovers Apps & API](../flight_modes_rover/api.md). +- The in-tree [Zenoh middleware](../middleware/zenoh.md) matures to `rmw_zenoh` compatibility (CDRv1 serialization, ROS 2 graph liveliness, auto-generated config from `dds_topics.yaml`, Domain ID parameter, Zenoh CLI). Zenoh is built into the default firmware on FMU-v6xRT (`make px4_fmu-v6xrt_default`); on FMU-v6x and SITL it ships as a `zenoh` build variant (`make px4_fmu-v6x_zenoh`, `make px4_sitl_zenoh`). +- Initial [MC Neural Network Control](../neural_networks/mc_neural_network_control.md) test path: PX4 v1.17 integrates [TensorFlow Lite Micro](../neural_networks/tflm.md) on-device so an externally trained network (for example trained with reinforcement learning in [Aerial Gym](https://ntnu-arl.github.io/aerial_gym_simulator/)) can be loaded as a tflite model and substituted for the multicopter controller for research and bench testing. It is not a replacement for the production controller stack. + ([PX4-Autopilot#24366](https://github.com/PX4/PX4-Autopilot/pull/24366)) ## Upgrade Guide +For users upgrading from v1.16, please take a moment to review the following before flying: + +1. **Re-check RC stick deadzones.** + The hardcoded 1 percent deadzone on RC channels 1 to 8 has been removed. If your transmitter has any centre-stick jitter, configure a per-channel deadzone explicitly via `RC_DZ` after upgrading, otherwise the vehicle may respond to small stick noise that v1.16 quietly ignored. + ([PX4-Autopilot#25502](https://github.com/PX4/PX4-Autopilot/pull/25502)) + +2. **Re-trim servos with the new `PWM_*_CENTER` parameters.** + The old `PWM_*_TRIM` servo trim parameters have been replaced by `PWM_*_CENTER` with asymmetric deflection. Trim values are not auto-migrated. Open the actuator configuration in QGC after upgrade and re-set the centre for each servo channel that previously used `PWM_*_TRIM`. + ([PX4-Autopilot#25897](https://github.com/PX4/PX4-Autopilot/pull/25897)) + +3. **Update your GCS or companion if it relies on MAVLink v1.** + [`MAV_PROTO_VER`](../advanced_config/parameter_reference.md#MAV_PROTO_VER) now defaults to `2`. MAVLink v1 is still available, but only as an explicit opt-in. If your ground station, telemetry radio, or companion computer link was implicitly relying on the v1 fallback, either update the GCS/companion to MAVLink v2 or set `MAV_PROTO_VER=1` on the affected channel. + ([PX4-Autopilot#25583](https://github.com/PX4/PX4-Autopilot/pull/25583)) + +4. **Migrate manual-control expo and deadzone parameters.** + `MPC_XY_MAN_EXPO`, `MPC_Z_MAN_EXPO`, and `MPC_YAW_MAN_EXPO` are removed and fall back to a fixed default. `MPC_HOLD_DZ` has been renamed to [`MAN_DEADZONE`](../advanced_config/parameter_reference.md#MAN_DEADZONE) and now applies globally across modes that allow a deadzone. If you previously tuned expo or hold deadzone, set [`MAN_DEADZONE`](../advanced_config/parameter_reference.md#MAN_DEADZONE) explicitly; expo customisation is no longer available. + +5. **Confirm barometer auto-calibration behaviour matches your setup.** + The new [`SENS_BAR_AUTOCAL`](../advanced_config/parameter_reference.md#SENS_BAR_AUTOCAL) parameter enables barometer offset calibration against GNSS height when GNSS is the height reference, and is **enabled by default**. This is the desired behaviour for typical outdoor flight; if you operate indoor or in heavily GNSS-degraded environments and want to keep baro offsets locked, disable `SENS_BAR_AUTOCAL`. + ([PX4-Autopilot#24859](https://github.com/PX4/PX4-Autopilot/pull/24859)) + +6. **Re-tune range finder range-aid if you depended on `EKF2_RNG_A_IGATE`.** + `EKF2_RNG_A_IGATE` has been removed as part of the EKF2 parameter-naming consistency refactor. Range-aid tuning now relies on the remaining `EKF2_RNG_A_*` parameters. The default [`EKF2_MIN_RNG`](../advanced_config/parameter_reference.md#EKF2_MIN_RNG) was also reduced from 0.1 m to 0.01 m. + ([PX4-Autopilot#25137](https://github.com/PX4/PX4-Autopilot/pull/25137), [PX4-Autopilot#25574](https://github.com/PX4/PX4-Autopilot/pull/25574)) + +7. **Verify magnetometer configuration.** + Magnetometer calibration is only allowed when at least one mag is available and enabled (priority not 0). If you previously disabled all mags via priority 0, you must enable at least one before running calibration. + ([PX4-Autopilot#25714](https://github.com/PX4/PX4-Autopilot/pull/25714)) + +8. **Check airframe selection.** + `SYS_AUTOSTART=0` is now treated the same as no valid airframe. If you relied on `SYS_AUTOSTART=0` for any custom workflow, select an explicit airframe. + ([PX4-Autopilot#25645](https://github.com/PX4/PX4-Autopilot/pull/25645)) + +9. **Update scripts and external tooling for renamed commander/termination interfaces.** + The `commander lockdown on` shell command is now `commander termination`. The `FORCE_FAILSAFE` action is now `TERMINATION`, and `manual_lockdown` is now `kill`. Update any startup scripts, test harnesses, or external tooling that calls these by name. + +10. **Migrate consumers of `battery_status.serial_number`.** + The `serial_number` field has moved from `battery_status` to a new `battery_info` uORB message. Any consumer (logger, GCS, companion software) reading the serial number from `battery_status` must subscribe to `battery_info` instead. + +11. **Remove `parameters_injected.xml` from custom build flows.** + `parameters_injected.xml` has been removed from the build system. If you maintained a board layer or downstream fork that referenced it, drop the reference. + ([PX4-Autopilot#25549](https://github.com/PX4/PX4-Autopilot/pull/25549)) + ## Other changes ### Hardware Support -- **[New Hardware]** boards: [MicoAir743-Lite FC](../flight_controller/micoair743-lite.md) -- **[New Hardware]** boards: [RadiolinkPIX6 FC](../flight_controller/radiolink_pix6.md) -- **[New Hardware]** boards: [AP-H743-R1 FC](../flight_controller/x-mav_ap-h743r1.md) +#### New Flight Controllers - +- [QGC Bootloader Update](../advanced_config/bootloader_update.md#qgc-bootloader-update-sys-bl-update) via the [`SYS_BL_UPDATE`](../advanced_config/parameter_reference.md#SYS_BL_UPDATE) parameter has been re-enabled after being broken for several releases. + ([PX4-Autopilot#25032](https://github.com/PX4/PX4-Autopilot/pull/25032)) +- Failsafe handling now lets the pilot take over from a degraded failsafe state. + ([PX4-Autopilot#26269](https://github.com/PX4/PX4-Autopilot/pull/26269)) +- Offboard to Position (hold) mode change is no longer entered without RC. + ([PX4-Autopilot#26391](https://github.com/PX4/PX4-Autopilot/pull/26391)) +- Motor failure detection uses more robust timeout checks. + ([PX4-Autopilot#25757](https://github.com/PX4/PX4-Autopilot/pull/25757)) +- New `battery_info` uORB message with serial number compatible with UAVCAN, MAVLink, and battery drivers; `battery_status.serial_number` is removed. +- UAVCAN battery: better remaining-time calculation ([PX4-Autopilot#25500](https://github.com/PX4/PX4-Autopilot/pull/25500)) and filter sample interval increased to 500 ms ([PX4-Autopilot#25454](https://github.com/PX4/PX4-Autopilot/pull/25454)). +- Battery instances are capped at 3 (loggable batteries also raised to 3). +- Remaining-flight-time failsafe disabled by default. ### Control - - -- [MC Neural Network Module](../advanced/neural_networks.md) +- Servo PWM gains center setting and asymmetric deflection (`PWM_*_CENTER`). + ([PX4-Autopilot#25897](https://github.com/PX4/PX4-Autopilot/pull/25897)) +- PWM center support extended to wheel and gimbal actuators. + ([PX4-Autopilot#26211](https://github.com/PX4/PX4-Autopilot/pull/26211)) +- Configurable board PWM frequency from Kconfig. + ([PX4-Autopilot#24787](https://github.com/PX4/PX4-Autopilot/pull/24787)) +- DShot telemetry refactored to the platform serial abstraction with RX/TX pin-swap support. +- UAVCAN ESC initialization no longer publishes random values when stopped. + ([PX4-Autopilot#25485](https://github.com/PX4/PX4-Autopilot/pull/25485)) +- UAVCAN bootloader watchdog pet during long flashes. + ([PX4-Autopilot#25523](https://github.com/PX4/PX4-Autopilot/pull/25523)) +- Control allocator enabled for spacecraft on v6x. + ([PX4-Autopilot#25276](https://github.com/PX4/PX4-Autopilot/pull/25276)) ### Estimation -- TBD +- [Barometer auto-calibration](../advanced_config/parameter_reference.md#SENS_BAR_AUTOCAL) can calibrate offsets against GNSS height when GNSS is the height reference, enabled by default. + ([PX4-Autopilot#24859](https://github.com/PX4/PX4-Autopilot/pull/24859)) +- Septentrio GNSS resilience reporting (jamming, spoofing, authentication state) is now exposed in PX4. + ([PX4-Autopilot#25012](https://github.com/PX4/PX4-Autopilot/pull/25012)) +- EKF2 GPS checks include a GPS fix type validation bit. + ([PX4-Autopilot#25215](https://github.com/PX4/PX4-Autopilot/pull/25215)) +- EKF2 GNSS aiding: dedicated `gnss_fault` flag added to `EstimatorStatusFlags`; lat/lon/vel fusion is disabled on `gnss_hgt_fault`; hysteresis added for re-enabling fusion; GNSS-based altitude reset is suppressed in dead-reckoning mode. +- EKF2 range fusion: skip unhealthy samples while respecting timeout ([PX4-Autopilot#25634](https://github.com/PX4/PX4-Autopilot/pull/25634)); reject bad measurements during `bad_acc_vertical` ([PX4-Autopilot#25636](https://github.com/PX4/PX4-Autopilot/pull/25636)). +- EKF2 mag: post-takeoff yaw reset is never skipped; mag heading and declination updates no longer perturb the xy gyro biases. +- EKF2 gravity: tilt alignment accelerated; gravity fusion start now uses an accel low-pass instead of peak hold. +- EKF2 airspeed/wind: distinguish airspeed source so wind dead-reckoning logic can use a synthetic airspeed. +- External heading update via `MAV_CMD_EXTERNAL_ATTITUDE_ESTIMATE` is now consumed by EKF2. +- RTCM telemetry stream now also published for UAVCAN GNSS receivers. + ([PX4-Autopilot#25315](https://github.com/PX4/PX4-Autopilot/pull/25315)) +- EKF2 GNSS reset improvements. + ([PX4-Autopilot#25297](https://github.com/PX4/PX4-Autopilot/pull/25297)) - +- Added [MicroStrain Inertial Sensors](../sensor/microstrain.md) driver support. + ([PX4-Autopilot#23858](https://github.com/PX4/PX4-Autopilot/pull/23858)) +- [MicroStrain Inertial Sensors](../sensor/microstrain.md) gain expanded aiding support. + ([PX4-Autopilot#25673](https://github.com/PX4/PX4-Autopilot/pull/25673)) +- Added [sbgECom INS driver](../sensor/sbgecom.md). + ([PX4-Autopilot#24137](https://github.com/PX4/PX4-Autopilot/pull/24137)) +- Added EULER-NAV Baro-Inertial AHRS driver. + ([PX4-Autopilot#24534](https://github.com/PX4/PX4-Autopilot/pull/24534)) +- Added QMC5883P compass driver. + ([PX4-Autopilot#25115](https://github.com/PX4/PX4-Autopilot/pull/25115)) +- Added ICM42688P IMU support on the Mamba F405 MK2 V2. + ([PX4-Autopilot#25047](https://github.com/PX4/PX4-Autopilot/pull/25047)) +- Added LightWare SF30/d binary protocol. + ([PX4-Autopilot#25570](https://github.com/PX4/PX4-Autopilot/pull/25570)) +- Airspeed calibration only saves the offset when the full procedure succeeds. + ([PX4-Autopilot#25412](https://github.com/PX4/PX4-Autopilot/pull/25412)) +- AirspeedSelector adds a synthetic airspeed option. +- IMU gyro: default angular-acceleration filter lowered from 30 Hz to 20 Hz. ### 仿真 -- Overhaul rover simulation: - - Add synthetic differential rover model: [PX4-gazebo-models#107](https://github.com/PX4/PX4-gazebo-models/pull/107) - - Add synthetic mecanum rover model: [PX4-gazebo-models#113](https://github.com/PX4/PX4-gazebo-models/pull/113) - - Update synthetic ackermann rover model: [PX4-gazebo-models#117](https://github.com/PX4/PX4-gazebo-models/pull/117) +#### Gazebo -- [Simulation-in-Hardware (SIH)](../sim_sih/index.md#supported-vehicle-types) - - New simulation: MC Hexacopter X - - New simulation: Ackermann Rover +- Gazebo CMake linking is now version-agnostic across `gz-transport`, `gz-sim`, `gz-sensors`, and `gz-plugin`, removing the hard pin to Harmonic in the build glue. Harmonic remains the supported, CI-tested version; building against newer Gazebo releases (e.g. Jetty / v15) is up to the developer to install and verify locally. + ([PX4-Autopilot#25521](https://github.com/PX4/PX4-Autopilot/pull/25521)) +- [Rover simulation](../frames_rover/index.md#simulation) updated to match the current rover-control architecture. + ([PX4-Autopilot#25644](https://github.com/PX4/PX4-Autopilot/pull/25644)) +- Gazebo bridge sensors can be selectively disabled. + ([PX4-Autopilot#25484](https://github.com/PX4/PX4-Autopilot/pull/25484)) +- Gimbal yaw fix and DDS attitude publisher in the Gazebo bridge. + ([PX4-Autopilot#25754](https://github.com/PX4/PX4-Autopilot/pull/25754)) +- `PX4_GZ_MODEL_POSE` for custom spawn pose. + ([PX4-Autopilot#24956](https://github.com/PX4/PX4-Autopilot/pull/24956)) +- Updated Gazebo 24.04 documentation. + ([PX4-Autopilot#25586](https://github.com/PX4/PX4-Autopilot/pull/25586)) + +#### Simulation-in-Hardware (SIH) + +- [SIH](../sim_sih/index.md#supported-vehicle-types) now supports Hexacopter X and Ackermann rovers. + ([PX4-Autopilot#25194](https://github.com/PX4/PX4-Autopilot/pull/25194), [PX4-Autopilot#25405](https://github.com/PX4/PX4-Autopilot/pull/25405)) +- HITL/SIH battery status now driven by battery configuration parameters. + ([PX4-Autopilot#24103](https://github.com/PX4/PX4-Autopilot/pull/24103)) ### Debug & Logging -- TBD +- `AirspeedValidated` promoted to a standard uORB topic. + ([PX4-Autopilot#25579](https://github.com/PX4/PX4-Autopilot/pull/25579)) +- `upload_log.py` can target a custom upload server via CLI argument. + ([PX4-Autopilot#25702](https://github.com/PX4/PX4-Autopilot/pull/25702)) +- ULog tooling can recover UTC timestamps even when `sensor_gps` is not present. + ([PX4-Autopilot#25534](https://github.com/PX4/PX4-Autopilot/pull/25534)) +- UAVCAN node status is now logged to uORB for debugging. + ([PX4-Autopilot#23890](https://github.com/PX4/PX4-Autopilot/pull/23890)) +- ULog file format documentation expanded. + ([PX4-Autopilot#25624](https://github.com/PX4/PX4-Autopilot/pull/25624)) -### Ethernet +### ROS 2 / uXRCE-DDS -- TBD +- [PX4 ROS 2 Control Interface](../ros2/px4_ros2_control_interface.md) support for [Fixed Wing lateral and longitudinal setpoint](../ros2/px4_ros2_control_interface.md#fw-lateral-longitudinal-setpoint) and [VTOL transitions](../ros2/px4_ros2_control_interface.md#controlling-a-vtol). +- [Simple index-based namespace (`UXRCE_DDS_NS_IDX`)](../middleware/uxrce_dds.md#customizing-the-namespace) for uXRCE-DDS. + ([PX4-Autopilot#25444](https://github.com/PX4/PX4-Autopilot/pull/25444)) +- Namespace support for the uXRCE-DDS client during firmware upload. + ([PX4-Autopilot#25291](https://github.com/PX4/PX4-Autopilot/pull/25291)) +- New DDS topics: `TransponderReport` (ADS-B) ([PX4-Autopilot#25652](https://github.com/PX4/PX4-Autopilot/pull/25652)), `landing_gear` command from external modes ([PX4-Autopilot#25496](https://github.com/PX4/PX4-Autopilot/pull/25496)), `Wind` topic with 1 Hz rate limit, gimbal device attitude status, and FW high-level setpoint/configuration interfaces. -### uXRCE-DDS / Zenoh / ROS2 +### ROS 2 / Zenoh -- [PX4 ROS 2 Interface Library](../ros2/px4_ros2_control_interface.md) support for [Fixed Wing lateral/longitudinal setpoint](../ros2/px4_ros2_control_interface.md#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype) (`FwLateralLongitudinalSetpointType`) and [VTOL transitions](../ros2/px4_ros2_control_interface.md#controlling-a-vtol). ([PX4-Autopilot#24056](https://github.com/PX4/PX4-Autopilot/pull/24056)). -- [UXRCE_DDS: Simple index based namespace (UXRCE_DDS_NS_IDX)](../middleware/uxrce_dds.md#customizing-the-namespace) -- [Zenoh (PX4 ROS 2 rmw_zenoh)](../middleware/zenoh.md) + + +The in-tree [Zenoh middleware](../middleware/zenoh.md) (added in v1.16) matures toward `rmw_zenoh` compatibility in v1.17. Most of this work landed as direct commits without PR numbers; the following list groups it by area: + +- **rmw_zenoh compatibility**: implement `rmw_zenoh` features in the Zenoh module, move ROS 2 Rmw attachment code to `rmw_attachment.h`, switch to CDRv1 to match ROS 2, set transport lease to 60 s to match ROS 2, omit timestamp attachment, experimental liveliness so the ROS 2 graph works. +- **Configuration and CLI**: auto-generate default Zenoh config from `dds_topics.yaml`, new Domain ID parameter (and move `gid` into Zenoh), Zenoh CLI improvements, instance selection and pub/sub deletion, copy the uXRCE config layout for Zenoh. +- **Boards**: Zenoh is now built into the default firmware on `px4/fmu-v6xrt` (`make px4_fmu-v6xrt_default`). On `px4/fmu-v6x` and SITL it ships as an opt-in `zenoh` build variant (`make px4_fmu-v6x_zenoh`, `make px4_sitl_zenoh`); the same opt-in `zenoh.px4board` is also provided for `auterion/fmu-v6s` and `auterion/fmu-v6x`. Zenoh is additionally compiled in by default on `nxp/mr-canhubk3`, `nxp/mr-tropic`, and `nxp/tropic-community`. +- **NuttX support**: update NuttX config for use with Zenoh; backport NuttX FMU-v6x config for Zenoh ([PX4-Autopilot#26213](https://github.com/PX4/PX4-Autopilot/pull/26213)). +- **SITL**: new `px4_sitl_zenoh` cmake variant, default to `127.0.0.1` on SITL/POSIX, autostart Zenoh in SITL when enabled, friendlier error message when scouting finds nothing, GCC/SITL compile fixes. +- **Robustness**: validate payload size before stack allocation, increase CDR safety margin, handle parsing errors and non-existing types in config, fix topic-name and datatype mapping, pubsub-factory datatype-naming fix, fix status `keyexpr` printf, prevent integer-conversion warnings in zenoh-pico, optimize memory usage with optional publish-on-matching. +- **Docs and OOM fixes (backport)**: [PX4-Autopilot#26053](https://github.com/PX4/PX4-Autopilot/pull/26053). +- **Submodule**: `zenoh-pico` updated. ### MAVLink -- TBD - - +- New multicopter flight mode: [Altitude Cruise](../flight_modes_mc/altitude_cruise.md). Like Altitude mode, but when the roll/pitch/yaw sticks are released the vehicle holds the current tilt and heading (rather than returning to level), letting it cruise at a steady velocity without constant stick input. Intended for long-distance flights where the same tilt is held for an extended period. The manual-control-loss failsafe can optionally be disabled for this mode by setting the corresponding bit in [`COM_RCL_EXCEPT`](../advanced_config/parameter_reference.md#COM_RCL_EXCEPT); when doing so, configure the data-link-loss failsafe via [`NAV_DLL_ACT`](../advanced_config/parameter_reference.md#NAV_DLL_ACT) to avoid fly-aways. +- Stick library refactored: globally available, getter-based, expo computed on getter call; `FixedWingModeManager` now uses the Sticks library. +- Orbit mode: configurable max speed replaces the 10 m/s hardcode ([PX4-Autopilot#25192](https://github.com/PX4/PX4-Autopilot/pull/25192)) and `HeadingSmoothing` is applied to avoid step changes during the approach; documentation clarified ([PX4-Autopilot#25208](https://github.com/PX4/PX4-Autopilot/pull/25208)). +- MC PositionControl: switch out of goto setpoint immediately when receiving `trajectory_setpoint`. +- Hexarotor X added to SIH and to `ActuatorEffectivenessRotorsTest`. +- `MC_RATE*` parameter metadata unified. + ([PX4-Autopilot#25133](https://github.com/PX4/PX4-Autopilot/pull/25133)) ### 垂直起降 -- TBD +- Fixed VTOL stuck after back-transition in Mission Fast RTL. +- VTOL takeoff requires relaxed position only during the fixed-wing phase; on completion of takeoff, the state is forced to Loiter. +- VTOL airspeed measurement handling centralized. +- [PX4 ROS 2 Control Interface](../ros2/px4_ros2_control_interface.md#controlling-a-vtol) can command VTOL transitions from external modes. ### Fixed-wing -- [Fixed Wing Takeoff mode](../flight_modes_fw/takeoff.md) will now keep climbing with level wings on position loss. - A target takeoff waypoint can be set to control takeoff course and loiter altitude. ([PX4-Autopilot#25083](https://github.com/PX4/PX4-Autopilot/pull/25083)). -- Automatically suppress angular rate oscillations using [Gain compression](../features_fw/gain_compression.md). ([PX4-Autopilot#25840: FW rate control: add gain compression algorithm](https://github.com/PX4/PX4-Autopilot/pull/25840)) +- [Fixed Wing Takeoff mode](../flight_modes_fw/takeoff.md) keeps climbing with level wings on navigation loss and can use the takeoff waypoint latitude and longitude to define the loiter position. + ([PX4-Autopilot#25226](https://github.com/PX4/PX4-Autopilot/pull/25226)) +- Reworked fixed-wing high-level control exposes clean lateral and longitudinal control interfaces for external integrations. +- FW Attitude Controller wheel controller rework. +- FW Autotune: identification maneuver auto-ramps the 1 Hz amplitude until R/P/Y rates of 0.8/0.5/0.5 rad/s are reached, then scales the identification signal accordingly. +- TECS hardening: NaN protection on airspeed and altitude inputs. ### 无人车 -- Removed deprecated rover module ([PX4-Autopilot#25054](https://github.com/PX4/PX4-Autopilot/pull/25054)). -- Add support for [Apps & API](../flight_modes_rover/api.md) including [Rover Setpoints](../ros2/px4_ros2_control_interface.md#rover-setpoints) ([PX4-Autopilot#25074](https://github.com/PX4/PX4-Autopilot/pull/25074), [PX4-ROS2-Interface-Lib#140](https://github.com/Auterion/px4-ros2-interface-lib/pull/140)). -- Update [rover simulation](../frames_rover/index.md#simulation) ([PX4-Autopilot#25644](https://github.com/PX4/PX4-Autopilot/pull/25644)) (see [Simulation](#simulation) release note for details). +- Removed deprecated rover module. +- Added [Apps & API](../flight_modes_rover/api.md) support including [Rover Setpoints](../ros2/px4_ros2_control_interface.md#rover-setpoints). +- [Rover simulation](../frames_rover/index.md#simulation) updated to match the reworked rover architecture. + ([PX4-Autopilot#25644](https://github.com/PX4/PX4-Autopilot/pull/25644)) +- Continued per-vehicle (Ackermann/differential/mecanum) restructuring with separated actuator control, position-control updates, mode-management centralization, and module split into folders. +- New stick-input scaling parameters. + ([PX4-Autopilot#25427](https://github.com/PX4/PX4-Autopilot/pull/25427)) +- Improved rover hold-position logic. + ([PX4-Autopilot#25466](https://github.com/PX4/PX4-Autopilot/pull/25466)) +- `RX_MAX_THR_YAW_R` replaced by `RO_YAW_RATE_CORR`. +- Manual yaw-rate input: exponential scaling. +- Comprehensive [Rover API documentation](../flight_modes_rover/api.md). + ([PX4-Autopilot#25499](https://github.com/PX4/PX4-Autopilot/pull/25499)) +- MR-CANHUBK344 NXP B3RB rover platform. + ([PX4-Autopilot#23897](https://github.com/PX4/PX4-Autopilot/pull/23897)) +- Aion Robotics R1 Rover airframe (`50001`) marked discontinued. -### ROS 2 +### Safety / Commander -- TBD +- Failure injection refactored into its own class; `failure motor off -i ` now requires `CA_FAILURE_MODE` to be set. See [motor failure injection and detection](../debug/failure_injection.md). + ([PX4-Autopilot#25756](https://github.com/PX4/PX4-Autopilot/pull/25756)) +- Naming for clarity: `FORCE_FAILSAFE` renamed to `TERMINATION`; `commander lockdown on` renamed to `commander termination`; `manual_lockdown` renamed to `kill`; `ACTION_TERMINATE` renamed to `ACTION_TERMINATION`. +- New RC termination switch with PWM-input default for ATS-based flight termination. + ([PX4-Autopilot#25209](https://github.com/PX4/PX4-Autopilot/pull/25209)) +- Commander never overrides a user-intended termination (with unit test). +- Remaining-flight-time failsafe disabled by default. +- Home position is not reset if landed during an uncompleted mission. + ([PX4-Autopilot#24902](https://github.com/PX4/PX4-Autopilot/pull/24902)) +- Off-track mission landing fix. + ([PX4-Autopilot#25725](https://github.com/PX4/PX4-Autopilot/pull/25725)) + +### Infrastructure + +- `parameters_injected.xml` removed from the build system. + ([PX4-Autopilot#25549](https://github.com/PX4/PX4-Autopilot/pull/25549)) +- [QGC Bootloader Update](../advanced_config/bootloader_update.md#qgc-bootloader-update-sys-bl-update) via `SYS_BL_UPDATE` restored. + ([PX4-Autopilot#25032](https://github.com/PX4/PX4-Autopilot/pull/25032)) +- NuttX submodule updates: dcache fix and semaphore-holder-list fix. +- ITCM checker added in CI; ITCM mapping updated for v6xRT and Tropic-Community. +- Flash savings on KakuteH7 encrypted-logs variants and on selected ARK targets. +- Spacecraft tooling for Commander and `VehicleStatus`. + ([PX4-Autopilot#24716](https://github.com/PX4/PX4-Autopilot/pull/24716)) diff --git a/docs/zh/releases/main.md b/docs/zh/releases/main.md index 7673ba4748..965fe51fd3 100644 --- a/docs/zh/releases/main.md +++ b/docs/zh/releases/main.md @@ -53,6 +53,7 @@ Please continue reading for [upgrade instructions](#upgrade-guide). ### 安全 - Rotary-wing vehicles now support uncommanded altitude loss detection: if the vehicle descends more than [FD_ALT_LOSS](../advanced_config/parameter_reference.md#FD_ALT_LOSS) meters below its setpoint in altitude-controlled flight, flight termination (and parachute deployment) is triggered. See [Altitude Loss Trigger](../config/safety.md#altitude-loss-trigger). ([PX4-Autopilot#26837](https://github.com/PX4/PX4-Autopilot/pull/26837)) +- [GNSS check failsafe](../config/safety.md#gnss-check-failsafe): new failsafe that monitors the number of usable GNSS receivers with a 3D fix and their position consistency. The required number of receivers is set via [SYS_HAS_NUM_GNSS](../advanced_config/parameter_reference.md#SYS_HAS_NUM_GNSS) and the failsafe action via [COM_GNSSLOSS_ACT](../advanced_config/parameter_reference.md#COM_GNSSLOSS_ACT). ([PX4-Autopilot#26863](https://github.com/PX4/PX4-Autopilot/pull/26863)) ### Estimation @@ -96,13 +97,14 @@ Please continue reading for [upgrade instructions](#upgrade-guide). ### MAVLink -- TBD +- Removed support for deprecated request commands `MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES`, `MAV_CMD_REQUEST_PROTOCOL_VERSION`, `MAV_CMD_GET_HOME_POSITION`, `MAV_CMD_REQUEST_FLIGHT_INFORMATION`, `MAV_CMD_REQUEST_STORAGE_INFORMATION` (Replaced by `MAV_CMD_REQUEST_MESSAGE`). + ([PX4-Autopilot#27251: fix(mavlink): Remove deprecated MAV_CMD_REQUEST_AUTOPILOT_CAPABILITIES](https://github.com/PX4/PX4-Autopilot/pull/27251), [PX4-Autopilot#27252: fix(mavlink): Remove legacy mavlink message requestors#27252](https://github.com/PX4/PX4-Autopilot/pull/27252)) ### RC diff --git a/docs/zh/ros2/px4_ros2_control_interface.md b/docs/zh/ros2/px4_ros2_control_interface.md index a2e583436e..8e1d33f62f 100644 --- a/docs/zh/ros2/px4_ros2_control_interface.md +++ b/docs/zh/ros2/px4_ros2_control_interface.md @@ -351,7 +351,7 @@ private: 以下章节提供了支持的设置点类型列表: - [MulticopterGotoSetpointType](#go-to-setpoint-multicoptergotosetpointtype): 平滑的位置控制以及(可选的)航向控制 -- [FwLateralLongitudinalSetpointType](#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype): Direct control of lateral and longitudinal fixed wing dynamics +- [FwLateralLongitudinalSetpointType](#fw-lateral-longitudinal-setpoint): Direct control of lateral and longitudinal fixed wing dynamics - [DirectActuatorsSetpointType](#direct-actuator-control-setpoint-directactuatorssetpointtype):直接控制发动机和飞行地面servo setpoints - [Rover Setpoints](#rover-setpoints): Direct access to rover control setpoints (Position, Speed, Attitude, Rate, Throttle and Steering). @@ -418,7 +418,7 @@ _goto_setpoint->update( max_heading_rate_rad_s); ``` -#### 固定翼横向与纵向设定值(FwLateralLongitudinalSetpointType,固定翼横向纵向设定值类型) +#### Fixed-Wing Lateral and Longitudinal Setpoint (FwLateralLongitudinalSetpointType) {#fw-lateral-longitudinal-setpoint} @@ -601,7 +601,7 @@ _fw_lateral_longitudinal_setpoint->update(setpoint_s, config_s); 要在外部飞行模式下控制VTOL,需确保根据当前飞行配置返回正确的设定值类型: - 多旋翼模式:使用与多旋翼控制兼容的设定值类型。 例如:要么[`MulticopterGotoSetpointType`](#go-to-setpoint-multicoptergotosetpointtype)要么[`TrajectorySetpointType`](https://auterion.github.io/px4-ros2-interface-lib/classpx4__ros2_1_1TrajectorySetpointType.html)。 -- 固定翼形模式:使用 [`FwLateralLongitudinalSetpointType`](#fixed-wing-lateral-and-longitudinal-setpoint-fwlaterallongitudinalsetpointtype)。 +- Fixed-wing mode: Use the [`FwLateralLongitudinalSetpointType`](#fw-lateral-longitudinal-setpoint). 只要VTOL在整个外部模式期间始终处于多旋翼模式或固定翼模式中的任意一种,就无需额外处理。 diff --git a/docs/zh/sim_gazebo_gz/index.md b/docs/zh/sim_gazebo_gz/index.md index 7bd3f71795..260f1bd0df 100644 --- a/docs/zh/sim_gazebo_gz/index.md +++ b/docs/zh/sim_gazebo_gz/index.md @@ -303,6 +303,15 @@ where `ARGS` is a list of environment variables including: - `PX4_GZ_FOLLOW_OFFSET_X`, `PX4_GZ_FOLLOW_OFFSET_Y`, `PX4_GZ_FOLLOW_OFFSET_Z`: Set the relative offset of the follow camera to the vehicle. +- `PX4_NET_INTERFACE`: + Binds all MAVLink connections to a specific network interface (e.g., `eth0`). + Useful for containerized environments or multi-NIC systems. + See [Environment Configuration](../simulation/index.md#environment-configuration) for more information. + +:::info +See [Simulation > Environment Configuration](../simulation/index.md#environment-configuration) for simulation environment variables that are common to all simulators. +::: + The PX4 Gazebo worlds and models databases [can be found on GitHub here](https://github.com/PX4/PX4-gazebo-models). :::info diff --git a/docs/zh/simulation/index.md b/docs/zh/simulation/index.md index 229f691c6b..7e334548d7 100644 --- a/docs/zh/simulation/index.md +++ b/docs/zh/simulation/index.md @@ -244,6 +244,52 @@ See [System Startup](../concept/system_startup.md) for more information. [Simulate Failsafes](../simulation/failsafes.md) explains how to trigger safety failsafes like GPS failure and battery drain. +### Environment Configuration + +SITL simulation behaviour can be configured using the following environment variables. +These can be specified inline, before the `make` command, or set for the environment using `export`. + +:::info +For Gazebo-specific environment variables (such as `PX4_GZ_WORLD`, `PX4_GZ_STANDALONE`, etc.), see [Gazebo > Usage/Configuration Options](../sim_gazebo_gz/index.md#usage-configuration-options). +::: + +- `PX4_SIM_SPEED_FACTOR`: + Sets the speed factor to run the simulation at faster or slower than realtime. + For example, to run Gazebo simulation at two times the speed factor: + + ```sh + PX4_SIM_SPEED_FACTOR=2 make px4_sitl gz_x500 + ``` + + For more information see [Run Simulation Faster than Realtime](#simulation_speed). + +- `PX4_PARAM_{name}={value}`: + Overrides any [PX4 parameter](../advanced_config/parameter_reference.md) for the simulation session. + For example, to switch from EKF2 to the attitude estimator: + + ```sh + export PX4_PARAM_EKF2_EN=0 + export PX4_PARAM_ATT_EN=1 + ``` + +- `PX4_NET_INTERFACE`: + Binds all MAVLink connections to a specific network interface (e.g. `eth0`). + This is useful when running simulations in containerized environments (e.g. Docker) or on systems with multiple network interfaces where you need MAVLink traffic to use a particular interface. + + ```sh + export PX4_NET_INTERFACE=eth0 + make px4_sitl gz_x500 + ``` + + Or inline with the make command: + + ```sh + PX4_NET_INTERFACE=eth0 make px4_sitl gz_x500 + ``` + + This sets the `-n` flag on all `mavlink start` commands in [/ROMFS/px4fmu_common/init.d-posix/px4-rc.mavlink](https://github.com/PX4/PX4-Autopilot/blob/main/ROMFS/px4fmu_common/init.d-posix/px4-rc.mavlink), binding MAVLink to the specified interface. + When `PX4_NET_INTERFACE` is not set, MAVLink binds to all interfaces (default behaviour). + ## HITL 仿真环境 硬件在环仿真(HITL)模式下标准的 PX4 固件在真实的硬件上运行。 diff --git a/docs/zh/simulation/px4_simulation_quickstart.md b/docs/zh/simulation/px4_simulation_quickstart.md index 7a314741f4..7ec00833d0 100644 --- a/docs/zh/simulation/px4_simulation_quickstart.md +++ b/docs/zh/simulation/px4_simulation_quickstart.md @@ -12,12 +12,24 @@ That's it — open [QGroundControl](https://qgroundcontrol.com) and fly! ::: tip -To try [other vehicle types](../sim_sih/#supported-vehicle-types) append the corresponding line below to the command: +To try [other vehicle types](../sim_sih/#supported-vehicle-types), use the `-e` flag to pass the `PX4_SIM_MODEL` environment variable to the `docker run` command: + +Plane ```sh --e PX4_SIM_MODEL=sihsim_airplane # Plane --e PX4_SIM_MODEL=sihsim_standard_vtol # Standard VTOL --e PX4_SIM_MODEL=sihsim_rover # Ackermann rover +docker run --rm -it -p 14550:14550/udp -e PX4_SIM_MODEL=sihsim_airplane px4io/px4-sitl:latest +``` + +标准垂起固定翼 + +```sh +docker run --rm -it -p 14550:14550/udp -e PX4_SIM_MODEL=sihsim_standard_vtol px4io/px4-sitl:latest +``` + +Ackermann rover + +```sh +docker run --rm -it -p 14550:14550/udp -e PX4_SIM_MODEL=sihsim_rover px4io/px4-sitl:latest ``` For more information and options see [Container Images](../simulation/px4_sitl_prebuilt_packages.md#container-images) (in _Pre-built SITL Packages_) and [SIH Simulation](../sim_sih/index.md).