陳 均,王憶文
(電子科技大學 微電子與固體電子學院,四川 成都 610054)
老年人由于身體虛弱、平衡能力差以及自我保護能力低等因素,很容易發生意外跌倒。如果跌倒后沒有得到及時的救助和處理,將會導致嚴重的后果,甚至危及到生命安全。因此,開發一個集跌倒監測、跌倒定位和遠程報警為一體的監控系統具有很重要的意義。
近年來,MEMS(Micro-Electro-Mechanical Systems)加速度傳感器的發展為基于三軸加速度傳感器的跌倒監測創造了可能。在參考文獻[1]中,采用通過加速度傳感器監測人體姿態的方法來監測跌倒;在參考文獻[2-3]中,采用基于加速度向量幅值SVM(Signal Vector Magnitude)和微分加速度幅值的絕對平均值MAVD(Mean Absolute Value of Differential)作為跌倒判斷標準的檢測方法。本文提出一種基于人體跌倒過程中加速度變化趨勢的檢測算法,該算法實現簡單并且具有很高的精度。
人體跌倒時,提供精確的跌倒位置為及時救助提供了方便。常見的基于ZigBee的定位方法有:基于接收信號強度值RSSI的測距算法[4]、基于到達時間 TOA的測距算法、基于到達角度AOA的測距算法以及基于質心算法和DV-HOP算法的估計距離定位算法。但這些算法不是精度低,就是算法復雜,或者成本偏高。本文提出一種基于RSSI查找表和方差分析的定位算法,并采用硬件加速的方法予以實現,不但滿足了實時定位的要求,并且具有很高的定位精度。跌倒報警采用移動手機作為監控終端,ZigBee網絡將跌倒信息傳到本地監控中心,監控中心完成定位算法后將跌倒坐標通過GSM無線網絡發送到醫護人員的移動手機上,方便醫護人員第一時間為跌倒者提供救助。

系統主要由三大部分組成:可穿戴檢測終端、ZigBee傳感器網絡和監控中心,如圖1所示。可穿戴檢測終端由ZigBee無線模塊、ARM處理器和三軸加速度傳感器構成,三軸加速度傳感器監測人體跌倒過程中的加速度值并產生與跌倒相關的中斷,ARM通過I2C總線對三軸加速度傳感器進行配置并接收中斷進而實現跌倒檢測算法,ZigBee無線模塊負責數據傳輸。ZigBee傳感器網絡由攜帶在人體上的移動盲節點、固定在環境中的參考節點和協調器節點組成,負責傳遞跌倒信息和生成用于定位的原始數據;監控中心利用ZigBee網絡生成的定位原始數據實現高精度定位并將跌倒信息和跌倒坐標利用GSM無線模塊發送至醫護人員的移動手機上。
無線傳感器網絡采用的網絡類型為網狀網,網絡中有協調器、路由器和終端三種設備。在該系統中,除了協調器節點外,移動盲節點和固定在環境中的參考節點都是路由器。在網絡組建成功之后,協調器將查詢移動盲節點,接著盲節點將以單跳方式廣播8次blast信息,參考節點接收到8次盲節點的接收信號強度值RSSI(Received Signal Strength Indication)并求平均值之后發送給協調器節點,協調器節點將這些信號強度值發給監控中心作為定位的原始數據。另外,在監測到人體跌倒之后,盲節點將通過傳感器網絡把跌倒信息發送到監控中心。
室內定位問題一直是個難點。由于室內環境的復雜性很高,信號在傳播過程中,反射、多徑傳播、非視距、天線增益等問題都會對信號強度的損耗造成影響。所以,對RSSI進行數學建模需要加入大量的修正因子,由此也加大了算法實現難度或者不能保證實時定位的要求。另外,大量文獻中采用的基于RSSI測距再通過三邊測量的定位法精度都很難保證。基于這個原因,本文提出了一種根據實際環境構造RSSI查找表、利用方差分析的定位算法。

如圖2所示,將參考節點范圍內的區域劃分成大小相同的若干小正方形區域。構建好傳感器網絡之后,將移動盲節點放置到每個小正方形區域的中心,測量各個參考節點接收到的移動盲節點的RSSI值;通過多次測量求平均值得到該小正方形區域的RSSI值,同時記錄該區域的中心坐標,這樣便構建了一個帶坐標值的RSSI查找表。這種方法不僅避免了對復雜環境進行RSSI信號建模,同時提高了測量精度。在定位過程中,將移動盲節點的RSSI值與帶坐標值的RSSI查找表進行遍歷方差計算,找到最小方差值的那個RSSI值對應的坐標即可得到移動盲節點的位置坐標。在實驗中,將一個8 m×8 m的房間劃分成64個小正方形區域,通過實測構建RSSI查找表,查找表中包括了坐標值和對應該坐標的每個參考節點的RSSI值。基于C語言的定位算法描述如下:

該算法中有大量的加/減法和乘/除法計算,如果采用嵌入式軟件方法進行實現,將會花費大量的計算時間,不能滿足實時定位的要求。為此,針對該算法設計了一個基于FPGA的硬件加速器,該加速器采用并行計算和流水線的方式實現,其硬件框圖如圖3所示。
基于硬件加速的定位算法實現流程:將RSSI查找表平均分成8組并行計算;每一組通過減法、乘累加和移位操作計算方差值,并通過比較器找出組內最小方差值和對應標號;8組并行計算得出的最小方差值再通過比較器找到相對于整個RSSI查找表的最小方差和對應的標號,通過標號就可以在RSSI查找表中得到移動盲節點此時的位置坐標。整個流程由控制器控制。

ADXL345三軸加速度傳感器內置有運動檢測功能和中斷系統。ARM處理器通過I2C總線接口對傳感器的內部寄存器進行配置來設定產生各種中端的加速度和時間閾值;ARM處理器同時接收加速度傳感器的中斷并通過I2C總線讀取跌倒過程中的運動狀態來實現跌到檢測。
跌倒檢測算法主要是研究人體跌倒過程中加速度的變化特性[5]。人體跌倒過程中的加速度變化曲線如圖4所示。通過與人體正常活動(上下樓、起立、坐下、跳起、下蹲)過程中的加速度的變化特性相比較,可以得到人體跌倒過程中的4種關鍵特性(失重、撞擊、靜止和跌倒后)與初始狀態的差異性。對這4種關鍵特性的檢測可以作為檢測到人體跌倒的標準。該算法可以很精確地監測到人體跌倒,同時不會將人體正常起居活動誤判為跌倒。

人體跌倒過程分析:正常情況下,加速度傳感器的矢量和一般大于1 g;失重現象會發生在跌倒之初,此時加速度的矢量和降低至0 g的水平;發生失重后,人體將于地面相撞擊,在加速度曲線中表現為劇烈沖擊;一般地,跌倒并撞擊地面后,人體無法立即站起來,人體會在短時間內保持靜止;在跌倒之后,加速度傳感器3個軸的值與初始狀態相比有很大不同。上述4種情況共同構成了整個跌倒算法。圖5所示為在ARM處理器上實現的算法流程。

圖5 人體跌倒算法流程圖
檢測到人體跌倒之后,監控中心實時地計算出跌倒位置坐標并通過向GSM無線模塊發送AT命令來發送報警短信。跌倒位置坐標轉化成Unicode代碼后以PDU格式發送中文短信。接收報警短信的號碼可隨意設置,比如發送給不同的醫護人員、救護中心以及家屬,以便最大程度地監控老人跌倒和提供及時救助。
為了驗證本方案的可靠性,進行了充分的實驗。在參考節點覆蓋的區域內隨意移動盲節點,本系統測試得到的位置坐標和實際位置坐標的誤差在1 m以內;在人體向前、向后、向左和向右4個方向跌倒時,均可以100%檢測到人體跌倒;每次發生跌倒之后,監控手機均能在5 s之內接收到跌倒報警和跌倒位置信息。同時,還測試了本系統對偽跌倒的區分度,人體在正常行走、跑步、起跳、坐下、下蹲和上下樓梯時均不會出現檢測到偽跌倒的狀況。
本文提出并實現了一個具有定位和遠程報警功能的無線人體跌倒監測系統。定位功能以ZigBee無線傳感器網絡中參考節點接收到的盲節點的RSSI值為基礎,建立RSSI查找表和方差分析的定位算法,并用硬件加速器實現。系統定位實時性高,精度達到1 m。通過研究人體跌倒過程中加速度變化特性,采用三軸加速度傳感器和ARM處理器實現了高精度的人體跌倒監測功能。遠程報警終端采用常見的移動手機,在被監控者發生意外跌倒時,將發送跌倒報警和跌倒位置信息。
[1]MOSTRAC P,ROMAN M,JURCEVIC M,et al.System for monitoring and fall detection if patients using mobile 3-axis accelerometer sensors[C].2011 IEEE International Workshop on MemeA,Bari,2011:456-459.
[2]CHEN T C.Fall detection and location using ZigBee sensor network[C].Cross Strait Quad-Regional Radio Science and Wireless Technology Conference,Harbin,2011,2:937-941.
[3]Gao Yang,Gao Jingmin,Wang Jiuhe.Research of humen fall detection algorithm based on tri-axis accelerometer[J].International Conference on Remote Sensing,2012,500:623-628.
[4]Zhang Tong,Wang Jue,Liu Ping,et al.Fall detection by wearable sensor and one-class SVM algorithm[J].Lecture Notes in Control and Information Sciences,2006,345:858-863.
[5]Ning Jia.Fall detection application by using 3-axis accelerometer ADXL345[Z].Analog Devices,Application Note:AN-1023,2009.