本文重点介绍PX4飞控的Navigator和mission控制框架和逻辑。Navigator导航部分是无人机自主飞行控制的核心所在,其中包括自主起飞、自主降落、自主返航、自主任务以及GPS失效保护等各个部分。搞懂这个部分有助于理解无人机的自主飞行过程,闲话少说,上干货。
PX4飞控的整体架构参见 Px4源码框架结构图

Navigator模块主要功能在于确定任务类型、地理围栏、失效保护,把任务航点更新后送给位置控制器。其中task_main函数是主函数。

在task_main 函数中,主要分为如下几个部分:

当commander中的传输来的导航模式为mission时,依次运行mission.cpp中的三个函数:初始化on_activation()、主函数on_active()、退出函数on_inactive()。
对于mission模式的主函数on_active(),代码逻辑如下:

mission的主要功能在于对航点数组pos_sp_triplet更新和赋值,航点数组包括previous、current、next三个航点,这一功能由函数set_mission_item()来实现,主要的逻辑为先从SD卡中读取航点信息read_mission_item()赋值给结构体mission_item,然后再将当前航点复制给pos_sp_triplet.current

每当一个航点任务完成is_mission_item_reached()返回值为true,则指针++,读取SD卡中的下一个航点。而判断航点的是否完成由三个判断条件:

航向控制由函数heading_sp_update()实现,将航向setpoint计算赋值给pos_sp_triplet.current.yaw,给到pos控制环,进行航向控制。

至此,导航完成了航点经纬高、航点类型、航向等信息的更新。而位置控制环以pos_sp_triplet为目标进行控制。
注:航点数组中的高度为绝对高度。

PX4飞控之导航及任务架构相关推荐

  1. PX4 Autopilot源码分析 - 总体架构

    PX4 Autopilot源码分析 - 总体架构 应用场景 单独飞控 飞控+任务计算机场景 软件架构 译自PX4 user guide,原文请参阅: https://docs.px4.io/maste ...

  2. PX4飞控Avoidance功能包2018论文分享

    PX4飞控Avoidance功能包2018论文分享 PX4官方Avoidance-2018论文 引言(略) 摘要 简介 相关工作 全局障碍规避 局部障碍规避 对本文启发 方法 $3DVFH$算法 建立 ...

  3. PX4飞控中利用EKF估计姿态角代码详解

    PX4飞控中利用EKF估计姿态角代码详解 PX4飞控中主要用EKF算法来估计飞行器三轴姿态角,具体c文件在px4\Firmware\src\modules\attitude_estimator_ekf ...

  4. XBee模块实现QGC与PX4飞控的组网通信连接

    本篇博客介绍如何利用XBee模块实现QGC地面站与飞控的通信 一.问题的提出 正如 上一篇博客 指出,PX4飞控原装数传模块(3DR Radio)只能一对一通信,并不能实现多机组网通信,而XBee模块 ...

  5. PX4飞控之PWM输出控制

    PX4飞控之PWM输出控制 多旋翼电调如好盈XRotor,DJI通用电调等都支持PWM信号来传输控制信号.常用的400Hz电调信号对应周期2500us,一般使用高电平时间1000us~2000us为有 ...

  6. 【PX4 飞控剖析】04安全飞行手册

    文章目录 飞行前的检查 飞行过程中 飞行降落后 标题 : [PX4 飞控剖析]04安全飞行手册 起源: 根据阿木实验室无人机操作手册的学习笔记,推荐大家购买这个系列无人机,俗话说的好:问渠那得清如许, ...

  7. 【PX4 飞控二次开发】自制ESP8266WIFI数传

    感觉和这个类似 https://blog.csdn.net/sinat_16643223/article/details/118649889 是不是其实那些那么大的wifi数传板子本质和核心就是这个, ...

  8. PX4飞控的PPM接收机

    (一)原理图: PX4飞控的PPM输入捕获由协处理器完成,接在A8引脚,对应Timer1的通道1. (二)PPM协议: PPM的每一帧数据间隔为20ms,用两个上升沿之间的时间间隔表示一个通道的值,如 ...

  9. px4飞控校准中常遇到的一些坑

    1.校准中最后给飞控独立供电,这样可以避免一些不必要的错误.比如要给飞控解锁,就必须是给飞控独立供电,不能通过USB线给飞控供电. 2.校准时至少给飞控接上数传和GPS,注意GPS的方向和机头方向一致 ...

最新文章

  1. 使用模板引擎Trimpath
  2. 用友3.0谋局“新两化” 融合创新迸发新动能
  3. Spring系列(十三):AOP相关知识笔记
  4. linux中dpkg找不到命令_工作中常用的Linux命令介绍与实践
  5. c语言上机作业题及答案,2017计算机二级C语言上机测试题附答案
  6. 在centos7中安装flutter,执行flutter --version时显示flutter的版本为v0.0.0 unknown
  7. 云计算机房的建设预算,射阳高级中学云计算机房建设预算.doc
  8. SPI协议的通信原理
  9. 【制作】基于金沙滩51单片机的贪吃蛇程序
  10. Kubernets:容器日志收集方案
  11. Java Http请求工具类
  12. python判断一个数是否为质数(素数)
  13. 524MB的微信输入法:没广告 你会用吗
  14. 最全的期货交易术语在这里
  15. 2015年9月最新浏览器市场份额统计表
  16. 邮箱客户端程序的实现
  17. 金山云智能营销平台再升级,AI 投放助力游戏厂商精准到达;微医发布 AI 解决方案,提升县域医疗服务能力...
  18. wxpy将个人微信号变成微信聊天机器人
  19. 【ct107d】开发版说明书
  20. scanf()函数详解

热门文章

  1. 网易云terraform实践
  2. Linux目录结构及作用
  3. J2ME下访问.net的webservice
  4. oracle表格颜色,如何在oracle中使用光标更新特定颜色
  5. 2020\Simulation_2\2.最多边数
  6. 征战蓝桥 —— 2014年第五届 —— C/C++A组第8题——地宫取宝
  7. 深度学习——05、深度学习框架Caffe
  8. 大数据WEB阶段Spring框架(二)简化配置的操作
  9. 用 libpcap抓取http报文
  10. 【机器视觉】 dev_update_time算子