无人机/飞控--ArduPilot、PX4学习历程记录(1)

本篇博客用来记录个人学习记录,存放各种文章链接、视频链接、学习历程、实验过程和结果等等....

最近在整无人机项目,接触一下从来没有接触过的飞控...(听着就头晕),本人纯小白。

目录

PX4、Pixhawk、APM、ArduPilot、Dronecode

Dronekit又是什么?

ROS是什么?

1.控制系统

飞控

地面站

2.飞行模式

关于旋翼

关于坐标系

3.器件、设备等

遥控器

机载计算机

传感器&外设

GPS&罗盘&开关

距离传感器

光流

数传

飞行状态


首先,一看到专业性强的英文术语,我就已经感到了头晕,那么先进行初步的了解:

PX4、Pixhawk、APM、ArduPilot、Dronecode

ArduPilot与Pixhawk什么关系? - 知乎 (zhihu.com)

Dronekit又是什么?

--Dronekit是用于控制无人机的Python库。

Pixhawk无人机扩展教程(3)---树莓派安装Dronekit及读取飞控数据_树莓派 python dronekit-CSDN博客

ROS是什么?

--ROS(Robot Operating System) 适用于机器人的开源的元操作系统

cn/ROS/Introduction - ROS Wiki

ROS系统--初识ROS - 知乎 (zhihu.com)

具体的ROS系统 环境安装、学习记录会更新于下一篇博客。


在B站大学找到了一门很好的课程。根据up主的讲解,我进行整理。(零件部分跳过,直接从飞控部分后开始)新手入门无人机+PX4+ROS工程应用开发?看这门课就够了 1.无人机、PX4、ROS必知知识_哔哩哔哩_bilibili

1.控制系统

飞控

Pixhawk(开源飞控硬件 前身是APM -> 后升级为PX4->然后是Pixhawk)

地面站

QGroundControl (QGC) :

1.飞行地图显示无人机位置、飞行轨迹、飞机仪表等。

2.对飞控进行配置,支持PX4 Pro和ArduPilot

3.自主飞行的任务规划

4.显示视频流

去官网即可下载

下载和安装 | QGC Guide (4.3) (qgroundcontrol.com)

进入之后的画面,可以调整各种参数:

安装了一个Windows版本的,还可以尝试安装Linux-ubuntu版本.

遥控器

上位机

飞控是最底层的控制器,直接对无人机进行控制,其他的控制系统充当高级控制器,对飞控进行控制。


2.飞行模式

飞行模式分为手动自主:手动模式需用户使用遥控器控制杆控制飞行;自主模式完全由飞控控制。

常见的三种模式:

>Stabilized:自稳模式,直接控制无人机姿态

>Altitude:定高模式,高度可以恒定

>Position:定点模式,可以进行悬停

可以使用遥控上的开关或地面站来切换飞行模式。

关于旋翼

对于四旋翼无人机,对角旋向一致,相邻旋向相反,反扭距相互抵消。

下图是四旋翼无人机 四个旋翼的一般编号:

通过控制四个旋翼的转速,实现4个自由度运动:升降、偏航、俯仰、横滚

(图片来自up主视频)

关于坐标系

>地理坐标系(NED)

原点一般位于无人机的起飞点

N-北     E-东  D-down地

N轴水平指北,D轴指向地心,E轴水平指东。右手系

>运载体坐标系(FRD)

F-front   R-right   D-down地

x轴沿运载体纵轴,指向前方

y轴沿运载体横轴,指向右翼

z轴与x,y轴构成右手系,指向运载体底部

>姿态角

.横滚角 Roll \phi -- y轴与水平面的夹角

.俯仰角 Pitch \theta--x轴与水平面的夹角

.偏航角 Yaw \Psi--x轴在水平面的投影与N轴的夹角,顺时针为正


3.器件、设备等

遥控器

横滚/俯仰  和  油门/偏航 的控制分别布置在摇杆上。飞行器最少需要4个通道

机载计算机

PX4可通过串行接线 或 WIFI 由独立的记载飞行计算机进行控制。 机载计算机通常使用MAVLinklingAPI,比如MAVSDK 或者 MAVROS 进行通信。

.Offboard模式,用于从地面站或机载计算机对PX4进行Offborad控制的飞行模式。

传感器&外设

基于PX4的系统使用传感器来确定飞行状态(自稳和启用自主控制所需)。

飞行器状态包括:位置/高度,航向,速度,空速,方向(姿态),电池电量等。

系统最低要求:陀螺仪、加速度计、磁力计(罗盘)、气压计。 需要GPS或其他定位系统来启用自动模式和辅助模式。

最小的传感器组合集成在Pixhawk飞控板上,附加/外部传感器可连接到控制器上。

GPS&罗盘&开关

>PX4支持全球导航卫星系统(GNSS)接收器 和 罗盘(磁力计),实时动态(RTK)GPS接收器。它将GPS系统扩展到厘米级精度。

>PX4 GPS集成了安全开关,不使用时 PX4是加锁状态的,必须在起飞之前进行解锁

>通常GPS还自带罗盘,用于测定航向角。PX4 GPS还集成了LED灯和蜂鸣器。

距离传感器

距离传感器用于精准着陆、避障 和 地形跟随。

光流

光流传感器使用 下视相机 和 向下的距离传感器 进行速度估计

PX4将光流传感器输出 与 来自其他定位源(例如GPS)的信息融合,以提供更准确的位置。

光流传感器适用于 没有GPS信号的室内

数传

数传电台 可以在QGC地面站 与 运行PX4的机体之间提供无线MAVLink连接。

这使得飞机飞行中 调试参数、实时检查遥测信息、更改任务等 成为可能。

飞行状态

PX4提供基于机载视觉(LED)声音(蜂鸣器)的高级飞行状态和飞行准备提示。例如,这些提示表明飞行器是否正确校准,是否有SD卡,是否有位置锁定,是否可以安全起飞,是否解锁等。

此外,PX4在地面站的起飞前检查中提供更详细的关于起飞准备的信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/430860.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux 设置快捷命令

以ll命令为例: 在 Linux 系统上,ll 命令通常不是一个独立的程序,而是 ls 命令的一个别名。 这个别名通常在用户的 shell 配置文件中定义,比如 .bashrc 或 .bash_aliases 文件中。 要在 Debian 上启用 ll 命令,你可以按…

鸿蒙 Stage模型-AbilityStage、Context、Want

前提:基于官网3.1/4.0文档。参考官网文档 基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌) 一、 AbilityStage 1.概念 AbilityStage是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilitySt…

怎么写苹果群控核心功能的源代码!

随着移动设备的普及和技术的不断发展,苹果设备群控技术成为了许多开发者关注的焦点,苹果群控技术允许开发者通过编写源代码,实现对多台苹果设备的集中管理和控制。 一、了解苹果群控技术的基本原理 在编写苹果群控核心功能的源代码之前&…

书生浦语全链路开源体系

推荐阅读论文 A Survey Of Large Language Models 书生浦语开源的模型 从模型到应用 书生浦语开源体系 书生万卷开源数据集 除此之外还有OpenDataLab国内数据集下载网站。 预训练框架InterLM-Train 微调框架XTuner 评测工具体系 国内外常见的大语言模型评测基准&#xff1a…

YOLOv8独家原创改进:特征融合涨点篇 | 广义高效层聚合网络(GELAN) | YOLOv9

💡💡💡本文独家改进:即结合用梯度路径规划(CSPNet)和(ELAN)设计了一种广义的高效层聚合网络(GELAN),高效结合YOLOv8,实现涨点。 将GELAN添加在backbone和head处,提供多个yaml改进方法 💡💡💡在多个私有数据集和公开数据集VisDrone2019、PASCAL VOC实现…

基于华为atlas的unet分割模型探索

Unet模型使用官方基于kaggle Carvana Image Masking Challenge数据集训练的模型。 模型输入为572*572*3,输出为572*572*2。分割目标分别为,0:背景,1:汽车。 Pytorch的pth模型转化onnx模型: import torchf…

bun 单元测试

bun test Bun 附带了一个快速、内置、兼容 Jest 的测试运行程序。测试使用 Bun 运行时执行,并支持以下功能。 TypeScript 和 JSX生命周期 hooks快照测试UI 和 DOM 测试使用 --watch 的监视模式使用 --preload 预加载脚本 Bun 旨在与 Jest 兼容,但并非所…

北京Excel表格线下培训班

Excel培训目标 熟练掌握职场中Excel所需的公式函数计算,数据处理分析,各种商务图表制作、动态仪表盘的制作、熟练使用Excel进行数据分析,处理,从复杂的数据表中把数据进行提取汇总 Excel培训形式 线下面授5人以内小班&#xff…

分享Web.dev.cn中国开发者可以正常访问

谷歌开发者很高兴地宣布,web.dev 和 Chrome for Developers 现在都可以通过 .cn 域名访问,这将帮助中国的开发者更加容易获取我们的内容。 在 .cn 域名上,我们已向您提供所有镜像后的内容,并提供支持的语言版本。 Web.dev 中国开…

uipath调用js代码

1,调用js代码,不带参数,没有返回值 为了去掉按钮的disabled属性 function(){ document.getElementsByClassName(submitBtn)[0].removeAttribute(disabled); } 2,调用js代码,带参数,没有返回值 输入参数&a…

el-dialog封装组件

父页面 <template><div><el-button type"primary" click"visible true">展示弹窗</el-button><!-- 弹窗组件 --><PlayVideo v-if"visible" :visible.syncvisible /></div> </template><sc…

Python-Numpy-计算向量间的欧式距离

两个向量间的欧式距离公式&#xff1a; a np.array([[2, 2], [4, 5], [6, 7]]) b np.array([[1, 1]]) # 使用L2范数计算 dev1 np.linalg.norm(a - b, ord2, axis1) # 使用公式计算 dev2 np.sqrt(np.sum((a - b) ** 2, axis1)) print(dev1.reshape((-1, 1)), dev2.reshape((…

掌握WhatsApp手机号质量评分:增加信息可达性

WhatsApp手机号质量评分是用于衡量用户手机号与平台互动的健康度&#xff0c;确保用户通讯时的合规性和安全性。在实掌握WhatsApp手机号质量评分实际应用中&#xff0c;这个评分会影响用户的消息发送的可达性。高质量的评分意味着用户的账户被视为可信赖的&#xff0c;其发送的…

2024最新ChatGPT网站源码, AI绘画系统

一、前言说明 R5Ai创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GP…

平替电容笔推荐:2024五大高口碑电容笔机型别错过!

现在电容笔已成为许多人工作、学习和创作的重要配件之一&#xff0c;它可以很好的提高我们的书写、绘画效率&#xff0c;无纸化学习也能减轻我们书本重量&#xff0c;让学习更加高效&#xff0c;然而&#xff0c;市场上电容笔种类繁&#xff0c;也少不了一些质量不佳的产品&…

掼蛋“六必治”策略

“六必治”&#xff0c;即是指当对手手中只剩下六张牌的时候&#xff0c;我们不管是用炸弹还是登基牌还是其他大牌都要及时压制对手&#xff0c;夺得出牌权&#xff0c;不能让他再次出牌&#xff0c;防止他有一手整牌或者一炸加上一手牌。 对手剩六张牌&#xff0c;有以下几种情…

正大国际:期货结算价是如何理解呢?结算价有什么作用?

如何理解期货结算价&#xff1a; 什么是商品期货当日结算价&#xff0c; 商品期货当日结算价是指某一期货合约当日交易期间成交价格按成交量的加权平均价。当日 无成交的&#xff0c;当日结算价按照交易所相关规定确定。 股指期货当日结算价是指某一期货合约当日交易期间最后一…

The Design and Implementation of a Capacity-Variant Storage System——论文泛读

FAST 2024 Paper 分布式元数据论文整理 问题 随着SSD的使用&#xff0c;其性能稳步下降。如图1所示&#xff0c;SSD的性能随着SSD的磨损的下降率为4.2%&#xff0c;吞吐量下降不太可能是由于垃圾收集造成的&#xff0c;因为&#xff08;1&#xff09;这是几个月来每天测量的&…

手写分布式配置中心(二)实现分布式配置中心的简单版本

这一篇文章比较简单&#xff0c;就是一个增删改查的服务端和一个获取配置的客户端&#xff0c;旨在搭建一个简单的配置中心架构&#xff0c;代码在 https://gitee.com/summer-cat001/config-center 服务端 服务端选择用springboot 2.7.14搭建&#xff0c;设计了4个接口/confi…

Guava处理异常

guava由Google开发&#xff0c;它提供了大量的核心Java库&#xff0c;例如&#xff1a;集合、缓存、原生类型支持、并发库、通用注解、字符串处理和I/O操作等。 异常处理 传统的Java异常处理通常包括try-catch-finally块和throws关键字。 遇到FileNotFoundException或IOExce…