徐甲棟, 陳 強(qiáng), 徐一雄, 楊文龍, 張新宇, 梁明遠(yuǎn)
(1.上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620; 2.上海航天控制技術(shù)研究所,上海 201620)
隨著社會(huì)的發(fā)展進(jìn)步,我國老齡化問題越來越嚴(yán)重[1]。因?yàn)槟挲g增長,老年人身體素質(zhì)變差,容易摔倒,得不到及時(shí)救護(hù)時(shí),易引發(fā)安全事故。基于視覺的跌倒監(jiān)測(cè)系統(tǒng),不利于保護(hù)隱私[2],設(shè)備昂貴而且容易有監(jiān)控死角,做不到時(shí)刻監(jiān)護(hù)老人身體健康;基于環(huán)境的跌倒檢測(cè)系統(tǒng),受環(huán)境因素干擾大,例如基于聲波的跌倒檢測(cè)系統(tǒng),因房屋材料的不同,檢測(cè)效果差異大,且容易受到噪聲影響。
本文基于微機(jī)電系統(tǒng)(micro-electro-mechanical system,MEMS)傳感器[3]設(shè)計(jì)了一種可穿戴式的實(shí)時(shí)跌倒檢測(cè)系統(tǒng),選用了MPU6050傳感器、SIM900A模塊和ATGM332D模塊采集和傳輸數(shù)據(jù),通過加速度計(jì)補(bǔ)償陀螺儀數(shù)據(jù)的方法,減小了陀螺儀誤差,結(jié)合改進(jìn)的多級(jí)閾值跌倒檢測(cè)算法,設(shè)計(jì)了可穿戴裝置和工程大智能看護(hù)小程序,實(shí)時(shí)監(jiān)測(cè)老人是否跌倒。若檢測(cè)到老人跌倒,及時(shí)發(fā)出警報(bào)并通知監(jiān)護(hù)人,同時(shí)監(jiān)護(hù)人可隨時(shí)實(shí)時(shí)查看到老人的身體狀態(tài)和實(shí)時(shí)位置,便于及時(shí)救助跌倒老人。
本文設(shè)計(jì)的跌倒檢測(cè)系統(tǒng)主要以老人群體為服務(wù)對(duì)象,實(shí)現(xiàn)功能主要包括有:跌倒檢測(cè)、實(shí)時(shí)報(bào)警、實(shí)時(shí)查看老人狀態(tài)。集成的可穿戴設(shè)備放在腰部,系統(tǒng)組成結(jié)構(gòu)如圖1所示。通過MPU6050傳感器內(nèi)置的陀螺儀和加速度計(jì)實(shí)時(shí)采集老年人身體的角速度和加速度數(shù)據(jù),微處理器STM32F103VET6實(shí)時(shí)計(jì)算并監(jiān)測(cè)加速度和角速度數(shù)據(jù)是否異常,當(dāng)檢測(cè)到加速度數(shù)據(jù)異常時(shí),用角速度數(shù)據(jù)作為輔助檢測(cè)手段判斷跌倒行為是否發(fā)生,若檢測(cè)到跌倒行為,通過SIM900A將報(bào)警信息發(fā)送給監(jiān)護(hù)人。同時(shí)ATGM332D實(shí)時(shí)采集老年人的位置數(shù)據(jù),通過4G模塊實(shí)時(shí)傳送到監(jiān)護(hù)端,監(jiān)護(hù)人接到報(bào)警信息時(shí),可以通過監(jiān)護(hù)終端更直觀的看到老年人的位置信息便于及時(shí)救助。
圖1 檢測(cè)系統(tǒng)結(jié)構(gòu)
檢測(cè)跌倒行為,先要設(shè)立一個(gè)合理的人體坐標(biāo)系[4],本文以人正常站立時(shí)的重心坐標(biāo)為坐標(biāo)原點(diǎn)建立一個(gè)三維人體坐標(biāo)系如圖所示2所示。人體摔倒屬于一種短暫性的劇烈活動(dòng)[5],正常情況下,人體重心在三維坐標(biāo)系下的加速度矢量和約1gn(1gn約等于9.8 m/s2,),但當(dāng)?shù)剐袨榘l(fā)生時(shí),人體會(huì)依次發(fā)生失重、撞擊地面、靜止等行為,人體重心的加速度變化依次為:1)失重:即人體的重心加速度矢量和小于1gn;2)人體重心加速度大于某個(gè)值N,N數(shù)值需經(jīng)實(shí)驗(yàn)分析得出;3)靜止:人體重心加速度矢量和約1gn。但是僅用加速度變化作為判斷依據(jù)易產(chǎn)生誤判,因此,需要用角速度矢量和進(jìn)行輔助判斷。
圖2 人體坐標(biāo)系
由于MPU6050內(nèi)置陀螺儀會(huì)隨時(shí)間漂移,且時(shí)間越長,漂移越大,因此,本文提出使用加速度計(jì)補(bǔ)償陀螺儀誤差的方法,矯正陀螺儀的漂移誤差。人某些正?;顒?dòng),例如,轉(zhuǎn)身或者躺下翻身,可能會(huì)導(dǎo)致繞Z軸的角速度變化較大而產(chǎn)生誤判。而且人體跌倒時(shí),主要是與繞X軸和Y軸的角速度變化量相關(guān),因此,計(jì)算角速度矢量和應(yīng)忽視繞Z軸方向角的角速度變化量。根據(jù)使用手冊(cè),先將MPU6050采集的三軸加速度和三軸角速度數(shù)據(jù)進(jìn)行A/D轉(zhuǎn)換,然后根據(jù)歐拉角旋轉(zhuǎn)矩陣結(jié)合加速度補(bǔ)償角速度的算法,減小姿態(tài)角誤差,再根據(jù)姿態(tài)角求得角速度矢量和[6]。角速度數(shù)據(jù)作為輔助判據(jù),能大大提高跌倒檢測(cè)的準(zhǔn)確性,降低誤報(bào)率[7]。
如圖2所示,圍繞X軸、Y軸、Z軸的旋轉(zhuǎn)的角分別為橫滾角φ、俯仰角θ和方向角γ。求加速度計(jì)N時(shí)刻測(cè)得的姿態(tài)角,設(shè)重力加速度矢量β=[0,0,-gn]T為參考向量,人體摔倒的過程中,人重心三軸加速度矢量和Ai的方向和重力加速度矢量β處于非垂直狀態(tài),可以根據(jù)重力加速度矢量β和重力加速度gn計(jì)算出加速度計(jì)N時(shí)刻測(cè)得的橫滾角φacc和俯仰角θacc。解算過程如下:
繞X軸、Y軸、Z軸的歐拉角旋轉(zhuǎn)矩陣分別為
(1)
解算出加速度計(jì)測(cè)得的橫滾角φacc和俯仰角θacc分別為
(2)
(3)
得出了加速度計(jì)測(cè)得的N時(shí)刻繞X軸和Y軸的角度,再讀出N時(shí)刻陀螺儀的繞X軸的橫滾角和繞Y軸的俯仰角分別為θgvro和φgvro,則n+1時(shí)刻修正后的橫滾角φn+1和俯仰角θn+1分別為
(4)
(5)
(6)
三軸加速度值分別為ax,ay,az加速度矢量和a為
(7)
為提高檢測(cè)準(zhǔn)確性和降低誤報(bào)率,采集了志愿者的正常活動(dòng)行為和跌倒行為的加速度和角速度數(shù)據(jù)[8],通過實(shí)驗(yàn)數(shù)據(jù)的分析對(duì)比,得出更合理的窗口時(shí)間和多級(jí)閾值設(shè)定值。
通過對(duì)靜止、行走、坐下、躺下,跌倒等行為數(shù)據(jù)采集分析得圖3。正常活動(dòng)時(shí),加速度矢量和a峰值不超過2.5gn,其中跌倒行為的加速度變化和其他正?;顒?dòng)行為明顯不同,首先加速度矢量和數(shù)值先減小,然后經(jīng)過短暫時(shí)間會(huì)出現(xiàn)一個(gè)較大的峰值,峰值最大達(dá)5gn,之后數(shù)值會(huì)迅速降到1gn左右。經(jīng)過大量實(shí)驗(yàn)分析得出,失重后的檢測(cè)時(shí)間窗口設(shè)為2 s較合理,準(zhǔn)確度最高。對(duì)于X軸和Y軸的角速度矢量和進(jìn)行分析,跌倒時(shí)最大角速度矢量和ω峰值能達(dá)到6 rad/s,其他行為最大角速度矢量和ω峰值最大不超過4 rad/s,設(shè)置合理的閾值可以區(qū)分兩種動(dòng)作行為。綜上,使用加速度多級(jí)閾值檢測(cè)法,并以角速度作為輔助判別手段,可以較為準(zhǔn)確的區(qū)分跌倒行為和其他行為。
圖3 實(shí)驗(yàn)數(shù)據(jù)采集
根據(jù)上述分析,基于改進(jìn)的多級(jí)閾值跌倒檢測(cè)算法流程如下:
1)判斷是否發(fā)生失重:跌倒時(shí),身體重心首先會(huì)失衡,即人體重心加速度小于1gn,本文系統(tǒng)中以加速度矢量和a<1gn并持續(xù)0.5 s為失重判別條件,若檢測(cè)到失重行為發(fā)生時(shí),進(jìn)行第二步檢測(cè)。
2)判斷三軸加速度矢量和a是否出現(xiàn)大于2.5gn的峰值:當(dāng)人體失重后,大約2 s內(nèi)人體會(huì)跌落到地面,落地時(shí)會(huì)產(chǎn)生不小于2.5gn的加速度[7]峰值,本文以三軸加速度矢量和超過2gn為人體跌到地面的標(biāo)志。若檢測(cè)到人撞擊地面后,則進(jìn)入下一步檢測(cè),否則退出。
3)判斷重心加速度是否接近1gn且持續(xù)3 s:當(dāng)人跌落到地面后,加速度矢量和會(huì)降1gn為左右,若檢測(cè)到人跌倒后的加速度特征變化,則進(jìn)入下一步檢測(cè),否則退出。
4)通過角速度矢量和ω來做輔助判斷:當(dāng)檢測(cè)到失重后,系統(tǒng)會(huì)連續(xù)采集2 s內(nèi)X軸、Y軸的角速度和加速度數(shù)據(jù),采集頻率為100 Hz,即分別采集200個(gè)角速度和加速度數(shù)據(jù)。計(jì)算矯正過更準(zhǔn)確的X軸和Y軸的角速度數(shù)據(jù),當(dāng)角速度矢量和ω超過4 rad/s,則更新位置并短信報(bào)警。算法流程圖如圖4所示。
圖4 跌倒檢測(cè)算法流程
ATGM332D定位模塊可以實(shí)時(shí)獲取老人的位置信息,當(dāng)系統(tǒng)檢測(cè)到老人跌倒時(shí),會(huì)發(fā)短信給監(jiān)護(hù)人報(bào)警,監(jiān)護(hù)人登錄工程大智能看護(hù)系統(tǒng)微信小程序,可以實(shí)時(shí)看到老人所在位置,及時(shí)進(jìn)行救助。監(jiān)護(hù)端功能實(shí)現(xiàn)主要分三部分:1)用GPS模塊采集WGS84坐標(biāo)系下的定位數(shù)據(jù)上傳到云數(shù)據(jù)庫;2)申請(qǐng)百度地圖API,小程序獲取云數(shù)據(jù)庫數(shù)據(jù)并將WGS84坐標(biāo)系下的定位數(shù)據(jù)轉(zhuǎn)換成BD09坐標(biāo)系下定位數(shù)據(jù),根據(jù)百度反地理編碼API將經(jīng)緯度坐標(biāo)轉(zhuǎn)換成能看懂的地理位置;3)將老人身體信息和定位信息的實(shí)時(shí)定位顯示在小程序上。監(jiān)護(hù)端測(cè)試如圖5所示,其中位置信息圖里老人定位是空心圓點(diǎn),監(jiān)護(hù)人定位為為實(shí)心圓點(diǎn)。
圖5 智能監(jiān)護(hù)系統(tǒng)測(cè)試
為測(cè)試本系統(tǒng)跌倒檢測(cè)的準(zhǔn)確性和誤報(bào)率,分別找了5名男性和5名女性志愿者模擬測(cè)試。對(duì)步行、跑步、坐下、躺下4種日常行為和向前、向后、向左、向右4種跌倒姿態(tài)進(jìn)行測(cè)試[6],每名志愿者每個(gè)動(dòng)作重復(fù)10次,共800次實(shí)驗(yàn)數(shù)據(jù)。記錄并統(tǒng)計(jì)相關(guān)測(cè)試數(shù)據(jù)如表1所示。
表1 跌倒檢測(cè)實(shí)驗(yàn)數(shù)據(jù)
根據(jù)實(shí)驗(yàn)數(shù)據(jù),共實(shí)驗(yàn)800次,誤報(bào)漏報(bào)18次,準(zhǔn)確檢測(cè)782次,日?;顒?dòng)準(zhǔn)確率為99 %,跌倒行為檢測(cè)準(zhǔn)確率96.5 %,整體誤報(bào)率為2.25 %,整體準(zhǔn)確率為97.75 %。實(shí)驗(yàn)結(jié)果表明基于改進(jìn)的多級(jí)閾值跌倒檢測(cè)算法誤差較小,準(zhǔn)確率較高。
本文設(shè)計(jì)的跌倒檢測(cè)系統(tǒng)基于改進(jìn)的多級(jí)閾值跌倒檢測(cè)算法,采用了MEMS傳感器MPU6050、ATGM332D定位模塊和SIM900A采集和傳輸數(shù)據(jù),通過歐拉角旋轉(zhuǎn)矩陣,利用加速度數(shù)據(jù)補(bǔ)償陀螺儀漂移誤差,計(jì)算出更準(zhǔn)確的姿態(tài)角, 有效提高了跌倒檢測(cè)的準(zhǔn)確率和系統(tǒng)的可靠性。ATGM332D定位模塊實(shí)時(shí)將定位數(shù)據(jù)傳輸?shù)皆茢?shù)據(jù)庫,微信小程序?qū)崿F(xiàn)了實(shí)時(shí)查看被監(jiān)護(hù)人的位置信息和狀態(tài)信息的功能,若檢測(cè)到跌倒時(shí),能及時(shí)短信報(bào)警,便于被監(jiān)護(hù)人得到及時(shí)救助。實(shí)驗(yàn)結(jié)果表明:本系統(tǒng)報(bào)警準(zhǔn)確率97.75 %,可靠性高,系統(tǒng)穩(wěn)定,隱私保護(hù)性好,穿戴便捷,基本滿足對(duì)老年人進(jìn)行實(shí)時(shí)監(jiān)測(cè)的需求,達(dá)到預(yù)期效果。