面向獨(dú)居老人的智能居家監(jiān)護(hù)系統(tǒng)
1. 引言
第七次人口普查公報(bào)[1]結(jié)果顯示,全國人口中65歲及以上人口為190,635,280人,占總?cè)丝跀?shù)的13.50%,其中65歲以上的獨(dú)居老人人口總數(shù)為1988萬人,占65歲以上老人總數(shù)的10.43%。65歲以上老年人的前4大死亡原因分別是呼吸系統(tǒng)疾病、循環(huán)系統(tǒng)疾病、腫瘤和意外傷害[2],而獨(dú)居老人在面對上述各種疾病或意外傷害時(shí)具有更高的死亡率[3],這說明獨(dú)居老人具有更大的健康風(fēng)險(xiǎn)。同時(shí)由于老年人生理機(jī)能變化,活動(dòng)量減少,行動(dòng)不便,缺乏照顧,他們發(fā)生意外傷害的可能性隨年齡的增長而不斷上升,研究表明意外跌倒是我國老年人意外死亡的第一因素[4],當(dāng)獨(dú)居老人發(fā)生意外跌倒時(shí),若無法及時(shí)得到救助,可能危及生命,導(dǎo)致悲劇的發(fā)生。
本文設(shè)計(jì)的面向獨(dú)居老人的智能居家監(jiān)護(hù)系統(tǒng)可以通過語音識別聯(lián)動(dòng)服務(wù)機(jī)器人實(shí)現(xiàn)對老人的需求做出相應(yīng)反應(yīng);還能采用基于毫米波雷達(dá)點(diǎn)云數(shù)據(jù)的深度學(xué)習(xí)方式檢測老人的姿態(tài),并聯(lián)動(dòng)服務(wù)機(jī)器人;在出現(xiàn)老人摔倒或呼救等危險(xiǎn)情況時(shí),系統(tǒng)會及時(shí)通過前端交互界面給家人發(fā)送警報(bào),同時(shí)機(jī)器人能夠自動(dòng)導(dǎo)航至老人所在房間,提供應(yīng)急服務(wù)。該系統(tǒng)實(shí)現(xiàn)具體包含了五個(gè)功能模塊:云端服務(wù)器模塊、語音識別模塊、姿態(tài)檢測模塊、機(jī)器人聯(lián)動(dòng)服務(wù)模塊、前端交互模塊。
1.1. 研究現(xiàn)狀
隨著第四次科技革命推動(dòng)的物聯(lián)網(wǎng)、信息技術(shù)、大數(shù)據(jù)和云計(jì)算等技術(shù)的發(fā)展,養(yǎng)老服務(wù)水平也被極大地提升,部分智能家居技術(shù)也被用于養(yǎng)老服務(wù)中[5]。基于養(yǎng)老的智能家居服務(wù)用于滿足老年人安全、獨(dú)立、健康和援助等需求,在照顧老年人方面發(fā)揮著重要作用[6]。當(dāng)前的智能家居的適老化研究主要集中在對老人身體健康指標(biāo)的監(jiān)測和老人異常狀態(tài)檢測,例如突然跌倒等。其中,在健康監(jiān)測方面有不少研究將智能手環(huán)與智能家居系統(tǒng)結(jié)合,實(shí)現(xiàn)對老年人的健康檢測[7],通過讓老年人佩戴包含加速度計(jì)、陀螺儀、脈搏傳感器和體溫傳感器的智能手環(huán),采集這些數(shù)據(jù)送往中控平臺進(jìn)行分析,以獲得老年人的體溫和心跳頻率的健康狀態(tài),同時(shí)通過分析加速度計(jì)和陀螺儀的時(shí)序數(shù)據(jù),推斷老年人的運(yùn)動(dòng)姿態(tài),判斷其是否有摔倒的跡象。同時(shí)國內(nèi)外也有利用視覺檢測技術(shù)結(jié)合深度學(xué)習(xí)來檢測老人是否發(fā)生跌倒[8] [9]。但是調(diào)查顯示,穿戴類設(shè)備并不適合給老年人使用[10],一是老年人容易遺忘佩戴設(shè)備;二是穿戴類設(shè)備容易丟失?;谝曈X檢測的視頻監(jiān)控能夠完成非接觸式的摔倒檢測任務(wù),但近幾年因?yàn)榧彝ゾW(wǎng)絡(luò)攝像頭遭到入侵而造成隱私泄露的事件層出不窮,大部分老年群體也并不希望時(shí)刻有攝像頭監(jiān)控自己。對于老人的緊急求助需求,目前的主流產(chǎn)品均為一鍵呼叫器,求助按鈕或隨身佩戴,或固定在房間某處,而固定在房間某處的呼叫器更是不便于甚至無法為突發(fā)危險(xiǎn)情況的老人提供緊急求助服務(wù)。調(diào)研市場發(fā)現(xiàn),目前面向老人的監(jiān)護(hù)產(chǎn)品還存在著功能單一、不成系統(tǒng),只“監(jiān)”無“護(hù)”,即無法為發(fā)生危險(xiǎn)情況的獨(dú)居老人及時(shí)提供應(yīng)急服務(wù)的問題。從關(guān)心獨(dú)居老人的健康狀況出發(fā),針對上述的不足,本文設(shè)計(jì)實(shí)現(xiàn)了一個(gè)可以實(shí)時(shí)監(jiān)測突發(fā)危險(xiǎn)情況,且能根據(jù)需求提供便利服務(wù)的面向獨(dú)居老人的智能居家監(jiān)護(hù)系統(tǒng)。
1.2. 本系統(tǒng)特色
本文面向獨(dú)居老人的智能居家監(jiān)護(hù)系統(tǒng)的特色有以下三點(diǎn):
第一,我們采用毫米波雷達(dá)實(shí)現(xiàn)老人的姿態(tài)檢測,克服了主流摔倒檢測產(chǎn)品的局限性?;诤撩撞ɡ走_(dá)的姿態(tài)檢測是非接觸式的檢測方式,克服了穿戴類設(shè)備的不足;同時(shí)也解決了基于視覺的視頻監(jiān)控的痛點(diǎn),既防止隱私泄露,也滿足了老人不愿意被監(jiān)視的心理需求。
第二,我們使用語音識別的方式解決獨(dú)居老人的求助需求。只要在房間內(nèi)布置一個(gè)語音識別模塊,老人在該房間內(nèi)的求助語音都能夠被接收并發(fā)送給家人,相比按鈕求助類產(chǎn)品更加方便。
第三,我們將姿態(tài)檢測功能和語音識別功能組成系統(tǒng),并在系統(tǒng)內(nèi)添加了機(jī)器人聯(lián)動(dòng)服務(wù)模塊。服務(wù)機(jī)器人能夠根據(jù)姿態(tài)檢測模塊和語音識別模塊檢測到的信息提供相應(yīng)的服務(wù),解決了只“監(jiān)”無“護(hù)”的問題。
2. 系統(tǒng)總體方案設(shè)計(jì)
本文基于云–邊–端架構(gòu),實(shí)現(xiàn)了面向獨(dú)居老人的智能居家監(jiān)護(hù)系統(tǒng),其主要功能有云端服務(wù)器、感知控制和應(yīng)用服務(wù),總體功能架構(gòu)如圖1所示。
Figure 1. Overall functional architecture diagram of the system
圖1. 系統(tǒng)總體功能架構(gòu)圖
云端服務(wù)器為系統(tǒng)內(nèi)部各模塊提供通信服務(wù)。
感知控制方面,語音識別模塊主要對老人的語音需求進(jìn)行感知,采用R329開發(fā)板[11]作為開發(fā)平臺來實(shí)現(xiàn)。該模塊可以識別到老人的關(guān)鍵詞需求,比如喝水、救命等,并向云端服務(wù)器下的相應(yīng)話題發(fā)布對應(yīng)的需求信息。
姿態(tài)檢測模塊主要負(fù)責(zé)以非接觸式檢測識別老人在房間內(nèi)的姿態(tài),采用毫米波雷達(dá)以及基于RK3399芯片的EAIDK610開發(fā)平臺[12]進(jìn)行實(shí)現(xiàn)。該模塊可以識別房間內(nèi)老人是否摔跤以及一些常見姿態(tài),并向云端服務(wù)器下的相應(yīng)話題發(fā)布對應(yīng)的姿態(tài)信息。
機(jī)器人聯(lián)動(dòng)服務(wù)模塊主要負(fù)責(zé)在老人有相應(yīng)需求或者有危險(xiǎn)時(shí)能夠及時(shí)提供幫助或發(fā)送警報(bào)。通過使用EAIDK610開發(fā)平臺控制機(jī)器人,實(shí)現(xiàn)機(jī)器人聯(lián)動(dòng)服務(wù)模塊。它可以訂閱語音識別模塊和姿態(tài)檢測模塊的話題,從云端服務(wù)器接收到對應(yīng)話題的信息,然后控制服務(wù)機(jī)器人做出對應(yīng)行動(dòng)。
應(yīng)用服務(wù)方面,前端交互模塊由微信小程序?qū)崿F(xiàn),用戶可以進(jìn)入房間頁面查看各房間狀況、語音需求以及危險(xiǎn)情況報(bào)警等,使家人能夠遠(yuǎn)程關(guān)注老人在對應(yīng)房間的狀態(tài)信息。
3. 語音識別模塊
語音識別模塊使用到的硬件設(shè)備為采用ARM v8架構(gòu)的R329開發(fā)板。它基于全志R329芯片設(shè)計(jì),搭載雙核ARM CortexTM-A53,同時(shí)內(nèi)置高性能的周易AIPU處理器,使得它支持智能語音和視頻圖像處理,也能夠直接跑一些人臉識別模型、語音識別模型等。在本模塊中,R329主要用于部署語音識別模型實(shí)現(xiàn)關(guān)鍵詞識別功能,能夠在識別老人關(guān)鍵詞需求后發(fā)送相應(yīng)需求信息給云端服務(wù)器的對應(yīng)話題下。
考慮了多種老人在家可能提出的需求,并借助關(guān)鍵詞識別功能實(shí)現(xiàn)了對這些需求的幾種不同關(guān)鍵詞的識別,語音識別模塊在識別到關(guān)鍵詞后向云端服務(wù)器下的相應(yīng)話題發(fā)布該關(guān)鍵詞對應(yīng)的需求信息。比如,當(dāng)老人在房間1發(fā)出“喝水”“送水”“渴了”等需求時(shí),語音識別模塊會識別這三個(gè)關(guān)鍵詞,并向服務(wù)器下的“room1_sr”話題發(fā)布信息“drink”;當(dāng)老人在房間2發(fā)出“救命”“有人嗎”等需求時(shí),語音識別模塊會識別這兩個(gè)關(guān)鍵詞,并向服務(wù)器下的“room2_sr”話題發(fā)布信息“help”。
選取到適合居家助老服務(wù)環(huán)境下的模型參數(shù),采用了不同尺寸的語言模型和不同的模型輸入長度,并對其識別錯(cuò)誤率和延遲時(shí)間進(jìn)行比較,得出最后的模型參數(shù)選擇。
1) 模型輸入長度選擇。取聲學(xué)模型am_7332,語言模型lmS,語音聲音在50 dB左右,我們修改模型輸入長度分別為128,192,256進(jìn)行實(shí)驗(yàn),得到結(jié)果如表1所示。
Table 1. Average error rate and delay time under different model input lengths
表1. 不同模型輸入長度下的平均錯(cuò)誤率和延遲時(shí)間
通過分析表1結(jié)果,當(dāng)模型輸入長度選取192時(shí),識別率和長度為256時(shí)一樣高,同時(shí)相比之下也具有更及時(shí)的響應(yīng)。因此將模型輸入長度設(shè)置為192。
2) 模型尺寸選擇。取聲學(xué)模型am_7332,語音聲音在50 dB左右,模型輸入長度為192,我們修改語言模型尺寸進(jìn)行實(shí)驗(yàn),得到結(jié)果如表2所示。
通過分析表2結(jié)果,三種尺寸識別率相差不大。因此,我們選擇模型lmS部署到開發(fā)板上,這樣可以占用最少的內(nèi)存,同時(shí)該模型0.862的識別率也較高,足夠滿足識別語音的需求。
Table 2. Average error rate and delay time for different language model sizes
表2. 不同語言模型尺寸下的平均錯(cuò)誤率和延遲時(shí)間
3) 為了使該模塊根據(jù)關(guān)鍵詞識別概率向服務(wù)器發(fā)送對應(yīng)消息,需要設(shè)定一個(gè)概率限值來標(biāo)識確實(shí)成功識別到關(guān)鍵詞。取聲學(xué)模型am_7332,語言模型lmS,模型輸入長度為192,用不同分貝音量,在不同距離下進(jìn)行實(shí)驗(yàn),得到結(jié)果如表3所示。
Table 3. Recognition probabilities at different decibel volumes and distances
表3. 不同分貝音量和不同距離下的識別概率
|
||
由表3中數(shù)據(jù)可見,當(dāng)聲音較小時(shí)識別概率會大幅降低,當(dāng)距離較遠(yuǎn)時(shí)模塊也能采取到關(guān)鍵詞但識別概率都低于0.01。因此,考慮到老人遇到緊急情況身體較虛弱聲音不大,同時(shí)排除房間外的其他聲音干擾,我們將概率限值設(shè)為0.1。當(dāng)模塊的關(guān)鍵詞識別概率高于0.1,語音識別模塊就會向服務(wù)器發(fā)送相應(yīng)信息。
4. 姿態(tài)檢測模塊
姿態(tài)檢測模塊所需要使用的硬件設(shè)備主要是TI公司型號為IWR6843ISK的毫米波雷達(dá)和采用ARM架構(gòu)的RK3399芯片人工智能開發(fā)平臺EAIDK610開發(fā)板。在本模塊中EAIDK610用于部署姿態(tài)檢測模型,完成從毫米波雷達(dá)獲取數(shù)據(jù)、數(shù)據(jù)預(yù)處理,推理得出姿態(tài)檢測結(jié)果并通過云端服務(wù)器將報(bào)警信息發(fā)送到用戶客戶端的功能。
Figure 2. Overall architecture of attitude detection module
圖2. 姿態(tài)檢測模塊總體架構(gòu)
姿態(tài)檢測模塊的總體結(jié)構(gòu)如圖2所示,毫米波雷達(dá)通過發(fā)射一定頻率的電磁波并利用多普勒效應(yīng)檢測區(qū)域內(nèi)物體的運(yùn)動(dòng)趨勢,即當(dāng)范圍內(nèi)的物體靠近雷達(dá)時(shí)會收到頻率更高的回波,遠(yuǎn)離時(shí)會受到頻率更底的回波,以此計(jì)算物體與毫米波雷達(dá)之間的位置關(guān)系及物體的速度,這類計(jì)算在硬件內(nèi)部即可完成,生成四元組數(shù)據(jù)。EAIDK610開發(fā)板接收毫米波雷達(dá)所發(fā)布的話題獲得該四元組,并通過數(shù)據(jù)預(yù)處理之后獲得固定大小的網(wǎng)絡(luò)輸入后送入輕量CNN分類網(wǎng)絡(luò)進(jìn)行推理。推理結(jié)果發(fā)送至云端服務(wù)器,并通過服務(wù)器將該結(jié)果發(fā)送至應(yīng)用服務(wù)層的微信小程序,以實(shí)現(xiàn)提示、報(bào)警功能。
4.1. 數(shù)據(jù)集的構(gòu)建與數(shù)據(jù)預(yù)處理
毫米波雷達(dá)被設(shè)定為只檢測并發(fā)送范圍內(nèi)活動(dòng)物體的四元組信息,這使得在開發(fā)板訂閱毫米波雷達(dá)所發(fā)送的四元組數(shù)據(jù)并推理的時(shí)候會出現(xiàn)數(shù)據(jù)截?cái)嗟目赡???紤]到人體姿態(tài)活動(dòng)是一種具有時(shí)序性之的一系列連續(xù)活動(dòng),在網(wǎng)絡(luò)推理的過程中需要利用到序列的信息,并且神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)的輸入需要固定維度大小,因此在訓(xùn)練網(wǎng)絡(luò)階段和推理預(yù)處理階段都設(shè)計(jì)了一種等待隊(duì)列如下圖3所示,保證在收到固定大小為的N = 90個(gè)四元組數(shù)據(jù)點(diǎn)之后才打包成[90, 4]的矩陣,作為網(wǎng)絡(luò)的輸入送至神經(jīng)網(wǎng)絡(luò)中進(jìn)行推理,提高了網(wǎng)絡(luò)推理的穩(wěn)定性與推理結(jié)果的準(zhǔn)確性。
Figure 3. Waiting queue
圖3. 等待隊(duì)列
4.2. 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)與訓(xùn)練
神經(jīng)網(wǎng)絡(luò)的具體結(jié)構(gòu)如下圖4所示。神經(jīng)網(wǎng)絡(luò)主干由7個(gè)部分構(gòu)成,四元組點(diǎn)云數(shù)據(jù)經(jīng)過等待隊(duì)列打包之后作為神經(jīng)網(wǎng)絡(luò)的輸入傳入至網(wǎng)絡(luò)之中,以此經(jīng)過批標(biāo)準(zhǔn)化、卷積層、池化層、Dropout層、Flatten層和全連接層后輸出最終的四分類結(jié)果。
Figure 4. Neural network structure
圖4. 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
實(shí)驗(yàn)所使用的硬件配置為:AMD Ryzen 9 5900HS,主頻3.3 GHz,8核16線程;加速顯卡NVIDIA GeForce RTX3050Ti 8 GB顯存。使用后端為TensorFlow-GPU v2.11.0的Keras v2.11.0作為訓(xùn)練模型的深度學(xué)習(xí)庫。訓(xùn)練使用的數(shù)據(jù)集總數(shù)為24,404個(gè),4個(gè)不同的標(biāo)簽各占6101個(gè)。訓(xùn)練開始前,先用shuffle函數(shù)對從ROSBAG中處理得到的數(shù)據(jù)集進(jìn)行隨機(jī)打亂,然后使用train_test_split函數(shù)對數(shù)據(jù)集切分,數(shù)據(jù)集總數(shù)的80%作為訓(xùn)練集,20%作為測試集。在訓(xùn)練過程中,將訓(xùn)練集的20%作為驗(yàn)證集以評估模型的訓(xùn)練效果。訓(xùn)練中設(shè)置學(xué)習(xí)率為0.0005,epochs設(shè)定為40,batch_size設(shè)定為128。模型訓(xùn)練過程中的損失函數(shù)如圖5所示,在驗(yàn)證集上的loss為0.00897,準(zhǔn)確率達(dá)到99.63%。
Figure 5. Loss function diagram
圖5. 損失函數(shù)圖
4.3. 神經(jīng)網(wǎng)絡(luò)的測試
經(jīng)過訓(xùn)練階段的拆分,得到的測試集分布為falling、sitting、standing、walking的標(biāo)簽各有1194、1286、1189、1212個(gè)。將測試數(shù)據(jù)集和標(biāo)簽輸入到訓(xùn)練好的網(wǎng)絡(luò)之中進(jìn)行測試,得到預(yù)測結(jié)果如下圖6所示。訓(xùn)練得到的神經(jīng)網(wǎng)絡(luò)在測試集上的總體準(zhǔn)確率達(dá)到99.63%,其錯(cuò)報(bào)的幾率不足0.5%,能夠滿足對身處臥室、浴室或客廳等各種場所的老人進(jìn)行姿態(tài)檢測的需要。
Figure 6. Test set prediction results
圖6. 測試集預(yù)測結(jié)果
為了試驗(yàn)姿態(tài)檢測模塊識別準(zhǔn)確率,還設(shè)置了七輪測試:測試者在每一輪的測試中以隨機(jī)順序做站、坐、走、摔倒四個(gè)動(dòng)作,并記錄下當(dāng)時(shí)的識別結(jié)果,如表4所示。由表中數(shù)據(jù)可以看出,姿態(tài)檢測模塊的識別率較高,只發(fā)生了一次誤判,該次誤判可能是因?yàn)闇y試者測試時(shí)動(dòng)作之間銜接過快。
Table 4. Recognition results of testers’ actions in different test wheels
表4. 不同測試輪中對測試者動(dòng)作的識別結(jié)果
綜上所述,本文設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)對于基于毫米波雷達(dá)點(diǎn)云數(shù)據(jù)的人體活動(dòng)識別有較高的準(zhǔn)確率,可以完成對人體姿態(tài)進(jìn)行檢測的任務(wù),并與其他模塊結(jié)合進(jìn)行系統(tǒng)的測試實(shí)驗(yàn)。
5. 機(jī)器人聯(lián)動(dòng)服務(wù)模塊
機(jī)器人服務(wù)功能主要分為兩類。一類為語音服務(wù),即機(jī)器人通過語音識別模塊響應(yīng)老人的語音指令,目前實(shí)現(xiàn)了機(jī)器人送水到老人所在房間、老人不需要機(jī)器人后命令其返回充電座兩個(gè)功能用于展示。一類為老人異常應(yīng)急服務(wù),即在語音識別模塊或姿態(tài)檢測模塊識別到老人出現(xiàn)異常狀況時(shí),能夠自動(dòng)導(dǎo)航至相應(yīng)房間,送來急救藥物、拍攝現(xiàn)場照片并上傳至服務(wù)器,使家人能通過小程序及時(shí)了解老人狀態(tài)并采取緊急措施。
EAIDK610微處理器平臺主要負(fù)責(zé)控制機(jī)器人的邏輯行為,機(jī)器人的功能建立在導(dǎo)航的基礎(chǔ)上,導(dǎo)航需要地圖,因此首先需要在家中通過激光雷達(dá)掃描建立平面地圖。成熟的建圖方法眾多,根據(jù)任務(wù)場景選擇了在小場景下建圖算力消耗較少且地圖精度較高的Gmapping算法。選擇Navigation Stack作為導(dǎo)航框架,該框架由多個(gè)導(dǎo)航組件構(gòu)成,其中核心組件map_server用于加載建圖算法創(chuàng)建的地圖;amcl算法估計(jì)機(jī)器人在地圖中的位姿;move_base用于路徑規(guī)劃和控制機(jī)器人的行動(dòng),其中包括了全局路徑規(guī)劃器(A*算法)和局部軌跡規(guī)劃器(TEB算法)。這些組件共同工作,令機(jī)器人能夠在復(fù)雜環(huán)境中實(shí)現(xiàn)自主導(dǎo)航。
服務(wù)機(jī)器人的部署分兩步,一是創(chuàng)建家里的平面地圖,二是手動(dòng)標(biāo)記各個(gè)房間的導(dǎo)航目標(biāo)點(diǎn)以及機(jī)器人的充電座。首先開啟激光雷達(dá)和Gmapping節(jié)點(diǎn),遙控機(jī)器人在家中各個(gè)房間探索,探索完畢后保存地圖。然后開啟編寫好的房間標(biāo)記節(jié)點(diǎn),通過可視化工具RVIZ依次標(biāo)記各個(gè)房間的目標(biāo)點(diǎn),這些目標(biāo)點(diǎn)會保存至文檔中,供后續(xù)聯(lián)動(dòng)服務(wù)使用。至此,機(jī)器人的前期部署完成。
機(jī)器人的聯(lián)動(dòng)時(shí)序圖如圖7。
當(dāng)老人發(fā)出正常的語音指令,比如“送水”時(shí),語音識別模塊能夠識別出來并通過云端服務(wù)器轉(zhuǎn)發(fā)指令至機(jī)器人控制模塊,機(jī)器人控制模塊則會發(fā)布導(dǎo)航目標(biāo)點(diǎn),使服務(wù)機(jī)器人導(dǎo)航到老人所在的房間;當(dāng)老人希望機(jī)器人離開房間時(shí),說一聲“回去”,機(jī)器人就會收到相應(yīng)指令并導(dǎo)航至充電座;而當(dāng)老人發(fā)生意外,比如心臟不舒服,呼喊“救命”時(shí),或者是摔倒時(shí),語音識別模塊或姿態(tài)檢測模塊能夠及時(shí)檢測到異常并上報(bào)服務(wù)器,服務(wù)器將相關(guān)消息轉(zhuǎn)發(fā)至微信小程序和機(jī)器人控制模塊,此時(shí)機(jī)器人控制模塊收到求救指令并控制帶著急救藥物的機(jī)器人導(dǎo)航至指定房間,拍攝照片并上傳至服務(wù)器,家人可以及時(shí)通過小程序看到老人的情況,以便及時(shí)采取相應(yīng)措施幫助老人脫離險(xiǎn)境。
Figure 7. Sequence diagram of robot linkage service
圖7. 機(jī)器人聯(lián)動(dòng)服務(wù)時(shí)序圖
6. 云端服務(wù)器
采用MQTT (Message Queuing Telemetry Transport)協(xié)議作為系統(tǒng)內(nèi)部通信方式,同時(shí)把mqtt服務(wù)器和用于反向代理的nginx服務(wù)器都采用docker容器的方式部署在云服務(wù)器中。
mqtt服務(wù)器與各模塊通信如圖8。mqtt服務(wù)器與語音識別模塊、姿態(tài)檢測模塊、機(jī)器人聯(lián)動(dòng)服務(wù)模塊之間可以直接使用mqtt協(xié)議通信。
Figure 8. Schematic diagram of communication between mqtt server and various modules
圖8. mqtt服務(wù)器與各模塊通信示意
mqtt服務(wù)器與前端通信較為復(fù)雜。由于微信小程序必須使用wss (Secure WebSocket)協(xié)議保證通信安全,因此我們首先需要在mqtt服務(wù)器中將mqtt協(xié)議封裝在ws (WebSocket)協(xié)議中(配置mqtt overwebsocket功能),由域名經(jīng)過ssl認(rèn)證的反向代理服務(wù)器nginx將ws協(xié)議升級為wss協(xié)議,最終完成mqtt服務(wù)器與微信小程序的通信。
7. 前端交互模塊
前端交互模塊基于微信小程序?qū)崿F(xiàn)了創(chuàng)建/刪除房間、查看房間狀態(tài)、調(diào)整房間狀態(tài)、查看歷史記錄、查看現(xiàn)場等功能,如圖9所示。
Figure 9. Front end function display
圖9. 前端功能展示
8. 系統(tǒng)測試
在測試之前,需要先對兩個(gè)實(shí)驗(yàn)房間進(jìn)行部署,其中語音識別模塊在兩個(gè)房間都有部署,姿態(tài)檢測模塊只部署在房間1,機(jī)器人的充電基座(起始出發(fā)點(diǎn))設(shè)置在走廊,各模塊實(shí)驗(yàn)場景部署如圖10所示。
Figure 10. Experimental scene diagram
圖10. 實(shí)驗(yàn)場景圖
Figure 11. The robot arrives at Room 2 and delivers water to the target navigation point
圖11. 機(jī)器人到達(dá)房間2目標(biāo)導(dǎo)航點(diǎn)送水
1) 語音識別與機(jī)器人聯(lián)動(dòng)功能
進(jìn)行語音服務(wù)需求的測試,測試者坐在房間2說“喝水”,語音識別模塊識別到關(guān)鍵詞,并將對應(yīng)需求發(fā)到云端服務(wù)器的“room2_sr”話題下。機(jī)器人訂閱到信息后,導(dǎo)航至房間2為測試者送水。機(jī)器人到達(dá)目標(biāo)導(dǎo)航點(diǎn),并且小程序收到信息,如圖11所示。
進(jìn)行異常情況的語音需求測試,測試者在房間1呼喊“救命”,語音識別模塊識別到關(guān)鍵詞,并將對應(yīng)需求發(fā)到云端服務(wù)器的“room1_sr”話題下。機(jī)器人訂閱到信息后,就會導(dǎo)航到房間1為測試者送藥,并將目標(biāo)導(dǎo)航點(diǎn)處的照片通過云端服務(wù)器發(fā)送到小程序。在小程序中長按房間1卡片,點(diǎn)擊“查看現(xiàn)場”,可以看到現(xiàn)場照片,如圖12所示。
Figure 12. Testers shout “help”, robots deliver medicine and take photos on site
圖12. 測試者呼喊“救命”,機(jī)器人送藥以及現(xiàn)場拍照
2) 姿態(tài)檢測與機(jī)器人聯(lián)動(dòng)功能
主要測試姿態(tài)檢測與機(jī)器人聯(lián)動(dòng)的功能,測試方法為在實(shí)驗(yàn)場地部署毫米波雷達(dá)和載有姿態(tài)檢測模塊的EAIDK610開發(fā)板,測試者在實(shí)驗(yàn)場地做走、站、坐、摔倒四個(gè)動(dòng)作,觀察系統(tǒng)是否正確識別到姿態(tài)信息并將對應(yīng)信息發(fā)送到云端服務(wù)器,以及機(jī)器人是否及時(shí)、準(zhǔn)確地去到對應(yīng)房間的目標(biāo)導(dǎo)航點(diǎn)。
前期部署完成后,當(dāng)機(jī)器人訂閱到摔倒(“fall”)信息時(shí),機(jī)器人聯(lián)動(dòng)服務(wù)模塊便會控制攜帶藥品的機(jī)器人到房間1的目標(biāo)導(dǎo)航點(diǎn)為摔倒的測試者送藥,并將警報(bào)信息和現(xiàn)場照片通過云端服務(wù)器發(fā)送到小程序顯示,如圖13所示。
Figure 13. Detecting a person’s fall and issuing an alarm through millimeter wave radar
圖13. 通過毫米波雷達(dá)檢測到人摔倒并警報(bào)
通過以上實(shí)驗(yàn)測試,整個(gè)系統(tǒng)能較好的實(shí)現(xiàn)獨(dú)居老人居家監(jiān)護(hù)功能。
9. 結(jié)束語
針對社會老齡化程度的不斷加深的背景,本文提出并設(shè)計(jì)實(shí)現(xiàn)了一種面向獨(dú)居老人的智能居家監(jiān)護(hù)系統(tǒng),基于云–邊–端架構(gòu)來設(shè)計(jì)系統(tǒng)的總體功能框架,包括了云端服務(wù)器,部署到端設(shè)備上的語音識別、姿態(tài)檢測、機(jī)器人聯(lián)動(dòng)服務(wù)、前端交互等功能模塊,并進(jìn)行了測試驗(yàn)證。