唐 哲 韋 超 黃喜軍 楊永晉 陳 澤
具有視覺(jué)跟蹤的多功能圖傳系統(tǒng)設(shè)計(jì)
唐 哲 韋 超 黃喜軍 楊永晉 陳 澤
(桂林電子科技大學(xué),廣西 桂林 541004)
文章主要介紹一種基于樹(shù)莓派和單片機(jī)的多功能圖傳系統(tǒng),其由樹(shù)莓派主機(jī)、無(wú)線網(wǎng)卡、基于單片機(jī)和mavlink協(xié)議的飛行控制系統(tǒng)、電池和開(kāi)關(guān)電源模塊組成。工作時(shí)由帶有攝像頭一端的主機(jī)通過(guò)無(wú)線網(wǎng)卡廣播視頻編碼信號(hào)和通過(guò)串口讀取到的姿態(tài)信號(hào),接收端主機(jī)網(wǎng)卡接收到信號(hào)并解碼后通過(guò)USB協(xié)議或無(wú)線網(wǎng)絡(luò)協(xié)議傳輸?shù)绞謾C(jī)、電腦或平板上,即可實(shí)時(shí)瀏覽畫(huà)面和運(yùn)動(dòng)姿態(tài)等數(shù)據(jù)。整個(gè)系統(tǒng)操作簡(jiǎn)單,響應(yīng)迅速,能滿足大部分應(yīng)用場(chǎng)景。
圖像傳輸;無(wú)線通信;嵌入式系統(tǒng);多功能
隨著科技的發(fā)展,無(wú)人機(jī)、無(wú)人車等智能產(chǎn)品慢慢被大眾所熟悉,圖傳作為這些設(shè)備的“眼睛”,具有非常重要的作用,從早期清晰度不高的模擬圖傳,慢慢演變?yōu)槿缃竦臄?shù)字圖傳,但好的圖傳價(jià)格昂貴,且學(xué)習(xí)成本高,不適用于大眾。
本文介紹的多功能圖傳,采用折中的方案,使在百元級(jí)價(jià)位就能體驗(yàn)到1080 P、60幀的視頻效果,且保障延時(shí)在200 ms以內(nèi),無(wú)論應(yīng)用于無(wú)人機(jī)或是家用機(jī)器人等都能滿足其產(chǎn)品需求,更重要的是本設(shè)備作為獨(dú)立模塊,不會(huì)給用戶提高學(xué)習(xí)成本,且所有傳感器數(shù)據(jù)都可供用戶調(diào)用,大大提高了用戶的使用場(chǎng)景[1]。
多功能圖傳系統(tǒng)首先判斷機(jī)載計(jì)算機(jī)是否連接有攝像頭,連接有攝像頭的一端自動(dòng)配置為主機(jī),另一端為從機(jī),系統(tǒng)啟動(dòng)完畢后自動(dòng)配對(duì)。在上電使用前可調(diào)整配置文件以獲得目標(biāo)分辨率和其他相關(guān)信息,分辨率越高,數(shù)據(jù)顯示越多,對(duì)應(yīng)的延遲也會(huì)相應(yīng)提高,供用戶針對(duì)不同應(yīng)用場(chǎng)景進(jìn)行調(diào)整,在APP中也可以方便快速調(diào)節(jié),提高用戶使用效率和滿足用戶多元化需求。
多功能圖傳系統(tǒng)主要由七個(gè)主要功能模塊構(gòu)成:2 s~6 s轉(zhuǎn)5 V開(kāi)關(guān)電源模塊、STM32微型飛行控制系統(tǒng)、執(zhí)行設(shè)備、天空發(fā)射端主機(jī),華碩AC56網(wǎng)卡,地面接收端主機(jī),顯示設(shè)備。各模塊之間相互聯(lián)系,交互方式繁多,控制信號(hào)可由飛行控制系統(tǒng)給入,同時(shí)也可以由地面接收端網(wǎng)絡(luò)信號(hào)給入,畫(huà)面輸出可由主機(jī)上的HDMI直接輸出,也可以通過(guò)USB網(wǎng)絡(luò)共享、無(wú)線網(wǎng)絡(luò)共享等方式輸出。通過(guò)多種交互方式滿足用戶不同的使用需求,以達(dá)到多功能圖傳的體驗(yàn)。多功能圖傳系統(tǒng)設(shè)計(jì)整體框圖如圖1所示。
(1)飛控系統(tǒng):采用STM32F427作為處理器核心,使用單片機(jī)獲取傳感器數(shù)據(jù),姿態(tài)解算,并通過(guò)串口接收來(lái)自發(fā)送端主機(jī)的目標(biāo)信息數(shù)據(jù),以及反饋?zhàn)陨韨鞲衅鲾?shù)據(jù);并通過(guò)PWM輸出最終控制信號(hào)。
(2)電源模塊:電源模塊主要考慮用戶所使用的電池電壓跨度大,主機(jī)對(duì)于工作電流要求高,為此設(shè)計(jì)了這款寬電壓輸入、低紋波的電源模塊給飛控系統(tǒng)和主機(jī)供電。
(3)攝像頭:一般來(lái)說(shuō),攝像頭板本身內(nèi)部必須有一個(gè)h264/h265編碼器,或者傳感器和SBC之間必須有CSI連接,以確保幀的傳輸和編碼盡可能快。
(4)發(fā)送端主機(jī):發(fā)射端主機(jī)不僅對(duì)于攝像頭數(shù)據(jù)壓縮傳輸,而且更重要的是實(shí)時(shí)獲取飛控系統(tǒng)的傳感器數(shù)據(jù),并發(fā)送到地面端,以保證在特殊情況下不能得到圖像信息時(shí),不會(huì)失去對(duì)控制系統(tǒng)狀態(tài)的判斷。
(5)接收端主機(jī):最重要的功能是解析網(wǎng)卡接收到的數(shù)據(jù)并與顯示設(shè)備進(jìn)行交互,便于用戶查看圖像與狀態(tài)信息,以及對(duì)于系統(tǒng)的設(shè)置。
(6)電機(jī)舵機(jī):實(shí)現(xiàn)視覺(jué)跟蹤的本質(zhì)是根據(jù)視覺(jué)信號(hào)控制電機(jī)或舵機(jī)使整體被控對(duì)象實(shí)現(xiàn)跟蹤效果。
此次設(shè)計(jì)主要考慮散熱性能和減輕重量,圖傳設(shè)備因?yàn)檎w的高功耗、小體積,基本都存在發(fā)熱的問(wèn)題,所以要在底部對(duì)稱開(kāi)孔,中部和尾部鏤空進(jìn)行散熱,經(jīng)過(guò)測(cè)試在開(kāi)啟最高畫(huà)質(zhì)的情況下連續(xù)工作3小時(shí)不會(huì)出現(xiàn)自動(dòng)降頻和系統(tǒng)故障。以無(wú)人機(jī)系統(tǒng)為例,在動(dòng)力一定的情況下為了不影響系統(tǒng)性能,圖傳系統(tǒng)需要輕便和易拆裝。如圖2所示,是使用solidworks設(shè)計(jì)的多功能圖傳系統(tǒng)建模圖。
圖2 系統(tǒng)整體建模圖
考慮到電源模塊的體積和美觀,可利用主機(jī)上的40 pin排針固定電源模塊,保證了整體模型的緊湊和可靠,并根據(jù)開(kāi)孔位置預(yù)留電源與串口引出端子,最大程度避免導(dǎo)線的引入。
圖傳系統(tǒng)主機(jī)適配Raspberry Pi 3、3A、3B等版本,這些在硬件上自帶H264/H265視頻編解碼器的模塊非常滿足設(shè)計(jì)人員的設(shè)計(jì)需求。基于成本和穩(wěn)定度考慮直接使用成品模塊,而執(zhí)行端飛行控制系統(tǒng)則采用STM32系列單片機(jī)為核心設(shè)計(jì)外圍電路,主要功能是獲取系統(tǒng)狀態(tài)信息、控制外設(shè)。
此次設(shè)計(jì)對(duì)于多種主機(jī)進(jìn)行了測(cè)試,包括但不僅限于性能強(qiáng)大的Raspberry Pi 4B、Raspberry Pi Compute Module CM3+、CM4。為了不造成資源過(guò)剩和節(jié)約成本,測(cè)試出對(duì)于地面端而言性價(jià)比極高的RaspberryPi3B(+)能很好地勝任,當(dāng)然3A在犧牲一部分使用體驗(yàn)上也能勝任,但不推薦使用。因?yàn)榻?jīng)過(guò)測(cè)試地面端上對(duì)于GPU資源要求較高,且3A內(nèi)部不支持雙頻熱點(diǎn),這將降低功能。對(duì)于天空端主機(jī)而言也測(cè)試出了兩款性價(jià)比極高的計(jì)算機(jī)模塊,如果不考慮模塊體積和追求性能,使用3A是很好的選擇,反之使用便宜且小巧的Raspberry Pi Zero。
考慮到被控對(duì)象的多樣性,在設(shè)計(jì)上留了甚多冗余,同樣對(duì)于不考慮成本的用戶推薦使用基于pix4固件的官方硬件,這些硬件系統(tǒng)基本都能很好的支持mavlink通訊協(xié)議,對(duì)于主機(jī)上下行交互沒(méi)有影響,處理器上一般使用STM32f427為主,STM32f103為備份處理器,內(nèi)置感應(yīng)器上使用L3GD20三軸數(shù)字16位陀螺儀、LSM303D三軸14位加速度計(jì)/磁力計(jì)、MPU6000 六軸加速度計(jì)/磁力計(jì)、MS5611氣壓計(jì)。官方硬件雖好,但可自定義程度差,代碼結(jié)構(gòu)復(fù)雜,成本動(dòng)輒上千元,且運(yùn)行非主流NuttX RTOS操作系統(tǒng)大大提高了用戶學(xué)習(xí)成本,所以也設(shè)計(jì)了一款成本在百元內(nèi)的控制系統(tǒng),預(yù)留8路PWM、一路GPS、一路數(shù)傳、一路主機(jī)通信串口,以及一路用戶自定義串口,主控上選擇STM32F427,由一路iic獲取mpu9250的9軸姿態(tài)數(shù)據(jù)和spl06-001氣壓高度數(shù)據(jù)。
選擇開(kāi)關(guān)電源穩(wěn)壓降壓芯片作為電源模塊,開(kāi)關(guān)電源是一種利用近代電子電力技術(shù)控制開(kāi)關(guān)管關(guān)段和開(kāi)通時(shí)間比,來(lái)維持穩(wěn)定輸出電壓的電源,一般來(lái)說(shuō)開(kāi)關(guān)電源有PWM(脈沖寬度調(diào)制)控制IC或MOSFET構(gòu)成。目前,開(kāi)關(guān)電源越來(lái)越小型化、輕量化和高效率,廣泛應(yīng)用于各種電子設(shè)備。經(jīng)過(guò)對(duì)比選擇了性價(jià)比較高的TPS5430作為首選電源芯片,大致電路由主電路、檢測(cè)電路、控制電路、輔助電源組成。通過(guò)調(diào)節(jié)外圍電阻值以獲得期望的電路性能,其主要外圍電路和調(diào)壓公式如圖3所示。
圖3 主機(jī)電源模塊原理圖
無(wú)線網(wǎng)卡顧名思義是指使用無(wú)線電波為傳播媒介的設(shè)備,網(wǎng)卡的作用和功能是用來(lái)連接到局域網(wǎng)上的,它只是一種信號(hào)收發(fā)的設(shè)備,市面上網(wǎng)卡設(shè)備眾多,但是適合此系統(tǒng)和滿足遠(yuǎn)距離需求的網(wǎng)卡基本上使用了特定芯片,建議預(yù)算允許的情況下在地面端上至少使用兩個(gè)網(wǎng)卡。經(jīng)過(guò)測(cè)試發(fā)現(xiàn),使用RTL8812和AR9271芯片的網(wǎng)卡能帶來(lái)更好的效果,同時(shí)在戶外5.8 G頻段干擾更小,用戶可根據(jù)環(huán)境不同在APP中設(shè)置網(wǎng)卡頻段。
圖傳系統(tǒng)功能繁多,首先讓大家有一個(gè)大概的了解,最后解析其中關(guān)鍵部分的軟件設(shè)計(jì),從地面端談起,需要能支持DSI和HDMI協(xié)議的視頻輸出才能具備顯示功能,同時(shí)要支持與移動(dòng)設(shè)備的互聯(lián),便需要使用wifi和USB協(xié)議,移動(dòng)設(shè)備或地面端通過(guò)USB連接支持遙控器、模擬器、教練口等,同時(shí)地面端還需配對(duì)與數(shù)傳和AAT跟蹤天線的串口程序,最后為了傳輸視頻需要USB網(wǎng)卡支持驅(qū)動(dòng)程序;對(duì)于天空端而言需要有支持mavlink協(xié)議的串口程序,CSI/USB攝像頭數(shù)據(jù)接收程序,以及網(wǎng)卡驅(qū)動(dòng)程序。綜上所述主機(jī)軟件設(shè)計(jì)框圖如圖4所示。
圖4 主機(jī)軟件設(shè)計(jì)框圖
在實(shí)驗(yàn)中使用Raspberry Pi單板計(jì)算機(jī),運(yùn)行Linux系統(tǒng),這會(huì)使得整體軟件設(shè)計(jì)工作簡(jiǎn)化,因?yàn)閘inux很好地支持USB、UART、HDMI、WIFI等驅(qū)動(dòng)程序。
對(duì)于主機(jī)而言,最為重要的便是保證視頻傳輸?shù)目煽啃院脱訒r(shí)。與攝像機(jī)不同,圖傳不必糾結(jié)于過(guò)去的視頻流,更重要的是保證當(dāng)前畫(huà)面的傳輸,所以使用一種前向糾錯(cuò)的方法,又稱FEC算法[2],此算法廣泛應(yīng)用于實(shí)時(shí)音頻視頻領(lǐng)域,用于提升弱網(wǎng)抗性,在本項(xiàng)目中通過(guò)FEC算法向視頻添加冗余而保障GroundPi上接收的視頻,因?yàn)檠舆t必須保持在最低限度,所以沒(méi)有機(jī)會(huì)重新傳輸因干擾而失真的視頻部分。取而代之的是,系統(tǒng)將以允許其中一些視頻在傳輸過(guò)程中丟失的方式處理視頻。對(duì)于視頻延時(shí)幾乎是AirPi和GroundPi上使用的視頻編碼器和解碼器硬件的結(jié)果[3]。使用Raspberry Pi可以實(shí)現(xiàn)的最小延遲有一個(gè)下限。這通常在80 ms~90 ms之間,這需要特定的配置。經(jīng)過(guò)測(cè)試在其他板上,例如性能更強(qiáng)大的tx2,通過(guò)特定攝像頭和視頻解碼/接收硬件,延遲能降低40 ms~60 ms。對(duì)于圖像處理而言,使用了OpenCV計(jì)算機(jī)視覺(jué)庫(kù)和TensorFlow深度學(xué)習(xí)框架,對(duì)于本項(xiàng)目而言只需要調(diào)用視頻流在后臺(tái)處理得到目標(biāo)對(duì)于中心點(diǎn)的偏移量,封包發(fā)送給控制端即可實(shí)現(xiàn)視覺(jué)跟蹤。
控制端軟件設(shè)計(jì)的初衷是兼容更多的控制對(duì)象和易于用戶的二次開(kāi)發(fā),在初步設(shè)計(jì)中基于STM32的MDK5平臺(tái)使用FreeRtos操作系統(tǒng),引出8路PWM,在控制類型中可選的有四軸、多軸、多種類型的固定翼以及直升機(jī)、小車等。在后續(xù)使用過(guò)程中發(fā)現(xiàn)不必要把資源運(yùn)用在操作系統(tǒng)上,所以基于定時(shí)器時(shí)間片輪詢,設(shè)計(jì)了一種偽多任務(wù)框架,使用戶增加任務(wù)更加方便,且學(xué)習(xí)成本更低。在測(cè)試中一直使用固定翼模型、一路電機(jī)、3路舵面控制姿態(tài)。為了更好地與圖傳系統(tǒng)交互,前期花費(fèi)大量時(shí)間將簡(jiǎn)化的mavlink協(xié)議移植到控制板中,以及編寫(xiě)驅(qū)動(dòng)程序,得益于STM32標(biāo)準(zhǔn)庫(kù)的成熟,在移植了IIC、UART、PWM等驅(qū)動(dòng)后,順利讀取到MPU9250、SPL01的原始數(shù)據(jù),后續(xù)可用多種方法得到歐拉角、目標(biāo)數(shù)據(jù)、期望數(shù)據(jù)、姿態(tài)數(shù)據(jù)后,根據(jù)傳統(tǒng)的雙環(huán)PID算法進(jìn)行調(diào)參,當(dāng)然飛行系統(tǒng)與地面系統(tǒng)不同,稍有不慎便會(huì)造成巨大損失,所以添加了遙控器接管程序和動(dòng)態(tài)調(diào)參程序,執(zhí)行端采用PPM接收機(jī),能快速響應(yīng)地面RC指令,接管飛行器。
在控制系統(tǒng)基礎(chǔ)功能實(shí)現(xiàn)后,圖像端的引入大大降低了固定翼模型失控的風(fēng)險(xiǎn),接下來(lái)便需要調(diào)試視覺(jué)跟蹤參數(shù),視覺(jué)跟蹤程序在控制系統(tǒng)中是一個(gè)單獨(dú)的任務(wù),以20 ms的周期運(yùn)行,當(dāng)接收到天空端的偏差數(shù)據(jù)后立刻執(zhí)行。首先需要消除機(jī)身姿態(tài)帶來(lái)的視覺(jué)偏差,在接收到偏差數(shù)據(jù)后立刻進(jìn)入接收中斷,中段任務(wù)即根據(jù)當(dāng)前歐拉角坐標(biāo)變化到大地坐標(biāo)系下消除視覺(jué)誤差,隨后在跟蹤任務(wù)中給角速度期望即可實(shí)現(xiàn)視覺(jué)跟蹤。
圖5 測(cè)試畫(huà)面圖
很多小模塊都能在不同程度上影響系統(tǒng)性能,例如幾款不同型號(hào)的CSI相機(jī),因其傳感器的不同,對(duì)于延遲有不同的影響。但是對(duì)于網(wǎng)卡來(lái)說(shuō)這些影響幾乎可以忽略不計(jì),所以統(tǒng)一選擇Pi CAM V2相機(jī),不同網(wǎng)卡(單個(gè))測(cè)試系統(tǒng)圖像傳輸延時(shí)、距離等參數(shù)。測(cè)試數(shù)據(jù)如表1所示,測(cè)試畫(huà)面如圖5所示。
表1 網(wǎng)卡測(cè)試數(shù)據(jù)表
根據(jù)上表中測(cè)試結(jié)果,認(rèn)為華碩AC56網(wǎng)卡,或者同樣使用RTL8812芯片的網(wǎng)卡,在5.8 ghz的頻段上效果更優(yōu),有更強(qiáng)的信號(hào)強(qiáng)度和更低的延時(shí)。
因跟蹤測(cè)試模型為標(biāo)準(zhǔn)固定翼,所以在大致參數(shù)未得到驗(yàn)證之前不能實(shí)際測(cè)試,因此首先在陸地上進(jìn)行仿真調(diào)參,在仿真器中輸入目標(biāo)距離,相對(duì)位置坐標(biāo),然后計(jì)算得到舵機(jī)副翼目標(biāo)角度,升降翼目標(biāo)角度,油門目標(biāo)速度,又油門速度是由用戶給定,同時(shí)也由跟蹤物體決定,不同油門狀態(tài)下機(jī)翼目標(biāo)角度不同且成非線性關(guān)系,所以在開(kāi)啟視覺(jué)跟蹤后,無(wú)人機(jī)設(shè)定目標(biāo)速度優(yōu)先級(jí)最高的是跟蹤物體速度,其次為人工干預(yù),在地面靜止?fàn)顟B(tài)下沒(méi)辦法引入速度概念,所以在初步調(diào)試中認(rèn)定跟蹤對(duì)象是50%油門速度運(yùn)動(dòng)的物體。在確定好初步調(diào)試方法和大量調(diào)試后,得到了以下測(cè)試數(shù)據(jù),如表2所示。
表2 跟蹤參數(shù)測(cè)試數(shù)據(jù)表
如今隨著機(jī)器人領(lǐng)域的大力發(fā)展,喜愛(ài)DIY的玩家也越來(lái)越多,很多電子感官越來(lái)越模塊化,圖傳也不例外。市面上高清圖傳大致分為4G圖傳和局域網(wǎng)圖傳,前者距離遠(yuǎn)延時(shí)大,后者距離近延時(shí)小,而本文設(shè)計(jì)的這款多功能圖傳,專為設(shè)計(jì)應(yīng)用于機(jī)器人、無(wú)人機(jī)、無(wú)人車的領(lǐng)域。能保障10 km的可視范圍,不消耗流量不依賴基站,大大節(jié)約成本。因運(yùn)營(yíng)商的網(wǎng)絡(luò)范圍一般只覆蓋于150 m以下的低空,所以這款圖傳在高空范圍內(nèi)的表現(xiàn)遠(yuǎn)優(yōu)于市面上的4G圖傳,大大擴(kuò)展了應(yīng)用范圍,具有較好的市場(chǎng)前景。
[1] 彭湛博. 無(wú)人機(jī)實(shí)時(shí)高清圖傳系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 西安: 西安電子科技大學(xué).
[2] 張龍彬,何佳文. 一種改進(jìn)型FEC算法及其裝置: 中國(guó),110971345A[P]. 2020-04-07.
[3] 宋利,劉孝勇,武國(guó)慶,等. 低延遲視頻編碼技術(shù)[J]. 北京航空航天大學(xué)學(xué)報(bào),2021,47(3): 558-571.
Multi-functional Map Transmission System with Visual Tracking
This paper mainly introduces a multi-functional image transmission system based on raspberry pie host and single chip microcomputer, which is composed of raspberry pie host, wireless network card, flight control system based on single chip microcomputer and mavlink protocol, battery and switching power module. When working, the host with the camera at one end broadcasts the video coding signal and the posture signal read through the serial port through the wireless network card. After receiving the signal and decoding, the host network card at the receiving end transmits it to the mobile phone, computer or tablet through USB protocol or wireless network protocol, so as to browse the picture, motion posture and other data in real time. The whole system has the advantages of simple operation and rapid response, which can meet most application scenarios.
image transmission; wireless communication; embedded system; multi-function
TP11
A
1008-1151(2022)06-0001-04
2022-03-23
廣西壯族自治區(qū)“大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目”(202010595220)。
唐哲,男,桂林電子科技大學(xué)電子工程與自動(dòng)化學(xué)院學(xué)生,研究方向?yàn)闊o(wú)人機(jī)機(jī)器人的自動(dòng)控制。
黃喜軍(1977-),桂林電子科技大學(xué)副教授,研究方向?yàn)榧呻娐窚y(cè)試與智能優(yōu)化。