如何学习开源飞控

2023-05-16

前言

有一段时间没有更新文章了。新的一年新气象,因此还是要抽出时间,写点总结与思考,对自己的成长也是很有帮助。今天主要想聊一下开源飞控的学习。本人在5年前,在知乎下写过一篇回答,如何用开源飞控PIXHAWK进行二次开发?

https://www.zhihu.com/question/38874663/answer/84239995

现如今,开源飞控也已经发展的相对成熟很多,所以今天重新整理一下这个问题。

 

为什么要学?

首先还是要搞清楚自己为什么要学开源飞控?要根据自己的需求来,比如你是要做一个精准降落项目,需要用到飞控与视觉模块的交互处理;又或者你是一个飞行爱好者,组装一个飞行器平时飞了玩;又或者你是一个飞控开发人员,但是没有相关的经验等等。所以要搞清楚你的需求是什么,再决定自己是否要学?因为这会引申到你如何去学?

 

如何学?

这里我将开源飞控的学习主要分成三大类:

  • 使用级别学习;

  • 二次开发应用(SDK级别学习);

  • 源码级别学习,这里又分成两种。

    • 一种需求是能够修改开源飞控源码,改造成自己所需;

    • 另一种则是参考开源飞控的源码,打造自己系统的需求;

使用级别学习

重点掌握飞控的使用说明,掌握流程,如何安装,如何根据地面站完成指示的各项校准、检查等;紧接着就是如何调试飞控的PID参数,以及其余各项指标参数,从而达到最佳性能;这里需要做到的就是能够知道各种报错提示以及开放的参数代表什么意思;可以看出,这个级别的应用是不需要看代码的。

二次开发应用(SDK级别学习)

这种情况下,飞控对你而言只是其中一个部件,因为大部分的商品飞控开放程度不够,因此你只能选用开源飞控做项目。
比如,要做一个精准降落的项目,你关注的系统本身是识别,而飞控以及飞行器只是测试平台,所以要能够将你的导航系统与飞控系统进行数据交互,乃至发送控制指令(开源飞控能够接收外部指令,完成任务)。
这种情况下,你无需阅读飞控源码,只需看下官方的开发手册,打通通信链路,知道如何发送控制指令即可,当然,要会用是前提

这部分的需求,现今是最多的,很多项目需求本身已经并不关注飞行平台本身了,而是需要板载计算机处理复杂任务,控制飞行器。所以,需要利用到开源飞控的sdk接口。

源码级别学习

修改开源飞控

这部分的需求,你就需要能够掌握全局了。不仅仅要对整个架构熟悉,小到具体各个模块功能以及实现细节,都需要熟练掌握。这部分的工作量是相当大的。
可以由全局到细节进行学习,首先掌握各个模块组成,了解各个模块功能,然后整理出各个模块的数据流向,最后再深入到模块代码内部,进行精细阅读。当然,涉及到算法的实现细节,就看是否有算法修改的需求了。

这部分的需求,前几年比较多一些,很多厂商的飞控方案是基于开源飞控修改而来的。

 

参考学习

如果是自研飞控的研发人员,针对开源飞控,可以挑选自己感兴趣的功能实现进行阅读。简单粗暴的办法就是直接移植,但是缺点就是,如果不能搞清楚基本原理,常常移植错误。

 

笔者发现很多人在接触开源飞控的时候,学的过于庞杂,不得要领,所以一定要记住自己的学习目的,再去有效学习,毕竟一个人的精力有限,很难做到面面俱到。但是,又要在关键的核心地方掌握基本原理,否则就会迷迷糊糊,两者之间的分寸把握就在个人了。

参考资料

首先是各个开源飞控的官方说明文档资料,其次是现今网络资料也是非常的丰富,从环境搭建到源码分析,一应俱全。

需要注意的是一定要在实践中学习,也就是从项目需求出发进行学习,根据实际的结果进行反馈验证。

 

学习资料

资料这块,建议直接阅读源码,以及官方的说明文档,遇到问题的时候,可以具体查找相关说明,有很多博客写的不错。

PX4 Development Guide

https://dev.px4.io/master/en/index.html#px4-development-guide

Ardupilot官网

https://ardupilot.org/ardupilot/

视频教程方面,直接搜阿木社区即可,相关资料非常丰富。

补充

作为新年的第一篇文章,主要阐述了如何学习或者说如何利用开源飞控,其目的在于笔者也计划利用一年的时间,重新学习掌握一下开源飞控的相关知识,从而更好的提升自己。后续会不断撰写一些关于开源飞控相关的文章,敬请期待!

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何学习开源飞控 的相关文章

  • 敏捷Scrum指南三:Scrum角色之SM(ScrumMaster)

    角色概述 SM主要负责帮助每个人理解并乐于接受Scrum的价值观 原则和实践 对PO和Dev Team来说 xff0c SM履行的是教练的职责 对团队的Scrum工作流来说 xff0c SM履行的是过程领导的职责 职责 Scrum教练 是S
  • 基于F4/F7/H7飞控硬件和px4飞控固件的廉价自主无人机系统(1)-飞控

    前言 穿越机F4 F7 H7飞控是一系列采用stm32系列F4xx和F7xx处理器的飞控的统称 xff0c 是目前穿越机爱好者非常喜欢使用的飞控硬件 xff0c 其价格也非常便宜180 xff5e 410 而px4则是一款常见的开源飞控固件
  • 基于F4/F7/H7飞控硬件和px4飞控固件的廉价自主无人机系统(2)- 外设和固件修改

    前言 为了实现自主飞行 xff0c 无人机需要许多的感知设备 xff0c 而F4 F7 H7所搭载的传感器都很有限 xff0c 因此需要额外的外设 而外设也分为可以直接与飞控连接的以及无法与飞控连接的 本文主要解决如何在F4 pro V2飞
  • 卡尔曼滤波的推导过程详解

    在学习卡尔曼滤波的时候看了很多博客讲这方面的知识 xff0c 感觉都讲得表面的东西 xff0c 无法了解它五个公式真正代表的过程 xff0c 这篇博客我想以我的理解讲讲卡尔曼滤波 首先我先写出卡尔曼滤波的具体过程 xff0c 首先针对如下状
  • 时变系统多传感器信息融合kalman滤波器

    前面的博客中讲得都是针对一种传感器的测量值有状态空间模型对系统状态值进行估计 xff0c 本次博客讨论多传感器下对系统状态值估计的方法 xff0c 即多传感器的数据融合 多传感器的状态融合又分成两种 xff1a 1 集中式kalman滤波
  • px4Flow--替换超声波模块

    几个必看的官方资料 xff1a px4开发者指南 xff1a http pixhawk org dev px4flow px4flow介绍 xff1a http pixhawk org start id 61 modules px4flow
  • 485是什么以及特点、协议、使用方法

    1 485是什么 xff1f 485 xff0c 通信接口的远程称重数据采集方法 xff0c 在要求通信距离为几十米到上千米时 xff0c 广泛采用RS 485串行总线标准 RS 485采用平衡发送和差分接收 xff0c 因此具有抑制共模干
  • 路径规划(一) —— 环境描述(Grid Map & Feature Map) & 全局路径规划(最优路径规划(Dijkstra&A*star) & 概率路径规划(PRM&RRT))

    路径规划问题就是把机器人的工作环境量化的描述出来 xff0c 让机器人知道哪里可以走 xff0c 哪里不可以走 xff0c 从而规划出一条可行的轨迹 xff0c 并且对于轨迹本身进行优化 环境的描述 对于环境的描述 xff0c 我们一般使用
  • 模型参数量(Params)/模型大小 & Pytorch统计模型参数量

    模型参数量大小可以从保存的checkpoint文件直观看出来 total params 61 sum p numel for p in model parameters total params 43 61 sum p numel for
  • C语言-函数实现

    函数的定义 1 逻辑上 xff1a 能够完成特定功能的独立的代码块 2 物理上 xff1a 能够接收数据 也可以不接收数据 xff0c 能够对接收的数据进行处理 也可以不对数据进行处理 xff0c 能够将数据处理的结果返 也可以没有返回值
  • 微策略MicroStrategy校园招聘2013.10.21面试题

    全程英语口语回答 xff1a 一面 计算机基础 1 判断一个字符串是否回文 2 如何快速找出一个有序数组中a i 61 i的那个元素 分析 xff1a 对于任意的j和i xff0c 如果j gt i则A j gt 61 A i 假设所求的解
  • C语言的几个标准定义(__FILE__,__LINE__,__DATE__)

    stm32库的断言 assert 官方提供了包含 FILE LINE 的代码 标准外设库位于stm32fxxx conf h文件 xff1a define USE FULL ASSERT 1U define assert param exp
  • Linux/C/C++ 不可错过的好书

    来源 xff1a 公众号 编程珠玑 作者 xff1a 守望先生 ID xff1a shouwangxiansheng 访问 xff1a https www yanbinghu com 查看更多好文 前言 经常有读者让我推荐书籍 xff0c
  • 这些算法可视化网站助你轻松学算法

    来源 xff1a 公众号 编程珠玑 作者 xff1a 守望先生 前言 无疑 xff0c 数据结构与算法学习最大的难点之一就是如何在脑中形象化其抽象的逻辑步骤 而图像在很多时候能够大大帮助我们理解其对应的抽象化的东西 xff0c 而如果这个图
  • 关于学习生活记录的感想总结

    今年从4月开始决定写博客记录自己学习过程 xff0c 但是直到今天才不过写了1篇而已 xff0c 中间没有坚持 xff0c 这一年感觉过得很糟糕 xff0c 从很久开始我就明白自己有很大缺陷 xff0c 平时难以克服懒惰心理 xff0c 做
  • ESP32踩坑记1——未定义(undefined reference to)

    昨日心血来潮 xff0c 又开始玩起了我的小板板 xff0c 本想给他加个屏幕 xff0c 显示点什么东西 xff0c 用VScode编译的时候居然提示我没有找到文件 这怎么会呢 xff0c 我明明添加了c文件和h文件 xff0c 后来折腾
  • Docker容器进入的4种方式

    Docker容器进入的4种方式 在使用Docker创建了容器之后 xff0c 大家比较关心的就是如何进入该容器了 xff0c 其实进入Docker容器有好几多种方式 xff0c 这里我们就讲一下常用的几种进入Docker容器的方法 进入Do
  • 清晰解读C语言中的比特序、字节序、位域、大小端

    一 比特序 位序 比特序表示一个字节中8个比特位 xff08 bit xff09 之间的顺序问题 分为LSB 0 位序和MSB 0 位序 LSB 最低有效位 MSB 最高有效位 LSB least significant bit 0位序 x
  • 【转载】四种常见系统架构介绍

    转自于 四种常见系统架构介绍 宇大 大 博客园 软件架构 xff08 software architecture xff09 就是软件的基本结构 合适的架构是软件成功的最重要因素之一 大型软件公司通常有专门的架构师职位 xff08 arch
  • 在Ubuntu 20.04上通过Docker使用ROS Kinetic (含RViz, Gazebo等图形界面及加速方法)

    背景 传统上 xff0c ROS 1的每一代系统都基于某一个版本的Ubuntu系统进行开发 xff0c 而其依赖库规模庞大 xff0c 再加上Python 2 3的转换问题 xff0c 导致在不同版本的Linux系统上原生编译安装非对应版本

随机推荐

  • 嵌入式开发中断全解(2)Hard Fault的诊断

    承接上次的文章 xff0c 讲几个大家应该都看过下面的几个中断 xff0c 有的是在启动文件中或者是 c文件中 注意 xff1a 上述是ST公司的Stm32芯片 这里的GD32芯片是国产芯片 xff0c 和stm32类似的操作 xff0c
  • 梯度、Hessian矩阵、Jacobian矩阵的计算

    x表示为如下列向量 xff1a 一 f x 为一维 此时其一阶导数构成的向量为梯度向量g x xff0c 其二阶导数构成的矩阵为Hessian xff08 海森 黑塞 xff09 矩阵G x xff1b 导数可以表示为 xff1a 梯度向量
  • py基础之猜拳游戏的实现

    题目 xff1a 用所学的 py 基础实现猜拳游戏的 5 局 3 胜 xff08 面向对象之前的所有基础知识 xff09 要求 xff1a 5 局 3 胜 xff0c 平局时再加一局 人与电脑对局 思路 xff1a 用 0 表示剪刀 xff
  • 操作系统历史与设计理念

    操作系统的发展并不是一蹴而就的 xff0c 直到今天操作系统仍在不断发展中 xff0c 它与计算机硬件的发展息息相关 xff0c 例如内存 cpu等 以下是操作系统大致的演变过程 xff1a 到现如今 xff0c 计算机系统已经发生了翻天覆
  • 微软牵手大疆打造先进无人机技术

    2018微软人工智能大会正式开幕 xff0c 在大会上微软宣布 xff0c 全球最大的无人机制造商大疆创新 DJI 正在与微软合作 xff0c 打造面向企业市场的先进无人机技术 大疆创新首席科学家吴迪表示 xff0c 基于双方的战略合作 x
  • Linux环境使用VSCode调试简单C++代码

    本文将通过演示一个简单C 43 43 代码的编译调试过程 xff0c 介绍在VSCode中如何使用Linux环境下的GCC C 43 43 编译器 g 43 43 和GDB 调试器 gdb 关于GCC g 43 43 gcc gdb xff
  • layui date控件的使用

    最近项目多用layui xff0c 就总结一下 span class token tag span class token tag span class token punctuation lt span div span span cla
  • putty超时解决方案

    putty连续3分钟左右没有输入 就自动断开 然后必须重新登陆 很麻烦 在网上查了很多资料 发现原因有多种 环境变量TMOUT引起 ClientAliveCountMax和ClientAliveInterval设置问题或者甚至是防火墙的设置
  • 最好的黑客网站

    全国最早最大的黑客网站 黑客基地 xff1a http vip hackbase com 学黑客必去的网站 黑客基地 xff1a http www hackbase com 新手学黑客快速入门的好地方 xff1a http vip hack
  • mysql-connector-java-5.1.40-bin.jar包

    mysql connector java 5 1 40 bin jar 链接 xff1a https pan baidu com s 1G7 FsxkEJfZ4Cy6R s5j g 提取码 xff1a 5r5o
  • 利用spm12将dicom医学图像格式转成NII格式

    废话不多说 xff0c 直接上干货 xff0c 一 首先下载spm12 国外的下载源 xff0c 比较慢 xff0c 这里有百度网盘 xff0c 需要的直接下载 xff1a 链接 xff1a https pan baidu com s 1Z
  • securityCRT ssh远程开启mysql,断开连接后,mysql服务就停止服务

    问题描述 xff1a ssh远程连接服务器 xff0c 在服务器中开启mysql服务 xff0c 在正常断开ssh 连接后 xff0c 重新连接口查看mysql的状态发现 xff0c mysql的状态 xff1a 重新启动mysql xff
  • py基础之掷骰子游戏的实现

    掷骰子游戏 xff08 循环的使用及掌握 xff09 0 两个骰子都是1 6 1 玩游戏要有金币 xff0c 没有金币不能玩游戏 2 玩一局游戏赠金币一枚 xff0c 充值获得金币 3 充值为10元的倍数 xff0c 10元 20个金币 x
  • centOS 不能上外网怎么下载依赖 (通过挂载镜像)

    问题 我们在服务器上部署系统环境的时候 xff0c 常常会遇到找不到该命令 bash span class token operator span span class token punctuation span span class t
  • linux 搭建FTP服务器

    linux 搭建FTP服务器 网上对于ftp搭建有很多 xff0c 但是说的比较的麻烦 xff0c 而且十分容易出错 xff0c 并且在创建完成后存在一些配置的注意事项 废话不多说 xff0c 现在开始 1 安装 vsftpd 安装FTP服
  • 提取论文中公式神奇(写论文的福音)

    写论文还在愁怎么写复杂的公式吗 xff0c 想引用其他的论文的公式 xff0c 发现都是这样的 P X i
  • java中list.add添加元素覆盖之前的问题

    1 在码代码时 xff0c 发现一个问题 xff1a 使用 list lt object gt list 61 new Arraylist lt object gt list add object xff1b 出现之前添加的元素被最后的元素
  • 线性最优解java实现+Cplex java调用

    一 xff1a cplex的使用 xff1a 1 1 导入cplex jar 包的地址 xff1a https pan baidu com s 1Q0Bv24EQdelV2rY IrLoZQ 提取码 xff1a xn14 1 2 将cple
  • KNN算法(K临近算法)及使用KNN算法实现手写数字0-9识别

    首先感谢博主倔强的小彬雅 xff0c 本文使用的素材及部分代码来源其博文机器学习入门 用KNN实现手写数字图片识别 xff08 包含自己图片转化 xff09 xff0c 需要下载素材的可以到其博文最后进行下载 关于KNN算法 knn算法也叫
  • 如何学习开源飞控

    前言 有一段时间没有更新文章了 新的一年新气象 xff0c 因此还是要抽出时间 xff0c 写点总结与思考 xff0c 对自己的成长也是很有帮助 今天主要想聊一下开源飞控的学习 本人在5年前 xff0c 在知乎下写过一篇回答 xff0c 如