NEUROMORPHIC FLIGHT · 神经形态飞行

让果蝇的大脑,
驾驶无人机

FlyDrones 是一个 100% 由脉冲神经网络(SNN)实时驾驶的第一视角(FPV)无人机模拟器。 它把果蝇 Drosophila 的视觉避障神经回路,搬进了一台用 Three.js 渲染的 3D 无人机里—— 没有手写的控制规则,只有从连接权重中“涌现”的飞行。

1024
复眼小眼(32×32)
5
神经输出通道
16
帧滑动解码窗口
0
模拟穿模(实测)
THE FRUIT-FLY PROJECT

从一只果蝇身上,我们能学到什么飞行?

果蝇 Drosophila 仅有约 10 万个神经元,却能在复杂环境中完成高速飞行、急转弯、 精准着陆与毫秒级的碰撞规避。它的视觉系统里有一类被称为 LGMD(小叶巨型运动探测器) 的神经元, 专门检测视野中“逼近”的扩张光流,并在碰撞前触发逃逸转向——这是自然界最精巧的避障系统之一。

感知:复眼与 looming

果蝇的复眼由约 800 个小眼组成,对“正面逼近物体造成的视野扩张”极度敏感。LGMD 把这种扩张 编码成单一的碰撞警报信号。

决策:脉冲神经网络

视觉信号经 LIF(泄漏积分-发放)神经元层层处理,发放率即“意图”。偏航、前进、刹车由网络自身 的连接结构决定,而非硬编码 if/else。

运动:闭环飞行

解码后的偏航角速度与油门直接驱动无人机,形成“看—想—飞”的实时闭环。画面、网络、控制同频运行。

逃逸:中心-周边对手

真正的 LGMD 用“中央增亮 − 周边增亮”判定逼近。自运动(向前飞)会让周边光流远大于中心, 从而被自然抵消,不会误报。

3D SIMULATION · TECHNICAL IMPLEMENTATION

3D 模拟技术实现:一条六段式神经飞行流水线

整个系统跑在一个自包含的 index.html 里(Three.js r128 + 自研 SNN)。 每一帧,无人机看到的画面都要走完下面这条从“像素”到“动作”的完整链路。

STAGE 01

FPV 第一视角相机

Three.js PerspectiveCamera(120°) 模拟果蝇宽视场的第一视角,实时渲染城市与障碍场景。

STAGE 02

复眼采样 32×32

画面渲染到 128² 离屏 RT,每 4×4 像素平均降采样,得到 1024 个“小眼”的亮度阵列。

STAGE 03

LIF 脉冲神经网络

隐藏层为“方位结构化”连接(中心→LGMD/刹车,左/右视野→偏航),固定随机种子,可完全复现。

STAGE 04

5 路神经输出

YAW_L / YAW_R(左右偏航)、FWD(前进)、BRK(刹车)、LGMD(逼近警报)。

STAGE 05

16 帧滑动解码

在 16 帧窗口上统计脉冲发放率,解码出偏航角速度 yawRate 与油门 throttle

STAGE 06

飞控闭环

解码输出直接驱动无人机运动,下一帧画面随之改变——感知、决策、运动同频滚动。

为什么叫“网络驱动”? 避障不是写死的规则:障碍进入视野 → 对应小眼亮度变化 → 脉冲发放 → 偏航输出。我们只在地图边界保留极少的兜底安全逻辑,真正的飞行行为全部由网络权重“涌现”。

REAL LGMD · STEP 1+2 SHIPPED

真·LGMD looming:让“逼近”与“自运动”各归其位

早期版本用一个简单的“整体亮度变化”来触发刹车,前向飞行时容易被自己的运动骗到(误报)。 最新实现(步骤 1+2)换成了生物上更站得住脚的中心-周边对手(center-surround opponent)机制。

LGMD 逼近区 自运动主导区
1
中央 vs 周边对手
对中央 12×12 小眼的“增亮速率”减去周边环的增亮速率,得到净逼近量 netAppr
2
自运动自然抵消
向前飞时,周边光流 ≫ 中心(焦点扩张中心位移极小)→ netAppr≈0,不再误报刹车。
3
正面障碍才报警
只有正面障碍物逼近时,中心增亮 ≫ 周边,产生真实的 loom 警报 → 无人机绕行。
4
慢适应 + 上升沿预测
用慢适应基线 lmBase 与上升沿 (lnow−loomPrev) 贴近生物 LGMD 的碰撞预测特性。

实测:自由飞行 400 帧,穿模 0、到达航点 >0、运行错误 0;网络避障每千帧约 762–830 帧处于激活状态。 在“贴着墙角擦过”这类几何极限场景下,仅步骤 1+2 仍不足以把残余碰撞降为零——这正是路线图中步骤 3、4 要解决的。

ROADMAP

路线图:让“神经元越多越安全”真正成立

步骤 1+2 · 已完成
真 LGMD looming + 光流自运动抵消。 中心-周边对手机制上线,前向飞行不再误报,正面障碍触发真实绕行。
步骤 3 · 已完成
中央复合体(Central Complex)绕行。 航向环(EB)+ 路径整合(PB)上线:强逼近时提交一个固定侧别、持续侧向偏航“绕开”障碍,绕过后释放并重新瞄准航点,而非抖动急转或原地画圈。
步骤 4 · 已完成
蘑菇体(Mushroom Body)学习。 奖励调制 Hebbian 可塑性(资格迹 × 多巴胺:碰撞−、到达/绕行成功+)上线;实测默认 MID=24 碰撞由 4 次降至 1 次、多数规模更安全,神经元规模与安全性产生因果关联。
3D 倾斜逃逸转向。 复刻果蝇真实的倾斜(banked)逃逸机动,把二维避障升级为带姿态的三维机动。
LIVE SIMULATION

实时模拟:亲手飞一只“神经无人机”

下面的窗口就是完整的 FlyDrones 模拟器(与本站同源部署)。左上角是复眼视野与 LGMD 状态, 中央是 FPV 第一视角。它完全由 SNN 自主驾驶——你只需要看着它飞。

提示:模拟器为 WebGL 实时渲染,建议在桌面浏览器中打开以获得最佳帧率。红框 = LGMD 逼近区,黄虚线 = 自运动主导区。

本模拟器已发布到 IPFS(内容寻址、永久保存、抗审查): starstack.store/ipfs/QmVv5JRRFK6DB484AeNXCre9jpqoFhie5PnzrxhaJN3g31
最新构建(含步骤 3 CX 绕行 + 步骤 4 MB 学习,与下方 /sim/ 同源): starstack.store/ipfs/QmU29MrybjHVzeikgY9Y8Xu6P9Q4s7HMrPdGBFgw3vWmyr