1. 程式人生 > >【無人機 學習筆記 3】無人機感測器特性-智慧導航的基本概念

【無人機 學習筆記 3】無人機感測器特性-智慧導航的基本概念

                                                                            智慧導航的基本概念


1.飛行器想要穩定飛行,需要 15 個狀態量:三維角度,三維角度對應的三維速度、三維加速度、三維角速度,三維位置。

感測器的測量如下:

 

2.感測器自身的限制:
(1)慣性測量元件:會受到溫度、製造工藝的限制,產生一些測量的偏差。這類測量的偏差需要比較仔細的演算法進行修正,而且往往不能單靠慣性測量元件自己的測量完全消除。
(2)地磁指南針:地磁線的強度非常弱,很容易受到干擾。
(3)氣壓計:會受到溫度、溼度、空氣流速、光照、振動等因素的影
(4)GPS:只有在開闊的空間內才能給出比較好的測量值,因為 GPS 接收機需要從天上的衛星獲得訊號,這些訊號要從太空傳入大氣層,這麼遠的距離,訊號已經相對來說很微弱,所以必須要求接收機和衛星之間的連線上沒有遮擋,一旦有建築甚至是樹木的遮擋,衛星發下來的訊號就有噪聲,GPS接收機就不能給出很好的位置和速度觀測。在室內環境中,GPS 甚至完全不能使用。
(5)光流:只能測量維平面,離測量物體不能超過 5 米左右。
(6)視覺里程計:也就是單目和雙目視覺,離測量物體不能超過 5 米左右。


3.組合導航技術
克勞德-夏農總結歸納出:資訊可以用來估計狀態,越多的資訊可以把狀態量估計得越準。控制論的奠基人諾伯特-維納與其他一大批工程師和科學家完善了通過資訊進行狀態估計的線性估計理論,進一步提出了感測器之間“互補濾波”,共同減小誤差的理論。在此基礎上魯道夫-卡爾曼提出了卡爾曼濾波器,在通訊、控制工程和飛行器狀態估計領域廣泛使用。   

因此,結合 GPS、慣性測量元件、地磁指南針和氣壓計各自的優缺點,使用電子訊號處理領域的很技術,融合多種感測器的測量值,獲得較為準確的飛行器十五個狀態量的測量。


4.控制過程
拿“懸停”這件看起來是多旋翼飛行器最基本的能力來說,實際上飛行器的控制器在背後做了一系列“串級控制”: 在知道自己三維位置的基礎上,控制自己的位置始終鎖定在懸停位置,這裡的控制量是一個目標的懸停速度,當飛行器的位置等於懸停位置時,這個目標懸停速度為 0,當飛行器的位置偏離了懸停位置時,飛行器就需要產生一個讓自己趨向懸停位置的速度,也就是一個不為零的目標懸停速
度;飛行器要想控制自己產生目標懸停速度,就需要根據自己當前的三維速度,產生一個目標加速度;為了實現這個目標加速度,飛機需要知道自己的三維角度,進而調整自己的姿態;為了調整自己的姿態,就需要知道自己的三維角速度,進而調整電機的轉速。

5.視覺感知
GPS 可以令發散的 IMU 等感測器通過組合導航技術收斂,但在感知系統中沒有 GPS 的的情況下需要另一個感測器替代 GPS 組成新的感知系統感知十五個狀態量。


(1)光流:只可以測三維速度,不能直接測量三維位置。同樣可以通過把光流測速模組測出的三維速度積分獲得三維位置,但是就像慣性測量元件積分會發散一樣,光流測速模組積分得到的位置也會發散。好在它不會天馬行空地失去控制。和組合導航技術中除了 GPS 之外的感測器妥善融合之後,它可以做到懸停時測量的位置不發散。
(2)視覺里程計:相比光流測速模組,增加了直接測量位置的能力,所以才叫“里程計”。視覺里程計比光流測速模組能力更強,效能更好。視覺里程計演算法複雜很多,它不僅要通過影象反推出視野中物體的平面運動,還要反推出這些物體的三維位置,並且基於這些物體的三維位置做很多次的優化計算,演算法複雜度成倍於光流測速模組。有些視覺里程計的演算法甚至包含完整的光流追蹤的演算法,但是僅僅把計算光流作為預處理影象的步驟。

視覺里程計能夠直接測量位置,測量值也比較準確,不會像光流測速模組那樣發散。通常比較優秀的視覺里程計飛 100 米之後只會積累十幾釐米到幾十釐米的誤差。

視覺里程計有幾個不同層次的難度,最簡單的是兩個相機構成的雙目立體視覺系統加慣性測量元件,最難的是一個相機構成的單目視覺系統加慣性測量元件。單目視覺系統和雙目立體視覺系統兩者對比起來,他們的演算法難度差別很大。視覺里程計的演算法關鍵點是前面說的“通過連續的影象反推出視野中物體的三維位置”。 對於和人眼結構類似的雙目立體視覺系統,這一點比較容易,因為一個物體同時出現在左右兩個相機的視野中時左右視野有視差,視差可以幫助解算物體的位置,只需要用簡單的幾何關係就可以實現,這已經是非常成熟的技術。但是對於單目視覺系統,只有一個相機就沒有視差,沒法做簡單的幾何關係的解算,所以演算法必須能智慧地在區域性範圍內同時估計很多個物體的位置,然後在自身移動過程中通過位置移動產生視差,然後進行多個物體的位置的最大似然估計,從而推算出這些物體比較準確的位置。這個過程包括很多個環節,大部分環節在學術界都沒有公認最優的方案,因此還沒有成熟的技術。

6.大疆的領先技術
(1)視覺方案:在精靈 4 上實現了雙目立體視覺系統加慣性測量元件構成的視覺里程計,飛機上裝了兩套雙目立體視覺系統,一套向前看,一套向下看,一共是四個相機。兩套雙目立體視覺系統都參與視覺里程計的計算。通常情況下以向下看的雙目立體視覺系統為主,如果向下看的相機對著一些特徵不明顯的環境(比如純色的地板、海面等等),感受不到什麼影象變化,視覺里程計會自動切換到向前看的立體視覺系統做測量計算。雖然精靈 4 採用的都是較為成熟的機器視覺技術,但是由於精靈 4上機載的計算量非常有限,大疆還是下了相當久的苦功去優化演算法,並使用了 Movidius 公司製作的影象演算法處理專用晶片,結合 Movidius 公司的影象處理演算法庫優化四路影象處理的效能。值得一提的是,不久就會面世的 Google Project Tango 也使用了 Movidius 公司的這款晶片。不過因為 Movidius公司的晶片不包含視覺里程計的演算法,所以 Google 的這款產品中視覺里程計的演算法應該與精靈 4 的演算法有較大差別。


兩套雙目立體視覺系統還帶來了視覺里程計之外的兩個好處: 1.向下看的一套雙目立體視覺系統可以探測下方地面上物體的三維位置,從而知道地面的距離;2.向前看的一套雙目立體視覺系統可以用來探測前方場景中物體的深度,產生深度圖進行障礙感知。深度圖還可以用於重建一個飛行器周圍的區域性地圖,以進行精細的運動規劃,這就是精靈 4 指點飛行的基礎,在這篇文章中不詳細介紹了。智慧導航技術極大拓展了飛行器可以活動的空間,當有 GPS 的時候,系統可以通過 GPS 為主進行十五個狀態量的測量,視覺里程計依然可以繼續運作,提供額外的速度和位置的測量值進一步提高精度;GPS 訊號不好的時候,視覺里程計可以接替 GPS 為整個系統提供穩定的觀測。智慧導航系統中有三種確定高度的感測器:超聲波、氣壓計、雙目立體視覺,這三種感測器幾乎可以覆蓋所有讓傳統多旋翼飛行器頭疼的定高場景:樹叢上方、室內、靠近建築的位置、大風環境等等。地磁指南針的冗餘設計可以很大程度上減小外部磁干擾帶來的指南針故障。另外視覺里程計也能給出航向的觀測,兩者互補能夠提高航向的觀測精度。在以前的飛行器上,因為地磁指南針受到干擾造成的炸機問題比較多,在精靈 4 上因為有了多重保護措施,地磁指南針被幹擾導致問題的概率大大降低。有了智慧導航系統之後,還需要有一套強有力的軟體系統去組織導航演算法和飛行控制演算法。精靈 4的飛控和最新推出的 A3 飛控類似,都是大疆第三代飛行控制器。2016 年初開發完成的第三代飛控里加入了冗餘感測器、雙目立體視覺支援、避障功能和智慧返航等功能。2014 年底推出的第二代飛控里加入了光流測速模組支援、SDK、限飛區和新手模式等功能。大疆第一代飛控是汪滔自己寫的,
效能很不錯,然後飛控組在過去的幾年裡做了兩次比較大的飛控軟體系統的重構,以支援更多的感測器和功能。


智慧導航系統讓精靈 4 在任何狀態下都可以準確測量自身的三維位置和三維速度,這對實現多種功能都有非常重要的意義。


(2)避障:近年來,業界有很多關於避障應該使用雙目立體視覺還是鐳射雷達感測器等感測器的爭論。大疆選擇了雙目立體視覺的方案。相信隨著科技的發展,在未來會不斷有更多更好的新感測器誕生,很可能會有其他感測器代替雙目立體視覺,但是實現穩定避障的關鍵不在於避障所使用的感測器。避障這個事件發生前後,飛行器機體一定會發生急剎車,整體會經歷很大的姿態變化和加速度,在這種狀態下,飛行器是否還能穩定地測量出自己的十五個狀態量,才是最影響安全性的問題。如果系統急剎車之後,整體的位置觀測甚至速度觀測都發散了,這時候飛行器有可能左右飄出去,還是會發生炸機。就算不炸機,避障之後飛機前後左右搖晃,也會給使用者心理上造成不安全的感受,帶來很差的使用者體驗。精靈 4 在很多嚴苛的情況下發生避障動作時,飛行器會自動鎖定位置、速度迅速減為 0 的狀態,很快就可以從高速機動恢復到完全不動,非常穩定地懸停,避免了在障礙附近不穩定活動引起炸機。


(3)多種場景的適應:
場景一:在十幾層樓的視窗把飛行器從室內飛到室外懸停這種場景下,從視窗穿出時,向下看的感測器幾乎馬上全部失效,由於有建築的遮擋,GPS 也不會立刻生效,因此感測器系統不夠穩健的飛行器有可能因為失去速度和位置的測量而飄到建築上造成高空炸機。而精靈 4 則能夠通過前視雙目視覺系統的觀測,在向下看的感測器都暫時失效時繼續執行視覺里程計,及時提供輔助的速度和位置觀測,避免造成無法控制速度和位置導致炸機的情況出現。
場景二:在航拍時,GPS 被遮擋
比如在樹木茂密的峽谷裡航拍,經常出現的情況是飛行器放在地面上時接收不到 GPS 訊號,如果穩定飛到幾十米的高度就可以接收到了。在這些臨界情況下起飛和降落非常危險,如果要保證飛行器在升降過程中都能保持穩定的狀態,飛行器必須能夠在 GPS 和視覺里程計之間無縫轉換,這樣才能讓使用者放心地起降。如果使用者從高處下降到低處 GPS 突然沒有了,而視覺里程計沒有及時補上,飛機失去位置和速度觀測之後就變得非常難操控,就有可能撞在樹叢上。在這些情況下光流測速模組效果是不是也一樣呢。我們前面說過光流測速模組的演算法有很多簡化的假設,尤其是被觀測的物體必須處於同一個平面這樣的假設,使得光流測速模組在樹叢上方、地勢變化較大的空間上方,都表現非常糟糕,並不能滿足戶外航拍的需求。雖然視覺里程計計算量龐大,但它是比光流測速模組更加實用有效的方案。
(4)遙控器杆量轉化成飛行器的速度指令
第二代的大疆飛控使用的是遙控器杆量轉化成飛行器的加速度指令,而第三代的大疆飛控在精靈 4上變成了遙控器杆量轉化成飛行器的速度指令。在精靈 3、大疆的前代飛行器以及很多無人機產品上,如果你推遙控器滿杆前進,飛行器會以一個固定的角度加速飛出去,直到加速度被空氣阻力抵消,這樣控制並不直觀,所以新手很難操作飛行器;而在精靈 4 上,如果你推遙控器滿杆前進,飛行器會自
己調整到一個固定的速度上,直接操控速度顯得非常直接,以往,讓飛行器保持勻速飛行是隻有專業飛手才能做到的事情,現在則真真正正地讓普通人也能觸手可得。遙控器杆量改動也顯示了大疆對自己智慧導航系統提供的穩定的三維速度測量的信心。目前沒有見過其他哪家公司的飛行器控制系統採用的是遙控器杆量轉化成飛行器的速度指令。


7.一套完整、可靠的感測器系統是一點一滴積累起來的,新感測器必須和已有的組合導航系統在硬體
和軟體上仔細融合,才能真正發揮作用。