回放是用同一套模擬,把正式紀錄裡的那一趟重新飛一次(結局與時間都和正式紀錄相同)。每 30 毫秒一格;4× 是快轉。灰色大圈是航點周圍 1 公尺的範圍。
左上是從後方跟拍的 3D 畫面:棕色柱子在地圖上、紅色柱子地圖上沒有、綠色小柱是地上的標籤(地標)。左下是果蠅腦實際看到的兩眼畫面(黑 = 柱子)。右上是俯視地圖:白線是實際飛的路線、綠色虛線是無人機以為自己在哪。右下是果蠅腦的 17,307 個神經細胞,這一刻有發出訊號的會亮。影片照實際速度播放(1×);畫面文字是英文。
點任一步,看做了什麼、結果如何。
| 步驟 | 做什麼 | 結果 |
|---|---|---|
| 把「機上」和「模擬器」分開 | 讓導航程式只能看到感測器資料;想偷看模擬器知道的正確答案(真正的位置),會被自動檢查擋下 | ✓ 舊實驗加上這層之後,每一場的結果都相同 |
| 機上定位 | 光流 + 陀螺儀 + 每 5 公尺一個地標;試直線、繞圈、遮住一段看不到地標 | ✓ 改良版定位誤差 9 公分以內;看不到地標最多可以撐 20 公尺 |
| 到點(前兩輪) | 飛到 5 / 10 / 20 公尺外並停住,五種柱子場景 | ✗ 第一輪走廊場景沒過;第二輪是判定標準本身設計錯(結局有點隨機時,兩組完全一樣也過不了) |
| 到點(第三輪) | 判定標準改成:先算過「兩組一樣時會不會誤判」再定 | ✓ 通過 |
| 閃避太猛 | 四種閃避方式各跑一組,比柱林與到點 | ✓ 往旁邊加速的上限減半最好;用它重跑全部關卡也通過,翻機 0 次 |
| 果蠅腦對人寫的規則 | 一般柱林;地圖過時兩種情況 | 一般柱林裡果蠅腦不輸超過 10%(人寫的規則略多);地圖過時時果蠅腦較好,差距在統計上很難是碰巧 |
| 多個航點 | 3 段路線,用預先給的地圖規劃 | 地圖準確時完成 95%,但這時避障是多餘的(路線本來就繞開柱子);地圖過時時沒有腦就全部失敗 |
| 地標被人移動 | 地上的標籤被搬走 1.5 公尺,地圖還是舊位置 | ✗ 原本的定位程式約四成假抵達 → 關掉「校正連續被拒絕就強制採用」後 2%,✓ 通過 |
| 閃完之後的反應 | 地圖過時時試四種:照常飛、看遠一點、減速、重新規劃路線 | 減速最好(6 根柱子的任務 44 → 64 / 100),但少數幾趟定位跑掉而假抵達(5 / 200),✗ 差一點沒過 |
| 找原因 | 一格一格看那幾趟 | 都是閃避時飛離了有地標的那一帶、連續好幾秒看不到地標,回來後的校正又被當成錯的而不採用 |
| 減速 + 迷路找回來 | 加「退回上次看到地標的地方找」與「多個地標互相印證才修正」,五組比較 | ✓ 減速通過(93 → 119 / 200);加了找地標的組假抵達 0,但完成數略少 |
| 確認「假抵達歸零」 | Huckly 選假抵達優先;用全新 460 個任務重新驗證 | 假抵達再次 0;完成數的優勢沒達到統計門檻(可能只是碰巧;✗ 依事先寫好的判定標準不過)。Huckly 看過結果,仍採用這組 |
| 慢飛 | 每秒 0.5 公尺(室內真機會飛這麼慢) | 和每秒 1 公尺差不多 |
分工是:傳統程式認路,果蠅腦負責閃避。前幾頁的實驗想讓果蠅腦什麼都做,但「自己找方向」一直做不出來。這一頁換了分工:傳統程式負責「我在哪裡、往哪裡飛」——用光流(鏡頭往下看地面怎麼移動)、陀螺儀(量轉動的感測器)和地上的標籤推算位置、規劃路線、帶著無人機飛過去;果蠅腦只做它已經證明做得到的事:看到東西逼近就閃開。全部在電腦模擬裡,還沒上真機(真的無人機)。
2026-10-08。每一項結論都事先寫好判定標準、用全新的場景跑,結果出來後不改標準。
機上定位:無人機只用自己身上的感測器推算位置——光流(鏡頭往下看地面怎麼移動)、陀螺儀(量轉了多少),每隔約 5 公尺經過一個地上的標籤(地標)時校正一次。對照組(拿來比的那一組)是「直接給它正確位置」,只有模擬裡做得到。
不避障:同一套導航,但把腦拿掉,不閃任何東西。假腦(接線被隨機打亂):神經細胞和連線的數量都一樣,只把誰接到誰隨機換掉。真腦(照真果蠅的接線)要明顯贏過這兩組,才算「真的是果蠅的接線在做事」。圖上標的「打亂接線」就是假腦。
人寫的規則:人寫的 20 行簡單規則——左右兩邊誰看起來越來越大,就往另一邊移。用來比「果蠅腦有沒有比傳統做法好」。圖和回放按鈕上標的「手寫規則」就是它。
假抵達:無人機自己以為到了、停下來,實際上離目標超過 1 公尺。
柱林:立了很多柱子的場地。航點:路線上要依序經過的點。