APM:Copter 3.3-rc1 11-Apr-2015

APM:Copter Release Notes:
——————————————————————
Copter 3.3-rc1 11-Apr-2015
Changes from 3.2.1
1) Only support fast CPUs boards (Pixhawk, VRBrain, etc) and drop support for APM1, APM2 (sorry!)
2) AutoTune for yaw
3) Smooth throttle curve which should reduce wobbles during fast climbs and descents
4) ch7/ch8 aux switches expanded to ch9 ~ ch12 (see CH9_OPT ~ CH12_OPT params)
5) PX4Flow support in Loiter mode (still somewhat experimental)
6) Safety features:
a) EKF on by default replacing DCM/InertialNav which should improve robustness
b) increased accelerometer range from 8G to 16G to reduce chance of climb due to high vibrations (requires accel calibration)
7) Landing features:
a) improved landing on slopes
b) retractable landing gear (see LGR_ parameters)
8) Camera Gimbal features:
a) SToRM32 gimbal support (using MAVLink)
b) AlexMos gimbal support (using AlexMos serial interface)
c) do-mount-control commands supported in missions (allows controlling gimbal angle in missions)
9) Battery related features:
a) PID scaling for battery voltage (disabled by default, see MOT_THST_BAT_ parameters)
b) smart battery support
10) Other:
a) support do-set-home command (allows return-to-me and locked home position once GCS enhancements are completed)
b) performance improvements for Pixhawk reduce CPU load from 80% to 15%
c) firmware string name changed from ArduCopter to APM:Copter

APM:Plane 3.2.1 released (On 2015/02/11)

ArduCopter 3.2.1 has completed beta testing and has been released as the official version available through the mission planner and other ground stations.  If upgrading from AC3.2 there should be no need to re-do any configuration.

Changes from AC3.2 are listed below and in the ReleaseNotes:
1) Enhancements:
a) reduced twitch when passing Spline waypoints
b) Faster disarm after landing in Auto, Land, RTL
c) Pixhawk LED turns green before arming only after GPS HDOP falls below 2.3 (only in flight modes requiring GPS)
2) Safety Features:
a) Add desired descent rate check to reduce chance of false-positive on landing check
b) improved MPU6k health monitoring and re-configuration in case of in-flight failure
c) Rally point distance check reduced to 300m (reduces chance of RTL to far away forgotten Rally point)
d) auto-disarm if vehicle is landed for 15seconds even in Auto, Guided, RTL, Circle
e) fence breach while vehicle is landed causes vehicle to disarm (previously did RTL)
3) Bug Fixes:
a) Check flight mode even when arming from GCS (previously it was possible to arm in RTL mode if arming was initiated from GCS)
b) Send vehicle target destination in RTL, Guided (allows GCS to show where vehicle is flying to in these modes)
c) PosHold wind compensation fix
d) prevent infinite loop with do-jump commands pointing at each other
e) pixhawk memory corruption fix when connecting via USB
f) vehicle stops at fence’s alt limit in Loiter, AltHold, PosHold (as it did in AC3.1.5)
g) protect against multiple arming messages from GCS causing gyro calibratoin failure

氣壓對無人機的影響

無人機使用飛行控制器接收各種資訊,再輸出到馬達做飛行姿態的改變,針對高度可以有來自GPS的3D定位,也有氣壓計協助判斷高度,但當這二種資訊夾帶太多誤會及變化時,飛行的穩定性將大幅降低,以下是對於2015/01/16,約11:00前後,在新北市板橋體育場旁,飛行時所遇到的情況,分享給朋友們參考: 1.GPS的定位誤差:

a.綠色線代表GPS接收衛星的數量:在x軸20-80之間,最佳情況有收到9顆衛星,總平均約收到8顆衛星的訊號,跟以前相較,平均能有10+顆衛星,數量有1-3顆以上的落差。

b.紅色線代表HDOP數值:飛行日誌分析報告提供的是HDOP(水平分量精度因子),雖然不是VDOP(垂直分量精度因子),暫作GPS誤差量的參考依據,理想飛行時此數值不得超過2.0,今天平均約在2.5,不是理想的飛行條件。

GPS_Status_01 2.氣壓計所受的影響:

氣壓計是另一種判斷高度的方法,所以又稱高度計,但所謂水能載舟亦能覆舟,氣壓計正有此淺在的風險,尤其滯空時間愈長,愈可能隨地面氣壓的變化,誤差愈大。

今天遇到的是突發的情況,第一次發生時當下未能查覺真實原因,只知道當時油門上推,無人機仍然重落地。

第二次是要著陸卻降不下來,此時知道可能的原因,是因為正好一陣風來自我的背面,吹向在我前方的無人機,參考下圖紅線是手控油門輸入,綠線是飛行控制器對馬達的輸出,可看出編號1的左側虛線位置,為了抵消側風的影響,綠線領先紅線拉高做出反應,也就是飛行控制器比手控更早做出拉高油門的反應;隨之編號2是會令我當下不安的部份,在於紅線代表我已將油門收至最低,綠線仍維持高輸出以維持一定的高度,高度可參考藍線,編號3是風尾,無人機有下降趨勢,但姿態不穩,於是我又再補上油門,以維持穩定(如圖收尾呈平順狀態)。

Vibration_by_Wind_02

結論:利用飛行日誌分析,可事後佐證飛行時遭遇的問題,下圖箭頭標示在綠色處,表示著陸過程中,就算油門收到底而無人機受到氣壓影響仍自行維持高度,對操作者易產生不安的心裡。所以未來避免的方法,就是要考慮到GPS的精確度要在2以內,數值愈低代表誤差愈小,若感受到氣流或側風太強,應盡快降落停飛;也許未來技術進步,可加裝聲納及光流感應器,增加精確度。 Google_Map_03

FAQ_常見問題:

1.遙控器應該選擇日本手還是美國手?

筆者建議選擇美國手。

其實遙控器有Mode 1 – 4, 其中Mode 1是日本手,油門在右;Mode 2是美國手,油門在左。在觀念上想想生活中的事物,台灣多是承龔美系規格,如在戰機的駕駛座艙中,油門在左,操縱桿在右,自然就應選擇Mode 2。在無人機的操作上,其中飄移模式 (Drift Mode)就非常適合Mode 2,左遙桿只負責油門,方向完全只要用右遙桿控制即可。


飛行測試程序


測試懸停和定高模式:

  1. (PX4)確保SD卡已插入PX4FMU板並安裝妥當(若非如此,無法起飛待命)。
  2. 設定APM,穩定模式是在遙控器上3P模式選擇開關的高位、定高模式是在中位,懸停模式是在低位。
  3. 首先,在穩定模式中要能正確運作是很重要的,將模式切換至穩定,開啟遙控器,並將軸機連接電池,等到GPS取得鎖定(在起飛待命前,無論是GPS上的藍色LED或APM上的藍色 LED應該是恆亮)。(甚至等待時間久一點,讓GPS取得更多的衛星。)

    注意!UBLOXGPS(燈號)有不同的呈現方式

    對於UBLOX GPS, GPS模組上的LED在取得衛星中處於熄燈狀態,而已取得定位鎖定時,藍色LED開始閃爍。

  4. (PX4) 在起飛待命前,需解除安全開關;按下安全按鈕5秒鐘,即可解除安全開關 – (閃爍兩次、暫停、重複)。
  5. 油門推至右下幾秒鐘,使 軸機上的馬達進入起飛待命狀態。
  6. 在穩定模式開始飛行,確認可以離地升空、舒適飛行並降落;若發覺會傾斜,降落並在Mission Planner執行 “Level" 指令。將整個電池的電力皆依此方式飛行,去感受駕馭感(同時也能校準電子羅盤)。
  7. 現在更換電池,並嘗試自動模式。首先,維持在約20公尺的高空進行測試定高模式,當切換到定高模式時,當時油門的確切位置被記錄為〞懸停點〞;因此當切換到定高模式時,是否有爬升或下降是很重要的,應該能夠讓軸機維持在等高飛行,落差在上下1公尺左右。
  8. 若運作良好,嘗試停懸。飛到一個安全的地方,周圍有大範圍的空間,高度約20公尺,切換到停懸,軸機應會嘗試滯留在定點,加減約5公尺的差距。
  9. 當完成懸停或定高模式(或若有什麼意外或不良情況發生),切回穩定模式並降落。(在懸停或定高模式無法降落及關閉馬達。)
  10. 維持油門控制桿至左下5秒,解除軸機的起飛待命並記錄日誌。
  11. (PX4)按住〞安全鈕〞5秒,PX4重新進入〞安全〞狀態。 (指示燈連續閃爍)


應該有什麼期待?

在定高模式,軸機應該維持在切換時的高度,保留約1公尺的誤差範圍,增加聲納會有助改善,使軸機在高度3.6公尺以下時,可達 ± 20cm的精確度(在高度以上聲納不運作)。

警告!在任何定高(ALT HOLD)為基礎的模式包括:定高、懸停、自動、著陸或自返,若在接近地面或著陸時,軸機操作變得不穩定(或是其它任何自動著陸過程中,接觸地面時,最終有彈跳或未能關閉馬達),很可能是受到螺旋槳抵抗地面的渦流,形成壓力而影響氣壓計。

這很容易藉由觀察在日誌檔的高度表讀數,查看接近地面時是否有突波或擺動而得到驗證。
若這確實已成為問題,可以將飛行控制器移出螺旋槳渦流所影響的範圍,或是用防風又透氣的材質作保護。試飛和日誌分析可以確認是否改善成功。

警告:飛行控制器利用氣壓計測量空氣壓力,作為測定高度(〞氣壓高度〞)的主要手段,若飛場的空氣壓力改變,軸機將隨氣壓而改變高度,而非實際高度(除非在6公尺以下的地面,有安裝並啟用聲納)。

在懸停模式,應該停留在直徑4-5公尺 〞圓形〞的目標區,若有側風會需要數秒鐘作修正;若颳起大風,可能會看到無法彌補的控制,會有更大的誤差(例如:飛出10-15公尺外)。

在懸停模式,可以使用控制桿以手動移動軸機位置,或者可以使用油門來提高或降低軸機高度。

警告:〞基地〞位置,應該始終是軸機實際取得GPS初始定位的位置:

  • 為使自返、懸停、自動,或任何與GPS相依的模式能夠正常運作,軸機起飛待命前取得GPS鎖定是很重要的。
  • 對於APM:Copter,若取得GPS鎖定便可啟動起飛待命,基地位置就是軸機起飛待命時的位置。
  • 這代表若使APM:Copter執行自返,它會返回到起飛待命時的位置。
  • 對於APM:Copter: 在期望作為返回基地的地點,進入起飛待命:(不是在坑洞裡)。

遙控器測試


設定遙控器前,將所有的微調置中,將遙控系統供電並開啟,撥動控制桿會顯示正被讀取的圖條。

遙控器輸入顯示
(RC接收器的腳位必須被供電!)



CLI的方法

設定遙控器前,將所有的微調置中,在CLI下,進入"setup"選單,然後鍵入"radio",將控制桿和開關全部撥動到極限,若CH 7有連接到APM,確認預設為低位。

設定完成後,驗證PWM值;若要測試遙控器,退出setup並進入"test"選單,輸入"radio"並找到下列參數值:

  • CH1, 2, 4:neutral

    0, extremes

    ± 4500(概約)

  • CH3:neutal

    0, extremes

    800

  • CH5:(模式切換)0到1000之間的任何值
  • CH6:(AUX 2,調校控制)任意值
  • CH7:(用於手動設定的油門維持值)0〜1000

儲存微調 & 自動配平


風,當然對軸機有很大的影響,會推向周圍;然而也可能會發覺,雖然在穩定模式下飛行,即使在無風的環境,軸機往往總是往特定的方向漸行漸遠,很大的程度上可使用 “Save Trim"(儲存微調) 或"Automatic Trim" (自動配平)功能作修正。


儲存微調

儲存微調是比較簡單的方法,基本上所關係到的就是將遙控器上的微調值傳給APM (影片展示)。

http://www.youtube.com/watch?v=ayA0uYOqKX4

1. 在MissionPlanner的 Hardware >> Mandatory Hardware >> Radio Calibration 畫面,檢查CH7撥動開關數值須高於1800以上。


2.在Software >> ArduCopter Pids畫面,設定CH7選擇 “Save Trim",然後按 “Write Params" 按鈕。


3. CH7開關在關閉的位置,在穩定模式下飛行軸機,並使用遙控器上側翻和俯仰的微調,使飛行得以水平。

4.降落並把油門收到零

5.鬆開側翻和俯仰控制桿,並使CH7撥動開關切換為高位至少1秒鐘。

6.重置遙控器側翻和俯仰的微調,回到置中的位置,重新再飛應該就保持水平;若非如此,重複步驟3、4和5。


自動配平

自動配平是在懸停時,抓取側翻和俯仰的配平。

  1. 找一個有足夠的空間且無風的環境,軸機飛行時不要與障礙物發生碰撞。
  2. 維持油門控制桿在左下位置達15秒,或等到紅色、藍色和黃色的LED以循環模式閃爍。
  3. 在穩定的懸停下,飛行軸機約25秒
  4. 降落,把油門收為零,等待幾秒鐘(配平保存到EEPROM)
  5. 再次以穩定模式飛行,並檢查軸機現在飛行的水平狀態,若未配平,重複步驟2,3和4。

備註1: 也可以拔開電池,在地上運行這些測試程序,APM連接到Mission Planner並觀察飛行數據畫面,當作模擬完成上述步驟。


備註2: 透過Mission Planner的進階參數列表畫面可以手動設定配平,側翻配平是AHRS_TRIM_X、俯仰配平是AHRS_TRIM_Y,此二項數值以弧度呈現,左側翻和向前俯仰為負數。

備註3: 幾乎無法避免所有的飄移,讓軸機在未給予任何操作輸入的情況下維持完全不動。

設定油門置中


若一架動力較強或不足的軸機,為使軸機維持穩定的懸停,所需的油門可能會在40%以下或60%以上,雖然純粹在穩定模式下飛行也行,但隨意的切換到自動駕駛儀模式(定高、懸停),其中在40%〜60% 油門以外的盲區,可能導致被認為想要讓軸機爬升或下降。

為此原因,調整油門置中的參數(亦稱為THR_MID)是個不錯的想法,能使穩定模式下,置中的油門更接近50%。


請依照以下說明調整手動油門,使軸機來回在50% 的油門:

  • 在穩定模式下飛行軸機,穩定的懸停至少30秒
  • 拔開鋰電池,並將APM/PX4連接到Mission Planner
  • 至終端螢幕並下載最新的快閃資料日誌檔案(快閃資料日誌的詳細訊息,可參閱此連結

http://copter.ardupilot.com/wiki/ac_throttlemid/wiki/common-downloading-and-analyzing-data-logs-in-mission-planner/

 


  • 下載完成後,關閉 “Log" 視窗,按下 “Log Browse" 按鈕,開啟日誌目錄中的最新檔案(最後一位數字會是下載日誌的編號,在上面的例子中,下載日誌#1,所以檔名會以1.log作結尾)


  • 當日誌瀏覽器出現時,向下捲動,直到找到CTUN的訊息,點擊該行的 “ThrOut" 並按下"Graph this data Left" 按鈕。


  • 參照上圖左側的刻度,估計懸停時大略的油門水平刻度,在上面的圖例(不需要長時間的飛行)油門置中的刻度約為550。
    • 注意:若平均油門低於300(即30%),這是動力過強的軸機,最好添加一些額外的重量(或許是更大的電池),或以其它方式降低功率(如:較小型的馬達、從4S換為3S電池等)。
    • 若平均油門超過700(即70%),這是動力不足的軸機,應該考慮增強馬達和電子調速器的動力,或使用較高電壓的電池(即從3S轉換到4S電池)。
  • 開啟Mission Planner,至Config/Tuning >> Standard Params畫面,設定油門置中位置(THR_MID) 為上述估計值(在列表的底部附近可找到)。
  • 按下 “Write Params" 按鈕。


  • 下次在穩定模式飛行時,應該可查覺油門已接近中間位置。

量測振動水平


為獲取良好的高度維持和懸停性能,較低的振動水平是很重要的。下面將說明如何測量振動水平,若發現超出容許值,應該遵循首次設定章節中,有關減振阻尼的忠告。


請按照下列步驟,確認振動水平是在容許範圍內:

  • APM/PX4連接到Mission Planner
  • 至CONFIG/TUNING >> Standard Params畫面,設定Log bitmask參數為 Default+IMU,會啟動抓取加速計資料到快閃資料日誌。
  • 按下 “Write Params" 按鈕


  • 在穩定模式下飛行軸機,並盡量保持水平懸停(並不需要完全的穩定或水平)
  • 拔開鋰電,重新將APM/PX4連線到Mission Planner
  • 使用終端螢幕下載最新的快閃資料日誌(在這裡有更詳細的快閃資料日誌運作說明)

http://copter.ardupilot.com/wiki/ac_measuringvibration/wiki/common-downloading-and-analyzing-data-logs-in-mission-planner/


  • 下載完成後,關閉"Log"視窗,按下"Log Browse"按鈕,開啟日誌目錄中的最新檔案(最後一位數字會是日誌的編號,在上面的例子中,我們下載日誌#1,所以檔名會以1.loga作結尾)


  • 當日誌瀏覽器出現時,向下捲動,直到找到慣性測量單元 (Inertial Measurement Unit, IMU) 的訊息,點擊該行的AccX並按下 “Graph this data Left" 按鈕,重複AccY和AccZ,產生的圖表如下:


  • 檢查左側的刻度,並確認AccX和ACCY的振動水平是在-3到+3之間,對於AccZ可接受的範圍是-15到-5,若非常接近或超過這些限制,應該參考前述減振阻尼的內容中,可行的解決方案。
  • 完成前述程序後,至Mission Planner的Standard Parameters畫面(可能需要再次按下"CONNECT" 按鈕),並設置Log Bitmask參數回到"Default",這很重要,因為特別是對於APM的日誌需要許多CPU資源,若不是實際需要的日誌,會形成一種浪費。