px4讲解(一)历史起源

2023-05-16

第一节
对于初次接触无人机行业的人来说一些无人机行业课外知识还是需要了解的,ardupilot和px4是目前无人机行业最受欢迎、也是最为先进的飞控软件,他们又是如何诞生并一路走来的呢,他们跟Dronecode基金会又有什么千丝万缕的联系呢,下面一一揭晓。

早在2005年一个意大利开发团队开发出了一款Arduino开源电子原型平台,其团队根据Arduino方便开发、源码开源特性、衍生出Ardupilot和WMC等产品。
多旋翼

  • 2007年 Chris Anderson 创立一个DIY Drones网络社区 https://diydrones.com/
  • 2008年 Jordi 制作了一个可以自动飞行的传统直升机无人机并赢得了第一届Sparkfun AVC大赛.,并将源码上传到了 DIY Drones网络社区 中。
  • 2009年 Chris Anderson 和 Jordi 二人合作成立了 3D Robotics(3DR) 公司
  • 2009年5月 Jordi在3D Robotics 发布了第一款Ardupilot 红色飞控主板,之后几年陆续更新了APM1、APM2、APM2.5/2.6三款开源飞控硬件系统,然而APM的硬件系统也因为其8位的处理器系统高负荷运行而走下神坛。
    在这里插入图片描述
  • PX4是由苏黎世理工的计算机视觉与几何实验室的一个软硬件项目PIXHAWK演变而来,目的在于为学术、爱好和工业团体提供一款低成本高性能的高端的自驾仪。
  • PIXHAWK的硬件由PX4FMU/PX4IO两部分构成,它是双处理器结构,一个擅长于强大运算的32 bit STM32F427 Cortex M4 核心 168 MHz/256 KB RAM/2 MB Flash处理器,还有一个主要定位于工业用途的协处理器32 bit STM32F103,它的特点就是安全稳定,在主处理器宕机后保障安全。在APM硬件不能满足使用需求后,3DR和PX4团队进行了合作,在2013年11月共同发布了Pixhawk,而原来的ardupilot也被移植到pixhawk上进行运行,也叫apm for pixhawk,而PX4团队为pixhawk设计的飞控软件叫PX4,从此之后,ardupilot和px4在硬件以及底层系统上基本实现了统一。
  • Dronecode基金会在2014年10月开始启动,其同时对Ardupilot和PX4两大开源飞控进行支持和运行,虽然两者都共同使用pixhawk作为硬件平台,但是由于Ardupilot发展历史比较悠久,对各类型的机型以及水下航行器、小车都具有非常好的支持,而px4因为发展时间短暂,在2016年以前都只能支持部分机型。然而2016年8月,Dronecode的董事会成员,ArduPilot的团队领袖之一Philip Rowse向Dronecode会员公司发送了一封内部邮件,公布了Ardupilot即将离开Dronecode的决定。至于为何要离开,应该是跟Dronecode的会员制度有关,另外一个也跟两大开源飞控不同的开源协议有关,PX4的是BSD协议,而Ardupilot的是GPL协议,两者最大的区别在于BSD协议可以将开源软件二次开发后用作商业用途,而GPL协议不允许修改后和衍生的代码做为闭源的商业软件发布和销售,所以如果是公司要使用开源飞控作为产品开发的话应该选取PX4更为合理。
    自此,PX4作为Dronecode基金会唯一支持的开源飞控项目,也得到了更好的发展,但作为PX4和Ardupilot两款开源飞控的使用者和开发者来说,Ardupilot的功能更为全面,稳定性也要更好一些,软件中存在的逻辑问题也要少一些,而PX4中存在更多的问题,比如对于着陆的判断条件、航线航段的切换中都存在一些问题,需要后续优化,但是在软件的架构上PX4要明显优于Ardupilot,模块更加独立,架构更加清晰,模块之间数据的传递也更加明确。
  • 开源飞控的发展集合了数百上千个优秀开发者的智慧,这才能在短短的几年时间内开发出功能如此强大的产品,虽然往后Ardupilot和PX4会以不同的方式推动开源飞控的发展,但是我相信会有更好的明天在等待着我们去探索,这是许许多多飞控爱好者们的共同愿景。在人工智能技术、图像识别技术飞快发展的今天,开源飞控也会很快出现视觉导航、视觉避障、多机协同、目标跟踪等先进方向的开发者,这是一个有期待的时代。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

px4讲解(一)历史起源 的相关文章

  • Hive分区表修改(增删)列

    文章目录 一 环境及测试数据二 删除列2 1 测试表test22 2 DDL删除列 xff1f 2 3 代码连接Hive Metastore删除列2 3 1 同时更新表与分区元数据 三 添加列结论参考链接 一 环境及测试数据 环境 xff1
  • python通过kerberos连接impala操作hive

    一 python2版本 1 docker基础镜像 tobyhferguson impyla tester 2 安装相关包及配置 2 1 安装包 参考python3 6 5基于kerberos认证的hive和hdfs连接调用 yum span
  • 程序员成长路线

    回顾过去 xff0c 我们会清晰地看见走过来的路线 xff0c 但面向未来我们又该如何走下去 xff1f 但凡过往 xff0c 皆为序章 xff0c 过去不可变 xff0c 未来才是希望 xff0c 而如何去规划并管理好未来的成长进化之路
  • 消息队列、信号量、事件组、任务通知之间的区别

    消息队列 信号量 事件组 任务通知之间的区别 消息队列 xff08 需要传递消息时使用 xff09 在任务与任务间 中断和任务间传递信息 xff0c 可以数据传输 事件标志组 xff08 多个事件同步 xff0c 不需要传递消息时使用 xf
  • 包含癞子的麻将胡牌算法

    记录一下麻将的通用胡牌算法实现 xff0c 只要满足M x ABC 43 N x DDD 43 EE 即可胡牌 在这里先分析一下最简单的胡牌思路 xff1a 先找出所有可能的将牌 xff0c 若除去两张将牌之外的所有牌都能成扑 xff0c
  • 麻将胡牌算法

    用数字代替麻将中的所有牌 xff1a 一万 九万 1 9 一筒 九筒 11 19 一条 九条 21 29 东 南 西 北 中 发 白 31 37 胡牌的种类 xff1a 对对胡 十三幺和33332 判断胡牌的过程 xff08 以下所说的规则
  • 麻将胡牌万能公式:

    基本胡牌类型 M AAA 43 N ABC 43 DD xff08 AAA 是三个刻字 xff0c ABC 是顺子 xff0c DD 是将牌 xff09 麻将总共14张 xff0c m和n系数 xff0c AAA代表一样的三个 xff0c
  • 麻将

    来自百度百科https baike baidu com item E9 BA BB E5 B0 86 215 fr 61 aladdin 一副完整的麻将牌共152张 包括字牌 花牌 序数牌 百搭牌 流行的是精简版麻将 xff0c 不含百搭和
  • 使用etcdctl 获取 kubernetes etcd内容

    kubernetes排错过程中可能需要连接到etcd库核对数据 通过etcdctl命令可以连接到库 xff0c 查看etcd库中的key value 创建一个etcdctl的别名 证书的位置可以通过查看kubelet 运行参数获取到 etc
  • Jenkins 部署jar包到服务器并启动后的乱码问题

    在java命令中加 参数 Dfile encoding 61 UTF 8 export LANG 61 zh CN UTF 8 是为了解决应用输出的日志中有乱码的问题 export LANG 61 zh CN UTF 8 nohup jav
  • VS CODE 页面没暂存/提交就放弃更改了怎么还原

    如图所示 xff0c 不小心手滑将还没有暂存的页面点了放弃更改 xff0c 过了两天才发现搞错了 xff0c 这时候怎么办呢 xff1f 不用担心 xff0c 找到这个页面 xff0c 直接ctrl 43 z可以还原回来 亲测有效
  • idea通过maven使用docker插件生成镜像并推送到harbor仓库

    windows有2种方式获取docker环境 xff0c 使用VM构建linux环境并安装docker xff0c 另一种是安装dockertoolbox xff0c 再通过bash的方式创建虚拟的docker环境 xff08 本文使用后者
  • linux 将for 循环写在命令行

    for p in kubectl get pods namespace 61 kube system l k8s app 61 kube dns o name do kubectl logs namespace 61 kube system
  • iptables -j MARK --set-xmark 解析

    查看man和命令帮助 xff0c 还有网上搜到的解释不是很清晰 xff0c 所以验证了一下 xff0c 并尽量将其解释的通俗易懂 MARK的作用 MARK标记用于将特定的数据包打上标签 xff0c 供Iptables配合TC做QOS流量限制
  • kubernetes调试pod网络故障方法之一

    使用故障pod的network namespace运行一个容器来调试调试pod网络 有时候我们要排查pod的网络问题 xff0c 但是生产容器内一般不会有调试命令 xff0c 另外容器可能处于CrashLoopBackOff或其它不可用的状
  • iptables icmp-host-prohibited引起的No route to host

    如果数据包匹配到下边这条iptables规则 xff0c 访问端则会报No route to host xff0c 抓包中可能会看到 unreachable admin prohibited j REJECT reject with icm
  • kubernetes自动补全命令

    root 64 master01 apt y install bash completion root 64 master01 source usr share bash completion bash completion root 64
  • ubuntu server 20.04使用kubeadm安装k8s v1.23.5

    这篇文章也不错 xff1a https blog csdn net hefashion0190 article details 122635188 两台服务器配置hosts vim etc hosts 192 168 199 116 mas
  • 使用kubeadm 在Centos7.9 上安装k8s集群

    停止并禁用firewalld systemctl stop firewalld amp amp systemctl disable firewalld 关闭selinux sed i s 34 SELINUX 61 enforcing 34
  • Linux bash命令根据历史记录补全

    比如 xff0c 想找 docker run 开头的历史命令 xff0c 只需要键入 docker run 然后按 进行选择 但是在用服务器的bash时没有这个功能 xff0c 每次按 都会把敲入一半的命令清除掉 ctrl r 也不是很好用

随机推荐

  • Docker优化参数

    cat gt etc docker daemon json lt lt EOF 34 oom score adjust 34 1000 34 log driver 34 34 json file 34 34 log opts 34 34 m
  • Rancher 监控组件 Grafana 数据持久化

    以下配置是基于在 Rancher Cluster Manager 中启用监控 xff0c 而非在 Cluster Explorer 应用程序和市场中启用的新版监控 场景描述 xff1a 首先确保你的pv 回收策略是Retain 可以参照此文
  • MATLAB设置使用语言为中文

    因为每次自己都会忘记如何操作 xff0c 所以记录在自己的博客里 xff0c 避免忘记 在MATLAB主页 预设 帮助 右侧选取语言为简体中文 xff0c 具体操作可以见图片
  • kubernetes cordon原理

    cordon 节点可以使节点不接受调度pod 那么原理是什么呢 其实很简单 xff0c 就是给节点增加了一个污点 kubectl describe node NODE NAME 能看到这个污点配置 xff1a Taints node kub
  • 解决win10 win11 蓝牙音箱可以连接无法播放声音/蓝牙音箱无法选择使用

    这个靠谱 xff0c 记录一下 1 快捷键win 43 r xff0c 输入regedit xff0c 打开注册表 2 进入目录 xff1a 计算机 HKEY LOCAL MACHINE SYSTEM ControlSet001 Contr
  • journalctl 日志保留时间及持久化存储日志

    Systemd Journald基础 默认情况下 xff0c Systemd将系统日志存储在 run log journal目录中 xff0c 正如我们在了解Linux文件系统层次结构中所说的 参考 xff1a 介绍Red Hat Ente
  • Linux之/etc/fstab文件详解及实践

    转 https blog csdn net carefree2005 article details 125632867
  • Jenkins 上传文件到工作目录

    使用插件 xff1a File Parameter Plugin 之前写过一篇关于Jenkins 用户上传文件到工作目录的文章 xff0c 那时候还需要使用sharedlibraries 现在使用这个插件可以非常简单的上传文件 话不多说 x
  • Jenkins 在不同的agent之间传递文件/上传文件

    有时jenkins pipeline需要在不同的agent上执行不同的操作 xff0c 同时需要在不同的agent之间传递文件 方法如下 xff1a stage 39 上传文件 39 agent 39 label A 39 steps sc
  • 解决vscode编写go代码时提示过慢

    vscode的自动代码提示 xff0c 发现太慢了 xff0c 隔3 xff0c 4秒才会出提示 xff0c 所以换为Google推荐的 gopls来代替 下载过程 方案一 打开 VS Code 的setting 搜索 go useLang
  • windows server安装OpenSSH server

    右键powershell 选择以管理员运行 powershell 查看可安装的OpenSSH server版本 xff0c 在PowerShell中执行命令如下所示 Get WindowsCapability Online Name Ope
  • 表白密码:I Love you的42种密码表白方式

    字母表白数字密码 xff1a 9121522521 表白解密 xff1a 从1开始到26 xff0c 分别表示从A到Z xff0c 即 xff1a A xff08 1 xff09 B xff08 2 xff09 C xff08 3 xff0
  • C语言字符串结束标志

    为了测定字符串的实际长度 xff0c C语言规定了一个字符串结束标志 0 作为标志 xff0c 如果一个字符串为9个 xff0c 前面九个都不为空字符 xff0c 那么第十个字符为 0 xff0c 也就是说在遇到字符 0 时 xff0c 表
  • 用体光栅作角度滤波器

    体光栅由于其高光谱灵敏性和角度灵敏度 xff0c 可以设计成光谱滤波器或角度滤波器 根据K Bang等人的工作 xff0c 我们在VirtualLab Fusion中构造了这样的体光栅 xff0c 并分析了它们的角度响应 与传统的采用4 f
  • linux网络编程(完整版)

    之间在网上看到很多网络编程都是一个一个demo xff0c 今天我把之前学到的汇总起来 xff0c 希望大家可以进行补充 我理解的网络通信分为4种 1 xff0c udp客户端 2 xff0c udp服务端 3 xff0c tcp客户端 4
  • 一阶线性微分方程

    1 一阶线性微分方程概念 2 一阶线性齐次微分方程解法 例题 xff1a 例题 xff1a 3 一阶线性非齐次微分方程解法 例题 xff1a 4 伯努利方程 例题 xff1a
  • 集成学习(Bagging和Boosting)

    一 概念 集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型 xff0c 集成学习潜在的思想是即便某一个弱分类器得到了错误的预测 xff0c 其他的弱分类器也可以将错误纠正回来 Baggging 和Boosting都是模
  • 传感器数据异常预测-实战篇

    好久没更新了 xff0c 记录一下近两年研究的一套算法吧 xff0c 只讲讲方法部分 xff0c 细节再更新吧 时序数据的异常检测我一般分成两类 xff0c 单信号和多信号 单信号 对于一条数据的异常检测 xff0c 我划分成两类 xff0
  • 天线基础知识(四)接收灵敏度

    1 接收灵敏度 接收灵敏度是指无线设备正常工作所需的天线口最小信号接收功率 系统间的干扰会导致无线设备灵敏度的下降 xff0c 影响信号的正常接收 xff0c 因此通常以无线设备灵敏度准则作为被干扰系统的保护准则 无线传输的接收灵敏度类似于
  • px4讲解(一)历史起源

    第一节 对于初次接触无人机行业的人来说一些无人机行业课外知识还是需要了解的 xff0c ardupilot和px4是目前无人机行业最受欢迎 也是最为先进的飞控软件 xff0c 他们又是如何诞生并一路走来的呢 xff0c 他们跟Droneco