湯明文
(國(guó)網(wǎng)福建省電力有限公司福州供電公司,福州350000)
ARM和NuttX的多旋翼飛行器飛行控制系統(tǒng)設(shè)計(jì)*
湯明文
(國(guó)網(wǎng)福建省電力有限公司福州供電公司,福州350000)
針對(duì)多旋翼飛行器在特種任務(wù)需求復(fù)雜作業(yè)中的穩(wěn)定、安全和可靠性問題,提出一種基于ARM和Nutt X的無人飛行器飛行控制系統(tǒng)。該系統(tǒng)采用基于Cotex-M4內(nèi)核的低功耗和高性能TM4C123GH6PZ芯片作為主控單元,并結(jié)合雙冗余慣性測(cè)量傳感單元完成高可靠硬件電路設(shè)計(jì);并以四軸八旋翼無人機(jī)為載體,完成了系統(tǒng)功能和性能的飛行試驗(yàn)驗(yàn)證。試驗(yàn)結(jié)果表明,該系統(tǒng)不僅能滿足飛行控制的穩(wěn)定性和可靠性需求,而且可擴(kuò)展性好,軟件算法的運(yùn)行資源充足。
Cotex-M4;TM4C123GH6PZ;Nutt X;多旋翼飛行器;多任務(wù)
近年來,隨著無人機(jī)技術(shù)的快速發(fā)展,多旋翼飛行器以其機(jī)械結(jié)構(gòu)簡(jiǎn)單、機(jī)動(dòng)性好、懸停凝視、定點(diǎn)懸拍、垂直起降等優(yōu)點(diǎn),已成為許多國(guó)家或科研機(jī)構(gòu)的研究熱點(diǎn),在軍事和民用多個(gè)領(lǐng)域也都有廣闊的應(yīng)用前景。隨著多旋翼飛行器任務(wù)功能作業(yè)需求的日趨復(fù)雜性,無人機(jī)對(duì)高可靠、安全和高穩(wěn)定飛行控制系統(tǒng)的需求尤為迫切。一旦飛控系統(tǒng)出現(xiàn)問題,無人機(jī)就會(huì)失去控制進(jìn)而墜落。因此,擁有一個(gè)多任務(wù)處理能力強(qiáng)和安全穩(wěn)定的飛控系統(tǒng)顯得至關(guān)重要。
針對(duì)多旋翼飛行器在復(fù)雜作業(yè)中的穩(wěn)定、安全和可靠性問題,本文提出一種基于ARM和Nutt X的無人飛行器飛行控制系統(tǒng),充分發(fā)揮了ARM內(nèi)核微處理器的高性能、低功耗、外設(shè)接口豐富的優(yōu)點(diǎn)和嵌入式實(shí)時(shí)操作系統(tǒng)Nutt X的多復(fù)雜任務(wù)程序控制優(yōu)點(diǎn)。其中,ARM內(nèi)核微處理器選用TI公司的TM4C123GH6PZ芯片,作為飛控系統(tǒng)的主控單元,該芯片是基于Cotex-M4內(nèi)核實(shí)現(xiàn),最高具備80 MHz主頻,非常適用于本文中多旋翼無人機(jī)中高性能、低功耗嵌入式控制領(lǐng)域,它同時(shí)具備多個(gè)高精度定時(shí)器和多種通信接口,可以輸出多達(dá)16路互補(bǔ)且?guī)в兴绤^(qū)時(shí)間控制的PWM波形,完全兼容旋翼數(shù)量不同的飛行器;Nutt X是一個(gè)強(qiáng)調(diào)標(biāo)準(zhǔn)兼容和小型封裝的實(shí)時(shí)操作系統(tǒng),具有從8位到32位微控制器環(huán)境的高度可擴(kuò)展性,主要遵循Posix和ANSI標(biāo)準(zhǔn),采用模塊化設(shè)計(jì),完全可搶占式內(nèi)核,并且支持類Unix的ScIipt控制和類Bash的NuttShell控制臺(tái),非常適用于本文中的飛控系統(tǒng)執(zhí)行復(fù)雜任務(wù)時(shí)多旋翼無人機(jī)多項(xiàng)飛行功能任務(wù)的控制實(shí)現(xiàn)。
1.1 系統(tǒng)硬件總體架構(gòu)設(shè)計(jì)
多旋翼飛行器飛控系統(tǒng)的硬件結(jié)構(gòu)包括電源模塊、慣性測(cè)量傳感器模塊、無線模塊、SD卡存儲(chǔ)模塊及USB轉(zhuǎn)串口電路等部分,系統(tǒng)框圖如圖1所示。其中,電源模塊能夠提供全冗余5 V輸入,TM4C123GH6PZ通過SPI總線及I2C總線采集得到慣性測(cè)量傳感器信號(hào),并實(shí)時(shí)解算出當(dāng)前飛行位置和姿態(tài),然后根據(jù)遙控器發(fā)送的目標(biāo)姿態(tài)及當(dāng)前的姿態(tài)差計(jì)算出PID電機(jī)增量,最后將PWM信號(hào)提供給電子調(diào)速器來實(shí)現(xiàn)飛行器的穩(wěn)定飛行。此外,系統(tǒng)能夠通過USB或者無線數(shù)傳模塊與地面站進(jìn)行通信,同時(shí),飛行中的所有姿態(tài)、位置數(shù)據(jù)和遙控操作數(shù)據(jù)均可存于SD卡中,方便對(duì)系統(tǒng)進(jìn)行調(diào)試。
圖1 飛控系統(tǒng)硬件系統(tǒng)框圖
1.2 電源模塊設(shè)計(jì)
電源模塊采用芯片LTC4417進(jìn)行電源管理,電路圖如圖2所示。LTC4417可根據(jù)優(yōu)先級(jí)將3個(gè)有效電源之一連接至一個(gè)公共輸出端,從3個(gè)輸入中選擇優(yōu)先級(jí)最高的電源。優(yōu)先級(jí)由引腳分配來確定,V1被分配了最高的優(yōu)先級(jí),而V3則為最低的優(yōu)先級(jí)。當(dāng)某個(gè)電源的電壓連續(xù)處于其過壓(OV)或欠壓(UV)窗口之內(nèi)的時(shí)間至少為256 ms時(shí),此電源就被定義為“有效”。假如優(yōu)先級(jí)最高的有效輸入脫離了OV/UV窗口,則立即將該通道斷接,并把優(yōu)先級(jí)次高的有效輸入連接至公共輸出?;谌哂喙╇娫O(shè)計(jì)思想,當(dāng)主電源發(fā)生故障時(shí),系統(tǒng)可以在第一時(shí)間內(nèi)不停機(jī)切換至備份電源,由此可有效提高飛行的安全性,在工程實(shí)踐中具有重要意義。
圖2 電源模塊電路
1.3 傳感器模塊
為進(jìn)一步提高飛控系統(tǒng)的安全性和可靠性,本文采用了雙慣性測(cè)量傳感器冗余設(shè)計(jì)。主陀螺儀采用ST公司的3軸16位精度傳感器L3GD20 H;3軸加速度計(jì)和3軸電子羅盤采用LGA-16封裝的LSM303D;氣壓計(jì)采用瑞士MEAS公司的MS5611芯片,包含一個(gè)高線性度壓力傳感器和一個(gè)超低功耗的24位∑型A/D轉(zhuǎn)換器,分辨率可達(dá)到10 cm。此外,還采用了Invensense公司的MPU 6050三軸陀螺儀/加速度計(jì)作為飛控系統(tǒng)的慣性姿態(tài)測(cè)量備份單元,保證在主慣性測(cè)量傳感器發(fā)生故障時(shí),飛控系統(tǒng)仍能正常工作。上述所有傳感器都具備高速SPI接口,與主處理器可并聯(lián)在同一總線上,簡(jiǎn)化了PCB設(shè)計(jì)。此外,還采用了I2C總線接口的外置羅盤HMC5883,進(jìn)一步提高系統(tǒng)的抗電磁干擾能力。
1.4 無線模塊
無線模塊包括遙控接收模塊和與地面站通信數(shù)傳模塊兩個(gè)部分。
為了節(jié)省I/O資源,簡(jiǎn)化布線操作,遙控接收模塊采用脈沖位置調(diào)制(Pulse Position Modulation,PPM)形式輸出,只需一根信號(hào)線即可傳輸多個(gè)通道的PWM信號(hào)。
無線數(shù)傳模塊基于新型無線射頻模塊XTend進(jìn)行設(shè)計(jì)。該模塊是DIGI公司研發(fā)的基于ZigBee技術(shù)的帶獨(dú)立RF的調(diào)制解調(diào)器,能提供長(zhǎng)距離(高達(dá)40英里)低功耗的無線解決方案,工作在5 V電壓下,電流消耗只有780 m A,輸出功率可達(dá)1 W(30 dBm)。該模塊可輸出符合FCC標(biāo)準(zhǔn)的4 W功率,同時(shí)提供256位AES數(shù)據(jù)加密功能,并在調(diào)制解調(diào)器中加入了抗干擾技術(shù),保證了高空飛行時(shí)數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
2.1 基于NuttX的飛控任務(wù)分配
基于Nutt X的程序架構(gòu)設(shè)計(jì)思想是將一個(gè)大的應(yīng)用程序分成多個(gè)相對(duì)獨(dú)立的任務(wù)來完成。本飛行控制系統(tǒng)的所有功能都通過任務(wù)進(jìn)程實(shí)現(xiàn),主要包括傳感器數(shù)據(jù)采集、姿態(tài)解算、遙控器數(shù)據(jù)采集、姿態(tài)控制、數(shù)據(jù)通信及日記記錄等,以下將對(duì)各個(gè)任務(wù)進(jìn)程進(jìn)行介紹。
①傳感器數(shù)據(jù)采集進(jìn)程:在飛行過程中不斷地采集所有傳感器數(shù)據(jù),并對(duì)讀取的傳感器數(shù)據(jù)進(jìn)行處理;
②姿態(tài)解算進(jìn)程:根據(jù)采集得到的傳感器數(shù)據(jù),基于擴(kuò)展卡爾曼濾波器解算出飛行器當(dāng)前的姿態(tài);
③遙控器數(shù)據(jù)采集進(jìn)程:采集并解算遙控器接收機(jī)輸出的PPM脈沖信號(hào),從而得到對(duì)應(yīng)的姿態(tài)指令;
④姿態(tài)控制進(jìn)程:將得到的姿態(tài)指令與當(dāng)前姿態(tài)數(shù)據(jù)進(jìn)行比較,基于前饋PID計(jì)算出當(dāng)前所需的PID控制量,并分配到各旋翼轉(zhuǎn)速,以達(dá)到姿態(tài)控制的目的;
⑤數(shù)據(jù)通信進(jìn)程:一方面,接收地面站發(fā)送的指令,主要包括起飛、降落、返航及姿態(tài)改變等;另一方面,將飛控系統(tǒng)的參數(shù)實(shí)時(shí)回傳給地面,主要包括當(dāng)前姿態(tài)、遙控輸入及電機(jī)輸出等數(shù)據(jù)
⑥日記記錄進(jìn)程:將飛行過程中的主要飛行參數(shù)數(shù)據(jù)存儲(chǔ)至SD卡中。
2.2 進(jìn)程間通信
進(jìn)程間通信是飛控系統(tǒng)軟件架構(gòu)的重要組成部分,本文采用了一種微對(duì)象請(qǐng)求代理機(jī)制(Micro Object Request Broker,μORB)來實(shí)現(xiàn),其肩負(fù)了整個(gè)系統(tǒng)的數(shù)據(jù)傳輸任務(wù),所有的傳感器數(shù)據(jù)、遙控器PPM信號(hào)均通過μORB傳輸至各個(gè)模塊進(jìn)行計(jì)算處理。μORB實(shí)際上是多個(gè)進(jìn)程打開同一個(gè)設(shè)備文件,進(jìn)程間通過此文件節(jié)點(diǎn)進(jìn)行數(shù)據(jù)交互和共享。進(jìn)程通過命名的總線交換的消息稱之為主題,一個(gè)主題僅包含一種消息類型。每個(gè)進(jìn)程可以訂閱或者發(fā)布主題,其程序流程圖如圖3所示。
一個(gè)主題可以存在多個(gè)發(fā)布者,或者一個(gè)進(jìn)程可以訂閱多個(gè)主題,但是一條總線上始終只有一條消息,進(jìn)程并不用關(guān)注信息交換的對(duì)象。這種機(jī)制可高效簡(jiǎn)潔地實(shí)現(xiàn)進(jìn)程間數(shù)據(jù)的共享,進(jìn)而提高程序開發(fā)效率。
基于上述的μORB機(jī)制,多旋翼飛行器飛控系統(tǒng)軟件結(jié)構(gòu)圖如圖4所示,其中姿態(tài)解算進(jìn)程利用傳感器采集進(jìn)程得到的數(shù)據(jù)實(shí)時(shí)解算出飛行器當(dāng)前姿態(tài);姿態(tài)控制進(jìn)程訂閱遙控器及姿態(tài)數(shù)據(jù),計(jì)算出當(dāng)前所需的PID控制量,并推送至uORB;數(shù)據(jù)通信進(jìn)程將接收到的控制指令發(fā)布,同時(shí)訂閱系統(tǒng)各個(gè)參數(shù)數(shù)據(jù);最后,日記記錄進(jìn)程從uORB處得到系統(tǒng)數(shù)據(jù)后進(jìn)行存儲(chǔ)。
圖3 訂閱/發(fā)布主題程序流程圖
圖4 多旋翼飛行器飛控系統(tǒng)軟件結(jié)構(gòu)圖
為驗(yàn)證設(shè)計(jì)的飛控系統(tǒng)的功能和性能,本文以軸距為750 mm的四軸八旋翼異形飛行器為測(cè)試平臺(tái),對(duì)系統(tǒng)進(jìn)行了室外飛行實(shí)驗(yàn),實(shí)驗(yàn)場(chǎng)景。
圖5為所得到橫滾、俯仰和偏航角的響應(yīng)曲線,從實(shí)驗(yàn)結(jié)果可以看出,飛行姿態(tài)角始終能快速準(zhǔn)確地跟蹤指令值,保證飛行器的穩(wěn)定飛行,達(dá)到系統(tǒng)設(shè)計(jì)的要求。此外,通過Nutt XShell可以得出TM4C的空閑運(yùn)行資源達(dá)到了62.17%,能滿足后續(xù)更強(qiáng)大的各種運(yùn)算及應(yīng)用開發(fā)需求。
圖5 飛控系統(tǒng)姿態(tài)采集的實(shí)驗(yàn)結(jié)果曲線
本文在充分發(fā)揮ARM處理器的高性能、低功耗和接口豐富,以及Nutt X系統(tǒng)的可多進(jìn)程任務(wù)處理優(yōu)勢(shì)基礎(chǔ)上,實(shí)現(xiàn)了一種可靠、穩(wěn)定和高效的多旋翼飛行器飛行控制系統(tǒng)設(shè)計(jì),并在四軸八旋翼無人機(jī)平臺(tái)上完成了該系統(tǒng)功能性能的外場(chǎng)飛行試驗(yàn)驗(yàn)證。試驗(yàn)結(jié)果表明,通過在TM4C123GH6PZ上嵌入Nutt X實(shí)時(shí)操作系統(tǒng),可實(shí)現(xiàn)多任務(wù)進(jìn)程間的信息共享和交互,高效地完成多旋翼飛行器的飛行控制;通過采用冗余的慣量測(cè)量傳感單元,實(shí)現(xiàn)較穩(wěn)定的動(dòng)、靜態(tài)姿態(tài)角測(cè)量,并進(jìn)一步提高飛控系統(tǒng)的容錯(cuò)設(shè)計(jì)和可靠性;該系統(tǒng)不但具備復(fù)雜任務(wù)作業(yè)能力,而且可擴(kuò)展性好,非常有利于用戶的后續(xù)開發(fā),為多旋翼無人機(jī)飛行控制系統(tǒng)設(shè)計(jì)提供了一種行之有效的解決方案。
[1]常國(guó)權(quán),戴國(guó)強(qiáng).基于STM32的四軸飛行器飛控系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015(2):29-32.
[2]高嘉陽(yáng).嵌入式CORBA的精簡(jiǎn)ORB實(shí)現(xiàn)[J].計(jì)算機(jī)工程, 2004,30(4):73-75.
[3]郭曉鴻,楊忠,楊成順.一種基于STM32的四旋翼飛行器控制器[J].應(yīng)用科技,2011,38(7):35-40.
[4]楊浩,楊斌,楊成順.嵌入式Linux實(shí)時(shí)控制的四軸飛行器進(jìn)程分析[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2015(11):26-29.
[5]李昌.基于μC/OS III的多功能控制器[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2014(3):33-38.
湯明文,主要從事智能電網(wǎng)、無人機(jī)在電網(wǎng)應(yīng)用等相關(guān)領(lǐng)域研究工作。
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)
*國(guó)家級(jí)-新型大氣數(shù)據(jù)傳感系統(tǒng)的狀態(tài)自確認(rèn)方法研究(61401414)。