胡輝翼 韓燕國(guó) 荊琳 王威
摘要:如今GPS等導(dǎo)航定位服務(wù)已發(fā)展相當(dāng)成熟,但在室內(nèi)由于信號(hào)被遮擋,往往無(wú)法得到較準(zhǔn)確的定位。同時(shí)隨著我國(guó)老齡人口數(shù)量逐年增加,難免有老年人在外意外摔倒,若不能得到及時(shí)救治極可能使情況惡化。因此本文提出并設(shè)計(jì)一款基于Android實(shí)現(xiàn)摔倒識(shí)別與自主定位的手機(jī)APP,通過(guò)讀取并處理加速度計(jì)等傳感器的數(shù)據(jù),大致判斷手機(jī)持有者是否摔倒,在地圖上確定出運(yùn)動(dòng)軌跡和當(dāng)前位置,并根據(jù)情況通知家人以避免危險(xiǎn)。
關(guān)鍵詞:定位導(dǎo)航;加速度傳感器;摔倒辨識(shí)
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2018)05-0119-03
1 引言
隨著科學(xué)技術(shù)的不斷發(fā)展,國(guó)民經(jīng)濟(jì)水平的不斷增加,智能手機(jī)的普及率越來(lái)越高。由于手機(jī)硬件的性能大幅提升,軟件功能越來(lái)越豐富,當(dāng)代的智能手機(jī)已不只是一個(gè)簡(jiǎn)單的通訊工具,它改變了人們的生活方式,成為了日常生活的必需品。在這樣的大背景下,2007年由谷歌公司推出的Android手機(jī)系統(tǒng),憑借自身方便、易用的優(yōu)勢(shì),成為了最受歡迎的手機(jī)操作系統(tǒng)。智能手機(jī)基于GPS(Global Positioning System)的室外導(dǎo)航功能,是人們最常使用的功能之一,應(yīng)用廣泛。然而,在室內(nèi)的環(huán)境下,由于建筑物或者其他復(fù)雜環(huán)境的干擾,GPS信號(hào)微弱,無(wú)法有效導(dǎo)航。與此同時(shí),針對(duì)老年人用戶群體,新聞中常有報(bào)道老年人摔倒,路人不敢上前幫扶,而其家人并不知情,摔倒老人無(wú)法得到及時(shí)救助,以至于面臨危險(xiǎn)。該文針對(duì)以上問(wèn)題,本文提出并設(shè)計(jì)一款能夠?qū)崿F(xiàn)摔倒辨識(shí)與室內(nèi)定位的Android手機(jī)APP,通過(guò)實(shí)時(shí)定位,在地圖上繪制出運(yùn)動(dòng)軌跡,同時(shí)讀取加速度計(jì)等傳感器的數(shù)據(jù),通過(guò)算法判斷運(yùn)動(dòng)情況,對(duì)用戶的摔倒進(jìn)行大致的判斷,并根據(jù)情況及時(shí)通知家人。
2 關(guān)鍵技術(shù)
2.1 Android操作系統(tǒng)簡(jiǎn)介
Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要應(yīng)用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦。2007年,Google與84家硬件制造商、軟件開(kāi)發(fā)商及電信營(yíng)運(yùn)商組建開(kāi)放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。2008年HTC在美國(guó)發(fā)布了第一部搭載Android的智能手機(jī)。據(jù)有關(guān)數(shù)據(jù)統(tǒng)計(jì),截止2016年,Android操作系統(tǒng)在中國(guó)的市場(chǎng)占有率超過(guò)了80%。
2.2 傳感器
Android系統(tǒng)提供了對(duì)多種傳感器的支持,如加速度傳感器、重力傳感器等。
在Android系統(tǒng)中,用一個(gè)標(biāo)準(zhǔn)的三維坐標(biāo)系來(lái)表達(dá)數(shù)據(jù)值,對(duì)于大多數(shù)傳感器來(lái)說(shuō),當(dāng)設(shè)備放置在默認(rèn)的方向時(shí),即手機(jī)正面豎直放置,坐標(biāo)系和設(shè)備的屏幕相關(guān)。在這款A(yù)PP中,主要用到了加速的傳感器。手機(jī)加速度傳感器的坐標(biāo)軸如下:
x方向就是手機(jī)的水平方向,右為正;
y方向就是手機(jī)的水平垂直方向,前為正;
z方向就是手機(jī)的空間垂直方向,天空的方向?yàn)檎厍虻姆较驗(yàn)樨?fù)(圖1)。
3 系統(tǒng)設(shè)計(jì)與功能實(shí)現(xiàn)
3.1 用戶界面
主界面布局包含兩個(gè)按鈕控件,使用switch通過(guò)不同的id 獲取到按鈕的信息:
(1)按鈕一,btn_sms,設(shè)置收信人。輸入指定對(duì)象的手機(jī)號(hào)碼,在軟件識(shí)別到用戶發(fā)生了摔倒動(dòng)作后,實(shí)現(xiàn)自動(dòng)給指定的手機(jī)號(hào)碼發(fā)送求助短信。同時(shí)建立緩存來(lái)保存手機(jī)號(hào)碼,方便第一次輸入手機(jī)號(hào)碼之后,再次使用軟件時(shí),上次設(shè)定的手機(jī)號(hào)碼為默認(rèn)的號(hào)碼,可以跳過(guò)設(shè)置號(hào)碼步驟,直接進(jìn)入地圖環(huán)節(jié)。如果需要更換指定聯(lián)系人的聯(lián)系方式,也可以重新按下該按鈕,設(shè)置新的手機(jī)號(hào)碼。
(2)按鈕二,btn_usemap,打開(kāi)地圖。點(diǎn)擊按鈕打開(kāi)地圖,為了提高精度,此處使用高德地圖提供的開(kāi)放API 接口。高德Web服務(wù)API向開(kāi)發(fā)者提供HTTP接口,開(kāi)發(fā)者可通過(guò)這些接口使用各類型的地理數(shù)據(jù)服務(wù),返回結(jié)果支持JSON和XML格式。Web服務(wù)API對(duì)所有用戶開(kāi)放。使用本組服務(wù)之前,需要申請(qǐng)應(yīng)用Key。不同類型用戶可獲取不同的數(shù)據(jù)訪問(wèn)能力。
3.2 調(diào)用高德地圖
使用高德地圖提供的開(kāi)放API接口,將PackgeName導(dǎo)入到API中,添加相應(yīng)的so庫(kù),導(dǎo)入依賴調(diào)用高德地圖:
android:value="300ba53ad8fb0139a2f19bb14ca42675"> 配置service 標(biāo)簽 獲取API 權(quán)限,對(duì)地圖定位進(jìn)行操作: 3.3 定位與軌跡繪制 (1)建立公共類Util類,獲取定位并將定位信息返回:調(diào)用AMap Location接口,獲取到定位的經(jīng)緯度和街道地址信息等,將獲取的信息放入Buffer緩沖中,提高讀取效率。之后使用靜態(tài)方法public synchronized static LatLng getLatlng(AMapLocation aMapLocation) 來(lái)返回需要的信息。 (2) 初始化定位信息,使用手機(jī)的高精度定位模式,在條件允許的情況下優(yōu)先使用高精度定位方式:使用Location 方法獲取到定位需要的相關(guān)屬性的初始化,進(jìn)行配置。使用時(shí)獲取手機(jī)的GPS定位權(quán)限,數(shù)據(jù)權(quán)限以及藍(lán)牙等定位權(quán)限,用戶在使用中會(huì)彈出相應(yīng)的權(quán)限獲取窗口,獲得同意后APK 才可以進(jìn)行使用和定位。用戶在打開(kāi)地圖后點(diǎn)擊定位藍(lán)點(diǎn),就可以將界面獲取到手機(jī)所在的位置,手指伸縮來(lái)放大地圖。 a、設(shè)置監(jiān)聽(tīng),不斷地獲取到手機(jī)所在的定位信息,并更新定位點(diǎn)
mLocationClient.setLocationListener(this);
b、 配置高精確的定位模式,優(yōu)先使用最高精度的定位,但是耗電量會(huì)有增加。
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Battery_Saving);
c、獲取到GPS定位返回的地位地址等定位信息。
mLocationOption.setNeedAddress(true);
mLocationOption.setLocationCacheEnable(false);
d、設(shè)置定位刷新時(shí)間為3分鐘 即使每三分鐘定位一次
mLocationOption.setInterval(3*60*1000);
(3)軌跡繪制:
通過(guò)Util的getLatlng方法獲取到Util類返回的經(jīng)緯度信息,令第一次定位點(diǎn)為newLog,第二次刷新后的定位點(diǎn)為OldLog, 將兩次的經(jīng)緯度信息分別傳入的LatLng中進(jìn)行坐標(biāo)的判斷:
如果坐標(biāo)(經(jīng)緯度)在-180.0D <= var3 && var3 < 180.0D則為正常的維度信息,可以使用,反之若var1 < -90.0D || var1 > 90.0D則為無(wú)效坐標(biāo),對(duì)獲取到的坐標(biāo)信息重新進(jìn)行Math.max(-90.0D, Math.min(90.0D, var1));運(yùn)算獲取最大的坐標(biāo)信息并重新賦值后傳出作為有效的坐標(biāo)點(diǎn),獲取前后兩次坐標(biāo)分別進(jìn)行判斷后,通過(guò)AMap中的addPolyline方法在兩個(gè)點(diǎn)之間畫(huà)出平滑的折線。同時(shí)折線的寬度,顏色等屬性均可以通過(guò)該方法進(jìn)行設(shè)置,此外通過(guò)設(shè)置定位的刷新時(shí)間來(lái)使折現(xiàn)更加的流暢舒服。
3.4 摔倒辨識(shí)
通過(guò)讀取手機(jī)加速度的數(shù)據(jù)來(lái)判斷持有者的狀態(tài),但是通過(guò)手機(jī)的三維加速度坐標(biāo)系只能做出大致判斷。如果需要更加精確的判斷還需要通過(guò)佩戴相應(yīng)的數(shù)據(jù)收集器來(lái)采集人體變化如:心跳,呼吸等等。
假設(shè)z軸方向?yàn)橹亓铀俣鹊姆较?,平均重力加速?.8m/s^2,而人體的擺動(dòng)會(huì)讓豎直向下的方向獲取一個(gè)加速度值,人體在正常的浮動(dòng)下,取g=10為各地的重力加速度初值,若x||y||z>10則某一軸為重力豎直方向。
由公式a=(v2-v1)/t知:
a=dv/dt(在a-->0)時(shí),人體運(yùn)動(dòng)時(shí)在水平方向的vx=v0,豎直方向vy=0;當(dāng)人體突然摔倒,水平方向獲取一個(gè)加速度,豎直方向也獲取到一個(gè)加速度。因此在水平方向上加速度a=v-v0/t,因此手機(jī)的加速度傳感器會(huì)獲取到水平方向的加速度變化并增大,同理在豎直方向上a也會(huì)瞬間增大再減少到10,于是獲取到手機(jī)加速度傳感器的參數(shù)變化并打印后,使用MATLAB對(duì)數(shù)據(jù)進(jìn)行分析,取相對(duì)穩(wěn)定的數(shù)值,并取整后作為加速度參數(shù)的判斷條件。
x,y,z三軸在不同的情況下,加速度所在的軸不一樣但是參數(shù)變化是相同的,三個(gè)軸的參數(shù)設(shè)置為:
手機(jī)橫放,屏幕朝向周圍:檢測(cè)到z>4&&y;>3之后,x>18;
水平放置:x>3&&y;>4之后,z>18;
豎直放置:x>3&&z;>4之后,y>18。
4 APP的功能測(cè)試
在摔倒識(shí)別與自主定位手機(jī)APP的測(cè)試方面,選擇對(duì)北京林業(yè)大學(xué)工學(xué)院部分學(xué)生進(jìn)行試用,來(lái)檢測(cè)實(shí)用性,技術(shù)內(nèi)容和測(cè)試結(jié)果見(jiàn)表1。
5 結(jié)語(yǔ)
本文首先對(duì)目前導(dǎo)航服務(wù)技術(shù)的背景及約束進(jìn)行了闡述,簡(jiǎn)要介紹了Android操作系統(tǒng),并對(duì)相關(guān)傳感器進(jìn)行了介紹。在APP的系統(tǒng)設(shè)計(jì)部分,對(duì)各項(xiàng)功能進(jìn)行了模塊的劃分,同時(shí)對(duì)用戶界面設(shè)計(jì)、地圖調(diào)用、傳感器的利用、運(yùn)動(dòng)軌跡繪制、摔倒辨識(shí)的算法實(shí)現(xiàn)做了詳細(xì)的說(shuō)明。從本文的介紹的得知,基于Android的摔倒識(shí)別與自主定位系統(tǒng)在室內(nèi)GPS信號(hào)受到阻擋而削弱的環(huán)境下,能實(shí)現(xiàn)定位以及軌跡繪制,并提供服務(wù)用戶的導(dǎo)航服務(wù);同時(shí)在有意外事故發(fā)生用戶摔倒時(shí),能提供相應(yīng)的檢測(cè)與辨識(shí),給出能夠發(fā)送定位短信這樣的的解決方案,具有良好的市場(chǎng)前景。
參考文獻(xiàn)
[1]朱建佳.基于Android系統(tǒng)的室內(nèi)導(dǎo)航系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2014.
[2]王立劍.基于Android平臺(tái)的手機(jī)室內(nèi)定位及導(dǎo)航的設(shè)計(jì)與實(shí)現(xiàn)[D].山東:中國(guó)海洋大學(xué),2013.
[3]趙康.基于Android平臺(tái)的室內(nèi)三維導(dǎo)航系統(tǒng)的研究與實(shí)現(xiàn)[A].山西:山西省地圖院,2016.