PX4自動駕駛儀軟件可分為三大部分:實時操作系統、中間件和飛行控制棧。
1.NuttX實時操作系統:
提供POSIX-style的用戶操作環境,進行底層的任務調度。
2.PX4中間件:
PX4中間件運行于操作系統之上,提供設備驅動和一個微對象請求代理(micro object request broker,uORB)用于駕駛儀上運行的單個任務之間的異步通信。我的理解是完全可以將它看成為一種進程間通信機制。
3.PX4飛行控制棧:
飛行控制棧可以使用PX4的控制軟件棧,也可以使用其他的控制軟件,如APM:Plane、APM:Copter,但必須運行于PX4中間件之上。
此部分又可分為3部分:
決策導航部分:
根據飛行器當前飛行狀態和接收的用戶命令,決定工作模式和飛行任務。位置姿態估計部分:
通過傳感器獲取自身的位置和姿態信息。位置姿態控制部分:
根據期望與當前的位置和姿態控制飛行狀態以達到期望位置和姿態。控制器輸出部分:
mixer和執行器,pwm限幅。