
你的無人機並不是自主的——它只是在一個還沒試著殺死它的世界裡被自動化
有一個時刻,我一直反覆想起。當時我們正在一個模擬的 GPS 拒止走廊中進行試飛——沒什麼花俏的,就是一架標準的四旋翼無人機,上面裝著我們的導航堆疊。GPS 模組被實體斷開了。我的工程師花了三週時間調校視覺慣性里程計(Visual Inertial Odometry)管線,此刻正雙臂交叉地站在我身旁,咬著一個筆蓋。無人機升空、懸停,接著僅憑一組立體攝影機和一顆 IMU,開始在測試環境中穿梭前行。
接著我走過去,打開了一台我們為了測試而買來的消費級 GPS 干擾器。什麼都沒改變。無人機沒有絲毫退縮。它根本不知道有什麼好退縮的——它從一開始就從未聆聽過天空。
就在那一刻,我發自內心地明白了我們在白板前和 Slack 討論串裡爭論了好幾個月的東西。這架無人機並不是對干擾具有韌性。它是對干擾漠不關心。而那種漠不關心——那種對一個可以被 50 美元裝置徹底抹除的訊號的完全獨立——正是全部的重點所在。
我是 Ashutosh,Veriprajna 的創辦人。我們為無人機打造導航與感知系統,讓它們能在 GPS 不存在、雲端連線是幻想、而且如果你不知道自己身在何處「返航」就毫無意義的環境中運作。我想告訴你,為什麼無人機產業所使用的「自主」這個詞是一個謊言,以及要打造一台能夠自行思考的機器究竟需要什麼。
沒有人質疑的每日十億美元假設
這裡有一個應該讓你感到不安的數字:GPS 為美國私營部門創造了約1.4 兆美元的經濟效益。GPS 服務的中斷將使美國經濟每天損失大約每天 10 億美元。我們把整個文明的物流、農業、金融與國防基礎設施,全都建立在從地球上空 20,200 公里處傳送下來的訊號之上——這些訊號抵達你的接收器時,功率就像從 10,000 英里外觀看一顆 25 瓦燈泡那樣微弱。
這不是比喻。這就是實際的訊號強度。而世界上每一家無人機製造商,都把他們的「自主」系統建立在它之上。
在創立 Veriprajna 之前,我在 AI 領域待了多年,而讓我對無人機導航變得激進的,是觀看來自烏克蘭的影像。FPV 無人機——便宜、有效、據估計造成 70% 的兵員傷亡——在距離前線電子戰部署 5 到 10 公里的範圍內,經常會失去 GPS。像 R-330Zh Zhitel 這樣的俄羅斯系統,會製造出近乎持續不斷的區域拒止。當 GPS 陷入黑暗時,這些無人機並不會優雅地逐步降級。它們會變成——用我開始稱呼的說法——昂貴的紙鎮。
一架依賴 GPS 來維持穩定的無人機並不是自主的。它只是在一個允許的環境中被自動化。移除那個允許,你就移除了自主。
這不只是軍事問題。這是一個物理問題,會出現在任何 GPS 訊號無法抵達的地方:地下礦坑、都市峽谷、橋樑底面、油儲槽之間的狹窄縫隙。任何訊號會反彈、衰減,或根本無法穿透的地方。
我們為什麼會假設天空永遠都會在那裡?
我想,誠實的答案是方便。GPS 是魔法——免費、全球性、對大多數用途來說夠精確。當你在打造一家無人機公司時,導航問題在第一天就感覺已經被解決了。插上一個 GPS 模組,寫一些航點邏輯,然後就稱之為自主。出貨吧。
我第一次向外界推銷我們的做法——利用機載視覺與慣性感測從頭打造導航——時,一位投資人看著我說:「你為什麼不乾脆用更好的 GPS 就好?」我試著解釋,當有人正主動地想拒止你的 GPS 時,「更好的 GPS」是一個自相矛盾的說法。他並不信服。他從未需要去思考一個基礎設施會失效的世界。
但基礎設施確實會失效。在採礦業,它從一開始就不存在。一架在爆破後檢查採空區的無人機——在完全黑暗中穿越粉塵與可能有毒的氣體飛行——完全沒有衛星訊號。在石油與天然氣管線檢查中,若及早發現一次故障的修復成本是 7.5 萬美元,而單次失效卻可能花費850 萬美元,無人機需要在由巨大金屬結構造成的 GPS 陰影中飛行。多路徑效應會破壞計時計算,並引入數公尺的位置誤差。當你緊鄰一條加壓管線飛行時,數公尺的誤差可不是小事。
產業界的答案一直是光流——一台朝下的攝影機,用來追蹤地面紋理。這比什麼都沒有要好。但它需要良好的光照、需要可見的紋理,而且它仍然依賴 GPS 來提供偏航與高度的參考。它是一塊 OK 繃,不是一個解決方案。
在沒有 GPS 的情況下導航,實際上意味著什麼?

這裡我需要帶你深入工程內部,因為這個解決方案的美,就像生物學的美一樣。想想你如何在一個黑暗的房間裡辨位。你不用 GPS。你用你的雙眼和內耳——視覺與你的前庭系統。你看見地標,你感覺到加速與旋轉,而你的大腦把這兩股資料流融合成一種對自己身在何處的連續感知。
視覺慣性里程計——VIO——為無人機做的正是這件事。攝影機在連續的影格之間追蹤具辨識性的特徵(角點、邊緣、紋理)。慣性測量單元,也就是 IMU,以極高的頻率測量加速與旋轉,通常每秒 200 到 1000 次。這兩個感測器都無法單獨運作。攝影機太慢,而且無法判斷絕對尺度。IMU 會災難性地漂移——對加速度做雙重積分以求得位置,意味著誤差會隨時間以二次方增長。一顆消費級 IMU 可以在數秒內漂移好幾公尺。
但融合在一起,它們就彼此抵消了對方的弱點。IMU 提供高速率的狀態預測,並處理影像模糊的快速機動。攝影機則把不斷漂移的 IMU 估計錨定到世界中的固定地標上。結果就是:漂移率低至所行進距離的 1–2%,即便是在 GPS 拒止的環境中也是如此。沒有衛星。沒有外部訊號。沒有任何東西可以干擾。
我在我們研究的互動版本中深入寫過這套融合架構,但關鍵的洞見比數學更簡單:VIO 之所以無法被干擾,是因為它是被動的。它接收光,並感受慣性。沒有訊號可以攔截,沒有頻率可以壓制,沒有連結可以切斷。
我們搞垮自己系統的那一夜
有件事我想誠實以告。VIO 不是魔法。這一點我們是付出慘痛代價才學會的。
開發進行到大約第四個月時,我們在一間倉庫裡測試——混凝土地板、白色牆壁、日光燈照明。無人機起飛,漂亮地飛了大約三十秒,接著開始像喝醉了一樣往側邊漂移。我的首席工程師調出日誌,沉默了好長一段時間。然後他抬起頭說:「它什麼都看不見。」
白色的牆。均勻的混凝土。沒有紋理、沒有角點、沒有可供追蹤的特徵。攝影機正盯著一張空白的畫布,而 VIO 管線是在純粹的 IMU 積分上運行——這意味著它正以令人恐懼的速率累積漂移。
那次失敗教會我們的,比任何一次成功都多。接下來的好幾週,我們整合了兩項關鍵的緩解措施。第一,LiDAR-VIO 融合——加入一顆輕量的固態 LiDAR,即便在完全黑暗或缺乏特徵的環境中,也能提供密集的幾何資料。當攝影機失效時,LiDAR 點雲會給系統提供幾何約束。第二,而這正是有趣的地方,語意遮罩。
為什麼一個導航系統需要理解它所看到的東西?

標準 VIO 把世界視為一團毫無意義的點雲。一個角點就是一個角點,不論它是在一棟建築上,還是在一輛移動的卡車上。這造成了一種毀滅性的失效模式:如果無人機追蹤一個移動物體上的特徵,並假設它們是靜止的,它就會為了補償而錯算自己的運動。無人機以為自己在移動,其實沒有,或者反過來。
我們在一次戶外測試中就遇到了這種情況。一輛送貨卡車開過畫面,無人機猛地往側邊一晃,試圖「修正」一個並非它自己的運動。我的心一沉。在礦井中或管線旁,那一晃就是一次墜機。
這個修復需要的,是我心目中從導航到理解的那一躍。我們運行深度學習模型——語意分割網路——來分類畫面中的每一個像素。汽車。人。在風中搖曳的樹。這些動態區域會被完全從 VIO 管線中遮罩掉。無人機只追蹤靜態的背景特徵。
幾何 SLAM 看見的是點、線、面。語意 SLAM 看見的是「門」、「牆」、「卡車」。那個差別,就是一個只會導航的系統與一個真正理解自己身在何處的系統之間的差別。
這個語意層還做了另一件了不起的事:它實現了長期導航。幾何特徵——一個角點的像素強度——會隨光照而改變。同一棟建築在正午和午夜看起來截然不同。但「窗戶」或「門」這個概念對光照是不變的。一架具備語意 SLAM 的無人機,即便在夜晚返回,也能認出白天造訪過的某個地點,只要那個語意結構仍然可見。
它也實現了以人為中心的指令。「飛過那道門。」「檢查那個紅色油槽。」而不是「飛到座標 47.3821, -122.3456。」對於身處高壓環境中的操作員——爆破後的礦場主管、砲火下的士兵——那種認知負荷上的差別是巨大的。
那個差點害了我們的雲端 AI 陷阱

早期,在我們還未完全投入邊緣處理之前,我團隊裡有人提出了一種混合架構:在本地運行 VIO,但把影像串流到雲端進行語意處理。紙面上看來很合理。雲端 GPU 很強大。何必把所有東西都硬塞進一塊小小的嵌入式板子上呢?
我們做了一個原型。它在實驗室裡運作良好,那裡有完美的 Wi-Fi。接著我們用貼近現實的網路條件來測試它——模擬帶有偶發斷線的 4G——然後眼睜睜看著語意遮罩在無人機需要它的 300 毫秒之後才抵達。以每秒 20 公尺計算,那就是六公尺的盲飛。無人機正根據動態物體曾經所在的位置,而非它們現在所在的位置,做出導航決策。
那是一場吵得很兇的團隊爭論。有一派想要優化網路路徑。我動用了職權——這是我在技術決策上唯一一次這麼做——並說我們要走完整的邊緣路線。不依賴雲端。沒有商量餘地。
我之所以對這件事如此頑固,原因在此。在國防應用中,一架把影像串流到雲端的無人機就是一座無線電信標。敵方的測向資產可以對它進行三角定位。你打造了一架「聰明」的無人機,卻向每一個帶著射頻掃描器的人宣告自己的位置。在工業場域中,礦坑內部或儲槽之間的網路涵蓋充其量也是不可靠的。而在這兩種情況下,要命的延遲不只是平均延遲——而是尾端延遲,也就是第 99 百分位的最壞情況。一次因壅塞或基地台交遞而產生的瞬間尖峰,你的控制迴路就會變得不穩定。
如果你無人機的智慧棲身於雲端,那麼切斷網路連結並不是讓系統降級——而是把它的腦葉切除。無人機不會變慢。它會變笨。
研究顯示,當延遲超過 700 毫秒時,遙控操作在實務上就變得無法控制。而抖動——延遲中的變異——比恆定的延遲更糟,因為控制演算法可以補償一個已知的延遲,卻會在延遲持續變化時劇烈震盪。
我們把一切都搬到了機上。每一個神經網路、每一個優化迴路、每一個決策。至於我們架構的完整技術剖析,包括具體的感測器融合方法與演算法比較,我已經發表了我們的詳盡研究。
你要如何在一台會飛的裝置上運行這一切?
老實說,這是讓我夜不能寐的部分。要在一塊重量以克計、功耗以瓦計——而非千瓦——的板子上,同時為 VIO 運行非線性優化,並為語意分割運行卷積神經網路,全都以 30 幀以上的速度進行,這是一個容不下半點草率的工程問題。
我們建構於 NVIDIA Jetson Orin NX 之上,它以 10 到 25 瓦的功耗,在嵌入式的外形尺寸中提供100 TOPS(每秒兆次運算)。對於一個你能握在手中的東西來說,那是一個驚人的運算量。但光有原始的矽晶片還不夠。
我們使用 NVIDIA 的 TensorRT,以 Int8 量化來編譯我們的神經網路——把 32 位元浮點權重轉換為 8 位元整數。這聽起來像是一種粗暴的近似,它確實是,但只要謹慎地執行,就能在準確度損失極小的情況下,把推論吞吐量提升兩到三倍。我們把特徵追蹤卸載到專用的視覺加速器核心上,好讓 GPU 空出來做深度學習。至於非線性優化的後端——集束調整(bundle adjustment),SLAM 的數學核心——則以平行化的 CUDA 核心運行。
其結果是一條異質運算管線,其中飛行控制器無論場景多複雜,都能以超過 50Hz 的速率接收里程計更新。當無人機進入一個視覺上複雜的環境時,它不會卡頓。當它需要更費力思考時,它不會慢下來。
當無人機迷路時會發生什麼事?
這是另一個讓我輾轉難眠的恐懼。VIO 給你的是局部的一致性——「我往前移動了 5 公尺」——但它會隨時間累積漂移。在沒有 GPS 提供絕對位置定位的情況下,你要如何防止誤差在一趟漫長的任務中不斷疊加?
答案是迴路閉合,而它是機器人學中最優雅的想法之一。當無人機回到先前造訪過的區域時,系統會拿目前的視覺指紋與其儲存的地圖進行比對。如果它認出自己身在何處,它就會計算自上次造訪以來所累積的總漂移量,並把整條軌跡一舉拉回對齊。這就像是無人機自己內部的 GPS 修正,只不過它來自於辨識,而非衛星。
我們使用一個經過修改的 ORB-SLAM3 版本——第一個能夠進行多地圖合併的系統。如果無人機在一次劇烈機動中失去追蹤(或者用機器人學家頗為可愛的說法,被「綁架」了),它就會開始建立一張新地圖。當它稍後認出一個先前已繪製過的地點時,它就會把這些地圖合併起來。這使得系統對於你在真實作業中所預期會遇到的那類干擾,具備了非凡的韌性。
我們用深度學習增強了標準的 ORB 特徵提取——SuperPoint 與 SuperGlue 網路,即便在傳統電腦視覺會失效的具挑戰性光照下,也能找到並匹配特徵。這種混合式做法讓我們既擁有 ORB-SLAM3 那個穩健的數學後端,又擁有現代神經網路的感知能力。
誰真正需要這個?
人們總是問我,這是不是一個到處找問題的解決方案。它不是。這個問題正從三個方向同時對著我們尖聲呼喊。
在國防領域,GNSS 拒止是現代戰爭中的第一步棋。它是不對稱的——一台廉價的地面干擾器,就能在廣大的區域上使昂貴的空中資產失效。配備 VIO 的無人機,即便在指揮與管制的連結被切斷之後,仍能以視覺方式鎖定目標並自主執行任務。它們在完全的無線電靜默中運作,對射頻掃描器而言是隱形的。一名操作員就能部署一整群無人機,僅憑機載感知在一條 GPS 拒止的走廊中導航。
在採礦領域,環境本身就是天然GPS 拒止的。爆破過後,採空區會充滿粉塵與有毒氣體。等待人員清空既花錢又危及生命。一架具備 VIO 的無人機能立刻飛進去,檢查岩石破碎情況與結構穩定性,並在數分鐘內回傳資料,而不是人工勘測所需的數天。相較於傳統方法,無人機作業可以把檢查成本降低多達70%——但前提是無人機真的能飛到它需要去的地方。
在基礎設施檢查領域,其經濟帳是殘酷的。管線失效會造成數百萬的損失。無人機就是答案——但檢查橋樑底面或儲槽區的底部,會把它們置於 GPS 陰影之中,在那裡它們無法維持高解析度成像所需的精確定點懸停。VIO 解決了這個問題。無論衛星的可見度如何,無人機都能以公分級的精度保持位置,把被動式維護轉變為預測式維護。
那個需要改變的詞
我對「自動化」與「自主」之間的區別,變得有些著迷。一個自動化的系統,是根據外部輸入——GPS 座標、飛行員指令——來執行一段預先定義好的腳本。移除那些輸入,腳本就崩潰了。一個自主的系統,則會感知它的環境、判定它自身的狀態,並在不依賴外部的情況下做出決策。
如今市面上幾乎每一架商用無人機都是自動化的。產業界稱它們為自主,是因為那個詞比較好賣。但這個區別並不是語義上的——它是一個在一切順利時能運作的系統,與一個在一切出錯時仍能運作的系統之間的差別。
自動化無人機的時代——那些依賴脆弱的衛星繫繩與雲端連線的無人機——正在走向終結。未來屬於那些隨身攜帶自身智慧的系統。
在 Veriprajna,我們不包裝 API。我們不微調語言模型然後把它叫做機器人技術。我們打造的是根本的導航與感知堆疊,讓機器能夠在物理世界中存在並行動——去感知、去理解、去導航,而無需徵求任何人的許可。
對國防指揮官、礦場營運者,以及基礎設施管理者而言,這個區別並非學術性的。它是一場成功的任務,與一台從天上墜落的機器之間的差別。
天空本來就不會永遠都在那裡。我們只是當它會永遠在那裡似地去打造了一切。