湯明文
(國網福建省電力有限公司福州供電公司,福州350000)
ARM和NuttX的多旋翼飛行器飛行控制系統設計*
湯明文
(國網福建省電力有限公司福州供電公司,福州350000)
針對多旋翼飛行器在特種任務需求復雜作業中的穩定、安全和可靠性問題,提出一種基于ARM和Nutt X的無人飛行器飛行控制系統。該系統采用基于Cotex-M4內核的低功耗和高性能TM4C123GH6PZ芯片作為主控單元,并結合雙冗余慣性測量傳感單元完成高可靠硬件電路設計;并以四軸八旋翼無人機為載體,完成了系統功能和性能的飛行試驗驗證。試驗結果表明,該系統不僅能滿足飛行控制的穩定性和可靠性需求,而且可擴展性好,軟件算法的運行資源充足。
Cotex-M4;TM4C123GH6PZ;Nutt X;多旋翼飛行器;多任務
近年來,隨著無人機技術的快速發展,多旋翼飛行器以其機械結構簡單、機動性好、懸停凝視、定點懸拍、垂直起降等優點,已成為許多國家或科研機構的研究熱點,在軍事和民用多個領域也都有廣闊的應用前景。隨著多旋翼飛行器任務功能作業需求的日趨復雜性,無人機對高可靠、安全和高穩定飛行控制系統的需求尤為迫切。一旦飛控系統出現問題,無人機就會失去控制進而墜落。因此,擁有一個多任務處理能力強和安全穩定的飛控系統顯得至關重要。
針對多旋翼飛行器在復雜作業中的穩定、安全和可靠性問題,本文提出一種基于ARM和Nutt X的無人飛行器飛行控制系統,充分發揮了ARM內核微處理器的高性能、低功耗、外設接口豐富的優點和嵌入式實時操作系統Nutt X的多復雜任務程序控制優點。其中,ARM內核微處理器選用TI公司的TM4C123GH6PZ芯片,作為飛控系統的主控單元,該芯片是基于Cotex-M4內核實現,最高具備80 MHz主頻,非常適用于本文中多旋翼無人機中高性能、低功耗嵌入式控制領域,它同時具備多個高精度定時器和多種通信接口,可以輸出多達16路互補且帶有死區時間控制的PWM波形,完全兼容旋翼數量不同的飛行器;Nutt X是一個強調標準兼容和小型封裝的實時操作系統,具有從8位到32位微控制器環境的高度可擴展性,主要遵循Posix和ANSI標準,采用模塊化設計,完全可搶占式內核,并且支持類Unix的ScIipt控制和類Bash的NuttShell控制臺,非常適用于本文中的飛控系統執行復雜任務時多旋翼無人機多項飛行功能任務的控制實現。
1.1 系統硬件總體架構設計
多旋翼飛行器飛控系統的硬件結構包括電源模塊、慣性測量傳感器模塊、無線模塊、SD卡存儲模塊及USB轉串口電路等部分,系統框圖如圖1所示。其中,電源模塊能夠提供全冗余5 V輸入,TM4C123GH6PZ通過SPI總線及I2C總線采集得到慣性測量傳感器信號,并實時解算出當前飛行位置和姿態,然后根據遙控器發送的目標姿態及當前的姿態差計算出PID電機增量,最后將PWM信號提供給電子調速器來實現飛行器的穩定飛行。此外,系統能夠通過USB或者無線數傳模塊與地面站進行通信,同時,飛行中的所有姿態、位置數據和遙控操作數據均可存于SD卡中,方便對系統進行調試。

圖1 飛控系統硬件系統框圖
1.2 電源模塊設計
電源模塊采用芯片LTC4417進行電源管理,電路圖如圖2所示。LTC4417可根據優先級將3個有效電源之一連接至一個公共輸出端,從3個輸入中選擇優先級最高的電源。優先級由引腳分配來確定,V1被分配了最高的優先級,而V3則為最低的優先級。當某個電源的電壓連續處于其過壓(OV)或欠壓(UV)窗口之內的時間至少為256 ms時,此電源就被定義為“有效”。假如優先級最高的有效輸入脫離了OV/UV窗口,則立即將該通道斷接,并把優先級次高的有效輸入連接至公共輸出?;谌哂喙╇娫O計思想,當主電源發生故障時,系統可以在第一時間內不停機切換至備份電源,由此可有效提高飛行的安全性,在工程實踐中具有重要意義。

圖2 電源模塊電路
1.3 傳感器模塊
為進一步提高飛控系統的安全性和可靠性,本文采用了雙慣性測量傳感器冗余設計。主陀螺儀采用ST公司的3軸16位精度傳感器L3GD20 H;3軸加速度計和3軸電子羅盤采用LGA-16封裝的LSM303D;氣壓計采用瑞士MEAS公司的MS5611芯片,包含一個高線性度壓力傳感器和一個超低功耗的24位∑型A/D轉換器,分辨率可達到10 cm。此外,還采用了Invensense公司的MPU 6050三軸陀螺儀/加速度計作為飛控系統的慣性姿態測量備份單元,保證在主慣性測量傳感器發生故障時,飛控系統仍能正常工作。上述所有傳感器都具備高速SPI接口,與主處理器可并聯在同一總線上,簡化了PCB設計。此外,還采用了I2C總線接口的外置羅盤HMC5883,進一步提高系統的抗電磁干擾能力。
1.4 無線模塊
無線模塊包括遙控接收模塊和與地面站通信數傳模塊兩個部分。
為了節省I/O資源,簡化布線操作,遙控接收模塊采用脈沖位置調制(Pulse Position Modulation,PPM)形式輸出,只需一根信號線即可傳輸多個通道的PWM信號。
無線數傳模塊基于新型無線射頻模塊XTend進行設計。該模塊是DIGI公司研發的基于ZigBee技術的帶獨立RF的調制解調器,能提供長距離(高達40英里)低功耗的無線解決方案,工作在5 V電壓下,電流消耗只有780 m A,輸出功率可達1 W(30 dBm)。該模塊可輸出符合FCC標準的4 W功率,同時提供256位AES數據加密功能,并在調制解調器中加入了抗干擾技術,保證了高空飛行時數據傳輸的可靠性。
2.1 基于NuttX的飛控任務分配
基于Nutt X的程序架構設計思想是將一個大的應用程序分成多個相對獨立的任務來完成。本飛行控制系統的所有功能都通過任務進程實現,主要包括傳感器數據采集、姿態解算、遙控器數據采集、姿態控制、數據通信及日記記錄等,以下將對各個任務進程進行介紹。
①傳感器數據采集進程:在飛行過程中不斷地采集所有傳感器數據,并對讀取的傳感器數據進行處理;
②姿態解算進程:根據采集得到的傳感器數據,基于擴展卡爾曼濾波器解算出飛行器當前的姿態;
③遙控器數據采集進程:采集并解算遙控器接收機輸出的PPM脈沖信號,從而得到對應的姿態指令;
④姿態控制進程:將得到的姿態指令與當前姿態數據進行比較,基于前饋PID計算出當前所需的PID控制量,并分配到各旋翼轉速,以達到姿態控制的目的;
⑤數據通信進程:一方面,接收地面站發送的指令,主要包括起飛、降落、返航及姿態改變等;另一方面,將飛控系統的參數實時回傳給地面,主要包括當前姿態、遙控輸入及電機輸出等數據
⑥日記記錄進程:將飛行過程中的主要飛行參數數據存儲至SD卡中。
2.2 進程間通信
進程間通信是飛控系統軟件架構的重要組成部分,本文采用了一種微對象請求代理機制(Micro Object Request Broker,μORB)來實現,其肩負了整個系統的數據傳輸任務,所有的傳感器數據、遙控器PPM信號均通過μORB傳輸至各個模塊進行計算處理。μORB實際上是多個進程打開同一個設備文件,進程間通過此文件節點進行數據交互和共享。進程通過命名的總線交換的消息稱之為主題,一個主題僅包含一種消息類型。每個進程可以訂閱或者發布主題,其程序流程圖如圖3所示。
一個主題可以存在多個發布者,或者一個進程可以訂閱多個主題,但是一條總線上始終只有一條消息,進程并不用關注信息交換的對象。這種機制可高效簡潔地實現進程間數據的共享,進而提高程序開發效率。
基于上述的μORB機制,多旋翼飛行器飛控系統軟件結構圖如圖4所示,其中姿態解算進程利用傳感器采集進程得到的數據實時解算出飛行器當前姿態;姿態控制進程訂閱遙控器及姿態數據,計算出當前所需的PID控制量,并推送至uORB;數據通信進程將接收到的控制指令發布,同時訂閱系統各個參數數據;最后,日記記錄進程從uORB處得到系統數據后進行存儲。

圖3 訂閱/發布主題程序流程圖

圖4 多旋翼飛行器飛控系統軟件結構圖
為驗證設計的飛控系統的功能和性能,本文以軸距為750 mm的四軸八旋翼異形飛行器為測試平臺,對系統進行了室外飛行實驗,實驗場景。
圖5為所得到橫滾、俯仰和偏航角的響應曲線,從實驗結果可以看出,飛行姿態角始終能快速準確地跟蹤指令值,保證飛行器的穩定飛行,達到系統設計的要求。此外,通過Nutt XShell可以得出TM4C的空閑運行資源達到了62.17%,能滿足后續更強大的各種運算及應用開發需求。

圖5 飛控系統姿態采集的實驗結果曲線
本文在充分發揮ARM處理器的高性能、低功耗和接口豐富,以及Nutt X系統的可多進程任務處理優勢基礎上,實現了一種可靠、穩定和高效的多旋翼飛行器飛行控制系統設計,并在四軸八旋翼無人機平臺上完成了該系統功能性能的外場飛行試驗驗證。試驗結果表明,通過在TM4C123GH6PZ上嵌入Nutt X實時操作系統,可實現多任務進程間的信息共享和交互,高效地完成多旋翼飛行器的飛行控制;通過采用冗余的慣量測量傳感單元,實現較穩定的動、靜態姿態角測量,并進一步提高飛控系統的容錯設計和可靠性;該系統不但具備復雜任務作業能力,而且可擴展性好,非常有利于用戶的后續開發,為多旋翼無人機飛行控制系統設計提供了一種行之有效的解決方案。
[1]常國權,戴國強.基于STM32的四軸飛行器飛控系統設計[J].單片機與嵌入式系統應用,2015(2):29-32.
[2]高嘉陽.嵌入式CORBA的精簡ORB實現[J].計算機工程, 2004,30(4):73-75.
[3]郭曉鴻,楊忠,楊成順.一種基于STM32的四旋翼飛行器控制器[J].應用科技,2011,38(7):35-40.
[4]楊浩,楊斌,楊成順.嵌入式Linux實時控制的四軸飛行器進程分析[J].單片機與嵌入式系統應用,2015(11):26-29.
[5]李昌.基于μC/OS III的多功能控制器[J].單片機與嵌入式系統應用,2014(3):33-38.
湯明文,主要從事智能電網、無人機在電網應用等相關領域研究工作。
Flight Control System for Multi-rotor Aircraft Based on ARM and NuttX
Tang Mingwen
(State Grid Fujian Electric Power Company Fuzhou Power Supply Unit,Fuzhou 350000,China)
Aiming at the problems of the multi-rotor aircraft under complex task requirement such as the stability,safety and reliability, the flight control system of unmanned aircraft based on ARM and Nutt X is proposed.This system takes TM4C123GH6PZ as the control unit,and the reliable hardware circuit is designed using the redundancy IMU.Lastly,the function and performance are verified on the four-axis eight-rotor unmanned vehicle.The experiment results show that the proposed method can meet the stability and reliability requirements,and the soft resource is also rich enough to run,which has a high value in the engineering application.
Cortex-M4;TM4C123GH6PZ;Nutt X;multi-rotor aircraft;multitask
TM368.2
:A
楊迪娜
2016-05-30)
*國家級-新型大氣數據傳感系統的狀態自確認方法研究(61401414)。