PX4开发基础

一、与无人机的缘分

    做无人机是源于电赛,因为对无人机比较发烧就分到了无人机的组里,参加的三次电赛两次是做的无人机的题目,虽然后来不再做该方向的,但也算我的一项爱好吧,加上现在毕设是给老师搭建一个PX4的平台(比赛没用过PX4),因为无人机开发比较小众,价格贵、学习环境少并具有一定难度,外加发展的时间并不是很长,开发中就遇到了很多问题,在此做一些记录。

二、开发前

    这套开源软件的功能相当的齐全,实际上通过烧录PX4的固件,通过地面站的设置,就可以实现很多功能了,因此决定了你是否需要涉及到源码层面的开发。

三、背景知识

注:内容来自于一些资料和自我总结

硬件PIXHAWK

    Pixhawk是第一款专门为PX4自驾软件而设计的无人机飞控。Pixhawk飞控是开源硬件架构,pixhawk系列”的板子在NuttX操作系统上运行PX4。全世界很多公司出品了基于Pixhawk的飞控产品。他们都有共同的硬件架构和相同的连接方式、输出接口及功能,仅仅是具体形式不同而已,例如接口的位置不同、外壳不同等等。

pixhawkV1:

    第一版飞控,也被称作FMUv1,它包含PX4FMU和PX4IO两部分。PX4FMU是Pixhawk v1飞控的核心控制部分,主要负责姿态解算等等算法的执行;PX4IO主要负责飞控各外设接口的管理。下面的样子(市面已经看不到了):

pixhawkV2:

    继FMUv1飞控之后,第二代飞控被称为Pixhawk v2或FMUv2。在FMUv2这个版本飞控中,第一代中的PX4FMU和PX4IO被合并到了一个PCB上,成为了真正的一体化飞控。(市面还有很多卖的主要都是在这个基础上改进优化,比如处理器、传感器等的提升)

pixhawkV3x:

    比如我用的是如下的雷迅生产的V3x,到现在甚至已经出了到了V5,但是主要没有差太多。

### 软件代码 ##### ArduPilot     APM固件程序比较**混乱,零散**。维护者多,代码风格不太统一,而且是单片机这种调用程序,**不好入门。但是成熟稳定**,支持硬件多。APM固件有ArduCopter社区支撑。
PX4(推荐)

    PX4固件,在nuttx嵌入式实时操作系统上运行。采用多任务,模块化设计。相对来说方便入门,代码风格比较统一。PX4的是BSD协议,BSD协议可以将开源软件二次开发后用作商业用途。 着=这也就是当前很多公司的产品甚至就是直接在这个上面改装的。

地面站(GCS)

Mission Planner(MP)

    支持Mavlink协议,一般用于APM的代码,当前使用的人比较多(截至到2020年之前),不支持Mac OS

QGroundControl(QGC)

    支持Mavlink协议,一般用于PX4代码,使用的人较少(未来趋势),PX4官方推荐的地面站软件。

  • 手机系统: Android 和 iOS (目前专注于平板电脑)
  • 桌面系统: Windows, Linux, Mac OS

四、我的开发环境

  1. 硬件(hardware):pixhawkV3x
  2. 软件(software):PX4
  3. 操作系统(OS):Ubuntu 1804 桌面版
  4. 地面站(GCS):QGC
  5. 集成开发环境(IDE):QT creater

下一篇:开发环境搭建

  
  
Email : [email protected]
Website : http://beyonderwei.com
  
WeChat:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章