在看完px4固定翼的姿態控制**後,我有幾點思考
1.我們知道程式中姿態控制的方法是將控制角度轉化為控制角速度。那pitch來說,先求出設定的pitch和當前的pitch的差值(delta pitch)。然後將delta pitch除以時間常數得到目標pitch_rate。接著將目標pitch_rate和當前的pitch_rate做差送入pi+ff控制器,將控制器的輸出送入actuator。從而達到控制角度的目的。
2.roll的控制和上面的pitch控制一樣。但是raw的控制不一樣,因為raw的控制不涉及角度的控制,也就是他沒有目標角度值,他只有目標角速度,而這個目標角速度是通過協調轉彎方程直接求得的,然後和當前的raw_rate做差送入pi+ff控制器,將控制器的輸出送入actuator。我理解控制raw的過程是乙個純粹的速率控制,因為我最後只管速率有沒有達到我的設定值,而不去管這個過程角度變化了多少。
3.比較上面兩種控制,我發現第乙個控制是乙個角度+角速度的內外環控制,外環是角度,內環是角速度,最終還是要控制角度。而第二個控制只有乙個角速度控制環。
4.還有一點就是第一種控制下目標速度是乙個變值,不是固定的,因為角度差在變。而第二個控制中目標速度是乙個定值。
5.在說說為什麼roll沒有角度控制,我覺得因該是飛機在平飛時很少用到rudder,基本只有在轉彎時才用到。
6.再說說姿態控制的作用吧:這個程式的作用其實就是起到控制actuator的作用,你給我目標姿態,我就用我的控制演算法去達到這個目標,在這個程式中我不管你這個目標姿態是怎麼產生的(手動產生還是其他的演算法產生)。
PX4原始碼分析4 PX4軟體結構
px4自動駕駛儀軟體可分為三大部分 實時作業系統 中介軟體和飛行控制棧。提供posix style的使用者操作環境,進行底層的任務排程。px4中介軟體執行於作業系統之上,提供裝置驅動和乙個微物件請求 micro object request broker,uorb 用於駕駛儀上執行的單個任務之間的非...
PX4原始碼分析5 PX4啟動流程
上電之後程式入口為firmware nuttx nuttx arch arm src stm32 stm32 start.c中的 start函式,負責stm32晶元的底層初始化,包括是時鐘,gpio等。start函式呼叫firmware nuttx nuttx sched os start.c中的o...
PX4原始碼學習一 Pix和APM的區別
pixhawk是硬體平台,px4是pixhawk的原生韌體,專門為pixhawk開發的 apm ardupilot mega 也是硬體 ardupilot是apm的韌體,所以稱ardupilot韌體也叫apm 後來apm硬體效能不太夠,所以apm韌體也就針對相容了pixhawh硬體平台 所以在pix...