ArduCopter —— ArduPilot—— 飛行模式

本文轉載自:https://blog.csdn.net/xiaoshuai537/article/details/60465851

 

ArduPilot官方Tutorial PDF(2017.2): http://download.csdn.net/download/xiaoshuai537/10262086

 

ArduPilot中有14種常用的模式:

  • 依賴GPS的模式有:Auto、Circle、Drift、Follow Me、Guided、Loiter、PosHold、RTL和Throw;
  • 不依賴GPS的有:Acro、Alt Hold、Land、Sport和Stabilize模式。

1. Acro(特技模式)

直接用搖桿控制飛行器的角速度,鬆開搖桿飛行器將保持原有的姿態。常用於特技表演。

2. Alt Hold(定高模式)

在Alt Hold模式下,飛行器保持高度不變,可以操作俯仰、滾轉和偏航。Alt Hold模式是很多模式的基礎,例如Loiter和Sport。Alt Hold採用氣壓計測高、如果高度低於約8m,可以自動使用聲吶定高。

2.1 用油門控制飛行器的升降速度:

 

  • 油門在40-60%(死區)會保持現有高度;
  • 超出上述範圍,根據搖桿撥動幅度,升降速度會不同,油門爲0時,下降速度爲2.5m/s,油門100%,上升速度爲2.5m/s,該數值可以通過PILOT_VELZ_MAX調整;
  • 死區的範圍可以通過THR_DZ調整,調整範圍爲0-400,0表示死區爲0,400表示死區爲(50-40)%~(50+40)%,即10-90%。

2.2 PID調試

 

 

  • Altitude Hold中的P將高度偏差轉化爲升降速度偏差,P越大,保持高度穩定的趨勢越強,但是P值過大會導致不平穩;
  • Throttle Rate中PD用於將升降速度轉化爲升降加速度;
  • Throttle Accelerate中PID用於將加速度偏差轉化到電機輸出,P:I=1:2,其值不能增加,但是對於動力強勁的飛行器,將其值減小(如P=0.5,I=1)可能會得到更好的響應;

 

2.3 用日誌驗證效果

下載日誌,比較氣壓計高度(BarAlt)、目標高度(DelAlt)和內部導航估計的高度(Alt)。

2.3 常見問題

 

  • 強烈震動導致飛行器突然爬升;
  • 飛行器升降緩慢,這是由於油門不在中位,通常發生在從手動模式(如Stabilize)切換到AltHold模式時;
  • 剛切換到AltHold模式時,電機可以短時停轉,這是由於在快速爬升時切換到該模式;
  • 空氣壓力改變時可能導致飛行器高度波動;
  • 飛行器高速飛行後會出現短暫掉高(1-2m),這是由於空氣動力學的影響,飛行器頂部壓力降低,飛控因爲飛行器高度增加了;
  • 接近地面時,氣壓計測量變得不準確;
  • 光直射會導致高度變化

2.4 充足的動力

 

理想情況下降,50%油門時能夠飛行是比較合適的,超過70%會比較危險。

如果你在遙控器中設置了油門曲線expo,死區範圍將會增大。

3. Auto(自動模式)

將執行預編程指令,包括導航命令和DO命令。

3.1 控制

 

  • 從地面起飛時,油門大於0時開始執行任務;如果在空中開啓Auto模式,會跳過自動跳過TakeOff(起飛)命令。
  • 任何時候Auto模式都可以切換到其他模式,當再次回到Auto模式時,從頭開始執行任務。
  • Auto模式飛行過程中,roll、pitch和throttle操作都會被忽略,但是可以通過遙控器控制yaw,這允許飛行過程中飛行器以一定指向前進;在經過下一個航點時,飛控會嘗試重新獲取yaw的控制權。
  • 飛行任務指令可以通過【飛行計劃】進行修改。

 

3.2 調試

Auto模式融合了AltHold模式的高度控制和Loiter模式的位置控制。

最大水平速度可以在上圖SPEED中設置,一般多旋翼飛行器飛行速度可達10-13m/s。高度方向最大速度可以通過Speed Up和Speed Dn設置。與航點距離小於Radius設定值時,任務認爲完成了,這個只有當航點設置有延時時才應用。

4. Brake(剎車模式)

這個模式將盡快停止飛行器,該模式使用了Loiter,需要GPS的支持,一旦啓用,該模式不接受飛行操控信號。

5. Circle(繞圈模式)

繞圈模式會以興趣點爲中心,機頭朝興趣點旋轉,旋轉半徑可以通過CIRCLE_RADIUS控制。如果半徑爲0,則飛行器原地不動,緩慢旋轉。飛行速度可以通過CIRCLE_RATE修改,正表示順時針旋轉。當旋轉時產生的中心加速度超過限制(WPNAV_ACCEL)時,旋轉速度會被限制。

roll和pitch對該模式無效,但是throttle可以控制飛行高度,遙控器可以控制yaw,調整機頭方向,並且重啓該模式前,該模式不會嘗試重新獲取yaw控制權。

在mission planner中,LOITER_TURNS包含了CIRCLE模式。

6. Drift(漂移模式)

 

  • 漂移模式允許像固定翼一樣操控多旋翼,其設置了自動的座標系轉換。
  • 用戶直接控制yaw和pitch,但是roll由飛行器控制;
  • 與stabilize相同的方式控制throttle

 

7. Follow Me(跟隨模式)

需要使用數傳、地面站以及藍牙或USB GPS模塊。

飛行器每2s執行Fly to here命令。

8. Guided(引導模式)

該模式利用數傳好地面站,實時引導飛行器位置。引導模式不是一個基本模式,是在其他幾種模式中切換形成的。當飛行器到達目標點後,會在目標點上方懸停。

Guided_NoGPS模式不需要GPS,他接受姿態目標而非速度和位置目標。

9. Land(着陸模式)

10m以上採用AltHold模式中設置的下降速度:

10m以下采用LAND_SPEED中設置的下降速度,默認0.5m/s;

落地後,會自動停止電機轉動,如果油門處於最低位置會上鎖;

油門最低、升降速度小於0.2m/s超過1s,並且高度不超過home高度10m,即認爲着陸;

如果着陸時飛行器反彈,嘗試降低LAND_SPEED中下降速度;

如果飛行器有GPS鎖,則採用Loiter模式控制飛行器;如果飛行器無GPS,則採用Stabilize模式。

10. Loiter(懸停模式)

 

懸停模式會保持飛行器當前的高度、位置和航向。

10.1 控制

 

  • 可以通過roll和pitch控制飛行器位置,默認水平最大速度爲5m/s;
  • 高度可以通過throttle控制,如同AltHold模式;
  • 航向可以通過yaw控制;
  • 只有在GPS 3D 鎖定並且HODP小於2.0時才能在Loiter模式下解鎖。

 

10.2 調試

 

  • WPNAV_LOIT_SPEED:最大水平速度(默認5m/s),默認最大加速度數值爲其一半(默認2.5m/s2);
  • WPNAV_LOIT_MAXA:最大加速度(cm/s2),值越大,加速和停止性能越好;
  • WPNAV_LOIT_MINA:最小加速度,值越大,搖桿回中時停止越快,但是可能導致動作不平滑;
  • WPNAV_LOIT_JERK:加速度的改變(cm/s3),越大響應越快,越小越平滑;
  • POS_XY_P(上圖中Loiter PID中的P):將位置差轉換爲合適的移動速度;
  • VEL_XY_P(上圖中Rate Loiter PID):將速度轉換爲加速度,加速度隨後轉換爲傾斜角度,傳送給Stabilize模式處理。

 

10.3 常見問題

 

  • 搖桿回中後,穩定得非常慢可以增加WPNAV_LOIT_MAXA(例如到500)、WPNAV_LOIT_MINA(例如到100)和WPNAV_LOT_JERK(例如到4000);
  • 飛行器轉圈,這通常是磁羅盤問題,最可能的原因是電池電纜的影響,可以進行磁羅盤補償(http://ardupilot.org/copter/docs/common-compass-setup-advanced.html#common-compass-setup-advanced-compassmot-compensation-for-interference-from-the-power-wires-escs-and-motors)或者採用外置磁羅盤;磁羅盤校準過程出現問題也可能導致該現象;
  • 懸停模式一啓用,飛行器朝錯誤方向飛,這個 問題原因同上,不同之處在於偏差角度大於90度;
  • 懸停正常,突然像錯誤方向移動,這通常是GPS失靈導致。因此需要隨時準備手動接管,此外,起飛前保證良好的HDOP、以及減小GPSGLIPTCH_RADIUS和GPSGLIPTCH_ACCEL以加強失靈檢測也是有利的;

 

10.4 HDOP顯示

雙擊【飛行數據】左下角【快速】中某顯示數值,可以改爲顯示HDOP。

10.5 通過日誌驗證懸停性能

查看NTUN中DesVelX和VelX,以及DesVelY和VelY。

高度信息查看如同AltHold。

11. PosHold(懸停角度控制模式)

PosHold模式和Loiter模式類似,都是保持當前高度、位置和航向。不同的是PosHold模式的搖桿直接控制飛行器偏轉的角度。

最大的剎車角度可以通過PHLD_BRAKE_ANGLE設置(3000表示30°)。

飛行器旋轉到最大角度的速度可以通過PHLD_BRAKE_RATE設置(8表示8°/s)。

12. Position(位置模式)

與Loiter模式類似,保持當前位置和航向,不同之處在於手動控制油門以升降飛行器。

GPS鎖定的LED燈顯示:

  • APM上藍色LED燈穩定;
  • GPS上藍色LED燈穩定;
  • GPS+COMPASS上藍色LED燈閃爍。

 

13. RTL(返程模式)

 

RTL模式將引導飛行器飛回HOME上方。

13.1 概述

當飛行器高度高於RTL_ALT時將保持原有高度,反之則按RTL_ALT高度飛行,默認值爲15m。

對於旋翼飛行器,RTL將返回至GPS定位後解鎖的地方。

RTL模式使用氣壓計測量高度,6m以下可以採用聲吶定高。

13.2 選項

(1)RTL_ALT:返回的最低高度

 

  • 設爲0表示在當前高度返回;
  • 返回高度0.01~8m;
  • 默認返回高度爲15m;

 

(2)RTL_ALT_FINAL:完成任務或RTL最後階段的高度

 

  • 設爲0將自動着陸;
  • 最終高度0.01~10m;

 

(3)RTL_LOIT_TIME:停在HOME上方的時間(ms),時間0~60s

(4)WP_YAW_BEHAVIOR:設置任務和RTL中的偏航角度

 

  • 0表示不改變yaw;
  • 1表示面向下一個航點或RTL時面向家的方向;
  • 2表示面向下一個航點,RTL時保持最終航向不變;

 

(5)LAND_SPEED:最終階段下降的速度(0.2~2m/s)

(6)RTL_CLIMB_MIN:RTL初始階段最低爬升高度(cm),默認爲0

(7)RTL_SPEED:返回時的水平速度(cm/s),默認爲0,表示使用WPNAV_SPEED

(8)RTL_CONE_SLOPE:定義當返回點離家很近時的爬升斜率

13.3 注意事項

 

  • WPNAV_ACCEL、WPNAV_SPEED_DN和WPNAV_SPEED_UP也會影響RTL模式;
  • 需要GPS定位;
  • 降落和重新解鎖將會重新定義HOME的位置;
  • 如果飛行中GPS定位,HOME將設在此處;
  • 如果設置RTL_ALT爲非0,返回時將保持該高度;
  • RTL使用WPNAV_SPEED來定義飛行速度;
  • 飛行器到達HOME上方時將暫停RTL_LOIT_TIME、AUTO_LAND的時間,然後降落。

 

14. Simple(簡單模式)和Super Simper(超簡模式)

這兩種模式可以使用戶不用關心飛行器的朝向。

 

  • 這兩種模式可 以疊加到幾乎所有模式下(除了Acro和Drift);
  • 簡單模式的朝向以起飛時朝向爲參考方向定義座標系、只需要磁羅盤;
  • 超簡模式定義飛行器與家的方向爲參考方向定義座標系,需要GPS定位;
  • 兩個模式可以與普通模式之間通過遙控器上CH7/CH8切換。

 

超簡模式下,無論飛行器在任何位置,往回拉pitch將試飛行器往家的方向走;但是在離家10m範圍內,方向不會更新,因此不宜在家附近飛。

 

15. SPORT(運動模式)

 

  • roll、pitch和yaw控制飛行器的轉動速率,因此當搖桿歸位時,飛行器將保持當前姿態;
  • 最大角度爲45°(可以通過ANGLE_MAX設置);
  • 高度採用AltHold控制方法,因此油門中間10%範圍內油門搖桿將不起作用,升降速度爲2.5m/s(通過PILOT_VELZ_MAX設置)

 

16. Stabilize(自穩模式)

 

  • 自穩模式會自動平衡roll軸和pitch軸。
  • roll和pitch輸入控制飛行器的傾斜角度,當鬆開roll和pitch搖桿時飛行器自動平衡;
  • 飛行器需要週期性roll和pitch來保持位置,因爲有風的影響;
  • 當鬆開yaw杆時保持當前朝向;
  • 油門控制電機的平均速度,如果油門波到最低其轉速回達到最低值MOT_SPIN_ARMED;
  • 油門輸出到電機的大小是由飛行器的傾斜角度自動分配的。

 

16.1 調試

 

  • ANGLE_MAX控制最大傾斜角,默認爲45°;
  • ANGLE_RATE_MAX控制最大的旋轉速度,默認爲180°/s;
  • ACRO_YAW_P控制根據yaw的輸入,飛行器旋轉速度,默認的4.5控制當搖桿到最大值時轉速爲200°/s,越大轉速越快;
  • 自穩模式roll/pitch的P控制飛行器響應輸入差值的速度,默認4.5會在1°偏差時以4.5°/s旋轉,7或者8會使飛行器產生更強的反應來抵抗風的影響;若P較低,會導致旋轉緩慢,可能使抗風能力降低,甚至導致墜機。如果想使飛行更平滑,首先應先嚐試降低RC_Feel的值;
  • Rate Roll/Pitch P, I和D根據理想的轉速控制電機的輸出。這些項通常與負載能力與重量比有關,比值越高,PID值越小。例如高負載飛行器的P值可低至0.08,而低負載的飛行器P值可到0.18甚至更高;

        (1)P值是調試飛行器最重要的參數;

 

        (2)P值越高,響應越快;

(3)默認P爲0.15;

(4)I用於補償使飛行器長時間不能保持理想速度的外力;

(5)I越高維持理想速度的響應越快,並且會快速下降來避免超調;

(6)D用於抑制飛行器加速到理想點的響應,D值高可能會導致不尋常的震動和記憶效應(響應慢),合適的D爲0.011;

(7)根據飛行器的不同,值可以在0.001~0.02範圍內變化;

16.2 利用日誌驗證效果

 比較ATT中Roll-In/DesRoll(理想值)和Roll(實際值),以及Pitch-In/DesPitch和Pitch。

16.3 常見問題

 

  • 新飛行器起飛時彈跳,這通常是由於電機順序不對或者槳不對;
  • 飛行器繞roll/pitch軸搖擺,這通常表示 Rate P不對;
  • 飛行器下降較快時搖擺,這是由於槳的自洗導致,這不太可能調整好,但是提高Rate Roll/Pitch P可能會有幫助;
  • 飛行器起飛時左或者右轉15°,這是由於一些電機可能不是線性的或者ESC沒有校準好;
  • 即使在無風環境下,飛行器也偏向於向一方飛行,嘗試SavTrim或AutoTrim來使飛行器水平;
  • 飛行器高度保持不好,這是由於自穩模式是手動模式,需要搖桿控制穩定;
  • 有時roll和pitch抽動,正常情況下是由接收機受到某種干擾引起的或者是ESC問題,解決方法是重新校準;
  • 飛行過程中突然彈跳,這可能是電機或者ESC的機械故障;

 

17. Throw(拋飛模式)

拋飛模式存在危險性,該模式允許飛行器拋向空中來啓動電機,當在空中時,該模式不在接受任何輸入信息,這個模式需要GPS。

17.1 使用方法

(1)飛行器上鎖;

(2)切換到拋飛模式;

(3)檢查GPS是否定位;

(4)解鎖飛行器,飛行器蜂鳴時處於待命狀態,電機默認情況下不旋轉;

(5)將飛行器拋出(爬升速度達到0.5m/s,速度達到5m/s);

(6)飛行器停止時,切換到其他模式重新獲得控制權;

電機將在飛行器達到頂點時啓動,電機啓動後會首先穩住機身(保持水平和停止旋轉),然後停止掉高,最紅水平方向也停止移動。

17.2 設置

 

  • THROW_TYPE:0表示往上扔飛行器,1表示往下扔,如果是往下扔,高度至少10m;
  • THROW_MOT_START:控制電機在待機時是不轉還是緩慢旋轉(0不轉、1緩慢旋轉),默認爲0;
  • THROW_NEXTMODE:設置飛行器停止後的下一個飛行模式(Auto、Guided、RTL、Land和Brake模式均支持),設置爲Throw(默認)便保持在該模式等待手動切換到其他模式。

 

17.3 日誌分析

下圖爲成功拋飛的日誌,垂直速度大於0.5m/s,總速度大於5m/s。

 

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