【空心杯四旋翼TinyLeaf】傳感器入門

       傳感器是飛行器的“眼睛耳朵”,有了傳感器,纔可以根據控制律對被控對象進行閉環控制。各種各樣的傳感器,滿足了飛行器各式各樣的控制需求。


目錄

1 姿態傳感器

加速度計

陀螺儀

磁力計

2 距離傳感器

超聲波測距傳感器

ToF激光測距傳感器

紅外測距傳感器

3 氣壓計

4 空間定位傳感器(GPS/北斗/RTK/UWB)

5 光流傳感器

6 視覺傳感器

7 激光雷達


 筆者用過傳感器有限,使用過的傳感器會詳細一些,沒有使用過或不太瞭解的先佔坑,有機會用到了正在詳細敘述。

1 姿態傳感器

姿態傳感器是飛行器姿態控制的核心,姿態不能收斂,後續的一切都無從談起。姿態傳感器是一類傳感器的統稱,沒有什麼傳感器是會直接告訴你姿態的,姿態必然是通過一系列運算得到的(不包括自帶姿態解算功能的芯片或帶有協處理單片機的模塊)。姿態傳感器主要包括加速度計,陀螺儀,磁力計。根據這些傳感器的數據,通過一定的解算,就可以得到姿態角,目前較爲廣泛使用的算法是四元數變換。

  • 加速度計

測量傳感器所受加速度在XYZ三軸上的分量。在不受外力的情況下,三軸分量的矢量和就是重力。因此在靜止的情況下,可以通過加速度計的讀數估計出傳感器目前相對地面的位置。

  • 陀螺儀

測量傳感器在XYZ三軸軸向的旋轉角速度,這類傳感器是動態控制的關鍵,因爲傳感器在發生轉動的時候纔會有非零的讀數,四旋翼飛行器的姿態控制在一般要求下要求俯仰和橫滾角角速度爲0,就是通過陀螺儀實現的。

  • 磁力計

測量空間地磁場在XYZ三軸的分量,磁力計對於飛行器的航向控制的抗漂移非常關鍵,陀螺儀和加速度計的數據融合,陀螺儀負責積分得到轉過角度,加速度計通過重力分量糾偏,抑制數據漂移,可以較好的估計出俯仰和橫滾的角度,而航向角所在平面與大地平行,加速度計無法參與糾偏。這時候就需要磁力計提供的地磁場方向來觀測航向,從而抑制航向的漂移。

筆者用過的傳感器有MPU6050(一款六軸姿態傳感器,模塊很便宜,實質是加速度計+陀螺儀)、MPU9250(一款九軸姿態傳感器,實質是加速度計+陀螺儀+磁力計),HMC5983(一款磁力計,已經停產,比較貴。但是穩定且好用)。

2 距離傳感器

距離傳感器測量反射面與傳感器之間的距離,在飛行器控制中主要用來避障和定高。根據原理可以分爲以下幾類:

  • 超聲波測距傳感器

超聲波傳感器通過發送指定頻率超聲波,根據反射回波與發射的間隔時間,根據超聲波傳播的速度計算傳感器與反射面的距離,這類傳感器價格差異大,測量距離一般在3cm-5m之間,精度在0.5cm左右。此類傳感器要求反射面必須足夠大,且需要光滑。

  • ToF激光測距傳感器

通過發射激光,根據光反射回傳感器的時間計算距離,精度較高,一般可達到毫米級。要求反射面較大,且具備反射光的條件(光滑,非透明)。距離在10cm~10m量級。筆者使用的型號有VL53L0X與VL53L1X。

  • 紅外測距傳感器

實際爲光電對管,其中一隻發射紅外光,另一隻接受發射的紅外光強度,當傳感器與反射面較近時纔可以接受到較強得到反射,因而不能測量精確的距離,一般用作避障的傳感器。

3 氣壓計

氣壓隨着海拔高度變小,通過測量氣壓就可以估算出飛行器當前的高度,氣壓本身隨距離變化較小(在釐米級尺度上),因此受噪聲擾動較爲明顯。目前常見的做法是在氣壓計上蓋一塊海綿充當“硬件低通濾波器”。這類傳感器可以用來做飛行器的定高。

4 空間定位傳感器(GPS/北斗/RTK/UWB)

這類傳感器由於其價格門檻,筆者暫時還沒有接觸到。GPS之類的傳感器用的還是比較多的,值得注意的是定位的穩定性與連接到的衛星數量相關,一般在室外使用較多,因爲在室內往往搜星的數量較少。而UWB之類的傳感器則不受此限制,可以用做室內的定位。RTK的精度可以達到釐米級,UWB的精度大約在10cm左右,目前主要的問題還是比較貴,和RTK一樣,精度可以通過堆基站數量的方法解決(同時意味着採樣率的下降和價格的上升)。

5 光流傳感器

光流傳感器的原理和光電鼠標類似,不過特殊的透鏡使得其可以在較遠的距離上工作,其主要測量參數爲傳感器視界內畫面的移動速度。因此可以用來做飛行器的定點,其侷限主要來自光流算法遵循的亮度平滑假設,此外還有孔徑問題。所以要求光流傳感器指向的平面要有一定的紋理,且明暗變化儘可能緩慢。這些侷限的距離描述和原因可以參考我的另一篇博文:光流法的過去,現在和發展趨勢

6 視覺傳感器

視覺傳感器能做的非常多,視覺傳感器之所以如此出衆,與其龐大的數據量有關。在機器學習的加持下,衍生出許許多多的功能,諸如人物追蹤,視覺導航等,目前有一款開源的嵌入式圖像處理模塊OpenMV做的不錯,可以通過MicroPython做一些簡單的圖像處理功能。而且其生態做的不錯,IDE帶有大量的例程可供開發。筆者也參考其開源的原理圖設計過一款輕量級的圖像傳感器,之後如果能穩定運行,筆者會開一篇教程介紹。

7 激光雷達

激光雷達很貴,其通過高速旋轉的激光測距陣列獲得一個圓柱形視角內的距離信息,筆者認爲,激光雷達作爲飛行器的傳感器是一種赤裸裸的土豪行爲(無貶義),目前國外的幾個團隊(瑞士蘇黎世大學,明尼蘇達大學MARS實驗室)做的很好,主要是通過SLAM(同步定位與地圖構建)技術做自動導航。不得不承認這是一項很有前景的技術。


       筆者能力有限,錯漏之處在所難免,如有錯誤,可在下方評論指出,也可郵箱交流:[email protected]

碼字不易,給個贊可好?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章