PX4-小型固定翼滑跑起飞问题分析

自动起飞过程中经常出现往一边偏的问题,无法很好的到达takeoff点。

参考代码:
src/modules/fw_pos_control_l1/FixedwingPostionControl.cpp 中 control_takeoff 函数
结合航点到达判定函数
src/modules/navigator/mission_block.cpp
可能还需要结合自动起飞代码
src/modules/fw_pos_control_l1/runway_takeoff (起飞被划分为好几个阶段,加油门,滑跑,离地,爬升,航点飞行)

问题分析:
滑跑起飞后流程如下:

    1 加油门
        按照代码设定时间,线性增加油门到最大值,时间为2s
    2 滑跑
        加速直到FW_AIRSPD_MIN(10)*RWTO_AIRSPD_SCL(1.29)
        在2.1 和 2.2 流程中没有航线控制,不管方向,极有可能会出现往一边偏的问题。
    3 起飞
        空速达到之后,一直飞行,直到离地高度大于RWTO_NAV_ALT(5m)
    4 爬升
        爬升过程中,判定航线模式,如果RWTO_HDG为1,则会朝向航点飞行,否则先爬高。
        参数中RWTO_HDG为0,爬升过程中没有航向保持
    5 航点飞行
        爬升完成进入航点飞行,从这里开始进行航点到达判断,如果起飞点容易太近,容易飞过头,会绕大弯到起飞点

弹射起飞如下:

弹射起飞识别:
    弹射起飞是Runway Takeoff禁用的模式下才会使用,RWTO_TKOFF设置成disable。
    若弹射起飞未使能,LAUN_ALL_ON为enable,直接标志为弹射起飞完成,加油起飞。否则进入下面流程
    1 等待强且长的x轴加速度
        加速度阈值超过LAUN_CAT_A,开始计时,时间超过LAUN_CAT_T,认为检测弹射,进入2
    2 判断是否启动主电机(油门)
        判断电机延时(油门延时)状态,如果电机延时时间为0,直接加油起飞,否则进入3
    3 等待时间到
        电机延时到,开启电机,在等待过程中会开启姿态控制,电机开启后启动航点控制(包含高度控制)

问题解决:

1、地面站自动起飞的状态只到runway,即上面的2,甚至最小空速都没有达到。这是因为在Runway takeoff的判断逻辑里面,起飞的状态和流程需要使用到airspeed,然而我们的飞行器上面没有airspeed,并且没有设置FW_ARSP_MODE为禁用模式,以至于空速一直为0,无法进去下一阶段,一直停留在runway状态,更没有L1控制,所以往一边偏。

2、使用滑跑起飞,需要计算出airspeed,可以的话能否使用对地速度作为airspeed,帮助完成整个滑跑起飞的判断流程。同时设置这些参数,更加合理的实现滑跑起飞。缩小加油门时间(代码设置),空速检测阈值FW_AIRSPD_MIN,起飞高度RWTO_NAV_ALT,航线保持RWTO_HDG。

3、使用弹射起飞。禁用滑跑起飞,RWTO_TKOFF设置为disable,开启弹射起飞LAUN_ALL_ON(不开启也可实现起飞,不太好),设置合理加速度阈值及时间,LAUN_CAT_A,LAUN_CAT_T。看情况设置油门延时LAUN_CAT_MDE。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值