我是如何使用PX4实现自己的固定翼航模首次航线飞行的

源自知乎:山河远阔人间烟火

03-03 17:08

本文深入剖析PX4固定翼飞控代码,重点解读内外环控制逻辑及起飞、航行、降落三个状态下的参数配置与控制细节,为开发者提供实用的参数调优参考。

我是如何使用PX4实现自己的固定翼航模首次航线飞行的智能速览

  • 固定翼控制分为内环姿态控制与外环航迹控制。

  • 起飞阶段涉及重量修正空速,需设置合理的爬升速度与高度缓冲。

  • 航行阶段通过航点间线性插值计算高度指令,利用NPFG与TECS算法导引。

  • 降落阶段建议禁用地面高度估计,通过时间参数控制拉飘过程。

我是如何使用PX4实现自己的固定翼航模首次航线飞行的精华内容

深入理解PX4源码是实现固定翼自主飞行的基础,特别是掌握起飞与降落阶段的参数含义与状态切换逻辑。

控制环路架构

固定翼飞行控制分为内外两环,内环负责姿态控制,输出舵面指令;外环负责航迹控制,包含速度、高度和航向误差处理。

外环控制主要涉及非线性路径跟踪导引(NPFG)和总能量控制(TECS)两个核心算法。

外环逻辑依据状态机进行切换,主要涵盖起飞、航行和降落三个核心状态,控制代码位于FixedwingPositionControl.cpp中。

起飞阶段控制

起飞阶段需关注最小空速的修正,公式中包含基于真实重量和滚转角的调整项,可通过设置WEIGHT_BASE为-1取消重量修正。

滑跑起飞状态机依次经历THROTTLE_RAMP、CLAMPED_TO_RUNWAY、CLIMBOUT至FLY状态。

关键参数RWTO_ROT_AIRSPD必须大于takeoff_airspeed,以确保飞机在达到特定速度后离地爬升。

航行与空速调整

航行阶段通过adapt_airspeed_setpoint函数动态调整空速指令,包括风速修正和地速保护。

若无风速传感器,当地速低于FW_GND_SPD_MIN时,系统会自动增加空速指令以保障安全。

高度指令在两航点之间通过线性插值生成,同时在航点接受半径范围内采用本航点高度参数,以确保过渡平滑。

降落进近逻辑

降落初始化阶段需确定进近高度和进近向量,可通过FW_LND_NUDGE参数启用落点或航向的手动纠偏。

建议将FW_LND_USETER设置为0以禁用地面高度估计,避免因传感器缺失导致的控制异常。

高度指令逻辑中,若当前高度低于投影点高度则保持当前高度,否则采用投影点高度。

拉飘触地策略

拉飘过程的本质是在一段时间内使下沉率和推力均降为零,防止着陆时速度过快或失速。

控制拉飘主要依赖FW_LND_FL_TIME(拉飘时间)和FW_LND_FLALT(拉飘高度)两个参数。

建议仅设置拉飘时间,避免因地面距离测量不准导致提前或推迟拉飘引发的着陆事故。

通过对PX4固定翼控制源码的细致拆解,明确了从起飞到降落全流程的控制逻辑与关键参数作用,能够有效帮助开发者规避常见配置错误,提升飞行安全性与稳定性。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章