PX4 1.12版本后启用lpe导致飞控启动失败的问题的解决办法

时间:20220531

问题

在PX4 升级到1.12后使用local_position_estimator也就是LPE后会导致飞控启动失败, 从SD卡的log中可以看到是硬件错误.

解决办法

将文件 PX4Firmware根目录中的文件\platforms\common\include\px4_platform_common\px4_work_queue\WorkQueueManager.hpp中的wq:nav_and_controllers的堆栈大小改为较大的数值, 实测需要5000以上把, 这里可以改回7300, 再重新编译新固件即可正常启动了.

// PX4 att/pos controllers, highest priority after sensors.
static constexpr wq_config_t nav_and_controllers{"wq:nav_and_controllers", 7300, -13};

注:

PX4 1.13版本该问题已经修复 https://github.com/PX4/PX4-Autopilot/issues/17380修复手段是将lpe移动到了INS0任务队列中, 但是已发布的1.12目前就这样了, 只能自己修改了.

解决过程

花了两天的时间, 对历史上的每次提交进行了逐步排查, 发现是在主分支上增加Multi-EKF后出现的问题, 该提交为 0f411d6820e55f5e7cb58d064095725f28a7820a
在本次提交中, wq:nav_and_controllers工作队列的堆栈被设置到很小的数值, 导致了lpe启动后堆栈溢出, 如下图所示, 原本是7200后来变为了1728, 虽然在最近的几次提交中该数值增加到了2000多, 但是依然会导致LPE启动失败
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值