nuttx飛控作業系統

2021-08-13 14:36:27 字數 1076 閱讀 7951

nuttx飛控系統

程式設計思路,首先我們不管裡面作業系統是怎麼樣實現。在這個系統中我們學會用api就行了。

主處理器執行nuttx實時作業系統,所有功能都通過任務程序實現[4]。主要的程序有感測器資料採集、姿態估算、姿態控制、飛行器狀態識別與切換、協處理器控制、日誌記錄。程序間進行通訊是程式結構的重要部分。  也就是說在飛機中就有幾個主要程序控制飛機。每個程序負責些什麼呢。

如圖3所示,

感測器資料採集程序: 採集的所有感測器資料。

姿態估計程序: 利用感測器資料估算出飛行器當前姿態。

協處理器通訊程序: 獲取遙控資料。

狀態識別程序: 結合感測器資料、飛行器姿態和遙控資料識別出飛行器當前模式。

姿態控制程序: 通過飛行器姿態、遙控資料、飛行器模式計算出當前所需的pid控制量並推送至uorb。

協處理器通訊程序 :再將訂閱的pid控制量通過高速串列埠傳送至協處理器。

多個程序進行通訊:

uorb 訂閱主題 ,發布主題。

協處理器和主處理器的關係:

主處理器通訊部分採用dma方式直接填充至pwm匹配輸出暫存器,最大程度地減小cpu的干預。失聯識別在定時器20 ms中斷中實現,每次進中斷會讀取dma傳輸計數器的值並記錄,再與上次的記錄值進行比較,如果兩個值不相等,則說明資料連線正常;相反,如果連線斷開,兩個值將會相等,據此實時地判斷出連線的通斷狀態。主迴圈中只需要判斷通斷標誌位,如果檢測到連線斷開,協處理器則會啟用失效保護功能:通過spi匯流排讀取mpu6000晶元的加速度和角速度資料,利用四元數姿態融合演算法[8]得到姿態資訊,轉換成尤拉角之後,再用pid控制器保持飛行器的水平姿態,直到與主處理器的連線恢復正常,再將電機控制權交還給主處理器。用尤拉角表示剛體姿態方便幾何推導,但是存在萬向節死鎖,即當剛體的3個萬向節中兩個的軸發生重合時,會出現失去乙個自由度的情況。四元數法則不存在這個問題,並且運算步驟也相對簡單,適合在本文控制系統的協處理器中運用

飛控作業系統

主處理器執行nuttx實時作業系統,所有功能都通過任務程序實現 4 主要的程序有感測器資料採集 姿態估算 姿態控制 飛行器狀態識別與切換 協處理器控制 日誌記錄。程序間進行通訊是程式結構的重要部分。也就是說在飛機中就有幾個主要程序控制飛機。每個程序負責些什麼呢。如圖3所示,感測器資料採集程序 採集的...

Nuttx作業系統學習(一)

一 初識nuttx nuttx的官方介紹鏈結 nuttx是一種實時嵌入式作業系統 real time operating system 從8位擴充套件到32位微控制器環境,nuttx中的主要控制標準為posix 和 ansi標準。實時作業系統 能夠在外界事件或資料產生時,接受並以足夠快的速度予以處理...

ucosii作業系統下,exit中斷跑飛

硬體 stm32f106vc 作業系統 ucosii 實現功能 按鍵中斷 現象 配置完按鍵 中斷後,進入中斷宕機。原 如下 void exti0 irqhandler void wk up key3 pa0 exti clearitpendingbit exti line0 跑飛如下 void ha...