前言
之前我写了一篇关于无人机硬件架构的博客,接下来我继续写关于软件架构的。
什么是软件?百度百科里面软件的定义是“按照特定顺序组织的计算机数据和指令的集合”,在这里我们只需要理解为程序即可,也就是说我们的软件,是运行在计算机(不论是Intel还是AMD亦或者是ARM单片机,都可以叫计算机)的程序代码,大家在学习C++或者Python等语言的时候,书写的一个个小程序就是软件,我们在这里不对软件和程序进行严格区分,在博客里面认为程序就是软件。
PX4
大家可能都听说过px4,pixhawk,apm等词,但是无法进行一个严格的区分,在这里我就跟大家详细说明一下。
飞控
pixhawk,雷迅这些都是飞控,飞控是硬件,相当于人的小脑,用来维持人的身体稳定运动,但是如果只有一个没有活力的小脑,人也没办法实现身体的稳定运动,什么是没有活力的小脑呢?就好比说只有一个小脑组织,里面没有神经信号的正确传输方式,那么人也是肯定没办法进行运动,所以人想稳定运动,第一个要有小脑等器官组织的完好结构,第二个要有正确的信号传输处理方式。
飞控其实就是小脑的器官组织,PX4/Ardupilot是运行在上面的软件程序,也就是进行信号处理和传递的方式。其实飞控本质上就是一个定制的单片机,集成了一系列无人机飞行可能用到的模块,如imu等,就如同你的小脑集成了一系列的神经元和用来实现身体运动的细胞组织(比如说某些细胞可以感受加速度,从而你有了失重感),但是这是不够的,我们要让小脑有活力,也就是让飞控运作起来
程序
PX4/Ardupolit就是专门用在飞控上的程序。
我们想让飞控可以运作,就需要往里面添加程序,一个很复杂的程序,可以接受各种信息,而且可以感知无人机运动状态,然后控制电机的运作,甚至还有其他更复杂的功能,我们以px4为例,px4项目是以C/C++语言写的一个程序,里面有很多文件,有进行遥控信号解析的,有进行通信的,有控制电机的,有感知运动姿态的,而且还会多线程运作,这样才可以实现无人机的稳定飞行和信息处理。
总结
飞控(如pixhawk系列,雷迅系列等等)就是一个专门设计的单片机,px4就是一套与之搭配的飞行控制程序,前者是肉体,后者是灵魂,没有肉体的灵魂无处可依,没有灵魂的肉体不过行尸走肉,也就是说没有飞控程序的飞控没办法让无人机起飞,没有飞控硬件的程序也只能是空中楼阁。
机载电脑与自主智能
我们只有小脑是不够的,还要有大脑,这样才可以进行思考——如无人机的目标检测,自主避障等,但是单片机的计算能力明显不够,所以我们一般是在无人机上安装一个电脑来实现决策,大家可能好奇,电脑一般都很大,怎么装到无人机上?当然我们这里指的是这种电脑
这种电脑小而且重量不大,足够放在无人机上,而且性能很不错,通过部署算法就可以让无人机具备智能,我们将其叫做上位机或者机载电脑文章来源:https://uudwc.com/A/XRgy
上位机功能
我们都知道大脑是进行思考决策的地方(也可能是大脑皮层,但是不要在意这些细节),我们的上位机就是一个大脑,其中部署的算法(或者说运行的程序)就是大脑所思考的东西,比如说我们可以在里面安排目标检测算法,让无人机可以识别目标,也可以安装自主导航算法,可以让无人机实现自主避障
这个流程是这样的文章来源地址https://uudwc.com/A/XRgy
- 上位机里面有一个完整的算法,如自主避障算法
- 飞控里面有正常的飞控程序
- 飞控和上位机之间通过数据线连接,具备数据传输的基础
- 飞控进行一些设置(这个后面会讲),使得飞控可以接受上位机控制
- 上位机运行特殊的程序,可以给无人机发送信号
- 上位机运行程序(包括通信程序和自主避障程序),控制无人机飞行