每当我们提起无人机飞控的时候,总是提起PID,提起四元数/欧拉角或者卡尔曼滤波等各种经典算法;要么就是加速度传感器,气压计,电子罗盘或者GPS等各种传感器;再要高大上一点无非提及PX4Flow光流,或者高清图传;最新的就是大疆提供的4G遥控功能。这些功能很好,然而也就这样了。在这科技发展日新月异的当下,各个热点风口此起彼伏,我想你肯定听过神经网络,机器学习,也听过人工智能,自动驾驶,chatGPT, Midjourney。玩无人机的小伙伴,慢慢从时代的弄潮儿变成了隔夜的老黄瓜。最典型的例子就像是几乎所有的无人机社区或者论坛--无论国内还是国外,早就从昔日的门庭若市变成了现在的门可罗雀。为什么我们不做一款充满时代科技感,富含各种最新科技元素的无人机飞控板呢?
PX4可能是业界最早考虑到要和计算机最新技术结合的开源飞控软件了,从内置源于APM的Mavlink通信控制协议开始,到提供Linux上的模拟环境,到配合机器人操作系统ROS的各种中间件,PX4已经为融入最新科技潮流做好了准备。在硬件平台上,考虑到最新的EKF2滤波算法和处理IMU实时数据对MCU性能提出了更高的要求,曾经的STM32F1已经远远不能满足要求,STM32F4也显得捉襟见肘,因此官方最新的PX4版本,已经要求使用STM32H7这样的高性能MCU了 (Pixhawk 6)。现在已知的最后开源硬件版本是PIXHAWK v2.4.8,最新的PX4软件已经无法运行在这个平台上了,因此国内pixhawk v2的飞控硬件只有老版本PX4软件可用,各种新的功能和中间件都与之无缘了。作为技术极客,我打算做一款全新飞控板,能够使用最新的PX4软件,而且有足够的硬件资源进行后续的升级更新。
所有新的科技热点,大都是基于一个复杂的计算机系统。在云技术的辅助下,我们可以使用类似于树莓派或者是NVIDIA Jetson这样的开发板,进行本地侧的机器学习推理运算或者是机器视觉的计算;同时也可以利用计算机多媒体在声光电上进行各种炫目的操作,扩展各种复杂的外设,让我们的玩法更多样更有趣,甚至进行工程实际项目的验证。虽然树莓派和PX4结合在一起已经有了各种应用和玩法,但是作为两个独立的系统,和我理想中的飞控板还是有些差距。我希望有一个整体的飞控板,即拥有强大的无人机飞控处理单元,又有强大的计算机算力和丰富的外设,可以完成机器学习,人工智能,计算机视觉和多媒体功能,多一点点的要求,就是能够小一点,再小一点就更好了!
树莓派
OK,我们已经有了对飞控主板CPU的要求:
- 多核异构,一个小核MCU可以轻松完成PX4飞控软件的算力要求,并且支持PX4的未来升级,对内存的要求是多多益善。
- 大核的CPU最好能有4个内核,CPU至少是ARM Cortex-A53以上,以便完成复杂的计算,同时要求有一定算力的NPU,这样在做机器学习和神经网络运算时,才不至于完全依靠CPU内核。
- 至少带有2路Camera接口,有ISP最好,谁不想拍个靓照,留段美好的回忆呢?
- 丰富的外设,UART/SPI/I2C等基本低速外设,满足飞控FMU的需求;同时要有USB3.0,SDIO等高速接口,以便扩展4G/5G,Camera,SD卡等高速外设。
- 最好有GPU, VPU, Audio,HDMI等多媒体功能,毕竟,有趣的灵魂还是需要美好的肉体才能匹配。
- 稳定的性能,能扛得住高低温等各种复杂环境。毕竟,我们做的是无人机,不是实验室电脑板,稳定可靠是根植于飞控骨子里的天性。
- 丰富的CPU软件开发资源,能够容易获得技术资料和源代码支持,能支持主流的操作系统,可以方便的从网络上下载各种应用。毕竟,我们使用的是SOC,不是单片机,不需要每个轮子都自己去重新设计。
好了,圈圈已经画下了,接下来我们开始来按图索骥,看看哪一款SOC更符合我们的要求。
- 瑞芯微RK3568
框图如下,外设资源相当丰富,尤其是图像处理能力。NPU稍微弱了点,0.8TOPS。MCU的资料实在不够丰富,难于评估MCU的性能,移植PX4的难度较大。
- TI AM625
框图如下,外设还凑合,尤其是还有一个M4F的MCU,但是没有NPU,另外TI的软件架构不是很友好。
- NXP i.MX8MP,
框图如下,资源丰富,有一颗Cortex-M7F的MCU,2.3TOPS的NPU。
从价格上来看,RK3568和TI的AM625价格较低,而NXP的价格比较高;从软件的丰富度和开发的难易度来讲,NXP i.MX8MP最好,RK3568次之,而TI的开发比较难一点。从支持的操作系统来看,NXP的i.MX8MP和RK3568支持全功能Ubuntu;从稳定性和可靠性来看,NXP的i.MX8MP和TI的比较高。
当当当当~~~~~~~,最新飞控平台的当红炸子鸡出炉了~~~~~~~~~~~~~~~~~ 恭喜i.MX8MP获得本次选型的最终胜利!!!