(原標(biāo)題:專訪賓夕法尼亞大學(xué)Vijay Kumar:無人機背后的故事)
提到無人機,有人也許會想到巡航在海上的大型的軍用武器,而近年來,隨著消費級無人機的技術(shù)革新和價格優(yōu)勢,這類無人機開始被大眾所熟悉。無論是攝影還是送貨,只要一提起無人機,人們馬上會聯(lián)想到大疆(DJI)、Parrot(一家總部位于法國巴黎的無人機及無線產(chǎn)品制造商)、3D Robotics(由前《連線》雜志主編Chris Anderson和時年20歲的Jordi Munoz創(chuàng)建,主打北美市場)、AscTec(德國Ascending公司旗下的無人機品牌)這些生產(chǎn)商。
然而,在美國賓夕法尼亞大學(xué)有這樣一間實驗室,早在2006年就開始了無人機相關(guān)技術(shù)的探索,至今他們的無人機算法和技術(shù)在農(nóng)業(yè)、救災(zāi)、建筑、娛樂等方面有著廣泛的嘗試。相對于常見的攝影或物流類的無人機,他們所研究的無人機應(yīng)用的場景更多樣、處理的問題更復(fù)雜、涉及的技術(shù)領(lǐng)域和更為寬泛??梢哉f,他們的每一個新進(jìn)展,都引領(lǐng)著整個無人機領(lǐng)域的技術(shù)變革,同時也是推動無人機和人工智能領(lǐng)域發(fā)展的杠桿。
近日,《程序員》雜志在CCF–GAIR全球人工智能和機器人峰會上專訪了美國賓夕法尼亞大學(xué)工程學(xué)院院長,IEEE、ASME Fellow,美國國家工程院院士,Vijay Kumar。他就自己實驗室最新的研究成果與我們進(jìn)行了交談。
除了攝影,無人機還能干什么?
Vijay Kumar是位印度裔機器人科學(xué)家,1983年畢業(yè)于印度理工學(xué)院坎普爾分校(IIT),后進(jìn)修于美國俄亥俄州立大學(xué),1987年獲得機械工程博士學(xué)位。Vijay是世界上第一批研究無人機的科學(xué)家之一,早在2006年,Vijay和他的團(tuán)隊便第一次成功開發(fā)出了四軸飛行器原型,并積極推廣無人機在多個實用場景下的應(yīng)用。十年后的今天,無人機產(chǎn)業(yè)早已變的炙手可熱,市場規(guī)模實現(xiàn)了百億美元的增長,有人估計,到2020年,無人機市場將達(dá)到250億美元。盡管市場越來越熱,但學(xué)術(shù)界和產(chǎn)業(yè)界之間,依然存在一定的距離。這也讓Vijay坦言,他并不關(guān)心無人機市場,眼下自己的重點,依然放在無人機的四個核心研發(fā)問題上:體型、安全、智能、速度。雖然這四點看似簡單,但要是一一展開,無疑會讓我們看到一幅關(guān)于無人機的更大的畫卷。Vijay的最新研究成果,就是對這四點最好的詮釋。這些成果包括以下幾類。
自主小型飛行器(Autonomous Micro UAVs),這種飛行器可以利用GPS在復(fù)雜的三維環(huán)境中巡航,可以用于搜尋工作和精細(xì)農(nóng)作(Precision Farming)。這種無人機的重量只有20克,通過傳感器來規(guī)劃路線和監(jiān)控當(dāng)前環(huán)境,傳感器包括IMU(Inertial Measurement Unit)、攝像頭、激光測距儀、測高儀等。
飛行器矩陣(SWARMS,Scalable sWarms of Autonomous Robots and Mobile Sensors),在矩陣中,每臺飛行器都是以自主(Autonomic)的狀態(tài)完成任務(wù),在沒有中央控制系統(tǒng)的情況下,僅根據(jù)傍邊飛行器的反應(yīng)而作出調(diào)整,從而達(dá)到協(xié)作的目的。
微型生物機器人(Micro Bio Robots),這些微型機器人只有10~100微米,由生物傳感器和馬達(dá)制動。他們可以被用于藥物探索、微創(chuàng)治療以及微型裝配。同時,他們還可以被應(yīng)用在生物傳感器和生物電路的合成,幫助行成“傳感——驅(qū)動——通信”的閉環(huán)。
飛天手機(Flying Smart Phones),智能手機是當(dāng)下最常見的高性能、低成本處理器和傳感器集成,用無人機搭載智能手機,相當(dāng)于擁有了一個給力的CPU/GPU、兩個攝像頭、一塊電池、GPS、Wi-Fi、藍(lán)牙模塊、IMU、電信數(shù)據(jù)接收器,以及相應(yīng)的內(nèi)存。這無疑給飛行器賦予了更好的性能。
通過上述研究,無人機可以被應(yīng)用在很多場景,例如可以放進(jìn)大樓作為報警器,一旦有入侵者,馬上報警;在建筑內(nèi)尋找生化/煤氣泄漏,或者把飛行器送進(jìn)倒塌的樓房或核反應(yīng)堆,來探測放射強度;室內(nèi)建模,在陌生的空間內(nèi)構(gòu)建實時地圖,甚至連一些室內(nèi)細(xì)節(jié)都可以反映出來;搬運重物;搭建建筑龍骨(目前,根據(jù)Vijay一位學(xué)生開發(fā)的算法,飛行器矩陣可以自己建造矩形的龍骨),飛行器根據(jù)對周圍飛行器的探測,可以自行選擇用什么材料、用在哪里、什么時候用。
除此之外,Vijay研究的飛行器還有很多實際用途,例如精細(xì)農(nóng)作,通過熱感攝像機和普通攝像頭捕捉的數(shù)據(jù),分析每株作物的特定需求,并且將結(jié)果反饋給農(nóng)戶,比如作物A需要澆水、作物B需要施肥、作物C需要除蟲等。通過這一方式,無人機還可以計算每株作物的果實數(shù)量,從而幫助農(nóng)戶對收成進(jìn)行預(yù)估,以及找出染上疾病的作物。
仿生學(xué)在無人機領(lǐng)域的應(yīng)用
對仿生學(xué)的應(yīng)用是Vijay研究中最重要的思想之一,也是很多創(chuàng)新技術(shù)誕生的基石。在上面提到的無人機四個要素中,體型大小會對其他因素造成不同程度的影響。通過對蜜蜂的觀察,Vijay發(fā)現(xiàn),這種小型飛行生物可以很好地跟環(huán)境互動,即使相撞也不會受傷。同時小體型意味著慣性更小,速度更快,受到撞擊時也可以很快恢復(fù)。但小體型的代價卻是搭載的傳感器更少,單個飛行器能做的事情也有限。
為了彌補這一缺憾,Vijay和他的團(tuán)隊發(fā)明了飛行器矩陣,即通過一組飛行器來配合完成某項任務(wù),這也是Vijay團(tuán)隊無人機研究中最重要的概念。為了讓一組飛行器更有機地配合,他們再次借鑒了仿生學(xué)規(guī)則。通過對切葉蟻亞科的盤腹蟻屬(Aphaenogaster)進(jìn)行觀察(如圖1所示),Vijay總結(jié)了三個重要的自然生物協(xié)同工作的原則。
切葉蟻亞科的盤腹蟻屬通過協(xié)作搬運重物
獨立自主(Decentralized),蟻群不受任何“中央命令”的控制,每只螞蟻都是按照自己的本能做事;
臨近感知(Neighbor Sensing),單只螞蟻的行為根據(jù)自己“鄰居”的行為作出調(diào)整;
匿名(Anonymity),單只螞蟻對自己的“鄰居”是誰并不清楚,因此無論“鄰居”換成誰,都不會對自己的行為造成影響。
受到上述自然規(guī)則的啟發(fā),Vijay設(shè)計了原理類似的飛行器矩陣,這種矩陣被稱為Swarm(如圖2所示)。在Swarm中,每臺飛行器都裝有本地傳感器,并且擁有本地通信和計算能力。兩臺相鄰的飛行器通過傳感器控制彼此的距離,傳感器以100次/s的頻率將數(shù)據(jù)發(fā)送到處理器,并由處理器將解決方案傳送給電機。在圖2的示例中,Swarm利用鄰近感知原則,可以在障礙物前轉(zhuǎn)換陣型(Formation),由于匿名原則,在一個Swarm中,即使抽掉(或增加)了幾臺飛行器,陣型依然可以保持原樣。
Swarm無人機矩陣
而由于每臺飛行器都是獨立運算行動的,在另一個例子中,飛行器通過自身對環(huán)境的探測,完成了一系列高難度的動作,比如在狹窄的通道前轉(zhuǎn)體,鉆過通道后迅速恢復(fù)原樣;以及鉆過向上拋出的鐵圈等(如圖3所示)。這兩個例子的原理在于,人們先為飛行器預(yù)先編入飛行軌跡,但飛行器需要在預(yù)設(shè)的軌跡上加一個動作,這需要它們先積聚動能再改變方向,再回到預(yù)設(shè)的軌跡上來。它們知道怎樣完成每段獨立的軌跡,然后把每一小段的軌跡組合起來。
為了更好地理解Swarm,Vijay通過一個理論來進(jìn)一步說明,他稱這個理論為Consensus,Consensus解決的是在Swarm中到底該怎樣形成陣型(Formation),哪臺飛行器該飛到哪,矩陣如何保持一致性的問題。Vijay舉了一個例子。假設(shè)你身處一個5個人的房間,每個人腦子里都想一個數(shù)字(事先不能交流),這時5個人都想到同一個數(shù)字的概率小到可以忽略不計,而這時你把你想到的數(shù)字告訴“鄰居”,“鄰居”再把自己聽到的數(shù)字相加再除以人數(shù)。比如A說1、B說4、C說10,當(dāng)你問C的數(shù)字是幾的時候,C會說5(1+4+10=15,3/15)。如果你們重復(fù)這一步驟,那么幾輪之后,你們就會得到相同的數(shù)字了。這就是為什么每臺無人機都有自己的飛行路線,但最終卻能協(xié)同起來的原因。
盡管在充分訓(xùn)練的情況下,Swarm已經(jīng)擁有良好的表現(xiàn),但Vijay也坦言,隨著飛行器的數(shù)量增多,Swarm的組織也越難,原因有二。其一是隨著飛行器數(shù)量的增加,單個飛行器對“鄰居”動態(tài)的感知更難,需要掌握的數(shù)據(jù)也更多;其二在于,當(dāng)不同特征(Traits)的飛行器同時加入編隊后,對陣型的優(yōu)化影響很大。
Vijay團(tuán)隊曾做過一項實驗。實驗中,他們?yōu)椴煌娘w行器賦予不同的特征(Traits),使具備相同特征的飛行器成為一個“種群”(Species),讓不同“種群”的飛行器組成一個陣列,去完成某項任務(wù)。結(jié)果發(fā)現(xiàn),種群的基數(shù)越大陣型就越難被優(yōu)化。
無人機,走出實驗室要面臨更多的挑戰(zhàn)
今天,無人機在現(xiàn)實世界中的真實應(yīng)用案例還相當(dāng)有限,盡管2011年,Vijay的無人機曾被用來日本地震災(zāi)后的探測工作(如圖4所示),但要想讓無人機在更多的任務(wù)中發(fā)揮作用,依然面臨著不小的技術(shù)挑戰(zhàn),外部世界的復(fù)雜性遠(yuǎn)遠(yuǎn)超過實驗室的模擬,除了上文提到的Swarm之外,無人機在室外甚至是災(zāi)難現(xiàn)場工作,還面臨著風(fēng)速、無GPS定位、懸停電量消耗、陡坡降落等難題。由于Vijay研究的無人機是“獨立”且完全“自動”的(Autonomic),即使要完成從A點到B點這樣簡單的動作,都要穿過一個12維的空間。
上圖是2011年在日本一所被地震震塌的房子內(nèi)構(gòu)建三維地圖,為了節(jié)省“體力”無人機由一臺地面機器人載入房間,之后再進(jìn)行飛行探測”。
Vijay的方法是把這個12維空間翹曲成一個4維空間(如圖5所示),這個4維空間由橫軸、縱軸、豎軸、旋轉(zhuǎn)軸組成。飛行器在這個4維空間中以10~100次/s的頻率規(guī)劃“最小化加速軌道”(Minimum Snap Trajectory),同時通過對位置向量、導(dǎo)數(shù)、速度和加速度的推導(dǎo),創(chuàng)造一個優(yōu)雅的飛行曲線,并且繞開障礙物。
無人機的飛行算法
然而當(dāng)飛行速度達(dá)到一定的量級之后,上面的方法就不利于避障了。由于無人機上的傳感器無法探測20米外的范圍,這時如果無人機以20m/s的速度運行,一秒鐘后就會飛到一個完全陌生的環(huán)境或撞上障礙物。這時就需要建立一個二維地圖,在二維地圖中找到安全軌跡作為矢量集合,飛行器可以在這個矢量集合中去調(diào)整“最小化加速度軌道”。
下面我們來看看Vijay團(tuán)隊在實際應(yīng)用方面的一些關(guān)鍵技術(shù)研究
地圖構(gòu)建
地圖的構(gòu)建分為兩種,一種是在未知環(huán)境,且傳感器數(shù)量和信號都不好(尤其是無法使用GPS)的情況下創(chuàng)建拓?fù)涞貓D;另一種是構(gòu)建SLAM(Simultaneous Localization And Mapping)。關(guān)于第一種,Vijay和他的團(tuán)隊開發(fā)了一套創(chuàng)建拓?fù)涞貓D的算法工具,通過ROS呈現(xiàn)(機器人操作系統(tǒng))。這一算法需要先對自由空間進(jìn)行覆蓋,然后建立起該覆蓋環(huán)境的基本維諾圖(Voronoi Graph,如圖6所示)。
陌生環(huán)境下室內(nèi)拓?fù)涞貓D的構(gòu)建
而SLAM的構(gòu)建則要復(fù)雜一點,在講解技術(shù)原理之前,我們不妨簡單地看一看這個近幾年在機器人、VR/AR領(lǐng)域經(jīng)常用到的技術(shù)。簡單來說,SLAM是指當(dāng)某種設(shè)備(如機器人、VR設(shè)備等)來到一個完全陌生的環(huán)境時,它需要精準(zhǔn)地建立時間和空間的對應(yīng)關(guān)系,并能完美地回答以下一系列問題:我剛才在哪里,現(xiàn)在在哪里?我看到了什么?現(xiàn)在看到的和之前看到的有哪些異同?我過去的行走軌跡是什么?我現(xiàn)在看到的環(huán)境是什么樣子,和過去相比有怎樣的變化?我的軌跡抖嗎?我的位置飄嗎?我還能跟蹤到自己的軌跡嗎,如果我丟了應(yīng)該怎么辦?我過去建立的對環(huán)境的認(rèn)識還有用嗎?我能在已有環(huán)境的抽象里快速對現(xiàn)在的位置進(jìn)行定位嗎?
半密集重建與全密集重建圖
在Vijay的實踐中,他們采用了一種叫做“直接視覺SLAM”(Direct Visual SLAM) 的方法。與傳統(tǒng)的用來構(gòu)建“稀疏重建”(Sparse Reconstructions)的功能性算法相比,直接視覺SLAM更適合建立“半密集重建”(Semi-Dense Reconstruction)和“全密集重建”( Fully-Dense Reconstruction),如圖7所示。Vijay告訴我們,他們目標(biāo)是在一個標(biāo)準(zhǔn)CPU環(huán)境下,將視覺數(shù)據(jù)和慣導(dǎo)數(shù)據(jù)連接起來。整個過程被拆分為三個線程,第一個線程利用視覺數(shù)據(jù)和慣導(dǎo)數(shù)據(jù)做非線性優(yōu)化,對攝像頭的移動做出判斷,這一過程以幀速率運行,然后構(gòu)建出半密集地圖(Semi-Dense Map)。第二線程則需要構(gòu)建出一個擁有高梯度區(qū)域(High-Gradient Area)的半密集地圖,目的依然是對攝像頭位置進(jìn)行追蹤。第三線程則以較低的幀速率構(gòu)建出該場景的全密集重建。
無GPS環(huán)境下,微型無人機矩陣部署系統(tǒng)
只裝有少量傳感器的微型無人機矩陣,是否可以在惡劣的環(huán)境下工作(比如無法使用GPS等)?為了解答這一問題,Vijay團(tuán)隊在礦井和大風(fēng)的戶外進(jìn)行了試驗,他們開發(fā)了一套叫做“基于視覺的穩(wěn)定系統(tǒng)”(Visual-based Stabilization),這套系統(tǒng)被部署到了多個應(yīng)用模式中,包括:主從無人機矩陣(Leader Follower)、Swarm矩陣在監(jiān)控環(huán)境下的部署與穩(wěn)定、合作無人感知測量等。實驗中,這些飛機的控制、運動規(guī)劃、穩(wěn)定性和軌道規(guī)劃都有不俗的表現(xiàn)。
高速無人機在陡坡的降落
救援型無人機需要在災(zāi)難現(xiàn)場長時間實時傳輸信息或構(gòu)建地圖,然而續(xù)航時間短仍然是個重要的短板。為了解決這一問題,Vijay和他的團(tuán)隊,希望通過讓無人機隨時降落來“保存體力”,包括降落在各種質(zhì)地和各種角度的平面。Vijay為微型無人機設(shè)計了“抓器”,它可以牢牢“抓住”不同的平面,還可以抓取重物。下圖展示了高速飛行的無人機在陡坡降落的情況,目前Vijay的無人機可以在90度的陡坡實現(xiàn)高速降落(如下圖所示)。
高速飛行的無人機在50度和90度的平面降落
這個“抓器”不是一般的“爪子”,而是一個真空吸盤,通過微型真空泵來驅(qū)動。他們對吸盤的設(shè)計和它與放氣、激活力度、最大抓舉力之間的關(guān)系作了很多次測試,最終這一吸盤做到了既可以抓取各種物體,又可以在陡坡上降落。
為了節(jié)省“體力”,Vijay和他的團(tuán)隊還做過其他嘗試。比如2011年他們讓一臺機器人背著無人機進(jìn)入一棟坍塌的大樓,進(jìn)到大樓呢,無人機才開始工作,用了兩個半小時繪制出了大樓內(nèi)部的地圖。
近景遙感技術(shù)在農(nóng)業(yè)上的應(yīng)用
通過近景遙感(Close-Range Remote Sensing)技術(shù)對柑橘屬果樹進(jìn)行檢測,并對患青果病的果樹進(jìn)行識別。在佛羅里達(dá),青果病是威脅果樹健康的主要因素。在同一景深下,通過測量黃色偏振光的反射比,可以找出患病的果樹。此外,他們還制定了一套標(biāo)準(zhǔn)用來測量患病果樹樹葉中的淀粉沉積。在獲得這些信息之后,他們再加上一個景深維度,和機器學(xué)習(xí)算法,識別的準(zhǔn)確率達(dá)到93%。不僅能識別患病的果樹,連青果病的傳染和早期受到感染的果樹也能分辨。
與Vijay Kumar對話實錄
程序員:你最近的研究并不太依靠外部設(shè)施,飛行器是完全“自動”(Autonomic)的,而用到的技術(shù)卻談不上創(chuàng)新,你怎么看?
Vijay:目前我們所用到的技術(shù),比如動作捕捉等確實稱不上新技術(shù),這類技術(shù)我們早在2008年就有所嘗試。但技術(shù)背后的算法卻是新的,理論也是新的,比如上面提到的陡坡降落等。新的理論讓“舊”的技術(shù)發(fā)揮新的作用。
程序員:你用手機作為傳感器集成,比起載有等量傳感器的無人機,具體可以減重多少?
Vijay:一般一個載有等量傳感器的飛行器大約重3千克,懸停的時候會更重,電纜、傳感器、外壁的重量占45%~50%,要240瓦才能帶動。而一臺iPhone6只有129克,只相當(dāng)于原來十分之一的重量。
程序員:既然無人機對重量的要求如此苛刻,那么執(zhí)行救災(zāi)任務(wù)時很難載人離開?
Vijay:的確。懸停是最大的問題,懸停時每千克消耗200瓦電力,要是載一個50公斤的人,每次懸停就要消耗一萬瓦以上的電力,這不是個小數(shù)字。但也不是沒有解決辦法,我們可以看看客機,無人機也可以像客機那樣用飛機燃料、汽油或柴油當(dāng)作燃料。
程序員:你認(rèn)為無人機要想真正普及,技術(shù)是最大的門檻嗎?
Vijay:我不這么認(rèn)為。技術(shù)創(chuàng)新固然重要,但很多需求我們已經(jīng)知道該如何實現(xiàn)了。但商業(yè)創(chuàng)新現(xiàn)在依然處于摸索的階段。無人機要想實現(xiàn)普及,需要由商業(yè)創(chuàng)新來推動,這是我不擅長的。你看Uber和嘀嘀出行這兩家公司,他們的崛起并非因為他們在技術(shù)上有很大突破,而是因為商業(yè)創(chuàng)新。