文章目录
- 一、与无人机的缘分
- 二、开发前
- 三、背景知识
- 硬件PIXHAWK
- pixhawkV1:
- pixhawkV2:
- pixhawkV3x:
- PX4(推荐)
- 地面站(GCS)
- Mission Planner(MP)
- QGroundControl(QGC)
- 四、我的开发环境
一、与无人机的缘分
做无人机是源于电赛,因为对无人机比较发烧就分到了无人机的组里,参加的三次电赛两次是做的无人机的题目,虽然后来不再做该方向的,但也算我的一项爱好吧,加上现在毕设是给老师搭建一个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
四、我的开发环境
- 硬件(hardware):pixhawkV3x
- 软件(software):PX4
- 操作系统(OS):Ubuntu 1804 桌面版
- 地面站(GCS):QGC
- 集成开发环境(IDE):QT creater