ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PX4 直升机支持与配置调参指南:从飞行器类型选择到斜盘舵机与航向补偿调优

PX4 直升机支持与配置调参指南:从飞行器类型选择到斜盘舵机与航向补偿调优 嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载本文以 PX4-Autopilot 开源仓库为基准系统讲解 PX4 对直升机Helicopter的当前支持范围、机械装配要点、基于 QGroundControl 的完整配置流程以及斜盘swash plate舵机几何、总距/油门曲线、航向补偿和角速率控制器rate controller的调优方法。读完本文你将能掌握在 PX4 上完成一架单主旋翼直升机从选型、接线、参数设置到首次升空调试的完整实战路径并理解其背后的控制分配实现原理。注意本文所有内容均基于当前仓库docs/en/frames_helicopter/index.md、docs/en/config_heli/index.md 及 src/modules/control_allocator 相关源码撰写。支持范围与实验状态实验性支持声明根据 docs/en/frames_helicopter/index.mdPX4 对直升机的支持目前处于Experimental实验性阶段详见 airframes 索引 中的 experimental vehicles 说明。这意味着功能可用但仍在持续完善中欢迎社区贡献者参与维护并提交新功能、新机型配置或其他改进参见 贡献指南已知限制包括对不同类型直升机的支持有限例如不支持共轴coaxial与双旋翼dual rotor机型也尚未提供 RPM governor转速调节器与 autorotation自转下滑等航模级功能。源码佐证虽然文档声明不支持共轴机型但仓库中已存在共轴直升机的控制分配实现ActuatorEffectivenessHelicopterCoaxial.cpp且参数CA_AIRFRAME枚举中定义了12: Helicopter (Coaxial)见 src/modules/control_allocator/module.yaml。这从源码结构看表明相关能力正在开发中读者应以官方文档的“实验性”定位为准。支持的直升机类型PX4 当前支持的直升机结构为单主旋翼 斜盘斜盘由最多 4 个舵机控制并搭配以下两种尾旋翼方案之一机械解耦的尾旋翼tail ESC 方案尾旋翼由独立的电调ESC驱动主旋翼与尾旋翼之间无机械联动机械耦合的尾旋翼tail servo 方案尾旋翼与主旋翼机械联动通过一个舵机控制尾旋翼桨距变距来实现航向控制。允许的飞行操作与 飞行模式 与多旋翼multicopter一致。需要特别注意的是当前不支持在自主/引导autonomous/guided模式下进行带负推力的 3D 飞行。机械装配要点直升机的核心飞控部件装配流程与所有机型基本一致详见 基本装配指南。直升机特有的装配工作主要集中在电机与斜盘舵机的连接与供电上飞控板无法直接为电机和舵机供电只能为 GPS 模块、RC 接收机和低功耗遥测模块供电如 Pixhawk 系列飞控通常需要使用**电源分配板PDB**为电机供电需要**独立的或集成的 BEC电池消除电路**为每个舵机供电。实操提示斜盘舵机在直升机上承担俯仰/横滚的直接控制力供电不足或 BEC 容量不够会导致舵机在负载下掉压、动作迟缓甚至失控装配时应依据舵机峰值电流合理选配 BEC。直升机配置完整流程直升机配置与调试的完整说明位于 直升机配置章节通用配置与标定罗盘、陀螺仪、遥控器飞行模式映射、安全设置等参考 标准配置章节。以下是完整的操作步骤。第 1 步选择直升机机架在 QGroundControl 的Vehicle Setup Airframe中选择直升机机架打开Airframe页面在 Helicopter 分组中选择Generic Helicopter (Tail ESC)该机架会自动将CA_AIRFRAME参数设置为10: Helicopter (tail ESC)见 参数参考。注意仓库中并没有单独的“tail servo 直升机”机架选项。若要使用尾舵机机械耦合尾旋翼方案需要手动将参数CA_AIRFRAME设置为11: Helicopter (tail Servo)见 airframe_reference.md 中Generic Helicopter (Tail ESC)条目以及 src/modules/control_allocator/module.yaml 中的CA_AIRFRAME枚举定义。设置后舵机配置界面会自动切换为支持该机架类型的布局。两种方案在源码中的执行器构成见 src/modules/control_allocator/module.yamlCA_AIRFRAME值方案执行器构成10Helicopter (tail ESC)Rotor主旋翼电机Yaw tail Motor尾电机 N 个 Swash plate servos11Helicopter (tail Servo)Rotor主旋翼电机Yaw tail Servo尾舵机 N 个 Swash plate servos第 2 步配置直升机执行器几何Actuators在Vehicle Setup Actuators页面配置直升机执行器几何。多旋翼等机型的通用舵机配置与测试方法见 Actuators 配置文档而直升机专属的设置信息以本节为准。电机无几何参数可配置Rotor (Motor 1)主旋翼电机Yaw tail motor (Motor 2)尾旋翼电机仅 tail ESC 方案。斜盘舵机数量斜盘舵机数量支持3或4对应参数CA_SP0_COUNT默认 3。4 舵机方案提供额外的稳定性冗余。每个舵机的几何参数对每个斜盘舵机需要设置以下参数参数说明Angle舵机摇臂在斜盘圆周上的顺时针角度俯视0°指向正前方。对应参数CA_SP0_ANG${i}Arm Length (relative to each other)舵机摇臂相对长度即从斜盘中心俯视到摇臂的半径。臂越短同样的舵机行程带动斜盘移动越大飞控会自动对此进行补偿。对应参数CA_SP0_ARM_L${i}Trim舵机单独位置偏移仅在所有舵机居中但斜盘仍不平整的罕见情况下需要。对应参数CA_SV_CS${i}_TRIMAngle 计算示例典型的三舵机配置下3 个舵机在斜盘圆周上均匀分布360° / 3 120°对应角度为舵机编号AngleServo 160°Servo 2180°Servo 3300°附加设置Yaw compensation scale based on collective pitch基于当前总距collective pitch对航向进行前馈补偿的幅度对应参数CA_HELI_YAW_CP_SMain rotor turns counter-clockwiseDisabled主旋翼俯视为顺时针旋转默认或Enabled逆时针对应参数CA_HELI_YAW_CCWThrottle spoolup time设置值秒应大于实际能达到的最小电机启动时间更大的值通常能改善使用体验对应参数COM_SPOOLUP_TIME。第 3 步移除旋翼桨叶并分配输出在进行任何通电测试前先移除旋翼桨叶rotor blades和螺旋桨然后按 Actuator outputs 分配文档 将电机与舵机分配到对应输出接上电池通电使用 Actuator testing 测试滑块 验证舵机与电机的分配和方向是否正确。第 4 步遥控器 Acro 模式验证斜盘动作使用遥控器在Acro 模式见 Acro 模式文档下验证斜盘运动方向是否正确。大多数机架应满足横滚杆向右 → 斜盘向右倾斜俯仰杆向前 → 斜盘向前倾斜。如果你的机架需要相位滞后角phase lag angle偏移只需将该偏移量加到所有斜盘舵机的 Angle 上即可。具体数值请参考机架制造商的文档。第 5 步无桨状态下电并检查主旋翼缓启动**解锁arm**飞行器检查主旋翼是否缓慢启动旋转如有需要通过参数COM_SPOOLUP_TIME见 参数参考调整油门启动时间还可以通过参数CA_HELI_THR_Cx见 参数参考调整油门曲线。默认值为恒定最大油门[1, 1, 1, 1, 1]适用于大多数配置。第 6 步装桨并配置总距曲线解除解锁并断电安装旋翼桨叶并重新上电使用参数CA_HELI_PITCH_Cx见 参数参考配置总距collective pitch曲线根据期望的最小/最大桨叶角度设置曲线的最小值与最大值确保最小值足够低使飞行器能够正常下降宁可从一个偏低的值开始默认值略为负值[-0.05, 0.0725, 0.2, 0.325, 0.45]正是为了便于下降是很好的起始点。直升机调参Tuning完成上述配置后即可装桨解锁。首先按照以下顺序调试角速率控制器rate controller与航向补偿yaw compensation——这两项是直升机特有的。姿态、速度与位置控制器的调试方法与多旋翼相同参见 多旋翼配置章节。注意自动调参autotuning目前不受支持/未经测试以仓库文档撰写时为准。航向补偿Yaw Compensation航向力矩补偿对直升机悬停稳定性至关重要因此必须先做粗略配置等角速率控制器工作正常后可再回到本节进行精细调优。设置主旋翼旋转方向默认假设主旋翼俯视为顺时针。如果你的主旋翼为逆时针将参数CA_HELI_YAW_CCW见 参数参考设为1有两个参数用于补偿主旋翼总距与油门带来的航向反扭矩CA_HELI_YAW_CP_S基于总距的航向补偿比例系数见 参数参考CA_HELI_YAW_TH_S基于油门的航向补偿比例系数见 参数参考当尾旋翼的正向推力使飞行器向与主旋翼旋转方向相反的方向转动时这两个参数需要取负值。源码层面的实现原理见 ActuatorEffectivenessHelicopter.cpp尾舵机/尾电机的输出为actuator_sp(1) yaw 指令 × yaw_sign |总距 − CA_HELI_YAW_CP_O| × CA_HELI_YAW_CP_S 油门 × CA_HELI_YAW_TH_S其中yaw_sign由CA_HELI_YAW_CCW决定逆时针主旋翼取 −1否则取 1参数CA_HELI_YAW_CP_O总距偏移用于指定转子阻力最小对应的总距指令从而把“零补偿点”对准最小旋翼阻力提高补偿精度。对称桨叶时该值对应 0° 桨距升力翼型桨叶时通常对应一个略负的总距指令。文档 config_heli 主要讲解CA_HELI_YAW_CP_S与CA_HELI_YAW_TH_S两个参数而CA_HELI_YAW_CP_O的完整定义见 src/modules/control_allocator/module.yaml。角速率控制器Rate Controller调试角速率控制器应在Acro 模式下调试若无法飞行 Acro 模式也可以在Stabilized 模式见 manual_stabilized 文档下进行。步骤 1关闭 PID 增益只留较小的前馈feed forwardparam set MC_ROLLRATE_P 0 param set MC_ROLLRATE_I 0 param set MC_ROLLRATE_D 0 param set MC_ROLLRATE_FF 0.1 param set MC_PITCHRATE_P 0 param set MC_PITCHRATE_I 0 param set MC_PITCHRATE_D 0 param set MC_PITCHRATE_FF 0.1步骤 2缓慢起飞并施加横滚/俯仰打杆使用 QGC 的调参 UI 观察响应曲线逐步增大横滚与俯仰的前馈增益MC_ROLLRATE_FF、MC_PITCHRATE_FF见 参数参考直到给一个阶跃输入时响应能到达设定值。步骤 3启用 PID 增益首先以如下数值起步MC_ROLLRATE_P、MC_PITCHRATE_P见 参数参考取上一步得到的前馈值的四分之一即P FF / 4param set MC_ROLLRATE_I 0.2 param set MC_PITCHRATE_I 0.2 param set MC_ROLLRATE_D 0.001 param set MC_PITCHRATE_D 0.001之后按需增大P与D增益直至跟踪良好。可以预期直升机上P增益会远小于FF增益这与其他机型相反是直升机的典型特征。附直升机控制分配参数速查表以下参数均定义于 src/modules/control_allocator/module.yaml并在 ActuatorEffectivenessHelicopter.cpp 的构造函数中注册读取参数类型默认值取值范围说明CA_AIRFRAMEenum00–15机架类型直升机相关10 Helicopter (tail ESC)11 Helicopter (tail Servo)12 Helicopter (Coaxial)CA_SP0_COUNTenum32 / 3 / 4斜盘舵机数量源码updateParams()中将数量约束在 3 到NUM_SWASH_PLATE_SERVOS_MAX4之间CA_SP0_ANG${i}float[0, 140, 220, 0]0–360°舵机顺时针角度0° 指向机头 X 轴CA_SP0_ARM_L${i}float1.00–10舵机摇臂相对长度CA_HELI_THR_C${i}float[1,1,1,1,1]0–15 点油门曲线默认恒定最大油门CA_HELI_PITCH_C${i}float[−0.05, 0.0725, 0.2, 0.325, 0.45]−1–15 点总距曲线斜盘需下移才能产生向上推力时取负值CA_HELI_YAW_CP_Sfloat0.0−2–2基于总距的航向补偿比例CA_HELI_YAW_CP_Ofloat0.0−2–2总距偏移对准最小旋翼阻力的总距点CA_HELI_YAW_TH_Sfloat0.0−2–2基于油门的航向补偿比例CA_HELI_YAW_CCWbool00/1主旋翼逆时针旋转标志CA_HELI_RPM_SPfloat1500100–10000主旋翼 RPM 设定值需 RPM 反馈见下CA_HELI_RPM_Pfloat0.00–10RPM 控制比例增益CA_HELI_RPM_Ifloat0.00–10RPM 控制积分增益CA_MAX_SVO_THROWfloat0.00–75°斜盘舵机最大行程角用于舵机输出线性化设为 0 关闭COM_SPOOLUP_TIMEfloat——油门缓启动时间见 参数参考关于 RPM 控制与舵机线性化的源码说明仓库在 ActuatorEffectivenessHelicopter.hpp 中声明了RpmControl类并在编译宏CONTROL_ALLOCATOR_RPM_CONTROL开启时启用见 RpmControl.cpp。RPM 控制输出会叠加到油门曲线输出上对应参数CA_HELI_RPM_SP/CA_HELI_RPM_P/CA_HELI_RPM_I其电机指令公式为motor_command throttle_curve CA_HELI_RPM_P × (rpm_setpoint − rpm_measurement) / 1000参数CA_MAX_SVO_THROW用于斜盘舵机输出线性化当设置值大于 0 时源码通过getLinearServoOutput()见 ActuatorEffectivenessHelicopter.cpp将舵机行程映射到其实际最大偏转的正弦关系上避免 4 舵机冗余布局下出现轴间耦合与机械卡死该功能要求舵机臂在 0 指令时严格居中。直升机控制分配的实现原理源码导读理解直升机在 PX4 中的实现有助于后续自行扩展配置直升机作为一类非线性执行器参与控制分配在 ActuatorEffectivenessHelicopter.cpp 的getEffectivenessMatrix()中注释明确指出“分配是非线性的因此使用updateSetpoint()而非有效性矩阵”随后注册主旋翼电机、尾执行器ESC 或舵机以及 N 个斜盘舵机每个斜盘舵机的指令由总距 俯仰系数 × 俯仰指令 − 横滚系数 × 横滚指令 Trim合成其中俯仰/横滚系数由舵机角度与臂长通过正弦/余弦计算roll_coeff sin(angle) × arm_length pitch_coeff cos(angle) × arm_length这与 QGC 界面中Angle与Arm Length的语义完全对应油门缓启动通过throttleSpoolupProgress()实现解锁后按COM_SPOOLUP_TIME逐步将油门从 0 提升到目标值防止旋翼突然全速旋转主旋翼电机可通过manual_control_switches中的 engage 开关mainMotorEnaged()单独断开/接通饱和检测setSaturationFlag()与getUnallocatedControl()会向角速率控制器报告横滚/俯仰/偏航/推力方向的饱和状态便于上层控制器感知执行器受限。参考测试ActuatorEffectivenessHelicopterTest.cpp 提供了直升机执行器有效性相关的单元测试可作为理解该模块行为的补充。常见问题与注意事项小结3D 飞行的限制自主/引导模式下不支持负推力 3D 飞行调试时请勿在自动模式下尝试倒飞尾旋翼方案的选择CA_AIRFRAME取 10tail ESC或 11tail Servo决定了执行器布局注意仓库当前只有 tail ESC 的 GUI 机架选项tail Servo 需手动改参数供电规范电机走 PDB、舵机走独立/集成 BEC切勿依赖飞控板供电航向补偿符号当尾旋翼正推力使机身转向与主旋翼相反时CA_HELI_YAW_CP_S/CA_HELI_YAW_TH_S需要取负值自动调参不可用直升机目前需手动调参且P增益预期远小于FF增益实验性定位共轴/双旋翼、RPM governor、autorotation 等能力尚不支持或仍在开发中使用前请确认你的机型属于支持范围。更多直升机相关文档可继续查阅直升机配置章节、多旋翼飞行模式、参数参考。赞分享嵌入式物联网机器人自动驾驶智能硬件【免费下载链接】PX4-AutopilotPX4 Autopilot Software项目地址https://gitcode.com/gh_mirrors/px/PX4-Autopilot点击查看免费下载相关推荐PX4 直升机配置与调参完全指南斜盘几何、偏航补偿与角速度控制器PX4 直升机配置与调参完全指南斜盘几何、偏航补偿与角速度控制器 PX4 对直升机的支持以单主旋翼 斜盘 尾桨为核心飞控通过 control_a嵌入式物联网机器人自动驾驶智能硬件PX4 多旋翼Multicopter机架完全指南机型选择、组装、配置与调参实战PX4 多旋翼Multicopter机架完全指南机型选择、组装、配置与调参实战 本文以 PX4 Autopilot 官方文档为骨架系统讲解 PX4 对多嵌入式物联网机器人自动驾驶智能硬件PX4 VTOL 机架全指南三大 VTOL 类型的选型、组装、配置与过渡调参实战PX4 VTOL 机架全指南三大 VTOL 类型的选型、组装、配置与过渡调参实战 VTOLVertical Take Off and Landing垂直起嵌入式物联网机器人自动驾驶智能硬件上一篇OpenLogi 配置容错机制详解严格校验、原子写入与 5 份自动备份如何救急下一篇TradingView轻量级图表库终极指南如何快速构建高性能金融图表创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表