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

PX4项目学习::(五)项目启动流程(从上电开始) 启动脚本是一个神奇的东西,它能够识别出你对应的飞机类型,加载对应的混控器,选择对应的姿态、位置估计程序以及控制程序,初始化你需要的驱动程序。下面来分析下。 阅读详情
AI摘要

本文详细介绍了PX4飞控的软件和硬件架构,包括软件的BSP、RTOS、中间件、应用框架和算法实现,硬件的模块化设计,以及PX4的传感器驱动、滤波算法、姿态算法和PID控制。同时,阐述了PX4内部通讯通过uORB实现,并提及了地面站开发和开源飞控功能开发的相关内容。

目录

 

序:项目整体嵌入式架构:

无人机方面做嵌入式编写的飞控总结

1软件:

2硬件:

1 PX4/Pixhawk的软件体系结构

2、下图所示为PX4的算法顶层架构。

左边是整个飞控系统的控制功能实现

右边是位姿估计算法的实现

整个飞控内部的通讯通过uORB实现

3.涉及内容


序:嵌入式项目整体架构:

在这里插入图片描述

无人机方面做嵌入式编写的飞控总结

        首先这部分分为软件(驱动层+操作系统与中间件+功能模块(算法栈&其它))和硬件(主控,模组,电源)

1软件:

  1. 最基础的驱动开发(iic,spi和uart)解出传感器的原始数据(要记住传感器测量的数值不是真实值);
  2. 对传感器的数据进行处理的几种方法(即算法--在飞控里面主要是经过处理之后得到位置/速度估计和姿态估计,可能需要障碍估计等等,这需要知道 姿态算法,ekf,ukf,Ins+gps+ekf组合导航算法 等待);
  3. 得到估计值就可以做PID控制了(包括姿态控制pid和导航运算pid);
  4. 飞行平稳就能让飞机去做自己的执行任务(这部分可能是巡线航测航拍,农业植保,电力巡检等等---这其中就设计拍照控制,电子围栏设定,电池管理等等......)  ---- 而这就需要手机app或者电脑的软件的支持。。。。等等。。。

所有,这是第一张图最基本的逻辑;

2硬件:

        应该是要用的模块化的思想(硬件必备最基本的四大件:GPS模块,飞控模块,imu模块,电源/led模块)

        除了四大模块之外,按自己所需的,可以开发osd,光流等等。。。毕竟一旦量产,节省都是钱

        除了飞控和其电路,还要知道云台的调试和使用,结构如何设计。。。。。

  

1 PX4/Pixhawk的软件体系结构

        PX4/Pixhawk的软件体系结构主要被分为四个层次,这可以让我们更好的理解PX4/Pixhawk的软件架构和运作:

  1. bsp:提供硬件驱动程序
  2. RTOS: 提供内核+组件(IO设备管理框架,网络,UAVCAN和故障安全系统)。
  3. 中间件与基本库: 这一层包含了所有的系统库和基本交通控制的函数。
  4. 应用程序框架: 这是为操作基础飞行控制的默认程序集(节点)。
  5. 应用程序的API:这个接口提供给应用程
无人机/飞控--ArduPilot、PX4学习历程记录(1) PX4支持全球导航卫星系统(GNSS)接收器 和 罗盘(磁力计),实时动态(RTK)GPS接收器。的高级飞行状态和飞行准备提示。例如,这些提示表明飞行器是否正确校准,是否有SD卡,是否有位置锁定,是否可以安全起飞,是否解锁等。根据up主的讲解,我进行整理。飞控是最底层的控制器,直接对无人机进行控制,其他的控制系统充当高级控制器,对飞控进行控制。PX4将光流传感器输出 与 来自其他定位源(例如GPS)的信息融合,以提供更准确的位置。飞行器状态包括:位置/高度,航向,速度,空速,方向(姿态),电池电量等。 阅读详情

相关推荐

px4源码学习三--px4源码结构分析

px4源码结构分析Px4源码目录

znr1995的博客 5894

PX4学习笔记3: 速度控制

记录一下PX4在offboard板外模式下用速度控制四旋翼的过程. 参考资料如下: PX4板外模式教程 youtube速度控制小实验 注意:必须2Hz以上的频率发布控制消息,否则PX4则自动由offboard切会返航return模式(一直网往上飞至一定高度后返航)= 1.mavros话题 详见: mavros话题 四旋翼的控制量主要为[x,y,z,roll,pitch,yaw,vx,vy,vz,wx,wy,wz];也就是位置和姿态以及两者的变化率共12个变量. 其中位置在mavros中包括globa.

wbzhang233的博客 7870

EGO_Planner代码学习(三):px4ctrl代码流程

上节阅读了EGO_Planner的轨迹服务器部分的代码,其实质是将规划器生成的轨迹进行离散化,间隔10ms计算当前时刻在轨迹上的位置,并发送到话题上。这两天抽空看了下控制器部分的代码,在l这个软件包里,它的功能是进行px4的模式识别和上层控制,通过线性控制器把发布过来的位置命令解算成飞控的控制量,通过mavros发送给px4。下面就详细看一下它的启动过程。

qq_41069236的博客 6805

【无人机】PIXHAWK、PX4、APM区别

PIXHAWK、PX4、APM APM固件专为Arduupilot开发的固件,现也用于PIXHAWK。有ArduCopter社区支撑、开放,功能全、迭代升级快,适合直接用。由于有较多的历史兼容性需求,软件代码体系相对杂乱,还封装了PX4的内核,学习起来困难些。 PX4固件专为PIXHAWK开发的固件。相对封闭,代码体系相对简单清晰,社区相对小,迭代慢一些,但因为相对清晰,适合学习研究。 PIXHAWK飞控是开源硬件架构,全世界很多公司出品了基Pixhawk的飞控产品。他们都有共同的硬件架构和相同的连接方式、

See_Star的博客 1万+

PX4-1-开源飞控项目

分享完工具系列,我们开始PX4飞控技术的分享,写分享相对于自己写笔记要难很多,在整理自己笔记的过程中也重新思考很多问题。 飞控技术的分享系列更多分享的是思路和框架。对于PX4这种大型开源项目,源码的学习和思路框架的学习同样重要,专于源码容易迷失在代码之中,找不到方向。 当然个人的水平和编辑能力有限,如果有理解不一样的地方,欢迎私信我讨论,我会在后续的分享中更正。 我们后面主要分享的是PX4这一个开源飞控,当然目前世界上有很多的优秀开源飞控项目,在开始PX4的分享之前,我们先聊一下一些著名的开源飞控项目

AcmeUav的博客 2089

PX4学习 笔记一

modules/position_estimator文件夹下,有params.cpp,CMakeLists.txt,position_estimator_inav_main.cpp,inertial_filter。commander进行传感器的校准,飞行前的检查,解锁状态的切换,飞行模式切换。2.inertial_filter是加速度的一次积分得到速度,二次积分得到位置的过程中,对动态误差的处理进行校准。vehicle_status.msg 解锁的状态,飞行模式,飞行状态,定义的是全局变量。

2301_76924398的博客 1109

PX4项目学习::(一)项目介绍::源码目录介绍

包含所有上层应用的模块实现,PX4的上层程序都是通过模块的形式来运行(类似于ROS里面的节点),每一个模块订阅和发布uORB信息。mc_att_control:即multi-copter attitude control,多轴飞行器的姿态控制算法实现,主要就是姿态的内外环PID控制,外环角度控制,内环角速度控制。mc_pos_control: multi-copter position control,多轴飞行器的位置控制算法实现,主要是位置的内外环PID控制,外环速度控制,内环加速度控制。

one__leaf的博客 893

PX4项目学习::(四)中间件::任务管理与调度

Work queue tasks: 该模块在共享工作队列上运行,与队列中的其他模块共享相同的堆栈和工作队列线程优先级。Tasks: 模块在自己的任务中运行,具有自己的堆栈和进程优先级。

one__leaf的博客 1988

PX4学习笔记

目录网址Pixhawk、PX4、APM 、 ArduPilot关系硬件照片、示意图逻辑图 集多旋翼控制框架软件框架辅助工具、软件说明(误区)裸机运行基于OS运行例子可执行程序、应用、源码(代码)、进程、线程源码、固件的区分Pixhawk的启动流程大概逻辑 网址 PX4原生固件及其地面站网址 https://github.com/PX4 http://px4.io/ https://github.com/mavlink/qgroundcontrol 原生固件代码:C++,构架清晰,容易维护修改,多进程 目

记录老板的每次pua,分享领导每天的毒鸡汤... 1万+

PX4实战(一):PX4简介及系列文档目录

PX4从入门到精通第一篇,讲解PX4软件的作用、软件下载、环境搭建、软件架构,后续代码讲解计划等。

PX4-SLAM-PNC 5850

【PX4学习笔记】2. 真正开始入门px4开发

1. 前言 这学期有一门机器人导论课程,最近在课程实验中使用了turtlebot,对ROS下机器人应用的开发有了深入的理解,经验在px4开发上也同样适用。 根据turtlebot实验的经验,我开始有能力阅读px4例程源码。根据官方教程的指导,我学会了如何用gazebo仿真环境下运行C++程序。 turtlebot和px4的区别 编译方式 前者是工作空间下catkin_make 后者是工作空间的Firmware下“make……” 程序包结构 后者是 运行C++程序的方式 前者是新开一个终端

【人工智障 | 计算鸡视觉 | 机器孩】 8861

深入CRSF协议数据包:手撕STM32代码,教你像调试串口一样分析ELRS遥控数据流

本文深入解析CRSF协议数据包,通过手撕STM32代码,教你如何像调试串口一样分析ELRS遥控数据流。从硬件准备到数据包捕获状态机设计,再到高级数据分析技巧和实战应用,全面覆盖CRSF协议的解析与优化,帮助开发者构建稳定可靠的通信系统。

weixin_29194693的博客 337

关于SVPWM七段式五段式调制后的相电压和线电压波形——大疆DJI技术笔试

1.SVPWM七段式/五段式调制的相电压和线电压波形 脉宽调制(PWM)在并网变流技术中得到了广泛的应用。与正弦脉宽调制(SPWM)的控制方法相比,SVPWM方法具有直流侧电压利用率高,电压谐波小,易于数字化实现等显著的优点,从而使SVPWM在实际的应用中越来越普遍。TMS320F28335是32位浮点的DSP控制器,具有150MHz的高速处理能力,18路PWM输出,与前几代数字信号控制器相比,性能平均提高了50%。其中具体的SVPWM理论实现的原理,请参考我的博客永磁同步电机的矢量控制策略(七)一一一SV

昔时扬尘处 2万+

【Python程序开发】湖南省职业院校技能大赛python程序开发赛项样题二

【Python程序开发】湖南省职业院校技能大赛python程序开发赛项样题二

况老师话竞赛&blog 2203

【论文泛读|附源码】如何进行动力学重构? 神经网络自动编码器结合SINDy发现数据背后蕴含的方程

这一篇文章叫做 **数据驱动**的**坐标发现与方程发现算法**。想回答的问题很简单,就是根据数据写方程。 想想牛顿的处境,如何根据各种不同物体下落的数据,写出万有引力的数学公式的。这篇文章就是来做这件事的。当然,这篇论文并没有从牛顿视角,完全去思考牛顿所想。而是利用现有的**深度学习技术** 和 **动力学重构的方法** 。提出了一种框架,基于现有的计算机技术,去发现物质运动背后的物理规律。 这里直接给出这篇方法的核心思路图,我们后面会逐个讲解。

qq5q13638的博客 2456

Google antigravity 不支持你所在地区?手把手教你把账号改成支持地区

Google antigravity功能火爆,但国内老账号根本用不了🤬本文分享几种有效的账号国家地区切换方法,最快几分钟就能让antigravity直接亮起🔥

XiaoqiangClub的博客 2万+

2026年GESP3月认证C++五级真题解析

因为要合并成升序数组,所以当A[i]小于等于B[j]时,取A[i],否则取B[j]。当a[i]>a[j]时,左边数组中从i到m的所有元素都大于a[j],因此逆序对数量增加m-i+1。给定一个包含n个互不相同的正整数的数组A与一个包含m个互不相同的正整数的数组B,请你帮忙计算有多少个数在数组A与数组B中均出现。下面代码实现两个整数除法,其中被除数为一个“大整数”,用字符串表示,除数是一个小整数,用int表示,则横线处应该填写()。且a[i] > a[j],则a[i]和a[j]是一个逆序对。

lan_in的博客 119

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

本文聚焦OpenClaw从测试环境走向生产环境的核心痛点,围绕“性能优化、安全加固、监控运维”三大维度展开实操讲解。先明确生产环境硬件/系统选型标准,再通过硬件层资源管控、模型调度策略、缓存优化等手段提升响应速度(实测响应效率提升50%+);接着从网络、权限、数据三层构建安全防护体系,集成火山引擎安全方案拦截高危操作;最后落地TenacitOS可视化监控与Prometheus告警体系,配套完整故障排查清单和虚拟实战案例。全文所有配置、代码均经实测验证,兼顾新手入门实操性和进阶读者的生产级部署需求。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 3428

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: PX4之常用函数解读
下一篇: PX4项目学习::(七)应用程序启动模板
逍遥_xiaoyao
博客等级 码龄6年 286粉丝 144原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值