飞控算法从入门到精通(145):飞控中的神经网络部署:TinyML与Edge AI一、从一次炸机说起去年夏天,我在调试一架四轴飞行器的避障功能。传统方案用的是超声波+光流,但遇到透明玻璃墙就翻车——飞机直直撞上去,桨叶碎了一地。当时团队里有人提议:“要不试试用摄像头跑个轻量级神经网络?识别玻璃边缘应该不难。”我第一反应是拒绝。飞控的STM32H7主频才400MHz,RAM不到1MB,跑神经网络?这不是开玩笑吗。但后来查了TinyML的资料,发现还真有人把MobileNetV1量化后塞进Cortex-M7里跑,推理一次只要30ms。于是我开始踩坑,也才有了今天这篇笔记。二、飞控上跑神经网络的三个硬约束飞控不是手机,也不是树莓派。它的资源限制非常具体:算力天花板:主流飞控MCU(STM32F4/H7、NXP i.MX RT)的MAC(乘累加)操作数通常在每秒几亿到几十亿之间。一个3x3卷积核在224x224图像上跑一遍,就是几百万次MAC。如果帧率要求30fps,留给推理的时间窗口只有33ms。别想着跑ResNet-50,那是给GPU准备的。内存紧箍咒:飞控的RAM通常只有256KB到2MB。模型权重、中间激活值、输入输出缓冲区,这三者必须共存。我见过有人把1.2MB的模型硬塞进512KB的芯片,结果DMA搬运时直接HardFault。别这样写——先算清楚模型的内存占用再选芯片。实时性红线:飞控的P