Pixhawk原生固件PX4之顶层软件结构
下圖所示為PX4的軟件頂層架構,很重要。
左邊是整個飛控系統的控制功能實現
用戶通過地面站或者遙控器發出模式切換以及搖桿操作對飛行器進行控制,commander根據飛行器的當前狀態對用戶想要切換到的狀態main_state進行判斷:是否能夠切換到目標狀態,確定最終狀態。stickmapper見名知意,搖桿映射,參見px4io.c、sensors.cpp
navigator決定飛行器最終會怎么做nav_state
位置控制提取local postion(光流+IMU)或global postion(GPS)數據根據導航狀態進行串級PID控制。外環輸入位置差輸出速度,內環輸出推力。
位置控制靠姿態控制實現,采用傾轉分離的解耦合控制方式,先對齊Z軸再對齊偏航角。同樣采用串級PID的控制方式,外環輸入姿態角誤差,輸出姿態角速率,內環最后輸出所需的力矩。
mixer混控器根據機型進行力矩分配。根據葉素理論,螺旋槳旋轉產生的s升力/扭矩與轉速的平方以及拉力系數/扭矩系數相關。構造力矩分配矩陣。
驅動電機,控制飛行器飛行。
右邊是位姿估計算法的實現
GPS確定global postion,optical flow確定local postion,二者有其一才能進入到POSCTL模式。
姿態估計是一切的基礎,通過融合慣性傳感器(和光流)各自優點解算出飛行器的當前姿態信息。
整個飛控內部的通訊通過uORB實現
PX4軟件系統飛控內部通訊由uORB中斷請求處理器實現,飛控與地面站的通訊全部走MAVLink,uORB中話題的結構體與MAVLink消息的結構體一一對應,數據的傳遞參看mavlink實現模塊。下圖所示為PX4軟件系統中各部分時間的聯系,通過uorb.
對應uORB的話題發布者,兩件事:公告(advertise)、發布(publish);對于話題接收者,三件事:訂閱(subscribe)、查詢(poll阻塞式等待或check更新)、復制(copy)。
牢牢記住此圖
總結
以上是生活随笔為你收集整理的Pixhawk原生固件PX4之顶层软件结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作为资深的无人机从业者,卡尔曼滤波你不能
- 下一篇: 从一百篇文章中总结出的需求分析四步法