1. 飛行器的狀態(tài)
客機(jī)、多旋翼飛行器等很多載人不載人的飛行器要想穩(wěn)定飛行,首先最基礎(chǔ)的問(wèn)題是確定自己在空間中的位置和相關(guān)的狀態(tài)。測(cè)量這些狀態(tài),就需要各種不同的傳感器。
世界是三維的,飛行器的三維位置非常重要。比如民航客機(jī)飛行的時(shí)候,都是用GPS獲得自己經(jīng)度、緯度和高度三維位置。另外GPS還能用多普勒效應(yīng)測(cè)量自己的三維速度。后來(lái)GPS民用之后,成本十幾塊錢(qián)的GPS接收機(jī)就可以讓小型的設(shè)備,比如汽車(chē)、手機(jī)也接收到自己的三維位置和三維速度。
對(duì)多旋翼飛行器來(lái)說(shuō),只知道三維位置和三維速度還不夠,因?yàn)槎嘈盹w行器在空中飛行的時(shí)候,是通過(guò)調(diào)整自己的“姿態(tài)”來(lái)產(chǎn)生往某個(gè)方向的推力的。比如說(shuō)往側(cè)面飛實(shí)際上就是往側(cè)面傾,根據(jù)一些物理學(xué)的原理,飛行器的一部分升力會(huì)推著飛行器往側(cè)面移動(dòng)。為了能夠調(diào)整自己的姿態(tài),就必須有辦法測(cè)量自己的姿態(tài)。姿態(tài)用三個(gè)角度表示,因此也是三維的。與三維位置、三維角度相對(duì)應(yīng)的物理量是三維速度、三維加速度和三維角速度,一共是十五個(gè)需要測(cè)量的狀態(tài)。
這十五個(gè)狀態(tài)都對(duì)多旋翼飛行器保持穩(wěn)定飛行有至關(guān)重要的作用。拿“懸停”這件看起來(lái)是多旋翼飛行器最基本的能力來(lái)說(shuō),實(shí)際上飛行器的控制器在背后做了一系列“串級(jí)控制”:在知道自己三維位置的基礎(chǔ)上,控制自己的位置始終鎖定在懸停位置,這里的控制量是一個(gè)目標(biāo)的懸停速度,當(dāng)飛行器的位置等于懸停位置時(shí),這個(gè)目標(biāo)懸停速度為0,當(dāng)飛行器的位置偏離了懸停位置時(shí),飛行器就需要產(chǎn)生一個(gè)讓自己趨向懸停位置的速度,也就是一個(gè)不為零的目標(biāo)懸停速度;飛行器要想控制自己產(chǎn)生目標(biāo)懸停速度,就需要根據(jù)自己當(dāng)前的三維速度,產(chǎn)生一個(gè)目標(biāo)加速度;為了實(shí)現(xiàn)這個(gè)目標(biāo)加速度,飛機(jī)需要知道自己的三維角度,進(jìn)而調(diào)整自己的姿態(tài);為了調(diào)整自己的姿態(tài),就需要知道自己的三維角速度,進(jìn)而調(diào)整電機(jī)的轉(zhuǎn)速。
讀者可能會(huì)想哇為什么這么復(fù)雜。其實(shí)我們身邊的許多工程產(chǎn)品都在簡(jiǎn)單的表現(xiàn)背后藏著復(fù)雜的過(guò)程。比如汽車(chē)的油門(mén)也是類似的,踩下油門(mén)之后,有傳感器測(cè)量汽油的流速、控制汽油的流速;然后有傳感器測(cè)量發(fā)動(dòng)機(jī)的轉(zhuǎn)速、控制發(fā)動(dòng)機(jī)轉(zhuǎn)速……從踩油門(mén)到加速的過(guò)程中也有許許多多的傳感器在測(cè)量汽車(chē)的各個(gè)狀態(tài)量,并對(duì)這些狀態(tài)量施加控制。
知道十五個(gè)狀態(tài)量是多旋翼飛行器做任何動(dòng)作的基礎(chǔ)中的基礎(chǔ),但是讓飛行器在任何情況下都準(zhǔn)確知道這十五個(gè)狀態(tài)量是非常困難的事情,因?yàn)楝F(xiàn)在的科技水平還沒(méi)有能夠?qū)崿F(xiàn)讓一個(gè)傳感器同時(shí)測(cè)量這么多的物理量。幾十年來(lái),人們發(fā)展出了一套復(fù)雜的技術(shù),叫做組合導(dǎo)航,用GPS加上慣性測(cè)量元件、氣壓計(jì)和地磁指南針來(lái)讓飛行器測(cè)量自己的十五個(gè)狀態(tài)量。
2. 組合導(dǎo)航
慣性測(cè)量元件是一種能夠測(cè)量自身三維加速度和三維角速度的設(shè)備(實(shí)際上慣性測(cè)量元件有兩種,一種加速度計(jì),一種角速度計(jì),為了行文方便,我們把這兩種元件當(dāng)做一種,統(tǒng)稱為慣性測(cè)量元件)。根據(jù)物理學(xué)原理,加速度的積分是速度,速度的積分是位置,角速度的積分是角度,理論上單靠慣性測(cè)量元件,我們就可以知道十五個(gè)狀態(tài)量。
人類的科技水平也的確實(shí)現(xiàn)了這一點(diǎn):GPS還沒(méi)被發(fā)明以前,導(dǎo)彈上通常都裝著一個(gè)精密的慣性測(cè)量元件,導(dǎo)彈打出去以后靠這個(gè)裝置測(cè)量自己的十五個(gè)狀態(tài)量,然后控制自己飛越海洋和大洲。然而這種慣性測(cè)量元件會(huì)在測(cè)量的過(guò)程中慢慢累積誤差,元件本身的工藝、技術(shù)、成本越差,積累誤差的速度就越快。導(dǎo)彈上價(jià)值幾百萬(wàn)的慣性測(cè)量元件飛幾萬(wàn)公里后會(huì)積累十幾米到幾公里的誤差,這種水平的導(dǎo)彈已經(jīng)非常了不起了,畢竟不是每個(gè)國(guó)家都可以在背后豎著洲際導(dǎo)彈和國(guó)際社會(huì)講道理。
人體內(nèi)也有慣性測(cè)量元件,人的耳蝸充滿液體,人運(yùn)動(dòng)的時(shí)候這些液體有慣性,可以被耳中的神經(jīng)感受到,因此測(cè)出了運(yùn)動(dòng)的加速度。然而人的慣性測(cè)量元件非常差,閉上眼睛,也不摸周?chē)臇|西,只靠耳蝸感受的移動(dòng),人基本沒(méi)法走直線。
而多旋翼飛行器上用的低成本MEMS慣性測(cè)量元件,精度就更差了,它測(cè)量的速度和位置在幾秒鐘內(nèi)就會(huì)發(fā)散到幾十米開(kāi)外去,完全沒(méi)法用來(lái)規(guī)劃控制自己的飛行路線。
此外,慣性測(cè)量元件還會(huì)受到溫度、制造工藝的限制,產(chǎn)生一些測(cè)量的偏差,比如說(shuō)有時(shí)溫度突然變化之后,一個(gè)靜止的慣性測(cè)量元件會(huì)覺(jué)得自己轉(zhuǎn)動(dòng)了起來(lái),雖然它靜止著,但是會(huì)輸出不為零的角速度。這類測(cè)量的偏差需要比較仔細(xì)的算法進(jìn)行修正,而且往往不能單靠慣性測(cè)量元件自己的測(cè)量完全消除。
地磁指南針是一種測(cè)量航向的傳感器。指南針在人們的生活中作用重大,在未知的環(huán)境中,不分南北可能寸步難行。飛行器的機(jī)身正方向朝南還是朝北這個(gè)狀態(tài)量用導(dǎo)航的術(shù)語(yǔ)來(lái)說(shuō)叫做航向,也就是飛行器姿態(tài)的三維角度中的一個(gè),他在組合導(dǎo)航系統(tǒng)中是非常重要的一個(gè)狀態(tài)量。
地磁指南針能夠指南指北是因?yàn)榈厍虮砻婵臻g中有看不見(jiàn)的橫貫?zāi)媳钡牡卮啪€,地磁指南針可以測(cè)量出穿過(guò)自身的地磁強(qiáng)度,從而指出當(dāng)前自身相對(duì)于地磁線的偏轉(zhuǎn)。同樣地,這個(gè)理論雖然非常簡(jiǎn)單,但是地磁線的強(qiáng)度非常弱,很容易受到干擾。比如多旋翼飛行器通用的無(wú)刷電機(jī),在運(yùn)轉(zhuǎn)的時(shí)候就會(huì)產(chǎn)生變化的磁場(chǎng),和地磁場(chǎng)疊加之后,地磁指南針就找不到正確的方向了。地磁指南針的這個(gè)特性非常令人惱火,但是早期的多旋翼飛行器開(kāi)發(fā)人員毫無(wú)辦法,因?yàn)檫@是唯一的能夠確定飛行器在空間中絕對(duì)航向的設(shè)備。如果不知道這個(gè)航向,就基本沒(méi)辦法進(jìn)行組合導(dǎo)航。
氣壓計(jì)的原理最為簡(jiǎn)單。因?yàn)榈厍虮砻婧0卧礁撸諝庠较”。瑲鈮涸降停虼藲鈮壕湍軌蚪o出飛行器的海拔高度。不過(guò),不出意料的是,尺寸和重量適合在多旋翼飛行器上使用的氣壓計(jì)有很大的缺陷,它的測(cè)量值會(huì)受到溫度、濕度、空氣流速、光照、振動(dòng)等因素的影響,單靠氣壓計(jì)非常難實(shí)現(xiàn)對(duì)高度的穩(wěn)定測(cè)量。
組合導(dǎo)航技術(shù)結(jié)合GPS、慣性測(cè)量元件、地磁指南針和氣壓計(jì)各自的優(yōu)缺點(diǎn),使用電子信號(hào)處理領(lǐng)域的很多技術(shù),融合多種傳感器的測(cè)量值,獲得較為準(zhǔn)確的飛行器十五個(gè)狀態(tài)量的測(cè)量。前面說(shuō)慣性測(cè)量元件的測(cè)量容易發(fā)散,這個(gè)發(fā)散可以通過(guò)GPS來(lái)抑制:GPS可以獲得三維位置也可以獲得三維速度,慣性測(cè)量元件可以獲得三維加速度,加速度的積分也是速度。在通過(guò)地磁指南針獲得航向的基礎(chǔ)上,兩種速度的觀測(cè)就可以融合起來(lái),通過(guò)GPS的測(cè)量值來(lái)發(fā)現(xiàn)并抑制慣性測(cè)量元件的發(fā)散。慣性測(cè)量元件的發(fā)散被抑制住之后,它也可以更準(zhǔn)地測(cè)量三維角度和三維加速度。因此GPS和慣性測(cè)量元件在這些情況中互相取長(zhǎng)補(bǔ)短。除此之外,氣壓計(jì)和GPS互相提高了高度測(cè)量的精度,地磁指南針、GPS和慣性測(cè)量元件一同提高了航向測(cè)量的精度,他們都是利用了相同的融合、“互補(bǔ)”的思想。
組合導(dǎo)航技術(shù)中傳感器互補(bǔ)的原理直接源于1948年誕生的信息論。克勞德-香農(nóng)總結(jié)歸納出的信息論提出了信息的概念以及如何從數(shù)學(xué)上度量信息,信息論可以說(shuō)是現(xiàn)代人類文明的基石之一。解釋清楚信息的本質(zhì)之后,人們才能夠用數(shù)學(xué)表示一個(gè)樸素而又深刻的原理:信息可以用來(lái)估計(jì)狀態(tài),越多的信息可以把狀態(tài)量估計(jì)得越準(zhǔn)。
(上圖致敬信息論之父,克勞德-香農(nóng))
此后,控制論的奠基人諾伯特-維納、魯?shù)婪?卡爾曼以及其他一大批工程師和科學(xué)家完善了通過(guò)信息進(jìn)行狀態(tài)估計(jì)的線性估計(jì)理論,進(jìn)一步提出了傳感器之間“互補(bǔ)濾波”,共同減小誤差的理論。卡爾曼設(shè)計(jì)的卡爾曼濾波器還被實(shí)現(xiàn)在了阿波羅飛船的導(dǎo)航計(jì)算機(jī)當(dāng)中,使用星座位置和慣性測(cè)量元件互補(bǔ)測(cè)量阿波羅飛船的十五個(gè)狀態(tài)量。
信息論、線性估計(jì)理論以及卡爾曼濾波器允許人們把多個(gè)具有誤差的傳感器通過(guò)數(shù)學(xué)方程融合起來(lái),利用傳感器信息估計(jì)特定的狀態(tài)量,而且越多傳感器“互補(bǔ)”,可以獲得越好的狀態(tài)估計(jì)。這樣,數(shù)學(xué)給工程學(xué)指出了發(fā)展方向:造更多牛逼的傳感器進(jìn)行互補(bǔ),就能獲得更好的狀態(tài)估計(jì)能力。大疆飛控工程師也曾經(jīng)說(shuō)過(guò):“最牛逼的工程師都是在搞傳感器。”傳感器技術(shù)的重要性可見(jiàn)一斑。
作為一種位置傳感器,GPS具有諸多的問(wèn)題,GPS信號(hào)只有在開(kāi)闊的空間內(nèi)才能給出比較好的測(cè)量值,因?yàn)镚PS接收機(jī)需要從天上的衛(wèi)星獲得信號(hào),這些信號(hào)要從太空傳入大氣層,這么遠(yuǎn)的距離,信號(hào)已經(jīng)相對(duì)來(lái)說(shuō)很微弱,所以必須要求接收機(jī)和衛(wèi)星之間的連線上沒(méi)有遮擋,一旦有建筑甚至是樹(shù)木的遮擋,衛(wèi)星發(fā)下來(lái)的信號(hào)就有噪聲,GPS接收機(jī)就不能給出很好的位置和速度觀測(cè)。在室內(nèi)環(huán)境中,GPS甚至完全不能使用。組合導(dǎo)航技術(shù)要想進(jìn)一步發(fā)展,就需要尋找其他能夠在GPS不能使用的環(huán)境中使用的傳感器。
一種較為簡(jiǎn)單的能夠替代GPS測(cè)量高度的傳感器是小型超聲波模塊。這種模塊通常有一收一發(fā)兩個(gè)探頭,一個(gè)探頭發(fā)出超聲波,另一個(gè)探頭測(cè)量回波的時(shí)間,能夠算出導(dǎo)致聲波反彈的物體離探頭的距離。現(xiàn)在在淘寶上,只要10塊錢(qián)就可以買(mǎi)到一個(gè)能夠比較準(zhǔn)確測(cè)量幾米內(nèi)物體距離的超聲波模塊,被廣泛用在大學(xué)生制作的小機(jī)器人上。這種10塊錢(qián)的傳感器沒(méi)有比氣壓計(jì)和MEMS慣性測(cè)量元件性能高多少,它發(fā)出的聲波容易發(fā)散,探測(cè)到的物體不一定位于探頭正前方,另外聲波也容易被空氣中的水霧、振動(dòng)所影響,給出完全錯(cuò)誤的觀測(cè)。因此,超聲波模塊最好的使用場(chǎng)景是對(duì)著地面,測(cè)量自身和地面的距離。
3. 視覺(jué)感知系統(tǒng)
另外一種替代品是視覺(jué)感知系統(tǒng)。1970年之后,隨著數(shù)字成像技術(shù)的發(fā)展,相機(jī)作為一種傳感器開(kāi)始被廣泛研究。因?yàn)槿丝梢酝ㄟ^(guò)自己的視覺(jué)估計(jì)視野中物體的位置、距離,而相機(jī)的原理模擬了人的雙眼,所以研究者們模仿人的特點(diǎn),利用相機(jī)的二維圖像反推圖像中物體的三維信息。這種和二維圖像推算三維信息相關(guān)的技術(shù)和數(shù)學(xué)理論發(fā)展成了一個(gè)獨(dú)立的學(xué)科——計(jì)算機(jī)視覺(jué),也被稱作機(jī)器視覺(jué)。
視覺(jué)感知系統(tǒng)是目前世界上最熱門(mén)的機(jī)器人學(xué)和機(jī)器視覺(jué)領(lǐng)域研究課題。其原理是利用一個(gè)或者多個(gè)相機(jī)構(gòu)成的視覺(jué)傳感器系統(tǒng),采用復(fù)雜的算法,通過(guò)二維的相機(jī)圖像推算出視野中物體相對(duì)與視覺(jué)傳感器系統(tǒng)的幾何中心的運(yùn)動(dòng)信息,如果假設(shè)這些物體都是靜止的,那么相對(duì)運(yùn)動(dòng)其實(shí)代表了視覺(jué)傳感器本身的運(yùn)動(dòng)。理論上,計(jì)算機(jī)視覺(jué)技術(shù)能夠單憑一個(gè)相機(jī)就可以準(zhǔn)確測(cè)量十五個(gè)狀態(tài)量,但是與其他傳感器類似,相機(jī)也有很多的缺陷,包括無(wú)法恢復(fù)尺度、成像質(zhì)量有限、計(jì)算量消耗巨大等等。幸好,我們還可以把視覺(jué)感知系統(tǒng)和其他傳感器結(jié)合起來(lái),互相提高測(cè)量精度。
聰明的讀者肯定能夠想到,把視覺(jué)感知系統(tǒng)和之前說(shuō)的所有組合導(dǎo)航中用到的傳感器融合起來(lái),GPS信號(hào)質(zhì)量高的時(shí)候用GPS組合導(dǎo)航,沒(méi)GPS的時(shí)候用視覺(jué)感知系統(tǒng)替代GPS,不就解決問(wèn)題了嗎。這確實(shí)正是目前工程師和科學(xué)家們正在努力解決的問(wèn)題,也是精靈4上初步實(shí)現(xiàn)的技術(shù)。在介紹精靈4是如何結(jié)合視覺(jué)感知系統(tǒng)和組合導(dǎo)航技術(shù)之前,我們先簡(jiǎn)單介紹兩種已經(jīng)比較成熟的視覺(jué)感知系統(tǒng):光流測(cè)速模塊和視覺(jué)里程計(jì)。
光流測(cè)速模塊顧名思義,只能測(cè)速度。通常一個(gè)光流測(cè)速模塊由一個(gè)相機(jī)、一個(gè)慣性測(cè)量元件、一個(gè)超聲波模塊構(gòu)成,它的主要原理是計(jì)算機(jī)視覺(jué)技術(shù)中于1981年被發(fā)展出來(lái)的“光流追蹤”算法。
“光流”的概念最早在1950年代由心理學(xué)家和生物學(xué)家提出,指的是一個(gè)觀察者和他在觀察的事物發(fā)生相對(duì)運(yùn)動(dòng)時(shí),這些事物在他眼前成的像會(huì)產(chǎn)生“運(yùn)動(dòng)的模式”,人腦利用這種“運(yùn)動(dòng)的模式”能夠更靈敏地感知周?chē)裁礀|西在動(dòng)。比如下圖中,讀者一看就可以直觀理解“光流”的意義。
后來(lái)計(jì)算機(jī)科學(xué)家布魯斯-盧卡斯和金出武雄在1981年發(fā)明了Lucas-Kanade算法,通過(guò)算法計(jì)算出連續(xù)拍攝的圖片上的光流,并證明了光流可以反解出相對(duì)運(yùn)動(dòng)的速度。雖然三十多年來(lái),Lucas-Kanade算法始終被公認(rèn)為最好的“光流追蹤”算法,但是它有比較大的局限性,它包含很多假設(shè),比如假設(shè)連續(xù)圖片的平均亮度相同,比如假設(shè)圖片中的物體只發(fā)生平面運(yùn)動(dòng)等等。另外,光流算法算出的速度是沒(méi)有尺度的,因?yàn)橄鄼C(jī)圖像的單位是像素,所以光流算法只能給出“你現(xiàn)在的速度是10個(gè)像素每秒”,但是沒(méi)法算出10個(gè)像素是1厘米還是1米。恢復(fù)尺度的方式是增加一個(gè)超聲波模塊測(cè)量平面運(yùn)動(dòng)離相機(jī)的距離,這樣就能夠把像素運(yùn)動(dòng)轉(zhuǎn)換成真實(shí)的運(yùn)動(dòng)。最后,如果要讓光流測(cè)速模塊在晃來(lái)晃去的多旋翼飛行器上也能使用,通過(guò)慣性測(cè)量元件找出圖像所代表的平面也是必不可少的,這一點(diǎn)需要在算法上進(jìn)行兩種傳感器很好的配合。
光流算法原理上只可以測(cè)三維速度,不能直接測(cè)量三維位置。我們同樣可以通過(guò)把光流測(cè)速模塊測(cè)出的三維速度積分獲得三維位置,但是就像慣性測(cè)量元件積分會(huì)發(fā)散一樣,光流測(cè)速模塊積分得到的位置也會(huì)發(fā)散。好在它不會(huì)天馬行空地失去控制,和組合導(dǎo)航技術(shù)中除了GPS之外的傳感器妥善融合之后,它可以做到懸停時(shí)測(cè)量的位置不發(fā)散。因此可以說(shuō)光流測(cè)速模塊只在有限的條件下能夠替代GPS。
光流測(cè)速模塊已經(jīng)形成了非常標(biāo)準(zhǔn)的解決方案。大疆悟以及精靈3上都裝載了自主研發(fā)的光流測(cè)速模塊,另外著名的開(kāi)源飛控產(chǎn)品Pixhawk中包含了一個(gè)叫做PX4Flow的光流測(cè)速模塊,并且開(kāi)源了所有的代碼和硬件方案。所以光流測(cè)速模塊目前已經(jīng)廣泛出現(xiàn)在了各大廠商的多旋翼飛行器產(chǎn)品上。
視覺(jué)里程計(jì)相比光流測(cè)速模塊,增加了直接測(cè)量位置的能力,所以才叫“里程計(jì)”。視覺(jué)里程計(jì)比光流測(cè)速模塊能力更強(qiáng),性能更好。
讀者可能會(huì)問(wèn),為什么聽(tīng)起來(lái)視覺(jué)里程計(jì)和光流測(cè)速模塊參與的傳感器數(shù)量差不多(光流測(cè)速模塊甚至還多一個(gè)超聲波模塊),但是視覺(jué)里程計(jì)能力反而更強(qiáng)呢。這里的原因不在于傳感器硬件,而在軟件算法上。前面已經(jīng)說(shuō)到光流追蹤算法有很多簡(jiǎn)化的假設(shè),只能測(cè)量平面運(yùn)動(dòng),增加其他傳感器硬件一定程度上是為了把那些為了計(jì)算方便而簡(jiǎn)化掉的因素重新彌補(bǔ)起來(lái)。
而視覺(jué)里程計(jì)算法則復(fù)雜得多,它不僅要通過(guò)圖像反推出視野中物體的平面運(yùn)動(dòng),還要反推出這些物體的三維位置,并且基于這些物體的三維位置做很多次的優(yōu)化計(jì)算,算法復(fù)雜度成倍于光流測(cè)速模塊。有些視覺(jué)里程計(jì)的算法甚至包含完整的光流追蹤的算法,但是僅僅把計(jì)算光流作為預(yù)處理圖像的步驟。
視覺(jué)里程計(jì)能夠直接測(cè)量位置,測(cè)量值也比較準(zhǔn)確,不會(huì)像光流測(cè)速模塊那樣發(fā)散。通常比較優(yōu)秀的視覺(jué)里程計(jì)飛100米之后只會(huì)積累十幾厘米到幾十厘米的誤差,這個(gè)測(cè)量水平比起導(dǎo)彈上幾百萬(wàn)的慣性測(cè)量元件還是差了不少,但是考慮到視覺(jué)里程計(jì)的價(jià)格極其低廉,對(duì)比起來(lái)它的性價(jià)比非常高。
視覺(jué)里程計(jì)有幾個(gè)不同層次的難度,最簡(jiǎn)單的是兩個(gè)相機(jī)構(gòu)成的雙目立體視覺(jué)系統(tǒng)加慣性測(cè)量元件,最難的是一個(gè)相機(jī)構(gòu)成的單目視覺(jué)系統(tǒng)加慣性測(cè)量元件。如果視覺(jué)里程計(jì)和光流測(cè)速模塊硬件一致,那么這里的視覺(jué)里程計(jì)采用的是單目視覺(jué)系統(tǒng)。目前,雙目立體視覺(jué)系統(tǒng)加慣性測(cè)量元件實(shí)現(xiàn)自身狀態(tài)觀測(cè)已經(jīng)是比較完善的技術(shù),而單目視覺(jué)系統(tǒng)則是活躍的研究方向,世界上做這個(gè)研究方向較好的大學(xué)有美國(guó)的賓西法尼亞大學(xué)、瑞士的蘇黎世聯(lián)邦理工學(xué)院、英國(guó)的牛津大學(xué)、我國(guó)的香港科技大學(xué)和其他一些歐美院校。
單目視覺(jué)系統(tǒng)和雙目立體視覺(jué)系統(tǒng)兩者對(duì)比起來(lái),他們的算法難度差別很大。視覺(jué)里程計(jì)的算法關(guān)鍵點(diǎn)是前面說(shuō)的“通過(guò)連續(xù)的圖像反推出視野中物體的三維位置”。對(duì)于和人眼結(jié)構(gòu)類似的雙目立體視覺(jué)系統(tǒng),這一點(diǎn)比較容易,因?yàn)橐粋€(gè)物體同時(shí)出現(xiàn)在左右兩個(gè)相機(jī)的視野中時(shí)左右視野有視差,視差可以幫助解算物體的位置,只需要用簡(jiǎn)單的幾何關(guān)系就可以實(shí)現(xiàn),這已經(jīng)是非常成熟的技術(shù)。
但是對(duì)于單目視覺(jué)系統(tǒng),只有一個(gè)相機(jī)就沒(méi)有視差,沒(méi)法做簡(jiǎn)單的幾何關(guān)系的解算,所以算法必須能智能地在局部范圍內(nèi)同時(shí)估計(jì)很多個(gè)物體的位置,然后在自身移動(dòng)過(guò)程中通過(guò)位置移動(dòng)產(chǎn)生視差,然后進(jìn)行多個(gè)物體的位置的最大似然估計(jì),從而推算出這些物體比較準(zhǔn)確的位置。這個(gè)過(guò)程包括很多個(gè)環(huán)節(jié),大部分環(huán)節(jié)在學(xué)術(shù)界都沒(méi)有公認(rèn)最優(yōu)的方案,因此還沒(méi)有成熟的技術(shù)。
因?yàn)樵硐鄬?duì)簡(jiǎn)單,所以雙目立體視覺(jué)系統(tǒng)構(gòu)成的視覺(jué)里程計(jì)在三十年前就開(kāi)始被研究了。1980年代早期,NASA工程師、著名機(jī)器人學(xué)家漢斯-莫拉維克就已經(jīng)制造出了這種狀態(tài)測(cè)量系統(tǒng)。關(guān)于漢斯-莫拉維克的另一個(gè)故事,我在知乎問(wèn)題中“有哪些與控制、機(jī)器人等相關(guān)的 quotes? - YY碩的回答”也有提到。
(上圖致敬漢斯-莫拉維克)
在經(jīng)年累月的優(yōu)化之后,2004年,NASA成功把視覺(jué)里程計(jì)和慣性測(cè)量元件構(gòu)成的視覺(jué)定位系統(tǒng)裝在“機(jī)遇號(hào)”和“勇氣號(hào)”火星車(chē)主頻僅有20MHz的特制芯片上,送上了火星,它可以幫助火星車(chē)通過(guò)一對(duì)雙目相機(jī)非常準(zhǔn)確地記錄自己走過(guò)的路線。2007年,參與火星探測(cè)任務(wù)的計(jì)算機(jī)科學(xué)家和工程師們把這個(gè)激動(dòng)人心的過(guò)程寫(xiě)成了一篇論文《計(jì)算機(jī)視覺(jué)在火星》(Computer Vision on Mars),這篇文章吸引了很多計(jì)算機(jī)視覺(jué)研究人員投身視覺(jué)里程計(jì)的研究,也極大推動(dòng)了視覺(jué)里程計(jì)在機(jī)器人學(xué)中的應(yīng)用。
4. 精靈4的傳感器方案
大疆在精靈4上實(shí)現(xiàn)了雙目立體視覺(jué)系統(tǒng)加慣性測(cè)量元件構(gòu)成的視覺(jué)里程計(jì),飛機(jī)上裝了兩套雙目立體視覺(jué)系統(tǒng),一套向前看,一套向下看,一共是四個(gè)相機(jī)。
兩套雙目立體視覺(jué)系統(tǒng)都參與視覺(jué)里程計(jì)的計(jì)算。通常情況下以向下看的雙目立體視覺(jué)系統(tǒng)為主,如果向下看的相機(jī)對(duì)著一些特征不明顯的環(huán)境(比如純色的地板、海面等等),感受不到什么圖像變化,視覺(jué)里程計(jì)會(huì)自動(dòng)切換到向前看的立體視覺(jué)系統(tǒng)做測(cè)量計(jì)算。雖然精靈4采用的都是較為成熟的機(jī)器視覺(jué)技術(shù),但是由于精靈4上機(jī)載的計(jì)算量非常有限,大疆還是下了相當(dāng)久的苦功去優(yōu)化算法,并使用了Movidius公司制作的圖像算法處理專用芯片,結(jié)合Movidius公司的圖像處理算法庫(kù)優(yōu)化四路圖像處理的性能。值得一提的是,不久就會(huì)面世的Google Project Tango也使用了Movidius公司的這款芯片。不過(guò)因?yàn)镸ovidius公司的芯片不包含視覺(jué)里程計(jì)的算法,所以Google的這款產(chǎn)品中視覺(jué)里程計(jì)的算法應(yīng)該與精靈4的算法有較大差別。
兩套雙目立體視覺(jué)系統(tǒng)還帶來(lái)了視覺(jué)里程計(jì)之外的兩個(gè)好處:1. 向下看的一套雙目立體視覺(jué)系統(tǒng)可以探測(cè)下方地面上物體的三維位置,從而知道地面的距離;2. 向前看的一套雙目立體視覺(jué)系統(tǒng)可以用來(lái)探測(cè)前方場(chǎng)景中物體的深度,產(chǎn)生深度圖進(jìn)行障礙感知。深度圖還可以用于重建一個(gè)飛行器周?chē)木植康貓D,以進(jìn)行精細(xì)的運(yùn)動(dòng)規(guī)劃,這就是精靈4指點(diǎn)飛行的基礎(chǔ),在這篇文章中不詳細(xì)介紹了。
除了增加視覺(jué)里程計(jì)之外,精靈4上還增加了內(nèi)置的超聲波模塊。所以精靈4上一共有GPS+慣性測(cè)量元件+氣壓計(jì)+地磁指南針+超聲波模塊+雙目視覺(jué)系統(tǒng)六種傳感器。其中雙目視覺(jué)系統(tǒng)有兩套,共4個(gè)相機(jī);慣性測(cè)量元件有兩個(gè),實(shí)現(xiàn)雙冗余備份;地磁指南針也有兩個(gè),同樣雙冗余。當(dāng)工作中的慣性測(cè)量元件或者地磁指南針受到嚴(yán)重干擾的時(shí)候,系統(tǒng)會(huì)自動(dòng)進(jìn)行備份切換,切換到另一個(gè)傳感器上。這些傳感器的數(shù)量、功能和特性總結(jié)如下表:
有了這些傳感器以后,組合導(dǎo)航系統(tǒng)升級(jí)成為了智能導(dǎo)航系統(tǒng)。智能導(dǎo)航技術(shù)極大拓展了飛行器可以活動(dòng)的空間,當(dāng)有GPS的時(shí)候,系統(tǒng)可以通過(guò)GPS為主進(jìn)行十五個(gè)狀態(tài)量的測(cè)量,視覺(jué)里程計(jì)依然可以繼續(xù)運(yùn)作,提供額外的速度和位置的測(cè)量值進(jìn)一步提高精度;GPS信號(hào)不好的時(shí)候,視覺(jué)里程計(jì)可以接替GPS為整個(gè)系統(tǒng)提供穩(wěn)定的觀測(cè)。智能導(dǎo)航系統(tǒng)中有三種確定高度的傳感器:超聲波、氣壓計(jì)、雙目立體視覺(jué),這三種傳感器幾乎可以覆蓋所有讓傳統(tǒng)多旋翼飛行器頭疼的定高場(chǎng)景:樹(shù)叢上方、室內(nèi)、靠近建筑的位置、大風(fēng)環(huán)境等等。
地磁指南針的冗余設(shè)計(jì)可以很大程度上減小外部磁干擾帶來(lái)的指南針故障。另外視覺(jué)里程計(jì)也能給出航向的觀測(cè),兩者互補(bǔ)能夠提高航向的觀測(cè)精度。在以前的飛行器上,因?yàn)榈卮胖改厢樖艿礁蓴_造成的炸機(jī)問(wèn)題比較多,在精靈4上因?yàn)橛辛硕嘀乇Wo(hù)措施,地磁指南針被干擾導(dǎo)致問(wèn)題的概率大大降低。
有了智能導(dǎo)航系統(tǒng)之后,還需要有一套強(qiáng)有力的軟件系統(tǒng)去組織導(dǎo)航算法和飛行控制算法。精靈4的飛控和最新推出的A3飛控類似,都是大疆第三代飛行控制器。大疆第一代飛控是汪滔自己寫(xiě)的,性能很不錯(cuò),然后飛控組在過(guò)去的幾年里做了兩次比較大的飛控軟件系統(tǒng)的重構(gòu),以支持更多的傳感器和功能。2014年底推出的第二代飛控里加入了光流測(cè)速模塊支持、SDK、限飛區(qū)和新手模式等功能,2016年初開(kāi)發(fā)完成的第三代飛控里加入了冗余傳感器、雙目立體視覺(jué)支持、避障功能和智能返航等功能。因?yàn)槊恳淮沃貥?gòu)都對(duì)整個(gè)軟件系統(tǒng)做了很大規(guī)模的調(diào)整,增加了很多的軟件模塊和新的軟件架構(gòu),所以分了三代。別人剛開(kāi)始做飛控的時(shí)候,大疆已經(jīng)自己重構(gòu)了兩次代碼,這一點(diǎn)是大疆最引以自豪的地方之一。
智能導(dǎo)航系統(tǒng)讓精靈4在任何狀態(tài)下都可以準(zhǔn)確測(cè)量自身的三維位置和三維速度,這對(duì)實(shí)現(xiàn)多種功能都有非常重要的意義。
近年來(lái),業(yè)界有很多關(guān)于避障應(yīng)該使用雙目立體視覺(jué)還是激光雷達(dá)傳感器等傳感器的爭(zhēng)論。在大疆內(nèi)部,選擇什么樣的傳感器放入智能導(dǎo)航系統(tǒng)用來(lái)避障,工程師團(tuán)隊(duì)也進(jìn)行了曠日持久的探討,最后還是選擇了雙目立體視覺(jué)的方案。我相信隨著科技的發(fā)展,在未來(lái)會(huì)不斷有更多更好的新傳感器誕生,很可能會(huì)有其他傳感器代替雙目立體視覺(jué),但是實(shí)現(xiàn)穩(wěn)定避障的關(guān)鍵不在于避障所使用的傳感器。避障這個(gè)事件發(fā)生前后,飛行器機(jī)體一定會(huì)發(fā)生急剎車(chē),整體會(huì)經(jīng)歷很大的姿態(tài)變化和加速度,在這種狀態(tài)下,飛行器是否還能穩(wěn)定地測(cè)量出自己的十五個(gè)狀態(tài)量,才是最影響安全性的問(wèn)題。
如果系統(tǒng)急剎車(chē)之后,整體的位置觀測(cè)甚至速度觀測(cè)都發(fā)散了,這時(shí)候飛行器有可能左右飄出去,還是會(huì)發(fā)生炸機(jī)。就算不炸機(jī),避障之后飛機(jī)前后左右搖晃,也會(huì)給用戶心理上造成不安全的感受,帶來(lái)很差的用戶體驗(yàn)。精靈4在很多嚴(yán)苛的情況下發(fā)生避障動(dòng)作時(shí),飛行器會(huì)自動(dòng)鎖定位置、速度迅速減為0的狀態(tài),很快就可以從高速機(jī)動(dòng)恢復(fù)到完全不動(dòng),非常穩(wěn)定地懸停,避免了在障礙附近不穩(wěn)定活動(dòng)引起炸機(jī)。
精靈4還能處理很多看似很簡(jiǎn)單,但是對(duì)傳感器系統(tǒng)要求非常高的飛行場(chǎng)景。比如在十幾層樓的窗口把飛行器從室內(nèi)飛到室外懸停。這種場(chǎng)景下,從窗口穿出時(shí),向下看的傳感器幾乎馬上全部失效,由于有建筑的遮擋,GPS也不會(huì)立刻生效,因此傳感器系統(tǒng)不夠穩(wěn)健的飛行器有可能因?yàn)槭ニ俣群臀恢玫臏y(cè)量而飄到建筑上造成高空炸機(jī)。而精靈4則能夠通過(guò)前視雙目視覺(jué)系統(tǒng)的觀測(cè),在向下看的傳感器都暫時(shí)失效時(shí)繼續(xù)運(yùn)行視覺(jué)里程計(jì),及時(shí)提供輔助的速度和位置觀測(cè),避免造成無(wú)法控制速度和位置導(dǎo)致炸機(jī)的情況出現(xiàn)。
實(shí)際上,由于前面說(shuō)的過(guò)GPS容易被遮擋導(dǎo)致沒(méi)有足夠的信號(hào)做觀測(cè)的情況在航拍的場(chǎng)景中其實(shí)常常遇到。比如在樹(shù)木茂密的峽谷里航拍,經(jīng)常出現(xiàn)的情況是飛行器放在地面上時(shí)接收不到GPS信號(hào),如果穩(wěn)定飛到幾十米的高度就可以接收到了。在這些臨界情況下起飛和降落非常危險(xiǎn),如果要保證飛行器在升降過(guò)程中都能保持穩(wěn)定的狀態(tài),飛行器必須能夠在GPS和視覺(jué)里程計(jì)之間無(wú)縫轉(zhuǎn)換,這樣才能讓用戶放心地起降。如果用戶從高處下降到低處GPS突然沒(méi)有了,而視覺(jué)里程計(jì)沒(méi)有及時(shí)補(bǔ)上,飛機(jī)失去位置和速度觀測(cè)之后就變得非常難操控,就有可能撞在樹(shù)叢上。
讀者可能問(wèn),在這些情況下光流測(cè)速模塊效果是不是也一樣呢。我們前面說(shuō)過(guò)光流測(cè)速模塊的算法有很多簡(jiǎn)化的假設(shè),尤其是被觀測(cè)的物體必須處于同一個(gè)平面這樣的假設(shè),使得光流測(cè)速模塊在樹(shù)叢上方、地勢(shì)變化較大的空間上方,都表現(xiàn)非常糟糕,并不能滿足戶外航拍的需求。雖然視覺(jué)里程計(jì)計(jì)算量龐大,但它是比光流測(cè)速模塊更加實(shí)用有效的方案。
如果你推遙控器滿桿前進(jìn),飛行器會(huì)以一個(gè)固定的角度加速飛出去,直到加速度被空氣阻力抵消,這樣控制并不直觀,所以新手很難操作飛行器;
如果你推遙控器滿桿前進(jìn),飛行器會(huì)自己調(diào)整到一個(gè)固定的速度上,直接操控速度顯得非常直接,非常容易操控。以往,讓飛行器保持勻速飛行是只有專業(yè)飛手才能做到的事情,現(xiàn)在則真真正正地讓普通人也能觸手可得。這一個(gè)修改看似簡(jiǎn)單,但是提供了更好的操作手感,而且讓飛行器飛行的狀態(tài)更加穩(wěn)定。
對(duì)于航拍操作手來(lái)說(shuō),所有的花哨功能都不如懸停得穩(wěn)、飛得穩(wěn)這一點(diǎn)重要,因?yàn)轱w機(jī)晃得太厲害,總會(huì)給用戶造成一種“我的飛機(jī)真的沒(méi)出問(wèn)題嗎”的感受,用戶體驗(yàn)極其不好。我們?nèi)ノ鞑厍嗪;蛘咂渌苊赖牡胤介_(kāi)車(chē)玩,肯定是希望平穩(wěn)、慢慢地開(kāi),這樣才能專心看美景;如果開(kāi)著一部油門(mén)輕輕一點(diǎn)就加速到200公里的賽車(chē),坐在車(chē)?yán)镆粫?huì)兒被推背,一會(huì)兒過(guò)彎時(shí)左右甩,人還有心情欣賞路上的美景嗎?
遙控器桿量改動(dòng)也顯示了大疆對(duì)自己智能導(dǎo)航系統(tǒng)提供的穩(wěn)定的三維速度測(cè)量的信心。目前我沒(méi)有見(jiàn)過(guò)其他哪家公司的飛行器控制系統(tǒng)采用的是遙控器桿量轉(zhuǎn)化成飛行器的速度指令。
5. 當(dāng)我在談?wù)摕o(wú)人機(jī)的時(shí)候,我在談?wù)撌裁?/p>
在這篇文章里,到現(xiàn)在我都沒(méi)有提過(guò)“無(wú)人機(jī)”三個(gè)字。我覺(jué)得,就像一輛合格的汽車(chē)必須有安全帶、安全氣囊、后視鏡、阻燃內(nèi)飾、各種儀表盤(pán)等等安全措施才能稱為汽車(chē)一樣,一部合格的多旋翼飛行器也必須有慣性測(cè)量元件、GPS、視覺(jué)里程計(jì)、避障系統(tǒng)、氣壓計(jì)和超聲波等傳感器構(gòu)成的智能導(dǎo)航系統(tǒng)才能被稱為無(wú)人機(jī)。多旋翼飛行器不是玩具,汽車(chē)以高速撞人會(huì)造成人體嚴(yán)重的傷害,多旋翼飛行器甚至都不需要高速運(yùn)動(dòng)就可以用螺旋槳造成人體嚴(yán)重的傷害,因此多旋翼飛行器傳感器必須有很強(qiáng)的安全性和穩(wěn)定性。
2014年的時(shí)候,大疆飛控組有一個(gè)白板,上面寫(xiě)著:“競(jìng)爭(zhēng)對(duì)手” 下面只用小字寫(xiě)了幾個(gè)業(yè)內(nèi)競(jìng)爭(zhēng)品牌的名字,但是用大大的字寫(xiě)了“波音“。幾年來(lái),大疆飛控的夢(mèng)想都是能讓便宜低價(jià)的多旋翼飛行器像波音的民航客機(jī)那樣,只有五百萬(wàn)分之一的致死事故發(fā)生率。隨著傳感器技術(shù)的提升和飛行控制品質(zhì)的提升,截止2016年5月底,精靈4核心傳感器出現(xiàn)故障的概率約為兩百萬(wàn)分之一。雖然相比起載人的飛行器來(lái)說(shuō),大疆還有很多地方需要努力,但是在無(wú)人的多旋翼飛行器行業(yè)中,大疆是行業(yè)中飛行器整體故障率最低的企業(yè)。很多其他的企業(yè),可能都無(wú)法計(jì)算出事故概率是百萬(wàn)分之多少,甚至是萬(wàn)分之多少。
很多其他公司也出了不少多旋翼飛行器產(chǎn)品,但是大部分只做了個(gè)組合導(dǎo)航的皮毛,加上一個(gè)光流測(cè)速模塊,然后動(dòng)一些歪腦筋,就開(kāi)始標(biāo)榜自己的安全性。就好比造個(gè)了汽車(chē),說(shuō)“啊我這個(gè)安全性很好的因?yàn)槲曳较虮P(pán)手感很好,還裝了個(gè)車(chē)載GPS”,但他車(chē)?yán)镞B安全氣囊和后視鏡都沒(méi)有。
還有的公司以飛行器上有新型傳感器為賣(mài)點(diǎn)。但是一套完整、可靠的傳感器系統(tǒng)是一點(diǎn)一滴積累起來(lái)的,新傳感器必須和已有的組合導(dǎo)航系統(tǒng)在硬件和軟件上仔細(xì)融合,才能真正發(fā)揮作用。面對(duì)很多號(hào)稱采用激光、紅外線、“人眼級(jí)別的智能”的傳感器,讀者們只要去問(wèn)這些廠商:“你的傳感器能和GPS無(wú)縫切換嗎?”“你的傳感器解決室內(nèi)掉高問(wèn)題嗎”“你的傳感器在急剎車(chē)的時(shí)候還能保持位置觀測(cè)嗎”,就可以看出他們都是堆砌出來(lái)的空中樓閣。
-
傳感器
+關(guān)注
關(guān)注
2558文章
52048瀏覽量
760701 -
無(wú)人機(jī)
+關(guān)注
關(guān)注
230文章
10637瀏覽量
184593
原文標(biāo)題:多旋翼無(wú)人機(jī)的傳感器技術(shù)
文章出處:【微信號(hào):Hardware_10W,微信公眾號(hào):硬件十萬(wàn)個(gè)為什么】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論