2026-09-13
HHMI与DeepMind把雌性果蝇做成102自由度MuJoCo全身模型,用强化学习模仿真实飞行与行走,测试集飞行质心中位误差0.25毫米。
果蝇是神经科学里解剖最完整的模式动物之一:全脑连接组已经铺开,行为实验也便宜,但要把神经回路接到真实运动上,还缺一具能在物理里动起来的身体。先前的 Grand Unified Fly 能做视觉闭环飞行,身体被简化,控制器是手写的。NeuroMechFly 把解剖细节补进了行走和理毛,低层步态仍靠启发式规则,飞不起来。
飞行和行走用的是同一具身体、同一套关节,受力环境完全不同。把两套运动塞进同一个物理模型,才能谈神经如何在模态之间切换。HHMI Janelia 和 Google DeepMind 做的就是这件事:一只有 102 个自由度的雌性黑腹果蝇,放进开源物理引擎 MuJoCo。
身体来自一头雌蝇的共聚焦扫描。软组织被酶解、角质层漂白后用刚果红染色,67 个部件手工分割,网格从 2260 万顶点压到约 2 万面,在 66 个关节处装回运动树。生物关节用 1 到 3 个铰链近似,总自由度 102,和文献对齐。质量按 52 只雌蝇分部位称重:头 0.15 mg、胸 0.34 mg、腹 0.38 mg,整只约 0.983 mg,体长 0.297 cm,翼展 0.604 cm。
翅膀用扭矩驱动,其余关节用位置驱动。跗节和腹部多段用肌腱耦合,一起弯。为了让果蝇能在墙面和天花板上走,他们给 MuJoCo 加了黏附执行器:法向力把爪压进接触面,在库仑摩擦锥里留出抗滑余量,最大单腿黏附约等于一只蝇的体重。
空气动力学没有走全 CFD。他们写了一个准定常、无状态的现象学流体模型,用椭球在静止不可压流体里的力和力矩,近似五种效应:附加质量、黏性阻力、黏性阻抗、Magnus 升力和 Kutta 升力。系数调到能悬停,主导项是 Kutta 升力和黏性阻力,其余小一到两个数量级。系数改 ±20%,飞行仍稳。翅膀按刚体处理,柔性、涡和湍流只被时间平均进去。
控制器是数据驱动的模仿学习。算法用 acme 库里的 DMPO,一种带分布 critic 的 off-policy actor-critic,训练用 Ray 把多 CPU actor 和一个 GPU learner 并行起来。飞行约 10^8 仿真步,行走约 10^9 步。
飞行控制器拆成两块:开环的翅膀拍打模式发生器 WPG,基线来自悬停黑腹果蝇、中心频率 218 Hz;加上一个 MLP,输出 12 维控制,微调拍打并在 218 Hz 上下 10% 内改频率。腿收起并冻结。输入是 62 维本体感觉加前庭信号,外加高层转向指令。
行走没有可用的公共模式发生器。步态随速度变,所以直接训一个 MLP:输入 286 维,输出 59 维,翅膀折起冻结。黏附不进奖励,模型自己学会在触地时打开。
视觉任务把预训练的低层飞行策略冻住,上面再接 CNN 和高层次导航网络。复眼用两个 MuJoCo 相机,32×32、视场 150°,小眼间距约 4.6°。
飞行数据来自较大的 Drosophila hydei,7500 fps,含自发扫视和逃逸机动,共 272 条、约 53 秒,镜像扩增后按 80/20 划分,训练 216 条、测试 56 条。测试集中位质心误差 0.25 mm,中位姿态误差不到 5°。真蝇机动时拍频可偏 40 Hz,模型只动大约 0–10 Hz。左右翅膀很小的不对称就能拉出大加速度,和真蝇一致。
行走数据是 150 fps 俯视视频,13 个二维关键点经正则化逆运动学抬成三维,约 1.6 万条、80 分钟,训练约 1.3 万、测试 3200 条。正文写中位质心误差 0.4 cm、中位姿态误差 4°。4 cm/s 时平均 3.1 只脚着地,1 cm/s 时 3.9 只,任何时刻至少三只,和真蝇同趋势。转弯时内侧步长短、外侧步长长。前肢左右调制不对称,真蝇没有这一条。
| 任务 | 测试规模 | 中位误差 |
| 飞行轨迹跟踪 | 56 条 | 位置 0.25 mm,姿态 <5° |
| 行走轨迹跟踪 | 3200 条 | 正文:位置 0.4 cm,姿态 4° |
| 视觉爬坡飞行 | 1000 回合 | 高度 0.045 cm,速度 2.2 cm/s |
| 视觉壕沟飞行 | 1000 回合 | 高度 0.032 cm,速度 0.16 cm/s |
丘陵地面若不打开黏附就过不去。模型上坡多用前中足,下坡靠后足。单核 Xeon E5-2697 v3 上,10 ms 飞行仿真约 421.5 ms,行走约 68.65 ms,够强化学习循环使用。代码和模型开源,仓库名 TuragaLab/flybody。
这是目前把飞行和行走放进同一具解剖级果蝇身体的开源平台。做 embodied AI 和昆虫运动控制的人,得到一套可改自由度、可关执行器、可换传感器的沙盒;做果蝇神经科学的人,得到一个对接连接组的接口:先用 MLP 冒充腹神经索,再把真实回路接进去。
它不是新的强化学习算法。DMPO、层次控制和模仿学习都是现成件。增量在身体、流体、黏附和数据规模。想拿它当通用机器人基准,还得自己补任务套件。
飞行身体是黑腹果蝇,运动数据是 hydei。两种蝇体型和拍频不同(218 Hz 对 192 Hz),论文自己不做定量翅膀对比。行走三维姿态从俯视二维抬出来,体高和俯仰角用固定值,摆动腿的 z 用正弦弧近似,误差会渗进奖励。
正文把行走中位质心误差写成 0.4 cm,但 Fig. 3b 纵轴上限是 0.04 cm;姿态中位 4° 和 0–10° 的纵轴是对得上的。0.4 cm 已经超过 0.297 cm 的体长,按图读更接近 0.04 cm 量级。这里按原文记录,不改数。
执行器不是肌肉。论文明确说不要把控制信号读成生物学量,只看输出扭矩。翼铰链、颈部这些复杂关节被铰链组合简化。刚体翅膀加准定常流体,吃不到柔性翼和涡的动态。飞行时腿冻住、行走时翅膀冻住,跨模态切换还没做。肌肉级驱动和全身本体感觉映射被列为后续,工作量很大。