FlyDrones · 让果蝇的大脑驾驶无人机 3D 实时模拟
单独打开 3D 演示 ↗纯脉冲神经网络(SNN)自主驾驶,无手写避障规则。红框 = LGMD 逼近区,黄虚线 = 自运动主导区。
若右侧 token 数据面板挡住无人机:按 H 键或点右下角「隐藏数据面板」按钮一键收起(再按恢复),也可点面板标题栏单独折叠列表。
全屏/独立观看更清晰 → flydrones.tech/sim/
从一只果蝇身上,我们能学到什么飞行?
果蝇 Drosophila 仅有约 10 万个神经元,却能在复杂环境中完成高速飞行、急转弯、精准着陆与毫秒级的碰撞规避。 它的视觉系统里有一类被称为 LGMD(小叶巨型运动探测器) 的神经元,专门检测视野中"逼近"的扩张光流,并在碰撞前触发逃逸转向。
感知:复眼与 looming
复眼由许多小眼组成,对"正面逼近物体造成的视野扩张"极度敏感;LGMD 把这种扩张编码成单一的碰撞警报信号。
决策:脉冲神经网络
视觉信号经 LIF(泄漏积分-发放)神经元层层处理,发放率即"意图";偏航、前进、刹车由网络连接结构决定。
运动:闭环飞行
解码后的偏航角速度与油门直接驱动无人机,形成"看—想—飞"的实时闭环,画面、网络、控制同频运行。
逃逸:中心-周边对手
真正的 LGMD 用"中央增亮 − 周边增亮"判定逼近;自运动(向前飞)的周边光流被自然抵消,不会误报。
3D 模拟技术实现:一条六段式神经飞行流水线
每一帧,无人机看到的画面都要走完下面这条从"像素"到"动作"的完整链路(Three.js r128 + 自研 SNN,单文件自包含)。
FPV 第一视角相机
PerspectiveCamera(120°) 模拟果蝇宽视场第一视角,实时渲染城市与障碍。
复眼采样 32×32
128² 离屏渲染后每 4×4 像素平均降采样,得到 1024 个"小眼"亮度阵列。
LIF 脉冲神经网络
隐藏层"方位结构化"连接(中心→LGMD/刹车,左右视野→偏航),固定种子可复现。
5 路神经输出
YAW_L/YAW_R 偏航、FWD 前进、BRK 刹车、LGMD 逼近警报。
16 帧滑动解码
统计脉冲发放率,解码出偏航角速度 yawRate 与油门 throttle。
飞控闭环
解码输出直接驱动无人机,下一帧画面随之改变——感知、决策、运动同频滚动。
为什么叫"网络驱动"? 避障不是写死的规则:障碍进入视野 → 对应小眼亮度变化 → 脉冲发放 → 偏航输出。 我们只在地图边界保留极少的兜底安全逻辑,真正的飞行行为全部由网络权重"涌现"。
真·LGMD looming:让"逼近"与"自运动"各归其位
早期版本用"整体亮度变化"触发刹车,前向飞行时易被自身运动骗到(误报)。 最新实现换成生物上更站得住脚的中心-周边对手(center-surround opponent)机制。
中央 12×12 小眼的"增亮速率"减去周边环增亮速率 → 净逼近量
netAppr。向前飞时周边光流 ≫ 中心 →
netAppr≈0,不再误报刹车。只有正面逼近时中心增亮 ≫ 周边,产生真实
loom 警报 → 绕行。慢适应基线
lmBase 与上升沿 (lnow−loomPrev),贴近生物碰撞预测特性。路线图:让"神经元越多越安全"真正成立
2D 演示 · 果蝇神经连接组驱动无人机
单独打开 2D 演示 ↗2D 版为纯 Canvas 渲染(无 WebGL/Three.js 依赖,单文件自包含 19 KB),俯视视角呈现同一套
"复眼 → LIF 脉冲网络 → 飞控"闭环,适合低配设备或快速对比观察。
独立观看 → flydrones.tech/2d/