PX4二次开发中查无资料的踩坑总结

写在前:2021年9月下旬开始摸索px4飞控的二次开发,从C++零基础到第一个修改算法后的版本稳定运行,大概用了2个月,从12月初改用新版本px4源码到现在又过去了约1个月,期间踩了各种各样的坑,可以说历尽坎坷,一言难尽。网上能查到的还好办,参考-尝试即可,头疼的是实际中还遇到很多搜遍全网都没有的奇奇怪怪问题,有些都不知从何下手。在此简要记述经过摸索基本解决了的问题和方法,以备忘和分享。可能有些问题是由于我的基础太过薄弱,大神勿笑,如果我的理解有误,请多指教。

1.对空值判断语句错误使用,导致循环输出结果为空

px4 V1.12.3版本中,有许多对空值NAN的操作,并且一个数学表达式中,如果一个值为空,则最终结果也为空,这就导致自己写的一个循环输出结果始终未空。要解决这个问题就需要判断一个值是否为空,如果是,就把该值设为0。首先我是这样写的

float a;
if(a==NAN){a=0;}

自以为写的没问题,但输出始终为空的问题并未解决,头疼了许久。

后来才知道,要比较一个变量是否是空,不能用类似a==NAN这样的语句,因为空不与自身相等。要实现判断一个变量是否是空,可以用全局函数IsNan(),比如可以这样写

float a;
if(IsNan(a)){a=0;}

即实现了如果a是空,则将a赋为零的功能。

2.日志消息语句过多,导致控制延迟增大,控制发散<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值