首页 / 资讯中心 / 文章详情

PX4 Autopilot Offboard 模式(固定翼)完整指南:外部机载计算机控制的模式原理、MAVLink/ROS 2 接口与安全失效策略

PX4 Autopilot Offboard 模式(固定翼)完整指南:外部机载计算机控制的模式原理、MAVLink/ROS 2 接口与安全失效策略 ★ FEATURED ARTICLE
嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载Offboard外部模式是 PX4 为外部机载计算机companion computer提供的一条外部控制通道飞行器完全听从外部控制器通过 MAVLink 或 ROS 2 注入的位置、速度、加速度、姿态、角速率或推力/力矩设定值来运动而不再依赖操作手摇杆。本文将基于 docs/en/flight_modes_fw/offboard.md 与 docs/en/flight_modes/offboard.md 的官方说明结合仓库源码与消息定义系统讲解 Offboard 模式的原理2 Hz 心跳保活、固定翼特有的 setpoint 类型与type_mask编码、ROS 2 直连控制OffboardControlMode消息与 uORB setpoint 话题、多旋翼/地面车辆/通用载具的接入差异以及COM_OF_LOSS_T、COM_OBL_RC_ACT等关键参数与失效保护动作帮助你安全地把外部控制器接入 PX4 控制管线。Offboard 模式概览与技术摘要Offboard 模式下飞行器服从由飞行栈外部如机载计算机提供的设定值。设定值可以经由 MAVLink或基于 MAVLink 的 API如 MAVSDK提供也可以通过 ROS 2 提供。PX4 要求外部控制器持续发送 ≥2 Hz 的存活证明proof of life信号可以是任意受支持的 MAVLink 设定值消息流也可以是 ROS 2 的 OffboardControlMode 消息流。该数据流必须在切入 Offboard 模式之前就已激活一旦在 COM_OF_LOSS_T 配置的超时时间内未收到存活消息PX4 就会触发配置好的 Offboard 丢失失效保护动作由 COM_OBL_RC_ACT 定义。需要特别注意的是该模式依赖位置或姿态/位姿信息如 GPS、光流、视觉惯性里程计、mocap 等具体依赖哪种取决于外部控制器发送的 Offboard 设定值类型。手动控制被禁用仅可用于切换飞行模式也可以完全不带任何手动遥控器飞行只需将参数 COM_RC_IN_MODE 设为4: Disable manual control。在 Offboard 模式下解锁arming或飞行中切入 Offboard 模式之前飞行器必须已经在接收MAVLink 设定值消息流或 ROS 2OffboardControlMode消息流。如果 MAVLink 设定值消息或OffboardControlMode消息停止接收超过 COM_OF_LOSS_T 设定的超时飞行器将退出 Offboard 模式。MAVLink 允许的坐标系和字段值并非对每条设定值消息、每种载具都被支持务必仔细阅读下文各节只使用受支持的值。模式要求固定翼要在该模式下解锁或已解锁时切入该模式必须满足以下要求详见 mode_requirementsmode_req_angular_velocity— 角速度可用mode_req_attitude— 姿态/位姿可用mode_req_offboard_signal— Offboard 心跳信号存在从源码看这条Offboard 心跳要求正是由OffboardChecks实现的它在 offboardCheck.cpp 中订阅offboard_control_mode话题只要该话题最近一次时间戳超过COM_OF_LOSS_T秒hrt_absolute_time() offboard_control_mode.timestamp COM_OF_LOSS_T * 1_s或消息中没有任何一个控制标志位被置位就判定offboard_control_signal_lost从而阻止解锁或触发失效保护。同时该检查还会根据设定值类型校验对应的估计量是否有效如位置控制要求本地位置有效、速度控制要求本地速度有效、加速度/姿态控制要求姿态估计有效。模式要求多旋翼多旋翼Multicopter的解锁/切入要求与固定翼一致mode_req_angular_velocity— 角速度可用mode_req_attitude— 姿态/位姿可用mode_req_offboard_signal— Offboard 心跳信号存在工作原理详解Offboard 模式用于通过设定位置、速度、加速度、姿态、角速率或推力/力矩设定值来控制飞行器的运动与姿态。PX4 必须持续收到 MAVLink 设定值消息流或 ROS 2 OffboardControlMode 消息作为外部控制器健康存活的证明并且该数据流应在解锁进入 Offboard 模式之前就保持活跃。若 MAVLink 设定值消息或OffboardControlMode消息停止接收超过 COM_OF_LOSS_T 超时PX4 将退出 Offboard 模式并尝试降落或执行其他失效保护动作。具体动作取决于是否具备 RC 控制由参数 COM_OBL_RC_ACT 定义。MAVLink 路径设定值消息同时承载外部源存活信号和设定值本身。因此若要悬停/悬停保持位置飞行器必须持续收到当前位置的设定值流。ROS 2 路径外部源存活的证明由 OffboardControlMode 消息流提供而实际设定值通过发布到某个 setpoint uORB 话题如 TrajectorySetpoint提供。此时要保持位置飞行器需要持续的OffboardControlMode流但TrajectorySetpoint只需发布一次。还需注意Offboard 模式只支持非常有限的 MAVLink 命令与消息。起飞、降落、返航等操作最好交给对应专用模式处理而上传、下载航线的操作则在任意模式下都可以执行。ROS 2 直连 Offboard 控制本节介绍如何通过两种直接 ROS 2 接口UXRCE-DDS 或 Zenoh执行 Offboard 控制。使用 ROS 2 直连 Offboard 控制时外部控制器生成的 PX4 设定值消息被注入 PX4 控制管线。由于 PX4 内部无法区分消息来自内部控制器还是外部控制器因此必须精确同步以避免不同控制器向同一话题写入冲突消息。仅在 Offboard 模式下外部系统可以使用OffboardControlMode指定 PX4 应该发布/不应发布哪些 setpoint 话题从而允许外部控制器安全地写入这些话题。⚠️警告PX4 在任何模式下都无法过滤、区分 ROS 2 消息与内部消息。为了安全地协同工作外部控制器必须只在 Offboard 模式下发布 PX4 setpoint 消息用OffboardControlMode话题声明自己要写哪些 setpoint将OffboardControlMode话题作为 keep-alive 信号持续流式发布持续流式发布所需 setpoint与 MAVLink 不同PX4不会因为 setpoint 未定期发送而触发失效保护。如果在其他飞行模式发送外部 setpoint或者覆盖了 Offboard 模式下 PX4 未禁用的话题极可能发生话题冲突导致不可预测甚至灾难性的后果。OffboardControlModePX4 消息以下是允许用于指定坐标系frame的 ROS 2 消息及其字段取值。除了提供心跳功能外OffboardControlMode还有两个主要用途控制 PX4 控制架构 中哪些内部控制模块在 Offboard 模式下保持活跃、哪些被禁用决定需要哪些有效估计量位置、速度等。OffboardControlMode消息定义如下仓库定义见 msg/OffboardControlMode.msg# Off-board control mode uint64 timestamp # time since system start (microseconds) bool position bool velocity bool acceleration bool attitude bool body_rate bool thrust_and_torque bool direct_actuator以下OffboardControlMode选项适用于多旋翼copter、固定翼fixed-wing与垂直起降VTOL地面车辆rover请参见下文 Rover 一节。各字段按优先级排列position优先于velocity及之后字段velocity优先于acceleration依此类推。从上到下第一个被置位非零的字段决定了使用 Offboard 模式所需的有效估计量以及可以使用的 setpoint 消息。例如如果acceleration是第一个非零字段PX4 需要有效的姿态估计且 setpoint 必须使用TrajectorySetpoint消息指定。期望控制量position 字段velocity 字段acceleration 字段attitude 字段body_rate 字段thrust_and_torque 字段direct_actuator 字段所需估计量所需消息position (NED)✓------positionTrajectorySetpointvelocity (NED)✗✓-----velocityTrajectorySetpointacceleration (NED)✗✗✓----attitudeTrajectorySetpointattitude (FRD)✗✗✗✓---attitudeVehicleAttitudeSetpointbody_rate (FRD)✗✗✗✗✓--angular velocityVehicleRatesSetpointthrust and torque (FRD)✗✗✗✗✗✓-noneVehicleThrustSetpoint 与 VehicleTorqueSetpointdirect motors and servos✗✗✗✗✗✗✓noneActuatorMotors 与 ActuatorServos其中 ✓ 表示该位被置位✗ 表示该位未被置位-表示该位取值无关紧要。使用 ROS 2 进行 Offboard 控制前建议先花几分钟理解 PX4 与 ROS 2 之间不同的 坐标系约定。从实现看PX4 正是依据OffboardControlMode的第一个置位字段来决定使能哪些控制回路在 control_mode.cpp 中NAVIGATION_STATE_OFFBOARD分支按position → velocity → acceleration → attitude → body_rate → thrust_and_torque → direct_actuator的顺序逐级检查命中后分别使能 Trajectory位置/速度、Attitude姿态、Rates角速率、ThrustAndTorque推力力矩或 DirectActuators直接舵机/电机对应的vehicle_control_mode标志位。这一顺序与文档中的优先级表完全一致是外部控制器选择控制方式时必须遵守的约定。多旋翼Multicopterspx4_msgs::msg::TrajectorySetpoint支持以下输入组合位置设定值position非NaN。velocity和acceleration中非NaN的值将作为内环控制器的前馈项。速度设定值velocity非NaN且position为NaN。acceleration中非NaN的值作为内环控制器前馈。加速度设定值acceleration非NaN且position、velocity均为NaN。所有值均在 NED北、东、下坐标系中解释单位分别为[m]、[m/s]、[m/s^2]位置、速度、加速度。⚠️ 多旋翼的位置、速度和加速度控制都由mc_pos_control模块处理。只要position、velocity、acceleration任一字段被置为 true该模块即被使能。但具体运行哪个控制器取决于TrajectorySetpoint消息的内容。也就是说即使OffboardControlMode消息表达的是速度控制意图仅置位velocity字段但TrajectorySetpoint中发送了非NaN的位置值PX4 仍会继续运行位置控制器。px4_msgs::msg::VehicleAttitudeSetpoint支持的输入组合四元数q_d 推力设定值thrust_body。yaw_sp_move_rate中非NaN的值作为地球坐标系下的前馈项单位为[rad/s]。四元数表示无人机机体 FRD前、右、下坐标系与 NED 坐标系之间的旋转。推力在机体 FRD 坐标系中为归一化[-1, 1]值。px4_msgs::msg::VehicleRatesSetpoint支持的输入组合roll、pitch、yaw与thrust_body。所有值均在机体 FRD 坐标系中角速率为[rad/s]thrust_body归一化为[-1, 1]。RoverRover 模块必须使用OffboardControlMode设置控制模式并使用相应消息配置对应 setpoint。其思路与其他载具类型类似但允许的控制模式组合与 setpoint 不同类别用途Setpoint推荐Rover Setpoints通用地面车辆控制RoverPositionSetpoint、RoverSpeedSetpoint、RoverAttitudeSetpoint、RoverRateSetpoint、RoverThrottleSetpoint、RoverSteeringSetpointActuator Setpoints直接执行器控制ActuatorMotors、ActuatorServos已弃用Trajectory Setpoint通用载具控制TrajectorySetpointRover SetpointsRover 模块采用层级结构传播 setpoint结构见下图提供的最高层级 setpoint 会被 PX4 rover 模块用于生成其下层 setpoint并覆盖下层。基于该层级结构提供有效控制输入有明确的规则提供位置 setpoint或提供左侧之一速度或油门和右侧之一姿态、角速率或转向。“左”“右”的所有组合均有效。下表为所有有效 setpoint 组合及其必须通过 OffboardControlMode 设置的控制标志位其余全部设为false。此外某些组合要求以NAN值发布部分 setpoint以免感兴趣的 setpoint 被 rover 模块覆盖由于上述层级关系。✓ 表示我们发布的 setpoint✗ 表示必须以NAN发布的 setpoint。Setpoint 组合控制标志位RoverPositionSetpointRoverSpeedSetpointRoverThrottleSetpointRoverAttitudeSetpointRoverRateSetpointRoverSteeringSetpointPositionposition✓Speed Attitudevelocity✓✓Speed Ratevelocity✓✗✓Speed Steeringvelocity✓✗✗✓Throttle Attitudeattitude✓✓Throttle Ratebody_rate✓✓Throttle Steeringthrust_and_torque✓✓如果打算使用 rover setpoints推荐使用 PX4 ROS 2 Interface Library它可以简化这些 setpoint 的发布。仓库中已包含 rover 各驱动类型的 Offboard 模式实现Ackermann阿克曼见 AckermannOffboardMode.cpp差速驱动见 DifferentialOffboardMode.cpp麦克纳姆轮见 MecanumOffboardMode.cpp可以对照阅读以理解各驱动模式下 setpoint 的消费方式。Actuator Setpoints除了用位置、速度、角速率等 setpoint 控制车辆你还可以用 ActuatorMotors 和 ActuatorServos直接控制电机与执行器。在 OffboardControlMode 中将direct_actuator设为true其余标志位全部设为false。这会绕过 rover 模块包括转向速率或加速度限制以及逆运动学环节。对于低层控制推荐改用 RoverSteeringSetpoint 和 RoverThrottleSetpoint参见 Rover Setpoints。已弃用Trajectory Setpoint⚠️ Rover Setpoints 是 TrajectorySetpoint 的替代方案强烈建议改用前者因为它们行为定义清晰且更灵活。Rover 模块支持 TrajectorySetpoint 的position、velocity和yaw字段。但任意时刻只有一个字段处于激活状态由 OffboardControlMode 的标志位决定控制模式标志位激活的 Trajectory Setpoint 字段positionpositionvelocityvelocityattitudeyawAckermann阿克曼rover 不支持 yaw setpoint。通用载具Generic Vehicle以下 Offboard 控制模式绕过 PX4 所有内部控制回路必须极其谨慎使用。px4_msgs::msg::VehicleThrustSetpoint px4_msgs::msg::VehicleTorqueSetpoint支持的输入组合推力xyz与力矩xyz。所有值均在机体 FRD 坐标系中归一化为[-1, 1]。px4_msgs::msg::ActuatorMotors px4_msgs::msg::ActuatorServos直接控制电机输出和/或舵机输出。所有值归一化为[-1, 1]。对于不支持负值的输出负值映射为NaN。NaN映射为 disarm解除武装/电机停转。MAVLink Offboard 控制以下是允许用于指定载具坐标系的 MAVLink 消息及其字段取值。多旋翼 / VTOLSET_POSITION_TARGET_LOCAL_NED支持的输入组合位置 setpoint仅x、y、z速度 setpoint仅vx、vy、vz加速度 setpoint仅afx、afy、afz位置 setpoint和速度 setpoint速度作为前馈叠加到位置控制器输出上结果作为速度控制器输入位置 setpoint和速度 setpoint和加速度速度与加速度均作为前馈速度叠加到位置控制器输出结果作为速度控制器输入加速度叠加到速度控制器输出结果用于计算推力矢量PX4 仅支持以下coordinate_frame值MAV_FRAME_LOCAL_NED和MAV_FRAME_BODY_NED。SET_POSITION_TARGET_GLOBAL_INT支持的输入组合位置 setpoint仅lat_int、lon_int、alt速度 setpoint仅vx、vy、vz推力setpoint仅afx、afy、afz加速度 setpoint 值会被映射为归一化推力 setpoint即加速度 setpoint 并非正规支持。位置 setpoint和速度 setpoint速度作为前馈叠加到位置控制器输出结果作为速度控制器输入PX4 仅支持以下coordinate_frame值MAV_FRAME_GLOBAL_INT、MAV_FRAME_GLOBAL_RELATIVE_ALT_INT、MAV_FRAME_GLOBAL_TERRAIN_ALT_INT。SET_ATTITUDE_TARGET支持的输入组合姿态/朝向SET_ATTITUDE_TARGET.q与推力 setpointSET_ATTITUDE_TARGET.thrust机体角速率SET_ATTITUDE_TARGET.body_roll_rate、.body_pitch_rate、.body_yaw_rate与推力 setpointSET_ATTITUDE_TARGET.thrust固定翼Fixed-WingSET_POSITION_TARGET_LOCAL_NED支持的输入组合通过type_mask位置 setpoint仅x、y、z速度与加速度 setpoint 被忽略。在type_mask中指定 setpoint 的_类型_若不设置这些位飞行器将飞出花朵状轨迹模式以下部分setpoint 类型取值不属于 MAVLink 标准中type_mask字段的定义。取值包括292滑翔 setpointGliding。配置 TECS 在无推力时优先保证空速而非高度即俯仰用于调节空速等效于设置type_mask为POSITION_TARGET_TYPEMASK_Z_IGNORE、POSITION_TARGET_TYPEMASK_VZ_IGNORE、POSITION_TARGET_TYPEMASK_AZ_IGNORE。4096起飞 setpointTakeoff8192降落 setpointLand12288盘旋 setpointLoiter绕设定点飞圆圈16384怠速 setpointIdle零油门、零横滚/俯仰PX4 支持以下coordinate_frame值MAV_FRAME_LOCAL_NED和MAV_FRAME_BODY_NED。SET_POSITION_TARGET_GLOBAL_INT支持的输入组合通过type_mask位置 setpoint仅lat_int、lon_int、alt在type_mask中指定 setpoint 的_类型_若不设置这些位飞行器将飞出花朵状轨迹模式以下setpoint 类型取值不属于 MAVLink 标准中type_mask字段的定义。取值包括4096起飞 setpoint8192降落 setpoint12288盘旋 setpoint绕设定点飞圆圈16384怠速 setpoint零油门、零横滚/俯仰PX4 仅支持以下coordinate_frame值MAV_FRAME_GLOBAL_INT、MAV_FRAME_GLOBAL_RELATIVE_ALT_INT、MAV_FRAME_GLOBAL_TERRAIN_ALT_INT。SET_ATTITUDE_TARGET支持的输入组合姿态/朝向SET_ATTITUDE_TARGET.q与推力 setpointSET_ATTITUDE_TARGET.thrust机体角速率SET_ATTITUDE_TARGET.body_roll_rate、.body_pitch_rate、.body_yaw_rate与推力 setpointSET_ATTITUDE_TARGET.thrustMAVLink 接收端的底层行为可在 mavlink_receiver.cpp 中验证SET_POSITION_TARGET_LOCAL_NED消息先按type_mask把被忽略的字段置为NaN再根据MAV_FRAME_BODY_NED机体坐标系做旋转换算随后调用fill_offboard_control_mode()依据NaN情况自动填充OffboardControlModeposition/velocity/acceleration非全 NaN、yaw/yawspeed有限则置位并只在vehicle_status.accepts_offboard_setpoints为真即处于接受 Offboard setpoint 的模式时才发布TrajectorySetpoint。RoverRover 支持使用下述通用 MAVLink 位置/速度 setpoint 消息进行 Offboard 控制。这些消息内部被转换为 TrajectorySetpoint再由 rover Offboard 模式转换为 rover setpoint。对于 rover 专用 setpoint 和更好的行为推荐通过 ROS 2 使用 Rover Setpoints。Rover MAVLink setpoint 由 MAVLink 参数 MAV_FWDEXTSPForward external setpoint messages转发外部 setpoint 消息控制开关。SET_POSITION_TARGET_LOCAL_NED位置 setpointx、yMAV_FRAME_LOCAL_NEDrover 模块忽略z。速度 setpointvx、vyMAV_FRAME_LOCAL_NED或MAV_FRAME_BODY_NED。yaw/yaw_rateAckermann/差速被忽略速度控制中 yaw setpoint 由速度方向推导。Mecanum麦克纳姆轮可用yaw/yaw_rate独立解耦控制。加速度 setpointafx、afy、afz被 rover 模块忽略。SET_POSITION_TARGET_GLOBAL_INT位置 setpointlat_int、lon_int、alt内部转换为本地 NEDrover 模块仅使用水平分量。速度 setpointvx、vy、vzrover 模块仅使用水平分量。PX4 仅支持以下coordinate_frame值MAV_FRAME_GLOBAL_INT、MAV_FRAME_GLOBAL_RELATIVE_ALT_INT、MAV_FRAME_GLOBAL_TERRAIN_ALT_INT。SET_ATTITUDE_TARGETRover Offboard 控制不支持该消息。Offboard 相关参数Offboard 模式受以下参数影响参数说明COM_OF_LOSS_T等待 Offboard 连接丢失的超时时间秒超时后触发 Offboard 丢失失效保护COM_OBL_RC_ACT。仓库默认定义为1.0 s范围0–60 s步进0.01 s定义见 commander_params.yaml。COM_OBL_RC_ACTOffboard 控制丢失后切换到的飞行模式。可选值仓库定义见 commander_params.yaml0: Position mode默认、1: Altitude mode、2: Stabilized、3: Return mode、4: Land mode、5: Hold mode、6: Terminate、7: Disarm。MAN_OVERRIDE_SPD摇杆移动速度阈值归一化摇杆行程/秒多旋翼或悬停中的 VTOL摇杆移动超过该速度时控制权交回飞行员并切换到 Position 模式若位置不可用则切 Altitude 模式。默认值 1 表示约 0.5 s 内移动半杆触发数值越低越灵敏静止握杆速度为 0不会触发设为 -1 禁用。COM_RCL_EXCEPT指定忽略 RC 丢失、不触发失效保护动作的模式。将位2置位可在 Offboard 模式下忽略 RC 丢失。仓库中该参数为 bitmask 类型定义见 commander_params.yaml位2对应 Offboard。补充说明来自 commander_params.yamlCOM_OF_LOSS_TOffboard 连接丢失超时。默认1.0 s最小0最大60 s允许0.01 s步进调整。COM_OBL_RC_ACTOffboard 丢失失效保护仅在超过COM_OF_LOSS_T秒超时后才会进入。参数 COM_RC_IN_MODE 的值4: Disable manual control表示忽略所有输入源可在无遥控器的情况下飞行此外 COM_FLTMODE_BOOT 中值14对应 Offboard可配置开机默认飞行模式。开发者资源通常开发者不会直接在 MAVLink 层工作而是使用机器人 API如 MAVSDK 或 ROS——它们提供开发者友好的 API并负责管理与维护连接、发送消息、监控响应等与 Offboard 模式及 MAVLink 交互的琐碎细节。以下资源对开发者群体可能有用Offboard Control from LinuxROS/MAVROS Offboard Example (C)ROS/MAVROS Offboard Example (Python)另外官方为固定翼 Offboard 控制特别推荐 PX4 ROS 2 Interface Library它是一种更安全的替代方案负责处理 setpoint 发布与生命周期管理的细节。实用建议与安全要点综合文档与源码接入 Offboard 模式时建议遵循以下要点先启动数据流再切模式无论 MAVLink 还是 ROS 2存活证明流MAVLink setpoint 消息或OffboardControlMode必须在解锁/切入 Offboard 前就绪MAVLink 路径下若要保持位置需持续发送当前位置 setpoint。理解优先级语义OffboardControlMode从上到下第一个置位字段决定所需估计量与可用的 setpoint 消息多旋翼中真正运行哪个控制器由TrajectorySetpoint的内容决定而不是由OffboardControlMode标志位决定。固定翼善用type_mask位置 setpoint 必须通过type_mask指定类型292 滑翔 / 4096 起飞 / 8192 降落 / 12288 盘旋 / 16384 怠速否则会出现花朵状飞行轨迹。ROS 2 只在 Offboard 模式发布 setpointPX4 无法区分内部与外部消息冲突会导致不可预测后果务必用OffboardControlMode声明要写入的 setpoint并持续流式发送 keep-alive。配置失效保护根据是否配备遥控器合理配置COM_OF_LOSS_T与COM_OBL_RC_ACT无遥控器飞行时设置COM_RC_IN_MODE4并按需用COM_RCL_EXCEPT位2豁免 Offboard 模式下的 RC 丢失失效保护。赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐3步掌握PlayIntegrityFix彻底解决Android设备验证失败问题3步掌握PlayIntegrityFix彻底解决Android设备验证失败问题 当你使用root或自定义ROM的Android设备时是否遇到过Google移动开发系统编程应用安全固定翼无人机失速恢复PX4-Autopilot迎角控制算法全解析固定翼无人机失速恢复PX4 Autopilot迎角控制算法全解析 固定翼无人机飞行安全的核心挑战之一是失速问题而PX4 Autopilot的迎角AOA控嵌入式物联网机器人自动驾驶智能硬件PX4 飞行模式开发指南内部模式、外部ROS 2模式与模式约束机制详解PX4 飞行模式开发指南内部模式、外部ROS 2模式与模式约束机制详解 飞行模式Flight Mode是 PX4 自动驾驶仪的核心概念——它定义了自动嵌入式物联网机器人自动驾驶智能硬件上一篇TiXL 时间线控制栏Control Bar完整指南播放、循环、节拍同步与时间显示下一篇终极WebSocket安全指南uWebSockets连接URL验证全解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站