你也能看見台灣-無人飛機空拍入門 (08 PID參數調整以及其他常用設定)

前言:你的回文就是我的動力!!!!這系列文章已經寫到手快斷了,讀的人應該是不少,如果你覺得寫得還可以或者從中有學到些甚麼,請按下"回文"隨便留個話,給我點鼓勵!感恩....

這兩天一直在想接下來要寫點甚麼!其實APM動手做到這邊,剩下來的部分都是功能的強化。比較難分門別類,而且也瑣碎的很。所以關於機體組裝的部分,這一篇應該是關於APM設定的最終章。
不過絕對不是完結篇,因為標題就寫了"空拍"兩字。所以第九篇開始會討論關於雲台系統以及無線影音傳輸系統。

PID參數調整
APM自動飛行控制就跟所有自動控制系統一樣,並不如同大家所想的,飛機被風吹偏了就往反方向飛就好。這種自動修正還必須考慮到整個系統的延遲以及反饋。舉例來說,當飛機被風吹偏移的一瞬間被感應器偵測到,到機器計算完成後送出修正訊號到開始修正需要一段時間,這時候飛機的姿態又變成另外一種狀況了。
而當修正訊號傳達到,機體的反應又會因為機體的重量,動力大小...等等對於相同的修正有不同的反應。等到開始修正之後,到自動控制器偵測的新的位置...又回到一開始的循環....
在這種情況下,整個系統就會變得相當複雜了....

好在無敵個科學家想到一種控制方式,把整個系統存在的問題簡化成PID三個參數。至於每種參數的意義我就不在此說明了。

APM手動參數調整:
如果要動到PID參數的話,建議就是先把三個參數都歸零,然後先調整P值,調整到過度反應之後,往回退大約15%
接著在調整I值,同樣的調到過度之後、再退15%
最後調整D值

這個調整的過程需要一點耐心。
不過這個過程對於新手而言簡直是無法辦到的夢靨,因為新手連飛都飛不起來,又怎麼調整?更別提要怎麼知道何謂修正不足以及修正過度。
而且對於老鳥來說,起飛->降落->接上電腦->調整參數 這樣的循環連續坐上幾十次也是非常累人的事情。所以大家可以在Youtube找各式各樣分享調整PID的密技。
這個步驟我自己也不曾完美的完成過。不過根據我看一般分享的文章,如果新手要進行手動調整的比較可行的方法可能是把飛機懸空吊著,讓機體能夠自由活動但是又不至於暴衝。然後慢慢測試PID
真的很麻煩...

自從新版韌體出現之後,APM開始支援所謂的自動調整。可以說是解救了所有APM的使用者。整個調整過程如下。

APM自動參數調整:
如果你打算使用自動參數調整功能的話,你的遙控器至少需要6個CH。以下以Frsky X9D為例子,請多準備一條雙公頭的伺服器延長線。首先請把接受器的6接到APM的7。(!!注意喔!!是APM的7,不是6)

接著到遙控器裏頭的MIX,新增這個CH,在X9D的主畫面按下MENU一次 然後再按PAGE五次 到MIXER的畫面 
其中只有CH1-5是有名字的,其中CH5是我們之前在05篇中寫過。 
請按下(一)把反白棒下移動到CH6 然後按下ENT 畫面會進入INSERT MIX CH6
反白棒會落在 Source S2的S2上
按下ENT 反白會閃爍 接著按下(-)好幾次 直到SF出現選擇
這時候按下EXIT一直回到主畫面。
弄好之後畫面如下。

我們把他設定到SF(右手邊前面的兩段開關)來控制。
因為是新加入的頻道,所以請將APM接上電腦,打開MP。然後到INITAL SETUP->Mandatory Hardware->Radio Calibration重新校正遙控器。
重新校正遙控器的時機:當你新增頻道,或者更換發射器或者接收機的時候,都需要重新執行遙控器校正程序。
請到INITIAL SETUP -> Mandartory Hardware -> Radio Calibration 
校正流程在(05 軟體設定)有講過

然後到這裡去把CH5的其中一個飛行模式改成定高模式(AltHold),然後按下SAVE MODE

然後到CONFIG/TUNING->Extended Turning去把CH7的模式改成AUTO TURN,然後按下Write Params
因為APM的6號頻道並不支援自動調整,所以剛剛接收機的6才會需要接到APM的7

準備工作都做完之後,請看以下的影片:(中文字幕)

記得,做好之後,不要把自動調整參數的開關切回。降落後啟動保護,把馬達停轉之後,參數就記錄下來了。如果切回在停轉,參數就會消失。

整個過程完成之後,如果在無風或者微風的環境下,你的飛機就會像釘在天空中。穩地不得了....

自動調整參數的盲點也是在於新手如果不會飛的情況下如何完成。我建議可以使用MP提供的幾個預設參數,直接練飛...那幾個參數雖然操作穩定性不是頂好的。不過拿來一般飛行還是可行。等練到差不多了在執行自動參數調整,這樣子會容易許多。


以下為其他常用設定或者功能

***測量震動狀態***
有動力的機器都免不了會震動,可是對於自動導航儀來說,震動是影響感應器精準度的最大殺手。因為如果震動過大的話,軟體會無法將真正的姿態從震動的雜訊中過濾出來,因此震動越大,你的機體穩定性會越差,就是這個道理。
多旋翼機經常會因為螺旋槳以及馬達的不平衡造成的振動,降低了你的飛機穩定性。很多新手會不了解這點,一直將重心放在PID的調整以及重力加速器或者墊子羅盤的校準上。可是如果震動過大的話,無論你做多少次校正的無法解決的。
好在如果你的APM有安裝資料回傳的話,他是會自動記錄下所有的資料,請依照下面程序讀取資料,然後想辦法透過平衡馬達、螺旋槳、或者增加避震墊的方式將震動降低。

請在在飛行完之後,將MissionPlanner跟你的飛機斷開連線,然後在FLIGHT DATA這一頁面左下的分頁找到Telemetry Logs分頁

然後按下Tlog > Kml or Graph,他會跳出Mavlink Log Graph的小工具

請選擇Graph Log之後,他會請你選擇檔案。每次飛行的檔案會存到C:\Program Files (x86)\Mission Planner\logs\QUADROTOR\1 下面按照日期時間取好名字
選擇最新的檔案開啟

他又會跳出一個Graph This
請將RAW_IMU下面的 xacc yacc zacc三個打勾


原本空白的Mavlink Log Graph就會把剛剛的選擇的三筆資料畫出來



你可以用滑鼠將其中某段時間的資料放大,請按住左鍵之後拉框框,這個工具也可以按下右下角放大為全螢幕。或者使用滾輪也可以放大縮小。











至於資料判讀的話,因為原始網站http://copter.ardupilot.com/wiki/ac_measuringvibration/ 是使用APM內建記憶體去紀錄資料檔案,跟我寫的方式有點不同,所以讀出來的資料也有點不同。不過應該都不超過正負3。 這個部分可以請大家自行研究一下。

***自動返航相關參數***
不知道你是否有測試過他的自動返航模式!?如果有嘗試過,應該會被嚇一大跳吧,因為這裡頭有幾個預設值可以調整一下。
相關參數(CONFIG/TUNING->Standard Params)
RTL Altitude: 返航高度
1500(單位公分)
RTL Final Altitude: 最終返航高度
0 (降落到地面)
RTL loiter time: 返航到起飛點上空停留多久後開始下降高度
50000(單位ms)

***遙控器的失控保護 (Fail safe)***
這個設定非常重要。這個功能是由遙控器所提供的,它的功能是在接收機收不到發射器訊號的時候,會把給APM的訊號切到某一個你預先設定的數字。
因為無人飛機飛出視距外的機會太大,雖然我介紹的X9D有人可以在空曠環境下超過5km操作,不過無論如何,切記一定要把失控保護設好。
方法1:
參考下面的影片,X9D的failsafe設定成[No pulese],也就是當接收機失去訊號,就不輸出。
INITIAL SETUP->Mandatory Hardware->FailSafe
右邊的FS Pwm選擇975以下的數字就可以了,接著你關掉遙控器,你會看到CH3的數字變成900。表示APM的這個通道已經沒有訊號了。


相關參(CONFIG/TUNING->Standard Params)數有:
Battery Failsafe Enable: 當電池電量過低的時候要做甚麼
Land (降落)

GroundStationFailsafeEnable: 當失去地面戰訊號時要做甚麼
Disable (甚麼都不做)

GPS Failsafe Enable: 當失去GPS訊號的時候要做甚麼?
Land (降落)

ThrottleFailsafeEnable: 當失去油門訊號時要做甚麼? (這種情況下,等於是完全失去遙控器訊號)
Enable always RTL (返航)

Throttle Failsafe Value: 油門訊號怎麼樣情況才算失去訊號
975以下的數字都可以



方法2:
或者是在接收機失去訊號的時候,接收機會輸出把油門定在50%,飛行模式設RTL。這個方式比較方便,就不用MissionPlanner

這裡是X9D以及X8R的失控保護設定影片,雖然都是英文的旁白,不過別管他,照著做就可以了。請切記把CH5設定在RTL的位置。

留言

  1. 你的付出,讓我少了好多的工夫

    回覆刪除
  2. 請問一個油門F/S問題,我用DEVO 10刷過,我關控CH3的值會是1000,所以我MP裡面F/S PWM可以設定1010嗎?
    看到很多文件都寫975...但是我關控CH3最低值是1000,開控下,CH3最低值是1100...所以MP設定1010不知道ok嗎?
    感謝

    回覆刪除
    回覆
    1. 你的DEVO10裏頭應該有FS相關設定,因為APM的FS要配合發射器。一般的發射器可以設定FS模式是失去訊號後停在最後位置/客戶指定位置/無訊號輸出三種。文件寫975是因為沒訊號的時候,APM會當成975...所以如果要用APM裏頭的FS的話,遙控器最好是設定為無訊號輸出。

      刪除
    2. 有FS設定,一種是不啟用,一種是設定值,我設定到最小值-125,當關控時,在MP看到的PWM值是1000。所以我想問的是在MP裡面設定,我把FS PWM設定為1010,是不是就是改變你說的975?這樣就變成APM發現無訊號時,CH3變成1000,低於我設定的1010,所以執行RTL?

      刪除
    3. 我直接改變作法,我CH8設定為RTL,同時在DEVO 10上設定CH8的失控保護,這樣當關控時,CH8同時也被觸發。感謝。

      刪除
    4. 這樣方式很常用,因為有些遙控器沒辦法設定為不輸出....

      刪除
  3. Hi Inf 大, 請問接上數傳後, 可以動態的調整 PID參數嗎? 謝謝.

    回覆刪除
  4. Hi Inf大~
    請問此篇之後還有後續嗎?,例如影像的部份?

    謝謝你的連載!

    回覆刪除
    回覆
    1. 目前如果按照之前的文章,玩到起飛應該沒問題。剩下自動導航相關的部分,其實我自己也沒時間測試。
      手上的樣品太多了....玩不完 ><
      有空我在分享一些新玩具好了!!

      刪除
  5. 謝謝Infinity Hobby大大的撰寫, 受益良多, 想請問您機架和pixhawk飛控板都在哪裡買呢? 我已經搜尋很久, 不敢出手thanks!

    回覆刪除

張貼留言