第十章 PX4-Pixhawk-姿态控制
- 這一章節我們對姿態控制進行解析,姿態解算我們還是從啟動文件開始,找到姿態解算的啟動文件rc.mc_app,這里面找到姿態解算的啟動項為mc_att_control start 這里面不帶任何參數,直接就是start。?
根據編譯規則我們可以知道調用的事mc_att_control_main.cpp文件,這里我們不對這個函數之間的調用和new在繼續去解讀,如果不懂得就去參考前面幾篇博客。這里我們直接到task_main函數中去進行解讀。?
首先還是訂閱相關數據和更新相關數據主要是PID數據和相關限幅數據。注意哦,姿態相關的參數都是在這里看的出可以調節的,調節的參數在mc_att_control params.c中,這些參數大家如果不怕炸雞可以去試著調一調。?
接著進入大循環,首先還是防阻塞時間配置,配置好了之后就跑到輪詢中。首先是對采樣時間限制在2ms到20ms之間,然后就是更新飛機的相關數據。?
到這里就開始進入到控制模式了,首先是對姿態速度控制模式是否被使能,這個主要是利用遙控來控制來控制俯仰和橫滾的速率的,然后判斷遙控給出的值是否超過閾值,如果超過了就采用rattitude模式,前提是還要被使能,否則就進入角度控制模式。?
根據流程來說我們還是先分享角度控制吧。首先在角度控制中需要判斷是否為那種尾座式飛機,我們這里只分析多旋翼,所以我們這里只對多旋翼的分析一下,多旋翼的就直接進入到姿態控制函數中。我們直接進入到conrtol_attitude函數中,這里的參數是時間間隔參數在積分項會用到。?
首先獲取期望值,至于獲取哪些值就自己到msg文件中自己去看,里面具體也有注釋比較容易懂,都是英文寫的,要是實在英語不過關就在線去。然后再獲取期望油門值。然后通過期望四元素經過DCM得到旋轉R矩陣。然后就是計算偏航值,這里的算法自己去找找理論去,這個利用了向量的計算方法,然后計算偏差角度。這一堆里面涉及到很多的理論,基本是向量運算,本人實力有限也不確定能不能講清楚,所以這里不對這些來詳細解讀,這些里面主要是對偏航來做一系列計算。?
回到函數我們會知道在經過姿態控制函數之后就得到了姿態的期望值roll、pich、yaw、油門然后進行發布數據。?
進入到else中這里是對速度控制,然后遙控控制又超過了閾值,這里會將遙控數據經過轉換得到期望值最后進行發布數據。?
接著就進入到角度度控制環路中這里面首先就是獲取控制的角速率包括roll、pich、yaw計算當前角速率和期望角速率的偏差,然后計算控制量,這里面就用到了PID調節接著就是對各個數據的范圍進行判定,這里就不用說了吧,對于搞飛機的這里的算法還是沒問題吧。經典PID而已。?
到這里就基本講完了,主要是計算控制量然后發布數據。這里提一下那些模式的控制在commander.cpp中這個文件我們也會講,不過這個比較遠,因為PX4里面的東西還遠遠沒有講完,有興趣的同學可以先去看看,那里面可以說是APP層的一個控制,很多的命令控制都在這個文件中。
總結
以上是生活随笔為你收集整理的第十章 PX4-Pixhawk-姿态控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RTK无人机应用市场
- 下一篇: px4官网调参指南 多旋翼无人机PID调