李 露胡乃瑞王君祎
(1.沈陽航空航天大學電子信息工程學院,遼寧沈陽 110136;2.中國科學院沈陽自動化研究所,遼寧沈陽 110016)
如今,一些科學技術手段正逐漸被應用于野外搜救行動中。無人機或者載人飛機常常被利用在快速搜尋事故現(xiàn)場,通過在目標區(qū)域低飛勘察進行救援活動[1]。但是目前的技術還無法得到遇難者的精準位置,需經(jīng)過長時間搜尋才能被發(fā)現(xiàn),同時還會出現(xiàn)運營商片區(qū)基站損壞或信號弱覆蓋區(qū)域,若使用蜂窩網(wǎng)絡通信系統(tǒng)可能會受到干擾,往往會耽誤搜救的黃金時間,造成遇險人員身體損害甚至失去生命[2]。
提出一款基于北斗定位與LoRa 無線技術的野外搜救監(jiān)測系統(tǒng)。由于實際應用中衛(wèi)星導航系統(tǒng)在一定程度上會受到環(huán)境條件、電磁波變化等因素的影響,本設計在采集并解析出北斗模塊所傳輸?shù)奈恢脭?shù)據(jù)后,對其進行自適應Kalman 濾波處理以提高該系統(tǒng)的定位精度。該系統(tǒng)采用搭載LoRa 無線模塊的無人機作為中繼器實現(xiàn)自組網(wǎng),能夠避免監(jiān)測區(qū)域內(nèi)灌木、建筑物等因素對無線電傳播的影響,保證了該系統(tǒng)數(shù)據(jù)的遠距離傳輸。倘若使用多架無人機并合理規(guī)劃部署位置,能夠顯著增強地面無線設備的鏈接性,擴展通信網(wǎng)絡的覆蓋范圍。同時,作為移動的空中基站,還能夠提供可靠的上下行通信,提升無線網(wǎng)絡的能力,具有良好的靈活性[3]。
在野外活動開始前,人員穿戴集成北斗定位模塊的移動終端設備。當使用者處于危險環(huán)境時,按下緊急報警按鈕,通過由LoRa 無線模塊組成的無線通信網(wǎng)絡向地面站發(fā)出求救信號,并實時上傳人員的位置信息給地面監(jiān)測中心。監(jiān)測軟件是一款由Qt 設計的上位機軟件,能夠?qū)崟r地顯示求救人員的位置信息,便于監(jiān)測整個搜救行動的進行。該野外搜救系統(tǒng)的設計能有效跟蹤遇險人員,并將信息實時上傳到地面檢測中心,方便搜救人員明確攜帶必要的醫(yī)療器械和藥物,為開展搜救行動提供更完備準確的參考信息,為實施有針對性的救援提供了可能。
本系統(tǒng)由目標用戶端和地面檢測中心2 部分組成,二者之間通過由無人機搭載LoRa 無線模塊組成的無線通信網(wǎng)絡傳遞數(shù)據(jù)。目標用戶端主要由主控單元stm32F103C8T6、北斗定位模塊、OLED12864顯示模塊、按鍵模塊、LED 模塊、無線模塊等組成。地面檢測中心由無線模塊和PC 端檢測軟件組成。利用Qt 設計一款專用的上位機軟件,可將無線模塊傳來的信息進行解析,并顯示在監(jiān)測軟件上,便于救援人員開展搜救行動,具體模型框架如圖1 所示。
圖1 系統(tǒng)總體結(jié)構(gòu)
該野外搜救監(jiān)測系統(tǒng)主控單元的最小系統(tǒng)電路如圖2 所示,本設計采用的是stm32F103C8T6 芯片作為主控芯片,該款單片機程序和靜態(tài)數(shù)據(jù)存儲器容量是512KB,RAM 存儲為64KB,具有專為要求高性能、低成本、低功耗的嵌入式應用設計的ARM32位Cortex-M 內(nèi)核芯片[4-5]。根據(jù)本設計中定位及無線通信功能的實際需求,結(jié)合STM32 單片機自身特點,編寫軟件程序?qū)崿F(xiàn)定位模塊信息的采集、數(shù)據(jù)處理、按鍵及無線通信等功能。其豐富的庫函數(shù)資源為基于北斗定位與LoRa 無線技術的監(jiān)測系統(tǒng)的設計帶來了極大的方便。
該搜救監(jiān)測系統(tǒng)采用的通信設備為LoRa 無線模塊,是一款基于SX1268 射頻芯片的無線串口模塊,具有多種傳輸方式,該模塊支持空中喚醒,非常適合超低功耗應用。在本設計中利用433 MHz 無線收發(fā)模組進行信息的傳遞,通過LoRa 擴頻通信技術,普通環(huán)境下能夠?qū)崿F(xiàn)5 000 m 的通信距離[6]。在該野外搜救監(jiān)測系統(tǒng)中選用了其自動中繼組網(wǎng)的功能,能夠?qū)崿F(xiàn)超遠距離的通信,同一區(qū)域使多個網(wǎng)絡同時運行。由于在實際數(shù)據(jù)傳輸中,可能會出現(xiàn)地形地貌、人工建筑等會對無線通信網(wǎng)絡造成干擾的情況,于是選用了無人機搭載無線模塊作為中繼器傳輸數(shù)據(jù),具有靈活性強,搭建成本低等優(yōu)點。無線通信系統(tǒng)示意圖如圖3 所示,被測人員佩戴含有無線模塊的移動設備作為信息的發(fā)射端,無人機搭載無線模塊作為中繼器模塊,地面監(jiān)測中心與無線模塊相連作為信息的接收模塊。
圖2 最小系統(tǒng)電路圖
圖3 無線通信系統(tǒng)
在使用LoRa 無線模塊時,先對模塊進行工作模式、參數(shù)配置,程序中對串口進行初始化設置,通過串口通信實現(xiàn)位置信息的傳遞。其接口電路如圖4 所示。
該搜救系統(tǒng)的定位模塊采用的是一款高性能的ATK-1218-BD GPS/北斗雙模定位模塊[7]。在該搜救系統(tǒng)中通過調(diào)用NMEA-0183 協(xié)議的命令能夠得到時間、經(jīng)緯度、地面速率等有用信息。該定位模塊具有體積小,能夠兼容3.3 V/5 V 電平的特點,方便與各種單片機系統(tǒng)連接。該模塊還自帶可充電后備電池,可以掉電保持星歷數(shù)據(jù)。定位模塊通過串口與處理器進行通信,其接口連接電路如圖5 所示。
圖4 LoRa 模塊接口電路
圖5 定位模塊與處理器電路
精準定位的軟件設計流程如圖6 所示。首先,初始化根據(jù)SkyTraq 控制協(xié)議對定位模塊的串口波特率、PPS 輸出脈沖寬度、輸出頻率等進行設置。然后循環(huán)等待衛(wèi)星數(shù)據(jù)的接收。當?shù)玫娇捎玫臄?shù)據(jù)后,通過NMEA-0183 協(xié)議對數(shù)據(jù)進行解析,從中提取到有用的位置信息,經(jīng)過自適應Kalman 算法將信息進行濾波處理,得到最終準確的目標位置信息。
圖6 定位模塊的軟件設計流程
本設計通過NMEA-0183 協(xié)議對數(shù)據(jù)進行解析,NMEA-0183 協(xié)議采用ASCII 碼來傳遞定位信息[8]。其協(xié)議幀格式如圖7 所示。
圖7 位置信息協(xié)議幀
消息的格式為:$GNRMC,UTC 時間,定位狀態(tài),緯度,緯度半球,經(jīng)度,經(jīng)度半球,地面速率,地面航向,地面航向,UTC 日期,磁偏角,磁偏角方向,模式指示*hh(CR)(LF)。在程序中定義一段存儲區(qū)域用來存儲位置信息數(shù)據(jù),通過判斷是否有“$”標識符來確定此組數(shù)據(jù)是否合法。在此野外搜救系統(tǒng)中需要提取其中定位模塊實測的經(jīng)緯度信息。
由于衛(wèi)星導航系統(tǒng)的觀測粗差會引起定位精度的誤差,因此采用Kalman 濾波對含有隨機干擾的觀測量進行濾波。Kalman 濾波器是一種最優(yōu)濾波器,可以從夾雜著各種隨機噪聲的信號中分離出有用信號[9]。由于在該野外搜救系統(tǒng)的實際情況中觀測人員一般難以確保規(guī)則運動,標準的Kalman 濾波算法難以滿足實際需求。因此本設計中選用了自適應Kalman 濾波算法,能夠有效地抑制觀測異常,提高濾波的精度和可靠性,同時具有計算效率高,便于自動化處理等特點,是精密單點定位中常用的一種估計策略[10-11]。
本系統(tǒng)采取的觀測模型為:
式中:s(k)表示被測人員移動的距離,v(k)表示北斗模塊的定位誤差,假設是零均值、方差為的白噪聲,方差用統(tǒng)計的方法多次采集北斗定位模塊實驗數(shù)據(jù)獲取。記時刻kT0被測人員移動的速度為,加速度為a(k),由勻加速運動公式有
而加速度a(k)由機動加速度u(k)和隨機加速度w(k)2 部分組成。
定義在采樣時刻kT0處系統(tǒng)的狀態(tài)x(k)為人員移動的位置和速度,可以得到運動的狀態(tài)方程
觀測方程為
即系統(tǒng)的狀態(tài)空間模型為
對比式(4)~式(7),可得到Φ、B、Γ、H。將其推廣到四維,包含水平方向的位置和速度和縱向的位置和速度。
由此得到系統(tǒng)方程可以用式(9)表示:
由于實際情況中被測人員的運動速度較低,因此選用的理論模型中的加速度認為是0。
自適應Kalman 濾波與標準Kalman 濾波在遞推形式上完全一致,兩者的差異僅體現(xiàn)在觀測模型中測量噪聲的方差采用等價方差進行替換。等價權(quán)可表示為:
式中:pi為北斗模塊測得數(shù)據(jù)對應的權(quán);為標準化殘差;k0,k1為常量,一般取k0=1.0~1.5,k1=2.0~3.0。通過仿真和實驗論證后,該方案將觀測值的權(quán)劃分為保權(quán)區(qū)、降權(quán)區(qū)和拒絕區(qū),通過適當擴大異常觀測值的方差以降低異常測量數(shù)據(jù)對參數(shù)估值的影響。在該野外搜救監(jiān)測系統(tǒng)中,對于被測人員位置信息監(jiān)測所含粗差的觀測值來說,采用自適應Kalman 濾波算法是非常有效的。
該野外搜救系統(tǒng)的地面站監(jiān)測軟件使用Qt 開發(fā)平臺開發(fā),Qt 是一個跨平臺的C++圖形用戶界面庫,由挪威TrollTech 公司出品,使用C++編程語言開發(fā),Qt的跨平臺性使得它被廣泛的應用[12]。用戶可根據(jù)需要定制界面,Qt 為用戶提供了大量的函數(shù),并為函數(shù)配上詳細的使用說明,地面站監(jiān)測軟件設計流程如圖8所示。上位機通過無線通信網(wǎng)絡接收傷員位置信息,并將接收到的信息在上位機上直觀的顯示出來。
圖8 地面站監(jiān)測軟件設計流程
為了更加直觀地顯示探測裝置的實時位置,使用了Qt 中的串口類以及相應的控件,并運用了信號與槽的機制實現(xiàn)了位置實時顯示軟件。上位機中首先對串口進行配置,當發(fā)現(xiàn)人員觸發(fā)警報時,通過便攜設備采集到當前人員的位置信息,并在PC 機上顯示出來,上位機顯示界面如圖9 所示。
圖9 地面站監(jiān)測軟件顯示界面
其中地圖的開發(fā)是利用百度離線地圖API 應用程序接口。其所含有的綁定平臺、接口,把復雜的設計簡單化,降低了地理信息方面在地圖服務和地圖開發(fā)上的難度,可以免費供開發(fā)者使用,能夠按需實現(xiàn)位置檢索、定位導航等功能。
根據(jù)目標任務對所提出的自適應Kalman 濾波算法進行驗證。測試人員配戴本文設計的可穿戴設備在測試區(qū)域內(nèi)移動,可穿戴設備將北斗模塊實時采集到的位置信息加以濾波處理后通過無線電發(fā)送到上位機,其中北斗定位模塊的采樣間隔為1 s,處理器首先將北斗定位模塊采集到的經(jīng)緯度(B,L)進行坐標轉(zhuǎn)換,得到本設計選取的平面坐標系下的坐標(X,Y),然后將平面坐標(X,Y) 進行自適應Kalman 算法濾波處理,得到最終預測的位置信息。
北斗模塊直接采集到的人員運動軌跡如圖10 中觀測軌跡所示,濾波軌跡表示經(jīng)自適應Kalman 濾波算法處理后的數(shù)據(jù)結(jié)果。為更加直觀的顯示出濾波效果,通過與理論值對比計算出了經(jīng)過自適應Kalman 濾波算法處理前后的數(shù)據(jù)誤差如圖11 所示。
圖10 抗差Kalman 濾波算法效果
圖11 自適應Kalman 濾波前后誤差對比
由圖11 可以明顯看出,從定位模塊獲取的位置信息經(jīng)過自適應Kalman 濾波處理后,該系統(tǒng)的定位均方根誤差由10 m 縮減到3 m,能夠有效抑制定位模塊測距中的測量值與真實值的誤差,從而得到更準確可靠的遇險人員位置信息,提高整個監(jiān)測系統(tǒng)的精度和穩(wěn)定性。
根據(jù)程序?qū)δ繕诉M行系統(tǒng)測試,選擇6 名被測人員佩戴移動終端設備,無人機飛行高度在100 m左右,地面站在距離實驗地點8 000 m 范圍內(nèi)搭建。開始測試,當人員A 觸發(fā)警報按鈕模擬受傷情況時,救援人員在地面站上位機監(jiān)測軟件端即可觀察到受傷人員位置情況。監(jiān)測軟件界面如圖12 所示,標記處為傷員,能夠清楚顯示傷員經(jīng)緯度信息,如出現(xiàn)多名傷員,可通過下拉菜單選擇被觀測的傷員。
該搜救系統(tǒng)地面監(jiān)測軟件還設計了顯示傷員運動軌跡等個性化功能,圖13 為監(jiān)測到傷員受傷后的運動軌跡情況??梢灾庇^清晰地得到傷員運動軌跡,該野外搜救監(jiān)測系統(tǒng)能夠很好地實現(xiàn)目標的即時定位功能。
圖12 出現(xiàn)傷員上位機監(jiān)測界面
圖13 傷員運動軌跡上位機監(jiān)測界面
本設計提出了一種基于北斗定位與LoRa 無線技術的野外搜救監(jiān)測系統(tǒng),對其硬件和軟件進行了詳細地設計。當人員穿戴移動終端設備后,一旦發(fā)生危險能夠快速準確地獲得遇險人員的地理位置信息,并通過無線通信系統(tǒng)在地面站軟件中進行實時監(jiān)測。倘若搭配現(xiàn)有的無人機攝像技術,還能遠距離地實時觀測到人員生命體征等圖像信息,便于救援人員快速掌握遇險人員的身體狀況,明確攜帶必要的醫(yī)療器械和藥物。實驗表明,該系統(tǒng)實現(xiàn)了對北斗定位信息的獲取、信息的濾波處理、遠程發(fā)送接收信息以及實時監(jiān)測等功能。此研究成果便于攜帶,能靈活搭建無線通信網(wǎng)絡,人機交互界面良好,在搜救行動中能有效監(jiān)測遇險人員,節(jié)省人力與財力,并能夠為搜救行動的開展提供更完備的參考信息。