PX4飞控之导航及任务架构
本文重点介绍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飞控之导航及任务架构相关推荐
- PX4 Autopilot源码分析 - 总体架构
PX4 Autopilot源码分析 - 总体架构 应用场景 单独飞控 飞控+任务计算机场景 软件架构 译自PX4 user guide,原文请参阅: https://docs.px4.io/maste ...
- PX4飞控Avoidance功能包2018论文分享
PX4飞控Avoidance功能包2018论文分享 PX4官方Avoidance-2018论文 引言(略) 摘要 简介 相关工作 全局障碍规避 局部障碍规避 对本文启发 方法 $3DVFH$算法 建立 ...
- PX4飞控中利用EKF估计姿态角代码详解
PX4飞控中利用EKF估计姿态角代码详解 PX4飞控中主要用EKF算法来估计飞行器三轴姿态角,具体c文件在px4\Firmware\src\modules\attitude_estimator_ekf ...
- XBee模块实现QGC与PX4飞控的组网通信连接
本篇博客介绍如何利用XBee模块实现QGC地面站与飞控的通信 一.问题的提出 正如 上一篇博客 指出,PX4飞控原装数传模块(3DR Radio)只能一对一通信,并不能实现多机组网通信,而XBee模块 ...
- PX4飞控之PWM输出控制
PX4飞控之PWM输出控制 多旋翼电调如好盈XRotor,DJI通用电调等都支持PWM信号来传输控制信号.常用的400Hz电调信号对应周期2500us,一般使用高电平时间1000us~2000us为有 ...
- 【PX4 飞控剖析】04安全飞行手册
文章目录 飞行前的检查 飞行过程中 飞行降落后 标题 : [PX4 飞控剖析]04安全飞行手册 起源: 根据阿木实验室无人机操作手册的学习笔记,推荐大家购买这个系列无人机,俗话说的好:问渠那得清如许, ...
- 【PX4 飞控二次开发】自制ESP8266WIFI数传
感觉和这个类似 https://blog.csdn.net/sinat_16643223/article/details/118649889 是不是其实那些那么大的wifi数传板子本质和核心就是这个, ...
- PX4飞控的PPM接收机
(一)原理图: PX4飞控的PPM输入捕获由协处理器完成,接在A8引脚,对应Timer1的通道1. (二)PPM协议: PPM的每一帧数据间隔为20ms,用两个上升沿之间的时间间隔表示一个通道的值,如 ...
- px4飞控校准中常遇到的一些坑
1.校准中最后给飞控独立供电,这样可以避免一些不必要的错误.比如要给飞控解锁,就必须是给飞控独立供电,不能通过USB线给飞控供电. 2.校准时至少给飞控接上数传和GPS,注意GPS的方向和机头方向一致 ...
最新文章
- 使用模板引擎Trimpath
- 用友3.0谋局“新两化” 融合创新迸发新动能
- Spring系列(十三):AOP相关知识笔记
- linux中dpkg找不到命令_工作中常用的Linux命令介绍与实践
- c语言上机作业题及答案,2017计算机二级C语言上机测试题附答案
- 在centos7中安装flutter,执行flutter --version时显示flutter的版本为v0.0.0 unknown
- 云计算机房的建设预算,射阳高级中学云计算机房建设预算.doc
- SPI协议的通信原理
- 【制作】基于金沙滩51单片机的贪吃蛇程序
- Kubernets:容器日志收集方案
- Java Http请求工具类
- python判断一个数是否为质数(素数)
- 524MB的微信输入法:没广告 你会用吗
- 最全的期货交易术语在这里
- 2015年9月最新浏览器市场份额统计表
- 邮箱客户端程序的实现
- 金山云智能营销平台再升级,AI 投放助力游戏厂商精准到达;微医发布 AI 解决方案,提升县域医疗服务能力...
- wxpy将个人微信号变成微信聊天机器人
- 【ct107d】开发版说明书
- scanf()函数详解
热门文章
- 网易云terraform实践
- Linux目录结构及作用
- J2ME下访问.net的webservice
- oracle表格颜色,如何在oracle中使用光标更新特定颜色
- 2020\Simulation_2\2.最多边数
- 征战蓝桥 —— 2014年第五届 —— C/C++A组第8题——地宫取宝
- 深度学习——05、深度学习框架Caffe
- 大数据WEB阶段Spring框架(二)简化配置的操作
- 用 libpcap抓取http报文
- 【机器视觉】 dev_update_time算子