diff --git a/docs/en/middleware/dds_topics.md b/docs/en/middleware/dds_topics.md new file mode 100644 index 0000000000..3002ab6ad3 --- /dev/null +++ b/docs/en/middleware/dds_topics.md @@ -0,0 +1,276 @@ +# dds_topics.yaml — PX4 Topics Exposed to ROS 2 + +::: info +This document is [auto-generated](https://github.com/PX4/PX4-Autopilot/blob/main/Tools/msg/generate_msg_docs.py) from the source code. +::: + + +The [dds_topics.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml) file specifies which uORB message definitions are compiled into the [uxrce_dds_client](../modules/modules_system.md#uxrce-dds-client) module when [PX4 is built](../middleware/uxrce_dds.md#code-generation), and hence which topics are available for ROS 2 applications to subscribe or publish (by default). + +This document shows a markdown-rendered version of [dds_topics.yaml](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/uxrce_dds_client/dds_topics.yaml), listing the publications, subscriptions, and so on. + +## Publications + +Topic | Type| Rate Limit +--- | --- | --- +`/fmu/out/register_ext_component_reply` | [px4_msgs::msg::RegisterExtComponentReply](../msg_docs/RegisterExtComponentReply.md) | +`/fmu/out/arming_check_request` | [px4_msgs::msg::ArmingCheckRequest](../msg_docs/ArmingCheckRequest.md) | 5.0 +`/fmu/out/mode_completed` | [px4_msgs::msg::ModeCompleted](../msg_docs/ModeCompleted.md) | 50.0 +`/fmu/out/battery_status` | [px4_msgs::msg::BatteryStatus](../msg_docs/BatteryStatus.md) | 1.0 +`/fmu/out/collision_constraints` | [px4_msgs::msg::CollisionConstraints](../msg_docs/CollisionConstraints.md) | 50.0 +`/fmu/out/estimator_status_flags` | [px4_msgs::msg::EstimatorStatusFlags](../msg_docs/EstimatorStatusFlags.md) | 5.0 +`/fmu/out/failsafe_flags` | [px4_msgs::msg::FailsafeFlags](../msg_docs/FailsafeFlags.md) | 5.0 +`/fmu/out/manual_control_setpoint` | [px4_msgs::msg::ManualControlSetpoint](../msg_docs/ManualControlSetpoint.md) | 25.0 +`/fmu/out/message_format_response` | [px4_msgs::msg::MessageFormatResponse](../msg_docs/MessageFormatResponse.md) | +`/fmu/out/position_setpoint_triplet` | [px4_msgs::msg::PositionSetpointTriplet](../msg_docs/PositionSetpointTriplet.md) | 5.0 +`/fmu/out/sensor_combined` | [px4_msgs::msg::SensorCombined](../msg_docs/SensorCombined.md) | +`/fmu/out/timesync_status` | [px4_msgs::msg::TimesyncStatus](../msg_docs/TimesyncStatus.md) | 10.0 +`/fmu/out/vehicle_land_detected` | [px4_msgs::msg::VehicleLandDetected](../msg_docs/VehicleLandDetected.md) | 5.0 +`/fmu/out/vehicle_attitude` | [px4_msgs::msg::VehicleAttitude](../msg_docs/VehicleAttitude.md) | +`/fmu/out/vehicle_control_mode` | [px4_msgs::msg::VehicleControlMode](../msg_docs/VehicleControlMode.md) | 50.0 +`/fmu/out/vehicle_command_ack` | [px4_msgs::msg::VehicleCommandAck](../msg_docs/VehicleCommandAck.md) | +`/fmu/out/vehicle_global_position` | [px4_msgs::msg::VehicleGlobalPosition](../msg_docs/VehicleGlobalPosition.md) | 50.0 +`/fmu/out/vehicle_gps_position` | [px4_msgs::msg::SensorGps](../msg_docs/SensorGps.md) | 50.0 +`/fmu/out/vehicle_local_position` | [px4_msgs::msg::VehicleLocalPosition](../msg_docs/VehicleLocalPosition.md) | 50.0 +`/fmu/out/vehicle_odometry` | [px4_msgs::msg::VehicleOdometry](../msg_docs/VehicleOdometry.md) | +`/fmu/out/vehicle_status` | [px4_msgs::msg::VehicleStatus](../msg_docs/VehicleStatus.md) | 5.0 +`/fmu/out/airspeed_validated` | [px4_msgs::msg::AirspeedValidated](../msg_docs/AirspeedValidated.md) | 50.0 +`/fmu/out/vtol_vehicle_status` | [px4_msgs::msg::VtolVehicleStatus](../msg_docs/VtolVehicleStatus.md) | +`/fmu/out/home_position` | [px4_msgs::msg::HomePosition](../msg_docs/HomePosition.md) | 5.0 + +## Subscriptions + +Topic | Type +--- | --- +/fmu/in/register_ext_component_request | [px4_msgs::msg::RegisterExtComponentRequest](../msg_docs/RegisterExtComponentRequest.md) +/fmu/in/unregister_ext_component | [px4_msgs::msg::UnregisterExtComponent](../msg_docs/UnregisterExtComponent.md) +/fmu/in/config_overrides_request | [px4_msgs::msg::ConfigOverrides](../msg_docs/ConfigOverrides.md) +/fmu/in/arming_check_reply | [px4_msgs::msg::ArmingCheckReply](../msg_docs/ArmingCheckReply.md) +/fmu/in/message_format_request | [px4_msgs::msg::MessageFormatRequest](../msg_docs/MessageFormatRequest.md) +/fmu/in/mode_completed | [px4_msgs::msg::ModeCompleted](../msg_docs/ModeCompleted.md) +/fmu/in/config_control_setpoints | [px4_msgs::msg::VehicleControlMode](../msg_docs/VehicleControlMode.md) +/fmu/in/distance_sensor | [px4_msgs::msg::DistanceSensor](../msg_docs/DistanceSensor.md) +/fmu/in/manual_control_input | [px4_msgs::msg::ManualControlSetpoint](../msg_docs/ManualControlSetpoint.md) +/fmu/in/offboard_control_mode | [px4_msgs::msg::OffboardControlMode](../msg_docs/OffboardControlMode.md) +/fmu/in/onboard_computer_status | [px4_msgs::msg::OnboardComputerStatus](../msg_docs/OnboardComputerStatus.md) +/fmu/in/obstacle_distance | [px4_msgs::msg::ObstacleDistance](../msg_docs/ObstacleDistance.md) +/fmu/in/sensor_optical_flow | [px4_msgs::msg::SensorOpticalFlow](../msg_docs/SensorOpticalFlow.md) +/fmu/in/goto_setpoint | [px4_msgs::msg::GotoSetpoint](../msg_docs/GotoSetpoint.md) +/fmu/in/telemetry_status | [px4_msgs::msg::TelemetryStatus](../msg_docs/TelemetryStatus.md) +/fmu/in/trajectory_setpoint | [px4_msgs::msg::TrajectorySetpoint](../msg_docs/TrajectorySetpoint.md) +/fmu/in/vehicle_attitude_setpoint | [px4_msgs::msg::VehicleAttitudeSetpoint](../msg_docs/VehicleAttitudeSetpoint.md) +/fmu/in/vehicle_mocap_odometry | [px4_msgs::msg::VehicleOdometry](../msg_docs/VehicleOdometry.md) +/fmu/in/vehicle_rates_setpoint | [px4_msgs::msg::VehicleRatesSetpoint](../msg_docs/VehicleRatesSetpoint.md) +/fmu/in/vehicle_visual_odometry | [px4_msgs::msg::VehicleOdometry](../msg_docs/VehicleOdometry.md) +/fmu/in/vehicle_command | [px4_msgs::msg::VehicleCommand](../msg_docs/VehicleCommand.md) +/fmu/in/vehicle_command_mode_executor | [px4_msgs::msg::VehicleCommand](../msg_docs/VehicleCommand.md) +/fmu/in/vehicle_thrust_setpoint | [px4_msgs::msg::VehicleThrustSetpoint](../msg_docs/VehicleThrustSetpoint.md) +/fmu/in/vehicle_torque_setpoint | [px4_msgs::msg::VehicleTorqueSetpoint](../msg_docs/VehicleTorqueSetpoint.md) +/fmu/in/actuator_motors | [px4_msgs::msg::ActuatorMotors](../msg_docs/ActuatorMotors.md) +/fmu/in/actuator_servos | [px4_msgs::msg::ActuatorServos](../msg_docs/ActuatorServos.md) +/fmu/in/aux_global_position | [px4_msgs::msg::VehicleGlobalPosition](../msg_docs/VehicleGlobalPosition.md) +/fmu/in/fixed_wing_longitudinal_setpoint | [px4_msgs::msg::FixedWingLongitudinalSetpoint](../msg_docs/FixedWingLongitudinalSetpoint.md) +/fmu/in/fixed_wing_lateral_setpoint | [px4_msgs::msg::FixedWingLateralSetpoint](../msg_docs/FixedWingLateralSetpoint.md) +/fmu/in/longitudinal_control_configuration | [px4_msgs::msg::LongitudinalControlConfiguration](../msg_docs/LongitudinalControlConfiguration.md) +/fmu/in/lateral_control_configuration | [px4_msgs::msg::LateralControlConfiguration](../msg_docs/LateralControlConfiguration.md) + +## Subscriptions Multi + +None + +## Not Exported + +These messages are not listed in the yaml file. +They are not build into the module, and hence are neither published or subscribed. + +::: details See messages + +- [DebugKeyValue](../msg_docs/DebugKeyValue.md) +- [RtlTimeEstimate](../msg_docs/RtlTimeEstimate.md) +- [ButtonEvent](../msg_docs/ButtonEvent.md) +- [EscStatus](../msg_docs/EscStatus.md) +- [Cpuload](../msg_docs/Cpuload.md) +- [SensorGyro](../msg_docs/SensorGyro.md) +- [ActionRequest](../msg_docs/ActionRequest.md) +- [MavlinkLog](../msg_docs/MavlinkLog.md) +- [HealthReport](../msg_docs/HealthReport.md) +- [GpsInjectData](../msg_docs/GpsInjectData.md) +- [RoverRateStatus](../msg_docs/RoverRateStatus.md) +- [RoverThrottleSetpoint](../msg_docs/RoverThrottleSetpoint.md) +- [RoverSteeringSetpoint](../msg_docs/RoverSteeringSetpoint.md) +- [SensorMag](../msg_docs/SensorMag.md) +- [ArmingCheckReplyV0](../msg_docs/ArmingCheckReplyV0.md) +- [DebugValue](../msg_docs/DebugValue.md) +- [OrbitStatus](../msg_docs/OrbitStatus.md) +- [GimbalControls](../msg_docs/GimbalControls.md) +- [ManualControlSwitches](../msg_docs/ManualControlSwitches.md) +- [OrbTest](../msg_docs/OrbTest.md) +- [IridiumsbdStatus](../msg_docs/IridiumsbdStatus.md) +- [ActuatorTest](../msg_docs/ActuatorTest.md) +- [FuelTankStatus](../msg_docs/FuelTankStatus.md) +- [ActuatorOutputs](../msg_docs/ActuatorOutputs.md) +- [GimbalManagerStatus](../msg_docs/GimbalManagerStatus.md) +- [EstimatorInnovations](../msg_docs/EstimatorInnovations.md) +- [HeaterStatus](../msg_docs/HeaterStatus.md) +- [LandingGearWheel](../msg_docs/LandingGearWheel.md) +- [VehicleImuStatus](../msg_docs/VehicleImuStatus.md) +- [OpenDroneIdArmStatus](../msg_docs/OpenDroneIdArmStatus.md) +- [ParameterSetValueRequest](../msg_docs/ParameterSetValueRequest.md) +- [GpioConfig](../msg_docs/GpioConfig.md) +- [VehicleImu](../msg_docs/VehicleImu.md) +- [RoverVelocitySetpoint](../msg_docs/RoverVelocitySetpoint.md) +- [AdcReport](../msg_docs/AdcReport.md) +- [GimbalDeviceAttitudeStatus](../msg_docs/GimbalDeviceAttitudeStatus.md) +- [GpioRequest](../msg_docs/GpioRequest.md) +- [OpenDroneIdOperatorId](../msg_docs/OpenDroneIdOperatorId.md) +- [RadioStatus](../msg_docs/RadioStatus.md) +- [TiltrotorExtraControls](../msg_docs/TiltrotorExtraControls.md) +- [GimbalManagerSetManualControl](../msg_docs/GimbalManagerSetManualControl.md) +- [RoverRateSetpoint](../msg_docs/RoverRateSetpoint.md) +- [CanInterfaceStatus](../msg_docs/CanInterfaceStatus.md) +- [GeofenceStatus](../msg_docs/GeofenceStatus.md) +- [PositionControllerStatus](../msg_docs/PositionControllerStatus.md) +- [Gripper](../msg_docs/Gripper.md) +- [LogMessage](../msg_docs/LogMessage.md) +- [YawEstimatorStatus](../msg_docs/YawEstimatorStatus.md) +- [InternalCombustionEngineControl](../msg_docs/InternalCombustionEngineControl.md) +- [TrajectorySetpoint6dof](../msg_docs/TrajectorySetpoint6dof.md) +- [SystemPower](../msg_docs/SystemPower.md) +- [AirspeedWind](../msg_docs/AirspeedWind.md) +- [GimbalManagerSetAttitude](../msg_docs/GimbalManagerSetAttitude.md) +- [MavlinkTunnel](../msg_docs/MavlinkTunnel.md) +- [QshellRetval](../msg_docs/QshellRetval.md) +- [OpenDroneIdSelfId](../msg_docs/OpenDroneIdSelfId.md) +- [NormalizedUnsignedSetpoint](../msg_docs/NormalizedUnsignedSetpoint.md) +- [OrbTestMedium](../msg_docs/OrbTestMedium.md) +- [VelocityLimits](../msg_docs/VelocityLimits.md) +- [RoverAttitudeSetpoint](../msg_docs/RoverAttitudeSetpoint.md) +- [VehicleRoi](../msg_docs/VehicleRoi.md) +- [Airspeed](../msg_docs/Airspeed.md) +- [FixedWingLateralGuidanceStatus](../msg_docs/FixedWingLateralGuidanceStatus.md) +- [EstimatorAidSource2d](../msg_docs/EstimatorAidSource2d.md) +- [SensorAccel](../msg_docs/SensorAccel.md) +- [WheelEncoders](../msg_docs/WheelEncoders.md) +- [VehicleAttitudeSetpointV0](../msg_docs/VehicleAttitudeSetpointV0.md) +- [SensorUwb](../msg_docs/SensorUwb.md) +- [VehicleOpticalFlowVel](../msg_docs/VehicleOpticalFlowVel.md) +- [RoverVelocityStatus](../msg_docs/RoverVelocityStatus.md) +- [CellularStatus](../msg_docs/CellularStatus.md) +- [SensorGnssRelative](../msg_docs/SensorGnssRelative.md) +- [LandingGear](../msg_docs/LandingGear.md) +- [MagnetometerBiasEstimate](../msg_docs/MagnetometerBiasEstimate.md) +- [Rpm](../msg_docs/Rpm.md) +- [VehicleAngularAccelerationSetpoint](../msg_docs/VehicleAngularAccelerationSetpoint.md) +- [DatamanRequest](../msg_docs/DatamanRequest.md) +- [MissionResult](../msg_docs/MissionResult.md) +- [SensorSelection](../msg_docs/SensorSelection.md) +- [ControlAllocatorStatus](../msg_docs/ControlAllocatorStatus.md) +- [VehicleAngularVelocity](../msg_docs/VehicleAngularVelocity.md) +- [GpioOut](../msg_docs/GpioOut.md) +- [SensorPreflightMag](../msg_docs/SensorPreflightMag.md) +- [RtlStatus](../msg_docs/RtlStatus.md) +- [GeneratorStatus](../msg_docs/GeneratorStatus.md) +- [DebugArray](../msg_docs/DebugArray.md) +- [LandingTargetInnovations](../msg_docs/LandingTargetInnovations.md) +- [SensorBaro](../msg_docs/SensorBaro.md) +- [CameraCapture](../msg_docs/CameraCapture.md) +- [MagWorkerData](../msg_docs/MagWorkerData.md) +- [EstimatorAidSource1d](../msg_docs/EstimatorAidSource1d.md) +- [LoggerStatus](../msg_docs/LoggerStatus.md) +- [RcChannels](../msg_docs/RcChannels.md) +- [SensorsStatusImu](../msg_docs/SensorsStatusImu.md) +- [AirspeedValidatedV0](../msg_docs/AirspeedValidatedV0.md) +- [AutotuneAttitudeControlStatus](../msg_docs/AutotuneAttitudeControlStatus.md) +- [ActuatorControlsStatus](../msg_docs/ActuatorControlsStatus.md) +- [UavcanParameterValue](../msg_docs/UavcanParameterValue.md) +- [EstimatorAidSource3d](../msg_docs/EstimatorAidSource3d.md) +- [IrlockReport](../msg_docs/IrlockReport.md) +- [VehicleConstraints](../msg_docs/VehicleConstraints.md) +- [SensorAirflow](../msg_docs/SensorAirflow.md) +- [InternalCombustionEngineStatus](../msg_docs/InternalCombustionEngineStatus.md) +- [UlogStream](../msg_docs/UlogStream.md) +- [PpsCapture](../msg_docs/PpsCapture.md) +- [PositionControllerLandingStatus](../msg_docs/PositionControllerLandingStatus.md) +- [ActuatorArmed](../msg_docs/ActuatorArmed.md) +- [SensorCorrection](../msg_docs/SensorCorrection.md) +- [Mission](../msg_docs/Mission.md) +- [EstimatorStatus](../msg_docs/EstimatorStatus.md) +- [ParameterUpdate](../msg_docs/ParameterUpdate.md) +- [EventV0](../msg_docs/EventV0.md) +- [UavcanParameterRequest](../msg_docs/UavcanParameterRequest.md) +- [PwmInput](../msg_docs/PwmInput.md) +- [OrbTestLarge](../msg_docs/OrbTestLarge.md) +- [FixedWingRunwayControl](../msg_docs/FixedWingRunwayControl.md) +- [GimbalDeviceInformation](../msg_docs/GimbalDeviceInformation.md) +- [VehicleAirData](../msg_docs/VehicleAirData.md) +- [CameraStatus](../msg_docs/CameraStatus.md) +- [InputRc](../msg_docs/InputRc.md) +- [PowerMonitor](../msg_docs/PowerMonitor.md) +- [Wind](../msg_docs/Wind.md) +- [RateCtrlStatus](../msg_docs/RateCtrlStatus.md) +- [PurePursuitStatus](../msg_docs/PurePursuitStatus.md) +- [FlightPhaseEstimation](../msg_docs/FlightPhaseEstimation.md) +- [Px4ioStatus](../msg_docs/Px4ioStatus.md) +- [OpenDroneIdSystem](../msg_docs/OpenDroneIdSystem.md) +- [RoverAttitudeStatus](../msg_docs/RoverAttitudeStatus.md) +- [UlogStreamAck](../msg_docs/UlogStreamAck.md) +- [NavigatorMissionItem](../msg_docs/NavigatorMissionItem.md) +- [EstimatorBias](../msg_docs/EstimatorBias.md) +- [QshellReq](../msg_docs/QshellReq.md) +- [SensorHygrometer](../msg_docs/SensorHygrometer.md) +- [MountOrientation](../msg_docs/MountOrientation.md) +- [LedControl](../msg_docs/LedControl.md) +- [PowerButtonState](../msg_docs/PowerButtonState.md) +- [Ping](../msg_docs/Ping.md) +- [FigureEightStatus](../msg_docs/FigureEightStatus.md) +- [EstimatorBias3d](../msg_docs/EstimatorBias3d.md) +- [GpioIn](../msg_docs/GpioIn.md) +- [RoverPositionSetpoint](../msg_docs/RoverPositionSetpoint.md) +- [VehicleMagnetometer](../msg_docs/VehicleMagnetometer.md) +- [DatamanResponse](../msg_docs/DatamanResponse.md) +- [SatelliteInfo](../msg_docs/SatelliteInfo.md) +- [EstimatorSelectorStatus](../msg_docs/EstimatorSelectorStatus.md) +- [DifferentialPressure](../msg_docs/DifferentialPressure.md) +- [ParameterResetRequest](../msg_docs/ParameterResetRequest.md) +- [FailureDetectorStatus](../msg_docs/FailureDetectorStatus.md) +- [PositionSetpoint](../msg_docs/PositionSetpoint.md) +- [ParameterSetUsedRequest](../msg_docs/ParameterSetUsedRequest.md) +- [SensorGyroFifo](../msg_docs/SensorGyroFifo.md) +- [ActuatorServosTrim](../msg_docs/ActuatorServosTrim.md) +- [HoverThrustEstimate](../msg_docs/HoverThrustEstimate.md) +- [LaunchDetectionStatus](../msg_docs/LaunchDetectionStatus.md) +- [FollowTargetEstimator](../msg_docs/FollowTargetEstimator.md) +- [EscReport](../msg_docs/EscReport.md) +- [EstimatorGpsStatus](../msg_docs/EstimatorGpsStatus.md) +- [EstimatorSensorBias](../msg_docs/EstimatorSensorBias.md) +- [TuneControl](../msg_docs/TuneControl.md) +- [TaskStackInfo](../msg_docs/TaskStackInfo.md) +- [GpsDump](../msg_docs/GpsDump.md) +- [SensorAccelFifo](../msg_docs/SensorAccelFifo.md) +- [Ekf2Timestamps](../msg_docs/Ekf2Timestamps.md) +- [LandingTargetPose](../msg_docs/LandingTargetPose.md) +- [Event](../msg_docs/Event.md) +- [RcParameterMap](../msg_docs/RcParameterMap.md) +- [GeofenceResult](../msg_docs/GeofenceResult.md) +- [FollowTarget](../msg_docs/FollowTarget.md) +- [EstimatorEventFlags](../msg_docs/EstimatorEventFlags.md) +- [FixedWingLateralStatus](../msg_docs/FixedWingLateralStatus.md) +- [FollowTargetStatus](../msg_docs/FollowTargetStatus.md) +- [TakeoffStatus](../msg_docs/TakeoffStatus.md) +- [DebugVect](../msg_docs/DebugVect.md) +- [SensorsStatus](../msg_docs/SensorsStatus.md) +- [VehicleOpticalFlow](../msg_docs/VehicleOpticalFlow.md) +- [TransponderReport](../msg_docs/TransponderReport.md) +- [ParameterSetValueResponse](../msg_docs/ParameterSetValueResponse.md) +- [VehicleLocalPositionSetpoint](../msg_docs/VehicleLocalPositionSetpoint.md) +- [VehicleAcceleration](../msg_docs/VehicleAcceleration.md) +- [NavigatorStatus](../msg_docs/NavigatorStatus.md) +- [GimbalDeviceSetAttitude](../msg_docs/GimbalDeviceSetAttitude.md) +- [GimbalManagerInformation](../msg_docs/GimbalManagerInformation.md) +- [CameraTrigger](../msg_docs/CameraTrigger.md) +- [SensorGyroFft](../msg_docs/SensorGyroFft.md) +- [TecsStatus](../msg_docs/TecsStatus.md) +- [EstimatorStates](../msg_docs/EstimatorStates.md) +- [VehicleStatusV0](../msg_docs/VehicleStatusV0.md) +- [DistanceSensorModeChangeRequest](../msg_docs/DistanceSensorModeChangeRequest.md) +::: diff --git a/docs/en/msg_docs/ArmingCheckReply.md b/docs/en/msg_docs/ArmingCheckReply.md index 2ea2ca879f..d5e3322506 100644 --- a/docs/en/msg_docs/ArmingCheckReply.md +++ b/docs/en/msg_docs/ArmingCheckReply.md @@ -1,43 +1,59 @@ # ArmingCheckReply (UORB message) +Arming check reply. +This is a response to an ArmingCheckRequest message sent by the FMU to an external component, such as a ROS 2 navigation mode. +The response contains the current set of external mode requirements, and a queue of events indicating recent failures to set the mode (which the FMU may then forward to a ground station). +The request is sent regularly to all registered ROS modes, even while armed, so that the FMU always knows and can forward the current state. + +Note that the external component is identified by its registration_id, which is allocated to the component during registration (arming_check_id in RegisterExtComponentReply). +The message is not used by internal/FMU components, as their mode requirements are known at compile time. [source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/ArmingCheckReply.msg) ```c -uint32 MESSAGE_VERSION = 0 +# Arming check reply. +# +# This is a response to an ArmingCheckRequest message sent by the FMU to an external component, such as a ROS 2 navigation mode. +# The response contains the current set of external mode requirements, and a queue of events indicating recent failures to set the mode (which the FMU may then forward to a ground station). +# The request is sent regularly to all registered ROS modes, even while armed, so that the FMU always knows and can forward the current state. +# +# Note that the external component is identified by its registration_id, which is allocated to the component during registration (arming_check_id in RegisterExtComponentReply). +# The message is not used by internal/FMU components, as their mode requirements are known at compile time. -uint64 timestamp # time since system start (microseconds) +uint32 MESSAGE_VERSION = 1 -uint8 request_id -uint8 registration_id +uint64 timestamp # [us] Time since system start. -uint8 HEALTH_COMPONENT_INDEX_NONE = 0 +uint8 request_id # Id of ArmingCheckRequest for which this is a response. +uint8 registration_id # Id of external component emitting this response. -uint8 health_component_index # HEALTH_COMPONENT_INDEX_* -bool health_component_is_present -bool health_component_warning -bool health_component_error +uint8 HEALTH_COMPONENT_INDEX_NONE = 0 # Index of health component for which this response applies. -bool can_arm_and_run # whether arming is possible, and if it's a navigation mode, if it can run +uint8 health_component_index # [@enum HEALTH_COMPONENT_INDEX] +bool health_component_is_present # Unused. Intended for use with health events interface (health_component_t in events.json). +bool health_component_warning # Unused. Intended for use with health events interface (health_component_t in events.json). +bool health_component_error # Unused. Intended for use with health events interface (health_component_t in events.json). -uint8 num_events +bool can_arm_and_run # True if the component can arm. For navigation mode components, true if the component can arm in the mode or switch to the mode when already armed. -Event[5] events +uint8 num_events # Number of queued failure messages (Event) in the events field. + +Event[5] events # Arming failure reasons (Queue of events to report to GCS). # Mode requirements -bool mode_req_angular_velocity -bool mode_req_attitude -bool mode_req_local_alt -bool mode_req_local_position -bool mode_req_local_position_relaxed -bool mode_req_global_position -bool mode_req_mission -bool mode_req_home_position -bool mode_req_prevent_arming -bool mode_req_manual_control +bool mode_req_angular_velocity # Requires angular velocity estimate (e.g. from gyroscope). +bool mode_req_attitude # Requires an attitude estimate. +bool mode_req_local_alt # Requires a local altitude estimate. +bool mode_req_local_position # Requires a local position estimate. +bool mode_req_local_position_relaxed # Requires a more relaxed global position estimate. +bool mode_req_global_position # Requires a global position estimate. +bool mode_req_global_position_relaxed # Requires a relaxed global position estimate. +bool mode_req_mission # Requires an uploaded mission. +bool mode_req_home_position # Requires a home position (such as RTL/Return mode). +bool mode_req_prevent_arming # Prevent arming (such as in Land mode). +bool mode_req_manual_control # Requires a manual controller - -uint8 ORB_QUEUE_LENGTH = 4 +uint8 ORB_QUEUE_LENGTH = 4 # ``` diff --git a/docs/en/msg_docs/ArmingCheckReplyV0.md b/docs/en/msg_docs/ArmingCheckReplyV0.md new file mode 100644 index 0000000000..3b927cb054 --- /dev/null +++ b/docs/en/msg_docs/ArmingCheckReplyV0.md @@ -0,0 +1,43 @@ +# ArmingCheckReplyV0 (UORB message) + + + +[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/px4_msgs_old/msg/ArmingCheckReplyV0.msg) + +```c +uint32 MESSAGE_VERSION = 0 + +uint64 timestamp # time since system start (microseconds) + +uint8 request_id +uint8 registration_id + +uint8 HEALTH_COMPONENT_INDEX_NONE = 0 + +uint8 health_component_index # HEALTH_COMPONENT_INDEX_* +bool health_component_is_present +bool health_component_warning +bool health_component_error + +bool can_arm_and_run # whether arming is possible, and if it's a navigation mode, if it can run + +uint8 num_events + +EventV0[5] events + +# Mode requirements +bool mode_req_angular_velocity +bool mode_req_attitude +bool mode_req_local_alt +bool mode_req_local_position +bool mode_req_local_position_relaxed +bool mode_req_global_position +bool mode_req_mission +bool mode_req_home_position +bool mode_req_prevent_arming +bool mode_req_manual_control + + +uint8 ORB_QUEUE_LENGTH = 4 + +``` diff --git a/docs/en/msg_docs/ArmingCheckRequest.md b/docs/en/msg_docs/ArmingCheckRequest.md index 6694fcbe85..cfa4b52c23 100644 --- a/docs/en/msg_docs/ArmingCheckRequest.md +++ b/docs/en/msg_docs/ArmingCheckRequest.md @@ -1,16 +1,30 @@ # ArmingCheckRequest (UORB message) +Arming check request. +Broadcast message to request arming checks be reported by all registered components, such as external ROS 2 navigation modes. +All registered components should respond with an ArmingCheckReply message that indicates their current mode requirements, and any arming failure information. +The request is sent regularly, even while armed, so that the FMU always knows the current arming state for external modes, and can forward it to ground stations. + +The reply will include the published request_id, allowing correlation of all arming check information for a particular request. +The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply). [source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/ArmingCheckRequest.msg) ```c +# Arming check request. +# +# Broadcast message to request arming checks be reported by all registered components, such as external ROS 2 navigation modes. +# All registered components should respond with an ArmingCheckReply message that indicates their current mode requirements, and any arming failure information. +# The request is sent regularly, even while armed, so that the FMU always knows the current arming state for external modes, and can forward it to ground stations. +# +# The reply will include the published request_id, allowing correlation of all arming check information for a particular request. +# The reply will also include the registration_id for each external component, provided to it during the registration process (RegisterExtComponentReply). + uint32 MESSAGE_VERSION = 0 -uint64 timestamp # time since system start (microseconds) +uint64 timestamp # [us] Time since system start. -# broadcast message to request all registered arming checks to be reported - -uint8 request_id +uint8 request_id # Id of this request. Allows correlation with associated ArmingCheckReply messages. ``` diff --git a/docs/en/msg_docs/Event.md b/docs/en/msg_docs/Event.md index 4062be6d9f..5d22f337f5 100644 --- a/docs/en/msg_docs/Event.md +++ b/docs/en/msg_docs/Event.md @@ -2,10 +2,12 @@ Events interface -[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/Event.msg) +[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/versioned/Event.msg) ```c # Events interface +uint32 MESSAGE_VERSION = 1 + uint64 timestamp # time since system start (microseconds) uint32 id # Event ID diff --git a/docs/en/msg_docs/EventV0.md b/docs/en/msg_docs/EventV0.md new file mode 100644 index 0000000000..19cfa7b70c --- /dev/null +++ b/docs/en/msg_docs/EventV0.md @@ -0,0 +1,24 @@ +# EventV0 (UORB message) + +this message is required here in the msg_old folder because other msg are depending on it +Events interface + +[source file](https://github.com/PX4/PX4-Autopilot/blob/main/msg/px4_msgs_old/msg/EventV0.msg) + +```c +# this message is required here in the msg_old folder because other msg are depending on it +# Events interface + +uint32 MESSAGE_VERSION = 0 + +uint64 timestamp # time since system start (microseconds) + +uint32 id # Event ID +uint16 event_sequence # Event sequence number +uint8[25] arguments # (optional) arguments, depend on event id + +uint8 log_levels # Log levels: 4 bits MSB: internal, 4 bits LSB: external + +uint8 ORB_QUEUE_LENGTH = 16 + +``` diff --git a/docs/en/msg_docs/FailsafeFlags.md b/docs/en/msg_docs/FailsafeFlags.md index c0763f555c..6a1971ef99 100644 --- a/docs/en/msg_docs/FailsafeFlags.md +++ b/docs/en/msg_docs/FailsafeFlags.md @@ -22,6 +22,7 @@ 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 @@ -39,6 +40,7 @@ bool local_position_invalid # Local position estimate invalid bool local_position_invalid_relaxed # Local position with reduced accuracy requirements invalid (e.g. flying with optical flow) bool local_velocity_invalid # Local velocity estimate invalid bool global_position_invalid # Global position estimate invalid +bool global_position_invalid_relaxed # Global position estimate invalid with relaxed accuracy requirements bool auto_mission_missing # No mission available bool offboard_control_signal_lost # Offboard signal lost bool home_position_invalid # No home position available diff --git a/docs/en/msg_docs/InternalCombustionEngineControl.md b/docs/en/msg_docs/InternalCombustionEngineControl.md index dfb54fe82d..862605cdda 100644 --- a/docs/en/msg_docs/InternalCombustionEngineControl.md +++ b/docs/en/msg_docs/InternalCombustionEngineControl.md @@ -7,10 +7,10 @@ ```c uint64 timestamp # time since system start (microseconds) -bool ignition_on # activate/deactivate ignition (Spark Plug) -float32 throttle_control # [0,1] - Motor should idle with 0. Includes slew rate if enabled. -float32 choke_control # [0,1] - 1 fully closes the air inlet. -float32 starter_engine_control # [0,1] - control value for electric starter motor. +bool ignition_on # activate/deactivate ignition (spark plug) +float32 throttle_control # setpoint for throttle actuator, with slew rate if enabled, idles with 0 [norm] [@range 0,1] [@uncontrolled NAN to stop motor] +float32 choke_control # setpoint for choke actuator, 1: fully closed [norm] [@range 0,1] +float32 starter_engine_control # setpoint for (electric) starter motor [norm] [@range 0,1] uint8 user_request # user intent for the ICE being on/off diff --git a/docs/en/msg_docs/index.md b/docs/en/msg_docs/index.md index 0904013766..36b4923464 100644 --- a/docs/en/msg_docs/index.md +++ b/docs/en/msg_docs/index.md @@ -16,10 +16,11 @@ Graphs showing how these are used [can be found here](../middleware/uorb_graph.m - [ActuatorMotors](ActuatorMotors.md) — Motor control message - [ActuatorServos](ActuatorServos.md) — Servo control message - [AirspeedValidated](AirspeedValidated.md) -- [ArmingCheckReply](ArmingCheckReply.md) -- [ArmingCheckRequest](ArmingCheckRequest.md) +- [ArmingCheckReply](ArmingCheckReply.md) — Arming check reply. +- [ArmingCheckRequest](ArmingCheckRequest.md) — Arming check request. - [BatteryStatus](BatteryStatus.md) - [ConfigOverrides](ConfigOverrides.md) — Configurable overrides by (external) modes or mode executors +- [Event](Event.md) — Events interface - [FixedWingLateralSetpoint](FixedWingLateralSetpoint.md) — Fixed Wing Lateral Setpoint message Used by the fw_lateral_longitudinal_control module At least one of course, airspeed_direction, or lateral_acceleration must be finite. @@ -124,7 +125,6 @@ scale errors, in-run bias and thermal drift (if thermal compensation is enabled - [EstimatorStates](EstimatorStates.md) - [EstimatorStatus](EstimatorStatus.md) - [EstimatorStatusFlags](EstimatorStatusFlags.md) -- [Event](Event.md) — Events interface - [FailsafeFlags](FailsafeFlags.md) — Input flags for the failsafe state machine set by the arming & health checks. - [FailureDetectorStatus](FailureDetectorStatus.md) - [FigureEightStatus](FigureEightStatus.md) @@ -298,7 +298,9 @@ NaN means the state was not controlled - [Wind](Wind.md) - [YawEstimatorStatus](YawEstimatorStatus.md) - [AirspeedValidatedV0](AirspeedValidatedV0.md) +- [ArmingCheckReplyV0](ArmingCheckReplyV0.md) +- [EventV0](EventV0.md) — this message is required here in the msg_old folder because other msg are depending on it +Events interface - [VehicleAttitudeSetpointV0](VehicleAttitudeSetpointV0.md) - [VehicleStatusV0](VehicleStatusV0.md) — Encodes the system state of the vehicle published by commander - \ No newline at end of file