PX4飞控之导航及任务架构

PX4飞控参数详解-GPS定位系统设置 GNSS Systems for Primary GPS (integer bitmask)//全球导航卫星系统(GNSS)(整数位掩码)Heading/Yaw offset for dual antenna GPS//双天线全球定位系统(GPS)的航向/偏航偏移。Log GPS communication data//记录全球定位系统(GPS)通信数据。Protocol for Main GPS//主全球定位系统协议(支持哪个协议)Galileo//伽利略卫星导航系统。BeiDou//北斗卫星导航系统。 阅读详情
AI摘要

本文深入解析PX4飞控的Navigator模块及其mission控制框架。详细介绍了mission模式下的任务更新流程、航点控制逻辑及航向控制机制,帮助读者理解无人机自主飞行的核心原理。

本文重点介绍PX4飞控的Navigator和mission控制框架和逻辑。Navigator导航部分是无人机自主飞行控制的核心所在,其中包括自主起飞、自主降落、自主返航、自主任务以及GPS失效保护等各个部分。搞懂这个部分有助于理解无人机的自主飞行过程,闲话少说,上干货。
PX4飞控的整体架构参见 Px4源码框架结构图
飞控源码框架图
Navigator模块主要功能在于确定任务类型、地理围栏、失效保护,把任务航点更新后送给位置控制器。其中task_main函数是主函数。
Navigator中的函数流
在task_main 函数中,主要分为如下几个部分:
navigator
当commander中的传输来的导航模式为mission时,依次运行mission.cpp中的三个函数:初始化on_activation()、主函数on_active()、退出函数on_inactive()。
对于mission模式的主函数on_active(),代码逻辑如下:
mission
mission的主要功能在于对航点数组pos_sp_triplet更新和赋值,航点数组包括previous、current、next三个航点,这一功能由函数set_mission_item()来实现,主要的逻辑为先从SD卡中读取航点信息read_mission_item()赋值给结构体mission_item,然后再将当前航点复制给pos_sp_triplet.current
set_mission_item
每当一个航点任务完成is_mission_item_reached()返回值为true,则指针++,读取SD卡中的下一个航点。而判断航点的是否完成由三个判断条件:
mission reach
航向控制由函数heading_sp_update()实现,将航向setpoint计算赋值给pos_sp_triplet.current.yaw,给到pos控制环,进行航向控制。
航向控制
至此,导航完成了航点经纬高、航点类型、航向等信息的更新。而位置控制环以pos_sp_triplet为目标进行控制。
注:航点数组中的高度为绝对高度。
PX4之飞行控制框架 PX4的飞行控制程序通过模块来实现,与飞控相关的模块主要有commander,navigator,pos_control,att_control。 阅读详情

相关推荐

无人机嵌入式开发实战:STM32与PX4飞控应用

嵌入式系统作为无人机自主导航的核心技术,通过实时处理传感器数据与飞控算法实现精准控制。其技术原理基于RTOS实时操作系统和硬件加速单元(如STM32的FPU),在工业巡检、农业植保等场景中显著提升作业效率。以PX4飞控框架为例,分层架构设计支持从驱动层到应用算法的模块化开发,结合多传感器融合(如IMU、激光雷达)和路径规划算法(如RRT*),实现厘米级定位与动态避障。在农业无人机项目中,这类技术可将农药喷洒精度提升至每亩节省15%,同时通过内存优化(如静态内存池)保障资源受限环境下的实时性能。

weixin_33910460的博客 484

PX4模块设计之三十四:ControlAllocator模块

Commands:startstop注:print_usage函数是具体对应实现。注:ControlAllocator模块采用了ModuleBase和WorkQueue设计。模块仅支持start/stop/status命令,不支持其他自定义命令。输入输出。

lida2003的专栏 2129

PX4实战之旅(四):构建自定义OFFBOARD控制模块实现复杂航迹飞行

本文详细介绍了如何在PX4飞控中构建自定义OFFBOARD控制模块,以实现复杂航迹飞行。通过创建结构化的状态机,开发者可以灵活编排包含多航点、悬停、偏航旋转和速度控制的自主飞行任务,从而深入理解PX4的底层控制数据流,满足高度定制化的无人机自主飞行需求。

tensorflowjs6的博客 668

PX4代码分析-(三)Navigator代码分析

PX4代码分析-Navigator代码分析

Vincent的博客 1253

PX4项目学习::(一)项目架构

下图所示为PX4的软件顶层架构。我们可以将上图从中间分成两个看,其中右边为传感器采集(GPS、optical_flow、inertial_sensors)回来的数据,,​ px4的控制部分程序,采用的是分层设计。

one__leaf的博客 3845

深入PX4飞控双芯片架构:FMU与IO芯片如何分工?Bootloader损坏了怎么办?

本文深入解析PX4飞控双芯片架构中FMU与IO芯片的分工协作机制,详细介绍了Bootloader损坏的诊断与修复方法,包括通过FMU更新IO固件和使用SWD接口进行深度修复的完整流程,为开发者提供实用的技术指导。

weixin_29191081的博客 473

PX4项目学习::(七)飞控栈:导航(Navigator和mission控制)

(25条消息) PX4飞控之导航及任务架构_Felix_ZL的博客-优快云博客

one__leaf的博客 861

PX4实战(十):PX4导航模块(Navigator)详解

本文将对 PX4 固件 v1.14.3 版本中的 Navigator(导航)模块进行详尽的技术剖析。作为飞行控制栈中的高层决策核心,Navigator 模块承担着将抽象的任务指令转化为具象的底层控制设定点的关键职责。本文基于对 src/modules/navigator 目录下源代码的深究研究与架构反推,详细阐述了该模块的文件组织结构、基于状态机的控制逻辑、uORB 异步通讯机制、核心任务模式(Mission)与返航模式(RTL)的实现细节,以及地理围栏(Geofence)与任务可行性检查(Feasibil

PX4-SLAM-PNC 668

px4用户指南-AttitudeControl

https://docs.px4.io/master/en/flight_stack/controller_diagrams.html

zhangfengmei1987的博客 708

PX4从放弃到精通(二十六):GPS驱动

PX4 1.12.3程序位置: 打开端口,具体的端口由参数确定 #ifdef __PX4_LINUX 如果在LINUX平台上,并且接口为SPI协议,则打开SPI接口 设计GPS偏航角的偏移 设置UBX的三种模式 设置GNSS系统的参数 初始化日志记录,根据参数判断是否将GPS通信相关的信息记录到log日志中 大循环处理接收到的GPS数据 根据GPS模式调用不同的GPS驱动类,并设置设备类型,GPS模式由参数指定 前面根据不同的GPS模式,都实例化了一个对象_helper,通过_helper调用相应的

超维空间科技的博客 4616

PX4飞控原理图

这是官网下载的PX4飞控原理图包括AltiumDesiner的工程

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

PX4飞控Avoidance功能包2018论文分享PX4官方Avoidance-2018论文引言(略)摘要简介相关工作全局障碍规避局部障碍规避对本文启发方法$3DVFH$算法建立记忆将直方图重投影到3D点从3D点建立直方图结合记忆直方图和新直方图适应安全和拐角情况在FOV内部方向运动安全措施:后退直方图中的安全裕度取决于障碍距离取决于进程的代价参数自适应球体避障-离障碍的最小距离地面检测建立内部高...

dckwin的博客 4742

别再只看读写速度了!聊聊手机闪存eMMC、UFS3.1和SSD背后的功耗与体积玄学

本文深入探讨手机闪存技术eMMC、UFS3.1和SSD在功耗与体积设计上的关键差异。通过对比接口技术、封装工艺和温度管理,揭示移动存储如何在有限空间内平衡性能与能效,为消费者提供选购参考。重点关注UFS3.1的差分信号设计和全双工架构带来的显著优势。

weixin_27061475的博客 444

【PX4 学习4】导航及任务框架

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

wb790238030的博客 1406

从IR Drop到EM分析:数字IC电源规划中那些没人明说的细节(以MTCMOS配置为例)

本文深入探讨数字IC后端设计中电源规划的关键细节,特别关注MTCMOS配置、电源网络电阻最小化和level shifter供电等实战技巧。通过分析IR Drop和EM问题,提供优化floorplan和powerplan的具体策略,帮助工程师避免常见陷阱,提升芯片设计的稳定性和可靠性。

q9w8e7r6t5的博客 511

Vivado FFT IP核配置与实战:FPGA信号处理硬件加速指南

快速傅里叶变换(FFT)是数字信号处理(DSP)中的核心算法,用于将时域信号转换到频域进行分析。其原理基于离散傅里叶变换(DFT),通过蝶形运算的分解与复用,大幅降低了计算复杂度。在工程实践中,软件实现的FFT难以满足高速实时处理的需求,因此硬件加速方案至关重要。FPGA凭借其并行架构和可定制性,成为实现高性能FFT的理想平台。通过集成专用的FFT IP核,如Vivado中的Pipelined Streaming I/O架构,可以构建流水线化的计算引擎,实现极低延迟和高吞吐量的连续数据流处理。这种硬件方案特

weixin_42536863的博客 646

PX4飞控之自主返航(RTL)控制逻辑

本文基于PX4飞控1.5.5版本,分析导航模块中自护返航模式的控制逻辑和算法。

zhenglongf的博客 5303

电商平台大数据分析指标

一、五大关键数据分析指标 1.1活跃用户量 活跃用户量是一个基本的指标,有 DAU(日活跃用户)、WAU(周活跃用户)和 MAU(月活跃用户)三个层次; 1.2转化 转化是一个非常重要的指标,电商运营需要关注主路径、次路径甚至精细到每一个品类 / SKU 的转化率; 1.3留存 留存要从不同的时间周期上研究,包括次日留存率、3 日、7 日、30 日留存; 1.4复购 复购则要从 3 个角度去看,复购用户量、复购率和复购金额比; 1.5GMV GMV 是最重要的指标,我们的运营最终是围绕这

默主归沙的博客 4818

【无人机】PX4 飞控系统架构

参考:px4飞控官方手册。

weixin_60324241的博客 4933

Pyhon在振动信号处理中的高级应用(一):振动信号特征(时域、频域)提取

文章目录一、概述二、算法原理2.1 时域统计特征三、python代码实现 一、概述 二、算法原理   这里我们借鉴西安交通大学机械学院雷教授的论文《Fault diagnosis of rotating machinery based on multiple ANFIS combination with GAs》相关研究成果。雷教授在论文中共列举了4类共24种振动信号的时域和频域特征。 2.1 时域统计特征 p1=∑n=1Nx(n)NP2=∑n=1N(x(n)−p1)2N−1p3=(∑n=1N∣x(n)∣N

白银时代的博客 1万+

概率的接力:拆解大模型“预测下一个词“的底层逻辑

大模型的智能不在于它拥有了意识,而在于它用纯数学的架构,将人类语言的复杂结构压缩为可计算的向量轨迹与概率接力。当我们不再将其拟人化为"思考者",而是视作高维条件概率引擎时,才能真正驾驭它。预测下一个词,从来不是终点,而是起点。未来的核心竞争力,属于那些能洞察其统计本质、善用其模式生成能力,并以人类理性与事实为锚点的协作者。词元的轨迹终会止步于上下文窗口,但对技术底层的清醒认知,才是跨越幻觉、走向真实智能的基石。

AI浩 328
上一篇: Pixhawk原生固件PX4之常用函数解读
下一篇: USB转TTL、USB转串口、USB转232的区别
csshuke
博客等级 码龄16年 1517粉丝 8原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值