一.基本概念
-
飛控:飛機的控制系統,其中硬件包含傳感器部分IMU和控制部分的MCU,軟件部分包含控制算法。
-
俯仰:pitch,繞坐標系y軸旋轉,想象一下平時的飛機
-
航向:yaw,繞坐標系z軸旋轉,想象一下平時的飛機
-
橫滾:roll,繞坐標系x軸旋轉,想象一下平時的飛機
-
陀螺儀:感測角速度,具有高動態特性, 但是它是一個間接測量角度的器件, 它測量的是角度的導數, 角速度, 要將角速度對時間積分才能得到角度。一般不受外界影響干擾,不過會出現積分誤差的問題。
-
加速度計:感測加速度,包括重力加速度,重力加速度和地理坐標系是固連的,因此可以通過這種關系得到加速度計和地面的角度關系,但是如果繞着Z軸旋轉是不會改變的,也就是無法感知水平旋轉。生活中的手機自動旋轉屏幕就用到這個。
-
磁力計:HMC5883L,是利用地磁場來定北極的一種方法,由地球的磁場來感測方向類似與指南針的功能。
-
MPU6050:六軸傳感器,集成了3軸陀螺儀和3軸加速度計,還有預留的IIC接口可以接磁力計,同時含有DMP可以進行硬件解算四元數,而輸出的是通過IIC輸出AD值。
-
慣性導航模塊:IMU,包括陀螺儀,加速度計和磁力計。
-
MEMS:微機電系統(Micro-Electro-Mechanical System),微電子微機械加工出來的、 用敏感元件如電容、壓電、壓阻、熱電耦、諧振、 隧道電流等來感受轉換電信號的器件和系統。
-
氣壓計:MS5611氣壓計主要通過氣壓的變化來感測物體的相對和絕對高度,可以用來定高,尤其是在室內GPS不起作用的情況下。
-
姿態解算:指把陀螺儀、加速度計、磁羅盤等數據融合在一起,得出飛行器的空中姿態。
-
深度解算:也叫長期融合,可以比較准確得解算出姿態。
-
快速解算:也叫快速融合,比較粗糙地得到姿態。
-
四元數:在無人機里面四元數是姿態的一種數學表示方式,也是用的最多的,因為四元數比較適合組合旋轉。在姿態解算中,一般用四元數來保存姿態,也就是用來保存從MPU6050得到的AD值。
-
歐拉角:姿態的另外一種數學表示方式,在姿態解算中主要用於講四元數轉換成歐拉角,然后用於姿態解算,姿態解算的輸入只能是歐拉角。
-
剛體:指在運動中和受力作用后,形狀和大小不變,而且內部各點的相對位置不變的物體。
-
地理坐標系:地球所在的坐標系, 這個坐標系是固定不變的, 正北, 正東, 正上方分別表示X, Y, Z軸。
-
無頭模式:四軸的方向是從兩個電機中間的方向飛
-
有頭模式:四軸的方向是從其中某個電機的方向飛
二.基本結構
1) 動力部分
1.機架:DJI的F450
2.電機:有刷電機和無刷電機,有刷電機是指電機內有換相電刷,而無刷電機是指電機內沒有換相電刷。有刷的定子是永磁體,無刷的定子是線圈,直觀來看是無刷電機有三個線並配合電調使用。大四軸一般都是用的無刷,小四軸用的是有刷的空心杯電機。
3.槳葉:碳纖槳,木槳,注塑槳,相同的電機和電池, 大KV值用小的螺旋槳, 小KV值用大的螺旋槳
4.電調:電子調速器,也叫電機驅動模塊,主要是用來控制電機的啟停和轉速,通過改變固定線圈內部電流的方向, 保證它跟永磁體之間的作用力是相互排斥, 持續轉動得以延續。
5.電池:航模的鋰電池需要的放電能力強,一般用C來做單位,這是與普通鋰電池的區別。
2)控制部分
1.飛控:主要是PIXHAWK,其采用的STM32做主控芯片,其中硬件包含傳感器部分IMU和控制部分的MCU,軟件部分包含控制算法。
2.通信方式:NRF24L01,藍牙4.0或者WIFI
3.遙控器:美國手和日本手,美國手是指油門在左邊的搖桿,日本手則相反。注:左手是理智,右手是感情,劍是危險的事物,要用理智來操控。
三.算法分析
1)姿態解算算法
姿態解算是指把陀螺儀、加速度計、磁羅盤等數據融合在一起,得出飛行器的空中姿態,也叫姿態融合。姿態解算涉及到傳感器數據的讀取和濾波、四元數與旋轉、姿態解算框架和長期融合。飛行器通過四元數法從陀螺儀的三軸角速度得到俯仰、偏航和滾轉角,這是快速解算,然后結合三軸磁力計和三軸加速度計得到漂移補償和深度解算。
我們用坐標系R來表示地球的坐標系(地理坐標系),這個坐標系是固定不變的,有X、Y、Z三個軸,同時用坐標系r來表示四軸飛行器的坐標系。所謂的姿態解算就是測量坐標系r與坐標系R的角位置關系,通過傳感器采集數據以及分析測量,最終得到這個關系。這當中用到的數學表示方法有歐拉角、四元數、矩陣和軸角。
姿態解算可以通過軟件解算和硬件解算來實現。姿態控制算法的輸入參數必須要是歐拉角。 AD值是指MPU6050的陀螺儀和加速度值, 3個維度的陀螺儀值和3個維度的加速度值, 每個值為16位精度。AD值必須先轉化為四元數,然后通過四元數轉化為歐拉角。這個四元數可能是軟解,主控芯片(STM2)讀取到AD值,用軟件從AD值算得,也可能是通過MPU6050中的DMP硬解,主控芯片(STM32)直接讀取到四元數。
四.一點思考
1)無人機的續航問題
小四軸最多十幾分鍾,消費級大四軸最多也只有30分鍾。
2)無人機的起飛和下降的滯粘性
無人機用遙控器起飛的時候會出現不小心油門加大了會突然沖上去,下降的時候也可能松油門過多而一下子下降。因此我們希望能夠飛機上升的時候,不會因為油門突然加大而突然猛升,也不會因為油門不小心拉低過快導致飛機快速跌落到地面。
解決方法:
1.數據曲線化
將遙控器的值給飛機后,飛機不是一下子就輸出,先把這個數據曲線再輸出,這可以起到一定的緩沖作用。將數據變成向下凹的拋物線,遙控器的油門搖桿取值范圍跟飛機的油門量有一一映射的關系。因為拋物線是下凹的,最大值跟最小值是一樣的,而這變化的過程不是線性的,因此可以在一定程度上解決猛升的問題。
2.負反饋控制
將無人機的當前的加速度值減去當地的重力加速度等到一個加速度的差值,然后用當前的油門量減去這個差值就可以在一定程度上起到緩沖的作用,但這個方法需要我們知道當地的重力加速度,這個可以通過串口助手進行查看,但比較麻煩,我們可以通過機器學習來學習這個最優的值,從而實現緩沖的作用。(為什么油門量減去差值?為什么是150*這個差值?)